{"version":3,"file":"site.min.js","names":["root","factory","exports","module","define","amd","valib","this","ws","regAnyWS","regInitialWS","reg","undefined","getType","classes","class2type","i","il","length","toLowerCase","value","String","Object","prototype","toString","call","Type","isNumber","isNaN","isString","isBoolean","isArray","Array","isObject","isFunction","isUndefined","isNull","isDate","isRegExp","Number","isInteger","n","isFloat","isInfinity","Infinity","isZero","inRange","min","max","options","l_exc","r_exc","lt","lte","gt","gte","isPositive","isNegative","isNumeric","str","canBeSigned","simple","sign","trim","charAt","slice","parseFloat","isFinite","test","toNumber","res","NaN","toUpperCase","indexOf","parseInt","isUrl","RegExp","isMD5","isSHA1","isEmailLike","match","regOrString","startsWith","prefix","substring","endsWith","suffix","isEmpty","replace","eq","array","fromIndex","has","hasKey","object","key","hasOwnProperty","hasValue","countKeys","k","Date","isToday","d","yesterday","tomorrow","isTomorrow","getFullYear","getMonth","getDate","isYesterday","isNextDay","future","nDaysFromDate","toStartOfTheDay","getTime","isPreviousDay","past","elapsedDays","d1","d2","Math","abs","round","today","clone","setDate","isWithinDays","nDays","startFrom","isEqual","isSameDay","isSameMonth","isSameWeek","weekStartsAtSunday","tmp","getDay","registeredInModuleLoader","OldCookies","window","Cookies","api","noConflict","extend","result","arguments","attributes","init","converter","document","path","defaults","expires","setMilliseconds","getMilliseconds","toUTCString","JSON","stringify","e","write","encodeURIComponent","decodeURIComponent","escape","stringifiedAttributes","attributeName","cookie","cookies","split","rdecode","parts","join","json","name","read","parse","set","get","getJSON","apply","remove","withConverter","require","CountUp","target","startVal","endVal","decimals","duration","self","version","useEasing","useGrouping","separator","decimal","easingFn","t","b","c","pow","formattingFn","num","x","x1","x2","x3","len","neg","toFixed","numerals","w","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","ensureNumber","callback","element","currTime","timeToCall","id","setTimeout","clearTimeout","initialize","initialized","error","getElementById","dec","countDown","frameVal","printValue","tagName","textContent","innerHTML","count","timestamp","startTime","progress","remaining","rAF","start","pauseResume","paused","reset","update","newEndVal","CryptoJS","C","WordArray","ECB","OFB","Encryptor","create","F","obj","subtype","C_lib","lib","Base","overrides","mixIn","$super","instance","properties","propertyName","words","sigBytes","encoder","Hex","concat","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","ceil","random","nBytes","rcache","r","m_w","m_z","mask","_r","push","C_enc","enc","hexChars","bite","hexStr","hexStrLength","substr","Latin1","latin1Chars","fromCharCode","latin1Str","latin1StrLength","charCodeAt","Utf8","Error","utf8Str","unescape","BufferedBlockAlgorithm","_data","_nDataBytes","_append","data","_process","doFlush","dataWords","dataSigBytes","blockSize","nBlocksReady","nWordsReady","_minBufferSize","nBytesReady","offset","_doProcessBlock","processedWords","splice","C_algo","Hasher","cfg","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","hasher","message","_createHmacHelper","HMAC","algo","Base64","map","_map","base64Chars","triplet","j","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","bits1","bits2","parseLoop","T","sin","MD5","_hash","M","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","a","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","floor","nBitsTotalL","hash","H_i","s","HmacMD5","W","SHA1","HmacSHA1","K","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","SHA256","f","g","h","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","t1","HmacSHA256","Utf16","Utf16BE","utf16Chars","codePoint","utf16Str","utf16StrLength","swapEndian","word","Utf16LE","ArrayBuffer","superInit","subInit","typedArray","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","buffer","byteOffset","byteLength","typedArrayByteLength","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","al","bl","cl","dl","el","ar","br","cr","dr","er","hl","hr","zl","zr","sl","sr","f1","f2","f3","f4","f5","rotl","y","z","HmacRIPEMD160","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","PBKDF2","keySize","iterations","compute","password","salt","hmac","derivedKey","blockIndex","derivedKeyWords","blockIndexWords","block","blockWords","blockWordsLength","intermediate","intermediateWords","EvpKDF","SHA224","HmacSHA224","X32WordArray","C_x64","x64","Word","high","low","toX32","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","X64Word","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","state","_state","nBlockSizeLanes","M2i","M2i1","lane","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","X64WordArray","X64Word_create","SHA512","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","bh","ch","dh","eh","fh","fl","gh","gl","hh","Wi","Wih","Wil","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","t1l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1h","t2l","HmacSHA512","SHA384","HmacSHA384","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","_key","process","dataUpdate","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","C_mode","StreamCipher","mode","BlockCipherMode","iv","Decryptor","_cipher","_iv","CBC","xorBlock","_prevBlock","processBlock","encryptBlock","thisBlock","decryptBlock","Pkcs7","pad","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","padding","unpad","CipherParams","BlockCipher","modeCreator","_mode","__creator","finalProcessedBlocks","cipherParams","formatter","OpenSSLFormatter","format","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","OpenSSLKdf","kdf","execute","derivedParams","CFB","generateKeystreamAndEncrypt","keystream","AnsiX923","lastBytePos","Iso10126","Iso97971","ZeroPadding","_keystream","NoPadding","input","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","x4","x8","RCON","AES","_nRounds","_keyPriorReset","keyWords","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","nRounds","s0","s1","s2","s3","t0","t2","t3","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","TripleDES","_des1","_des2","_des3","RC4","keySigBytes","S","_S","keyByteIndex","keyByte","_i","_j","generateKeystreamWord","keystreamWord","RC4Drop","drop","CTRGladman","incWord","b1","b2","b3","counter","_counter","incCounter","C_","G","Rabbit","X","_X","_C","_b","nextState","IV","IV_0","IV_1","i0","i2","i1","i3","gx","ga","gb","CTR","RabbitLegacy","Functions","Identity","True","Blank","Types","funcCache","Utils","createLambda","expression","regexp","maxLength","exec","paramNumber","argArray","dollar","args","Function","expr","isIEnumerable","Enumerator","defineProperty","defineProperties","methodName","enumerable","configurable","writable","compare","dispose","State","IEnumerator","tryGetNext","yielder","Yielder","current","moveNext","yieldReturn","yieldBreak","Enumerable","getEnumerator","createEnumerable","createEnumerator","extendTo","type","enumerableProto","typeProto","ArrayEnumerable","from","func","choice","toArray","cycle","index","empty","repeat","enumerator","isFirst","atEnd","item","Windows","first","make","matches","pattern","flags","source","regex","range","step","rangeDown","rangeTo","to","next","take","repeatWithFinalize","initializer","finalizer","generate","toInfinity","toNegativeInfinity","unfold","seed","defer","enumerableFactory","traverseBreadthFirst","resultSelector","nestLevel","selectMany","any","traverseDepthFirst","enumeratorStack","pop","forEach","flatten","middleEnumerator","pairwise","selector","prev","scan","isUseSeed","select","WhereSelectEnumerable","collectionSelector","middleSeq","where","predicate","WhereEnumerable","choose","ofType","typeName","Boolean","zip","second","firstEnumerator","secondEnumerator","enumerators","takeExceptLast","all","merge","inner","outerKeySelector","innerKeySelector","compareSelector","outerEnumerator","lookup","innerElements","innerCount","toLookup","innerElement","groupJoin","insert","isEnumerated","alternate","alternateValueOrSequence","alternateSequence","alternateEnumerator","retVal","contains","defaultIfEmpty","defaultValue","distinct","except","distinctUntilChanged","compareKey","initial","keys","Dictionary","add","intersect","outs","sequenceEqual","union","orderBy","keySelector","OrderedEnumerable","orderByDescending","reverse","shuffle","weightedSample","weightSelector","sortedByBound","totalWeight","weight","bound","draw","lower","upper","groupBy","elementSelector","toEnumerable","partitionBy","hasResultSelector","group","Grouping","hasNext","aggregate","last","average","sum","maxBy","minBy","elementAt","found","elementAtOrDefault","firstOrDefault","lastOrDefault","single","singleOrDefault","skip","skipWhile","isSkipEnd","takeWhile","q","shift","takeFromLast","sourceEnumerator","lastIndexOf","cast","asEnumerable","dict","Lookup","toObject","toDictionary","toJSONString","replacer","space","toJoinedString","doAction","action","writeLine","writeln","force","letBind","share","sharedEnumerator","disposed","DisposableEnumerable","memoize","cache","catchError","handler","finallyAction","log","console","trace","descending","parent","createOrderedEnumerable","thenBy","thenByDescending","indexes","sortContext","SortContext","GenerateKeys","sort","child","orderedEnumerable","currentContext","context","index1","index2","comparison","getSource","prevSource","prevPredicate","prevSelector","callHasOwnProperty","computeHashCode","HashEntry","EntryList","addLast","entry","newEntry","countField","entryList","buckets","clear","currentEntry","dictionary","kvp","groupKey","elements","o","createElement","onerror","onload","fetchBlob","createObjectURL","crossOrigin","src","isInstanceOf","_objectURL","readFile","noRevoke","revokeObjectURL","URL","webkitURL","transform","FileReader","loadImage","scale","transformCoordinates","getTransformedOptions","aspectRatio","crop","naturalWidth","width","naturalHeight","height","maxWidth","maxHeight","renderImageToCanvas","l","getContext","drawImage","hasCanvasOption","canvas","I","v","u","p","m","left","top","sourceWidth","right","sourceHeight","bottom","minWidth","minHeight","contain","cover","pixelRatio","style","downsamplingRatio","Blob","webkitSlice","mozSlice","blobSlice","metaDataParsers","jpeg","parseMetaData","maxMetaDataSize","DataView","size","getUint16","disableImageHead","imageHead","subarray","hasMetaOption","meta","fetch","Request","then","blob","catch","orientation","translate","rotate","PI","exif","ExifMap","Orientation","getExifThumbnail","exifTagTypes","getValue","getUint8","ascii","getUint32","getInt32","getExifValue","parseExifTag","parseExifTags","parseExifData","disableExif","disableExifThumbnail","Thumbnail","disableExifSub","disableExifGps","tags","stringValues","ExposureProgram","MeteringMode","LightSource","Flash","SensingMethod","SceneCaptureType","SceneType","CustomRendered","WhiteBalance","GainControl","Contrast","Saturation","Sharpness","SubjectDistanceRange","FileSource","ComponentsConfiguration","getText","getAll","IptcMap","ObjectName","parseIptcTags","iptc","getInt16","parseIptcData","disableIptc","global","ColorHash","code","MAX_SAFE_INTEGER","BKDRHash","HSL2RGB","L","color","LS","lightness","saturation","param","hue","hueRanges","hsl","rgb","hex","Chart","colorNames","getRgba","string","getHsla","alpha","getHwb","rgbaString","rgba","percentaString","hslaString","hsla","hexDouble","getRgb","getHsl","getAlpha","vals","hexString","rgbString","percentString","hslString","hwbString","hwb","keyword","reverseNames","convert","Color","valid","values","hsv","cmyk","setValues","red","whiteness","cyan","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","val","setChannel","green","blue","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","light","negate","lighten","ratio","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","degrees","mix","mixinColor","color1","w1","w2","toJSON","prop","spaces","maxes","getValues","capped","chans","sname","svalues","rgb2hsl","delta","rgb2hsv","rgb2hwb","rgb2cmyk","rgb2keyword","reverseKeywords","rgb2xyz","rgb2lab","xyz","hsl2rgb","hsv2rgb","hi","hwb2rgb","wh","cmyk2rgb","xyz2rgb","xyz2lab","lab2xyz","lab","y2","lab2lch","atan2","lab2rgb","lch2lab","lch","cos","keyword2rgb","cssKeywords","rgb2lch","hsl2hsv","hsl2hwb","hsl2cmyk","hsl2keyword","hsv2hsl","hsv2hwb","hsv2cmyk","hsv2keyword","hwb2hsl","hwb2hsv","hwb2cmyk","hwb2keyword","cmyk2hsl","cmyk2hsv","cmyk2hwb","cmyk2keyword","keyword2hsl","keyword2hsv","keyword2hwb","keyword2cmyk","keyword2lab","keyword2xyz","xyz2lch","lch2xyz","lch2rgb","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellowgreen","conversions","Converter","arg","pair","convs","routeSpace","fspace","helpers","Element","Interaction","layouts","platform","plugins","Ticks","register","Legend","legend","_element","Title","title","pluginService","PluginBase","canvasHelpers","layoutService","Bar","config","Bubble","Doughnut","Line","PolarArea","Radar","Scatter","_set","hover","scales","xAxes","categoryPercentage","barPercentage","gridLines","offsetGridLines","yAxes","axis","position","rectangle","borderSkipped","tooltips","callbacks","yLabel","labels","label","datasets","datasetIndex","xLabel","controllers","bar","DatasetController","dataElementType","Rectangle","me","getMeta","stack","getDataset","ilen","rects","_ruler","getRuler","updateElement","chart","dataset","custom","rectangleOptions","_xScale","getScaleForId","xAxisID","_yScale","yAxisID","_datasetIndex","_index","_model","datasetLabel","backgroundColor","valueAtIndexOrDefault","borderColor","borderWidth","updateElementGeometry","pivot","model","vscale","getValueScale","base","getBasePixel","horizontal","isHorizontal","ruler","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","getValueScaleId","getIndexScaleId","getIndexScale","_getStacks","stacked","stacks","getDatasetMeta","isDatasetVisible","getStackCount","getStackIndex","stackCount","end","pixels","getPixelForValue","isNullOrUndef","barThickness","curr","ticks","getTicks","getPixelForTick","computeMinSampleSize","imeta","ivalue","getRightValue","controller","percent","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","valueOrDefault","maxBarThickness","clipArea","ctx","chartArea","unclipArea","setHoverStyle","hoverBackgroundColor","getHoverColor","hoverBorderColor","hoverBorderWidth","removeHoverStyle","rectangleElementOptions","horizontalBar","dataPoint","bubble","Point","points","each","point","xScale","yScale","_resolveElementOptions","dsIndex","getPixelForDecimal","_options","hitRadius","pointStyle","radius","hoverRadius","resolve","dataIndex","animation","animateRotate","animateScale","legendCallback","text","generateLabels","ds","arc","arcOpts","fillStyle","strokeStyle","lineWidth","hidden","onClick","legendItem","cutoutPercentage","rotation","circumference","tooltipItem","dataLabel","doughnut","pie","Arc","linkScales","noop","getRingIndex","ringIndex","opts","availableWidth","availableHeight","minSize","startAngle","endAngle","contains0","contains90","contains180","contains270","cutout","getMaxBorderWidth","outerRadius","innerRadius","radiusLength","getVisibleDatasetCount","offsetX","offsetY","total","calculateTotal","animationOpts","centerX","centerY","calculateCircumference","arcs","hoverWidth","_chart","showLines","spanGaps","lineEnabled","showLine","line","datasetElementType","lineElementOptions","tension","lineTension","_scale","_children","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill","steppedLine","stepped","cubicInterpolationMode","updateBezierControlPoints","getPointBackgroundColor","pointBackgroundColor","getPointBorderColor","pointBorderColor","getPointBorderWidth","pointBorderWidth","pointOptions","pointRadius","pointHitRadius","calculatePointY","dsMeta","sumPos","sumNeg","stackedRightValue","rightValue","controlPoints","area","capControlPoint","pt","filter","splineCurveMonotone","splineCurve","previousItem","nextItem","controlPointPreviousX","previous","controlPointPreviousY","controlPointNextX","controlPointNextY","capBezierPoints","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","angleLines","display","circular","pointLabels","beginAtZero","polarArea","countVisibleElements","xCenter","yCenter","visibleCount","datasetStartAngle","distance","getDistanceFromCenterForValue","resetRadius","radar","_loop","pointElementOptions","pointPosition","getPointPositionForValue","scatter","easing","onProgress","onComplete","Animation","currentStep","numSteps","render","onAnimationProgress","onAnimationComplete","animationService","frameDuration","animations","dropFrames","request","addAnimation","lazy","animating","cancelAnimation","findIndex","requestAnimFrame","startDigest","now","framesToDrop","advance","endTime","positionIsHorizontal","types","instances","construct","configMerge","initConfig","acquireContext","uid","_bufferedRender","notify","retinaScale","devicePixelRatio","bindEvents","responsive","resize","ensureScalesHaveIDs","buildOrUpdateScales","initToolTip","stop","silent","maintainAspectRatio","newWidth","getMaximumWidth","newHeight","getMaximumHeight","newSize","onResize","responsiveAnimationDuration","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","items","updated","reduce","dtype","dposition","isDefault","scaleType","scaleClass","scaleService","getScaleConstructor","mergeTicksOptions","hasUpdated","addScalesToLayout","buildOrUpdateControllers","newControllers","destroyDatasetMeta","updateIndex","ControllerClass","resetElements","tooltip","newOptions","removeBox","_invalidate","buildOrUpdateElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","updateDataset","animationOptions","animationObject","easingFunction","effects","stepDecimal","easingValue","transition","boxes","box","drawDatasets","_drawTooltip","drawDataset","getElementAtEvent","modes","getElementsAtEvent","getElementsAtXAxis","getElementsAtEventForMode","method","getDatasetAtEvent","_meta","generateLegend","destroy","unbindEvents","releaseContext","toBase64Image","toDataURL","Tooltip","_chartInstance","listeners","_listeners","listener","eventHandler","events","addEventListener","removeEventListener","updateHoverStyle","enabled","changed","handleEvent","_start","bufferedRequest","animationDuration","hoverOptions","active","onHover","native","arrayEquals","Controller","arrayEvents","unlistenArrayEvents","stub","_chartjs","addElements","scaleID","createMetaDataset","createMetaData","metaData","addElementAndReset","resyncElements","elementOpts","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","inherits","scope","configuration","_view","ease","view","actual","origin","c0","c1","interpolate","tooltipPosition","parseMaxStyle","styleValue","node","parentProperty","valueInPixels","parentNode","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","POSITIVE_INFINITY","merger","tval","sval","scaleMerge","getScaleDefaults","_merger","slen","collection","filterCallback","filtered","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","epsilon","almostWhole","rounded","NEGATIVE_INFINITY","log10","exponent","LOG10E","powerOf10","toRadians","toDegrees","radians","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","distanceBetweenPoints","pt1","pt2","aliasPixel","pixelWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","deltaX","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","loop","niceNum","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","getRelativePosition","evt","mouseX","mouseY","originalEvent","currentTarget","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","paddingLeft","getStyle","paddingTop","paddingRight","paddingBottom","currentDevicePixelRatio","getConstraintWidth","getConstraintHeight","container","clientWidth","cw","clientHeight","property","currentStyle","getPropertyValue","forceRatio","fontString","pixelSize","fontStyle","fontFamily","longestText","font","arrayOfThings","gc","garbageCollect","longest","thing","measureText","nestedThing","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","defaultColor","colorValue","CanvasPattern","parseVisibleItems","jlen","getIntersectItems","getNearestItems","distanceMetric","minDistance","nearestItems","getCenterPoint","getDistanceMetricForAxis","useX","useY","deltaY","indexMode","nearest","ret","getArea","intersectsItem","inXRange","inYRange","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","layout","filterByPosition","sortByWeight","_tmpIndex_","v0","v1","addBox","fullWidth","layoutItem","configure","props","layoutOptions","toPadding","leftPadding","rightPadding","topPadding","bottomPadding","leftBoxes","rightBoxes","topBoxes","bottomBoxes","chartAreaBoxes","chartWidth","chartHeight","chartAreaHeight","verticalBoxWidth","horizontalBoxHeight","maxChartAreaWidth","maxChartAreaHeight","minBoxSizes","maxHorizontalLeftPadding","maxHorizontalRightPadding","maxVerticalTopPadding","maxVerticalBottomPadding","horizontalBox","getPadding","boxPadding","verticalBox","totalLeftBoxesWidth","totalRightBoxesWidth","totalTopBoxesHeight","totalBottomBoxesHeight","fitBox","minBoxSize","scaleMargin","leftPaddingAddition","topPaddingAddition","newMaxChartAreaHeight","newMaxChartAreaWidth","placeBox","minBox","_plugins","_cacheId","plugin","unregister","idx","hook","descriptor","params","descriptors","$plugins","labelsFromTicks","getLineValue","lineValue","drawBorder","drawOnChartArea","drawTicks","tickMarkLength","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","lineHeight","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","formatters","minor","major","computeTextSize","tick","parseFontOptions","globalDefaults","fontSize","family","parseLineHeight","toLineHeight","Scale","_ticks","beforeUpdate","margins","longestTextCache","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","beforeTickToLabelConversion","convertTicksToLabels","afterTickToLabelConversion","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","afterUpdate","tickOpts","userCallback","tickFont","labelRotation","cosRotation","originalLabelWidth","labelWidth","tickWidth","angleRadians","scaleLabelOpts","gridLineOpts","isFullWidth","deltaHeight","largestTextWidth","tallestLabelHeightInLines","lineSpace","tickPadding","longestLabelWidth","labelHeight","firstLabelWidth","lastLabelWidth","handleMargins","rawValue","getLabelForIndex","getValueForPixel","pixel","finalVal","innerHeight","valueOffset","getBaseValue","_autoSkip","skipRatio","maxTicks","optionTicks","tickCount","labelRotationRadians","longestRotatedLabel","maxTicksLimit","optionMajorTicks","isRotated","tickFontColor","fontColor","majorTickFontColor","majorTickFont","tl","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","itemsToDraw","axisWidth","xTickStart","xTickEnd","yTickStart","yTickEnd","lineColor","tx1","ty1","tx2","ty2","y1","labelX","labelY","zeroLineIndex","textAlign","textBaseline","labelYOffset","xLineValue","labelXOffset","isLeft","yLineValue","glWidth","glColor","glBorderDash","glBorderDashOffset","itemToDraw","save","setLineDash","lineDashOffset","beginPath","moveTo","lineTo","stroke","restore","lineCount","fillText","scaleLabelX","scaleLabelY","halfLineHeight","constructors","registerScaleType","scaleConstructor","scaleDefaults","updateScaleDefaults","additions","linear","tickValue","logDelta","tickString","numDecimal","logarithmic","remain","toExponential","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","cornerRadius","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","mergeOpacity","colorString","opacity","pushOrConcat","toPush","getBaseModel","tooltipOpts","xAlign","yAlign","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","_lastActive","getTitle","lines","getBeforeBody","getBody","bodyItems","bodyItem","before","after","getAfterBody","getFooter","existingModel","_active","alignment","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","positioners","_eventPosition","itemSort","body","dataPoints","combinedBodyLength","titleLineCount","footerLineCount","widthPadding","maxLineWidth","getTooltipSize","lf","rf","olf","orf","yf","midX","midY","determineAlignment","vm","paddingAndSize","radiusAndPadding","getBackgroundPoint","drawCaret","tooltipPoint","caretPosition","getCaretPosition","y3","ptX","ptY","drawTitle","drawBody","xLinePadding","fillLineOfText","drawColorBoxes","textColor","fillRect","strokeRect","drawFooter","drawBackground","quadraticCurveTo","closePath","hasTooltipContent","pos","eventPosition","nearestElement","tp","inLabelRange","chartX","chartY","pointRelativePosition","betweenAngles","withinRadius","halfAngle","halfRadius","centreAngle","rangeFromCentre","sA","eA","lineJoin","currentVM","globalOptionLineElements","lastDrawnIndex","lineCap","xRange","errMargin","drawPoint","isVertical","getBarBounds","halfWidth","halfHeight","signX","signY","barSize","halfStroke","borderLeft","borderRight","borderTop","borderBottom","corners","startCorner","cornerAt","corner","bounds","clearRect","roundedRect","rx","ry","rect","edgeLength","xOffset","yOffset","SQRT2","leftX","topY","sideSize","clip","flip","bezierCurveTo","drawRoundedRectangle","fn","thisArg","loopable","a0","a1","klen","_mergerIf","mergeIf","sources","setFn","extensions","ChartElement","constructor","Surrogate","__super__","callCallback","getValueOrDefault","getValueAtIndexOrDefault","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","easingEffects","inputs","EXPANDO_KEY","CSS_PREFIX","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","eventListenerOptions","supports","passive","createEvent","nativeEvent","addResizeListener","ticking","expando","resizer","cls","maxSize","cssText","className","expand","childNodes","shrink","_reset","scrollLeft","scrollTop","onScroll","bind","createResizer","proxy","renderProxy","animationName","reflow","offsetParent","classList","watchForRender","insertBefore","firstChild","removeResizeListener","unwatchForRender","removeChild","_enabled","css","keyframes","_style","setAttribute","getElementsByTagName","appendChild","createTextNode","renderHeight","getAttribute","renderWidth","displayWidth","displayHeight","initCanvas","removeAttribute","proxies","event","fromNativeEvent","addEvent","removeEvent","basic","dom","implementation","filler","propagate","mappers","boundary","decodeFill","computeBoundary","scaleBottom","scaleTop","scaleZero","getBasePosition","resolveTarget","visited","visible","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","afterDatasetsUpdate","$filler","mapper","beforeDatasetDraw","p0","p1","d0","span","doFill","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","lineDash","legendHitBoxes","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","globalDefault","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","totalWidth","currentColWidth","currentColHeight","itemHeight","itemWidth","lineDefault","legendWidth","cursor","isLineWidthZero","offSet","drawLegendBox","halfFontSize","xLeft","yMiddle","lh","hitBox","createNewLegendAndAttach","legendOpts","beforeInit","afterEvent","textSize","titleX","titleY","titleFont","createNewTitleBlockAndAttach","titleOpts","titleBlock","DatasetScale","getLabels","xLabels","yLabels","minIndex","maxIndex","valueCategory","offsetAmt","valueWidth","widthOffset","valueHeight","heightOffset","horz","valueDimension","defaultConfig","LinearScale","LinearScaleBase","IDMatches","hasStacks","valuesPerStack","positiveValues","negativeValues","relativePoints","valuesForType","minVal","maxVal","handleTickRangeOptions","getTickLimit","tickFontSize","handleDirectionalChanges","innerDimension","ticksAsNumbers","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","numericGeneratorOptions","stepSize","fixedStepSize","generationOptions","dataRange","spacing","niceRange","niceMin","niceMax","numSpaces","precision","generateTicks","LogarithmicScale","minNotZero","exp","significand","tickVal","endExp","endSignificand","lastTick","tickValues","_getFirstTickValue","firstTickValue","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getValueCount","getPointLabelFontOptions","pointLabelOptions","determineLimits","getTextAlignForAngle","adjustPointPositionForLabelHeight","numberOrZero","LinearRadialScale","drawingArea","largestPossibleRadius","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","getIndexAngle","hLimits","vLimits","setReductions","fitWithPointLabels","setCenterPoint","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","tickFontStyle","tickFontFamily","tickLabelFont","yCenterOffset","drawRadiusLine","angleLineOpts","pointLabelOpts","outerDistance","outerPosition","pointLabelPosition","pointLabelFontColor","drawPointLabels","moment","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","INTERVALS","millisecond","common","steps","minute","hour","day","week","month","quarter","year","UNITS","sorter","arrayUnique","out","table","skey","tkey","mid","lo","momentify","parser","time","startOf","valueOf","determineMajorUnit","unit","capacity","timeOpts","minUnit","interval","determineUnitForAutoTicks","unitStepSize","weekday","isoWeekday","majorTicksEnabled","milliseconds","determineStepSize","TimeScale","warn","timestamps","endOf","_horizontal","_table","_timestamps","getLabelCapacity","_unit","diff","as","determineUnitForFormatting","_majorUnit","distribution","buildLookupTable","_offsets","computeOffsets","_labelFormat","momentDate","hasTime","determineLabelFormat","majorUnit","ticksFromTimestamps","tooltipFormat","tickFormatFunction","formatOverride","formats","displayFormats","minorFormat","majorFormat","majorTime","majorTickOpts","getPixelForOffset","getLabelWidth","ticksOpts","tickLabelWidth","sinRotation","exampleTime","exampleLabel","innerWidth","displayFormat","chartHelpers","annotationTypes","Annotation","setAfterDataLimitsHook","axisOptions","decorate","adjustScaleRange","drawTime","chartInstance","easingDecimal","defaultDrawTime","annotation","chartOptions","ns","onDestroy","firstRun","supported","elementIds","annotations","objectId","afterScaleUpdate","beforeDatasetsDraw","afterDatasetsDraw","afterDraw","afterInit","watchFor","dispatcher","collapseHoverEvents","eventName","deregisterers","hovering","setDataLimits","getWidth","getHeight","filteredEvents","dblClickSpeed","eventHandlers","eventHandlerName","getEventHandlerName","hoverEvent","createMouseEvent","onDblclick","clickTimeout","stopImmediatePropagation","preventDefault","callEach","fns","previousEvent","MouseEvent","exception","initMouseEvent","canBubble","cancelable","detail","screenX","screenY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","exception2","initEvent","labelDefaults","scaleId","scaleMin","scaleMax","ranges","sizeA","sizeB","drawTimeOptions","xAdjust","yAdjust","content","annotationPlugin","BoxAnnotation","xScaleID","yScaleID","xMin","xMax","yMin","yMax","horizontalKeyword","verticalKeyword","LineFunction","getX","getY","intersects","dy","dx","endValue","endPixel","labelBackgroundColor","labelFontFamily","labelFontSize","labelFontStyle","labelFontColor","labelXPadding","labelYPadding","labelCornerRadius","labelPosition","labelXAdjust","labelYAdjust","labelEnabled","labelContent","textHeight","padWidth","padHeight","xa","ya","calculateLabelPosition","debug","EXIF","EXIFwrapped","ExifTags","Tags","TiffTags","GPSTags","IFD1Tags","StringValues","Components","imageHasData","img","getImageData","handleBinaryFile","binFile","findEXIFinJPEG","exifdata","iptcdata","file","dataView","isFieldSegmentStart","nameHeaderLength","readIPTCData","findIPTCinJPEG","isXmpEnabled","xmpdata","DOMParser","getStringFromDB","startOffset","sectionLength","xmpString","xmpEndIndex","indexOfXmp","xml2Object","parseFromString","findXMPinJPEG","base64","contentType","binary","atob","base64ToArrayBuffer","fileReader","url","http","XMLHttpRequest","open","responseType","status","response","send","objectURLToBlob","readAsArrayBuffer","File","readEXIFData","IptcFieldMap","fieldValue","fieldName","dataSize","segmentType","segmentStartPos","readTags","tiffStart","dirStart","strings","bigEnd","entryOffset","entries","readTagValue","numerator","denominator","numValues","outstr","tag","exifData","gpsData","tiffOffset","firstIFDOffset","ExifIFDPointer","GPSInfoIFDPointer","IFD1OffsetPointer","getNextIFDOffset","thumbTags","JpegIFOffset","JpegIFByteCount","tOffset","tLength","readThumbnailImage","xml2json","xml","nodeType","attribute","nodeName","nodeValue","hasChildNodes","old","children","itemAtt","dataKey","dataValue","enableXmp","disableXmp","getData","Image","HTMLImageElement","complete","getTag","getIptcTag","getAllTags","getAllIptcTags","pretty","strPretty","readFromBinaryFile","Croppie","Promise","TypeError","_value","_deferreds","onFulfilled","onRejected","reject","setImmediate","race","_setImmediateFn","CustomEvent","bubbles","initCustomEvent","Event","HTMLCanvasElement","toBlob","quality","binStr","arr","CSS_TRANS_ORG","CSS_TRANSFORM","CSS_USERSELECT","cssPrefixes","emptyStyles","EXIF_NORM","EXIF_FLIP","vendorPrefix","capProp","deepExtend","destination","dispatchChange","dispatchEvent","fireEvent","styles","addClass","setAttributes","attrs","naturalImageDimensions","ornt","orient","getExifOrientation","TRANSLATE_OPTS","translate3d","Transform","fromMatrix","fromString","globals","TransformOrigin","drawCanvas","_create","viewport","overlay","bw","customViewportClass","useCanvas","enableOrientation","_hasExif","preview","alt","customClass","_initDraggable","enableZoom","_initializeZoom","enableResize","_initializeResize","enableExif","direction","originalX","originalY","vr","wrap","isDragging","mouseDown","ev","overlayRect","pageX","pageY","mouseMove","mouseUp","_updateOverlay","_updateZoomLimits","_updateCenterPoint","_triggerUpdate","resizeControls","_setZoomerVal","zoomer","fix","zoomerWrap","change","_onZoom","viewportRect","scroll","targetZoom","mouseWheelZoom","wheelDelta","_currentZoom","showZoomer","ui","vpRect","applyCss","transCss","enforceBoundary","boundaries","_getVirtualBoundaries","transBoundaries","oBoundaries","maxX","minX","maxY","minY","_debouncedOverlay","vpWidth","vpHeight","centerFromBoundaryX","centerFromBoundaryY","imgRect","curImgWidth","curImgHeight","originMinX","originMinY","vpData","pc","adj","cx","cy","tx","ty","newCss","originalDistance","assignTransformCoordinates","toggleGrabState","touch1","touch2","dist","zoom","keyCode","enableKeyMovement","movement","parseKeyDown","keyMove","setZoom","boundRect","imgData","wait","immediate","timeout","callNow","_isVisible","$","Prototype","trigger","offsetHeight","offsetWidth","_updatePropertiesFromImage","cssReset","transformReset","originReset","_originalImageWidth","_originalImageHeight","_bindPoints","_centerImage","initialZoom","defaultInitialZoom","minW","minH","minZoom","maxZoom","boundaryData","boundZoom","pointsWidth","vpOffset","originTop","originLeft","transformTop","transformLeft","imgDim","vpDim","boundDim","vpLeft","vpTop","_transferImageToCanvas","customOrientation","_getCanvas","circle","canvasWidth","outputWidth","canvasHeight","outputHeight","sy","sWidth","sHeight","dWidth","dHeight","globalCompositeOperation","_getHtmlResult","div","_getBase64Result","_getBlobResult","_replaceImage","replaceChild","_bind","cb","doExif","hasExif","_resolve","relative","natDim","x0","y0","decimalPoints","_get","widthDiff","heightDiff","RESULT_DEFAULTS","RESULT_FORMATS","_result","resultType","_refresh","_rotate","deg","_destroy","jQuery","croppie","singleInst","removeData","origImage","replacementDiv","bindOpts","orientationControls","leftClass","rightClass","refresh","modules","installedModules","__webpack_require__","moduleId","loaded","Cleave","owner","hasMultipleElements","querySelector","querySelectorAll","initValue","DefaultProperties","assign","pps","numeral","phone","creditCard","date","blocksLength","Util","getMaxLength","blocks","isAndroid","lastInputValue","onChangeListener","onChange","onKeyDownListener","onKeyDown","onFocusListener","onFocus","onCutListener","onCut","onCopyListener","onCopy","initPhoneFormatter","initDateFormatter","initTimeFormatter","initNumeralFormatter","noImmediatePrefix","onInput","numeralFormatter","NumeralFormatter","numeralDecimalMark","numeralIntegerScale","numeralDecimalScale","numeralThousandsGroupStyle","numeralPositiveOnly","stripLeadingZeroes","delimiter","timeFormatter","TimeFormatter","timePattern","timeFormat","getBlocks","dateFormatter","DateFormatter","datePattern","phoneFormatter","PhoneFormatter","AsYouTypeFormatter","phoneRegionCode","ex","charCode","which","currentValue","hasBackspaceSupport","isAndroidBackspaceKeydown","postDelimiter","getPostDelimiter","delimiters","postDelimiterBackspace","fixPrefixCursor","copyClipboardData","inputValue","textToCopy","copyDelimiter","stripDelimiters","clipboardData","setData","postDelimiterAfter","headStr","updateValueState","getValidatedDate","getValidatedTime","getPrefixStrippedValue","prefixLength","numericOnly","strip","uppercase","lowercase","updateCreditCardPropsByValue","getFormattedValue","delimiterLazyShow","creditCardInfo","CreditCardDetector","getInfo","creditCardStrictMode","creditCardType","onCreditCardTypeChanged","endPos","selectionEnd","oldValue","newValue","getNextCursorPosition","setSelection","callOnValueChanged","onValueChanged","getRawValue","setPhoneRegionCode","setRawValue","rawValueTrimPrefix","getISOFormatDate","getISOFormatTime","groupStyle","thousand","delimiterRE","lakh","wan","none","partInteger","partDecimal","initBlocks","addLeadingZero","sub","sub0","rest","getFixedDateString","dayIndex","monthIndex","yearIndex","dayStartIndex","monthStartIndex","yearStartIndex","fullYearDone","getFixedDate","addLeadingZeroForYear","isLeapYear","number","getTimeFormatOptions","maxHourFirstDigit","maxHours","maxMinutesFirstDigit","maxMinutes","timeFormatOptions","getFixedTimeString","secondIndex","minuteIndex","hourIndex","secondStartIndex","minuteStartIndex","hourStartIndex","getFixedTime","setFormatter","phoneNumber","validated","iMax","inputDigit","uatp","amex","diners","discover","mastercard","dankort","instapayment","jcb15","jcb","maestro","visa","mir","unionPay","general","generalStrict","re","strictMode","matchedDelimiter","getDelimiterREByDelimiter","prevPos","getPositionOffset","oldRawValue","newRawValue","lengthOffset","letter","prevResult","prevValue","getFirstDiffIndex","currentDelimiter","multipleDelimiters","appendix","setSelectionRange","doc","getActiveElement","createTextRange","move","activeElement","shadowRoot","navigator","userAgent","currentInputValue","delimiterLength","backspace","flatpickr","Z","Q","ee","te","months","D","setMonth","longhand","setHours","J","getHours","amPM","shorthand","setSeconds","U","Y","setFullYear","setMinutes","ne","toISOString","weekdays","ordinal","getSeconds","getWeek","getMinutes","ae","daysInMonth","firstDayOfWeek","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","yearAriaLabel","ie","l10n","formatDate","oe","dateFormat","parseDate","noCalendar","errorHandler","ce","le","_disable","_enable","allowInput","altFormat","altInput","altInputClass","ariaDateFormat","clickOpens","closeOnSelect","conjunction","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enable","enableSeconds","enableTime","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","nextArrow","onClose","onDayCreate","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","de","se","ue","fe","ge","calendarContainer","visibility","daysContainer","days","weekWrapper","removeProperty","selectedDates","hourElement","minuteElement","secondElement","minTime","minDate","minDateHasTime","latestSelectedDateObj","maxTime","maxDate","maxDateHasTime","isMobile","_handlers","B","currentYear","currentMonth","redraw","dateObj","$i","todayDateElem","tabIndex","selectedDateElem","insertAdjacentHTML","focus","P","A","_input","changeMonth","utils","getDaysInMonth","createDocumentFragment","tabindex","disabled","yearElement","monthElement","monthNav","prevMonthNav","yearElements","monthElements","nextMonthNav","E","weekdayContainer","_hidePrevMonthArrow","_hideNextMonthArrow","appendTo","O","isOpen","some","close","_","blur","timeContainer","R","_debouncedChange","lastChild","N","currentYearElement","l10ns","default","_positionElement","pageYOffset","pageXOffset","msMaxTouchPoints","stopPropagation","showTimeInput","_setHoursFromDate","changeYear","mobileInput","_createElement","_type","isEnabled","jumpToDate","toggle","mobileFormatStr","V","_minDate","_maxDate","_minTime","_maxTime","placeholder","required","nextSibling","defaultDate","_showTimeInput","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","rContainer","ontouchstart","capture","_flatpickr","HTMLElement","HTMLCollection","NodeList","en","localize","setDefaults","compareDates","fp_incr","toStr","isCallable","maxSafeInteger","toLength","find","kValue","toInteger","arrayLike","mapFn","includes","searchElement","fun","every","callbackfn","varArgs","nextSource","nextKey","FilePondPluginImageExifOrientation","Marker","little","IS_BROWSER","shouldCorrect","testImage","_ref","addFilter","isFile","_ref2","query","isJPEG","reader","marker","getImageOrientation","setMetadata","allowImageExifOrientation","BOOLEAN","FilePondPluginImageResize","isImage","upscale","image","targetWidth","targetHeight","fileURL","imageWidth","imageHeight","getMetadata","_ref3","allowImageResize","imageResizeMode","STRING","imageResizeUpscale","imageResizeTargetWidth","INT","imageResizeTargetHeight","FilePondPluginImageTransform","ExtensionMap","MATRICES","createVector","vectorSubtract","vectorDistance","vectorDot","vectorDistanceSquared","getOffsetPointOnEdge","sinA","sinB","sinC","cosC","getImageRectZoomFactor","imageRect","cropRect","rotatedCropSize","hor","ver","tr","getRotatedRectSize","getCenteredCropRect","isFlipped","vertical","getBitmap","swapped","getImageOrientationMatrix","matrix","imageToImageData","imageElement","bitmap","imageSize","canvasSize","canvasAspectRatio","imageAspectRatio","imgWidth","imgHeight","scalar","calculateCanvasSize","canvasCenter","stage","imageOffset","dataURL","TransformWorker","TRANSFORMS","imageData","_data$mode","_data$upscale","isIdentityMatrix","scalarWidth","scalarHeight","originWidth","originHeight","inputData","outputData","ratioWidth","ratioHeight","ratioWidthHalf","ratioHeightHalf","weights","weightsAlpha","yy","w0","xx","ref","applyFilterMatrix","transforms","filterTransform","resizeTransform","applyTransforms","row","onmessage","postMessage","identityMatrix","m11","m12","m13","m14","m15","m21","m22","m23","m24","m25","m31","m32","m33","m34","m35","m41","m42","m43","m44","m45","correctOrientation","intelByteAligned","setUint16","getImageHead","markerLength","orientationCorrected","readData","createBlob","arrayBuffer","mimeType","BB","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","bb","append","getBlob","createWorker","workerBlob","workerURL","worker","Worker","transfer","post","transferList","terminate","transformImage","instructions","isImage$1","stripImageHead","beforeCreateBlob","afterCreateBlob","output","qualityAsPercentage","resolveWithBlob","promisedBlob","putImageData","promisedImage","imageDataToBlob","fr","onloadend","original","originalNode","bBox","getBBox","titleNode","viewBoxAttribute","widthAttribute","heightAttribute","widthUnits","heightUnits","viewBoxList","viewBox","overflow","canvasZoomFactor","cropTransforms","flipTransforms","transformed","outerHTML","readAsText","cropSVG","outputFormat","ImageData","createImageData","objectToImageData","forin","getFileFromBlob","TRANSFORM_LIST","isDefaultCrop","shouldPrepareOutput","archived","variants","metadata","variantsDefinition","updateMetadata","createVariant","qualityMode","clientTransforms","client","filteredMetadata","instruction","willChangeType","willModifyImageData","filename","getFilenameWithoutExtension","extension","renameFileToMatchMimeType","getValidOutputMimeType","variantPromises","files","allowImageTransform","imageTransformOutputMimeType","imageTransformOutputQuality","imageTransformOutputStripImageHead","imageTransformClientTransforms","ARRAY","imageTransformOutputQualityMode","imageTransformVariants","OBJECT","imageTransformVariantsIncludeDefault","imageTransformVariantsDefaultName","imageTransformVariantsIncludeOriginal","imageTransformVariantsOriginalName","FilePondPluginImagePreview","IMAGE_SCALE_SPRING_PROPS","stiffness","damping","mass","createClipView","createView","ignoreRect","mixins","apis","_ref4","appendChildView","createChildView","originX","originY","scaleX","scaleY","translateX","translateY","rotateZ","createBitmapView","createImageCanvasWrapper","transparencyIndicator","_ref5","shouldOptimize","translation","cropAspectRatio","stageZoomFactor","imageView","SVG_MASK","checkedMyBases","SVGMaskUniqueId","BitmapWorker","createImageBitmap","ColorMatrixWorker","colorMatrix","createPreviewImage","fixImageOrientation","isBitmap","calculateAverageColor","averageColor","createImageWrapperView","OverlayView","location","href","ImageView","_ref6","_ref7","containerWidth","containerHeight","fixedPreviewHeight","minPreviewHeight","maxPreviewHeight","panelAspectRatio","allowMultiple","clipHeight","clipWidth","createImageView","applyFilter","cloneImageData","pushImage","childViews","images","dispatch","restoreOverlay","_ref9","overlayShadow","overlayError","overlaySuccess","didThrowError","_ref10","_ref12","imageViewBin","_ref13","createRoute","DID_IMAGE_PREVIEW_DRAW","_ref8","DID_IMAGE_PREVIEW_CONTAINER_CREATE","DID_FINISH_CALCULATE_PREVIEWSIZE","loadPreviewFallback","previewImageLoaded","pixelDensityFactor","scaleFactor","previewImageRatio","previewContainerWidth","previewContainerHeight","previewImage","done","imageBitmap","DID_UPDATE_ITEM_METADATA","_imageView","shiftImage","updateImage","DID_THROW_ITEM_LOAD_ERROR","DID_THROW_ITEM_PROCESSING_ERROR","DID_THROW_ITEM_INVALID","DID_COMPLETE_ITEM_PROCESSING","_ref11","DID_START_ITEM_PROCESSING","DID_REVERT_ITEM_PROCESSING","_ref14","viewsToRemove","removeChildView","removeImageView","fpAPI","imagePreviewView","viewAPI","is","didResizeView","shouldRescale","registerWriter","DID_RESIZE_ROOT","DID_STOP_RESIZE","DID_LOAD_ITEM","isPreviewableImage","supportsCreateImageBitmap","maxPreviewFileSize","imagePreview","queue","DID_IMAGE_PREVIEW_CALCULATE_SIZE","shouldDrawPreview","itemPanelAspectRatio","fixedHeight","_root$ref","previewAspectRatio","previewHeightMax","previewHeight","rescaleItem","allowImagePreview","imagePreviewHeight","imagePreviewMinHeight","imagePreviewMaxHeight","imagePreviewMaxFileSize","imagePreviewZoomFactor","imagePreviewUpscale","imagePreviewMaxInstantPreviewFileSize","imagePreviewTransparencyIndicator","imagePreviewCalculateAverageImageColor","FilePondPluginFileValidateSize","replaceInString","toNaturalFileSize","sizeMax","sizeMin","fileFilter","main","filesize","totalSizeMax","fileSize","allowFileSizeValidation","maxFileSize","minFileSize","maxTotalFileSize","fileValidateSizeFilter","FUNCTION","labelMinFileSizeExceeded","labelMinFileSize","labelMaxFileSizeExceeded","labelMaxFileSize","labelMaxTotalFileSizeExceeded","labelMaxTotalFileSize","FilePondPluginFileValidateType","guesstimateMimeType","getExtensionFromFilename","getFilenameFromURL","isValidMimeType","acceptedTypes","userInputType","acceptedType","wildcard","validateFile","acceptedFileTypes","typeDetector","getItemType","detectedType","accept","validationResult","handleRejection","acceptedFileTypesMapped","acceptedFileType","allTypes","allButLastType","lastType","allowFileTypeValidation","labelFileTypeNotAllowed","fileValidateTypeLabelExpectedTypes","fileValidateTypeLabelExpectedTypesMap","fileValidateTypeDetectType","FilePond","createObject","definition","attr","hasAttribute","svgElements","isSVGElement","createElementNS","isBrowser","getChildCount","getViewRect","elementRect","outer","childView","isRectIgnored","childViewRect","expandRect","calculateRectSize","marginBottom","marginRight","animator","spring","_ref$stiffness","_ref$damping","_ref$mass","velocity","resting","ts","skipToEndState","errorMargin","thereYet","onupdate","oncomplete","tween","_ref$duration","_ref$easing","_ref$delay","delay","createAnimator","category","def","addGetSet","overwrite","getter","setter","isDefined","rotateX","rotateY","propsHaveChanged","currentProps","newProps","applyStyles","perspective","elementCurrentStyle","Mixins","mixinConfig","viewProps","viewInternalAPI","viewExternalAPI","initialProps","getRect","viewState","on","off","updateRect","layoutCalculated","marginTop","marginLeft","offsetLeft","offsetTop","_ref$tag","_ref$name","_ref$attributes","_ref$read","_ref$write","_ref$create","_ref$destroy","_ref$filterFrameActio","filterFrameActionsForChild","actions","_ref$didCreateView","didCreateView","_ref$didWriteView","didWriteView","_ref$ignoreRect","_ref$ignoreRectUpdate","ignoreRectUpdate","_ref$mixins","store","frameRect","isResting","activeMixins","writers","readers","destroyers","getElement","getChildViews","sharedAPIDefinition","internalAPIDefinition","needle","linkView","unlinkView","writer","registerReader","registerDestroyer","destroyer","invalidateLayout","externalAPIDefinition","_read","internalAPI","_write","frameActions","mixin","mixinAPIDefinition","mixinAPI","childCount","routes","_ref$actions","newNode","referenceNode","insertAfter","toBoolean","toInt","toFloat","isInt","toBytes","naturalFileSize","methods","patch","revert","load","createAction","outline","headers","withCredentials","ondata","header","isAPI","conversionTable","splitter","boolean","int","float","bytes","function","levels","toFunctionReference","serverapi","getValueByType","valueType","newValueType","convertedValue","option","createOptions","optionDefinition","fromCamels","part","createOptionActions","createOptionQueries","InteractionMethod","getUniqueId","_AwaitValue","wrapped","_AsyncGenerator","gen","front","back","resume","wrappedAwait","settle","err","_invoke","return","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","Symbol","asyncIterator","throw","_toConsumableArray","arr2","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","iterator","decimalSeparator","thousandsStringWithSeparator","arrayRemove","_fire","sync","run","fireSync","_len","fire","_len2","_key2","onOnce","_cb","copyObjectPropertiesToObject","getOwnPropertyNames","getOwnPropertyDescriptor","PRIVATE","createItemAPI","ItemStatus","INIT","IDLE","PROCESSING_QUEUED","PROCESSING","PROCESSING_COMPLETE","PROCESSING_ERROR","PROCESSING_REVERT_ERROR","LOADING","LOAD_ERROR","FileOrigin","INPUT","LIMBO","LOCAL","getNonNumeric","getDecimalSeparator","toLocaleString","NUMBER","ACTION","SERVER_API","REGEX","filters","applyFilterChain","matchingFilters","initialFilter","applyFilters","getOptions","defaultOptions","captureMethod","allowSyncAcceptAttribute","allowDrop","allowBrowse","allowPaste","allowReplace","allowRevert","allowRemove","allowProcess","allowReorder","allowDirectoriesOnly","forceRevert","maxFiles","checkValidity","itemInsertLocationFreedom","itemInsertLocation","itemInsertInterval","dropOnPage","dropOnElement","dropValidation","ignoredFiles","instantUpload","maxParallelUploads","chunkUploads","chunkForce","chunkSize","chunkRetryDelays","server","fileSizeBase","labelDecimalSeparator","labelThousandsSeparator","labelIdle","labelInvalidField","labelFileWaitingForSize","labelFileSizeNotAvailable","labelFileCountSingular","labelFileCountPlural","labelFileLoading","labelFileAdded","labelFileLoadError","labelFileRemoved","labelFileRemoveError","labelFileProcessing","labelFileProcessingComplete","labelFileProcessingAborted","labelFileProcessingError","labelFileProcessingRevertError","labelTapToCancel","labelTapToRetry","labelTapToUndo","labelButtonRemoveItem","labelButtonAbortItemLoad","labelButtonRetryItemLoad","labelButtonAbortItemProcessing","labelButtonUndoItemProcessing","labelButtonRetryItemProcessing","labelButtonProcessItem","iconRemove","iconProcess","iconRetry","iconUndo","iconDone","oninit","onwarning","onactivatefile","oninitfile","onaddfilestart","onaddfileprogress","onaddfile","onprocessfilestart","onprocessfileprogress","onprocessfileabort","onprocessfilerevert","onprocessfile","onprocessfiles","onremovefile","onpreparefile","onupdatefiles","onreorderfiles","beforeDropFile","beforeAddFile","beforeRemoveFile","stylePanelLayout","stylePanelAspectRatio","styleItemPanelAspectRatio","styleButtonRemoveItemPosition","styleButtonProcessItemPosition","styleLoadIndicatorPosition","styleProgressIndicatorPosition","styleButtonRemoveItemAlign","getItemByQuery","getNumericAspectRatioFromString","getActiveItems","Status","EMPTY","ERROR","BUSY","READY","ITEM_ERROR","ITEM_BUSY","ITEM_READY","isItemInErrorState","isItemInBusyState","isItemInReadyState","queries","GET_STATUS","GET_ITEM","GET_ACTIVE_ITEM","GET_ACTIVE_ITEMS","GET_ITEMS","GET_ITEM_NAME","GET_ITEM_SIZE","GET_STYLES","GET_PANEL_ASPECT_RATIO","GET_ITEM_PANEL_ASPECT_RATIO","GET_ITEMS_BY_STATUS","GET_TOTAL_ITEMS","IS_ASYNC","limit","isBase64DataURI","leftPad","getDateString","lastModifiedDate","_relativePath","guesstimateExtension","getMimeTypeFromBase64DataURI","dataURI","getBlobFromBase64DataURI","byteString","getBase64DataFromBase64DataURI","getByteStringFromBase64DataURI","ab","ia","getBlobFromByteStringWithMimeType","getFileNameFromHeader","decodeURI","getFileSizeFromHeader","getTranfserIdFromHeader","getFileInfoFromHeaders","info","rows","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","createFileLoader","fetchFn","loadURL","computable","fileinfo","setSource","getProgress","abort","isGet","sendRequest","onheaders","onprogress","ontimeout","onabort","aborted","xhr","headersReceived","encodeURI","upload","lengthComputable","onreadystatechange","readyState","setRequestHeader","createResponse","createTimeoutResponse","getAllResponseHeaders","hasQS","buildURL","createFetchFunction","apiUrl","statusText","ChunkStatus","processFileChunked","chunks","chunkTransferId","chunkServer","serverId","fd","getResponseHeader","lastChunkIndex","retries","requestUrl","requestParams","canProcessChunk","processChunk","processChunks","updateTotalProgress","retryProcessChunk","totalBytesTransfered","totalSize","formData","FormData","requestTransferId","createProcessorFunction","canChunkUpload","shouldChunkUpload","willChunkUpload","createFileProcessorFunction","createRevertFunction","uniqueFileId","getRandomNumber","createFileProcessor","processFn","perceivedProgress","perceivedPerformanceUpdater","perceivedDuration","progressFn","completeFn","tickMin","tickMax","runtime","createPerceivedPerformanceUpdater","transferId","getDuration","deepCloneObject","createItem","serverFileReference","frozen","released","processingAborted","activeLoader","activeProcessor","abortProcessingRequestComplete","setStatus","_setMetadata","filenameWithoutExtension","fileExtension","fileType","relativePath","itemAPI","abortLoad","retryLoad","requestProcessing","abortProcessing","loader","createFileStub","success","processor","onprocess","revertFileUpload","freeze","release","archive","getItemById","itemId","getItemIndexByQuery","getDomainFromURL","protocol","dynamicLabel","listUpdated","listUpdateTimeout","optionalPromise","sortItems","getItemByQueryFromState","itemHandler","_ref$success","_ref$failure","failure","ABORT_ALL","DID_SET_FILES","_ref2$value","activeItems","interactionMethod","itemUpdateTimeout","doUpload","MOVE_ITEM","currentIndex","SORT","ADD_ITEMS","_ref6$success","_ref6$failure","insertLocation","totalItems","promises","ADD_ITEM","_ref7$index","_ref7$success","_ref7$failure","_ref7$options","maxFileCount","hasRoomForItem","_item","arrayInsert","insertItem","mainStatus","handleAdd","shouldAdd","loadComplete","isExternalURL","REQUEST_PREPARE_OUTPUT","_ref9$failure","COMPLETE_LOAD_ITEM","RETRY_ITEM_LOAD","REQUEST_ITEM_PREPARE","_success","REQUEST_ITEM_PROCESSING","processNow","PROCESS_ITEM","processNext","queueEntry","processingQueue","itemReference","RETRY_ITEM_PROCESSING","REQUEST_REMOVE_ITEM","shouldRemove","RELEASE_ITEM","REMOVE_ITEM","removeFromView","ABORT_ITEM_LOAD","ABORT_ITEM_PROCESSING","REQUEST_REVERT_ITEM_PROCESSING","handleRevert","shouldRevert","requestRemoveResult","REVERT_ITEM_PROCESSING","isMockItem","SET_OPTIONS","createElement$1","textNode","polarToCartesian","angleInDegrees","angleInRadians","percentageArc","arcSweep","describeArc","progressIndicator","spin","svg","align","ringStrokeWidth","ringFrom","ringTo","coordinates","fileActionButton","icon","isDisabled","shouldDisable","KB","MB","GB","removeDecimalsWhenZero","decimalCount","updateFile","fileName","updateFileSizeOnError","fileInfo","DID_UPDATE_ITEM_META","toPercentage","didSetItemLoadProgress","fileStatus","DID_REQUEST_ITEM_PROCESSING","DID_ABORT_ITEM_PROCESSING","DID_UPDATE_ITEM_PROCESS_PROGRESS","DID_UPDATE_ITEM_LOAD_PROGRESS","DID_THROW_ITEM_PROCESSING_REVERT_ERROR","DID_THROW_ITEM_REMOVE_ERROR","Buttons","AbortItemLoad","RetryItemLoad","RemoveItem","ProcessItem","AbortItemProcessing","RetryItemProcessing","RevertItemProcessing","ButtonKeys","isSupported","calculateFileInfoOffset","buttonRect","buttonRemoveItem","calculateButtonWidth","buttonAbortItemLoad","calculateFileVerticalCenterOffset","calculateFileHorizontalCenterOffset","getRemoveIndicatorAligment","DefaultStyle","buttonRetryItemLoad","buttonProcessItem","buttonAbortItemProcessing","buttonRetryItemProcessing","buttonRevertItemProcessing","loadProgressIndicator","processProgressIndicator","processingCompleteIndicator","IdleStyle","ProcessingStyle","StyleMap","DID_START_ITEM_LOAD","DID_START_ITEM_REMOVE","DID_LOAD_LOCAL_ITEM","processingCompleteIndicatorView","route","DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING","DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD","DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL","buttonAbortItemRemoval","buttonFilter","isAsync","alignRemoveItemButton","enabledButtons","buttonView","loadIndicatorView","progressIndicatorView","activeStyles","stylesToApply","defaultStyles","control","fileWrapper","PANEL_SPRING_PROPS","createSection","section","viewConstructor","panel","scalable","topRect","bottomRect","ITEM_TRANSLATE_SPRING","ITEM_SCALE_SPRING","StateMap","route$1","DID_UPDATE_PANEL_HEIGHT","write$4","DID_GRAB_ITEM","dragOrigin","DID_DRAG_ITEM","dragState","DID_DROP_ITEM","dragOffset","currentState","filepondItemState","handleClick","markedForRemoval","isPrimary","removedActivateListener","dragCenter","itemIds","prevIndex","setIndex","getIndex","getItemIndex","drag","getItemIndexByPosition","positionInView","horizontalSpace","itemRect","itemHorizontalMargin","itemsPerRow","childMid","itemVerticalMargin","itemTop","itemRight","itemBottom","dropAreaDimensions","setHeight","setWidth","moveItem","vx","vy","spawnDate","introItemView","getItemHeight","route$2","DID_ADD_ITEM","addIndex","cooldown","lastItemSpanwDate","DID_REMOVE_ITEM","numItems","oldIndex","dragPosition","dragHeight","dragWidth","cols","getGridIndex","getColIndex","visibleChildren","childHeight","childBottom","childTop","list","dragCoordinates","dragIndex","dragIndexOffset","removeIndexOffset","addIndexOffset","childRect","visualHeight","prevX","prevY","visualIndex","indexX","indexY","vectorX","vectorY","route$3","DID_DRAG","scopeLeft","scopeTop","DID_END_DRAG","listScroller","overflowing","attrToggle","setAcceptedFileTypes","toggleAllowMultiple","toggleDirectoryFilter","toggleDisabled","doesAllowBrowse","disableField","toggleRequired","setCaptureMethod","updateRequiredStatus","setCustomValidity","browser","handleChange","webkitRelativePath","form","resetFileInput","DID_SET_DISABLED","DID_SET_ALLOW_BROWSE","DID_SET_ALLOW_DIRECTORIES_ONLY","DID_SET_ALLOW_MULTIPLE","DID_SET_ACCEPTED_FILE_TYPES","DID_SET_CAPTURE_METHOD","DID_SET_REQUIRED","Key","updateLabelValue","clickable","dropLabel","handleKeyDown","click","caption","DID_SET_LABEL_IDLE","route$4","addBlob","DID_DROP","drip","getField","fields","syncFieldPositionsWithItems","didReorderItems","write$8","dataContainer","field","DID_DEFINE_VALUE","DID_REORDER_ITEMS","DID_SORT_ITEMS","text$1","epub","requestDataTransferItems","dataTransfer","links","getLinks","hasFiles","getFiles","promisedFiles","isFileSystemItem","getFilesFromItem","returnedFileGroups","isEntry","getAsEntry","isDirectory","kind","isDirectoryEntry","getFilesInDirectory","getAsFile","dirCounter","fileCounter","resolveIfDone","readEntries","dirEntry","directoryReader","createReader","readBatch","correctedFile","correctMissingFileType","fullPath","webkitGetAsEntry","getLinksFromTransferMetaData","getLinksFromTransferURLData","dragNDropObservers","pageLeft","pageTop","layerX","layerY","getDragNDropObserver","observer","newObserver","createDragNDropObserver","clients","dragenter","dragover","dragleave","handlers","createHandler","addListener","isEventTarget","elementAtPosition","elementFromPoint","getRootNode","initialTarget","setDropEffect","effect","dropEffect","onenter","overDropTarget","filterElement","onexit","ondrag","allowdrop","allowsTransfer","ondrop","createHopper","validateItems","catchesDropsOnPage","requiresDropOnElement","_options$filterItems","filterItems","scopeToObserve","createDragNDropClient","documentElement","lastState","filteredItems","ondragend","ondragstart","updateHopperState","hopperState","listening","listeners$1","handlePaste","activeEl","inScope","createPaster","listen","addFilesNotificationTimeout","notificationClearTimeout","filenames","assist","listModified","clear$1","isUsingFilePond","itemProcessedUndo","itemError","assistant","toCamels","debounce","immidiateOnly","prevent","calculateListItemMargin","calculateListHeight","visual","scrollList","itemList","newItem","removedItem","verticalItemCount","calculateRootBoundingBoxHeight","measureHeight","cappedHeight","exceedsMaxFiles","maxItems","totalBrowseItems","getDragIndex","toggleDrop","isAllowed","hopper","toggleBrowse","togglePaste","paster","route$5","DID_SET_ALLOW_DROP","DID_SET_ALLOW_PASTE","measure","widthPrevious","widthUpdated","updateHistory","previousAspectRatio","canHover","matchMedia","hasPointerEvents","isMultiItem","atMaxCapacity","addAction","listItemMargin","listHeight","currentLabelHeight","listMarginTop","listMarginBottom","boundsHeight","history","MAX_BOUNCES","bounces","listAvailableHeight","_listAvailableHeight","isCappedHeight","panelHeight","_listAvailableHeight2","itemMargin","createApp","initialOptions","originalElement","initialState","actionQueue","dispatchQueue","isBlocking","actionHandlers","_queryHandles","queryHandles","getState","processActionQueue","processDispatchQueue","createStore","visibilityHandler","resizeDoneTimer","isResizing","isResizingHorizontally","initialWindowWidth","currentWindowWidth","resizeHandler","isHidden","readWriteApi","routeActionsToEvents","eventRoutes","DID_DESTROY","DID_INIT","DID_THROW_MAX_FILES","DID_INIT_ITEM","DID_PREPARE_OUTPUT","DID_COMPLETE_ITEM_PROCESSING_ALL","DID_UPDATE_ITEMS","DID_ACTIVATE_ITEM","exposeEvent","pond","composed","prepareFile","removeFile","addFiles","lastArgument","processFile","createOptionAPI","setOptions","addFile","getFile","moveFile","processFiles","_len3","_key3","removeFiles","_len4","_key4","prepareFiles","browse","replaceElement","restoreElement","isAttachedTo","createAppObject","customOptions","mapObject","propertyMap","mapping","selectorRegExp","getAttributesAsObject","attributeMapping","createAppAtElement","mergedOptions","attributeOptions","app","createApp$1","PRIVATE_METHODS","createAppAPI","replacements","renameFile","renamedFile","copyFile","registeredPlugins","createAppPlugin","additionalOptions","pluginOutline","views","operamini","CSS","apps","FileStatus","OptionTypes","registerPlugin","fps","painter","requestTick","cancelTick","setTimerType","performance","createPainter","updateOptionTypes","indexToRemove","newHook","filepond","argsToArray","results","isFactory","isMethod","isSetter","isGetter","plugin_count","is_old_ie","search","that","IonRangeSlider","VERSION","current_plugin","calc_count","update_tm","old_from","old_to","old_min_interval","raf_id","dragging","force_redraw","no_diapason","has_tab_index","is_key","is_update","is_start","is_finish","is_active","is_resize","is_click","$cache","win","cont","rs","s_single","s_from","s_to","shad_single","shad_from","shad_to","edge","grid","grid_labels","coords","x_gap","x_pointer","w_rs","w_rs_old","w_handle","p_gap","p_gap_left","p_gap_right","p_step","p_pointer","p_handle","p_single_fake","p_single_real","p_from_fake","p_from_real","p_to_fake","p_to_real","p_bar_x","p_bar_w","grid_gap","big_num","big","big_w","big_p","big_x","w_min","w_max","w_from","w_to","w_single","p_min","p_max","p_from_left","p_to_left","p_single_left","config_from_data","$inp","skin","min_interval","max_interval","drag_interval","p_values","from_fixed","from_min","from_max","from_shadow","to_fixed","to_min","to_max","to_shadow","prettify_enabled","prettify_separator","prettify","force_edges","keyboard","grid_margin","grid_num","grid_snap","hide_min_max","hide_from_to","postfix","max_postfix","decorate_both","values_separator","input_values_separator","extra_classes","onStart","onFinish","onUpdate","update_check","validate","slider","from_percent","from_value","to_percent","to_value","convertToPercent","toggleInput","setMinMax","calc","callOnUpdate","callOnStart","updateScene","container_html","html","setTopHandler","appendGrid","appendDisableMask","removeDisableMask","changeLevel","removeClass","pointerMove","pointerUp","pointerClick","pointerFocus","pointerDown","$handle","restoreOriginalMinInterval","callOnFinish","setTempMinInterval","calcPointerPercent","moveByKey","min_pretty","_prettify","max_pretty","outerWidth","calcHandlePercent","handle_x","getHandleX","chooseHandle","checkDiapason","convertToFakePercent","convertToRealPercent","calcWithStep","checkMinInterval","checkMaxInterval","real_x","full","half","new_from","new_to","convertToValue","from_pretty","to_pretty","calcMinMax","calcLabels","fake","real","checkEdges","drawHandles","drawLabels","calcGridMargin","calcGridLabels","drawShadow","writeToInput","callOnChange","text_single","text_from","text_to","values_num","single_left","to_left","is_from_min","is_from_max","is_to_min","is_to_max","toggleClass","removeProp","no_min","diapason","one_percent","min_length","max_length","min_decimals","max_decimals","avg_decimals","p_current","p_next","p_num","vl","decorated","updateFrom","updateTo","updateResult","local_small_max","small_p","small_max","cacheGridLabels","$label","finish","calcGridCollision","next_i","ionRangeSlider","$window","$document","PLUGIN_NAME","STATES","isIE","appVersion","clearValue","animationEvent","OAnimation","MozAnimation","WebkitAnimation","whichAnimationEvent","$iziModal","autoOpen","iziModal","$element","timer","timerTimeout","progressBar","isPaused","isFullscreen","headerHeight","modalHeight","$overlay","overlayColor","$navigate","ids","hasClass","exc","iframe","iframeHeight","background","$wrap","zindex","theme","rtl","openFullscreen","createHeader","recalcWidth","recalcVerticalPos","afterRender","$header","subtitle","closeButton","fullscreen","timeoutProgressbar","prepend","timeoutProgressbarColor","headerColor","iconText","iconColor","setGroup","groupName","startProgress","hideEta","maxHideTime","currentTime","updateProgress","percentage","setInterval","pauseProgress","resumeProgress","resetProgress","preventClose","modal","opened","onOpened","oldTitle","$elem","changeHashWithoutScrolling","onFullscreen","iframeURL","bodyOverflow","onOpening","navigateCaption","show","modalWidth","navigateArrows","hide","appendToOverlay","transitionInOverlay","transitionIn","setZindex","one","pauseOnHover","overlayClose","transitionOut","focusInput","updateTimer","recalcLayout","closeOnEscape","closed","onClosed","restoreDefaultContent","onClosing","transitionOutOverlay","modals","in","getGroup","setTop","setBottom","setHeader","setTitle","setSubtitle","setIcon","setIconText","setHeaderColor","setBackground","setFullscreen","setContent","setTransitionIn","setTransitionOut","resetContent","startLoading","borderRadius","stopLoading","$loader","borderTopRightRadius","borderTopLeftRadius","borderBottomRightRadius","borderBottomLeftRadius","windowHeight","outerHeight","contentHeight","scrollHeight","wrapperHeight","borderSize","recalcButtons","widthButtons","modalHash","openModal","arrowKeys","newEL","$el","class","$this","Constructor","iziToast","$iziToast","ISMOBILE","ISCHROME","vendor","ISFIREFOX","InstallTrigger","ACCEPTSTOUCH","POSITIONS","MOBILEWIDTH","CONFIG","titleColor","titleSize","titleLineHeight","messageColor","messageSize","messageLineHeight","iconUrl","balloon","closeOnClick","displayMode","targetFirst","animateInside","resetOnHover","progressBarColor","progressBarEasing","transitionInMobile","transitionOutMobile","buttons","CustomEventPolyfill","extended","Log","toast","settings","xpos","opacityRange","stopMoving","startMoving","posX","toastLeft","ontouchmove","finalX","onmousemove","setSetting","getSettings","warning","question","$toast","REMAINING","START","END","TIMER","pause","propertyWidth","closedBy","refs","pointerEvents","transitionDelay","btoa","$inputs","$DOM","toastBody","toastTexts","toastCapsule","wrapper","isBase64","backgroundImage","buttonClose","progressBarDiv","strong","inputObj","allowedAttributes","for","createInput","currentInput","btn","$btns","currentButton","zIndex","animationTimes","defaultPrevented","origPrevent","firstSource","keysArray","nextIndex","desc","polyfill","ModalVideo","applyJQuery","modalVideo","jq","_createClass","protoProps","staticProps","_util","channel","facebook","youtube","autoplay","cc_load_policy","controls","disablekb","enablejsapi","fs","h1","iv_load_policy","listType","modestbranding","playlist","playsinline","rel","showinfo","wmode","nocookie","vimeo","autopause","byline","maxheight","maxwidth","player_id","portrait","xhtml","allowFullScreen","animationSpeed","classNames","modalVideoClose","modalVideoBody","modalVideoInner","modalVideoIframeWrap","modalVideoCloseBtn","aria","openMessage","dismissBtnMessage","ele","_this","_classCallCheck","opt","selectors","speed","videoId","getUniqId","videoUrl","getVideoUrl","getHtml","triggerEvent","getYoutubeUrl","getVimeoUrl","getFacebookUrl","getQueryString","__esModule","attachEvent","_typeof","eval","_liteReady2","_interopRequireDefault","_global","_jarallax2","oldPlugin","jarallax","jQueryPlugin","unshift","oldJqPlugin","_slicedToArray","_arr","_n","_d","_e","_s","sliceIterator","_rafl2","supportTransform","prefixes","wndW","wndH","wndY","forceResizeParallax","forceScrollParallax","updateWndVars","jarallaxList","oldPageData","updateParallax","isResized","isScrolled","resizeObserver","ResizeObserver","instanceID","Jarallax","userOptions","$item","imgSrc","imgElement","imgSize","imgPosition","imgRepeat","keepImg","elementInViewport","disableParallax","disableVideo","automaticResize","videoSrc","videoStartTime","videoEndTime","videoVolume","videoPlayOnlyVisible","onInit","onCoverImage","deprecatedDataAttribute","oldDataOptions","dataOptions","pureDataOptions","loweCaseOption","pureOptions","noAndroid","noIos","disableParallaxRegexp","disableVideoRegexp","elementInVP","$container","useImgTag","initImg","canInitParallax","_arguments","$imgElement","cloneNode","$itemParent","containerStyles","imageStyles","curStyle","curImgStyle","parentWithTransform","$itemParents","parentTransform","coverImage","clipContainer","observe","addToParallaxList","removeFromParallaxList","originalStylesTag","originalStylesImgTag","$clipStyles","styleSheet","contH","isScroll","scrollDist","resultH","resultMT","parallaxScrollDistance","isElementInViewport","contT","beforeTop","beforeTopEnd","afterTop","beforeBottom","beforeBottomEnd","afterBottom","fromViewportCenter","visiblePercent","positionY","ms","req","cancel","webkitCancelAnimationFrame","mozCancelAnimationFrame","_global2","threshold","speedArr","speedY","speedX","thresholdArr","thresholdY","thresholdX","defTransform","itemData","getWindowData","wnd","centerPercent","moveY","moveX","my","mx","orig","widgetUuid","widgetHasOwnProperty","widgetSlice","cleanData","elems","elem","triggerHandler","widget","existingConstructor","basePrototype","proxiedPrototype","namespace","fullName","Widget","pseudos","_createWidget","_proto","_childConstructors","_super","_superApply","returnValue","__super","__superApply","widgetEventPrefix","widgetName","widgetFullName","childPrototype","bridge","inputIndex","inputLength","isPlainObject","isMethodCall","methodValue","jquery","pushStack","_init","defaultElement","uuid","eventNamespace","bindings","hoverable","focusable","classesElementLookup","_on","ownerDocument","parentWindow","_getCreateOptions","_setOptionDisabled","_trigger","_getCreateEventData","_removeClass","removeAttr","curOption","_setOptions","_setOption","_setOptionClasses","classKey","currentElements","_classes","_toggleClass","bindRemoveEvent","nodesToBind","processClassString","checkOption","uniqueSort","not","extra","_untrackClassesElement","inArray","_off","_addClass","suppressDisabledCheck","delegateElement","handlerProxy","guid","_delay","_hoverable","mouseenter","mouseleave","_focusable","focusin","focusout","isDefaultPrevented","defaultEffect","hasOptions","effectName","isEmptyObject","cachedScrollbarWidth","rhorizontal","rvertical","roffset","rposition","rpercent","_position","getOffsets","offsets","parseCss","isWindow","scrollbarWidth","innerDiv","getScrollInfo","within","overflowX","isDocument","overflowY","hasOverflowX","scrollWidth","getWithinInfo","withinElement","isElemWindow","of","atOffset","targetOffset","basePosition","dimensions","raw","scrollInfo","collision","at","horizontalOffset","verticalOffset","collisionPosition","using","elemWidth","elemHeight","collisionWidth","collisionHeight","myOffset","dir","feedback","important","newOverRight","withinOffset","collisionPosLeft","overLeft","overRight","newOverBottom","collisionPosTop","overTop","overBottom","newOverLeft","newOverTop","flipfit","createPseudo","dataName","disableSelection","eventType","enableSelection","colors","rplusequals","stringParsers","execResult","propTypes","byte","mod","support","supportElem","allowEmpty","stringParse","inst","_rgba","parsed","spaceName","transparent","hue2rgb","_default","_spaceName","same","localCache","isCache","_space","used","other","startColor","startValue","blend","opaque","toRgbaString","toHslaString","toHexString","includeAlpha","local","cur","vtype","_hsla","hooks","cssHooks","curElem","fx","colorInit","expanded","names","baseEasings","dataSpace","dataSpaceStyle","dataSpaceAnimated","classAnimationActions","shorthandStyles","border","margin","getElementStyles","setAttr","addBack","prevObject","animateClass","applyClassChange","animated","baseClass","allAnimations","oldStyle","newStyle","styleDifference","styleInfo","dfd","Deferred","promise","when","switchClass","_normalizeArguments","speeds","standardAnimationOption","parseClip","uiBackCompat","setMode","createWrapper","removeWrapper","replaceWith","scaledDimensions","clipToBox","queueLength","dequeue","saveStyle","restoreStyle","getBaseline","createPlaceholder","cssPosition","removePlaceholder","cleanUp","setTransition","cssUnit","effectMethod","defaultMode","queueName","prefilter","normalizedMode","cssClip","clipObj","targetFixed","fixTop","fixLeft","endPosition","startPosition","clipInit","Sine","Circ","Elastic","Back","Bounce","pow2","bounce","easeIn","up","down","upAnim","downAnim","refValue","times","anims","motion","queuelen","both","oppositeMotion","pieces","cells","childComplete","horizFirst","animation1","animation2","baseline","temp","cProps","vProps","hProps","childOriginal","childFrom","childTo","fade","showhide","animateTo","positiveMotion","startClip","startRef","hasTabindex","mapName","focusableIfVisible","fieldset","closest","_form","formResetMixin","_formResetHandler","_bindFormResetHandler","_unbindFormResetHandler","unique","escapeSelector","rcssescape","fcssescape","asCodePoint","sel","even","odd","BACKSPACE","COMMA","DELETE","DOWN","ENTER","ESCAPE","HOME","LEFT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","SPACE","TAB","UP","ancestor","ancestors","parents","siblings","scrollParent","includeHidden","excludeStaticParent","overflowRegex","tabbable","uniqueId","removeUniqueId","collapsible","heightStyle","icons","activeHeader","activate","beforeActivate","hideProps","borderTopWidth","borderBottomWidth","showProps","prevShow","prevHide","_processPanels","_createIcons","prependTo","_destroyIcons","contents","_setupEvents","_activate","_keydown","toFocus","_eventHandler","_panelKeyDown","prevHeaders","prevPanels","panels","_findActive","headerId","panelId","isVisible","keydown","activeChildren","clickedChildren","clicked","clickedIsActive","collapsing","toShow","toHide","eventData","oldHeader","oldPanel","newHeader","newPanel","_toggle","_animate","_toggleComplete","adjust","boxSizing","safeActiveElement","submenu","menus","role","activeMenu","mouseHandled","lastMousePosition","_activateItem","isPropagationStopped","keepActiveItem","_menuItems","collapseAll","_closeOnDocumentClick","previousFilter","actualTarget","submenus","character","previousPage","nextPage","_move","collapse","filterTimer","_filterMenuItems","nextAll","newSubmenus","newItems","newWrappers","menu","submenuCaret","_isDivider","_itemRole","listbox","nested","focused","activeParent","_scrollIntoView","_close","_startOpening","elementHeight","_hasScroll","fromFocus","_open","currentMenu","startMenu","isFirstItem","prevAll","isLastItem","escapedCharacter","autoFocus","minLength","requestIndex","pending","liveRegionTimer","suppressKeyPress","suppressKeyPressRepeat","suppressInput","isTextarea","isInput","isMultiLine","_isContentEditable","valueMethod","isNewMenu","_keyEvent","term","_searchTimeout","keypress","selectedItem","searching","_change","_initSource","_appendTo","unselectable","mousedown","menufocus","liveRegion","menuselect","beforeunload","_isEventTargetInWidget","menuElement","_closeOnClickOutside","autocomplete","ajax","dataType","equalValues","menuVisible","modifierKey","_search","cancelSearch","_response","__response","_normalize","_suggest","ul","_renderMenu","_resizeMenu","_renderItemData","_renderItem","keyEvent","editable","escapeRegex","matcher","grep","messages","noResults","amount","controlgroupCornerRegex","onlyVisible","controlgroupLabel","checkboxradio","selectmenu","spinner","_enhance","_callChildMethod","childWidgets","unwrap","_initWidgets","wrapAll","instanceOptions","_resolveClassesValues","widgetElement","_updateCornerClass","_buildSimpleOptions","middle","only","_spinnerOptions","_buttonOptions","_checkboxradioOptions","_selectmenuOptions","labelContents","_readType","originalLabel","checked","_updateLabel","_updateIcon","_getRadioGroup","nameSelector","_toggleClasses","iconSpace","toAdd","iconPosition","showLabel","hasTitle","keyup","_updateTooltip","displayBlock","_attachIcon","_attachIconSpace","newShowLabel","newIcon","primary","secondary","buttonset","controlgroup","datepicker_instActive","Datepicker","_curInst","_disabledInputs","_datepickerShowing","_inDialog","_mainDivId","_inlineClass","_appendClass","_triggerClass","_dialogClass","_disableClass","_unselectableClass","_currentClass","_dayOverClass","regional","closeText","prevText","nextText","currentText","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","weekHeader","firstDay","isRTL","showMonthAfterYear","yearSuffix","selectMonthLabel","selectYearLabel","_defaults","showOn","showAnim","showOptions","appendText","buttonText","buttonImage","buttonImageOnly","hideIfNoPrevNext","navigationAsDateFormat","gotoCurrent","yearRange","showOtherMonths","selectOtherMonths","showWeek","calculateWeek","iso8601Week","shortYearCutoff","beforeShowDay","beforeShow","onSelect","onChangeMonthYear","onUpdateDatepicker","numberOfMonths","showCurrentAtPos","stepMonths","stepBigMonths","altField","constrainInput","showButtonPanel","autoSize","dpDiv","datepicker_bindHover","datepicker_handleMouseover","datepicker","_isDisabledDatepicker","datepicker_extendRemove","markerClassName","maxRows","_widgetDatepicker","_attachDatepicker","_newInst","_connectDatepicker","_inlineDatepicker","selectedDay","selectedMonth","selectedYear","drawMonth","drawYear","_attachments","_doKeyDown","_doKeyPress","_doKeyUp","_autoSize","_disableDatepicker","_showDatepicker","_lastInput","_hideDatepicker","findMax","maxI","_formatDate","divSpan","_setDate","_getDefaultDate","_updateDatepicker","_updateAlternate","_dialogDatepicker","browserWidth","browserHeight","scrollX","scrollY","_dialogInst","_dialogInput","_pos","blockUI","_destroyDatepicker","$target","_enableDatepicker","_getInst","_optionDatepicker","_getDateDatepicker","_getMinMaxDate","_changeDatepicker","_refreshDatepicker","_setDateDatepicker","noDefault","_setDateFromField","_getDate","dateStr","handled","_selectDay","_adjustDate","_clearDate","_gotoToday","chars","chr","_possibleChars","lastVal","_getFormatConfig","beforeShowSettings","isFixed","_findPos","_checkOffset","datepicker_getZindex","_shouldFocusInput","_generateHTML","_attachHandlers","origyearshtml","numMonths","_getNumberOfMonths","activeCell","yearshtml","dpWidth","dpHeight","inputWidth","inputHeight","viewWidth","viewHeight","postProcess","_tidyDialog","unblockUI","_checkExternalClick","period","_adjustInstDate","currentDay","_notifyChange","_selectMonthYear","selectedIndex","td","_selectDate","noWeekends","checkDate","iFormat","dim","iValue","shortYearCutoffTemp","doy","literal","lookAhead","getNumber","isDoubled","digits","getName","shortNames","longNames","checkLiteral","_ticksTo1970","_getDaysInMonth","_daylightSavingAdjust","ATOM","COOKIE","ISO_8601","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","formatNumber","formatName","dates","_restrictMinMax","_determineDate","newDate","offsetString","offsetNumeric","noChange","origMonth","origYear","selectDay","selectMonth","selectYear","maxDraw","gotoDate","buttonPanel","dow","col","selectedDate","cornerClass","calender","thead","leadDays","curRows","numRows","printDate","dRow","tbody","daySettings","otherMonth","tempDate","isMultiMonth","currentDate","_canAdjustMonth","_isInRange","_generateMonthYearHeader","_getFirstDayOfMonth","inMinYear","inMaxYear","years","thisYear","determineYear","endYear","monthHtml","minMax","curYear","curMonth","yearSplit","minYear","maxYear","otherArgs","_mouseInit","_mouseDown","started","_mouseDestroy","_mouseMoveDelegate","_mouseUpDelegate","_mouseMoved","_mouseStarted","_mouseUp","_mouseDownEvent","btnIsLeft","elIsCancel","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMove","documentMode","ignoreMissingWhich","_mouseDrag","_mouseStop","proto","allowDisconnected","safeBlur","mouse","addClasses","connectToSortable","containment","cursorAt","handle","helper","iframeFix","refreshPositions","revertDuration","scrollSensitivity","scrollSpeed","snap","snapMode","snapTolerance","_setPositionRelative","_setHandleClassName","_removeHandleClassName","destroyOnClear","_getHandle","_blurActiveElement","_blockFrames","iframeBlocks","_unblockFrames","_cacheHelperProportions","ddmanager","_cacheMargins","hasFixedAncestor","positionAbs","_refreshOffsets","originalPosition","_generatePosition","originalPageX","originalPageY","_adjustOffsetFromHelper","_setContainment","_clear","dropBehaviour","prepareOffsets","dragStart","_getParentOffset","_getRelativeOffset","noPropagation","_convertPositionTo","_uiHash","dropped","dragStop","handleElement","helperIsFunction","helperProportions","_isRootNode","po","scrollIsRootNode","isUserScrollable","relativeContainer","constrainPosition","co","cancelHelperRemoval","draggable","uiSortable","sortables","sortable","isOver","_storedCSS","_helper","innermostIntersecting","_intersectsWith","containerCache","_parent","fromOutside","_revert","_cursor","_opacity","scrollParentNotHidden","overflowOffset","scrolled","snapElements","$t","$o","bs","ls","snapping","snapItem","makeArray","_zIndex","alsoResize","animateDuration","animateEasing","autoHide","ghost","handles","_num","_isNumber","_aspectRatio","_proportionallyResizeElements","resizable","elementIsWrapper","originalResizeStyle","_proportionallyResize","_setupHandles","_handles","resizing","_addedHandles","_removeHandles","hname","sw","nw","_renderAxis","padPos","padWrapper","curleft","curtop","_renderProxy","originalSize","sizeDiff","originalMousePosition","_propagate","smp","_updatePrevProperties","_updateVirtualBoundaries","_updateRatio","_respectSize","_updateCache","_applyChanges","pr","ista","soffseth","soffsetw","prevPosition","prevSize","forceAspectRatio","pMinWidth","pMaxWidth","pMinHeight","pMaxHeight","_vBoundaries","cpos","csize","ismaxw","ismaxh","isminw","isminh","dw","_getPaddingPlusBorderDimensions","widths","borders","paddings","prel","outerDimensions","elementOffset","cs","oc","containerElement","containerOffset","containerPosition","parentData","containerSize","woset","hoset","isParent","isOffsetRelative","cp","pRatio","cop","continueResize","ho","os","op","gridX","gridY","ox","oy","isMaxWidth","isMaxHeight","isMinWidth","isMinHeight","topOffset","beforeClose","resizeStart","resizeStop","sizeRelatedOptions","resizableRelatedOptions","originalCss","originalTitle","_createWrapper","uiDialog","_createTitlebar","_createButtonPane","_makeDraggable","_makeResizable","_isOpen","_trackFocus","_untrackInstance","_destroyOverlay","detach","_focusedElement","opener","_hide","moveToTop","_moveToTop","moved","zIndices","zIndexMax","_focusTabbable","_size","_createOverlay","_show","_makeFocusTarget","hasFocus","uiDialogButtonPane","uiDialogTitlebarClose","_restoreTabbableFocus","_keepFocus","tabbables","uiDialogTitle","uiDialogTitlebar","_title","uiButtonSet","_createButtons","buttonOptions","filteredUi","resizeHandles","_minHeight","_trackingInstances","exists","resizableOptions","isDraggable","isResizable","nonContentHeight","minContentHeight","maxContentHeight","_allowInteraction","jqMinor","isOpening","overlays","dialog","dialogClass","greedy","tolerance","deactivate","over","proportions","isover","isout","_addToManager","droppables","_splice","_addActiveClass","_deactivate","_removeActiveClass","_over","_addHoverClass","_out","_removeHoverClass","_drop","childrenIntersection","droppable","isOverAxis","reference","toleranceMode","absolute","droppablesLoop","parentsUntil","greedyChild","parentInstance","hoverClass","activeClass","_constrainedValue","valueDiv","_refreshValue","indeterminate","_percentage","overlayDiv","autoRefresh","selected","selecting","unselected","unselecting","dragged","elementPos","selectees","selecteeOffset","startselected","opos","selectee","doSelect","hit","selectmenuId","_drawButton","_drawMenu","_rendered","menuItems","_parseOption","buttonItem","_renderButtonItem","_resizeButton","_buttonEvents","_refreshMenu","menuWrap","menuInstance","_setSelection","_select","focusIndex","_getSelectedItem","_parseOptions","_setAria","_toggleAttr","_documentClick","menuWidget","_setText","currentOptgroup","li","optgroup","selection","getSelection","removeAllRanges","addRange","rangeCount","getRangeAt","createRange","_selectFocusedItem","slide","numPages","_keySliding","_mouseSliding","_animateOff","_handleIndex","_detectOrientation","_calculateNewMax","_createRange","_createHandles","handleCount","existingHandles","_valueMin","_handleEvents","normValue","closestHandle","mouseOverHandle","elementSize","_normValueFromMouse","_valueMax","thisDistance","_lastChangedValue","_clickOffset","_slide","_stop","pixelTotal","pixelMouse","percentMouse","valueTotal","valueMouse","_trimAlignValue","uiHash","handleIndex","_hasMultipleValues","newVal","otherVal","newValues","_values","valsLength","_refreshRange","valModStep","alignValue","_precision","_precisionOf","lastValPercent","valPercent","valueMin","valueMax","oRange","curVal","ready","connectWith","dropOnEmpty","forcePlaceholderSize","forceHelperSize","beforeStop","receive","_isOverAxis","_isFloating","overrideHandle","validHandle","reverting","_refreshItems","_removeCurrentsFromItems","noActivation","currentContainer","domPosition","_createPlaceholder","storedCursor","storedStylesheet","_storedZIndex","_storedOpacity","_preserveHelperProportions","containers","lastPositionAbs","_scroll","itemElement","intersection","_refreshItemPositions","dragDirection","_getDragVerticalDirection","_getDragHorizontalDirection","_intersectsWithPointer","_intersectsWithSides","_rearrange","_contactContainers","_noFinalSort","serialize","_getItemsAsjQuery","connected","dyClick","dxClick","isOverElementHeight","isOverElementWidth","isOverElement","forcePointerForContainers","floating","verticalDirection","horizontalDirection","isOverBottomHalf","isOverRightHalf","_connectWith","addItems","targetData","_queries","queriesLength","fast","toleranceElement","refreshContainers","_createTrPlaceholder","sourceTr","targetTr","itemWithLeastDistance","posProperty","sizeProperty","nearBottom","innermostContainer","innermostIndex","hardRefresh","delayedTriggers","delayEvent","_inst","sender","spinnerModifier","culture","incremental","numberFormat","page","_draw","_events","cancelBlur","mousewheel","spinning","_spin","mousewheelTimer","checkFocus","_repeat","uiSpinner","_adjustValue","_increment","aboveMin","_format","Globalize","allowAny","stepUp","_stepUp","stepDown","_stepDown","pageUp","pages","pageDown","_uiSpinnerHtml","_buttonHtml","rhash","beforeLoad","_isLocal","anchor","anchorUrl","locationUrl","running","_processTabs","_initialActive","tabs","anchors","locationHash","tab","_getPanelForTab","_tabKeydown","focusedTab","goingForward","_handlePageNav","activating","_focusNextTab","_panelKeydown","_findNextTab","lastTabIndex","_setupHeightStyle","_sanitizeSelector","lis","tablist","prevTabs","prevAnchors","_getList","anchorId","originalAriaControls","_createPanel","oldTab","newTab","_getIndex","jqXHR","_ajaxSettings","fail","beforeSend","ajaxSettings","track","_addDescribedBy","describedby","_removeDescribedBy","mouseover","disabledTitles","tooltipData","_updateContent","blurEvent","_registerCloseHandlers","contentOption","delayedShow","a11yContent","positionOption","_find","_tooltip","mousemove","clearInterval","fakeEvent","targetElement","_removeTooltip","closing","hiding","tooltipClass","andSelf","configs","includeMargin","$hidden","thisStyle","_tmp","matchers","elapse","DIRECTIVE_KEY_MAP","pluralize","plural","singular","Countdown","finalDate","instanceNumber","setFinalDate","countdownInstance","dateString","parseDateString","newTotalSecsLeft","hasEventsAttached","totalSecsLeft","elapsed","seconds","minutes","hours","daysToWeek","daysToMonth","weeks","weeksToMonth","totalDays","totalHours","totalMinutes","totalSeconds","offsetObject","strftime","sanitize","directives","directive","modifier","countdown","argumentsArray","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","Emitter","_callbacks","Dropzone","_Emitter","getPrototypeOf","fallback","previewTemplate","clickableElements","dropzone","_ret","elementOptions","optionsForElement","forceFallback","isBrowserSupported","acceptedFiles","acceptedMimeTypes","uploadMultiple","chunking","renameFilename","getExistingFallback","previewsContainer","getElements","parallelUploads","forceChunking","parallelChunkUploads","retryChunks","retryChunksLimit","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","thumbnailMethod","resizeWidth","resizeHeight","resizeMimeType","resizeQuality","resizeMethod","filesizeBase","ignoreHiddenFiles","autoProcessQueue","autoQueue","addRemoveLinks","hiddenInputContainer","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","dictFileSizeUnits","tb","mb","kb","dzuuid","dzchunkindex","dztotalfilesize","dzchunksize","dztotalchunkcount","totalChunkCount","dzchunkbyteoffset","chunksUploaded","messageElement","_i2","_iterator2","innerText","getFallbackForm","srcX","srcY","srcWidth","srcHeight","srcRatio","trgRatio","trgWidth","trgHeight","transformFile","resizeImage","dragstart","dragend","paste","addedfile","_this2","previewElement","_i3","_iterator3","_i4","_iterator4","_removeLink","removeFileEvent","UPLOADING","confirm","_i5","_iterator5","removedfile","_updateMaxFilesReachedClass","thumbnail","dataUrl","_i6","_iterator6","thumbnailElement","_i7","_iterator7","errormultiple","processing","processingmultiple","uploadprogress","bytesSent","_i8","_iterator8","totaluploadprogress","sending","sendingmultiple","successmultiple","canceled","emit","canceledmultiple","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","_thumbnailQueue","_processingThumbnail","objects","_i9","_iterator9","accepted","getFilesWithStatus","QUEUED","ADDED","_this3","setupHiddenFileInput","hiddenFileInput","_i10","_iterator10","_i11","_iterator11","updateTotalUploadProgress","getAddedFiles","getUploadingFiles","getQueuedFiles","efct","effectAllowed","clickableElement","elementInside","removeAllFiles","totalUploadProgress","totalBytesSent","totalBytes","getActiveFiles","_i12","_iterator12","existingFallback","fieldsString","_getParamName","getFallback","_i13","_iterator13","_i14","elementListeners","_this4","removeEventListeners","cancelUpload","setupEventListeners","selectedSize","selectedUnit","units","getAcceptedFiles","_addFilesFromItems","handleFiles","__guard__","_this5","_this6","_i15","_iterator14","_addFilesFromDirectory","directory","_this7","dirReader","__guardMethod__","_i16","_iterator15","isValidFile","_this8","uuidv4","_renameFile","chunked","_enqueueThumbnail","_errorProcessing","enqueueFile","_i17","_iterator16","_this9","processQueue","_this10","_processThumbnailQueue","_this11","createThumbnail","without","cancelIfNecessary","_i18","_iterator17","_this12","resizedDataURL","ExifRestore","dataURItoBlob","fixOrientation","_this13","createThumbnailFromUrl","readAsDataURL","_this14","loadExif","resizeInfo","drawImageIOSFix","trgX","trgY","processingLength","queuedFiles","_i19","_iterator18","uploadFiles","groupedFiles","_getFilesWithXhr","_i20","_iterator19","CANCELED","_i21","_iterator20","_groupedFile","_this15","_transformFiles","transformedFiles","transformedFile","handleNextChunk","chunkIndex","startedChunkCount","dataBlock","_uploadData","finishedChunkUpload","allFinished","SUCCESS","_finished","dataBlocks","_i22","_this16","_i23","_iterator21","resolveOption","_finishedUploading","_handleUploadError","_updateFilesUploadProgress","Accept","headerName","headerValue","additionalParams","_getChunk","_i24","_iterator22","_file","_addFormElementData","submitRequest","_this17","doneCounter","_i25","_iterator23","inputName","inputType","_i26","_iterator24","_i27","_iterator25","_file2","_i28","_iterator26","_file3","allFilesFinished","_i29","_iterator27","_file4","_i30","_iterator28","_file5","responseText","_i31","_iterator29","_i32","_iterator30","_i33","_iterator31","initClass","camelize","forElement","autoDiscover","dropzones","checkElements","_i34","_iterator32","_i35","_iterator33","blacklistedBrowsers","capableBrowser","FileList","_i36","_iterator34","mimeString","asc","rejectedItem","els","_i37","_iterator35","_i38","_iterator36","rejected","baseMimeType","_i39","_iterator37","validType","ACCEPTED","detectVerticalSquash","ih","ey","py","sh","vertSquashRatio","KEY_STR","chr1","chr2","chr3","enc1","enc2","enc3","enc4","origFileBase64","resizedFileBase64","rawImage","decode64","segments","slice2Segments","exifManipulation","encode64","exifArray","getExifArray","newImageArray","insertExif","seg","buf","separatePoint","mae","ato","rawImageArray","endPoint","contentLoaded","rem","pre","createEventObject","doScroll","frameElement","poll","_autoDiscoverFunction","highlight","pat","innerHighlight","spannode","middlebit","splitText","middleclone","removeHighlight","normalize","hasHighlight","removehighlight","traverseUpTil","dcontext","inContext","searchThreashold","headingObj","headingTitle","anchorName","dataItem","matchedAttributeOffset","pagesearch","inParams","_params","BROWSER_IS_IE7","BROWSER_SCROLLBAR_WIDTH","DOMSCROLL","DRAG","MOUSEDOWN","MOUSEENTER","MOUSEMOVE","MOUSEUP","MOUSEWHEEL","NanoScroll","RESIZE","SCROLL","TOUCHMOVE","cAF","getBrowserScrollbarWidth","hasTransform","isFFWithBuggyScrollbar","_elementStyle","_vendor","paneClass","sliderClass","contentClass","enabledClass","flashedClass","iOSNativeScrolling","preventPageScrolling","disableResize","alwaysVisible","flashDelay","sliderMinHeight","sliderMaxHeight","documentContext","windowContext","appName","ActiveXObject","_prefixStyle","outerStyle","isOSXFF","ua","$content","previousPosition","WebkitOverflowScrolling","nativeScrolling","createEvents","addEvents","preventScrolling","isActive","updateScrollValues","maxScrollTop","prevScrollTop","contentScrollTop","maximum","maxSliderTop","paneHeight","sliderHeight","sliderTop","setOnScrollStyles","cssValue","scrollRAF","isBeingDragged","pane","sliderY","paneTop","unbind","panedown","wheel","enter","removeEvents","cssRule","stopped","contentPosition","contentStyle","contentStyleOverflowY","paneOuterHeight","parentMaxHeight","scrollBottom","scrollTo","flash","nanoScroller","scrollbar","nanoscroller","tocify","tocClassName","tocFocusClassName","tocHoverClassName","hideTocClassName","headerClassName","headerClass","subheaderClassName","subheaderClass","itemClassName","itemClass","extendPageClassName","extendPageClass","ignoreSelector","showAndHide","showEffect","showEffectSpeed","hideEffect","hideEffectSpeed","smoothScroll","smoothScrollSpeed","showAndHideOnScroll","highlightOnScroll","highlightOffset","extendPage","extendPageOffset","scrollHistory","hashGenerator","highlightDefault","extendPageScroll","_generateToc","_addCSSClasses","webkit","_setEventHandlers","_setActiveElement","firstElem","_nestElements","nextUntil","_appendSubheaders","pageload","focusClass","hashValue","_generateHashValue","hashGeneratorOption","previousHeader","currentTagName","previousTagName","_triggerShow","_scrollTo","lastElem","lastElemOffset","currentElem","winScrollTop","winHeight","docHeight","anchorText","closestAnchorDistance","closestAnchorIdx","slideDown","fadeIn","slideUp","fadeOut","setOption","currentDiv","tips","reBgImage","rePNG","ie6","createPopup","Poshytip","elm","$elm","poshytip","$tip","$arrow","$inner","alignTo","allowTipHover","clearTimeouts","showDelayed","hideDelayed","asyncAnimating","eventX","eventY","followCursor","calcPos","arrow","timeOnScreen","showTimeout","hideTimeout","dontOverwriteOption","async","newContent","currPos","bgImage","bgImagePNG","$table","tipW","maxW","tipOuterW","tipOuterH","refreshAniDuration","hideAniDuration","showAniDuration","slideOffset","xL","xC","xR","yT","yC","yB","$win","elmOffset","alignX","alignY","keepInViewport","die","undelegate","bgImageFrameSize","liveEvents","deadOpts","live","delegate","EditableForm","editableform","$div","initInput","str2value","prerender","initTemplate","$form","template","initButtons","$btn","showbuttons","$loading","loading","showLoading","isSaving","$tpl","autosubmit","$input","submit","value2input","showForm","postrender","msg","$group","$block","errorGroupClass","errorBlockClass","input2value","savenochange","value2str","submitValue","value2submit","pk","editableutils","tryParseJson","ajaxOptions","setValue","convertStr","engine","inherit","Child","Parent","superclass","setCursorPosition","moveEnd","moveStart","safe","sliceObj","caseSensitive","keyLower","newObj","getConfigData","objectKeys","itemsByValue","sourceData","valueProp","idKey","isValArray","itemValue","TypeConstructor","editabletypes","datefield","dateuifield","dateui","supportsTransitions","Popup","Inline","containerName","containerDataName","innerCss","containerClass","editableContainer","splitOptions","formOptions","initContainer","delayedHide","exclude_classes","closeOthers","containerOptions","tip","renderForm","nochange","reason","setPosition","rendering","rendered","closeAll","innerShow","innerHide","setContainerOption","innerDestroy","ec","onblur","placement","autohide","anim","special","destroyed","Editable","initLive","doAutotext","isValueByText","html2value","autotext","emptyclass","value2htmlFinal","value2html","handleEmpty","emptytext","unsavedclass","sent","$e","bgColor","datakey","$elems","errors","AbstractInput","tpl","$clear","setClass","inputclass","abstractinput","List","deferred","onSourceReady","renderList","sourceError","sourceCache","cacheID","doPrepend","err_callbacks","sourceOptions","prependData","iterateItem","Text","renderClear","toggleClear","Textarea","textarea","Select","fillItems","Checklist","checklist","Password","Email","email","Url","Tel","tel","NumberInput","Range","Time","select2","convertSource","isMultiple","multiple","isRemote","idFunc","formatSelection","viewseparator","getSeparator","initSelection","customId","customText","isInitial","Combodate","combodate","ampm","$widget","getTemplate","initCombos","smartDays","fillCombo","token","$c","$combo","fillCommon","relTime","firstItem","relativeTime","langData","_relativeTime","fillDay","twoDigit","daysCount","$month","$year","leadZero","fillMonth","fillYear","yearDescending","fillHour","h12","fillMinute","minuteStep","fillSecond","secondStep","fillAmpm","ampmL","dt","notSelected","$ampm","roundTime","getNearest","$select","optValue","errorClass","viewformat","handlePlacement","DateUI","initPicker","isAutosubmit","DateUIField","fixHooks","mouseHooks","orgEvent","HORIZONTAL_AXIS","wheelDeltaY","wheelDeltaX","setup","onmousewheel","teardown","unmousewheel","$scrollTo","isWin","onAfter","toff","contentWindow","targ","Pos","onAfterFirst","Dim","Tween","propHooks","interrupt","_last","scrollTabs","itemTag","left_arrow_size","right_arrow_size","scrollPos","_height","press_and_hold_timeout","size_checking","panel_width","delay_timer","scrollRightFunc","scroll_distance","scroll_duration","mouseout","scrollLeftFunc","context_obj","scroll_selected_into_view","click_callback","selected_item","scroll_width","backup","domObject","addTab","refreshFirstLast","removeTabs","jquery_selector_str","refreshState","clearTabs","old_last_item","old_first_item","new_last_item","new_first_item","hideTabs","domObj","showTabs","scrollSelectedIntoView","getDefaults","createClass","SPFormat","clipval","quartile","normalizeValue","normalizeValues","addCSS","ensureArray","RangeMap","MouseHandler","barHighlightMixin","tristate","discrete","bullet","VShape","VCanvas_base","VCanvas_canvas","VCanvas_vml","UNSET_OPTION","shapeCount","fillColor","defaultPixelsPerValue","composite","tagValuesAttribute","tagOptionsPrefix","enableTagOptions","enableHighlight","highlightLighten","tooltipSkipNull","tooltipPrefix","tooltipSuffix","disableHiddenCheck","numberFormatter","numberDigitGroupCount","numberDigitGroupSep","numberDecimalMark","disableTooltips","disableInteraction","spotColor","highlightSpotColor","highlightLineColor","spotRadius","minSpotColor","maxSpotColor","normalRangeMin","normalRangeMax","normalRangeColor","drawNormalOnTop","chartRangeMin","chartRangeMax","chartRangeMinX","chartRangeMaxX","barColor","negBarColor","stackedBarColor","zeroColor","nullColor","zeroAxis","barWidth","barSpacing","chartRangeClip","colorMap","posBarColor","zeroBarColor","tooltipValueLookups","thresholdColor","thresholdValue","targetColor","performanceColor","rangeColors","sliceColors","boxLineColor","boxFillColor","whiskerColor","outlierLineColor","outlierFillColor","medianColor","showOutliers","outlierIQR","tooltipFormatFieldlistKey","lq","med","uq","ro","lw","rw","Class","SPFormatClass","fre","precre","fclass","lookups","lookupkey","fieldvalue","prec","spformat","nf","groupsize","groupsep","decsep","ignoreNull","createStyleSheet","WebkitAppearance","simpledraw","useExisting","interact","mhandler","sparkline","namespaces","registerCanvas","cleardraw","RangeMapClass","rangelist","range_map","currentPageX","currentPageY","splist","displayTooltips","highlightEnabled","registerSparkline","sp","updateDisplay","$canvas","mouseclick","removeTooltip","clickEvent","sparklines","currentEl","updatePosition","spcount","needsRefresh","clearRegionHighlight","tooltiphtml","changeEvent","localX","localY","setRegionHighlight","getCurrentRegionTooltip","disableHighlight","sizeStyle","tooltipClassname","sizetipStyle","tooltipOffsetX","tooltipOffsetY","sizetip","updateWindowDims","scrollRight","getSize","mousex","mousey","userValues","alert","sparkline_display_visible","pl","extendedOptions","tagOptionType","tagValCache","getTagSetting","pairs","keyval","defaultval","tagOption","_base","currentRegion","initTarget","interactive","pixelHeight","getRegion","newRegion","renderHighlight","changeHighlight","formatlen","showFields","showFieldsKey","newFields","fv","fieldlen","getCurrentRegionFields","calcHighlightColor","mult","rgbnew","highlightColor","newShapes","shapeids","regionShapes","renderRegion","replaceWithShapes","newShape","replaceWithShape","shapes","vertices","regionMap","xvalues","yvalues","yminmax","hightlightSpotId","lastShapeId","highlightSpot","highlightLine","vertex","drawCircle","highlightSpotId","insertAfterShape","drawLine","canvasTop","highlightLineId","removeShapeId","scanValues","isStr","valcount","maxy","maxyorg","miny","minyorg","maxx","minx","processRangeOptions","drawNormalRange","canvasLeft","rangey","ytop","drawRect","rangex","yvallast","paths","xnext","yvalcount","lineShapes","fillShapes","plen","valueSpots","hlSpotsEnabled","drawShape","getLastShapeId","isStackString","groupMin","groupMax","stackRanges","vlen","xaxisOffset","clipMin","clipMax","vlist","svals","yoffset","stackMin","stackMax","totalBarWidth","stackTotals","stackRangesNeg","canvasHeightEf","colorMapByIndex","colorMapByValue","calcColor","stacknum","valuenum","newColor","yoffsetNeg","minPlotted","allMin","pheight","valueShapes","regiondata","shapeid","getShapeAt","fieldkey","region","shape","renderRange","renderPerformance","renderTarget","rn","rangeval","rangewidth","perfval","perfwidth","targetval","targettop","targetheight","newslice","renderSlice","drawPieSlice","quartiles","loutlier","routlier","lwhisker","rwhisker","iqr","q1","q2","q3","unitSize","minValue","maxValue","appendShape","_pxregex","_genShape","_insert","_calculatePixelDims","shapetype","shapeargs","verticalAlign","shapeseq","currentTargetShapeId","_getContext","_drawShape","targetX","targetY","isPointInPath","_drawCircle","_drawPieSlice","_drawRect","sid","shapemap","groupel","vpath","startx","starty","endx","endy","vel","existing","swing","Toast","_positionClasses","_defaultIcons","prepareOptions","options_to_extend","addToDom","bindToast","_toastContent","_toastEl","allowToastClose","heading","_container","processLoader","showHideTransition","afterShown","beforeHide","afterHidden","_extToastCount","canAutoHide","hideAfter","transitionTime","loaderBg","resetWhat","what","NotificationsHub","CacheResolver","NProgress","_settings","$progress","Settings","minimum","positionUsing","trickle","trickleRate","trickleSpeed","showSpinner","renderOnInit","removeOnFinish","randomTrickle","startOnInit","fromStart","perc","toBarPerc","Modernizr","csstransforms","work","barPositionCSS","barCSS","isStarted","$bar","getPositioningCSS","keepGoing","inc","demo","tilt","updateTransforms","mouseEnter","mouseLeave","glare","updateGlareSize","glareElement","getMousePositions","mousePositions","percentageX","percentageY","tiltX","maxTilt","tiltY","disableAxis","maxGlare","prepareGlare","glarePrerender","glareElementWrapper","waitForImages","hasImageProperties","hasImageAttributes","uncached","finishedCallback","eachCallback","waitForAll","allImgsLength","allImgsLoaded","finished","allImgs","hasImgProperties","matchUrl","propertyValue","attributeValues","attributeValue","resolveWith","eachArguments","notifyWith","pluginName","pluginClass","pluginType","multi","closeable","backdrop","dismissible","onShow","onHide","abortXHR","iframeOptions","frameborder","allowtransparency","scrolling","hideEmpty","rtlClass","_srcElements","_globalIdSeed","_isBodyEventHandled","_offsetOut","numeric","getPopFromElement","hideAllPop","pointerEventToXY","touch","changedTouches","WebuiPopover","_name","_targetclick","getTrigger","mouseenterHandler","mouseleaveHandler","_poped","_inited","_opened","_idSeed","getDelegateOptions","getHideAnimation","getCache","getHideDelay","resetAutoHide","getAutoHide","autoHideHandler","eventTarget","getTarget","hideAll","hideOthers","currentPop","hideOtherPops","_customTargetClass","setContentASync","getContent","canEmptyHide","displayContent","bindBodyEvents","getElementPosition","$targetContent","getContentElement","optWidth","optHeight","getAnimation","getPlacement","initTargetEvents","postionInfo","getTargetPositin","$iframe","iframeWidth","arrowOffset","isTargetLoaded","getTriggerElement","removeTarget","$contentElement","getTitleElement","getUrl","getOffsetTop","getOffsetLeft","dataAttr","getDelayShow","ani","$titleEl","hasContent","getIframe","$next","$ct","bodyTouchStartHandler","escapeHandler","bodyClickHandler","_timeout","_enterTimeout","$eventEl","canHide","popX1","popY1","popX2","popY2","isH","isV","elRect","cssPos","containerRect","elementW","elementH","arrowSize","fixedW","fixedH","refix","pageH","pageW","validLeft","validRight","validTop","validBottom","noInit","$result","webuiPopover","webuiPopovers","isCreated","created","updateContent","updateContentAsync","setDefaultOptions","WebuiPopovers","autosize","Map","delete","ta","cachedHeight","pageResize","wordWrap","changeOverflow","overflows","getParentOverflows","docTop","styleHeight","computed","actualHeight","tippy","Popper","_extends","isUCBrowser","isIOS","MSStream","Defaults","a11y","allowHTML","animateFill","arrowType","flipBehavior","flipOnUpdate","hideOnClick","ignoreAttributes","inertia","interactiveBorder","interactiveDebounce","onHidden","onMount","onShown","popperOptions","showOnInit","sticky","touchHold","updateDuration","POPPER_INSTANCE_DEPENDENCIES","Selectors","elementProto","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","arrayFrom","parentSelector","parentElement","closestCallback","timeoutId","getModifier","modifiers","isSingular","isVirtual","evaluateValue","setFlipModifierEnabled","setInnerHTML","contentEl","getChildren","popper","addInertia","createArrowElement","createBackdropElement","addInteractive","applyTransitionDuration","transitionDuration","toggleTransitionEndListener","WebkitTransition","getPopperPlacement","fullPlacement","setVisibilityState","toggleTheme","themeName","checkHideOnClick","exclude","_tippy","PASSIVE","isUsingTouch","onDocumentTouch","onDocumentMouseMove","lastMouseMoveTime","onDocumentClick","isClickTrigger","clearDelayTimeouts","onWindowBlur","evaluateProps","acc","valueAsString","getDataAttributeOptions","validateOptions","idCounter","createTippy","collectionProps","lastTriggerEvent","lastMouseMoveEvent","showTimeoutId","hideTimeoutId","isPreparingToShow","transitionEndListener","debouncedOnMouseMove","onMouseMove","createPopperElement","prepareShow","popperChildren","popperInstance","isDestroyed","isMounted","isShown","addTriggersToReference","createPopperInstance","disableEventListeners","positionVirtualReferenceNearCursor","_lastMouseMoveEvent","PADDING","isVerticalPlacement","isHorizontalPlacement","scheduleUpdate","removeFollowCursorListener","targetEl","createDelegateChildTippy","hasFollowCursorBehavior","prepareHide","cleanupOldMouseListeners","onTrigger","isEventListenerStopped","referenceTheCursorIsOver","isCursorOverPopper","isCursorOverReference","popperPlacement","popperRect","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","isCursorOutsideInteractiveBorder","onMouseLeave","onBlur","onDelegateShow","onDelegateHide","supportsTouch","isTouchEvent","_instance$popperChild","preventOverflow","boundariesElement","behavior","flipped","onTransitionEnd","removeTriggersFromReference","getInnerElements","prevProps","nextProps","_getChildren","removeInteractive","removeInertia","updatePopperElement","shouldEnableListeners","enableEventListeners","onCreate","afterPopperPositionUpdates","mount","onTransitionedIn","onTransitionedOut","destroyTargetInstances","globalEventListenersBound","targets","virtualReference","polyfills","polyfillElementPrototypeProperties","getArrayOfElements","partialDefaults","isAnyTippyOpen","setIsAnyTippyOpen","updateInstances","_originalProps","ko","qc","aa","ba","qd","ra","Qb","uc","da","Ja","gd","deferUpdates","useOnlyNativeEvents","foreachHidesDestroyed","Na","MouseEvents","propertychange","Jc","Lb","Pa","wc","Mb","jb","Nb","bc","Ba","Ab","Ga","Tb","removeNode","Yb","la","oa","Ca","va","Xc","Ua","Zc","Db","Ud","vd","compareDocumentPosition","Sb","kd","Ac","onError","Gc","za","detachEvent","Fb","Eb","baseVal","Bb","Ad","Yc","mergeAttributes","wd","Pd","Da","Zd","$d","Lc","Nd","hc","Od","includeFields","submitter","Ub","cleanExternalData","yb","tfoot","th","parseHTML","clean","innerShiv","Md","fc","Uc","ud","Kd","Xb","bd","cd","na","MutationObserver","scheduler","zb","resetForTesting","Sd","Ta","throttle","throttleEvaluation","rateLimit","Hb","ub","notifySubscribers","equalityComparer","ic","lc","mc","Ib","Jb","qb","sc","subscribe","hb","Qa","Gb","Wa","ed","xc","ob","Dd","nc","sb","rc","Bd","Qc","cc","od","pd","qa","Va","Ya","Yd","Ma","Za","Nc","Ha","trackArrayChanges","removeAll","destroyAll","sorted","reversed","zc","Pc","Pb","Ob","sparse","Kc","nb","ka","Xa","ha","sa","rb","jc","wb","Wc","disposeWhenNodeIsRemoved","Sa","disposeWhen","Rb","Ic","pure","deferEvaluation","ea","ja","Ka","Vb","La","Ia","Jd","Rd","Hc","zd","yd","Oc","Fd","xb","ad","Wd","ma","__ko__hasDomDataOptionValue__","$b","getAttributeNode","specified","unknown","typeof","Ra","wa","ac","vb","getBindingHandler","preprocess","valueAccessors","bindingParams","Id","eb","createComment","ol","Ea","Vc","Wb","Cd","Vd","Sc","nd","nodeHasBindings","getComponentNameForNode","getBindings","getBindingsString","parseBindingsString","tc","getBindingAccessors","Tc","yc","Kb","preprocessNode","bindingContextForDescendants","hd","Zb","Ec","pa","Cb","ca","Mc","$data","controlsDescendantBindings","shouldBindDescendants","script","$parents","$root","$rawData","dataDependency","exportDependencies","createChildContext","noChildContext","$parentContext","$parent","sd","Cc","Fa","notifyImmediately","Td","ib","ld","Oa","vc","Dc","synchronous","Gd","loaders","suppressLoaderExceptions","Bc","viewModel","DocumentFragment","Xd","Fc","getConfig","loadComponent","loadTemplate","loadViewModel","dd","$raw","component","createViewModel","templateNodes","$component","$componentTemplateNodes","koDescendantsComplete","lookupNamespaceURI","removeAttributeNS","setAttributeNS","uniqueName","checkedValue","__ko__cssValue","cancelBubble","foreach","Rc","includeDestroyed","afterAdd","beforeRemove","beforeMove","afterMove","templateEngine","hasfocus","__ko_hasfocusUpdating","__ko_hasfocusLastValue","let","selectedOptions","setProperty","opera","textInput","textinput","rd","renderTemplateSource","createJavaScriptEvaluatorBlock","makeTemplateSource","renderTemplate","isTemplateRewritten","allowTemplateRewriting","rewriteTemplate","kc","xd","Ld","md","nodes","lb","jd","previousSibling","dc","Qd","$index","ifnot","dontLimitMoves","Aa","pb","_countWaitingForRemove","Ed","$a","Hd","tmpl","koBindingContext","templateOptions","fragments","addTemplate","ko_code","ko_with","hookCallback","hasOwnProp","isObjectEmpty","arrLen","createUTC","strict","createLocalOrUTC","utc","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","formatMoment","expandFormat","mom","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","aliases","addUnitAlias","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","absFloor","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","strictRegex","isStrict","getParseRegexForToken","regexEscape","matched","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","modMonth","monthsShort","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","parseTwoDigitYear","getSetYear","createDate","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","fwd","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","weekdaysMin","weekdaysShort","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos1","pos2","getSetHour","globalLocale","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","LL","LLL","LLLL","dayOfMonthOrdinalParse","ss","mm","ww","MM","meridiemParse","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","getSetGlobalLocale","getLocale","defineLocale","abbr","_config","parentLocale","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","configFromArray","expectedWeekday","yearToUse","nowValue","_useUTC","getUTCMonth","getUTCDate","currentDateArray","weekYear","weekdayOverflow","curWeek","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","skipped","stringLength","totalParsedInputLength","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","configFromObject","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","Duration","quarters","isoWeek","unitHasDecimal","orderLen","isDurationValid","_milliseconds","_days","_months","_bubble","isDuration","absRound","utcOffset","offsetFromString","chunkOffset","cloneWithOffset","setTime","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","addSubtract","isAdding","invalid","subtract","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","objectTest","propertyTest","propertyLen","isMomentInputObject","monthDiff","wholeMonthDiff","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","preParsePostFormat","isCalendarSpec","sod","calendarFormat","asFloat","zoneDelta","startOfDate","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","getPrioritizedUnits","prioritizedLen","toDate","keepOffset","inspect","zone","isLocal","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","isFuture","pastFuture","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","isLower","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","posNegDuration","relativeTime$1","toIsoString","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","pluralForm","plurals","months$1","weekdaysParseExact","symbolMap","pluralForm$1","plurals$1","pluralize$1","months$2","symbolMap$1","numberMap","symbolMap$2","numberMap$1","pluralForm$2","plurals$2","pluralize$2","months$3","suffixes","relativeTimeWithPlural","forms","standalone","lastDigit","last2Digits","symbolMap$3","numberMap$2","symbolMap$4","numberMap$3","symbolMap$5","numberMap$4","relativeTimeWithMutation","mutationTable","softMutation","mutation","lastNumber","monthsParseExact","monthsRegex$1","minWeekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","ll","lll","llll","months$4","monthsParse$1","monthsRegex$2","plural$1","translate$1","processRelativeTime","processRelativeTime$1","processRelativeTime$2","months$5","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","monthsShort$1","monthsParse$2","monthsRegex$3","monthsShortDot$1","monthsShort$2","monthsParse$3","monthsRegex$4","monthsShortDot$2","monthsShort$3","monthsParse$4","monthsRegex$5","monthsShortDot$3","monthsShort$4","monthsParse$5","monthsRegex$6","processRelativeTime$3","symbolMap$6","numberMap$5","numbersPast","numbersFuture","translate$2","verbalNumber","monthsRegex$7","monthsParse$6","monthsShortWithDots","monthsShortWithoutDots","processRelativeTime$4","processRelativeTime$5","symbolMap$7","numberMap$6","symbolMap$8","numberMap$7","monthsParse$7","translate$3","weekEndings","translate$4","plural$2","translate$5","eraYearOrdinalRegex","$0","$1","$2","suffixes$1","symbolMap$9","numberMap$8","symbolMap$a","numberMap$9","isUpper","symbolMap$b","numberMap$a","months$8","suffixes$2","processRelativeTime$6","eifelerRegelAppliesToNumber","translateSingular","translate$6","units$1","format$1","relativeTimeWithPlural$1","relativeTimeWithSingular","translator","correctGrammaticalCase","wordKey","translate$7","symbolMap$c","numberMap$b","relativeTimeMr","symbolMap$d","numberMap$c","symbolMap$e","numberMap$d","monthsShortWithDots$1","monthsShortWithoutDots$1","monthsParse$8","monthsRegex$8","monthsShortWithDots$2","monthsShortWithoutDots$2","monthsParse$9","monthsRegex$9","symbolMap$f","numberMap$e","monthsNominative","monthsSubjective","monthsParse$a","plural$3","translate$8","relativeTimeWithPlural$2","relativeTimeWithPlural$3","plural$4","monthsParse$b","months$9","days$1","months$a","monthsShort$7","plural$5","translate$9","processRelativeTime$7","translator$1","translator$2","symbolMap$g","numberMap$f","suffixes$3","suffixes$4","numbersNouns","translate$a","numberNoun","hundred","ten","numberAsNoun","suffixes$5","processRelativeTime$8","relativeTimeWithPlural$4","plural$6","processHoursFunction","nominative","accusative","genitive","months$b","days$2","daterangepicker","DateRangePicker","parentEl","startDate","endDate","maxSpan","autoApply","singleDatePicker","showDropdowns","showWeekNumbers","showISOWeekNumbers","showCustomRangeLabel","timePicker","timePicker24Hour","timePickerIncrement","timePickerSeconds","linkedCalendars","autoUpdateInput","alwaysShowCalendars","opens","drops","buttonClasses","applyButtonClasses","cancelButtonClasses","applyLabel","cancelLabel","weekLabel","customRangeLabel","daysOfWeek","isShowing","leftCalendar","rightCalendar","rangeHtml","applyClass","cancelClass","dateLimit","isInvalidDate","isCustomDate","setStartDate","setEndDate","timepicker","clickPrev","clickNext","clickDate","hoverDate","monthOrYearChanged","timeChanged","clickRange","clickApply","clickCancel","elementChanged","updateMonthsInView","previousRightTime","updateView","renderTimePicker","updateCalendars","updateFormInputs","renderCalendar","calculateChosenLabel","side","lastMonth","lastYear","daysInLastMonth","dayOfWeek","startDay","curDate","dateHtml","yearHtml","maxLimit","isCustom","cname","timeSelector","i_in_24","am_html","pm_html","containerTop","parentOffset","parentRightEdge","containerRight","containerLeft","_outsideClickProxy","outsideClick","oldStartDate","oldEndDate","chosenLabel","showCalendars","hideCalendars","customRange","leftOrRight","cal","implementOptions","__WEBPACK_EXTERNAL_MODULE_0__","__WEBPACK_EXTERNAL_MODULE_3__","extendStatics","__extends","__","undistributeHeight","getScrollbarWidths","leftRightWidth","bottomWidth","sanitizeScrollbarWidth","_isLeftRtlScrollbars","innerEl","computeIsLeftRtlScrollbars","getIsLeftRtlScrollbars","compensateScroll","rowEls","scrollbarWidths","uncompensateScroll","disableCursor","enableCursor","distributeHeight","shouldRedistribute","minOffset1","minOffset2","flexEls","flexOffsets","flexHeights","usedHeight","minOffset","naturalOffset","matchCellWidths","maxInnerWidth","subtractInnerElHeight","outerEl","getScrollParent","getOuterRect","getClientRect","getCssFloat","getContentRect","compareByFieldSpec","obj1","obj2","fieldSpec","obj1fallback","obj2fallback","val1","val2","flexibleCompare","order","localeCompare","computeGreatestUnit","unitsDesc","computeRangeAs","durationHasTime","dur","isPrimaryMouseButton","getEvX","getEvY","getEvIsTouch","preventSelection","allowSelection","intersectRects","rect1","rect2","constrainPoint","getRectCenter","diffPoints","point1","point2","parseFieldSpecs","specs","compareByFieldSpecs","fieldSpecs","cmp","dayIDs","diffDayTime","stripTime","diffDay","diffByUnit","computeDurationGreatestUnit","durationInput","divideRangeByDuration","divideDurationByDuration","dur1","dur2","months1","months2","multiplyDuration","isNativeDate","isTimeString","hasOwnPropMethod","htmlEscape","mergeProps","propObjs","complexProps","complexObjs","dest","copyOwnProps","name_1","applyAll","functions","thisObj","removeMatching","testFunc","removeCnt","removeExact","exactVal","isArraysEqual","firstDefined","stripHtmlEntities","cssToStr","cssProps","statements","attrsToStr","capitaliseFirstLetter","compareNumbers","later","moment_ext_1","UnzonedRange","startInput","endInput","isStart","isEnd","stripZone","startMs","endMs","invertRanges","constraintRange","dateRange","invertedRanges","compareUnzonedRanges","otherRange","newRange","intersectsWith","containsRange","innerRange","containsDate","constrainDate","equals","getStart","getEnd","range1","range2","tslib_1","ParsableModelMixin_1","Class_1","EventDefParser_1","EventSource","rawInput","applyProps","normalizeId","timezone","removeEventDefsById","eventDefId","removeAllEventDefs","getPrimitive","otherSource","parseEventDefs","rawEventDefs","eventDef","eventDefs","parseEventDef","calendarTransform","sourceTransform","eventDataTransform","applyManualStandardProps","rawProps","defineStandardProps","copyVerbatimStandardProps","mixInto","startEditable","durationEditable","overlap","constraint","allDayDefault","Mixin_1","ListenerMixin","listenTo","getListenerNamespace","stopListeningTo","listenerId","util_1","ambigDateOfMonthRegex","ambigTimeOrZoneRegex","newMomentProto","oldMomentProto","oldMomentFormat","formatStr","momentExt","makeMoment","parseAsUTC","isAmbigTime","isAmbigZone","ambigMatch","isSingleString","_ambigTime","_ambigZone","_fullCalendar","weekCalc","_fullCalendar_weekCalc","dayHours","wasAmbigTime","hasZone","tzo","EmitterMixin","_prepareIntercept","intercept","triggerWith","hasHandlers","ComponentFootprint","unzonedRange","isAllDay","toLegacy","msToMoment","EventDef_1","EventInstance_1","EventDateProfile_1","SingleEventDef","buildInstances","buildInstance","dateProfile","rezone","superSuccess","miscProps","allDay","Mixin","destClass","mixOver","_getView","internalApiVersion","date_formatting_1","formatRange","queryMostGranularFormatUnit","locale_1","datepickerLocale","EmitterMixin_1","ListenerMixin_1","Model_1","Model","Constraints_1","Constraints","UnzonedRange_1","ComponentFootprint_1","BusinessHourGenerator_1","BusinessHourGenerator","EventDef","EventDefMutation_1","EventDefMutation","EventSourceParser_1","EventSourceParser","EventSource_1","ThemeRegistry_1","defineThemeSystem","EventInstanceGroup_1","EventInstanceGroup","ArrayEventSource_1","ArrayEventSource","FuncEventSource_1","FuncEventSource","JsonFeedEventSource_1","JsonFeedEventSource","EventFootprint_1","EventFootprint","CoordCache_1","CoordCache","DragListener_1","DragListener","Promise_1","TaskQueue_1","TaskQueue","RenderQueue_1","RenderQueue","Scroller_1","Scroller","Theme_1","Theme","DateComponent_1","DateComponent","InteractiveDateComponent_1","InteractiveDateComponent","Calendar_1","Calendar","View_1","View","ViewRegistry_1","defineView","getViewConfig","DayTableMixin_1","DayTableMixin","BusinessHourRenderer_1","BusinessHourRenderer","EventRenderer_1","EventRenderer","FillRenderer_1","FillRenderer","HelperRenderer_1","HelperRenderer","ExternalDropping_1","ExternalDropping","EventResizing_1","EventResizing","EventPointing_1","EventPointing","EventDragging_1","EventDragging","DateSelecting_1","DateSelecting","StandardInteractionsMixin_1","StandardInteractionsMixin","AgendaView_1","AgendaView","TimeGrid_1","TimeGrid","DayGrid_1","DayGrid","BasicView_1","BasicView","MonthView_1","MonthView","ListView_1","ListView","EventDateProfile","buildUnzonedRange","forcedAllDay","forceEventDuration","getDefaultEventEnd","isStandardProp","propName","EventRange_1","eventInstances","getAllEventRanges","sliceNormalRenderRanges","eventInstanceToEventRange","sliceRenderRanges","isInverse","sliceInverseRenderRanges","eventInstance","slicedRange","slicedEventRanges","unzonedRanges","eventInstanceToUnzonedRange","ownerDef","getEventDef","hasInverseRendering","explicitEventDef","optionsManager","processIconOverride","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","iconClasses","applyIconOverridePrefix","iconOverridePrefix","getClass","getIconClass","baseIconClass","getCustomButtonIconClass","customButtonProps","iconOverrideCustomButtonOption","PromiseStub","executor","attachImmediatelyResolvingThen","attachImmediatelyRejectingThen","onResolve","onReject","exportHooks","touchMouseIgnoreWait","globalEmitter","neededCount","GlobalEmitter","isTouching","mouseIgnoreDepth","needed","unneeded","handleTouchStart","touchcancel","handleTouchCancel","handleTouchEnd","handleMouseDown","handleMouseMove","mouseup","handleMouseUp","selectstart","handleSelectStart","contextmenu","handleContextMenu","handleTouchMoveProxy","handleTouchMove","handleScrollProxy","handleScroll","stopTouch","shouldIgnoreMouse","skipMouseIgnore","startTouchMouseIgnore","viewHash","viewName","viewConfig","HitDragListener","handleInteractionStart","subjectRect","origPoint","subjectEl","hitsNeeded","computeScrollBounds","origHit","queryHit","subjectCenter","coordAdjust","handleDragStart","handleHitOver","handleDrag","isHitsEqual","handleHitOut","handleDragEnd","handleHitDone","isOrig","handleInteractionEnd","isCancelled","hitsNotNeeded","handleScrollEnd","releaseHits","prepareHits","hit0","hit1","isHitPropsWithin","subHit","superHit","options_1","localeOptionHash","dpComputableOptions","dpOptions","monthYearFormat","momComputableOptions","dayOfMonthFormat","momOptions","fcOptions","mediumTimeFormat","smallTimeFormat","extraSmallTimeFormat","hourFormat","noMeridiemTimeFormat","instanceComputableOptions","smallDayDateFormat","weekFormat","weekNumberTitle","smallWeekFormat","localeCode","newFcOptions","mergeOptions","getMomentLocaleData","populateInstanceComputableOptions","dpLocaleCode","jqDatePicker","englishDefaults","titleRangeSeparator","defaultTimedEventDuration","defaultAllDayEventDuration","nextDayThreshold","columnHeader","weekends","weekNumberCalculation","scrollTime","showNonCurrentDates","lazyFetching","startParam","endParam","timezoneParam","prevYear","nextYear","allDayText","agendaEventMinHeight","dragOpacity","dragRevertDuration","dragScroll","unselectAuto","dropAccept","eventOrder","eventLimit","eventLimitText","eventLimitClick","dayPopoverFormat","handleWindowResize","windowResizeDelay","longPressDelay","rtlDefaults","buttonIcons","themeButtonIcons","complexOptions","optionObjs","members","SubClass","generateId","copy","rawId","getRendering","hasBgRendering","getConstraint","getOverlap","isStartExplicitlyEditable","isDurationExplicitlyEditable","isExplicitlyEditable","_id","applyMiscProps","eventDefsToEventInstances","eventRangeToEventFootprint","eventRange","eventFootprintToComponentFootprint","eventFootprint","componentFootprint","getEventLegacy","EventDefDateMutation_1","SingleEventDef_1","createFromRawProps","largeUnit","dateMutation","defMutation","dateProps","standardProps","verbatimStandardProps","createFromDiff","mutateSingle","origDateProfile","buildNewDateProfile","setDateMutation","sourceClasses","registerClass","EventSourceClass","eventSource","renderEl","applyOverflow","scrollEl","lockOverflow","getScrollTop","setScrollTop","getClientWidth","getClientHeight","GlobalEmitter_1","segSelector","dateSelectingClass","dateClicking","dateClickingClass","dateSelecting","eventPointingClass","eventPointing","eventDraggingClass","eventDragging","eventResizingClass","eventResizing","externalDroppingClass","externalDropping","setElement","bindToEl","bindAllSegHandlersToEl","removeElement","endInteractions","executeEventUnrender","bindGlobalHandlers","bindToDocument","unbindGlobalHandlers","unbindFromDocument","bindDateHandlerToEl","eventInteraction","bindSegHandlerToEl","segEl","shouldIgnoreEventPointing","shouldIgnoreTouch","isSelected","selectedEvent","canStartSelection","canStartResize","isEventDefDraggable","footprint","isEventDefResizable","canStartDrag","isEventDefSelected","interaction","isEventDefStartEditable","isEditable","isEventDefGenerallyEditable","isEventDefResizableFromStart","isEventDefResizableFromEnd","diffDates","isEventInstanceGroupAllowed","eventInstanceGroup","eventFootprints","eventRangesToEventFootprints","validUnzonedRange","constraints","isExternalInstanceGroupAllowed","isSelectionFootprintAllowed","DateProfileGenerator_1","viewSpec","batchRenderDepth","initRenderQueue","initHiddenDays","dateProfileGenerator","dateProfileGeneratorClass","bindBaseRenderHandlers","eventOrderSpecs","renderQueue","onRenderQueueStart","onRenderQueueStop","startBatchRender","stopBatchRender","freezeContentHeight","addScroll","queryScroll","updateViewSize","popScroll","thawContentHeight","requestRender","actionType","whenSizeUpdated","isRunning","computeTitle","currentRangeUnit","currentUnzonedRange","activeUnzonedRange","isRangeAllDay","computeTitleFormat","currentDateProfile","newDateProfile","build","unsetDate","unset","fetchInitialEvents","forceAllDay","usesMinMaxTime","requestEvents","bindEventChanges","resetEvents","unbindEventChanges","setEvents","eventsPayload","unsetEvents","requestDateRender","executeDateRender","requestDateUnrender","executeDateUnrender","isDateInit","startNowIndicator","unselect","stopNowIndicator","triggerViewRender","triggerViewDestroy","publiclyTrigger","requestEventsRender","executeEventRender","triggerAfterEventsRendered","requestEventsUnrender","triggerBeforeEventsDestroyed","requestBusinessHoursRender","businessHourGenerator","renderBusinessHours","requestBusinessHoursUnrender","unrenderBusinessHours","processUnselect","handleDocumentMousedown","getNowIndicatorUnit","initialNowDate","getNow","initialNowQueriedMs","nowIndicatorTimeoutID","nowIndicatorIntervalID","updateNowIndicator","isDatesRendered","unrenderNowIndicator","renderNowIndicator","isNowIndicatorRendered","updateSize","isAuto","isResize","queuedScroll","applyQueuedScroll","applyScroll","queryDateScroll","computeInitialDateScroll","applyDateScroll","reportEventDrop","eventMutation","undoFunc","eventManager","mutateEventsWithId","triggerEventDrop","dateDelta","reportExternalDrop","singleEventDef","isEvent","isSticky","addEventDef","triggerExternalDrop","reportEventResize","triggerEventResize","endDelta","durationDelta","renderSelectionFootprint","reportSelection","triggerSelect","footprintToDateProfile","unrenderSelection","selectEventInstance","selectedEventInstance","unselectEventInstance","getEventSegs","processRangeUnselect","processEventUnselect","ignore","triggerBaseRendered","triggerBaseUnrendered","triggerDayClick","dayEl","isDateInOtherMonth","getUnzonedRangeOption","parseUnzonedRange","hiddenDays","isHiddenDayHash","dayCnt","trimHiddenDays","inputUnzonedRange","skipHiddenDays","isHiddenDay","isExclusive","watch","deps","initialEvents","intervalStart","intervalEnd","fillRenderer","rangeUpdated","displayEventTime","displayEventEnd","eventTimeFormat","computeEventTimeFormat","computeDisplayEventTime","computeDisplayEventEnd","instanceGroup","eventRanges","_getDateProfile","bgRanges","fgRanges","renderBgRanges","renderFgRanges","unrender","unrenderBgRanges","unrenderFgRanges","segs","eventFootprintsToSegs","renderFgSegEls","renderFgSegs","fgSegs","unrenderFgSegs","renderBgSegs","bgSegs","unrenderBgSegs","getSegs","renderSegs","getClasses","getBgClasses","getCss","getBgColor","filterEl","filterEventRenderEl","disableResizing","hasEventRenderHandlers","hasPublicHandlers","renderedSegs","beforeFgSegHtml","fgSegHtml","getSegClasses","legacy","getTimeText","displayEnd","_getTimeText","objs","getStylingObjs","eventClassName","getSkinCss","getBorderColor","getTextColor","eventBackgroundColor","eventColor","eventBorderColor","eventTextColor","getFallbackStylingObjs","sortEventSegs","compareEventSegs","seg1","seg2","cf1","cf2","r1","r2","englishMoment","PART_SEPARATOR","SPECIAL_TOKEN_MARKER","MAYBE_MARKER","MAYBE_REGEXP","specialTokens","largeTokenMap","fakeFormatString","processMaybeMarkers","renderFakeFormatStringParts","renderFakeFormatString","getParsedFormatString","date1","date2","parsedFormat","leftI","rightI","middleI","sameUnits","unzonedDate1","unzonedDate2","renderedParts1","renderedParts2","leftStr","rightStr","middleStr1","middleStr2","middleStr","renderParsedFormat","parsedFormatStrCache","chunkFormatString","buildFakeFormatString","buildSameUnits","parseFormatString","chunker","splitStringLiteral","maybe","tokenInfo","fakePart","fakeParts","m0","m1","candidate","best","_watchers","_props","applyGlobalWatchers","constructed","_globalWatchArgs","setProps","oldProps","changeset","changedProps","changedCnt","depList","startFunc","stopFunc","unwatch","_watchDeps","watcher","queuedChangeCnt","depCnt","satisfyCnt","bindTuples","isCallingStop","depName","isOptional","onDepChange","RecurringEventDef_1","eventInput","EventDefDateMutation","clearEnd","forceTimed","dateProfile0","dateProfile1","subtractDates","date0","setDateDelta","setEndDelta","eventDateProfile","shouldRezone","startDelta","applyTimezone","setStartDelta","StandardTheme_1","JqueryUiTheme_1","themeClassHash","themeClass","getThemeSystemClass","themeSetting","setRawEventDefs","currentTimezone","forcedOffsetParentEl","offsetParentEl","queryBoundingRect","buildElHorizontals","buildElVerticals","lefts","rights","tops","bottoms","ensureBuilt","getHorizontalIndex","leftOffset","getVerticalIndex","getLeftOffset","leftIndex","getLeftPosition","getRightOffset","getRightPosition","getTopOffset","topIndex","getTopPosition","getBottomOffset","getBottomPosition","scrollParentEl","isPointInBounds","isLeftInBounds","isTopInBounds","isInteracting","isDistanceSurpassed","isDelayEnded","isTouch","isGeneric","shouldCancelTouchScroll","scrollAlwaysKills","isAutoScroll","scrollIntervalMs","startInteraction","extraOptions","bindHandlers","initAutoScroll","startDelay","handleDistanceSurpassed","endInteraction","endDrag","delayTimeoutId","destroyAutoScroll","unbindHandlers","handleMove","dragstop","handleTouchScroll","startDrag","updateAutoScroll","initialEv","handleDelayEnd","handleDebouncedScroll","endAutoScroll","scrollBounds","topCloseness","bottomCloseness","leftCloseness","rightCloseness","sensitivity","topVel","leftVel","setScrollVel","scrollTopVel","scrollLeftVel","constrainScrollVel","scrollIntervalId","scrollIntervalFunc","frac","updateDayTable","daysPerRow","rowCnt","msToUtcMoment","renderUnzonedRange","dayIndices","dayDates","breakOnWeeks","updateDayTableCols","colCnt","computeColCnt","colHeadFormat","computeColHeadFormat","getCellDate","getCellDayIndex","getCellRange","getColDayIndex","getDateDayIndex","dayOffset","sliceRangeByRow","rowFirst","rowLast","segFirst","segLast","normalRange","computeDayRange","rangeFirst","rangeLast","firstRowDayIndex","lastRowDayIndex","sliceRangeByDay","renderHeadHtml","renderHeadTrHtml","renderHeadIntroHtml","renderIntroHtml","renderHeadDateCellsHtml","htmls","renderHeadDateCellHtml","colspan","otherAttrs","innerHtml","isDateValid","getDayClasses","buildGotoAnchorHtml","forceOff","renderBgTrHtml","renderBgIntroHtml","renderBgCellsHtml","renderBgCellHtml","bookendCells","trEl","introHtml","buildEventInstanceGroup","hasAllDayBusinessHours","renderEventFootprints","fillSegTag","elsByFill","renderFootprint","componentFootprintToSegs","buildSegEls","attachSegEls","reportEls","buildSegHtml","eventRenderer","renderComponentFootprint","fabricateEventFootprint","renderEventDraggingFootprints","sourceSeg","renderEventResizingFootprints","extraClassNames","helperEls","dummyInstance","dummyEvent","handleMouseover","handleMouseout","mousedOverSeg","DateClicking_1","Popover_1","DayGridEventRenderer_1","DayGridHelperRenderer_1","DayGridFillRenderer_1","cellWeekNumbersVisible","bottomCoordPadding","isRigid","leftCol","rightCol","renderDates","renderGrid","unrenderDates","removeSegPopover","headContainerEl","renderDayRowHtml","cellEls","rowCoordCache","colCoordCache","getCellEl","getIsNumbersVisible","renderNumberTrHtml","getIsDayNumbersVisible","renderNumberIntroHtml","renderNumberCellsHtml","renderNumberCellHtml","weekCalcFirstDoW","isDayNumberVisible","getCellHit","getHitFootprint","getHitEl","getOwnEventSegs","popoverSegs","renderDrag","helperRenderer","unrenderDrag","unrenderHighlight","renderEventResize","unrenderEventResize","segPopover","limitRows","levelLimit","rowLevelLimit","rowStructs","unlimitRow","computeRowLevelLimit","limitRow","trHeight","rowHeight","trEls","tbodyEl","iterInnerHeights","childNode","levelSegs","cellMatrix","limitedNodes","segsBelow","totalSegsBelow","colSegsBelow","rowspan","segMoreNodes","moreTd","moreWrap","moreLink","rowStruct","moreNodes","emptyCellsUntil","endCol","getCellSegs","renderMoreLink","segLevels","moreEls","limitedEls","hiddenSegs","getMoreLinkText","clickOption","moreEl","allSegs","reslicedAllSegs","resliceDaySegs","reslicedHiddenSegs","showSegPopover","zoomTo","topEl","renderSegPopoverContent","viewportConstrain","triggerBeforeEventSegsDestroyed","triggerAfterEventSegsRendered","segContainer","dayDate","dayStart","dayEnd","dayRange","newSegs","startLevel","segMatrix","eventRendererClass","businessHourRendererClass","helperRendererClass","fillRendererClass","BasicViewDateProfileGenerator_1","dayGrid","instantiateDayGrid","hasRigidRows","colWeekNumbersVisible","addChild","scroller","subclass","weekNumberStyleAttr","weekStart","dayGridClass","renderSkeleton","dayGridContainerEl","dayGridEl","renderSkeletonHtml","unrenderSkeleton","weekNumberWidth","scrollerHeight","headRowEl","computeScrollerHeight","setGridHeight","peerEventRanges","getPeerEventInstances","peerEventFootprints","constraintVal","overlapVal","eventAllowFunc","isFootprintAllowed","getEventInstancesWithoutId","selectAllowFunc","getEventInstances","subjectEventInstance","constraintFootprints","overlapEventFootprints","constraintValToFootprints","isFootprintWithinConstraints","collectOverlapEventFootprints","overlapFunc","isOverlapsAllowedByFunc","overlapEventInstance","subjectLegacyInstance","isOverlapEventInstancesAllowed","footprintContainsFootprint","buildCurrentBusinessFootprints","parseEventDefToInstances","eventInstancesToFootprints","parseFootprints","getEventInstancesWithId","targetFootprint","footprintsIntersect","currentPeriod","eventRangeToEventFootprints","outerFootprint","innerFootprint","footprint0","footprint1","ParsableModelMixin","propDefs","standardPropMap","manualProps","EventInstance","RecurringEventDef","zonedDayStart","instanceStart","instanceEnd","unzonedDate","unzonedEnd","dowHash","setDow","dowNumbers","EventRange","BUSINESS_HOUR_EVENT_DEFAULTS","rawComplexDef","buildEventDefs","rawDefs","requireDow","defs","buildEventDef","rawDef","fullRawDef","StandardTheme","widgetHeader","widgetContent","buttonGroup","cornerLeft","cornerRight","stateDefault","stateActive","stateDisabled","stateHover","stateDown","popoverHeader","popoverContent","headerRow","dayRow","listView","JqueryUiTheme","pushLoading","popLoading","onSuccess","buildRequestParams","AJAX_DEFAULTS","callbackRes","errorThrown","customRequestParams","tryStart","getIsIdle","canRunNext","runRemaining","task","runTask","waitsByNamespace","taskFunc","waitMs","waitNamespace","delayWait","clearWait","compoundTask","startWait","spawnWait","waitId","newTask","shouldAppend","Component_1","util_2","hitsNeededDepth","childrenByUid","businessHourRenderer","callChildren","_getCalendar","legacyEvents","convertEventsPayloadToLegacyArray","getBusinessHourSegs","getOwnBusinessHourSegs","iterChildren","showEventsWithId","hideEventsWithId","renderedHelper","getSafeHitFootprint","eventFootprintToSegs","gotoOptions","finalOptions","getAllDayHtml","noThemeHighlight","currentRangeAs","endTimeMS","endDay","isMultiDayRange","Iterator_1","Toolbar_1","OptionsManager_1","ViewSpecManager_1","EventManager_1","loadingLevel","ignoreUpdateViewSize","freezeContentHeightDepth","viewsByType","viewSpecManager","initMomentInternals","initCurrentDate","initEventManager","getView","triggerInfo","optHandler","newOptionHash","instantiateView","viewType","spec","getViewSpec","isValidViewType","changeView","dateOrRange","recordOverrides","visibleRange","renderView","getUnitViewSpec","defaultDateInput","prevInfo","buildPrev","nextInfo","buildNext","zonedDateInput","incrementDate","elementVisible","calcSize","initialRender","customAction","themeSystem","widgetClass","businessHours","initToolbars","renderHeader","renderFooter","windowResizeProxy","windowResize","clearView","toolbarsManager","proxyCall","bindViewHandlers","setToolbarsTitle","updateToolbarButtons","unbindViewHandlers","newView","oldView","currentView","reinitView","getSuggestedViewHeight","suggestedViewHeight","isHeightAuto","_calcSize","contentHeightInput","heightInput","queryToolbarsHeight","forceFreezeContentHeight","computeHeaderOptions","computeFooterOptions","extraClasses","setToolbarOptions","todayInfo","accumulator","toolbar","zonedStartInput","zonedEndInput","buildSelectFootprint","localizeMoment","getIsAmbigTimezone","adjustedZonedDate","zonedDate","timeAdjust","ignoreEnd","humanizeDuration","rangeInput","rawSources","singleRawSource","rawSource","addSource","thaw","getEventEnd","zonedStart","rerenderEvents","refetchEvents","refetchAllSources","renderEvents","eventInputs","renderEvent","stickySource","legacyQuery","legacyInstances","idMap","filterLegacyEventInstances","getEventDefByUid","clientEvents","legacyEventInstances","updateEvents","eventPropsArray","updateEvent","eventProps","eventDefMutation","getEventSources","otherSources","getEventSourceById","getSourceById","addEventSource","sourceInput","removeEventSources","sourceMultiQuery","removeAllSources","multiQuerySources","removeSource","removeEventSource","sourceQuery","querySources","refetchEventSources","refetchSource","legacyEventInstance","DateProfileGenerator","prevDate","dateIncrement","nextDate","forceToValid","currentInfo","isDateAllDay","buildValidRange","buildCurrentRangeInfo","buildRenderRange","adjustActiveRange","buildDateIncrement","dayCount","durationUnit","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","dateIncrementInput","dateIncrementDuration","computeRes","customAlignment","runningCount","visibleUnzonedRange","HitDragListener_1","dragListener","sortstart","listenToExternalDrag","stick","dataAttrPrefix","getDraggedElMeta","interactionStart","hitOver","mutatedEventInstanceGroup","hitFootprint","computeExternalDrop","hitOut","hitDone","interactionEnd","buildDragListener","resizeMutation","segResizeStart","origHitFootprint","computeEventStartResizeMutation","computeEventEndResizeMutation","buildMutatedEventInstanceGroup","segResizeStop","startFootprint","endFootprint","origEventFootprint","origRange","MouseFollower_1","getSelectionDelay","handleMousedown","buildSelectListener","mouseFollower","additionalClass","segDragStart","origFootprint","computeEventDropMutation","segDragStop","computeEventDateMutation","getDelay","selectionFootprint","computeSelection","wholeFootprint","computeSelectionFootprint","agendaTimeGridMethods","agendaDayGridMethods","timeGrid","instantiateTimeGrid","timeGridClass","timeGridWrapEl","timeGridEl","axisStyleAttr","colEls","noScrollRowEls","bottomRuleEl","getTotalSlatHeight","computeTimeTop","dayEventsPayload","timedEventsPayload","groups","groupEventFootprintsByAllDay","timed","weekText","TimeGridEventRenderer_1","TimeGridHelperRenderer_1","TimeGridFillRenderer_1","AGENDA_STOCK_SUB_DURATIONS","processOptions","sliceRangeByTimes","segRange","dayRanges","slotDuration","snapDuration","snapsPerSlot","labelFormat","labelInterval","computeLabelInterval","slotsPerLabel","renderSlats","renderColumns","unrenderColumns","slatContainerEl","renderSlatRowHtml","slatEls","slatCoordCache","slotDate","isLabeled","axisHtml","slotTime","slotIterator","renderContentSkeleton","unrenderContentSkeleton","skeletonEl","cellHtml","contentSkeletonEl","colContainerEls","helperContainerEls","fgContainerEls","bgContainerEls","highlightContainerEls","businessContainerEls","groupSegsByCol","segsByCol","attachSegsByCol","containerEls","computeDateTop","nowIndicatorEls","updateSegVerticals","businessSegs","startOfDayDate","slatIndex","slatRemainder","slatCoverage","computeSegVerticals","assignSegVerticals","eventMinHeight","generateSegVerticalCss","colIndex","slatTop","slatHeight","partial","localSnapIndex","snapTop","snapBottom","computeSnapTime","snapIndex","BasicViewDateProfileGenerator","MonthViewDateProfileGenerator_1","ListEventRenderer_1","ListEventPointing_1","viewEnd","renderEmptyMessage","renderSegList","daySegs","segsByDay","groupSegsByDay","tableEl","dayHeaderHtml","mainFormat","fullCalendar","singleRes","Component","Iterator","Toolbar","toolbarOptions","viewsWithButtons","newToolbarOptions","sections","renderSection","sectionEl","buttonStr","calendarCustomButtons","calendarButtonTextOverrides","calendarButtonText","buttonGroupStr","groupEl","groupChildren","isOnlyButtons","buttonClick","buttonIcon","buttonInnerHtml","buttonEl","buttonAriaAttr","buttonTextOverride","buttonTextDefault","updateTitle","activateButton","deactivateButton","disableButton","enableButton","getViewsWithButtons","OptionsManager","dynamicOverrides","optionName","optionCnt","localeDefaults","dirDefaults","rawOptions","clearCache","ViewSpecManager","viewSpecCache","buildViewSpec","viewTypes","singleUnit","requestedViewType","viewOverrides","specChain","defaultsChain","overridesChain","buildViewSpecOptions","buildViewSpecButtonText","queryButtonText","buttonTextKey","EventPeriod_1","EventManager","isWithinRange","setPeriod","whenReleased","requestSource","doomedSource","purgeSource","purgeAllSources","requestSources","getSources","matchInputs","matchingSources","matchInput","source1","eventPeriod","unbindPeriod","bindPeriod","eventId","undoFuncs","getEventDefsById","removeEventDef","defCopy","allInstances","EventPeriod","pendingCnt","freezeDepth","stuntedReleaseCnt","releaseCnt","requestsByUid","eventDefsByUid","eventDefsById","eventInstanceGroupsById","addEventDefs","tryRelease","completedCnt","eventDefUid","addEventInstance","removeEventInstancesForDef","matchingInstances","currentEventInstance","MouseFollower","sourceEl","isFollowing","isAnimating","topDelta","leftDelta","top0","left0","getEl","sourceOffset","DateClicking","dayClickHit","TimeGridEventRenderer","renderFgSegsIntoContainers","updateFgSegCoords","timeText","fullTimeText","startTimeText","isResizableFromStart","isResizableFromEnd","skinCss","zonedEnd","computeFgSegHorizontals","assignFgSegHorizontals","level0","computeSlotSegCollisions","buildSlotSegLevels","forwardSegs","computeForwardSlotSegs","computeSlotSegPressures","computeFgSegForwardBack","seriesBackwardPressure","seriesBackwardCoord","forwardCoord","sortForwardSegs","backwardCoord","compareForwardSegs","forwardPressure","generateFgSegHorizontalCss","shouldOverlap","forwardSeg","otherSegs","TimeGridHelperRenderer","helperNodes","TimeGridFillRenderer","Popover","documentMousedown","viewportTop","viewportLeft","viewportOffset","windowEl","viewportEl","DayGridEventRenderer","renderSegRows","rowNode","segRows","groupSegRows","renderSegRow","rowSegs","buildSegLevels","levelCnt","loneCellMatrix","isDaySegCollision","compareDaySegCols","titleHtml","timeHtml","otherSeg","DayGridHelperRenderer","skeletonTopEl","skeletonTop","rowEl","DayGridFillRenderer","renderFillRow","startCol","MonthViewDateProfileGenerator","ListEventRenderer","ListEventPointing","Bootstrap3Theme_1","Bootstrap4Theme_1","Bootstrap3Theme","tableGrid","tableList","tableListHeading","popover","Bootstrap4Theme","fixedWeekCount","allDaySlot","slotEventOverlap","listDayFormat","noEventsMessage","listDayAltFormat","toStringTag","__webpack_exports__","_index__WEBPACK_IMPORTED_MODULE_1__","vertxNext","customSchedulerFn","asap","flush","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","WebKitMutationObserver","isNode","isWorker","importScripts","MessageChannel","useSetTimeout","globalSetTimeout","onFulfillment","onRejection","PROMISE_ID","makePromise","invokeCallback","resolve$1","nextTick","characterData","port1","port2","vertx","runOnLoop","runOnContext","attemptVertx","PENDING","FULFILLED","REJECTED","GET_THEN_ERROR","ErrorObject","getThen","handleMaybeThenable","maybeThenable","then$$1","thenable","fulfill","handleOwnThenable","sealed","fulfillmentHandler","rejectionHandler","tryThen","_label","handleForeignThenable","publishRejection","_onerror","publish","_subscribers","subscribers","settled","TRY_CATCH_ERROR","hasCallback","succeeded","failed","tryCatch","_instanceConstructor","_remaining","_enumerate","_eachEntry","resolve$$1","_then","_settledAt","Promise$2","_willSettleAt","resolver","needsResolver","initializePromise","needsNew","finally","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","promiseToString","_Errors__WEBPACK_IMPORTED_MODULE_0__","_HttpClient__WEBPACK_IMPORTED_MODULE_1__","_DefaultHttpClient__WEBPACK_IMPORTED_MODULE_2__","_HubConnection__WEBPACK_IMPORTED_MODULE_3__","_HubConnectionBuilder__WEBPACK_IMPORTED_MODULE_4__","_IHubProtocol__WEBPACK_IMPORTED_MODULE_5__","_ILogger__WEBPACK_IMPORTED_MODULE_6__","_ITransport__WEBPACK_IMPORTED_MODULE_7__","_Loggers__WEBPACK_IMPORTED_MODULE_8__","_JsonHubProtocol__WEBPACK_IMPORTED_MODULE_9__","HttpError","TimeoutError","AbortError","errorMessage","statusCode","trueProto","HttpResponse","HttpClient","__assign","getCookieString","DefaultHttpClient","nodeHttpClientModule","_XhrHttpClient__WEBPACK_IMPORTED_MODULE_2__","requireFunc","logger","httpClient","NodeHttpClient","abortSignal","XhrHttpClient","_ILogger__WEBPACK_IMPORTED_MODULE_2__","Warning","LogLevel","HubConnectionState","HubConnection","_HandshakeProtocol__WEBPACK_IMPORTED_MODULE_0__","_IHubProtocol__WEBPACK_IMPORTED_MODULE_1__","_Utils__WEBPACK_IMPORTED_MODULE_3__","__awaiter","generator","fulfilled","__generator","trys","ops","verb","connection","isRequired","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","handshakeProtocol","onreceive","processIncomingData","onclose","connectionClosed","closedCallbacks","receivedHandshakeResponse","connectionState","Disconnected","cachedPingMessage","writeMessage","Ping","handshakeRequest","handshakePromise","Debug","handshakeResolver","handshakeRejecter","transferFormat","sendMessage","writeHandshakeRequest","Information","cleanupTimeout","resetTimeoutPeriod","resetKeepAliveInterval","Connected","cleanupPingTimer","stream","invocationDescriptor","createStreamInvocation","subject","cancelInvocation","createCancelInvocation","invocationId","cancelMessage","invocationEvent","Completion","createInvocation","invoke","newMethod","removeIdx","processHandshakeResponse","messages_1","parseMessages","Invocation","invokeClientMethod","StreamItem","Close","responseMessage","remainingData","parseHandshakeResponse","pingServerHandle","features","inherentKeepAlive","timeoutHandle","serverTimeout","invocationMessage","nonblocking","StreamInvocation","CancelInvocation","HandshakeProtocol","_TextMessageFormat__WEBPACK_IMPORTED_MODULE_0__","_Utils__WEBPACK_IMPORTED_MODULE_1__","messageData","Buffer","binaryData","separatorIndex","RecordSeparatorCode","responseLength","textData","RecordSeparator","TextMessageFormat","Arg","getDataDetail","formatArrayBuffer","isArrayBuffer","createLogger","Subject","SubjectSubscription","ConsoleLogger","_ILogger__WEBPACK_IMPORTED_MODULE_0__","_Loggers__WEBPACK_IMPORTED_MODULE_1__","isIn","includeContent","transportName","accessTokenFactory","logMessageContent","Trace","cancelCallback","observers","minimumLogLevel","logLevel","Critical","NullLogger","_logLevel","_message","MessageType","HubConnectionBuilder","_HttpConnection__WEBPACK_IMPORTED_MODULE_0__","_HubConnection__WEBPACK_IMPORTED_MODULE_1__","_JsonHubProtocol__WEBPACK_IMPORTED_MODULE_2__","_Loggers__WEBPACK_IMPORTED_MODULE_3__","_Utils__WEBPACK_IMPORTED_MODULE_4__","configureLogging","logging","withUrl","transportTypeOrOptions","httpConnectionOptions","transport","withHubProtocol","HttpConnection","_DefaultHttpClient__WEBPACK_IMPORTED_MODULE_0__","_ILogger__WEBPACK_IMPORTED_MODULE_1__","_ITransport__WEBPACK_IMPORTED_MODULE_2__","_LongPollingTransport__WEBPACK_IMPORTED_MODULE_3__","_ServerSentEventsTransport__WEBPACK_IMPORTED_MODULE_4__","_Utils__WEBPACK_IMPORTED_MODULE_5__","_WebSocketTransport__WEBPACK_IMPORTED_MODULE_6__","WebSocketModule","EventSourceModule","baseUrl","resolveUrl","WebSocket","Binary","startPromise","startInternal","stopError","negotiateResponse","redirects","_loop_1","this_1","state_1","e_2","skipNegotiation","WebSockets","constructTransport","connect","accessToken_1","getNegotiationResponse","ProtocolVersion","accessToken","createTransport","stopConnection","changeState","negotiateUrl","e_3","resolveNegotiateUrl","createConnectUrl","connectionId","requestedTransport","requestedTransferFormat","connectUrl","transports","transports_1","endpoint","ex_1","isITransport","availableTransports","resolveTransport","ServerSentEvents","LongPolling","transferFormats","actualTransport","transportMatches","aTag","HttpTransportType","TransferFormat","LongPollingTransport","_AbortController__WEBPACK_IMPORTED_MODULE_0__","_Errors__WEBPACK_IMPORTED_MODULE_1__","_ITransport__WEBPACK_IMPORTED_MODULE_3__","pollAbort","pollOptions","pollUrl","signal","getAccessToken","updateHeaderToken","closeError","receiving","e_1","pollAborted","raiseOnClose","deleteOptions","logMessage","AbortController","isAborted","ServerSentEventsTransport","_ITransport__WEBPACK_IMPORTED_MODULE_1__","_Utils__WEBPACK_IMPORTED_MODULE_2__","eventSourceConstructor","Cookie","onopen","WebSocketTransport","webSocketConstructor","webSocket","binaryType","_event","ErrorEvent","OPEN","wasClean","JsonHubProtocol","_IHubProtocol__WEBPACK_IMPORTED_MODULE_0__","_TextMessageFormat__WEBPACK_IMPORTED_MODULE_4__","hubMessages","parsedMessage","isInvocationMessage","isStreamItemMessage","isCompletionMessage","assertNotEmptyString","Sifter","diacritics","tokenize","escape_regex","DIACRITICS","is_array","getScoreFunction","token_count","nesting","prepareSearch","field_count","scoreValue","scoreObject","getattr","getSortFunction","fields_count","multiplier","multipliers","get_field","implicit_score","sort_empty","option_fields","option_sort","option_sort_empty","fn_sort","fn_score","asciifold","foreignletters","foreignletter","MicroPlugin","Interface","initializePlugins","requested","loadPlugin","vArg","Selectize","MicroEvent","fct","destObject","IS_MAC","KEY_CMD","KEY_CTRL","SUPPORTS_VALIDITY_API","validity","isset","hash_key","escape_html","debounce_events","event_args","selectionStart","selLen","autoGrow","currentWidth","printable","$test","whiteSpace","$from","$to","transferStyles","measureString","selectize","computedStyle","tagType","eventNS","highlightedValue","isInvalid","isLocked","isFocused","isInputHidden","isSetup","isShiftDown","isCmdDown","isCtrlDown","ignoreFocus","ignoreBlur","ignoreHover","currentResults","lastValue","caretPos","loadedSearches","$activeOption","$activeItems","optgroups","renderCache","onSearchChange","loadThrottle","sifter","registerOption","registerOptionGroup","hideSelected","setupCallbacks","setupTemplates","explanation","groupEnd","$wrapper","$control","$control_input","$dropdown","$dropdown_content","$dropdown_parent","inputMode","classes_plugins","inputId","wrapperClass","inputClass","dropdownParent","dropdownClass","dropdownContentClass","copyClassesToDropdown","splitOn","delimiterEscaped","onOptionHover","onOptionSelect","onItemSelect","onMouseDown","onKeyUp","onKeyPress","positionDropdown","onPaste","revertSettings","$children","updateOriginalInput","refreshItems","updatePlaceholder","preload","field_label","labelField","field_optgroup","optgroupLabelField","templates","optgroup_header","option_create","item_add","item_remove","option_add","option_remove","option_clear","optgroup_add","optgroup_remove","optgroup_clear","dropdown_open","dropdown_close","setActiveItem","isFull","pastedText","splitInput","selectAll","getAdjacentOption","setActiveOption","$prev","advanceSelection","selectOnTab","deleteSelection","refreshOptions","wasFocused","showInput","openOnFocus","setTextboxValue","setCaret","createOnBlur","closeAfterSelect","lastQuery","addItem","getOption","loadingClass","addOption","begin","swap","$last","hideInput","$option","height_menu","height_item","scroll_top","scroll_bottom","scrollDuration","getSearchOptions","sortField","searchField","searchConjunction","calculateScore","triggerDropdown","groups_order","option_html","html_children","has_create_option","$active","$active_before","$create","active_before","maxOptions","optgroupField","lockOptgroupOrder","$order","canCreate","addPrecedence","valueField","optgroupValueField","addOptionGroup","removeOptionGroup","clearOptionGroups","updateOption","$item_new","value_new","index_item","cache_items","cache_options","order_old","getItem","removeOption","removeItem","clearOptions","getElementWithValue","$options","$els","isPending","value_next","wasFull","insertAtCaret","persist","caret","lock","called","unlock","refreshValidityState","refreshClasses","option_select","$option_select","$tail","onDelete","tail","valueLength","advanceCaret","$adj","$child","templateName","createFilter","allowEmptyOption","settings_user","attr_data","field_value","field_optgroup_label","field_optgroup_value","tag_name","settings_element","optionsMap","addGroup","$optgroup","init_select","data_raw","init_textbox","titleRowClass","labelClass","closeClass","$dropdown_header","equalizeWidth","equalizeHeight","getScrollbarWidth","equalizeSizes","height_max","width_last","width_parent","$optgroups","thisRef","render_item","html_container","html_element","multiClose","singleClose","Connection","Logger","sendForceLogOut","userId","sendForceLogOutAll","sendUsersOnline","SeismicWebApiUrl","signalR","notification","UserNotifications","Notify","fromName","usersOnline","constrain","greaterThanOrEqualTo","lessThanOrEqualTo","constrainMin","constrainMax","toMd5Hash","toTitleCase","isAny","IsAny","LocalStorageItem","hasLocalStorage","localStorage","expirationMinutes","localStorageItem","setItem","itemInStorageStr","parsedItem","getWithFallback","fallbackOnNull","skipCache","itemInStorage","fallbackAndStore","KeyValuePair","Value","Rgb","ary","host","hostname","port","pathname","searchObject","minTommss","sec","fallbackCopyTextToClipboard","textArea","execCommand","Toasts","ToastOptions","copyTextToClipboard","clipboard","writeText","containsValue","targetValue","getBit","bits","interpolateRgbColor","interpolateRgbColors","stepFactor","interpolatedColorArray","interpolateHexColors","hexToRgb","rgbComponentToHex","rgbToHex","removeZeroValues","roundUpWholeNumber","firstNumber","isWhole","repeatString","preLoadImages","urls","onLoaded","withGroup","UrlLoaded","maps","loadInterval","urlsNotLoaded","keyCodeIsNumberOrEnter","parseUrl","urlStr","deviceIsIos","toQueryString","decode","txt","Has","queryString","getFunctionName","queryStringWithDefault","qs","getProperty","hasProperty","randomNumber","onLoop","validPhone","validEmail","validGuid","validObj","validFunc","resolveVal","hasAttr","resolveAttr","resolveAttrWithDefault","tryCallFunc","parseBool","BOOL","repeatedStr","roundTo","places","roundToEighth","roundToQuarter","roundToHalf","toCsl","toKilograms","pounds","toCentimeters","inches","toInches","centimeters","replaceAll","replacement","toPounds","kilograms","numberWithCommas","formatAsCurrency","includeTrailing00","shakingElements","shake","magnitude","angular","tiltAngle","numberOfShakes","magnitudeUnit","randomInt","angularShake","upAndDownShake","randomX","randomY","GenId","Errors","DataFlipper","Ziplock","UIState","Gravatar","Alerts","ActionLinks","AjaxForms","AvatarImages","CardSectionBoxes","CardNavigators","CollapsoBoxes","ColorRange","CountUps","DisabledContainers","ExplainBoxes","ExternalLinkIcons","GoogleAddressAutocomplete","Hernia","HotStepper","ImageRotate","Loader","LoaderLinks","MetricsCards","NumberFormatter","XEditable","Polka","ScrollTabs","SessionValueOutputs","SimpleClock","Sound","TabToNext","TextAreaAutoGrow","Timelines","ToggleSwitches","ToolTips","UnitOutputs","UserQuickLinks","UserOnline","UtcParser","AccountNotifications","AccountProfile","AccountTerms","AccountVerifyEmail","AlumniOpt","Alumni","AuthVerifyCode","CreateAccount","ForgotPassword","ForgotVerifyCode","GiftCard","Help","Login","AffiliateIntroTerms","AffiliateIntroBilling","AffiliateIntroTraining","AffiliateAdminOverview","AffiliateEducation","AffiliateEscalation","AffiliateDelegation","AffiliateDelegationEditor","AffiliateCreate","AffiliateProfile","AffiliateReferrals","AffiliateStripe","AffiliateNewPlan","AffiliateWaitlist","AffiliateTerms","AffiliateNewCoach","AffiliateHealth","AffiliateReports","AffiliateTemplate","AffiliateSurvey","AffiliateSubscription","AffiliateSubscribe","CheckInPhotos","ClientCompliance","ClientBilling","ClientCheckIn","ClientCheckInList","ClientDashboard","ClientMessageThread","ClientMessageThreadNew","ClientMessageThreads","ClientNotes","ClientWaitlist","ClientReferrals","LogMetricsToggles","MacroImportProviders","Logs","Messages","Questionnaire","LogMetricTypes","UserProgress","CardioEditor","CoachingClientCalendar","CoachingClientCheckIn","CoachingClientCheckIns","CoachingClientLogs","CoachingDelegation","CoachingClientEscalation","CoachingClientEscalations","MacrosEditor","IntroBilling","IntroPhotos","IntroProfile","IntroProgram","IntroSettings","IntroTerms","IntroVerifyPhone","SystemAffiliates","SystemAlerts","SystemAlert","SystemAuthentication","SystemCache","SystemContent","SystemDashboard","SystemSchema","SystemSettings","SystemMindfulness","SystemMindfulnessItem","SystemFeaturesList","SystemFeatures","SystemAffiliateCreate","SystemTemplate","UserActivity","UserAdminOverview","UserAdminClientDetails","UserQuickInfo","UserSettings","IntegrationAuthorizationStatuses","IntegrationSources","IntegrationTypes","UserIntegrations","AdminCreateUser","Home","Gdpr","CkEditor","DemoMode","MediaTypes","ReleaseNotesList","Macrobot","PhotoCompareTool","UserSearch","StripeElements","SystemAlertsMenu","NotificationsMenu","MessageCounts","LeftMenu","KnowledgeBase","AvatarMenu","AffiliateLogo","PurchaseWagPasses","BusinessAlerts","AlertBoxes","Gender","PhotoDirection","PhotoSet","Seismic","alphaStr","Generate","rtn","GenerateN","generatedIds","runWithConsole","consoleAction","overrideEnv","shouldLog","debuggingOverrideOff","debuggingOverrideOn","enableDebugging","disableDebugging","collapsed","groupCollapsed","hasRequestProfilingCookie","requestProfilingOn","toggleRequestProfiling","sameSite","secure","toggleDebugging","clearLog","AttemptError","super","AttemptOptions","maxAttempts","attemptImmediately","onException","Attempt","defaultOpts","_opts","_attemptCount","_attempting","attempt","SeismicResponse","requestOk","exceptions","responseCode","getHtmlForResponse","htmlContent","Message","respondToResponse","onRequestOk","onRequestBad","ignoreMessagesWhenResultIsOk","shouldShowAlert","alertType","extraMessages","ok","DebounceOptions","DebounceId","ReplaceQueue","StopAfter","IntervalTime","TickOnStart","TickCallback","TickOnEmpty","Debounce","EmptyTickCount","Started","Options","Methods","HadMethods","IntervalId","originalTickOnStartValue","FlipperItem","parentId","$li","Flipper","$ul","itemVisible","$obj","showPrev","showNext","DataFlippers","$objs","flipper","CookieIsZiplocked","cookieName","Get","numCookies","finalStr","Set","cookieValue","cookieExpires","cookieCrumbs","Remove","UIStateItem","ui_state_items","uiStateStr","ui_state","valueWhenNull","emptyState","hasItem","Gravatar_1","Ratings","rating","PG","defaultAvatarType","MYSTERYPERSON","customDefaultAvatar","forceDefault","getDefaultAvatar","kvps","defaultAvatar","ToastTransitionsIn","ToastTransitionsOut","ToastPositions","ToastDisplayModes","TOP_RIGHT","ONCE","FADE_IN_DOWN","FADE_OUT","FADE_OUT_UP","createOpts","localDefaults","externalOptions","localOpts","infoOptions","errorOptions","successOptions","warningOptions","containerFluid","animateFromElement","Ok","actionFor","FormAction","formId","FormActions","SerializeFormForModel","serializeArray","ff","cb1","onSubmit","formAction","onSubmitted","submitBtn","onSubmitActions","always","onSubmittedActions","UserTypes","DisplayTypes","Avatar","imageSet","noFallback","useGravatar","displayType","currentUserId","userType","avatarStr","avatarInSession","fallBackUrl","setImage","Avatars","parseOtherUsersAvatars","userIds","avatars","avatar","parseResponse","$dataAvatars","CardSectionBoxItem","preventContentFlashing","saveState","setCookie","CardSectionBoxItems","rebuild","currentTabHash","aTags","tabId","pushState","hookTabHash","CollapsoBoxItem","readmore","readless","CollapsoBoxItems","valueStart","colorStart","valueEnd","colorEnd","interpolation","determineMatchedRange","matchedRange","getColor","totalValueDistance","valueStep","distanceLook","ColorRangeItem","rawData","setColor","valueSum","stepValue","currentStepValue","determinedStep","interp","colorHex","ColorRangeItems","CountUpItem","CUI","CountUpItems","RunForItemOptions","runImmediately","itemObject","runForItem","cuItem","ExecuteAfterFadeIn","DisabledContainerItem","animationHtml","building","jellybox","animationType","hideContent","cardType","$sectionBody","$spinContainer","DisabledContainerItems","buildItems","removeSpinContainers","rebuildItem","ExplainBoxItem","preventHiding","allowDismissal","hideMoreInfo","moreInfoText","hideBtn","goAway","ExplainBoxItems","$me","componentForm","gaa_street_number","gaa_route","gaa_locality","gaa_administrative_area_level_1","gaa_country","gaa_postal_code","fillInAddress","place","getPlace","street_number","address_components","addressType","google","Autocomplete","HerniaItems","HerniaTarget","mediaQuery","appendType","HerniaObject","HerniaItem","herniaObject","hernia","$hernia","herniaItem","wmm","doMove","$newParentTarget","moveObject","StartStep","StepsContainer","StepContainer","PreviousBtnSelector","NextBtnSelector","IndicatorSelector","SaveOnNext","Validate","Validator","ShowPreviousOnFirstStep","DefaultActionButtonsLabel","onFinished","onNext","onNextComplete","onPrevious","onPreviousOnFirstStep","HotStepAnswer","$controls","HotStepQuestion","$explanation","$answers","$question","HotStep","$questions","eligibleControls","focusFirstControl","StepState","previousStepIndex","currentStepIndex","nextStepIndex","totalSteps","previousStep","nextStep","hotStepItems","$nextBtn","$prevBtn","stepIndex","stepNumber","getStepState","stepState","previousStepNumber","nextStepNumber","displayCurrentStep","hotStep","startStep","_determineOrientation","scanner","binary_string","_base64ToArrayBuffer","maxBytes","uint16","Rotate","_base64FromUrl","orientationValue","LoaderOptions","hideWit","Blur","HideWit","NoTransition","WitSpeed","ShowWitOnShown","OnShown","showing","wit","witLoopId","witObjId","witObjs","showLoadingWit","showWit","Wit","WitOptions","renderWit","thisWit","nextWit","si","$items","noWit","NFormat","hasAbbreviated","hasFormatted","originalValue","abbreviate","abbreviateAt","autoAbbreviate","toolTipOriginalValue","NFormats","applyFixes","applyTitle","workingValue","formatted","abbreviation","didAbbreviate","nIsOverflowing","totalPadding","autoAbbreviatObjs","PrimaryKey","editableValidation","primaryKey","xEdit","$xEdit","emptyText","Session","hasAnyRole","callbacksObj","Cancel","Delete","btnClass","reload","PolkaContainers","PolkaItem","$toggleButton","PolkaContainer","polkaItems","defaultVisibleElement","newId","getPolkaItemById","polkaContainer","pi","polkaItem","hideItems","itemToShow","stateItem","getSelectedItem","polkaContainerId","getPolkaContainerById","thisType","valueName","fallbackValue","Clock","Clocks","clock","addOffset","play","audioPlayer","Audio","canPlayType","Alert","currentLength","AutoGrowElement","waitTime","afterFade","_autogrow","autoGrown","autogrow","currentPageOpacity","opacityInterval","AutoGrowElements","age","recheck","liMarkupTemplate","ulo","ili","lio","customIconStr","noBeacon","customIconMarkup","iconClass","iconMarkup","liMarkup","checkboxObj","btnSize","buttonHtml","$p","contentStr","hookTitles","UnitOutputItem","weightDisplay","lengthDisplay","existingVal","showUnit","allowBoth","showOp","oType","unitOutVal","decimalsToRound","getOperator","newImpVal","impUnit","metUnit","newMetVal","UnitOutputItems","preferredWeightDisplay","preferredLengthDisplay","getPreferredWeightDisplay","prefWeightDisplay","getPreferredLengthDisplay","prefLengthDisplay","UserOnlineIndicator","isOnline","processed","setOnline","setOffline","indicator","UserOnlineIndicators","indicators","setIndicators","UtcItem","formatAsUtc","whenInvalidStr","hoursThreshold","enableTooltip","disableTooltip","displayFuzzy","measurement","UtcItems","fuzzyInterval","resumeFuzzyUpdates","fuzzyItems","WhenReadyOptions","objName","Context","ObjName","Method","ShutdownAfter","WhenReady","check","ShutdownTimeout","WitMessage","go","Next","Go","WitId","witId","CurrentMessage","CurrentText","getRandom","MarkAsRead","medium","detailId","Enable","Disable","Country","englishName","geoId","threeLetterISORegionName","twoLetterISORegionName","ProfileOptions","Countries","TimeZoneIdStr","CountryDialingCode","twoFactorDebounce","SendingCode","VerifyingCode","initChangePassword","onContentReady","rules","NewPassword","remote","ConfirmPassword","equalTo","minlength","Change","pwVal","initRequestChangeEmail","jcRequestChangeEmail","NewEmailAddress","newEmail","initVerifyChangeEmailCode","invalidCodeResponse","jcCode","Verify","EmailChangeVerifyCode","maxlength","codeVal","loadTab_UserDataRequests","cardSectionBody","changeFlag","country","getSelectedCountry","tlIso","flagObj","forceLoad","loadTab","$btnSendVerifyPhoneCode","verbPart","optCurrentUser","IN","OUT","sendResponse","verifyCodeConfirm","formSubmit","verifyResponse","thisConfirm","$$formSubmit","seismicSessionCookieStr","seismicSessionCookieObj","AvatarLocation","showMobilePhoneTab","debounceOptions","errorLabelContainer","acceptedTerms","Code","respondToAlumniOptResponse","optStr","genericErrorMsg","adminOptClient","confirmTitle","confirmVerbiage","OptIn","adminOfferAlumniProgram","adminRevokeAlumniProgram","backgroundDismiss","AffiliateSimple","affiliateId","brandingLogoLogin","city","googleAnalyticsAccountId","locationDisplay","longId","moniker","WaitListProgram","blockSignups","maximumCapacity","program","programDescription","userWaitlist","waitlistProgramId","cookiesEnabled","showDisabledCookiesAlert","EmailAddress","sendIntroStepEvent","ElementsConfig","Affiliate","GiftCardOrderSuccessfull","selectedWag","joinVerbiage","brandImg","setBranding","elementsConfig","affiliate","giftCardOrderSuccessfull","createStripeElements","createToken","ViewModel","checkedAddedProperEmail","observable","selectedHelpType","helpTypeIsSelected","pureComputed","affiliateAdminAlertVisible","mfpAlertVisible","isTicketHelp","ticketAlertVisible","sendButtonVisible","applyBindings","validator","txtSubject","txtBody","helpType","goToTickets","successAlert","newType","PaymentFailed","SelectedTier","selectTier","tierName","rate","paymentFailed","selectedTier","$termsModal","izi","$btnAccept","AffiliateId","confirm_Delete","delegateAffiliate","$cb","featureName","hard","InlinePayment","PreselectedCertCode","$paymentModal","paymentPlan","purchaseType","purchaseTypeSelected","addNewCoach","$newCoach","$btnCancelSend","$btnAdd","serializedForm","loadEducationPane","closeAnimation","Myself","New","slideToggle","mapCodeToProduct","explainUrl","inlinePayment","preselectedCertCode","$resolutionModal","$underReviewModal","EscalationId","inStatus","inMessage","escalationId","prompt_revertToNew","no","yes","$btnCancelResolve","$btnResolve","$txtResolved","txtResolved","$btnCancelSetUnderReview","$btnSetUnderReview","$txtUnderReview","delegationEditor","onSent","$delegationEditor","$btnCancel","$btnSave","$btnDelete","FirstName","LastName","AffiliateName","Form_Password","_subdomain","_editable","onAddedEvents","onUpdatedEvents","onUploadedEvents","inputSelector","serverEndpoint","subdomain","currentSubdomain","signedUrl","$ExistingLogoWrapper","$ExistingLogo","incomingPhoto","PropertyName","PropertyValue","_minPlanAmount","_fee","_hasDefaultPlan","_referralEnabled","createNewPlan","$newPlan","$btnSend","planExists","toastOptions","planId","ReferralViewModel","GoBack","canCancel","planid","minPlanAmount","fee","referralEnabled","hasDefaultPlan","showFees","affiliateFee","stripeFee","net","waitlistUsers","Offer","userid","Add","sendInvite","Formats","HealthItemError","SetHealthItemLoading","processKpi","valuesStr","$kpi","colorRgbArray","getHealthItem","dataFormatted","CURRENCY","PERCENT","cachedData","getCoachingHealthItems","coaching_overdue","coaching_averageResponse","coaching_fastestAverageResponse","coaching_slowestAverageResponse","itemsError","errorHtml","setItems","overdue","averageCoachResponseTimeHours","fastestAverageCoachResponseTimeHours","slowestAverageCoachResponseTimeHours","getEscalationHealthItems","escalations_allTimes","escalations_thisMonth","escalations_avgResolution","totalEscalations","escalationsThisMonth","averageEscalationResponseTimeHours","getAverageClientValueSnapshot","valueRetention_avgValueAll","valueRetention_avgValue3Mo","averageValueAll","averageValueThreeMonth","$healthItem","refreshHealthItem","baseApiUrl","columnsStr","columns","defaultModalParams","acprModal","requestActiveClientsPerReferral","partnerReferralsModal","requestPartnerReferral","surveyDataModal","surveyId","requestSurveyDataReport","membershipDurationModal","includeActive","includeThreeMonthActive","includeLegacy","includeCancelled","requestMembershipDurationReport","newClientsModal","requestNewClientsReport","clientsPerCoachModal","onlyNew","requestClientsPerCoachReport","coachResponseTimesModal","justThisMonth","requestCoachResponseTimeReport","coachCancellationsModal","requestCoachCancellationReport","Question","surveyQuestion","surveyQuestionBrief","surveyQuestionChoices","surveyQuestionEnabled","surveyQuestionExplanation","surveyQuestionId","surveyQuestionOrder","surveyQuestionRequired","surveyQuestionType","randomId","deleted","SurveyId","TriggerType","TriggerValue","TriggerMax","detailsViewModel","questions","observableArray","triggerType","triggerValue","triggerMax","triggerDescription","maxMessage","isUrlBasedSelected","removeQuestion","cardSection","addQuestion","obs","mapQuestionToObservable","removeChoice","AllowInput","addChoice","bindQuestionEvents","maxRating","arrayFirst","midRating","choices","ClientSurvey","errorPlacement","loadTab_preview","picker","modifiedQuestions","bindViewModel","affiliateBillingViewModel","undoScheduledPlanChange","showError","undoCancel","tabLoaded","loadTab_invoices","loadTab_charges","loadTab_methods","addAsDefault","payCurrentInvoice","cardResponse","invoice","addCard","cardId","mustUpdateCard","confirmMessage","Confirm","newDefaultSourceId","defaultSourceId","thisCardId","badge","actionsLink","setDefaultCard","removeCard","Tiers","Subscription","selectedTierObj","tier","selectedTierPrice","plan","selectedTierInterval","selectedTierDescription","tierDescription","selectedTierIsDowngrade","subscription","selectedTierProration","prorationAmount","hdnSelectedTier","cleanNode","tiers","UserPhotos","Directions","Photo","cipi","$cipi","$uploadedImage","$photoBlurred","$btnEdit","$cancelEdit","$Uploader","canUpload","hasUploaded","photoUrl","setPhotoUrl","displayPhotoData","IncomingPhotoData","Photos","_isInitial","_checkInId","TotalCompleteUploads","HasUploadedAll","userPhotos","checkInId","existingUrl","photo","CreateFilePond","photoItem","ComplianceData","CanvasId","Labels","ProteinSeries","CarbsSeries","FatSeries","FiberSeries","EnabledMetricTypes","complianceCanvas","complianceChartCtx","inData","WagPlusPlanDetails","alumniStatus","membershipMonth","cancellationFlow","RequestingAlumniOffer","ClientCancellationFlow","showGiftCardResponseCodeError","errorMsg","showReferralResponseCodeError","validateWagPassCode","wagPassCode","onDone","onFail","postCancellation","onCancelComplete","adminOverride","accountBillingViewModel","seismicUserId","chargeId","chargeAmount","refundedAmount","maxRefundAmount","EdnTrial","refundCharge","loadTab_referrals","passCode","purchase","wagPass","titleStr","passLengthMonths","passEndDateStr","redemptionResult","Redeem","redemptionResponse","verificationResult","newSubscriptionCost","plusAmountFormatted","Upgrade","dataStr","defaultAmountFormatted","newPlanId","currentPlan","selectedPlan","closeIcon","existingPlan","subscribeVerbiage","hasSubscription","planVerbiage","planEnd","Subscribe","resetClient","isSubscribed","submitPost","doFap","fapSet","applicationFeePercentAlreadySet","isCancelling","billingStatusDescription","postCancel","atPeriodEnd","toastOpts","immediately","adminCancelSubscription","referralCode","isWithinCancellationWindow","resubAction","sameCoach","freshStart","resubscribe","refundType","giftCardCode","redeemResponse","validId","giftCardValueStr","sendCancellationEvent","startCancelFlow","saveCurrentStep","appInsights","trackEvent","validateGiftCardCode","giftCardId","validatePartnerCode","partnerCode","showResult","showPartnerResponseCodeError","validateReferralCode","referralInput","payLatestInvoice","simpleStripeDetails","wagPlusPlanDetails","cancellationSurveyId","requestingAlumniOffer","alumniInfo","subscriptionLengthInMonths","UserMood","energy","hunger","mood","stress","UserMetrics","waist","chest","hips","CheckInData","summary","moodNow","moodPrev","metricsNow","metricsPrev","gender","canEdit","SliderOptions","MoodSliderOptions","MetricsSliderOptions","clientCheckInDebounce","defaultMoodOptions","defaultMetricsOptions","metricsVariance","isCm","uiViewModel","metricsSetupFinished","showCheckInUpdatedToast","pushMoodOrMetricValue","CheckInId","metricsUpdated","getDefaultMoodValue","moodType","previousValue","setupMoodSlider","toggleCustomize","metricType","customizeBox","hideCustomize","showCustomize","roundMetricValue","setupMetricSlider","defaultMaleMetric","defaultFemaleMetric","metric","currentRounded","previousRounded","defaultMetric","male","getDefaultMetricValue","txtInput","setButton","summaryInput","submitDisabled","chx_ack_noSummary_visible","chx_ack_noSummary_checked","moodUpdated","defaultMaleChest","defaultFemaleChest","defaultMaleWaist","defaultFemaleWaist","defaultMaleHips","defaultFemaleHips","hasPendingChanges","responseData","onbeforeunload","checkInData","ClientDashboardOptions","readOnly","nextCheckInId","signUpThankYouUrl","MindfulnessModel","mindfulnessId","posted","VideoSharingMeta","directUrl","embedUrl","sharingWebsite","CoachInfoModel","assigned","coachId","firstName","lastName","video","videoMeta","NextCheckInStatusModel","cardClass","checkinButtonDisplay","checkinButtonText","countdownDisplay","disabledMessage","futureCheckInDateStr","statusViewDisplay","statusViewMissedDisplay","statusViewReviewingDisplay","todaysLogDebounce","notesDebounce","isMetric","achievementsTilt","loadNextCheckInStatus","$card","$body","loaderOptions","nextCheckInDateStr","mDate","checkInCard","hookCountdown","loadLatestCheckInInfo","checkIn","partialString","nextCheckInStatus","coachInfo","$coachInfoCard","$imgCoachAvatar","$coachName","$coachLocation","$liCoachVideo","$aCoachVideo","getSharingWebsiteType","writeNewMessage","loadCoachInfo","setReferralCardSeen","pushPropertyValue","logId","LogId","IsTodaysLog","REPLACE","saveProperty","hookTodaysInputs","setTodayValue","$progressCard","$progressCardActions","$ProgressCollectingDataMsg","$polka_DashboardProgress","$ProgressPhotos","$Card","$Date","$Content","eventClick","calEvent","jsEvent","eidStr","dayClick","runCountUp","selectorClass","$achievement","totalCheckins","experience","currentCheckInStreak","maxCheckInStreak","loadClientStats","userProgressData","UserProgressData","MetricsCanvasId","MetricsLabels","metricsLabels","MetricsChestSeries","metricsChestSeries","MetricsWaistSeries","metricsWaistSeries","MetricsHipsSeries","metricsHipsSeries","MoodCanvasId","MoodLabels","moodLabels","MoodEnergySeries","moodEnergySeries","MoodHungerSeries","moodHungerSeries","MoodMoodSeries","moodMoodSeries","MoodStressSeries","moodStressSeries","WeightCanvasId","WeightLabels","weightLabels","WeightSeries","weightSeries","AverageWeightSeries","averageWeightSeries","CaloriesSeries","caloriesSeries","InitialPhotos","initialPhotos","LatestPhotos","latestPhotos","female","enoughData","hasIgnoredReferralCard","ReferralProgramEnabled","loadReferralCard","RequestTriggeredSurvey","survey","TOP_CENTER","surveyName","IgnoreSurvey","logs","macro","showConfigImportAlert","createAchievementsTilt","st","newTop","JustCompletedIntro","hasSentIntroComplete","dayTypeId","setDayType","cardioId","setCardioCompleted","notesDebounceOptions","ThreadId","doBtnAction","redirect","threadId","ReplyMessageText","messageId","messageTextObj","DeleteMessage","decoded","MessageText","$Pager","ReadOnly","IsCoach","clientFilter","searchQuery","searchPlaceholder","allowSearch","navigate","inboxFilter","gotToThread","searchQueryParam","onSearched","qsInbox","qsClient","qsSearch","searchTerm","Page","threadIsUnread","DecrementMessagesCountBadge","IncrementMessagesCountBadge","$newMessage","sendToAllClients","$lbSendToClient","$lbSendToAll","$lbSendToCoach","$clientSelector","$sendToCoachMsg","$sendToAllMsg","$sendToAllClients","$selectedClientIdDdl","SelectedClientId","SendToAllClients","$searchVal","$allFilters","$searchMatches","filterStr","newThreadId","clearSearch","qsPage","isCoach","ClientNote","clientId","authorId","clientNoteId","dateNoted","noteText","ClientId","$Search","$SearchInput","$BtnClearSearch","$BtnSearch","$BtnAddNote","SearchStr","displayNotes","searchStr","editNote","noteId","$clientNote","$txtNote","$btnDeleteNote","$cancelBtn","$saveBtn","$chxImportant","note","txtNote","SetProgramFlags","LockUserToWaitlistedScreen","Program","activeWaitlist","changeWaitlist","setProgramFlags","lockUserToWaitlistedScreen","programId","programName","joinStartVerbiage","joinStartBtnVerbiage","prompt_changeWaitlist","surveyDescription","ClientSurveyAnswer","SurveyQuestionId","SurveyQuestionAnswer","getQuestionAnswer","questionInput","questionType","questionId","answer","submitSurvey","answers","markComplete","saveAllSteps","completeSurvey","_referralUrlWithCodePlaceholder","changeReferralCode","showChangeReferralCodeError","referralUrlWithCodePlaceholder","UserId","toggleLogMetricOption","carbs","cardioCompleted","dayType","fat","fiber","importedNotes","logDate","logStatus","notes","prescription_CardioGroupId","prescription_MacrosId","protein","weightMissed","logsDebounce","detailsUICookeName","logRowIcons","hideAllDetails","showAllDetails","updateValue","chx_weightMissed","Configure","provider","btnShow","btnHide","hookToggleDetails","decimalScale","$importButton","dateTime","$row","$icon","importMacros","pushWeightMissed","ArchiveThread","DeleteThread","MarkThreadUnread","UnarchiveThread","onQuestonnaireSaved","onQuestionnaireFailure","onFailure","selectedGoals","exercisestyle","workoutfrequency","occupationactivitylevel","primarycaregiver","howdidyouhearaboutus","genderIsFemale","selectedGoal_sportspecific","foodscale","foodscale_yes","exercisestyle_other","workoutfrequency_frequent","occupationactivitylevel_other","primarycaregiver_other","pregnancy","pregnancy_yes","breastfeeding","breastfeeding_yes","howdidyouhearaboutus_friend","howdidyouhearaboutus_other","usedprogrambefore","usedprogrambefore_yes","preferredcoach","showcoachgender_yes","emergencyContact_name","emergencyContact","emergencyContact_phone","questionnaireDomNode","GenderId","ComplianceCanvasId","ComplianceLabels","ComplianceProteinSeries","ComplianceCarbsSeries","ComplianceFatSeries","ComplianceFiberSeries","currentPhotoDirection","convertMetricsToMetric","metrics","convertWeightsToMetric","BindPhotos","InitialPhotosContainer","LatestPhotosContainer","photoMarkup","photoSet","dirStr","substitute","selfUrl","dirString","Initial","Latest","Front","Right","Left","rotatePhoto","photoCompareOptions","PhotoCompareOptions","metricsCanvas","hasWaist","WAIST","hasHips","HIPS","hasChest","CHEST","metricsChartCtx","moodCanvas","hasMood","MOOD","hasEnergy","ENERGY","hasStress","STRESS","hasHunger","HUNGER","bar1Color","bar2Color","bar3Color","bar4Color","moodChartCtx","weightCanvas","maxCalories","minCalories","weightChartCtx","complianceData","SaveCardioModel","RxCardioId","CardioType1","CardioType2","CardioValue","GroupId","Notes","RxCardioModel","cardioType1","cardioType2","cardioValue","description","groupId","prescription_CardioId","titleAbbrv","$CardioNoCardioMsg","$CardioItemsTable","$CardioEditor","$CardioAdder","CardioModal","$CardioTypeSelector","$CardioIssGoal","$btnAddCardio","$CardioIssOptions","$CardioIssGoalAmount","$CardioIssTimes","$CardioHiitOptions","$CardioHiitWarmup","$CardioHiitWork","$CardioHiitRest","$CardioHiitCooldown","$CardioHiitIntervals","$CardioHiitTimes","$CardioNotes","RxCardioItems","RxCardioGroupId","CurrentRxCardioId","closeModal","prompt_deleteCardio","foundIndex","deleteCardio","bindDeleteEditButtons","changeCardioType","changeCardioIssGoal","editCardio","showAddEditError","addCardio","cardioType","cardioModel","goal","issTimes","warmup","intervals","hiitTimes","cardioItemSerialized","cardioItem","itemHtml","addEditReturnedCardioItem","rxCardioGroupId","rxCardioItems","CalendarOptions","displayCalendar","cardSectionActions","UpdateCheckInReplyModel","coachReply","$LogsPager","LogsStart","LogsEnd","EventsStart","EventsEnd","LogsPage","displayLogs","bindPager","bindNotesViewer","bindMacrosFirstImportIcon","bindMyFitnessPalImportIcon","displayEscalations","displayCheckInUpdatedToast","showConfirmSendRetractAndRefresh","prompt_Send","restProtein","restCarbs","restFat","trainProtein","trainCarbs","trainFat","refeedProtein","refeedCarbs","refeedFat","validate_send","updateReply","rxMacrosId","logStart","logEnd","eventsStart","eventsEnd","userIntegrationSummary","escalationOptions","calendarOptions","gid","cid","pcid","leftCheckInId","rightCheckInId","prompt_Escalate","tabLink","DisplayForCoach","displayCheckIns","editCheckIn","displayForCoach","columnClass","showMacrosFirstDailyLog","showMyFitnessPalDailyLog","delegationId","delegateCoach","prompt_CancelEscalation","updateEscalation","EscalationOptions","forView","hideClient","hideCoach","hideStatus","hideUpdated","hideUpdatedBy","onEscalated","MacrosFirstSchedule","monday","tuesday","wednesday","thursday","friday","saturday","sunday","MacrosFirstGoal","calories","eid","schedule","DayType","MacroType","SaveMacrosModel","macroType","macroValue","TRAIN","PROTEIN","Macros","MacrosFirstGoalsEditorModel","selectedMacroDay","selectedMacros","selectedGoal","selectedGoalDays","targetName","sendNewGoals","MacrosCalculator","getCals","getRatio","MacrosService","saveMacro","macros","MacrosFirstGoalsService","sendNewGoal","updateExistingGoal","ObseravableViewModel","inputTrainProtein","inputTrainCarbs","inputTrainFat","inputRestProtein","inputRestCarbs","inputRestFat","inputRefeedProtein","inputRefeedCarbs","inputRefeedFat","outputTrainCalories","outputTrainRatio","outputRestCalories","outputRestRatio","outputRefeedCalories","outputRefeedRatio","outputSuggestedFiber","MacrosEditorUI","uiElements","defaultTargetName","macrosService","macrosFirstGoalsService","macrosFirstGoalsEditorModel","$macrosFirstGoalsEditor","setupKnockoutViewModel","setupElementBindings","setupMacrosFirstGoalsEditor","getMacrosForDay","macroDaySelector","dayTypes","createObservableFromInput","createComputedCalories","createComputedRatio","observableViewModel","trainCals","restCals","calsToUse","getGramsLow","getGramsHigh","macrosEditorDomNode","onOpeningLocal","initializeUIElements","configureGoalsEditorVisibility","setupEventHandlers","formatMacroDayDropdown","chooseMacroDay","bindMfGoalsDropdown","$mfge_btnCancel","$mfge_btnSend","$mfge_txtGoalName","$mfge_GoalName","$mfge_SelectGoals","$mfge_selSelectGoals","$mfge_SelectMacroDay","$mfge_MacrosSendingList_p","$mfge_MacrosSendingList_c","$mfge_MacrosSendingList_f","$mfge_MacrosSendingTitle","$mfge_TargetDays_btnSelectAll","$mfge_TargetDays_btnClear","isPremium","macroProvider","isPremiumUser","goals","macrosFirstGoals","selectAllTargetDays","clearAllTargetDays","handleGoalSelectionChange","handleGoalNameInput","sendMacros","toggleTargetDaySelection","selectedValue","chooseGoal","macroDay","restMacros","trainMacros","refeedMacros","Option","createNewOption","WagPass","saleDateEnd","saleDateStart","saleForNewClientsOnly","savings","savingsStr","fullPrice","stripePrice","stripeSalePrice","salePercentOff","stripePriceString","stripeSalePriceString","isOnSale","isLimitedSale","saleDateEndsString","WagPassPurchase","datePurchased","dateRedeemed","ignorePurchaseRules","passData","passId","purchasedByEmail","purchasedByUserId","purchasedOnSale","purchasedPriceId","redeemedByUserId","purchasedPrice","WagPassCodeVerificationResult","userCurrentTier","passEndDate","ValidateGiftCardIdResponse","giftCardValue","suppliedGiftCardId","giftCardValueCoversXMonthCommitment","giftCardValueCoversFirstMonth","ValidatePartnerCodeResponse","couponTerms","ValidateReferralCodeResponse","referrer","SelectedWagPlusPlan","WagPlusPlanRate","PlanRate","UserCompletedBilling","PartnerCode","ReferralCode","PurchaseResult","termsAccepted","hasAcceptedTerms","formatDollar","Intl","NumberFormat","currency","maximumFractionDigits","testCouponCodeIsCommCoalitionCode","currentCodeWrapper","isNotCCCode","$codeEntryWrapper","$codeEntryField","applyCommCoalitionCode","applyGiftCardCode","displayGiftCardDetails","applyPartnerCode","displayPartnerDetails","applyWagPassCode","wagEssentialsBtn","wagPlusBtn","displayWagPassDetails","applyReferralCode","displayReferralDetails","ccCode","showCodeFailed","gymName","gymnNameStr","bindCouponCodeEntry","brandingLogoUrl","displayAffiliateLogo","bindWagPassCodeEntry","bindReferralCodeEntry","bindCommCoalitionCodeEntry","wagEssentialsWrapper","wagPlusWrapper","bindWagPlans","sendPurchaseEvent","subscriptionId","priceId","purchaseRevenue","coupon","sendFbqEvent","fbq","$termsModalContent","selectedWagPlusPlan","wagPlusPlanRate","planRate","userCompletedBilling","hasSeenThisStep","commCoalitionCode","purchaseResult","photos","hdnHasPhotos","timezones","tzOffsetInHours","zones","currentlySelectedZone","detectTimeZone","Address","LocationCity","LocationState","LocationPostalCode","Phone","DateOfBirth","prompt_selectProgram","joinList","promptMsg","promptTitle","promptIcon","sendEcommerceEvent","ecommerce","currencyCode","products","Name","price","StripeDefaultPlanAmount","brand","variant","quantity","selectProgram","checkout","actionField","PhoneNumber","prompt_DeleteAlert","prompt_ExpireAlert","prompt_ReissueAlert","SystemAlertModel","AppVersionLabel","Data","DisplayDateEnd","DisplayDateStart","SystemAlertId","TargetRoles","TypeId","AlertId","saveAlert","startDateData","endDateData","startDateStr","endDateStr","txtTitle","txtMessage","alertId","ReAuthFlag","issueDate","updateReAuthUi","flag","$reAuthFlagId","$btnRemoveReAuthFlag","$reAuthFlagIssuedDate","$reAuthFlagIssuedDateSpan","issueNewReAuthFlag","deleteReAuthFlag","CachedItems","CachedItem","cacheTitle","$info","$keyInfo","$btnClear","$btnInfo","$identifiers","$subTypeExplain","inputPlaceholderText","reportable","$defaultOption","cachedItem","cacheKeyInfo","timeToLive","$outputToConsoleLink","outputValue","displayCacheKeyInfo","identifierValues","$identifier","identifiers","$UsersOnlineValue","UsersOnlineCountUp","drawSparklines","updateSchema","setMav","getList","$cardSection","mindfulnessContent","featureId","FeaturesDebounce","FeatureFlags","RolloutSettings","CurrentCount","currentCount","CurrentPercentage","currentPercentage","IsPaused","RuleId","ruleId","TargetPercentage","targetPercentage","TotalActiveUsers","totalActiveUsers","RuleProperty","$propertyObj","RuleProgress","$ruleObj","$noValues","$rolloutBar","$counts","$progressBar","$progressBarValue","Rule","ForEmails","ForUserIds","ForUserTypes","Enabled","FlagId","flagId","ForEnvironment","forEnvironment","RuleType","ruleType","Progress","rolloutSettings","forEmails","forUserIds","forUserTypes","$btn_changeTargetPercent","$btn_pausePlayRollout","$btn_removeAllUsersInRollout","$btn_refreshRolloutCount","$btn_addEmail","$btn_removeAllEmails","$btn_addUserTypes","$btn_removeAllUserTypes","$btn_addUserId","$btn_removeAllUserIds","FeatureFlag","$featureFlagObj","Released","Description","$btn_enable_rules","$btn_reset","$btn_set_date","$btn_release","$enabledDisableRulesActionRow","$restRuleDefinitionActionRow","$setEnabledAtActionRow","$date_Created","$date_Updated","$enabledAt","$date_EnabledAt","PromptOptions","InputType","SubmitBtnClass","Content","OnSubmit","SubmitBtnText","updateRollout","rolloutResult","curPerc","targetPerc","countsText","$rolloutDetails","$rolloutTargetPercentage","$rollOutUserCounts","$rolloutPaused","$noRolloutSettings","updateUpdatedDate","utcNowStr","respondToAddUsersResult","validIdentifiers","invalidIdentifiers","invalidEmail","removeAllUserIds","setEnabledDate","utcFormat","prompt","prompt_ChangeTargetPercentage","changeTargetPercentage","prompt_SetEnabledDate","confirm_SetEnabledDate","prompt_AddEmails","emailAry","emails","$emailsContainer","$emailObj","ruleProp","bindRulePropertyItems","addEmails","prompt_AddUserIds","userIdsAry","$userIdsContainer","addUserIds","prompt_AddUserTypes","userTypes","$userTypesContainer","vut","addUserType","confirm_EnableDisableRules","enableDisableText","helpText","$rulesEnabled","hasRolloutSettings","enabledAtDateStr","enableDisableRules","confirm_PausePlayRollout","pausePlayText","$textSpan","pausePlayRollout","confirm_ResetFeature","resetFeature","confirm_ReleaseRetractFeature","releaseRetractText","doRelease","releaseRetractStr","releaseRetractFeature","confirm_RemoveAllEmails","removeAllEmails","confirm_RemoveAllUserTypes","removeAllUserTypes","confirm_RemoveUserId","removeUserId","confirm_RemoveEmail","removeEmail","confirm_RemoveUserType","validUserType","removeUserType","bindButtons","confirm_RemoveAllUserIds","confirm_RemoveAllUserInRollout","refreshRolloutCount","getFlags","flagIdOrTitle","enabledForUser","$flagUi","HTMLBody","PlainTextBody","containerId","CalendarEvent","private","FullCalendarEventViewModel","ShowEventModel","modalTitle","isPrivate","calendarDebounce","pushEventDate","newEvent","newStart","newEnd","saveEvent","newData","calendarEventId","eventEnd","eventStart","pushEvent","showEvent","selectedStart","selectedEnd","outputDates","calIcon","timeIcon","spanClass","startStr","endStr","pushDeleteEvent","editEvent","notesDomObj","titleDomObj","calEventInputDom","defaultPickerOptions","pickerOptions","txtCalendarTitle","eventDrop","revertFunc","eventResize","refertFunc","showEventModel","addDayEvent","eventRender","customButtons","Filter","filterInput","uncheck","DataModal","data1","data2","$modal","data1Str","data2Str","$showBtn","hasData","$data1Wrap","jsonViewer","$data2Obj","Filters","DataModals","DefaultFilters","RequestedFilters","parseFiltersOnPage","filtersStr","getSelectedFiltersStr","parseDataModals","OverviewDebounce","removeRole","roleId","assignAffiliate","newAffiliateId","withReset","confirm_DeactivateUser","confirm_ActivateUser","confirm_ResetClientData","keepCoach","keepPhotos","keepQuestionnaire","userIsCurUser","messageVerbiage","logoutMessage","resetClientData","confirm_AssignCoach","accepting","$opt","$kvi","$qi","assignCoach","confirm_UnassignCoach","deleteUser","markIntro","markQuestionnaire","affiliateName","newAffiliateName","confirm_AssignAffiliateWithReset","addRole","roles","mark","sendAccountActivation","sendEmailVerfication","sendPasswordReset","sendPushTest","checkMfp","mfpUserName","mfpDiaryState","onOpenBefore","koViewModel","checkedDateChoice","checkedCreateEditChoice","forToday","dateChoice","editCheckin","resetData","initProgramSelectionTab","UserNotification","ActionObject","ActionObjectId","HasRead","IconClassString","NotifiedDate","UserNotificationId","notificationsDebounce","hookPopItems","notificationId","RefreshPop","nunc","shakeCount","navUnreadNotificationCountObj","withSound","additionalOver5","countObj","newCount","incrementCounter","QuickInfo","moreInfoRoutePrefix","includeCoachMetrics","hideInfoIcon","showDetails","showLinks","areaPrefix","QuickInfos","qi","impersonate","delegateCoachAsAdmin","prompt_changeProgram","changeProgram","prompt_exitWaitlist","waitlistUsersId","waitlistUserId","fromIntro","onkeyup","elementValue","submitted","lastElement","ToggleAutoSyncResponse","autoSyncToggled","IntegrationButtonViewModel","hoverHint","hoverHintOn","hoverHintOff","IntegrationButtonsViewModel","toggleAutosync","toggleConnection","IntegrationsViewModel","deviceIntegrations","macroTrackingIntegrations","systemHasDeviceIntegrations","systemHasMacroTrackingIntegrations","IntegrationViewModel","connectionStateClassName","connectionStateText","providerBrandLogo","typeString","IntegrationSummary","authorized","autoSyncConfigurable","autoSyncEnabled","displayName","enabledAndAuthorized","integrationUserId","systemEnabled","UserIntegrationSummary","integrations","IntegrationsDisconnectResponse","disconnected","ObservableIntegrationSummary","originalModel","UserIntegrationMappers","mapIntegrationViewModelToObservable","ObservableIntegrationViewModel","mapButtonsViewModelToObservable","ObservableIntegrationButtonsViewModel","mapButtonViewModelToObservable","ObservableIntegrationButtonViewModel","mapIntegrationSummaryToObservable","KoViewModel","integration$","disconnect","toggleAutoSync","turnOn","getConnectedIntegrationByType","integrations$","MacroTracking","integration","connOfType$","sourcePath","MacrosFirst","onCompleted","simpleConfirm","simpleSuccessAlert","okCallback","yesCallback","mappedMacroTrackingIntegrations","mappedDeviceIntegrations","setupKnockoutBindings","resultStr","errorCodes","errorCodeKey","hasSpecificErrorCode","errorCode","resultMsg","handleIncomingFinalizeData","WaitlistedPrograms","userType_client","userType_coach","program_waitlisted","enterPaymentDetails","proBono","showBillingInfo","waitlistedPrograms","RecaptchaSiteKey","executeGrecaptcha","grecaptcha","recaptchaSiteKey","hasSeen","$gdpr","$gdprInfo","fadeTo","closeGdpr","setSeen","hasSeenObj","determineVisibility","Selector","OnSave","AutoSaveDelay","OnChange","editor","hasAny","onSave","autoSaveDelay","ClassicEditor","language","autosave","waitingTime","sourceElement","newEditor","CookieName","IsDemoing","toggleDemoMode","MediaSourceItem","sourceType","sourceUrl","$mediaItem","$mediaObj","dataSrcStr","MBRX_ReasoningReportType","MBRX_ReasoningReportGroups","suggest","checkinId","$coachCompanionResults","SurfaceOrdinals","PhotoOrdinals","genderId","PhotoUrls","InfoUi","$infoContainer","$InfoContainer","$InfoPhotoOrdinalValue","$InfoPhotoPageIndicators","$MetricsTable","$InfoChestValue","$InfoHipsValue","$InfoWaistValue","$InfoWeightValue","$InfoCheckInNumberContainer","$InfoCheckInNumberValue","$InfoCheckInNumberTitle","$InfoCheckInDate","InfoOpen","toggleInfo","metrics_Chest","metrics_Hips","metrics_Waist","checkInDateStr","forCheckInDate","noData","checkInNumber","forCheckInDateValid","$metric","setPageIndicators","hasFrontPhoto","hasBackPhoto","hasLeftPhoto","hasRightPhoto","setOrdinal","ordinalStr","SurfaceUi","$surface","MaxIndex","$Surface","$BtnNext","$BtnPrev","$BtnRotate","$BtnInfo","$BtnDownload","$WeekSelector","$PhotoContainer","Info","noPhotosVerbiage","hasNoPhotos","setSelectedIndex","PhotoOrdinal","setPhotoForCurrentOrdinal","photoOrdinalStr","genderBackground","onWeekSelected","OnWeekSelectedEvents","emitWeekSelected","SelectedIndex","SelectedData","requestPhotos","setPhotoLoading","setPhotoLoaded","disableUiElements","enableUiElements","FRONT","BACK","SurfaceOrdinal","CompareToolUi","requestedLeftCheckInId","requestedRightCheckInId","$PhotoCompareTool","$ToolSurfaces","$BtnClose","$DaysIndicator","$DaysIndicatorValue","$BtnGraph","$GraphSurfaces","leftStartIndex","rightStartIndex","ri","rl","SurfaceLeft","SurfaceRight","setDaysApart","updateChart","toggleGraphSurfaces","GraphOpen","rightIndex","indexFrom","indexTo","dataSetLabels","dataSetData","preferredWeightOutput","WeightChart","photoData","setLoading","setLoaded","dateLeft","dateRight","setDaysApartValue","timeStr","valueStr","Html","HtmlLoaded","BaseToolHtmlDisplayed","DataLoaded","displayHtml","ToolUi","SearchUrlPath","skipCacheParam","$monikerBadges","monikerBadge","$monikerBadge","monikerStr","newColorHex","searchUrlPath","StripeElementsConfiguration","publishableKey","affiliateAccountId","stripe","card","Stripe","stripeAccount","fonts","cssSrc","fontSmoothing","displayError","$alertPopLi","alertIds","removeItemFromPopover","markRead","alertObjs","systemAlertId","$title","$message","$markReadBtn","$systemAlertModal","showModal","userRead","hasReadAlert","alertUi","MessageCountBadge","countLimit","showZero","formatCount","MessageCountBadges","LocalCacheName","updateUi","mcb","cachedCount","getTotalUnreadMessageCount","OpenMenuTypes","MenuSlideOrOver","OVER","MenuItem","liNavItem","parentNavId","rememberOpenGroups","$aLink","hasALink","isGroupToggle","groupLinkId","linkPath","subItems","addSubNavItems","setExpandedState","hookGroupToggling","parseActivePatterns","$subNavItems","subO","hasActiveSubNavItems","userHasOpened","rememberUserExpanded","subi","forgetUserExpanded","activePatternsStr","activePatterns","subItem","Showing","Pinned","RememberOpenGroups","unsetPageFaderOverflow","removeMenuOpenClass","toggleRememberGroupsState","SLIDE","pin","unpin","menuItem","MenuItems","$chxEnableLogging","$chxEnableRequestProfiling","$btnSkipCache","hookSysAdminOptions","$badge","currentAmount","newAmount","searchContainer","resultLimit","queryResult","From","OrderBy","ToArray","defId","$KbUiWrapper","requestedSection","userFullName","$affiliateLogo","WagPassPurchaseViewModel","completedIntro","userIsClient","wagPasses","purchaserEmail","requestedDuration","requestedTier","elementsConfiguration","PaymentIntentResponse","clientSecret","selectedWagPass","$essentialsBox","$plusBox","$passSelectorDropdown","$purchaseWagPasses","$warningAlertBox","selectedMonths","selectionChanged","_3moSales","pass","_6moSales","_12moSales","setSaleBadgesOnSelectors","buyPass","checkAndWarnPurchaserIfPassIsSale","purchaserEmailVal","warningMessage","$selectedWagPass","$salePercentOff","$originalPrice","$price","$length","$conditions","$payBtnAmount","conditions","getConditions","monthsString","setUiForSelectedPass","paymentElement","paymentElementOk","agreed","confirmPayment","confirmParams","return_url","initializeStripe","essentialsPass","plusPass","displaySelection","passOnSaleVerbiage","$box","$limitedSale","$liSavings","$passSelectorDropdownText","wagPassPurchaseViewModel","Dismiss","businessAlertId","HostingEnvironment","Area","logout","Stay","returnUrl","stopDelegating","stopImpersonating","stopDelegatingAffiliate","cookieEnabled","okAction","bgOpacity","escapeKey","discount","couponId","resubscribing","send_to","transaction_id","item_id","item_name","item_variant","gtag","fbqEvent","hostingEnvironment","sessionStr","hasRole","Roles","roleIds"],"sources":["site.js"],"mappings":"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AAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,UAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,WAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,WACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,UAAY,WACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,WAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,WACnEA,EAAe,UAAY,WAAaA,EAAe,UAAY,YACnEA,EAAe,WAAY,WAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WA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AU,MACV,SAAU,EACV,SAAU,IACV,OAAS,SACT,QAAU,SACV,QAAU,EACV,QAAU,SACV,QAAU,SACV,QAAU,MACV,QAAU,MACV,QAAU,IACV,QAAU,EACV,QAAU,IACV,SAAU,SACV,SAAU,MACV,SAAU,MACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAW,SACX,SAAW,MACX,SAAW,MACX,SAAW,SACX,SAAW,IACX,SAAW,SACX,SAAW,SACX,SAAW,EACX,SAAW,SACX,SAAW,SACX,SAAW,EACX,SAAW,MACX,SAAW,SACX,SAAW,IACX,SAAW,MACX,SAAW,SACX,SAAW,SACX,SAAW,IACX,SAAW,SACX,SAAW,EACX,SAAW,MACX,SAAW,SACX,SAAW,IACX,SAAW,SACX,SAAW,MACX,SAAW,SACX,SAAW,MACX,SAAW,SACX,SAAW,SACX,SAAW,SACX,SAAW,EACX,SAAW,OAEf,CACI,EAAK,WACL,MAAS,WACT,OAAS,QACT,OAAS,WACT,OAAS,EACT,OAAS,QACT,OAAS,WACT,OAAS,QACT,OAAS,WACT,OAAS,QACT,OAAS,GACT,OAAS,WACT,OAAS,WACT,OAAS,KACT,OAAS,KACT,OAAS,WACT,MAAQ,WACR,MAAS,GACT,OAAS,WACT,OAAS,WACT,OAAS,QACT,OAAS,WACT,OAAS,EACT,OAAS,WACT,OAAS,KACT,OAAS,WACT,OAAS,QACT,OAAS,KACT,OAAS,WACT,OAAS,QACT,OAAS,QACT,QAAS,WACT,QAAU,QACV,QAAU,QACV,QAAU,WACV,QAAU,EACV,QAAU,KACV,QAAU,WACV,QAAU,WACV,QAAU,WACV,QAAU,WACV,QAAU,WACV,QAAU,WACV,QAAU,QACV,QAAU,WACV,QAAU,QACV,QAAU,GACV,QAAU,KACV,QAAU,WACV,QAAU,WACV,QAAU,EACV,QAAU,QACV,QAAU,QACV,QAAU,WACV,QAAU,WACV,QAAU,GACV,QAAU,WACV,QAAU,KACV,QAAU,WACV,QAAU,WACV,QAAU,KACV,QAAU,WACV,QAAU,QACV,QAAU,SAEd,CACI,EAAK,IACL,KAAQ,SACR,KAAQ,OACR,MAAQ,UACR,MA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ACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACC,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAUlnH,EAAQD,EAASoxG,GAEjChwG,OAAOqxB,eAAezyB,EAAS,aAAc,CAAEkB,OAAO,IACtD,IAAI0+T,EAAiBxuN,EAAoB,GACrCyuN,EAAuBzuN,EAAoB,IAC3CyoN,EAAmBzoN,EAAoB,IACvCivN,EAAgBjvN,EAAoB,GACpC4qN,EAAS5qN,EAAoB,IAC7BuuN,EAA6B,WAC7B,SAASA,EAAY2b,EAAc7/B,GAC/Bp7S,KAAKi7U,aAAeA,EACpBj7U,KAAKo7S,UAAYA,CACrB,CA0MA,OAzMAkkB,EAAYt+T,UAAUmjL,IAAM,SAAU/5K,GAClC,OAAOpK,KAAKo7S,UAAUj3H,IAAI/5K,EAC9B,EAKAk1T,EAAYt+T,UAAU8zU,4BAA8B,SAAUC,GAC1D,IAEIt0U,EAFA45T,EAAW0a,EAAmBnP,cAC9BoP,EAAkBh1U,KAAKi1U,6BAA6BF,EAAmB/P,qBAGvEwzB,EADqBx4V,KAAKy4V,sBAAs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","ignoreList":[],"sourcesContent":["/**\r\n * Copyright 2014 Riccardo Attilio Galli \r\n * [http://www.sideralis.org]\r\n * \r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n * \r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n * \r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n\r\n// Apply the returnExports.js UMD pattern \r\n// See [https://github.com/umdjs/umd](https://github.com/umdjs/umd)\r\n(function (root, factory) {\r\n \"use strict\";\r\n\r\n if (typeof exports === 'object') {\r\n // Node. Does not work with strict CommonJS, but\r\n // only CommonJS-like enviroments that support module.exports,\r\n // like Node.\r\n module.exports = factory();\r\n } else if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(factory);\r\n } else {\r\n // Browser globals\r\n root.valib = factory();\r\n }\r\n}(this, function (/*dependencies*/) {\r\n \"use strict\";\r\n\r\n // Reset `undefined`, it may have been overwritten.\r\n var undefined = (function () { })();\r\n\r\n // Detect a variable's type (refactoring of code from jQuery 1.7.1).\r\n var getType = (function () {\r\n\r\n var classes = [\"Boolean\", \"Number\", \"String\", \"Function\", \"Array\",\r\n \"Date\", \"RegExp\", \"Object\"],\r\n class2type = {};\r\n\r\n for (var i = 0, il = classes.length; i < il; i++) {\r\n class2type[\"[object \" + classes[i] + \"]\"] = classes[i].toLowerCase();\r\n }\r\n\r\n return function (value) {\r\n return value == null ? // match null and undefined\r\n String(value) :\r\n class2type[Object.prototype.toString.call(value)] || \"object\";\r\n };\r\n\r\n })();\r\n\r\n var valib = {\r\n // Type Functions\r\n // --------------\r\n Type: {\r\n isNumber: function (value) {\r\n return !this.isNaN(value) && getType(value) === 'number';\r\n },\r\n isString: function (value) {\r\n return getType(value) === 'string';\r\n },\r\n isBoolean: function (value) {\r\n return getType(value) === 'boolean';\r\n },\r\n isArray: Array.isArray || function (value) {\r\n return getType(value) === 'array';\r\n },\r\n isObject: function (value) { // note: doesn't treat arrays as objects\r\n return getType(value) === 'object';\r\n },\r\n isFunction: function (value) {\r\n return getType(value) === 'function';\r\n },\r\n isUndefined: function (value) {\r\n return getType(value) === 'undefined';\r\n },\r\n isNull: function (value) {\r\n // not really a Javascript type, but misleading if treated as an object\r\n // (typeof null === 'object')\r\n return getType(value) === 'null';\r\n },\r\n /* Test if `value` is NaN: this is not the same as calling\r\n * the builtin isNaN() (which checks if a value is coercible\r\n * to a number).\r\n */\r\n isNaN: function (value) {\r\n // not really a Javascript type, but misleading if treated as a number\r\n // (typeof NaN === 'number').\r\n return (typeof value === 'number') && value != value;\r\n },\r\n isDate: function (value) {\r\n return getType(value) === 'date';\r\n },\r\n isRegExp: function (value) {\r\n return getType(value) === 'regexp';\r\n }\r\n },\r\n // Number Functions\r\n // ----------------\r\n Number: {\r\n isInteger: function (n) {\r\n return n === +n && n === (n | 0);\r\n },\r\n isFloat: function (n) {\r\n return n === +n && n !== (n | 0);\r\n },\r\n isInfinity: function (n) {\r\n return n === Infinity || n === -Infinity;\r\n },\r\n isZero: function (n) {\r\n return n === 0;\r\n },\r\n /* Test if `n` is between `min` and `max`. By default both bounds are included: \r\n * you can exclude either bound via the `options` object:\r\n * {l_exc: true} means \"left bound excluded\"\r\n * {r_exc: true} means \"right bound excluded\"\r\n */\r\n inRange: function (n, min, max, options) {\r\n options = options || { l_exc: false, r_exc: false };\r\n return (options.l_exc ? n > min : n >= min)\r\n &&\r\n (options.r_exc ? n < max : n <= max);\r\n },\r\n lt: function (n, max) {\r\n return n < max;\r\n },\r\n lte: function (n, max) {\r\n return n <= max;\r\n },\r\n gt: function (n, min) {\r\n return n > min;\r\n },\r\n gte: function (n, min) {\r\n return n >= min;\r\n },\r\n isPositive: function (n) {\r\n return n > 0;\r\n },\r\n isNegative: function (n) {\r\n return n < 0;\r\n }\r\n },\r\n // String Functions\r\n // ----------------\r\n String: {\r\n /* Test if `str` represents a number.\r\n * `options` is an optional object and can contain the following fields:\r\n * - canBeSigned, boolean, defaults `true`\r\n * - simple, boolean, defaults `false`\r\n * When the `simple` option is `true` then only decimal notation is\r\n * accepted (so 2e3, 0x7, etc. are not allowed).\r\n */\r\n isNumeric: function (str, options) {\r\n options = options || {};\r\n // Defaults to {canBeSigned: true}\r\n if (options.canBeSigned === undefined) options.canBeSigned = true;\r\n if (options.simple === undefined) options.simple = false;\r\n\r\n str = valib.String.trim(str);\r\n\r\n // Below isFinite() may choke with signed hexadecimals (Firefox\r\n // return NaN as the standard requires, others parse them, so\r\n // we remove the sign alltogether).\r\n\r\n var sign = null;\r\n if (str.length && str.charAt(0) === '-' || str.charAt(0) === '+') {\r\n sign = str.charAt(0);\r\n str = str.slice(1);\r\n }\r\n\r\n // see http://stackoverflow.com/questions/18082\r\n var isNumeric = !isNaN(parseFloat(str)) && isFinite(str);\r\n\r\n if (!isNumeric) return false;\r\n\r\n if (sign && !options.canBeSigned) return false;\r\n\r\n if (options.simple) return /^(0|[1-9][0-9]*)(\\.[0-9]+)?$/.test(str);\r\n\r\n return true;\r\n },\r\n /* Convert a string to a number. `null` is returned if the string\r\n * cannot be converted.\r\n * `options` is optional and has the same format of `String.isNumeric()`.\r\n */\r\n toNumber: function (str, options) {\r\n // NOTE: this function returns null instead of NaN in case of errors\r\n // because practicality beats purity. Most people would wrongly\r\n // use === NaN on the returned element.\r\n if (!this.isNumeric(str, options)) return null;\r\n\r\n var res = NaN;\r\n if (str.toUpperCase().indexOf('X') !== -1) { res = parseInt(str, 16); } // hex number\r\n else if (/^\\s*[+-]?0[1-9]/.test(str)) { res = parseInt(str, 8); } // oct number\r\n else { res = parseFloat(str); }\r\n\r\n return valib.Type.isNaN(res) ? null : res;\r\n\r\n },\r\n /* Check if the provided string is an url. The only protocols supported\r\n * are http(s) and ftp.\r\n */\r\n isUrl: (function () {\r\n // Javascript version of the regexp found at\r\n // http://stackoverflow.com/questions/161738\r\n var reg = new RegExp(\r\n \"^(https?|ftp)://\" + // protocol\r\n \"(([a-z0-9$_\\\\.\\\\+!\\\\*\\\\'\\\\(\\\\),;\\\\?&=-]|%[0-9a-f]{2})+\" + // username\r\n \"(:([a-z0-9$_\\\\.\\\\+!\\\\*\\\\'\\\\(\\\\),;\\\\?&=-]|%[0-9a-f]{2})+)?\" + // password\r\n \"@)?\" + // auth requires @\r\n \"((([a-z0-9][a-z0-9-]*[a-z0-9]\\\\.)*\" + // domain segments AND\r\n \"[a-z][a-z0-9-]*[a-z0-9]\" + // top level domain OR\r\n \"|((\\\\d|[1-9]\\\\d|1\\\\d{2}|2[0-4][0-9]|25[0-5])\\\\.){3}\" +\r\n \"(\\\\d|[1-9]\\\\d|1\\\\d{2}|2[0-4][0-9]|25[0-5])\" + // IP address\r\n \")(:\\\\d+)?\" + // port\r\n \")(((/+([a-z0-9$_\\\\.\\\\+!\\\\*\\\\'\\\\(\\\\),;:@&=-]|%[0-9a-f]{2})*)*\" + // path\r\n \"(\\\\?([a-z0-9$_\\\\.\\\\+!\\\\*\\\\'\\\\(\\\\),;:@&=-]|%[0-9a-f]{2})*)\" + // query string\r\n \"?)?)?\" + // path and query string optional\r\n \"(#([a-z0-9$_\\\\.\\\\+!\\\\*\\\\'\\\\(\\\\),;:@&=-]|%[0-9a-f]{2})*)?\" + // fragment\r\n \"$\"\r\n , \"i\");\r\n\r\n return function (str) {\r\n return reg.test(str);\r\n };\r\n\r\n })(),\r\n isMD5: function (str) {\r\n return /^[0-9a-f]{32}$/i.test(str);\r\n },\r\n isSHA1: function (str) {\r\n return /^[0-9a-f]{40}$/i.test(str);\r\n },\r\n /* Check if `str` is similar to an e-mail (no hope to comply \r\n * with the RFC and the mess that's the real world).\r\n */\r\n isEmailLike: function (str) {\r\n // something@something with no spaces, one and only one @\r\n return /^[^\\s@]+@[^\\s@]{3,}$/.test(str);\r\n },\r\n /* If regOrString is a regular espression check if `str` matches it.\r\n * If regOrString is a string check if it's equal to `str`.\r\n *\r\n * `options` is an optional object. It can have the following keys:\r\n * - trim: boolean (default `false`).\r\n * If true then trailing whitespaces will be ignored on `str`.\r\n */\r\n match: function (str, regOrString, options) {\r\n options = options || { trim: false };\r\n\r\n if (options.trim) str = valib.String.trim(str);\r\n\r\n if (valib.Type.isRegExp(regOrString)) {\r\n return regOrString.test(str);\r\n }\r\n else return regOrString === str;\r\n },\r\n startsWith: function (str, prefix) {\r\n return str.length >= prefix.length && str.substring(0, prefix.length) === prefix;\r\n },\r\n endsWith: function (str, suffix) {\r\n return str.length >= suffix.length && str.substring(str.length - suffix.length) === suffix;\r\n },\r\n isEmpty: function (str) {\r\n return !str;\r\n },\r\n trim: (function (str) {\r\n // Even if they have String.prototype.trim, browsers may discord\r\n // on the whitespace characters, so we use a custom trim.\r\n\r\n // For Ecma-262 5th edition and Ecma-262 6th draft rev23 trim will\r\n // remove white spaces and line terminators.\r\n // White spaces are defined as:\r\n // - \r\n // \\u0009 \\u000B \\u000C \\u0020 \\u00A0 \\uFEFF\r\n // - symbols in the General category Zs in Unicode >= 5.1 (here 6.3)\r\n // \\u0020 \\u00A0 \\u1680 \\u2000-\\u200A \\u202F \\u205F \\u3000\r\n // Line terminars are defined as:\r\n // - \r\n // \\u000A \\u000D \\u2028 \\u2029\r\n\r\n var ws = '[\\u0009\\u000A-\\u000D\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]',\r\n regAnyWS = new RegExp(ws),\r\n regInitialWS = new RegExp('^' + ws + '+');\r\n\r\n return function (str) {\r\n if (str == null) return ''; // null and undefined\r\n /* modified version of trim12 from\r\n http://blog.stevenlevithan.com/archives/faster-trim-javascript */\r\n str = str.replace(regInitialWS, '');\r\n var i = str.length;\r\n while (regAnyWS.test(str.charAt(--i)));\r\n return str.slice(0, i + 1);\r\n };\r\n })(),\r\n length: {\r\n eq: function (str, n) { return str.length === n; },\r\n gt: function (str, n) { return str.length > n; },\r\n gte: function (str, n) { return str.length >= n; },\r\n lt: function (str, n) { return str.length < n; },\r\n lte: function (str, n) { return str.length <= n; }\r\n }\r\n },\r\n // Array Functions\r\n // ---------------\r\n Array: {\r\n /* Test if `value` is inside `array`.\r\n * If the optional parameter `fromIndex` is provided\r\n * then the search start from that index.\r\n *\r\n * Return the index found or -1.\r\n */\r\n indexOf: function (array, value, fromIndex) { // O(n)\r\n if (array == null) return -1; // null and undefined\r\n\r\n if (array.length === 0) return -1;\r\n\r\n if (!Array.prototype.indexOf) {\r\n if (!fromIndex) fromIndex = 0;\r\n if (fromIndex < 0) fromIndex = array.length - 1;\r\n\r\n for (var i = fromIndex, il = array.length; i < il; i++) {\r\n // Check if `i` is inside `array` to differentiate\r\n // between deleted items and keys set to `undefined`.\r\n if (i in array && array[i] === value) return i;\r\n }\r\n return -1;\r\n\r\n } else return array.indexOf(value, fromIndex);\r\n },\r\n /* Like valib.Array.indexOf, but returns a boolean instead.\r\n */\r\n has: function (array, value, fromIndex) { // O(n)\r\n return -1 !== this.indexOf(array, value, fromIndex);\r\n },\r\n isEmpty: function (array) {\r\n if (array == null) return true;\r\n return array.length === 0;\r\n },\r\n length: {\r\n eq: function (array, n) { return array.length === n; },\r\n gt: function (array, n) { return array.length > n; },\r\n gte: function (array, n) { return array.length >= n; },\r\n lt: function (array, n) { return array.length < n; },\r\n lte: function (array, n) { return array.length <= n; }\r\n }\r\n },\r\n // Object Functions\r\n // ----------------\r\n Object: {\r\n hasKey: function (object, key) {\r\n if (object == null) return false;\r\n return Object.prototype.hasOwnProperty.call(object, key);\r\n },\r\n hasValue: function (object, value) {\r\n for (var key in object) {\r\n if (object.hasOwnProperty(key) && object[key] === value) return true;\r\n }\r\n return false;\r\n },\r\n isEmpty: function (object) {\r\n if (object == null) return true;\r\n for (var key in object) if (this.hasKey(object, key)) return false;\r\n return true;\r\n },\r\n /* Returns the number of properties inside an object.\r\n */\r\n countKeys: function (object) {\r\n var k = 0;\r\n for (var key in object) {\r\n if (object.hasOwnProperty(key)) k++;\r\n }\r\n return k;\r\n }\r\n },\r\n // Date Functions\r\n // --------------\r\n Date: {\r\n isToday: function (d) {\r\n return d > this.yesterday() && d < this.tomorrow();\r\n },\r\n isTomorrow: function (d) {\r\n var tomorrow = this.tomorrow();\r\n return d.getFullYear() === tomorrow.getFullYear()\r\n && d.getMonth() === tomorrow.getMonth()\r\n && d.getDate() === tomorrow.getDate();\r\n },\r\n isYesterday: function (d) {\r\n var yesterday = this.yesterday();\r\n return d.getFullYear() === yesterday.getFullYear()\r\n && d.getMonth() === yesterday.getMonth()\r\n && d.getDate() === yesterday.getDate();\r\n },\r\n isNextDay: function (d, future) {\r\n return this.nDaysFromDate(1, this.toStartOfTheDay(d)).getTime()\r\n == this.toStartOfTheDay(future).getTime();\r\n },\r\n isPreviousDay: function (d, past) {\r\n return this.nDaysFromDate(-1, this.toStartOfTheDay(d)).getTime()\r\n == this.toStartOfTheDay(past).getTime();\r\n },\r\n /* Return the number of calendar days passed (so if more than 24 hours passed\r\n * it may be still a difference of 1 day. e.g. from 01:00 to 03:00 of the\r\n * next day).\r\n */\r\n elapsedDays: function (d1, d2) {\r\n\r\n return Math.abs(Math.round(( // round because of daylight saving\r\n this.toStartOfTheDay(d1).getTime()\r\n -\r\n this.toStartOfTheDay(d2).getTime())\r\n / (24 * 60 * 60 * 1000)));\r\n },\r\n toStartOfTheDay: function (d) {\r\n return new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n },\r\n today: function () {\r\n return this.toStartOfTheDay(new Date());\r\n },\r\n tomorrow: function () {\r\n return this.nDaysFromDate(1);\r\n },\r\n yesterday: function () {\r\n return this.nDaysFromDate(-1);\r\n },\r\n nDaysFromDate: function (n, d) {\r\n if (!d) d = this.today();\r\n else d = this.clone(d);\r\n d.setDate(d.getDate() + n);\r\n return d;\r\n },\r\n /* Test if `d` will occur at most `nDays` after `startFrom`.\r\n * If `startFrom` is missing the current date is used.\r\n * If `d` is an earlier date than `startFrom` the function \r\n * will always return `false`.\r\n */\r\n isWithinDays: function (d, nDays, startFrom) {\r\n if (!startFrom) startFrom = this.today();\r\n else startFrom = this.toStartOfTheDay(startFrom);\r\n\r\n return this.toStartOfTheDay(d) >= this.toStartOfTheDay(startFrom)\r\n && this.elapsedDays(startFrom, d) <= nDays;\r\n },\r\n clone: function (d) {\r\n return new Date(d.getTime());\r\n },\r\n isEqual: function (d1, d2) {\r\n return d1.getTime() === d2.getTime();\r\n },\r\n /* Check if two dates are the same day of the same year\r\n * (the dates must be in the same timezone).\r\n */\r\n isSameDay: function (d1, d2) {\r\n return this.isEqual(this.toStartOfTheDay(d1), this.toStartOfTheDay(d2));\r\n },\r\n /* Check if two dates are in the same year/month\r\n * (the dates must be in the same timezone).\r\n */\r\n isSameMonth: function (d1, d2) {\r\n return d1.getFullYear() === d2.getFullYear()\r\n && d1.getMonth() === d2.getMonth();\r\n },\r\n /* Check if two dates are in the same week and the same year\r\n * (the dates must be in the same timezone).\r\n */\r\n isSameWeek: function (d1, d2, weekStartsAtSunday/*=true*/) {\r\n if (d2 < d1) { var tmp = d1; d1 = d2; d2 = tmp; } // swap\r\n if (weekStartsAtSunday !== false) weekStartsAtSunday = true;\r\n\r\n return this.isSameMonth(d1, d2)\r\n && Math.abs(d1.getDate() - d2.getDate()) < 7\r\n && (\r\n (!weekStartsAtSunday && d1.getDay() === 0 ? 7 : d1.getDay())\r\n <=\r\n (!weekStartsAtSunday && d2.getDay() === 0 ? 7 : d2.getDay())\r\n )\r\n ;\r\n }\r\n }\r\n };\r\n\r\n return valib;\r\n\r\n}));\n/*!\r\n * JavaScript Cookie v2.2.0\r\n * https://github.com/js-cookie/js-cookie\r\n *\r\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\r\n * Released under the MIT license\r\n */\r\n;(function (factory) {\r\n\tvar registeredInModuleLoader = false;\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(factory);\r\n\t\tregisteredInModuleLoader = true;\r\n\t}\r\n\tif (typeof exports === 'object') {\r\n\t\tmodule.exports = factory();\r\n\t\tregisteredInModuleLoader = true;\r\n\t}\r\n\tif (!registeredInModuleLoader) {\r\n\t\tvar OldCookies = window.Cookies;\r\n\t\tvar api = window.Cookies = factory();\r\n\t\tapi.noConflict = function () {\r\n\t\t\twindow.Cookies = OldCookies;\r\n\t\t\treturn api;\r\n\t\t};\r\n\t}\r\n}(function () {\r\n\tfunction extend () {\r\n\t\tvar i = 0;\r\n\t\tvar result = {};\r\n\t\tfor (; i < arguments.length; i++) {\r\n\t\t\tvar attributes = arguments[ i ];\r\n\t\t\tfor (var key in attributes) {\r\n\t\t\t\tresult[key] = attributes[key];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tfunction init (converter) {\r\n\t\tfunction api (key, value, attributes) {\r\n\t\t\tvar result;\r\n\t\t\tif (typeof document === 'undefined') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Write\r\n\r\n\t\t\tif (arguments.length > 1) {\r\n\t\t\t\tattributes = extend({\r\n\t\t\t\t\tpath: '/'\r\n\t\t\t\t}, api.defaults, attributes);\r\n\r\n\t\t\t\tif (typeof attributes.expires === 'number') {\r\n\t\t\t\t\tvar expires = new Date();\r\n\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\r\n\t\t\t\t\tattributes.expires = expires;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\r\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tresult = JSON.stringify(value);\r\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\r\n\t\t\t\t\t\tvalue = result;\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) {}\r\n\r\n\t\t\t\tif (!converter.write) {\r\n\t\t\t\t\tvalue = encodeURIComponent(String(value))\r\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalue = converter.write(value, key);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tkey = encodeURIComponent(String(key));\r\n\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\r\n\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\r\n\r\n\t\t\t\tvar stringifiedAttributes = '';\r\n\r\n\t\t\t\tfor (var attributeName in attributes) {\r\n\t\t\t\t\tif (!attributes[attributeName]) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\r\n\t\t\t\t\tif (attributes[attributeName] === true) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\r\n\t\t\t\t}\r\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\r\n\t\t\t}\r\n\r\n\t\t\t// Read\r\n\r\n\t\t\tif (!key) {\r\n\t\t\t\tresult = {};\r\n\t\t\t}\r\n\r\n\t\t\t// To prevent the for loop in the first place assign an empty array\r\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\r\n\t\t\t// calling \"get()\"\r\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\r\n\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\r\n\t\t\tvar i = 0;\r\n\r\n\t\t\tfor (; i < cookies.length; i++) {\r\n\t\t\t\tvar parts = cookies[i].split('=');\r\n\t\t\t\tvar cookie = parts.slice(1).join('=');\r\n\r\n\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\r\n\t\t\t\t\tcookie = cookie.slice(1, -1);\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\r\n\t\t\t\t\tcookie = converter.read ?\r\n\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\r\n\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\r\n\r\n\t\t\t\t\tif (this.json) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\r\n\t\t\t\t\t\t} catch (e) {}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (key === name) {\r\n\t\t\t\t\t\tresult = cookie;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!key) {\r\n\t\t\t\t\t\tresult[name] = cookie;\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\tapi.set = api;\r\n\t\tapi.get = function (key) {\r\n\t\t\treturn api.call(api, key);\r\n\t\t};\r\n\t\tapi.getJSON = function () {\r\n\t\t\treturn api.apply({\r\n\t\t\t\tjson: true\r\n\t\t\t}, [].slice.call(arguments));\r\n\t\t};\r\n\t\tapi.defaults = {};\r\n\r\n\t\tapi.remove = function (key, attributes) {\r\n\t\t\tapi(key, '', extend(attributes, {\r\n\t\t\t\texpires: -1\r\n\t\t\t}));\r\n\t\t};\r\n\r\n\t\tapi.withConverter = init;\r\n\r\n\t\treturn api;\r\n\t}\r\n\r\n\treturn init(function () {});\r\n}));\n\r\n(function(root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n define(factory);\r\n } else if (typeof exports === 'object') {\r\n module.exports = factory(require, exports, module);\r\n } else {\r\n root.CountUp = factory();\r\n }\r\n}(this, function(require, exports, module) {\r\n\r\n/*\r\n\r\n\tcountUp.js\r\n\tby @inorganik\r\n\r\n*/\r\n\r\n// target = id of html element or var of previously selected html element where counting occurs\r\n// startVal = the value you want to begin at\r\n// endVal = the value you want to arrive at\r\n// decimals = number of decimal places, default 0\r\n// duration = duration of animation in seconds, default 2\r\n// options = optional object of options (see below)\r\n\r\nvar CountUp = function(target, startVal, endVal, decimals, duration, options) {\r\n\r\n\tvar self = this;\r\n\tself.version = function () { return '1.9.3'; };\r\n\t\r\n\t// default options\r\n\tself.options = {\r\n\t\tuseEasing: true, // toggle easing\r\n\t\tuseGrouping: true, // 1,000,000 vs 1000000\r\n\t\tseparator: ',', // character to use as a separator\r\n\t\tdecimal: '.', // character to use as a decimal\r\n\t\teasingFn: easeOutExpo, // optional custom easing function, default is Robert Penner's easeOutExpo\r\n\t\tformattingFn: formatNumber, // optional custom formatting function, default is formatNumber above\r\n\t\tprefix: '', // optional text before the result\r\n\t\tsuffix: '', // optional text after the result\r\n\t\tnumerals: [] // optionally pass an array of custom numerals for 0-9\r\n\t};\r\n\r\n\t// extend default options with passed options object\r\n\tif (options && typeof options === 'object') {\r\n\t\tfor (var key in self.options) {\r\n\t\t\tif (options.hasOwnProperty(key) && options[key] !== null) {\r\n\t\t\t\tself.options[key] = options[key];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (self.options.separator === '') {\r\n\t\tself.options.useGrouping = false;\r\n\t}\r\n\telse {\r\n\t\t// ensure the separator is a string (formatNumber assumes this)\r\n\t\tself.options.separator = '' + self.options.separator;\r\n\t}\r\n\r\n\t// make sure requestAnimationFrame and cancelAnimationFrame are defined\r\n\t// polyfill for browsers without native support\r\n\t// by Opera engineer Erik Möller\r\n\tvar lastTime = 0;\r\n\tvar vendors = ['webkit', 'moz', 'ms', 'o'];\r\n\tfor(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n\t\twindow.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];\r\n\t\twindow.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame'] || window[vendors[x]+'CancelRequestAnimationFrame'];\r\n\t}\r\n\tif (!window.requestAnimationFrame) {\r\n\t\twindow.requestAnimationFrame = function(callback, element) {\r\n\t\t\tvar currTime = new Date().getTime();\r\n\t\t\tvar timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n\t\t\tvar id = window.setTimeout(function() { callback(currTime + timeToCall); }, timeToCall);\r\n\t\t\tlastTime = currTime + timeToCall;\r\n\t\t\treturn id;\r\n\t\t};\r\n\t}\r\n\tif (!window.cancelAnimationFrame) {\r\n\t\twindow.cancelAnimationFrame = function(id) {\r\n\t\t\tclearTimeout(id);\r\n\t\t};\r\n\t}\r\n\r\n\tfunction formatNumber(num) {\r\n\t\tvar neg = (num < 0),\r\n \tx, x1, x2, x3, i, len;\r\n\t\tnum = Math.abs(num).toFixed(self.decimals);\r\n\t\tnum += '';\r\n\t\tx = num.split('.');\r\n\t\tx1 = x[0];\r\n\t\tx2 = x.length > 1 ? self.options.decimal + x[1] : '';\r\n\t\tif (self.options.useGrouping) {\r\n\t\t\tx3 = '';\r\n\t\t\tfor (i = 0, len = x1.length; i < len; ++i) {\r\n\t\t\t\tif (i !== 0 && ((i % 3) === 0)) {\r\n\t\t\t\t\tx3 = self.options.separator + x3;\r\n\t\t\t\t}\r\n\t\t\t\tx3 = x1[len - i - 1] + x3;\r\n\t\t\t}\r\n\t\t\tx1 = x3;\r\n\t\t}\r\n\t\t// optional numeral substitution\r\n\t\tif (self.options.numerals.length) {\r\n\t\t\tx1 = x1.replace(/[0-9]/g, function(w) {\r\n\t\t\t\treturn self.options.numerals[+w];\r\n\t\t\t})\r\n\t\t\tx2 = x2.replace(/[0-9]/g, function(w) {\r\n\t\t\t\treturn self.options.numerals[+w];\r\n\t\t\t})\r\n\t\t}\r\n\t\treturn (neg ? '-' : '') + self.options.prefix + x1 + x2 + self.options.suffix;\r\n\t}\r\n\t// Robert Penner's easeOutExpo\r\n\tfunction easeOutExpo(t, b, c, d) {\r\n\t\treturn c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b;\r\n\t}\r\n\tfunction ensureNumber(n) {\r\n\t\treturn (typeof n === 'number' && !isNaN(n));\r\n\t}\r\n\r\n\tself.initialize = function() { \r\n\t\tif (self.initialized) return true;\r\n\t\t\r\n\t\tself.error = '';\r\n\t\tself.d = (typeof target === 'string') ? document.getElementById(target) : target;\r\n\t\tif (!self.d) { \r\n\t\t\tself.error = '[CountUp] target is null or undefined'\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tself.startVal = Number(startVal);\r\n\t\tself.endVal = Number(endVal);\r\n\t\t// error checks\r\n\t\tif (ensureNumber(self.startVal) && ensureNumber(self.endVal)) {\r\n\t\t\tself.decimals = Math.max(0, decimals || 0);\r\n\t\t\tself.dec = Math.pow(10, self.decimals);\r\n\t\t\tself.duration = Number(duration) * 1000 || 2000;\r\n\t\t\tself.countDown = (self.startVal > self.endVal);\r\n\t\t\tself.frameVal = self.startVal;\r\n\t\t\tself.initialized = true;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tself.error = '[CountUp] startVal ('+startVal+') or endVal ('+endVal+') is not a number';\r\n\t\t\treturn false;\r\n\t\t}\r\n\t};\r\n\r\n\t// Print value to target\r\n\tself.printValue = function(value) {\r\n\t\tvar result = self.options.formattingFn(value);\r\n\r\n\t\tif (self.d.tagName === 'INPUT') {\r\n\t\t\tthis.d.value = result;\r\n\t\t}\r\n\t\telse if (self.d.tagName === 'text' || self.d.tagName === 'tspan') {\r\n\t\t\tthis.d.textContent = result;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.d.innerHTML = result;\r\n\t\t}\r\n\t};\r\n\r\n\tself.count = function(timestamp) {\r\n\r\n\t\tif (!self.startTime) { self.startTime = timestamp; }\r\n\r\n\t\tself.timestamp = timestamp;\r\n\t\tvar progress = timestamp - self.startTime;\r\n\t\tself.remaining = self.duration - progress;\r\n\r\n\t\t// to ease or not to ease\r\n\t\tif (self.options.useEasing) {\r\n\t\t\tif (self.countDown) {\r\n\t\t\t\tself.frameVal = self.startVal - self.options.easingFn(progress, 0, self.startVal - self.endVal, self.duration);\r\n\t\t\t} else {\r\n\t\t\t\tself.frameVal = self.options.easingFn(progress, self.startVal, self.endVal - self.startVal, self.duration);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (self.countDown) {\r\n\t\t\t\tself.frameVal = self.startVal - ((self.startVal - self.endVal) * (progress / self.duration));\r\n\t\t\t} else {\r\n\t\t\t\tself.frameVal = self.startVal + (self.endVal - self.startVal) * (progress / self.duration);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// don't go past endVal since progress can exceed duration in the last frame\r\n\t\tif (self.countDown) {\r\n\t\t\tself.frameVal = (self.frameVal < self.endVal) ? self.endVal : self.frameVal;\r\n\t\t} else {\r\n\t\t\tself.frameVal = (self.frameVal > self.endVal) ? self.endVal : self.frameVal;\r\n\t\t}\r\n\r\n\t\t// decimal\r\n\t\tself.frameVal = Math.round(self.frameVal*self.dec)/self.dec;\r\n\r\n\t\t// format and print value\r\n\t\tself.printValue(self.frameVal);\r\n\r\n\t\t// whether to continue\r\n\t\tif (progress < self.duration) {\r\n\t\t\tself.rAF = requestAnimationFrame(self.count);\r\n\t\t} else {\r\n\t\t\tif (self.callback) self.callback();\r\n\t\t}\r\n\t};\r\n\t// start your animation\r\n\tself.start = function(callback) {\r\n\t\tif (!self.initialize()) return;\r\n\t\tself.callback = callback;\r\n\t\tself.rAF = requestAnimationFrame(self.count);\r\n\t};\r\n\t// toggles pause/resume animation\r\n\tself.pauseResume = function() {\r\n\t\tif (!self.paused) {\r\n\t\t\tself.paused = true;\r\n\t\t\tcancelAnimationFrame(self.rAF);\r\n\t\t} else {\r\n\t\t\tself.paused = false;\r\n\t\t\tdelete self.startTime;\r\n\t\t\tself.duration = self.remaining;\r\n\t\t\tself.startVal = self.frameVal;\r\n\t\t\trequestAnimationFrame(self.count);\r\n\t\t}\r\n\t};\r\n\t// reset to startVal so animation can be run again\r\n\tself.reset = function() {\r\n\t\tself.paused = false;\r\n\t\tdelete self.startTime;\r\n\t\tself.initialized = false;\r\n\t\tif (self.initialize()) {\r\n\t\t\tcancelAnimationFrame(self.rAF);\r\n\t\t\tself.printValue(self.startVal);\r\n\t\t}\r\n\t};\r\n\t// pass a new endVal and start animation\r\n\tself.update = function (newEndVal) {\r\n\t\tif (!self.initialize()) return;\r\n\t\tnewEndVal = Number(newEndVal);\r\n\t\tif (!ensureNumber(newEndVal)) {\r\n\t\t\tself.error = '[CountUp] update() - new endVal is not a number: '+newEndVal;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tself.error = '';\r\n\t\tif (newEndVal === self.frameVal) return;\r\n\t\tcancelAnimationFrame(self.rAF);\r\n\t\tself.paused = false;\r\n\t\tdelete self.startTime;\r\n\t\tself.startVal = self.frameVal;\r\n\t\tself.endVal = newEndVal;\r\n\t\tself.countDown = (self.startVal > self.endVal);\r\n\t\tself.rAF = requestAnimationFrame(self.count);\r\n\t};\r\n\r\n\t// format startVal on initialization\r\n\tif (self.initialize()) self.printValue(self.startVal);\r\n};\r\n\r\nreturn CountUp;\r\n\r\n}));\n; (function (root, factory) {\r\n if (typeof exports === \"object\") {\r\n // CommonJS\r\n module.exports = exports = factory();\r\n }\r\n else if (typeof define === \"function\" && define.amd) {\r\n // AMD\r\n define([], factory);\r\n }\r\n else {\r\n // Global (browser)\r\n root.CryptoJS = factory();\r\n }\r\n}(this, function () {\r\n\r\n\t/**\r\n\t * CryptoJS core components.\r\n\t */\r\n var CryptoJS = CryptoJS || (function (Math, undefined) {\r\n\t /*\r\n\t * Local polyfil of Object.create\r\n\t */\r\n var create = Object.create || (function () {\r\n function F() { };\r\n\r\n return function (obj) {\r\n var subtype;\r\n\r\n F.prototype = obj;\r\n\r\n subtype = new F();\r\n\r\n F.prototype = null;\r\n\r\n return subtype;\r\n };\r\n }())\r\n\r\n\t /**\r\n\t * CryptoJS namespace.\r\n\t */\r\n var C = {};\r\n\r\n\t /**\r\n\t * Library namespace.\r\n\t */\r\n var C_lib = C.lib = {};\r\n\r\n\t /**\r\n\t * Base object for prototypal inheritance.\r\n\t */\r\n var Base = C_lib.Base = (function () {\r\n\r\n\r\n return {\r\n\t /**\r\n\t * Creates a new object that inherits from this object.\r\n\t *\r\n\t * @param {Object} overrides Properties to copy into the new object.\r\n\t *\r\n\t * @return {Object} The new object.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var MyType = CryptoJS.lib.Base.extend({\r\n\t * field: 'value',\r\n\t *\r\n\t * method: function () {\r\n\t * }\r\n\t * });\r\n\t */\r\n extend: function (overrides) {\r\n // Spawn\r\n var subtype = create(this);\r\n\r\n // Augment\r\n if (overrides) {\r\n subtype.mixIn(overrides);\r\n }\r\n\r\n // Create default initializer\r\n if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\r\n subtype.init = function () {\r\n subtype.$super.init.apply(this, arguments);\r\n };\r\n }\r\n\r\n // Initializer's prototype is the subtype object\r\n subtype.init.prototype = subtype;\r\n\r\n // Reference supertype\r\n subtype.$super = this;\r\n\r\n return subtype;\r\n },\r\n\r\n\t /**\r\n\t * Extends this object and runs the init method.\r\n\t * Arguments to create() will be passed to init().\r\n\t *\r\n\t * @return {Object} The new object.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var instance = MyType.create();\r\n\t */\r\n create: function () {\r\n var instance = this.extend();\r\n instance.init.apply(instance, arguments);\r\n\r\n return instance;\r\n },\r\n\r\n\t /**\r\n\t * Initializes a newly created object.\r\n\t * Override this method to add some logic when your objects are created.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var MyType = CryptoJS.lib.Base.extend({\r\n\t * init: function () {\r\n\t * // ...\r\n\t * }\r\n\t * });\r\n\t */\r\n init: function () {\r\n },\r\n\r\n\t /**\r\n\t * Copies properties into this object.\r\n\t *\r\n\t * @param {Object} properties The properties to mix in.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * MyType.mixIn({\r\n\t * field: 'value'\r\n\t * });\r\n\t */\r\n mixIn: function (properties) {\r\n for (var propertyName in properties) {\r\n if (properties.hasOwnProperty(propertyName)) {\r\n this[propertyName] = properties[propertyName];\r\n }\r\n }\r\n\r\n // IE won't copy toString using the loop above\r\n if (properties.hasOwnProperty('toString')) {\r\n this.toString = properties.toString;\r\n }\r\n },\r\n\r\n\t /**\r\n\t * Creates a copy of this object.\r\n\t *\r\n\t * @return {Object} The clone.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var clone = instance.clone();\r\n\t */\r\n clone: function () {\r\n return this.init.prototype.extend(this);\r\n }\r\n };\r\n }());\r\n\r\n\t /**\r\n\t * An array of 32-bit words.\r\n\t *\r\n\t * @property {Array} words The array of 32-bit words.\r\n\t * @property {number} sigBytes The number of significant bytes in this word array.\r\n\t */\r\n var WordArray = C_lib.WordArray = Base.extend({\r\n\t /**\r\n\t * Initializes a newly created word array.\r\n\t *\r\n\t * @param {Array} words (Optional) An array of 32-bit words.\r\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.lib.WordArray.create();\r\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\r\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\r\n\t */\r\n init: function (words, sigBytes) {\r\n words = this.words = words || [];\r\n\r\n if (sigBytes != undefined) {\r\n this.sigBytes = sigBytes;\r\n } else {\r\n this.sigBytes = words.length * 4;\r\n }\r\n },\r\n\r\n\t /**\r\n\t * Converts this word array to a string.\r\n\t *\r\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\r\n\t *\r\n\t * @return {string} The stringified word array.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var string = wordArray + '';\r\n\t * var string = wordArray.toString();\r\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\r\n\t */\r\n toString: function (encoder) {\r\n return (encoder || Hex).stringify(this);\r\n },\r\n\r\n\t /**\r\n\t * Concatenates a word array to this word array.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array to append.\r\n\t *\r\n\t * @return {WordArray} This word array.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * wordArray1.concat(wordArray2);\r\n\t */\r\n concat: function (wordArray) {\r\n // Shortcuts\r\n var thisWords = this.words;\r\n var thatWords = wordArray.words;\r\n var thisSigBytes = this.sigBytes;\r\n var thatSigBytes = wordArray.sigBytes;\r\n\r\n // Clamp excess bits\r\n this.clamp();\r\n\r\n // Concat\r\n if (thisSigBytes % 4) {\r\n // Copy one byte at a time\r\n for (var i = 0; i < thatSigBytes; i++) {\r\n var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\r\n }\r\n } else {\r\n // Copy one word at a time\r\n for (var i = 0; i < thatSigBytes; i += 4) {\r\n thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2];\r\n }\r\n }\r\n this.sigBytes += thatSigBytes;\r\n\r\n // Chainable\r\n return this;\r\n },\r\n\r\n\t /**\r\n\t * Removes insignificant bits.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * wordArray.clamp();\r\n\t */\r\n clamp: function () {\r\n // Shortcuts\r\n var words = this.words;\r\n var sigBytes = this.sigBytes;\r\n\r\n // Clamp\r\n words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\r\n words.length = Math.ceil(sigBytes / 4);\r\n },\r\n\r\n\t /**\r\n\t * Creates a copy of this word array.\r\n\t *\r\n\t * @return {WordArray} The clone.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var clone = wordArray.clone();\r\n\t */\r\n clone: function () {\r\n var clone = Base.clone.call(this);\r\n clone.words = this.words.slice(0);\r\n\r\n return clone;\r\n },\r\n\r\n\t /**\r\n\t * Creates a word array filled with random bytes.\r\n\t *\r\n\t * @param {number} nBytes The number of random bytes to generate.\r\n\t *\r\n\t * @return {WordArray} The random word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\r\n\t */\r\n random: function (nBytes) {\r\n var words = [];\r\n\r\n var r = (function (m_w) {\r\n var m_w = m_w;\r\n var m_z = 0x3ade68b1;\r\n var mask = 0xffffffff;\r\n\r\n return function () {\r\n m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask;\r\n m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask;\r\n var result = ((m_z << 0x10) + m_w) & mask;\r\n result /= 0x100000000;\r\n result += 0.5;\r\n return result * (Math.random() > .5 ? 1 : -1);\r\n }\r\n });\r\n\r\n for (var i = 0, rcache; i < nBytes; i += 4) {\r\n var _r = r((rcache || Math.random()) * 0x100000000);\r\n\r\n rcache = _r() * 0x3ade67b7;\r\n words.push((_r() * 0x100000000) | 0);\r\n }\r\n\r\n return new WordArray.init(words, nBytes);\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Encoder namespace.\r\n\t */\r\n var C_enc = C.enc = {};\r\n\r\n\t /**\r\n\t * Hex encoding strategy.\r\n\t */\r\n var Hex = C_enc.Hex = {\r\n\t /**\r\n\t * Converts a word array to a hex string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @return {string} The hex string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\r\n\t */\r\n stringify: function (wordArray) {\r\n // Shortcuts\r\n var words = wordArray.words;\r\n var sigBytes = wordArray.sigBytes;\r\n\r\n // Convert\r\n var hexChars = [];\r\n for (var i = 0; i < sigBytes; i++) {\r\n var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n hexChars.push((bite >>> 4).toString(16));\r\n hexChars.push((bite & 0x0f).toString(16));\r\n }\r\n\r\n return hexChars.join('');\r\n },\r\n\r\n\t /**\r\n\t * Converts a hex string to a word array.\r\n\t *\r\n\t * @param {string} hexStr The hex string.\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\r\n\t */\r\n parse: function (hexStr) {\r\n // Shortcut\r\n var hexStrLength = hexStr.length;\r\n\r\n // Convert\r\n var words = [];\r\n for (var i = 0; i < hexStrLength; i += 2) {\r\n words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\r\n }\r\n\r\n return new WordArray.init(words, hexStrLength / 2);\r\n }\r\n };\r\n\r\n\t /**\r\n\t * Latin1 encoding strategy.\r\n\t */\r\n var Latin1 = C_enc.Latin1 = {\r\n\t /**\r\n\t * Converts a word array to a Latin1 string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @return {string} The Latin1 string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\r\n\t */\r\n stringify: function (wordArray) {\r\n // Shortcuts\r\n var words = wordArray.words;\r\n var sigBytes = wordArray.sigBytes;\r\n\r\n // Convert\r\n var latin1Chars = [];\r\n for (var i = 0; i < sigBytes; i++) {\r\n var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n latin1Chars.push(String.fromCharCode(bite));\r\n }\r\n\r\n return latin1Chars.join('');\r\n },\r\n\r\n\t /**\r\n\t * Converts a Latin1 string to a word array.\r\n\t *\r\n\t * @param {string} latin1Str The Latin1 string.\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\r\n\t */\r\n parse: function (latin1Str) {\r\n // Shortcut\r\n var latin1StrLength = latin1Str.length;\r\n\r\n // Convert\r\n var words = [];\r\n for (var i = 0; i < latin1StrLength; i++) {\r\n words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\r\n }\r\n\r\n return new WordArray.init(words, latin1StrLength);\r\n }\r\n };\r\n\r\n\t /**\r\n\t * UTF-8 encoding strategy.\r\n\t */\r\n var Utf8 = C_enc.Utf8 = {\r\n\t /**\r\n\t * Converts a word array to a UTF-8 string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @return {string} The UTF-8 string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\r\n\t */\r\n stringify: function (wordArray) {\r\n try {\r\n return decodeURIComponent(escape(Latin1.stringify(wordArray)));\r\n } catch (e) {\r\n throw new Error('Malformed UTF-8 data');\r\n }\r\n },\r\n\r\n\t /**\r\n\t * Converts a UTF-8 string to a word array.\r\n\t *\r\n\t * @param {string} utf8Str The UTF-8 string.\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\r\n\t */\r\n parse: function (utf8Str) {\r\n return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\r\n }\r\n };\r\n\r\n\t /**\r\n\t * Abstract buffered block algorithm template.\r\n\t *\r\n\t * The property blockSize must be implemented in a concrete subtype.\r\n\t *\r\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\r\n\t */\r\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\r\n\t /**\r\n\t * Resets this block algorithm's data buffer to its initial state.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * bufferedBlockAlgorithm.reset();\r\n\t */\r\n reset: function () {\r\n // Initial values\r\n this._data = new WordArray.init();\r\n this._nDataBytes = 0;\r\n },\r\n\r\n\t /**\r\n\t * Adds new data to this block algorithm's buffer.\r\n\t *\r\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * bufferedBlockAlgorithm._append('data');\r\n\t * bufferedBlockAlgorithm._append(wordArray);\r\n\t */\r\n _append: function (data) {\r\n // Convert string to WordArray, else assume WordArray already\r\n if (typeof data == 'string') {\r\n data = Utf8.parse(data);\r\n }\r\n\r\n // Append\r\n this._data.concat(data);\r\n this._nDataBytes += data.sigBytes;\r\n },\r\n\r\n\t /**\r\n\t * Processes available data blocks.\r\n\t *\r\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\r\n\t *\r\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\r\n\t *\r\n\t * @return {WordArray} The processed data.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var processedData = bufferedBlockAlgorithm._process();\r\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\r\n\t */\r\n _process: function (doFlush) {\r\n // Shortcuts\r\n var data = this._data;\r\n var dataWords = data.words;\r\n var dataSigBytes = data.sigBytes;\r\n var blockSize = this.blockSize;\r\n var blockSizeBytes = blockSize * 4;\r\n\r\n // Count blocks ready\r\n var nBlocksReady = dataSigBytes / blockSizeBytes;\r\n if (doFlush) {\r\n // Round up to include partial blocks\r\n nBlocksReady = Math.ceil(nBlocksReady);\r\n } else {\r\n // Round down to include only full blocks,\r\n // less the number of blocks that must remain in the buffer\r\n nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\r\n }\r\n\r\n // Count words ready\r\n var nWordsReady = nBlocksReady * blockSize;\r\n\r\n // Count bytes ready\r\n var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\r\n\r\n // Process blocks\r\n if (nWordsReady) {\r\n for (var offset = 0; offset < nWordsReady; offset += blockSize) {\r\n // Perform concrete-algorithm logic\r\n this._doProcessBlock(dataWords, offset);\r\n }\r\n\r\n // Remove processed words\r\n var processedWords = dataWords.splice(0, nWordsReady);\r\n data.sigBytes -= nBytesReady;\r\n }\r\n\r\n // Return processed words\r\n return new WordArray.init(processedWords, nBytesReady);\r\n },\r\n\r\n\t /**\r\n\t * Creates a copy of this object.\r\n\t *\r\n\t * @return {Object} The clone.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var clone = bufferedBlockAlgorithm.clone();\r\n\t */\r\n clone: function () {\r\n var clone = Base.clone.call(this);\r\n clone._data = this._data.clone();\r\n\r\n return clone;\r\n },\r\n\r\n _minBufferSize: 0\r\n });\r\n\r\n\t /**\r\n\t * Abstract hasher template.\r\n\t *\r\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\r\n\t */\r\n var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t */\r\n cfg: Base.extend(),\r\n\r\n\t /**\r\n\t * Initializes a newly created hasher.\r\n\t *\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hasher = CryptoJS.algo.SHA256.create();\r\n\t */\r\n init: function (cfg) {\r\n // Apply config defaults\r\n this.cfg = this.cfg.extend(cfg);\r\n\r\n // Set initial values\r\n this.reset();\r\n },\r\n\r\n\t /**\r\n\t * Resets this hasher to its initial state.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * hasher.reset();\r\n\t */\r\n reset: function () {\r\n // Reset data buffer\r\n BufferedBlockAlgorithm.reset.call(this);\r\n\r\n // Perform concrete-hasher logic\r\n this._doReset();\r\n },\r\n\r\n\t /**\r\n\t * Updates this hasher with a message.\r\n\t *\r\n\t * @param {WordArray|string} messageUpdate The message to append.\r\n\t *\r\n\t * @return {Hasher} This hasher.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * hasher.update('message');\r\n\t * hasher.update(wordArray);\r\n\t */\r\n update: function (messageUpdate) {\r\n // Append\r\n this._append(messageUpdate);\r\n\r\n // Update the hash\r\n this._process();\r\n\r\n // Chainable\r\n return this;\r\n },\r\n\r\n\t /**\r\n\t * Finalizes the hash computation.\r\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\r\n\t *\r\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = hasher.finalize();\r\n\t * var hash = hasher.finalize('message');\r\n\t * var hash = hasher.finalize(wordArray);\r\n\t */\r\n finalize: function (messageUpdate) {\r\n // Final message update\r\n if (messageUpdate) {\r\n this._append(messageUpdate);\r\n }\r\n\r\n // Perform concrete-hasher logic\r\n var hash = this._doFinalize();\r\n\r\n return hash;\r\n },\r\n\r\n blockSize: 512 / 32,\r\n\r\n\t /**\r\n\t * Creates a shortcut function to a hasher's object interface.\r\n\t *\r\n\t * @param {Hasher} hasher The hasher to create a helper for.\r\n\t *\r\n\t * @return {Function} The shortcut function.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\r\n\t */\r\n _createHelper: function (hasher) {\r\n return function (message, cfg) {\r\n return new hasher.init(cfg).finalize(message);\r\n };\r\n },\r\n\r\n\t /**\r\n\t * Creates a shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\r\n\t *\r\n\t * @return {Function} The shortcut function.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\r\n\t */\r\n _createHmacHelper: function (hasher) {\r\n return function (message, key) {\r\n return new C_algo.HMAC.init(hasher, key).finalize(message);\r\n };\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Algorithm namespace.\r\n\t */\r\n var C_algo = C.algo = {};\r\n\r\n return C;\r\n }(Math));\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var WordArray = C_lib.WordArray;\r\n var C_enc = C.enc;\r\n\r\n\t /**\r\n\t * Base64 encoding strategy.\r\n\t */\r\n var Base64 = C_enc.Base64 = {\r\n\t /**\r\n\t * Converts a word array to a Base64 string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @return {string} The Base64 string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\r\n\t */\r\n stringify: function (wordArray) {\r\n // Shortcuts\r\n var words = wordArray.words;\r\n var sigBytes = wordArray.sigBytes;\r\n var map = this._map;\r\n\r\n // Clamp excess bits\r\n wordArray.clamp();\r\n\r\n // Convert\r\n var base64Chars = [];\r\n for (var i = 0; i < sigBytes; i += 3) {\r\n var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\r\n var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\r\n\r\n var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\r\n\r\n for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\r\n base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\r\n }\r\n }\r\n\r\n // Add padding\r\n var paddingChar = map.charAt(64);\r\n if (paddingChar) {\r\n while (base64Chars.length % 4) {\r\n base64Chars.push(paddingChar);\r\n }\r\n }\r\n\r\n return base64Chars.join('');\r\n },\r\n\r\n\t /**\r\n\t * Converts a Base64 string to a word array.\r\n\t *\r\n\t * @param {string} base64Str The Base64 string.\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\r\n\t */\r\n parse: function (base64Str) {\r\n // Shortcuts\r\n var base64StrLength = base64Str.length;\r\n var map = this._map;\r\n var reverseMap = this._reverseMap;\r\n\r\n if (!reverseMap) {\r\n reverseMap = this._reverseMap = [];\r\n for (var j = 0; j < map.length; j++) {\r\n reverseMap[map.charCodeAt(j)] = j;\r\n }\r\n }\r\n\r\n // Ignore padding\r\n var paddingChar = map.charAt(64);\r\n if (paddingChar) {\r\n var paddingIndex = base64Str.indexOf(paddingChar);\r\n if (paddingIndex !== -1) {\r\n base64StrLength = paddingIndex;\r\n }\r\n }\r\n\r\n // Convert\r\n return parseLoop(base64Str, base64StrLength, reverseMap);\r\n\r\n },\r\n\r\n _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\r\n };\r\n\r\n function parseLoop(base64Str, base64StrLength, reverseMap) {\r\n var words = [];\r\n var nBytes = 0;\r\n for (var i = 0; i < base64StrLength; i++) {\r\n if (i % 4) {\r\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\r\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\r\n words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8);\r\n nBytes++;\r\n }\r\n }\r\n return WordArray.create(words, nBytes);\r\n }\r\n }());\r\n\r\n\r\n (function (Math) {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var WordArray = C_lib.WordArray;\r\n var Hasher = C_lib.Hasher;\r\n var C_algo = C.algo;\r\n\r\n // Constants table\r\n var T = [];\r\n\r\n // Compute constants\r\n (function () {\r\n for (var i = 0; i < 64; i++) {\r\n T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\r\n }\r\n }());\r\n\r\n\t /**\r\n\t * MD5 hash algorithm.\r\n\t */\r\n var MD5 = C_algo.MD5 = Hasher.extend({\r\n _doReset: function () {\r\n this._hash = new WordArray.init([\r\n 0x67452301, 0xefcdab89,\r\n 0x98badcfe, 0x10325476\r\n ]);\r\n },\r\n\r\n _doProcessBlock: function (M, offset) {\r\n // Swap endian\r\n for (var i = 0; i < 16; i++) {\r\n // Shortcuts\r\n var offset_i = offset + i;\r\n var M_offset_i = M[offset_i];\r\n\r\n M[offset_i] = (\r\n (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\r\n (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\r\n );\r\n }\r\n\r\n // Shortcuts\r\n var H = this._hash.words;\r\n\r\n var M_offset_0 = M[offset + 0];\r\n var M_offset_1 = M[offset + 1];\r\n var M_offset_2 = M[offset + 2];\r\n var M_offset_3 = M[offset + 3];\r\n var M_offset_4 = M[offset + 4];\r\n var M_offset_5 = M[offset + 5];\r\n var M_offset_6 = M[offset + 6];\r\n var M_offset_7 = M[offset + 7];\r\n var M_offset_8 = M[offset + 8];\r\n var M_offset_9 = M[offset + 9];\r\n var M_offset_10 = M[offset + 10];\r\n var M_offset_11 = M[offset + 11];\r\n var M_offset_12 = M[offset + 12];\r\n var M_offset_13 = M[offset + 13];\r\n var M_offset_14 = M[offset + 14];\r\n var M_offset_15 = M[offset + 15];\r\n\r\n // Working varialbes\r\n var a = H[0];\r\n var b = H[1];\r\n var c = H[2];\r\n var d = H[3];\r\n\r\n // Computation\r\n a = FF(a, b, c, d, M_offset_0, 7, T[0]);\r\n d = FF(d, a, b, c, M_offset_1, 12, T[1]);\r\n c = FF(c, d, a, b, M_offset_2, 17, T[2]);\r\n b = FF(b, c, d, a, M_offset_3, 22, T[3]);\r\n a = FF(a, b, c, d, M_offset_4, 7, T[4]);\r\n d = FF(d, a, b, c, M_offset_5, 12, T[5]);\r\n c = FF(c, d, a, b, M_offset_6, 17, T[6]);\r\n b = FF(b, c, d, a, M_offset_7, 22, T[7]);\r\n a = FF(a, b, c, d, M_offset_8, 7, T[8]);\r\n d = FF(d, a, b, c, M_offset_9, 12, T[9]);\r\n c = FF(c, d, a, b, M_offset_10, 17, T[10]);\r\n b = FF(b, c, d, a, M_offset_11, 22, T[11]);\r\n a = FF(a, b, c, d, M_offset_12, 7, T[12]);\r\n d = FF(d, a, b, c, M_offset_13, 12, T[13]);\r\n c = FF(c, d, a, b, M_offset_14, 17, T[14]);\r\n b = FF(b, c, d, a, M_offset_15, 22, T[15]);\r\n\r\n a = GG(a, b, c, d, M_offset_1, 5, T[16]);\r\n d = GG(d, a, b, c, M_offset_6, 9, T[17]);\r\n c = GG(c, d, a, b, M_offset_11, 14, T[18]);\r\n b = GG(b, c, d, a, M_offset_0, 20, T[19]);\r\n a = GG(a, b, c, d, M_offset_5, 5, T[20]);\r\n d = GG(d, a, b, c, M_offset_10, 9, T[21]);\r\n c = GG(c, d, a, b, M_offset_15, 14, T[22]);\r\n b = GG(b, c, d, a, M_offset_4, 20, T[23]);\r\n a = GG(a, b, c, d, M_offset_9, 5, T[24]);\r\n d = GG(d, a, b, c, M_offset_14, 9, T[25]);\r\n c = GG(c, d, a, b, M_offset_3, 14, T[26]);\r\n b = GG(b, c, d, a, M_offset_8, 20, T[27]);\r\n a = GG(a, b, c, d, M_offset_13, 5, T[28]);\r\n d = GG(d, a, b, c, M_offset_2, 9, T[29]);\r\n c = GG(c, d, a, b, M_offset_7, 14, T[30]);\r\n b = GG(b, c, d, a, M_offset_12, 20, T[31]);\r\n\r\n a = HH(a, b, c, d, M_offset_5, 4, T[32]);\r\n d = HH(d, a, b, c, M_offset_8, 11, T[33]);\r\n c = HH(c, d, a, b, M_offset_11, 16, T[34]);\r\n b = HH(b, c, d, a, M_offset_14, 23, T[35]);\r\n a = HH(a, b, c, d, M_offset_1, 4, T[36]);\r\n d = HH(d, a, b, c, M_offset_4, 11, T[37]);\r\n c = HH(c, d, a, b, M_offset_7, 16, T[38]);\r\n b = HH(b, c, d, a, M_offset_10, 23, T[39]);\r\n a = HH(a, b, c, d, M_offset_13, 4, T[40]);\r\n d = HH(d, a, b, c, M_offset_0, 11, T[41]);\r\n c = HH(c, d, a, b, M_offset_3, 16, T[42]);\r\n b = HH(b, c, d, a, M_offset_6, 23, T[43]);\r\n a = HH(a, b, c, d, M_offset_9, 4, T[44]);\r\n d = HH(d, a, b, c, M_offset_12, 11, T[45]);\r\n c = HH(c, d, a, b, M_offset_15, 16, T[46]);\r\n b = HH(b, c, d, a, M_offset_2, 23, T[47]);\r\n\r\n a = II(a, b, c, d, M_offset_0, 6, T[48]);\r\n d = II(d, a, b, c, M_offset_7, 10, T[49]);\r\n c = II(c, d, a, b, M_offset_14, 15, T[50]);\r\n b = II(b, c, d, a, M_offset_5, 21, T[51]);\r\n a = II(a, b, c, d, M_offset_12, 6, T[52]);\r\n d = II(d, a, b, c, M_offset_3, 10, T[53]);\r\n c = II(c, d, a, b, M_offset_10, 15, T[54]);\r\n b = II(b, c, d, a, M_offset_1, 21, T[55]);\r\n a = II(a, b, c, d, M_offset_8, 6, T[56]);\r\n d = II(d, a, b, c, M_offset_15, 10, T[57]);\r\n c = II(c, d, a, b, M_offset_6, 15, T[58]);\r\n b = II(b, c, d, a, M_offset_13, 21, T[59]);\r\n a = II(a, b, c, d, M_offset_4, 6, T[60]);\r\n d = II(d, a, b, c, M_offset_11, 10, T[61]);\r\n c = II(c, d, a, b, M_offset_2, 15, T[62]);\r\n b = II(b, c, d, a, M_offset_9, 21, T[63]);\r\n\r\n // Intermediate hash value\r\n H[0] = (H[0] + a) | 0;\r\n H[1] = (H[1] + b) | 0;\r\n H[2] = (H[2] + c) | 0;\r\n H[3] = (H[3] + d) | 0;\r\n },\r\n\r\n _doFinalize: function () {\r\n // Shortcuts\r\n var data = this._data;\r\n var dataWords = data.words;\r\n\r\n var nBitsTotal = this._nDataBytes * 8;\r\n var nBitsLeft = data.sigBytes * 8;\r\n\r\n // Add padding\r\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\r\n\r\n var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\r\n var nBitsTotalL = nBitsTotal;\r\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\r\n (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\r\n (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\r\n );\r\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\r\n (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\r\n (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\r\n );\r\n\r\n data.sigBytes = (dataWords.length + 1) * 4;\r\n\r\n // Hash final blocks\r\n this._process();\r\n\r\n // Shortcuts\r\n var hash = this._hash;\r\n var H = hash.words;\r\n\r\n // Swap endian\r\n for (var i = 0; i < 4; i++) {\r\n // Shortcut\r\n var H_i = H[i];\r\n\r\n H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\r\n (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\r\n }\r\n\r\n // Return final computed hash\r\n return hash;\r\n },\r\n\r\n clone: function () {\r\n var clone = Hasher.clone.call(this);\r\n clone._hash = this._hash.clone();\r\n\r\n return clone;\r\n }\r\n });\r\n\r\n function FF(a, b, c, d, x, s, t) {\r\n var n = a + ((b & c) | (~b & d)) + x + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n }\r\n\r\n function GG(a, b, c, d, x, s, t) {\r\n var n = a + ((b & d) | (c & ~d)) + x + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n }\r\n\r\n function HH(a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + x + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n }\r\n\r\n function II(a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + x + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n }\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.MD5('message');\r\n\t * var hash = CryptoJS.MD5(wordArray);\r\n\t */\r\n C.MD5 = Hasher._createHelper(MD5);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacMD5(message, key);\r\n\t */\r\n C.HmacMD5 = Hasher._createHmacHelper(MD5);\r\n }(Math));\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var WordArray = C_lib.WordArray;\r\n var Hasher = C_lib.Hasher;\r\n var C_algo = C.algo;\r\n\r\n // Reusable object\r\n var W = [];\r\n\r\n\t /**\r\n\t * SHA-1 hash algorithm.\r\n\t */\r\n var SHA1 = C_algo.SHA1 = Hasher.extend({\r\n _doReset: function () {\r\n this._hash = new WordArray.init([\r\n 0x67452301, 0xefcdab89,\r\n 0x98badcfe, 0x10325476,\r\n 0xc3d2e1f0\r\n ]);\r\n },\r\n\r\n _doProcessBlock: function (M, offset) {\r\n // Shortcut\r\n var H = this._hash.words;\r\n\r\n // Working variables\r\n var a = H[0];\r\n var b = H[1];\r\n var c = H[2];\r\n var d = H[3];\r\n var e = H[4];\r\n\r\n // Computation\r\n for (var i = 0; i < 80; i++) {\r\n if (i < 16) {\r\n W[i] = M[offset + i] | 0;\r\n } else {\r\n var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = (n << 1) | (n >>> 31);\r\n }\r\n\r\n var t = ((a << 5) | (a >>> 27)) + e + W[i];\r\n if (i < 20) {\r\n t += ((b & c) | (~b & d)) + 0x5a827999;\r\n } else if (i < 40) {\r\n t += (b ^ c ^ d) + 0x6ed9eba1;\r\n } else if (i < 60) {\r\n t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\r\n } else /* if (i < 80) */ {\r\n t += (b ^ c ^ d) - 0x359d3e2a;\r\n }\r\n\r\n e = d;\r\n d = c;\r\n c = (b << 30) | (b >>> 2);\r\n b = a;\r\n a = t;\r\n }\r\n\r\n // Intermediate hash value\r\n H[0] = (H[0] + a) | 0;\r\n H[1] = (H[1] + b) | 0;\r\n H[2] = (H[2] + c) | 0;\r\n H[3] = (H[3] + d) | 0;\r\n H[4] = (H[4] + e) | 0;\r\n },\r\n\r\n _doFinalize: function () {\r\n // Shortcuts\r\n var data = this._data;\r\n var dataWords = data.words;\r\n\r\n var nBitsTotal = this._nDataBytes * 8;\r\n var nBitsLeft = data.sigBytes * 8;\r\n\r\n // Add padding\r\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\r\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\r\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\r\n data.sigBytes = dataWords.length * 4;\r\n\r\n // Hash final blocks\r\n this._process();\r\n\r\n // Return final computed hash\r\n return this._hash;\r\n },\r\n\r\n clone: function () {\r\n var clone = Hasher.clone.call(this);\r\n clone._hash = this._hash.clone();\r\n\r\n return clone;\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.SHA1('message');\r\n\t * var hash = CryptoJS.SHA1(wordArray);\r\n\t */\r\n C.SHA1 = Hasher._createHelper(SHA1);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\r\n\t */\r\n C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\r\n }());\r\n\r\n\r\n (function (Math) {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var WordArray = C_lib.WordArray;\r\n var Hasher = C_lib.Hasher;\r\n var C_algo = C.algo;\r\n\r\n // Initialization and round constants tables\r\n var H = [];\r\n var K = [];\r\n\r\n // Compute constants\r\n (function () {\r\n function isPrime(n) {\r\n var sqrtN = Math.sqrt(n);\r\n for (var factor = 2; factor <= sqrtN; factor++) {\r\n if (!(n % factor)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function getFractionalBits(n) {\r\n return ((n - (n | 0)) * 0x100000000) | 0;\r\n }\r\n\r\n var n = 2;\r\n var nPrime = 0;\r\n while (nPrime < 64) {\r\n if (isPrime(n)) {\r\n if (nPrime < 8) {\r\n H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\r\n }\r\n K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\r\n\r\n nPrime++;\r\n }\r\n\r\n n++;\r\n }\r\n }());\r\n\r\n // Reusable object\r\n var W = [];\r\n\r\n\t /**\r\n\t * SHA-256 hash algorithm.\r\n\t */\r\n var SHA256 = C_algo.SHA256 = Hasher.extend({\r\n _doReset: function () {\r\n this._hash = new WordArray.init(H.slice(0));\r\n },\r\n\r\n _doProcessBlock: function (M, offset) {\r\n // Shortcut\r\n var H = this._hash.words;\r\n\r\n // Working variables\r\n var a = H[0];\r\n var b = H[1];\r\n var c = H[2];\r\n var d = H[3];\r\n var e = H[4];\r\n var f = H[5];\r\n var g = H[6];\r\n var h = H[7];\r\n\r\n // Computation\r\n for (var i = 0; i < 64; i++) {\r\n if (i < 16) {\r\n W[i] = M[offset + i] | 0;\r\n } else {\r\n var gamma0x = W[i - 15];\r\n var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\r\n ((gamma0x << 14) | (gamma0x >>> 18)) ^\r\n (gamma0x >>> 3);\r\n\r\n var gamma1x = W[i - 2];\r\n var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\r\n ((gamma1x << 13) | (gamma1x >>> 19)) ^\r\n (gamma1x >>> 10);\r\n\r\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\r\n }\r\n\r\n var ch = (e & f) ^ (~e & g);\r\n var maj = (a & b) ^ (a & c) ^ (b & c);\r\n\r\n var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\r\n var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\r\n\r\n var t1 = h + sigma1 + ch + K[i] + W[i];\r\n var t2 = sigma0 + maj;\r\n\r\n h = g;\r\n g = f;\r\n f = e;\r\n e = (d + t1) | 0;\r\n d = c;\r\n c = b;\r\n b = a;\r\n a = (t1 + t2) | 0;\r\n }\r\n\r\n // Intermediate hash value\r\n H[0] = (H[0] + a) | 0;\r\n H[1] = (H[1] + b) | 0;\r\n H[2] = (H[2] + c) | 0;\r\n H[3] = (H[3] + d) | 0;\r\n H[4] = (H[4] + e) | 0;\r\n H[5] = (H[5] + f) | 0;\r\n H[6] = (H[6] + g) | 0;\r\n H[7] = (H[7] + h) | 0;\r\n },\r\n\r\n _doFinalize: function () {\r\n // Shortcuts\r\n var data = this._data;\r\n var dataWords = data.words;\r\n\r\n var nBitsTotal = this._nDataBytes * 8;\r\n var nBitsLeft = data.sigBytes * 8;\r\n\r\n // Add padding\r\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\r\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\r\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\r\n data.sigBytes = dataWords.length * 4;\r\n\r\n // Hash final blocks\r\n this._process();\r\n\r\n // Return final computed hash\r\n return this._hash;\r\n },\r\n\r\n clone: function () {\r\n var clone = Hasher.clone.call(this);\r\n clone._hash = this._hash.clone();\r\n\r\n return clone;\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.SHA256('message');\r\n\t * var hash = CryptoJS.SHA256(wordArray);\r\n\t */\r\n C.SHA256 = Hasher._createHelper(SHA256);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\r\n\t */\r\n C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\r\n }(Math));\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var WordArray = C_lib.WordArray;\r\n var C_enc = C.enc;\r\n\r\n\t /**\r\n\t * UTF-16 BE encoding strategy.\r\n\t */\r\n var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\r\n\t /**\r\n\t * Converts a word array to a UTF-16 BE string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @return {string} The UTF-16 BE string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\r\n\t */\r\n stringify: function (wordArray) {\r\n // Shortcuts\r\n var words = wordArray.words;\r\n var sigBytes = wordArray.sigBytes;\r\n\r\n // Convert\r\n var utf16Chars = [];\r\n for (var i = 0; i < sigBytes; i += 2) {\r\n var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\r\n utf16Chars.push(String.fromCharCode(codePoint));\r\n }\r\n\r\n return utf16Chars.join('');\r\n },\r\n\r\n\t /**\r\n\t * Converts a UTF-16 BE string to a word array.\r\n\t *\r\n\t * @param {string} utf16Str The UTF-16 BE string.\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\r\n\t */\r\n parse: function (utf16Str) {\r\n // Shortcut\r\n var utf16StrLength = utf16Str.length;\r\n\r\n // Convert\r\n var words = [];\r\n for (var i = 0; i < utf16StrLength; i++) {\r\n words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\r\n }\r\n\r\n return WordArray.create(words, utf16StrLength * 2);\r\n }\r\n };\r\n\r\n\t /**\r\n\t * UTF-16 LE encoding strategy.\r\n\t */\r\n C_enc.Utf16LE = {\r\n\t /**\r\n\t * Converts a word array to a UTF-16 LE string.\r\n\t *\r\n\t * @param {WordArray} wordArray The word array.\r\n\t *\r\n\t * @return {string} The UTF-16 LE string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\r\n\t */\r\n stringify: function (wordArray) {\r\n // Shortcuts\r\n var words = wordArray.words;\r\n var sigBytes = wordArray.sigBytes;\r\n\r\n // Convert\r\n var utf16Chars = [];\r\n for (var i = 0; i < sigBytes; i += 2) {\r\n var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\r\n utf16Chars.push(String.fromCharCode(codePoint));\r\n }\r\n\r\n return utf16Chars.join('');\r\n },\r\n\r\n\t /**\r\n\t * Converts a UTF-16 LE string to a word array.\r\n\t *\r\n\t * @param {string} utf16Str The UTF-16 LE string.\r\n\t *\r\n\t * @return {WordArray} The word array.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\r\n\t */\r\n parse: function (utf16Str) {\r\n // Shortcut\r\n var utf16StrLength = utf16Str.length;\r\n\r\n // Convert\r\n var words = [];\r\n for (var i = 0; i < utf16StrLength; i++) {\r\n words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\r\n }\r\n\r\n return WordArray.create(words, utf16StrLength * 2);\r\n }\r\n };\r\n\r\n function swapEndian(word) {\r\n return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\r\n }\r\n }());\r\n\r\n\r\n (function () {\r\n // Check if typed arrays are supported\r\n if (typeof ArrayBuffer != 'function') {\r\n return;\r\n }\r\n\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var WordArray = C_lib.WordArray;\r\n\r\n // Reference original init\r\n var superInit = WordArray.init;\r\n\r\n // Augment WordArray.init to handle typed arrays\r\n var subInit = WordArray.init = function (typedArray) {\r\n // Convert buffers to uint8\r\n if (typedArray instanceof ArrayBuffer) {\r\n typedArray = new Uint8Array(typedArray);\r\n }\r\n\r\n // Convert other array views to uint8\r\n if (\r\n typedArray instanceof Int8Array ||\r\n (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\r\n typedArray instanceof Int16Array ||\r\n typedArray instanceof Uint16Array ||\r\n typedArray instanceof Int32Array ||\r\n typedArray instanceof Uint32Array ||\r\n typedArray instanceof Float32Array ||\r\n typedArray instanceof Float64Array\r\n ) {\r\n typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\r\n }\r\n\r\n // Handle Uint8Array\r\n if (typedArray instanceof Uint8Array) {\r\n // Shortcut\r\n var typedArrayByteLength = typedArray.byteLength;\r\n\r\n // Extract bytes\r\n var words = [];\r\n for (var i = 0; i < typedArrayByteLength; i++) {\r\n words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\r\n }\r\n\r\n // Initialize this word array\r\n superInit.call(this, words, typedArrayByteLength);\r\n } else {\r\n // Else call normal init\r\n superInit.apply(this, arguments);\r\n }\r\n };\r\n\r\n subInit.prototype = WordArray;\r\n }());\r\n\r\n\r\n\t/** @preserve\r\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\r\n\r\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\r\n\r\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\r\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\r\n\r\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n\t*/\r\n\r\n (function (Math) {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var WordArray = C_lib.WordArray;\r\n var Hasher = C_lib.Hasher;\r\n var C_algo = C.algo;\r\n\r\n // Constants table\r\n var _zl = WordArray.create([\r\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\r\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\r\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\r\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\r\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\r\n var _zr = WordArray.create([\r\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\r\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\r\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\r\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\r\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\r\n var _sl = WordArray.create([\r\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\r\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\r\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\r\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\r\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]);\r\n var _sr = WordArray.create([\r\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\r\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\r\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\r\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\r\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]);\r\n\r\n var _hl = WordArray.create([0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\r\n var _hr = WordArray.create([0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\r\n\r\n\t /**\r\n\t * RIPEMD160 hash algorithm.\r\n\t */\r\n var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\r\n _doReset: function () {\r\n this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\r\n },\r\n\r\n _doProcessBlock: function (M, offset) {\r\n\r\n // Swap endian\r\n for (var i = 0; i < 16; i++) {\r\n // Shortcuts\r\n var offset_i = offset + i;\r\n var M_offset_i = M[offset_i];\r\n\r\n // Swap\r\n M[offset_i] = (\r\n (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\r\n (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\r\n );\r\n }\r\n // Shortcut\r\n var H = this._hash.words;\r\n var hl = _hl.words;\r\n var hr = _hr.words;\r\n var zl = _zl.words;\r\n var zr = _zr.words;\r\n var sl = _sl.words;\r\n var sr = _sr.words;\r\n\r\n // Working variables\r\n var al, bl, cl, dl, el;\r\n var ar, br, cr, dr, er;\r\n\r\n ar = al = H[0];\r\n br = bl = H[1];\r\n cr = cl = H[2];\r\n dr = dl = H[3];\r\n er = el = H[4];\r\n // Computation\r\n var t;\r\n for (var i = 0; i < 80; i += 1) {\r\n t = (al + M[offset + zl[i]]) | 0;\r\n if (i < 16) {\r\n t += f1(bl, cl, dl) + hl[0];\r\n } else if (i < 32) {\r\n t += f2(bl, cl, dl) + hl[1];\r\n } else if (i < 48) {\r\n t += f3(bl, cl, dl) + hl[2];\r\n } else if (i < 64) {\r\n t += f4(bl, cl, dl) + hl[3];\r\n } else {// if (i<80) {\r\n t += f5(bl, cl, dl) + hl[4];\r\n }\r\n t = t | 0;\r\n t = rotl(t, sl[i]);\r\n t = (t + el) | 0;\r\n al = el;\r\n el = dl;\r\n dl = rotl(cl, 10);\r\n cl = bl;\r\n bl = t;\r\n\r\n t = (ar + M[offset + zr[i]]) | 0;\r\n if (i < 16) {\r\n t += f5(br, cr, dr) + hr[0];\r\n } else if (i < 32) {\r\n t += f4(br, cr, dr) + hr[1];\r\n } else if (i < 48) {\r\n t += f3(br, cr, dr) + hr[2];\r\n } else if (i < 64) {\r\n t += f2(br, cr, dr) + hr[3];\r\n } else {// if (i<80) {\r\n t += f1(br, cr, dr) + hr[4];\r\n }\r\n t = t | 0;\r\n t = rotl(t, sr[i]);\r\n t = (t + er) | 0;\r\n ar = er;\r\n er = dr;\r\n dr = rotl(cr, 10);\r\n cr = br;\r\n br = t;\r\n }\r\n // Intermediate hash value\r\n t = (H[1] + cl + dr) | 0;\r\n H[1] = (H[2] + dl + er) | 0;\r\n H[2] = (H[3] + el + ar) | 0;\r\n H[3] = (H[4] + al + br) | 0;\r\n H[4] = (H[0] + bl + cr) | 0;\r\n H[0] = t;\r\n },\r\n\r\n _doFinalize: function () {\r\n // Shortcuts\r\n var data = this._data;\r\n var dataWords = data.words;\r\n\r\n var nBitsTotal = this._nDataBytes * 8;\r\n var nBitsLeft = data.sigBytes * 8;\r\n\r\n // Add padding\r\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\r\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\r\n (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\r\n (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\r\n );\r\n data.sigBytes = (dataWords.length + 1) * 4;\r\n\r\n // Hash final blocks\r\n this._process();\r\n\r\n // Shortcuts\r\n var hash = this._hash;\r\n var H = hash.words;\r\n\r\n // Swap endian\r\n for (var i = 0; i < 5; i++) {\r\n // Shortcut\r\n var H_i = H[i];\r\n\r\n // Swap\r\n H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\r\n (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\r\n }\r\n\r\n // Return final computed hash\r\n return hash;\r\n },\r\n\r\n clone: function () {\r\n var clone = Hasher.clone.call(this);\r\n clone._hash = this._hash.clone();\r\n\r\n return clone;\r\n }\r\n });\r\n\r\n\r\n function f1(x, y, z) {\r\n return ((x) ^ (y) ^ (z));\r\n\r\n }\r\n\r\n function f2(x, y, z) {\r\n return (((x) & (y)) | ((~x) & (z)));\r\n }\r\n\r\n function f3(x, y, z) {\r\n return (((x) | (~(y))) ^ (z));\r\n }\r\n\r\n function f4(x, y, z) {\r\n return (((x) & (z)) | ((y) & (~(z))));\r\n }\r\n\r\n function f5(x, y, z) {\r\n return ((x) ^ ((y) | (~(z))));\r\n\r\n }\r\n\r\n function rotl(x, n) {\r\n return (x << n) | (x >>> (32 - n));\r\n }\r\n\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.RIPEMD160('message');\r\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\r\n\t */\r\n C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\r\n\t */\r\n C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\r\n }(Math));\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var Base = C_lib.Base;\r\n var C_enc = C.enc;\r\n var Utf8 = C_enc.Utf8;\r\n var C_algo = C.algo;\r\n\r\n\t /**\r\n\t * HMAC algorithm.\r\n\t */\r\n var HMAC = C_algo.HMAC = Base.extend({\r\n\t /**\r\n\t * Initializes a newly created HMAC.\r\n\t *\r\n\t * @param {Hasher} hasher The hash algorithm to use.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\r\n\t */\r\n init: function (hasher, key) {\r\n // Init hasher\r\n hasher = this._hasher = new hasher.init();\r\n\r\n // Convert string to WordArray, else assume WordArray already\r\n if (typeof key == 'string') {\r\n key = Utf8.parse(key);\r\n }\r\n\r\n // Shortcuts\r\n var hasherBlockSize = hasher.blockSize;\r\n var hasherBlockSizeBytes = hasherBlockSize * 4;\r\n\r\n // Allow arbitrary length keys\r\n if (key.sigBytes > hasherBlockSizeBytes) {\r\n key = hasher.finalize(key);\r\n }\r\n\r\n // Clamp excess bits\r\n key.clamp();\r\n\r\n // Clone key for inner and outer pads\r\n var oKey = this._oKey = key.clone();\r\n var iKey = this._iKey = key.clone();\r\n\r\n // Shortcuts\r\n var oKeyWords = oKey.words;\r\n var iKeyWords = iKey.words;\r\n\r\n // XOR keys with pad constants\r\n for (var i = 0; i < hasherBlockSize; i++) {\r\n oKeyWords[i] ^= 0x5c5c5c5c;\r\n iKeyWords[i] ^= 0x36363636;\r\n }\r\n oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\r\n\r\n // Set initial values\r\n this.reset();\r\n },\r\n\r\n\t /**\r\n\t * Resets this HMAC to its initial state.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * hmacHasher.reset();\r\n\t */\r\n reset: function () {\r\n // Shortcut\r\n var hasher = this._hasher;\r\n\r\n // Reset\r\n hasher.reset();\r\n hasher.update(this._iKey);\r\n },\r\n\r\n\t /**\r\n\t * Updates this HMAC with a message.\r\n\t *\r\n\t * @param {WordArray|string} messageUpdate The message to append.\r\n\t *\r\n\t * @return {HMAC} This HMAC instance.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * hmacHasher.update('message');\r\n\t * hmacHasher.update(wordArray);\r\n\t */\r\n update: function (messageUpdate) {\r\n this._hasher.update(messageUpdate);\r\n\r\n // Chainable\r\n return this;\r\n },\r\n\r\n\t /**\r\n\t * Finalizes the HMAC computation.\r\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\r\n\t *\r\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = hmacHasher.finalize();\r\n\t * var hmac = hmacHasher.finalize('message');\r\n\t * var hmac = hmacHasher.finalize(wordArray);\r\n\t */\r\n finalize: function (messageUpdate) {\r\n // Shortcut\r\n var hasher = this._hasher;\r\n\r\n // Compute HMAC\r\n var innerHash = hasher.finalize(messageUpdate);\r\n hasher.reset();\r\n var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\r\n\r\n return hmac;\r\n }\r\n });\r\n }());\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var Base = C_lib.Base;\r\n var WordArray = C_lib.WordArray;\r\n var C_algo = C.algo;\r\n var SHA1 = C_algo.SHA1;\r\n var HMAC = C_algo.HMAC;\r\n\r\n\t /**\r\n\t * Password-Based Key Derivation Function 2 algorithm.\r\n\t */\r\n var PBKDF2 = C_algo.PBKDF2 = Base.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\r\n\t * @property {Hasher} hasher The hasher to use. Default: SHA1\r\n\t * @property {number} iterations The number of iterations to perform. Default: 1\r\n\t */\r\n cfg: Base.extend({\r\n keySize: 128 / 32,\r\n hasher: SHA1,\r\n iterations: 1\r\n }),\r\n\r\n\t /**\r\n\t * Initializes a newly created key derivation function.\r\n\t *\r\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\r\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\r\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\r\n\t */\r\n init: function (cfg) {\r\n this.cfg = this.cfg.extend(cfg);\r\n },\r\n\r\n\t /**\r\n\t * Computes the Password-Based Key Derivation Function 2.\r\n\t *\r\n\t * @param {WordArray|string} password The password.\r\n\t * @param {WordArray|string} salt A salt.\r\n\t *\r\n\t * @return {WordArray} The derived key.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var key = kdf.compute(password, salt);\r\n\t */\r\n compute: function (password, salt) {\r\n // Shortcut\r\n var cfg = this.cfg;\r\n\r\n // Init HMAC\r\n var hmac = HMAC.create(cfg.hasher, password);\r\n\r\n // Initial values\r\n var derivedKey = WordArray.create();\r\n var blockIndex = WordArray.create([0x00000001]);\r\n\r\n // Shortcuts\r\n var derivedKeyWords = derivedKey.words;\r\n var blockIndexWords = blockIndex.words;\r\n var keySize = cfg.keySize;\r\n var iterations = cfg.iterations;\r\n\r\n // Generate key\r\n while (derivedKeyWords.length < keySize) {\r\n var block = hmac.update(salt).finalize(blockIndex);\r\n hmac.reset();\r\n\r\n // Shortcuts\r\n var blockWords = block.words;\r\n var blockWordsLength = blockWords.length;\r\n\r\n // Iterations\r\n var intermediate = block;\r\n for (var i = 1; i < iterations; i++) {\r\n intermediate = hmac.finalize(intermediate);\r\n hmac.reset();\r\n\r\n // Shortcut\r\n var intermediateWords = intermediate.words;\r\n\r\n // XOR intermediate with block\r\n for (var j = 0; j < blockWordsLength; j++) {\r\n blockWords[j] ^= intermediateWords[j];\r\n }\r\n }\r\n\r\n derivedKey.concat(block);\r\n blockIndexWords[0]++;\r\n }\r\n derivedKey.sigBytes = keySize * 4;\r\n\r\n return derivedKey;\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Computes the Password-Based Key Derivation Function 2.\r\n\t *\r\n\t * @param {WordArray|string} password The password.\r\n\t * @param {WordArray|string} salt A salt.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\r\n\t *\r\n\t * @return {WordArray} The derived key.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var key = CryptoJS.PBKDF2(password, salt);\r\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\r\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\r\n\t */\r\n C.PBKDF2 = function (password, salt, cfg) {\r\n return PBKDF2.create(cfg).compute(password, salt);\r\n };\r\n }());\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var Base = C_lib.Base;\r\n var WordArray = C_lib.WordArray;\r\n var C_algo = C.algo;\r\n var MD5 = C_algo.MD5;\r\n\r\n\t /**\r\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\r\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\r\n\t */\r\n var EvpKDF = C_algo.EvpKDF = Base.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\r\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\r\n\t * @property {number} iterations The number of iterations to perform. Default: 1\r\n\t */\r\n cfg: Base.extend({\r\n keySize: 128 / 32,\r\n hasher: MD5,\r\n iterations: 1\r\n }),\r\n\r\n\t /**\r\n\t * Initializes a newly created key derivation function.\r\n\t *\r\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\r\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\r\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\r\n\t */\r\n init: function (cfg) {\r\n this.cfg = this.cfg.extend(cfg);\r\n },\r\n\r\n\t /**\r\n\t * Derives a key from a password.\r\n\t *\r\n\t * @param {WordArray|string} password The password.\r\n\t * @param {WordArray|string} salt A salt.\r\n\t *\r\n\t * @return {WordArray} The derived key.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var key = kdf.compute(password, salt);\r\n\t */\r\n compute: function (password, salt) {\r\n // Shortcut\r\n var cfg = this.cfg;\r\n\r\n // Init hasher\r\n var hasher = cfg.hasher.create();\r\n\r\n // Initial values\r\n var derivedKey = WordArray.create();\r\n\r\n // Shortcuts\r\n var derivedKeyWords = derivedKey.words;\r\n var keySize = cfg.keySize;\r\n var iterations = cfg.iterations;\r\n\r\n // Generate key\r\n while (derivedKeyWords.length < keySize) {\r\n if (block) {\r\n hasher.update(block);\r\n }\r\n var block = hasher.update(password).finalize(salt);\r\n hasher.reset();\r\n\r\n // Iterations\r\n for (var i = 1; i < iterations; i++) {\r\n block = hasher.finalize(block);\r\n hasher.reset();\r\n }\r\n\r\n derivedKey.concat(block);\r\n }\r\n derivedKey.sigBytes = keySize * 4;\r\n\r\n return derivedKey;\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Derives a key from a password.\r\n\t *\r\n\t * @param {WordArray|string} password The password.\r\n\t * @param {WordArray|string} salt A salt.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\r\n\t *\r\n\t * @return {WordArray} The derived key.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var key = CryptoJS.EvpKDF(password, salt);\r\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\r\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\r\n\t */\r\n C.EvpKDF = function (password, salt, cfg) {\r\n return EvpKDF.create(cfg).compute(password, salt);\r\n };\r\n }());\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var WordArray = C_lib.WordArray;\r\n var C_algo = C.algo;\r\n var SHA256 = C_algo.SHA256;\r\n\r\n\t /**\r\n\t * SHA-224 hash algorithm.\r\n\t */\r\n var SHA224 = C_algo.SHA224 = SHA256.extend({\r\n _doReset: function () {\r\n this._hash = new WordArray.init([\r\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\r\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\r\n ]);\r\n },\r\n\r\n _doFinalize: function () {\r\n var hash = SHA256._doFinalize.call(this);\r\n\r\n hash.sigBytes -= 4;\r\n\r\n return hash;\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.SHA224('message');\r\n\t * var hash = CryptoJS.SHA224(wordArray);\r\n\t */\r\n C.SHA224 = SHA256._createHelper(SHA224);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\r\n\t */\r\n C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\r\n }());\r\n\r\n\r\n (function (undefined) {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var Base = C_lib.Base;\r\n var X32WordArray = C_lib.WordArray;\r\n\r\n\t /**\r\n\t * x64 namespace.\r\n\t */\r\n var C_x64 = C.x64 = {};\r\n\r\n\t /**\r\n\t * A 64-bit word.\r\n\t */\r\n var X64Word = C_x64.Word = Base.extend({\r\n\t /**\r\n\t * Initializes a newly created 64-bit word.\r\n\t *\r\n\t * @param {number} high The high 32 bits.\r\n\t * @param {number} low The low 32 bits.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\r\n\t */\r\n init: function (high, low) {\r\n this.high = high;\r\n this.low = low;\r\n }\r\n\r\n\t /**\r\n\t * Bitwise NOTs this word.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after negating.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var negated = x64Word.not();\r\n\t */\r\n // not: function () {\r\n // var high = ~this.high;\r\n // var low = ~this.low;\r\n\r\n // return X64Word.create(high, low);\r\n // },\r\n\r\n\t /**\r\n\t * Bitwise ANDs this word with the passed word.\r\n\t *\r\n\t * @param {X64Word} word The x64-Word to AND with this word.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after ANDing.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var anded = x64Word.and(anotherX64Word);\r\n\t */\r\n // and: function (word) {\r\n // var high = this.high & word.high;\r\n // var low = this.low & word.low;\r\n\r\n // return X64Word.create(high, low);\r\n // },\r\n\r\n\t /**\r\n\t * Bitwise ORs this word with the passed word.\r\n\t *\r\n\t * @param {X64Word} word The x64-Word to OR with this word.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after ORing.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ored = x64Word.or(anotherX64Word);\r\n\t */\r\n // or: function (word) {\r\n // var high = this.high | word.high;\r\n // var low = this.low | word.low;\r\n\r\n // return X64Word.create(high, low);\r\n // },\r\n\r\n\t /**\r\n\t * Bitwise XORs this word with the passed word.\r\n\t *\r\n\t * @param {X64Word} word The x64-Word to XOR with this word.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after XORing.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var xored = x64Word.xor(anotherX64Word);\r\n\t */\r\n // xor: function (word) {\r\n // var high = this.high ^ word.high;\r\n // var low = this.low ^ word.low;\r\n\r\n // return X64Word.create(high, low);\r\n // },\r\n\r\n\t /**\r\n\t * Shifts this word n bits to the left.\r\n\t *\r\n\t * @param {number} n The number of bits to shift.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after shifting.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var shifted = x64Word.shiftL(25);\r\n\t */\r\n // shiftL: function (n) {\r\n // if (n < 32) {\r\n // var high = (this.high << n) | (this.low >>> (32 - n));\r\n // var low = this.low << n;\r\n // } else {\r\n // var high = this.low << (n - 32);\r\n // var low = 0;\r\n // }\r\n\r\n // return X64Word.create(high, low);\r\n // },\r\n\r\n\t /**\r\n\t * Shifts this word n bits to the right.\r\n\t *\r\n\t * @param {number} n The number of bits to shift.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after shifting.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var shifted = x64Word.shiftR(7);\r\n\t */\r\n // shiftR: function (n) {\r\n // if (n < 32) {\r\n // var low = (this.low >>> n) | (this.high << (32 - n));\r\n // var high = this.high >>> n;\r\n // } else {\r\n // var low = this.high >>> (n - 32);\r\n // var high = 0;\r\n // }\r\n\r\n // return X64Word.create(high, low);\r\n // },\r\n\r\n\t /**\r\n\t * Rotates this word n bits to the left.\r\n\t *\r\n\t * @param {number} n The number of bits to rotate.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after rotating.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var rotated = x64Word.rotL(25);\r\n\t */\r\n // rotL: function (n) {\r\n // return this.shiftL(n).or(this.shiftR(64 - n));\r\n // },\r\n\r\n\t /**\r\n\t * Rotates this word n bits to the right.\r\n\t *\r\n\t * @param {number} n The number of bits to rotate.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after rotating.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var rotated = x64Word.rotR(7);\r\n\t */\r\n // rotR: function (n) {\r\n // return this.shiftR(n).or(this.shiftL(64 - n));\r\n // },\r\n\r\n\t /**\r\n\t * Adds this word with the passed word.\r\n\t *\r\n\t * @param {X64Word} word The x64-Word to add with this word.\r\n\t *\r\n\t * @return {X64Word} A new x64-Word object after adding.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var added = x64Word.add(anotherX64Word);\r\n\t */\r\n // add: function (word) {\r\n // var low = (this.low + word.low) | 0;\r\n // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\r\n // var high = (this.high + word.high + carry) | 0;\r\n\r\n // return X64Word.create(high, low);\r\n // }\r\n });\r\n\r\n\t /**\r\n\t * An array of 64-bit words.\r\n\t *\r\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\r\n\t * @property {number} sigBytes The number of significant bytes in this word array.\r\n\t */\r\n var X64WordArray = C_x64.WordArray = Base.extend({\r\n\t /**\r\n\t * Initializes a newly created word array.\r\n\t *\r\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\r\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var wordArray = CryptoJS.x64.WordArray.create();\r\n\t *\r\n\t * var wordArray = CryptoJS.x64.WordArray.create([\r\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\r\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\r\n\t * ]);\r\n\t *\r\n\t * var wordArray = CryptoJS.x64.WordArray.create([\r\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\r\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\r\n\t * ], 10);\r\n\t */\r\n init: function (words, sigBytes) {\r\n words = this.words = words || [];\r\n\r\n if (sigBytes != undefined) {\r\n this.sigBytes = sigBytes;\r\n } else {\r\n this.sigBytes = words.length * 8;\r\n }\r\n },\r\n\r\n\t /**\r\n\t * Converts this 64-bit word array to a 32-bit word array.\r\n\t *\r\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var x32WordArray = x64WordArray.toX32();\r\n\t */\r\n toX32: function () {\r\n // Shortcuts\r\n var x64Words = this.words;\r\n var x64WordsLength = x64Words.length;\r\n\r\n // Convert\r\n var x32Words = [];\r\n for (var i = 0; i < x64WordsLength; i++) {\r\n var x64Word = x64Words[i];\r\n x32Words.push(x64Word.high);\r\n x32Words.push(x64Word.low);\r\n }\r\n\r\n return X32WordArray.create(x32Words, this.sigBytes);\r\n },\r\n\r\n\t /**\r\n\t * Creates a copy of this word array.\r\n\t *\r\n\t * @return {X64WordArray} The clone.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var clone = x64WordArray.clone();\r\n\t */\r\n clone: function () {\r\n var clone = Base.clone.call(this);\r\n\r\n // Clone \"words\" array\r\n var words = clone.words = this.words.slice(0);\r\n\r\n // Clone each X64Word object\r\n var wordsLength = words.length;\r\n for (var i = 0; i < wordsLength; i++) {\r\n words[i] = words[i].clone();\r\n }\r\n\r\n return clone;\r\n }\r\n });\r\n }());\r\n\r\n\r\n (function (Math) {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var WordArray = C_lib.WordArray;\r\n var Hasher = C_lib.Hasher;\r\n var C_x64 = C.x64;\r\n var X64Word = C_x64.Word;\r\n var C_algo = C.algo;\r\n\r\n // Constants tables\r\n var RHO_OFFSETS = [];\r\n var PI_INDEXES = [];\r\n var ROUND_CONSTANTS = [];\r\n\r\n // Compute Constants\r\n (function () {\r\n // Compute rho offset constants\r\n var x = 1, y = 0;\r\n for (var t = 0; t < 24; t++) {\r\n RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\r\n\r\n var newX = y % 5;\r\n var newY = (2 * x + 3 * y) % 5;\r\n x = newX;\r\n y = newY;\r\n }\r\n\r\n // Compute pi index constants\r\n for (var x = 0; x < 5; x++) {\r\n for (var y = 0; y < 5; y++) {\r\n PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\r\n }\r\n }\r\n\r\n // Compute round constants\r\n var LFSR = 0x01;\r\n for (var i = 0; i < 24; i++) {\r\n var roundConstantMsw = 0;\r\n var roundConstantLsw = 0;\r\n\r\n for (var j = 0; j < 7; j++) {\r\n if (LFSR & 0x01) {\r\n var bitPosition = (1 << j) - 1;\r\n if (bitPosition < 32) {\r\n roundConstantLsw ^= 1 << bitPosition;\r\n } else /* if (bitPosition >= 32) */ {\r\n roundConstantMsw ^= 1 << (bitPosition - 32);\r\n }\r\n }\r\n\r\n // Compute next LFSR\r\n if (LFSR & 0x80) {\r\n // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\r\n LFSR = (LFSR << 1) ^ 0x71;\r\n } else {\r\n LFSR <<= 1;\r\n }\r\n }\r\n\r\n ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\r\n }\r\n }());\r\n\r\n // Reusable objects for temporary values\r\n var T = [];\r\n (function () {\r\n for (var i = 0; i < 25; i++) {\r\n T[i] = X64Word.create();\r\n }\r\n }());\r\n\r\n\t /**\r\n\t * SHA-3 hash algorithm.\r\n\t */\r\n var SHA3 = C_algo.SHA3 = Hasher.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {number} outputLength\r\n\t * The desired number of bits in the output hash.\r\n\t * Only values permitted are: 224, 256, 384, 512.\r\n\t * Default: 512\r\n\t */\r\n cfg: Hasher.cfg.extend({\r\n outputLength: 512\r\n }),\r\n\r\n _doReset: function () {\r\n var state = this._state = []\r\n for (var i = 0; i < 25; i++) {\r\n state[i] = new X64Word.init();\r\n }\r\n\r\n this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\r\n },\r\n\r\n _doProcessBlock: function (M, offset) {\r\n // Shortcuts\r\n var state = this._state;\r\n var nBlockSizeLanes = this.blockSize / 2;\r\n\r\n // Absorb\r\n for (var i = 0; i < nBlockSizeLanes; i++) {\r\n // Shortcuts\r\n var M2i = M[offset + 2 * i];\r\n var M2i1 = M[offset + 2 * i + 1];\r\n\r\n // Swap endian\r\n M2i = (\r\n (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\r\n (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\r\n );\r\n M2i1 = (\r\n (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\r\n (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\r\n );\r\n\r\n // Absorb message into state\r\n var lane = state[i];\r\n lane.high ^= M2i1;\r\n lane.low ^= M2i;\r\n }\r\n\r\n // Rounds\r\n for (var round = 0; round < 24; round++) {\r\n // Theta\r\n for (var x = 0; x < 5; x++) {\r\n // Mix column lanes\r\n var tMsw = 0, tLsw = 0;\r\n for (var y = 0; y < 5; y++) {\r\n var lane = state[x + 5 * y];\r\n tMsw ^= lane.high;\r\n tLsw ^= lane.low;\r\n }\r\n\r\n // Temporary values\r\n var Tx = T[x];\r\n Tx.high = tMsw;\r\n Tx.low = tLsw;\r\n }\r\n for (var x = 0; x < 5; x++) {\r\n // Shortcuts\r\n var Tx4 = T[(x + 4) % 5];\r\n var Tx1 = T[(x + 1) % 5];\r\n var Tx1Msw = Tx1.high;\r\n var Tx1Lsw = Tx1.low;\r\n\r\n // Mix surrounding columns\r\n var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\r\n var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\r\n for (var y = 0; y < 5; y++) {\r\n var lane = state[x + 5 * y];\r\n lane.high ^= tMsw;\r\n lane.low ^= tLsw;\r\n }\r\n }\r\n\r\n // Rho Pi\r\n for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\r\n // Shortcuts\r\n var lane = state[laneIndex];\r\n var laneMsw = lane.high;\r\n var laneLsw = lane.low;\r\n var rhoOffset = RHO_OFFSETS[laneIndex];\r\n\r\n // Rotate lanes\r\n if (rhoOffset < 32) {\r\n var tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\r\n var tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\r\n } else /* if (rhoOffset >= 32) */ {\r\n var tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\r\n var tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\r\n }\r\n\r\n // Transpose lanes\r\n var TPiLane = T[PI_INDEXES[laneIndex]];\r\n TPiLane.high = tMsw;\r\n TPiLane.low = tLsw;\r\n }\r\n\r\n // Rho pi at x = y = 0\r\n var T0 = T[0];\r\n var state0 = state[0];\r\n T0.high = state0.high;\r\n T0.low = state0.low;\r\n\r\n // Chi\r\n for (var x = 0; x < 5; x++) {\r\n for (var y = 0; y < 5; y++) {\r\n // Shortcuts\r\n var laneIndex = x + 5 * y;\r\n var lane = state[laneIndex];\r\n var TLane = T[laneIndex];\r\n var Tx1Lane = T[((x + 1) % 5) + 5 * y];\r\n var Tx2Lane = T[((x + 2) % 5) + 5 * y];\r\n\r\n // Mix rows\r\n lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\r\n lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\r\n }\r\n }\r\n\r\n // Iota\r\n var lane = state[0];\r\n var roundConstant = ROUND_CONSTANTS[round];\r\n lane.high ^= roundConstant.high;\r\n lane.low ^= roundConstant.low;;\r\n }\r\n },\r\n\r\n _doFinalize: function () {\r\n // Shortcuts\r\n var data = this._data;\r\n var dataWords = data.words;\r\n var nBitsTotal = this._nDataBytes * 8;\r\n var nBitsLeft = data.sigBytes * 8;\r\n var blockSizeBits = this.blockSize * 32;\r\n\r\n // Add padding\r\n dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\r\n dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\r\n data.sigBytes = dataWords.length * 4;\r\n\r\n // Hash final blocks\r\n this._process();\r\n\r\n // Shortcuts\r\n var state = this._state;\r\n var outputLengthBytes = this.cfg.outputLength / 8;\r\n var outputLengthLanes = outputLengthBytes / 8;\r\n\r\n // Squeeze\r\n var hashWords = [];\r\n for (var i = 0; i < outputLengthLanes; i++) {\r\n // Shortcuts\r\n var lane = state[i];\r\n var laneMsw = lane.high;\r\n var laneLsw = lane.low;\r\n\r\n // Swap endian\r\n laneMsw = (\r\n (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\r\n (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\r\n );\r\n laneLsw = (\r\n (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\r\n (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\r\n );\r\n\r\n // Squeeze state to retrieve hash\r\n hashWords.push(laneLsw);\r\n hashWords.push(laneMsw);\r\n }\r\n\r\n // Return final computed hash\r\n return new WordArray.init(hashWords, outputLengthBytes);\r\n },\r\n\r\n clone: function () {\r\n var clone = Hasher.clone.call(this);\r\n\r\n var state = clone._state = this._state.slice(0);\r\n for (var i = 0; i < 25; i++) {\r\n state[i] = state[i].clone();\r\n }\r\n\r\n return clone;\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.SHA3('message');\r\n\t * var hash = CryptoJS.SHA3(wordArray);\r\n\t */\r\n C.SHA3 = Hasher._createHelper(SHA3);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\r\n\t */\r\n C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\r\n }(Math));\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var Hasher = C_lib.Hasher;\r\n var C_x64 = C.x64;\r\n var X64Word = C_x64.Word;\r\n var X64WordArray = C_x64.WordArray;\r\n var C_algo = C.algo;\r\n\r\n function X64Word_create() {\r\n return X64Word.create.apply(X64Word, arguments);\r\n }\r\n\r\n // Constants\r\n var K = [\r\n X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\r\n X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\r\n X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\r\n X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\r\n X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\r\n X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\r\n X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\r\n X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\r\n X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\r\n X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\r\n X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\r\n X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\r\n X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\r\n X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\r\n X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\r\n X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\r\n X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\r\n X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\r\n X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\r\n X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\r\n X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\r\n X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\r\n X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\r\n X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\r\n X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\r\n X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\r\n X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\r\n X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\r\n X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\r\n X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\r\n X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\r\n X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\r\n X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\r\n X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\r\n X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\r\n X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\r\n X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\r\n X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\r\n X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\r\n X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\r\n ];\r\n\r\n // Reusable objects\r\n var W = [];\r\n (function () {\r\n for (var i = 0; i < 80; i++) {\r\n W[i] = X64Word_create();\r\n }\r\n }());\r\n\r\n\t /**\r\n\t * SHA-512 hash algorithm.\r\n\t */\r\n var SHA512 = C_algo.SHA512 = Hasher.extend({\r\n _doReset: function () {\r\n this._hash = new X64WordArray.init([\r\n new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\r\n new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\r\n new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\r\n new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\r\n ]);\r\n },\r\n\r\n _doProcessBlock: function (M, offset) {\r\n // Shortcuts\r\n var H = this._hash.words;\r\n\r\n var H0 = H[0];\r\n var H1 = H[1];\r\n var H2 = H[2];\r\n var H3 = H[3];\r\n var H4 = H[4];\r\n var H5 = H[5];\r\n var H6 = H[6];\r\n var H7 = H[7];\r\n\r\n var H0h = H0.high;\r\n var H0l = H0.low;\r\n var H1h = H1.high;\r\n var H1l = H1.low;\r\n var H2h = H2.high;\r\n var H2l = H2.low;\r\n var H3h = H3.high;\r\n var H3l = H3.low;\r\n var H4h = H4.high;\r\n var H4l = H4.low;\r\n var H5h = H5.high;\r\n var H5l = H5.low;\r\n var H6h = H6.high;\r\n var H6l = H6.low;\r\n var H7h = H7.high;\r\n var H7l = H7.low;\r\n\r\n // Working variables\r\n var ah = H0h;\r\n var al = H0l;\r\n var bh = H1h;\r\n var bl = H1l;\r\n var ch = H2h;\r\n var cl = H2l;\r\n var dh = H3h;\r\n var dl = H3l;\r\n var eh = H4h;\r\n var el = H4l;\r\n var fh = H5h;\r\n var fl = H5l;\r\n var gh = H6h;\r\n var gl = H6l;\r\n var hh = H7h;\r\n var hl = H7l;\r\n\r\n // Rounds\r\n for (var i = 0; i < 80; i++) {\r\n // Shortcut\r\n var Wi = W[i];\r\n\r\n // Extend message\r\n if (i < 16) {\r\n var Wih = Wi.high = M[offset + i * 2] | 0;\r\n var Wil = Wi.low = M[offset + i * 2 + 1] | 0;\r\n } else {\r\n // Gamma0\r\n var gamma0x = W[i - 15];\r\n var gamma0xh = gamma0x.high;\r\n var gamma0xl = gamma0x.low;\r\n var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\r\n var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\r\n\r\n // Gamma1\r\n var gamma1x = W[i - 2];\r\n var gamma1xh = gamma1x.high;\r\n var gamma1xl = gamma1x.low;\r\n var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\r\n var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\r\n\r\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\r\n var Wi7 = W[i - 7];\r\n var Wi7h = Wi7.high;\r\n var Wi7l = Wi7.low;\r\n\r\n var Wi16 = W[i - 16];\r\n var Wi16h = Wi16.high;\r\n var Wi16l = Wi16.low;\r\n\r\n var Wil = gamma0l + Wi7l;\r\n var Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\r\n var Wil = Wil + gamma1l;\r\n var Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\r\n var Wil = Wil + Wi16l;\r\n var Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\r\n\r\n Wi.high = Wih;\r\n Wi.low = Wil;\r\n }\r\n\r\n var chh = (eh & fh) ^ (~eh & gh);\r\n var chl = (el & fl) ^ (~el & gl);\r\n var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\r\n var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\r\n\r\n var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\r\n var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\r\n var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\r\n var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\r\n\r\n // t1 = h + sigma1 + ch + K[i] + W[i]\r\n var Ki = K[i];\r\n var Kih = Ki.high;\r\n var Kil = Ki.low;\r\n\r\n var t1l = hl + sigma1l;\r\n var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\r\n var t1l = t1l + chl;\r\n var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\r\n var t1l = t1l + Kil;\r\n var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\r\n var t1l = t1l + Wil;\r\n var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\r\n\r\n // t2 = sigma0 + maj\r\n var t2l = sigma0l + majl;\r\n var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\r\n\r\n // Update working variables\r\n hh = gh;\r\n hl = gl;\r\n gh = fh;\r\n gl = fl;\r\n fh = eh;\r\n fl = el;\r\n el = (dl + t1l) | 0;\r\n eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\r\n dh = ch;\r\n dl = cl;\r\n ch = bh;\r\n cl = bl;\r\n bh = ah;\r\n bl = al;\r\n al = (t1l + t2l) | 0;\r\n ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\r\n }\r\n\r\n // Intermediate hash value\r\n H0l = H0.low = (H0l + al);\r\n H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\r\n H1l = H1.low = (H1l + bl);\r\n H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\r\n H2l = H2.low = (H2l + cl);\r\n H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\r\n H3l = H3.low = (H3l + dl);\r\n H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\r\n H4l = H4.low = (H4l + el);\r\n H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\r\n H5l = H5.low = (H5l + fl);\r\n H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\r\n H6l = H6.low = (H6l + gl);\r\n H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\r\n H7l = H7.low = (H7l + hl);\r\n H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\r\n },\r\n\r\n _doFinalize: function () {\r\n // Shortcuts\r\n var data = this._data;\r\n var dataWords = data.words;\r\n\r\n var nBitsTotal = this._nDataBytes * 8;\r\n var nBitsLeft = data.sigBytes * 8;\r\n\r\n // Add padding\r\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\r\n dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\r\n dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\r\n data.sigBytes = dataWords.length * 4;\r\n\r\n // Hash final blocks\r\n this._process();\r\n\r\n // Convert hash to 32-bit word array before returning\r\n var hash = this._hash.toX32();\r\n\r\n // Return final computed hash\r\n return hash;\r\n },\r\n\r\n clone: function () {\r\n var clone = Hasher.clone.call(this);\r\n clone._hash = this._hash.clone();\r\n\r\n return clone;\r\n },\r\n\r\n blockSize: 1024 / 32\r\n });\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.SHA512('message');\r\n\t * var hash = CryptoJS.SHA512(wordArray);\r\n\t */\r\n C.SHA512 = Hasher._createHelper(SHA512);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\r\n\t */\r\n C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\r\n }());\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_x64 = C.x64;\r\n var X64Word = C_x64.Word;\r\n var X64WordArray = C_x64.WordArray;\r\n var C_algo = C.algo;\r\n var SHA512 = C_algo.SHA512;\r\n\r\n\t /**\r\n\t * SHA-384 hash algorithm.\r\n\t */\r\n var SHA384 = C_algo.SHA384 = SHA512.extend({\r\n _doReset: function () {\r\n this._hash = new X64WordArray.init([\r\n new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\r\n new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\r\n new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\r\n new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\r\n ]);\r\n },\r\n\r\n _doFinalize: function () {\r\n var hash = SHA512._doFinalize.call(this);\r\n\r\n hash.sigBytes -= 16;\r\n\r\n return hash;\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.SHA384('message');\r\n\t * var hash = CryptoJS.SHA384(wordArray);\r\n\t */\r\n C.SHA384 = SHA512._createHelper(SHA384);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\r\n\t */\r\n C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\r\n }());\r\n\r\n\r\n\t/**\r\n\t * Cipher core components.\r\n\t */\r\n CryptoJS.lib.Cipher || (function (undefined) {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var Base = C_lib.Base;\r\n var WordArray = C_lib.WordArray;\r\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\r\n var C_enc = C.enc;\r\n var Utf8 = C_enc.Utf8;\r\n var Base64 = C_enc.Base64;\r\n var C_algo = C.algo;\r\n var EvpKDF = C_algo.EvpKDF;\r\n\r\n\t /**\r\n\t * Abstract base cipher template.\r\n\t *\r\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\r\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\r\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\r\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\r\n\t */\r\n var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {WordArray} iv The IV to use for this operation.\r\n\t */\r\n cfg: Base.extend(),\r\n\r\n\t /**\r\n\t * Creates this cipher in encryption mode.\r\n\t *\r\n\t * @param {WordArray} key The key.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @return {Cipher} A cipher instance.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\r\n\t */\r\n createEncryptor: function (key, cfg) {\r\n return this.create(this._ENC_XFORM_MODE, key, cfg);\r\n },\r\n\r\n\t /**\r\n\t * Creates this cipher in decryption mode.\r\n\t *\r\n\t * @param {WordArray} key The key.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @return {Cipher} A cipher instance.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\r\n\t */\r\n createDecryptor: function (key, cfg) {\r\n return this.create(this._DEC_XFORM_MODE, key, cfg);\r\n },\r\n\r\n\t /**\r\n\t * Initializes a newly created cipher.\r\n\t *\r\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\r\n\t * @param {WordArray} key The key.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\r\n\t */\r\n init: function (xformMode, key, cfg) {\r\n // Apply config defaults\r\n this.cfg = this.cfg.extend(cfg);\r\n\r\n // Store transform mode and key\r\n this._xformMode = xformMode;\r\n this._key = key;\r\n\r\n // Set initial values\r\n this.reset();\r\n },\r\n\r\n\t /**\r\n\t * Resets this cipher to its initial state.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * cipher.reset();\r\n\t */\r\n reset: function () {\r\n // Reset data buffer\r\n BufferedBlockAlgorithm.reset.call(this);\r\n\r\n // Perform concrete-cipher logic\r\n this._doReset();\r\n },\r\n\r\n\t /**\r\n\t * Adds data to be encrypted or decrypted.\r\n\t *\r\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\r\n\t *\r\n\t * @return {WordArray} The data after processing.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var encrypted = cipher.process('data');\r\n\t * var encrypted = cipher.process(wordArray);\r\n\t */\r\n process: function (dataUpdate) {\r\n // Append\r\n this._append(dataUpdate);\r\n\r\n // Process available blocks\r\n return this._process();\r\n },\r\n\r\n\t /**\r\n\t * Finalizes the encryption or decryption process.\r\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\r\n\t *\r\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\r\n\t *\r\n\t * @return {WordArray} The data after final processing.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var encrypted = cipher.finalize();\r\n\t * var encrypted = cipher.finalize('data');\r\n\t * var encrypted = cipher.finalize(wordArray);\r\n\t */\r\n finalize: function (dataUpdate) {\r\n // Final data update\r\n if (dataUpdate) {\r\n this._append(dataUpdate);\r\n }\r\n\r\n // Perform concrete-cipher logic\r\n var finalProcessedData = this._doFinalize();\r\n\r\n return finalProcessedData;\r\n },\r\n\r\n keySize: 128 / 32,\r\n\r\n ivSize: 128 / 32,\r\n\r\n _ENC_XFORM_MODE: 1,\r\n\r\n _DEC_XFORM_MODE: 2,\r\n\r\n\t /**\r\n\t * Creates shortcut functions to a cipher's object interface.\r\n\t *\r\n\t * @param {Cipher} cipher The cipher to create a helper for.\r\n\t *\r\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\r\n\t */\r\n _createHelper: (function () {\r\n function selectCipherStrategy(key) {\r\n if (typeof key == 'string') {\r\n return PasswordBasedCipher;\r\n } else {\r\n return SerializableCipher;\r\n }\r\n }\r\n\r\n return function (cipher) {\r\n return {\r\n encrypt: function (message, key, cfg) {\r\n return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\r\n },\r\n\r\n decrypt: function (ciphertext, key, cfg) {\r\n return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\r\n }\r\n };\r\n };\r\n }())\r\n });\r\n\r\n\t /**\r\n\t * Abstract base stream cipher template.\r\n\t *\r\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\r\n\t */\r\n var StreamCipher = C_lib.StreamCipher = Cipher.extend({\r\n _doFinalize: function () {\r\n // Process partial blocks\r\n var finalProcessedBlocks = this._process(!!'flush');\r\n\r\n return finalProcessedBlocks;\r\n },\r\n\r\n blockSize: 1\r\n });\r\n\r\n\t /**\r\n\t * Mode namespace.\r\n\t */\r\n var C_mode = C.mode = {};\r\n\r\n\t /**\r\n\t * Abstract base block cipher mode template.\r\n\t */\r\n var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\r\n\t /**\r\n\t * Creates this mode for encryption.\r\n\t *\r\n\t * @param {Cipher} cipher A block cipher instance.\r\n\t * @param {Array} iv The IV words.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\r\n\t */\r\n createEncryptor: function (cipher, iv) {\r\n return this.Encryptor.create(cipher, iv);\r\n },\r\n\r\n\t /**\r\n\t * Creates this mode for decryption.\r\n\t *\r\n\t * @param {Cipher} cipher A block cipher instance.\r\n\t * @param {Array} iv The IV words.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\r\n\t */\r\n createDecryptor: function (cipher, iv) {\r\n return this.Decryptor.create(cipher, iv);\r\n },\r\n\r\n\t /**\r\n\t * Initializes a newly created mode.\r\n\t *\r\n\t * @param {Cipher} cipher A block cipher instance.\r\n\t * @param {Array} iv The IV words.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\r\n\t */\r\n init: function (cipher, iv) {\r\n this._cipher = cipher;\r\n this._iv = iv;\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Cipher Block Chaining mode.\r\n\t */\r\n var CBC = C_mode.CBC = (function () {\r\n\t /**\r\n\t * Abstract base CBC mode.\r\n\t */\r\n var CBC = BlockCipherMode.extend();\r\n\r\n\t /**\r\n\t * CBC encryptor.\r\n\t */\r\n CBC.Encryptor = CBC.extend({\r\n\t /**\r\n\t * Processes the data block at offset.\r\n\t *\r\n\t * @param {Array} words The data words to operate on.\r\n\t * @param {number} offset The offset where the block starts.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * mode.processBlock(data.words, offset);\r\n\t */\r\n processBlock: function (words, offset) {\r\n // Shortcuts\r\n var cipher = this._cipher;\r\n var blockSize = cipher.blockSize;\r\n\r\n // XOR and encrypt\r\n xorBlock.call(this, words, offset, blockSize);\r\n cipher.encryptBlock(words, offset);\r\n\r\n // Remember this block to use with next block\r\n this._prevBlock = words.slice(offset, offset + blockSize);\r\n }\r\n });\r\n\r\n\t /**\r\n\t * CBC decryptor.\r\n\t */\r\n CBC.Decryptor = CBC.extend({\r\n\t /**\r\n\t * Processes the data block at offset.\r\n\t *\r\n\t * @param {Array} words The data words to operate on.\r\n\t * @param {number} offset The offset where the block starts.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * mode.processBlock(data.words, offset);\r\n\t */\r\n processBlock: function (words, offset) {\r\n // Shortcuts\r\n var cipher = this._cipher;\r\n var blockSize = cipher.blockSize;\r\n\r\n // Remember this block to use with next block\r\n var thisBlock = words.slice(offset, offset + blockSize);\r\n\r\n // Decrypt and XOR\r\n cipher.decryptBlock(words, offset);\r\n xorBlock.call(this, words, offset, blockSize);\r\n\r\n // This block becomes the previous block\r\n this._prevBlock = thisBlock;\r\n }\r\n });\r\n\r\n function xorBlock(words, offset, blockSize) {\r\n // Shortcut\r\n var iv = this._iv;\r\n\r\n // Choose mixing block\r\n if (iv) {\r\n var block = iv;\r\n\r\n // Remove IV for subsequent blocks\r\n this._iv = undefined;\r\n } else {\r\n var block = this._prevBlock;\r\n }\r\n\r\n // XOR blocks\r\n for (var i = 0; i < blockSize; i++) {\r\n words[offset + i] ^= block[i];\r\n }\r\n }\r\n\r\n return CBC;\r\n }());\r\n\r\n\t /**\r\n\t * Padding namespace.\r\n\t */\r\n var C_pad = C.pad = {};\r\n\r\n\t /**\r\n\t * PKCS #5/7 padding strategy.\r\n\t */\r\n var Pkcs7 = C_pad.Pkcs7 = {\r\n\t /**\r\n\t * Pads data using the algorithm defined in PKCS #5/7.\r\n\t *\r\n\t * @param {WordArray} data The data to pad.\r\n\t * @param {number} blockSize The multiple that the data should be padded to.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\r\n\t */\r\n pad: function (data, blockSize) {\r\n // Shortcut\r\n var blockSizeBytes = blockSize * 4;\r\n\r\n // Count padding bytes\r\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\r\n\r\n // Create padding word\r\n var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\r\n\r\n // Create padding\r\n var paddingWords = [];\r\n for (var i = 0; i < nPaddingBytes; i += 4) {\r\n paddingWords.push(paddingWord);\r\n }\r\n var padding = WordArray.create(paddingWords, nPaddingBytes);\r\n\r\n // Add padding\r\n data.concat(padding);\r\n },\r\n\r\n\t /**\r\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\r\n\t *\r\n\t * @param {WordArray} data The data to unpad.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\r\n\t */\r\n unpad: function (data) {\r\n // Get number of padding bytes from last byte\r\n var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\r\n\r\n // Remove padding\r\n data.sigBytes -= nPaddingBytes;\r\n }\r\n };\r\n\r\n\t /**\r\n\t * Abstract base block cipher template.\r\n\t *\r\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\r\n\t */\r\n var BlockCipher = C_lib.BlockCipher = Cipher.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {Mode} mode The block mode to use. Default: CBC\r\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\r\n\t */\r\n cfg: Cipher.cfg.extend({\r\n mode: CBC,\r\n padding: Pkcs7\r\n }),\r\n\r\n reset: function () {\r\n // Reset cipher\r\n Cipher.reset.call(this);\r\n\r\n // Shortcuts\r\n var cfg = this.cfg;\r\n var iv = cfg.iv;\r\n var mode = cfg.mode;\r\n\r\n // Reset block mode\r\n if (this._xformMode == this._ENC_XFORM_MODE) {\r\n var modeCreator = mode.createEncryptor;\r\n } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\r\n var modeCreator = mode.createDecryptor;\r\n // Keep at least one block in the buffer for unpadding\r\n this._minBufferSize = 1;\r\n }\r\n\r\n if (this._mode && this._mode.__creator == modeCreator) {\r\n this._mode.init(this, iv && iv.words);\r\n } else {\r\n this._mode = modeCreator.call(mode, this, iv && iv.words);\r\n this._mode.__creator = modeCreator;\r\n }\r\n },\r\n\r\n _doProcessBlock: function (words, offset) {\r\n this._mode.processBlock(words, offset);\r\n },\r\n\r\n _doFinalize: function () {\r\n // Shortcut\r\n var padding = this.cfg.padding;\r\n\r\n // Finalize\r\n if (this._xformMode == this._ENC_XFORM_MODE) {\r\n // Pad data\r\n padding.pad(this._data, this.blockSize);\r\n\r\n // Process final blocks\r\n var finalProcessedBlocks = this._process(!!'flush');\r\n } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\r\n // Process final blocks\r\n var finalProcessedBlocks = this._process(!!'flush');\r\n\r\n // Unpad data\r\n padding.unpad(finalProcessedBlocks);\r\n }\r\n\r\n return finalProcessedBlocks;\r\n },\r\n\r\n blockSize: 128 / 32\r\n });\r\n\r\n\t /**\r\n\t * A collection of cipher parameters.\r\n\t *\r\n\t * @property {WordArray} ciphertext The raw ciphertext.\r\n\t * @property {WordArray} key The key to this ciphertext.\r\n\t * @property {WordArray} iv The IV used in the ciphering operation.\r\n\t * @property {WordArray} salt The salt used with a key derivation function.\r\n\t * @property {Cipher} algorithm The cipher algorithm.\r\n\t * @property {Mode} mode The block mode used in the ciphering operation.\r\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\r\n\t * @property {number} blockSize The block size of the cipher.\r\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\r\n\t */\r\n var CipherParams = C_lib.CipherParams = Base.extend({\r\n\t /**\r\n\t * Initializes a newly created cipher params object.\r\n\t *\r\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\r\n\t * ciphertext: ciphertextWordArray,\r\n\t * key: keyWordArray,\r\n\t * iv: ivWordArray,\r\n\t * salt: saltWordArray,\r\n\t * algorithm: CryptoJS.algo.AES,\r\n\t * mode: CryptoJS.mode.CBC,\r\n\t * padding: CryptoJS.pad.PKCS7,\r\n\t * blockSize: 4,\r\n\t * formatter: CryptoJS.format.OpenSSL\r\n\t * });\r\n\t */\r\n init: function (cipherParams) {\r\n this.mixIn(cipherParams);\r\n },\r\n\r\n\t /**\r\n\t * Converts this cipher params object to a string.\r\n\t *\r\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\r\n\t *\r\n\t * @return {string} The stringified cipher params.\r\n\t *\r\n\t * @throws Error If neither the formatter nor the default formatter is set.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var string = cipherParams + '';\r\n\t * var string = cipherParams.toString();\r\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\r\n\t */\r\n toString: function (formatter) {\r\n return (formatter || this.formatter).stringify(this);\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Format namespace.\r\n\t */\r\n var C_format = C.format = {};\r\n\r\n\t /**\r\n\t * OpenSSL formatting strategy.\r\n\t */\r\n var OpenSSLFormatter = C_format.OpenSSL = {\r\n\t /**\r\n\t * Converts a cipher params object to an OpenSSL-compatible string.\r\n\t *\r\n\t * @param {CipherParams} cipherParams The cipher params object.\r\n\t *\r\n\t * @return {string} The OpenSSL-compatible string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\r\n\t */\r\n stringify: function (cipherParams) {\r\n // Shortcuts\r\n var ciphertext = cipherParams.ciphertext;\r\n var salt = cipherParams.salt;\r\n\r\n // Format\r\n if (salt) {\r\n var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\r\n } else {\r\n var wordArray = ciphertext;\r\n }\r\n\r\n return wordArray.toString(Base64);\r\n },\r\n\r\n\t /**\r\n\t * Converts an OpenSSL-compatible string to a cipher params object.\r\n\t *\r\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\r\n\t *\r\n\t * @return {CipherParams} The cipher params object.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\r\n\t */\r\n parse: function (openSSLStr) {\r\n // Parse base64\r\n var ciphertext = Base64.parse(openSSLStr);\r\n\r\n // Shortcut\r\n var ciphertextWords = ciphertext.words;\r\n\r\n // Test for salt\r\n if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\r\n // Extract salt\r\n var salt = WordArray.create(ciphertextWords.slice(2, 4));\r\n\r\n // Remove salt from ciphertext\r\n ciphertextWords.splice(0, 4);\r\n ciphertext.sigBytes -= 16;\r\n }\r\n\r\n return CipherParams.create({ ciphertext: ciphertext, salt: salt });\r\n }\r\n };\r\n\r\n\t /**\r\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\r\n\t */\r\n var SerializableCipher = C_lib.SerializableCipher = Base.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\r\n\t */\r\n cfg: Base.extend({\r\n format: OpenSSLFormatter\r\n }),\r\n\r\n\t /**\r\n\t * Encrypts a message.\r\n\t *\r\n\t * @param {Cipher} cipher The cipher algorithm to use.\r\n\t * @param {WordArray|string} message The message to encrypt.\r\n\t * @param {WordArray} key The key.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @return {CipherParams} A cipher params object.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\r\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\r\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\r\n\t */\r\n encrypt: function (cipher, message, key, cfg) {\r\n // Apply config defaults\r\n cfg = this.cfg.extend(cfg);\r\n\r\n // Encrypt\r\n var encryptor = cipher.createEncryptor(key, cfg);\r\n var ciphertext = encryptor.finalize(message);\r\n\r\n // Shortcut\r\n var cipherCfg = encryptor.cfg;\r\n\r\n // Create and return serializable cipher params\r\n return CipherParams.create({\r\n ciphertext: ciphertext,\r\n key: key,\r\n iv: cipherCfg.iv,\r\n algorithm: cipher,\r\n mode: cipherCfg.mode,\r\n padding: cipherCfg.padding,\r\n blockSize: cipher.blockSize,\r\n formatter: cfg.format\r\n });\r\n },\r\n\r\n\t /**\r\n\t * Decrypts serialized ciphertext.\r\n\t *\r\n\t * @param {Cipher} cipher The cipher algorithm to use.\r\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\r\n\t * @param {WordArray} key The key.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @return {WordArray} The plaintext.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\r\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\r\n\t */\r\n decrypt: function (cipher, ciphertext, key, cfg) {\r\n // Apply config defaults\r\n cfg = this.cfg.extend(cfg);\r\n\r\n // Convert string to CipherParams\r\n ciphertext = this._parse(ciphertext, cfg.format);\r\n\r\n // Decrypt\r\n var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\r\n\r\n return plaintext;\r\n },\r\n\r\n\t /**\r\n\t * Converts serialized ciphertext to CipherParams,\r\n\t * else assumed CipherParams already and returns ciphertext unchanged.\r\n\t *\r\n\t * @param {CipherParams|string} ciphertext The ciphertext.\r\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\r\n\t *\r\n\t * @return {CipherParams} The unserialized ciphertext.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\r\n\t */\r\n _parse: function (ciphertext, format) {\r\n if (typeof ciphertext == 'string') {\r\n return format.parse(ciphertext, this);\r\n } else {\r\n return ciphertext;\r\n }\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Key derivation function namespace.\r\n\t */\r\n var C_kdf = C.kdf = {};\r\n\r\n\t /**\r\n\t * OpenSSL key derivation function.\r\n\t */\r\n var OpenSSLKdf = C_kdf.OpenSSL = {\r\n\t /**\r\n\t * Derives a key and IV from a password.\r\n\t *\r\n\t * @param {string} password The password to derive from.\r\n\t * @param {number} keySize The size in words of the key to generate.\r\n\t * @param {number} ivSize The size in words of the IV to generate.\r\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\r\n\t *\r\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\r\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\r\n\t */\r\n execute: function (password, keySize, ivSize, salt) {\r\n // Generate random salt\r\n if (!salt) {\r\n salt = WordArray.random(64 / 8);\r\n }\r\n\r\n // Derive key and IV\r\n var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\r\n\r\n // Separate key and IV\r\n var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\r\n key.sigBytes = keySize * 4;\r\n\r\n // Return params\r\n return CipherParams.create({ key: key, iv: iv, salt: salt });\r\n }\r\n };\r\n\r\n\t /**\r\n\t * A serializable cipher wrapper that derives the key from a password,\r\n\t * and returns ciphertext as a serializable cipher params object.\r\n\t */\r\n var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\r\n\t */\r\n cfg: SerializableCipher.cfg.extend({\r\n kdf: OpenSSLKdf\r\n }),\r\n\r\n\t /**\r\n\t * Encrypts a message using a password.\r\n\t *\r\n\t * @param {Cipher} cipher The cipher algorithm to use.\r\n\t * @param {WordArray|string} message The message to encrypt.\r\n\t * @param {string} password The password.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @return {CipherParams} A cipher params object.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\r\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\r\n\t */\r\n encrypt: function (cipher, message, password, cfg) {\r\n // Apply config defaults\r\n cfg = this.cfg.extend(cfg);\r\n\r\n // Derive key and other params\r\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);\r\n\r\n // Add IV to config\r\n cfg.iv = derivedParams.iv;\r\n\r\n // Encrypt\r\n var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\r\n\r\n // Mix in derived params\r\n ciphertext.mixIn(derivedParams);\r\n\r\n return ciphertext;\r\n },\r\n\r\n\t /**\r\n\t * Decrypts serialized ciphertext using a password.\r\n\t *\r\n\t * @param {Cipher} cipher The cipher algorithm to use.\r\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\r\n\t * @param {string} password The password.\r\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n\t *\r\n\t * @return {WordArray} The plaintext.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\r\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\r\n\t */\r\n decrypt: function (cipher, ciphertext, password, cfg) {\r\n // Apply config defaults\r\n cfg = this.cfg.extend(cfg);\r\n\r\n // Convert string to CipherParams\r\n ciphertext = this._parse(ciphertext, cfg.format);\r\n\r\n // Derive key and other params\r\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);\r\n\r\n // Add IV to config\r\n cfg.iv = derivedParams.iv;\r\n\r\n // Decrypt\r\n var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\r\n\r\n return plaintext;\r\n }\r\n });\r\n }());\r\n\r\n\r\n\t/**\r\n\t * Cipher Feedback block mode.\r\n\t */\r\n CryptoJS.mode.CFB = (function () {\r\n var CFB = CryptoJS.lib.BlockCipherMode.extend();\r\n\r\n CFB.Encryptor = CFB.extend({\r\n processBlock: function (words, offset) {\r\n // Shortcuts\r\n var cipher = this._cipher;\r\n var blockSize = cipher.blockSize;\r\n\r\n generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\r\n\r\n // Remember this block to use with next block\r\n this._prevBlock = words.slice(offset, offset + blockSize);\r\n }\r\n });\r\n\r\n CFB.Decryptor = CFB.extend({\r\n processBlock: function (words, offset) {\r\n // Shortcuts\r\n var cipher = this._cipher;\r\n var blockSize = cipher.blockSize;\r\n\r\n // Remember this block to use with next block\r\n var thisBlock = words.slice(offset, offset + blockSize);\r\n\r\n generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\r\n\r\n // This block becomes the previous block\r\n this._prevBlock = thisBlock;\r\n }\r\n });\r\n\r\n function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\r\n // Shortcut\r\n var iv = this._iv;\r\n\r\n // Generate keystream\r\n if (iv) {\r\n var keystream = iv.slice(0);\r\n\r\n // Remove IV for subsequent blocks\r\n this._iv = undefined;\r\n } else {\r\n var keystream = this._prevBlock;\r\n }\r\n cipher.encryptBlock(keystream, 0);\r\n\r\n // Encrypt\r\n for (var i = 0; i < blockSize; i++) {\r\n words[offset + i] ^= keystream[i];\r\n }\r\n }\r\n\r\n return CFB;\r\n }());\r\n\r\n\r\n\t/**\r\n\t * Electronic Codebook block mode.\r\n\t */\r\n CryptoJS.mode.ECB = (function () {\r\n var ECB = CryptoJS.lib.BlockCipherMode.extend();\r\n\r\n ECB.Encryptor = ECB.extend({\r\n processBlock: function (words, offset) {\r\n this._cipher.encryptBlock(words, offset);\r\n }\r\n });\r\n\r\n ECB.Decryptor = ECB.extend({\r\n processBlock: function (words, offset) {\r\n this._cipher.decryptBlock(words, offset);\r\n }\r\n });\r\n\r\n return ECB;\r\n }());\r\n\r\n\r\n\t/**\r\n\t * ANSI X.923 padding strategy.\r\n\t */\r\n CryptoJS.pad.AnsiX923 = {\r\n pad: function (data, blockSize) {\r\n // Shortcuts\r\n var dataSigBytes = data.sigBytes;\r\n var blockSizeBytes = blockSize * 4;\r\n\r\n // Count padding bytes\r\n var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\r\n\r\n // Compute last byte position\r\n var lastBytePos = dataSigBytes + nPaddingBytes - 1;\r\n\r\n // Pad\r\n data.clamp();\r\n data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\r\n data.sigBytes += nPaddingBytes;\r\n },\r\n\r\n unpad: function (data) {\r\n // Get number of padding bytes from last byte\r\n var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\r\n\r\n // Remove padding\r\n data.sigBytes -= nPaddingBytes;\r\n }\r\n };\r\n\r\n\r\n\t/**\r\n\t * ISO 10126 padding strategy.\r\n\t */\r\n CryptoJS.pad.Iso10126 = {\r\n pad: function (data, blockSize) {\r\n // Shortcut\r\n var blockSizeBytes = blockSize * 4;\r\n\r\n // Count padding bytes\r\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\r\n\r\n // Pad\r\n data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\r\n concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\r\n },\r\n\r\n unpad: function (data) {\r\n // Get number of padding bytes from last byte\r\n var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\r\n\r\n // Remove padding\r\n data.sigBytes -= nPaddingBytes;\r\n }\r\n };\r\n\r\n\r\n\t/**\r\n\t * ISO/IEC 9797-1 Padding Method 2.\r\n\t */\r\n CryptoJS.pad.Iso97971 = {\r\n pad: function (data, blockSize) {\r\n // Add 0x80 byte\r\n data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\r\n\r\n // Zero pad the rest\r\n CryptoJS.pad.ZeroPadding.pad(data, blockSize);\r\n },\r\n\r\n unpad: function (data) {\r\n // Remove zero padding\r\n CryptoJS.pad.ZeroPadding.unpad(data);\r\n\r\n // Remove one more byte -- the 0x80 byte\r\n data.sigBytes--;\r\n }\r\n };\r\n\r\n\r\n\t/**\r\n\t * Output Feedback block mode.\r\n\t */\r\n CryptoJS.mode.OFB = (function () {\r\n var OFB = CryptoJS.lib.BlockCipherMode.extend();\r\n\r\n var Encryptor = OFB.Encryptor = OFB.extend({\r\n processBlock: function (words, offset) {\r\n // Shortcuts\r\n var cipher = this._cipher\r\n var blockSize = cipher.blockSize;\r\n var iv = this._iv;\r\n var keystream = this._keystream;\r\n\r\n // Generate keystream\r\n if (iv) {\r\n keystream = this._keystream = iv.slice(0);\r\n\r\n // Remove IV for subsequent blocks\r\n this._iv = undefined;\r\n }\r\n cipher.encryptBlock(keystream, 0);\r\n\r\n // Encrypt\r\n for (var i = 0; i < blockSize; i++) {\r\n words[offset + i] ^= keystream[i];\r\n }\r\n }\r\n });\r\n\r\n OFB.Decryptor = Encryptor;\r\n\r\n return OFB;\r\n }());\r\n\r\n\r\n\t/**\r\n\t * A noop padding strategy.\r\n\t */\r\n CryptoJS.pad.NoPadding = {\r\n pad: function () {\r\n },\r\n\r\n unpad: function () {\r\n }\r\n };\r\n\r\n\r\n (function (undefined) {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var CipherParams = C_lib.CipherParams;\r\n var C_enc = C.enc;\r\n var Hex = C_enc.Hex;\r\n var C_format = C.format;\r\n\r\n var HexFormatter = C_format.Hex = {\r\n\t /**\r\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\r\n\t *\r\n\t * @param {CipherParams} cipherParams The cipher params object.\r\n\t *\r\n\t * @return {string} The hexadecimally encoded string.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\r\n\t */\r\n stringify: function (cipherParams) {\r\n return cipherParams.ciphertext.toString(Hex);\r\n },\r\n\r\n\t /**\r\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\r\n\t *\r\n\t * @param {string} input The hexadecimally encoded string.\r\n\t *\r\n\t * @return {CipherParams} The cipher params object.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\r\n\t */\r\n parse: function (input) {\r\n var ciphertext = Hex.parse(input);\r\n return CipherParams.create({ ciphertext: ciphertext });\r\n }\r\n };\r\n }());\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var BlockCipher = C_lib.BlockCipher;\r\n var C_algo = C.algo;\r\n\r\n // Lookup tables\r\n var SBOX = [];\r\n var INV_SBOX = [];\r\n var SUB_MIX_0 = [];\r\n var SUB_MIX_1 = [];\r\n var SUB_MIX_2 = [];\r\n var SUB_MIX_3 = [];\r\n var INV_SUB_MIX_0 = [];\r\n var INV_SUB_MIX_1 = [];\r\n var INV_SUB_MIX_2 = [];\r\n var INV_SUB_MIX_3 = [];\r\n\r\n // Compute lookup tables\r\n (function () {\r\n // Compute double table\r\n var d = [];\r\n for (var i = 0; i < 256; i++) {\r\n if (i < 128) {\r\n d[i] = i << 1;\r\n } else {\r\n d[i] = (i << 1) ^ 0x11b;\r\n }\r\n }\r\n\r\n // Walk GF(2^8)\r\n var x = 0;\r\n var xi = 0;\r\n for (var i = 0; i < 256; i++) {\r\n // Compute sbox\r\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\r\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\r\n SBOX[x] = sx;\r\n INV_SBOX[sx] = x;\r\n\r\n // Compute multiplication\r\n var x2 = d[x];\r\n var x4 = d[x2];\r\n var x8 = d[x4];\r\n\r\n // Compute sub bytes, mix columns tables\r\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\r\n SUB_MIX_0[x] = (t << 24) | (t >>> 8);\r\n SUB_MIX_1[x] = (t << 16) | (t >>> 16);\r\n SUB_MIX_2[x] = (t << 8) | (t >>> 24);\r\n SUB_MIX_3[x] = t;\r\n\r\n // Compute inv sub bytes, inv mix columns tables\r\n var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\r\n INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\r\n INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\r\n INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\r\n INV_SUB_MIX_3[sx] = t;\r\n\r\n // Compute next counter\r\n if (!x) {\r\n x = xi = 1;\r\n } else {\r\n x = x2 ^ d[d[d[x8 ^ x2]]];\r\n xi ^= d[d[xi]];\r\n }\r\n }\r\n }());\r\n\r\n // Precomputed Rcon lookup\r\n var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\r\n\r\n\t /**\r\n\t * AES block cipher algorithm.\r\n\t */\r\n var AES = C_algo.AES = BlockCipher.extend({\r\n _doReset: function () {\r\n // Skip reset of nRounds has been set before and key did not change\r\n if (this._nRounds && this._keyPriorReset === this._key) {\r\n return;\r\n }\r\n\r\n // Shortcuts\r\n var key = this._keyPriorReset = this._key;\r\n var keyWords = key.words;\r\n var keySize = key.sigBytes / 4;\r\n\r\n // Compute number of rounds\r\n var nRounds = this._nRounds = keySize + 6;\r\n\r\n // Compute number of key schedule rows\r\n var ksRows = (nRounds + 1) * 4;\r\n\r\n // Compute key schedule\r\n var keySchedule = this._keySchedule = [];\r\n for (var ksRow = 0; ksRow < ksRows; ksRow++) {\r\n if (ksRow < keySize) {\r\n keySchedule[ksRow] = keyWords[ksRow];\r\n } else {\r\n var t = keySchedule[ksRow - 1];\r\n\r\n if (!(ksRow % keySize)) {\r\n // Rot word\r\n t = (t << 8) | (t >>> 24);\r\n\r\n // Sub word\r\n t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\r\n\r\n // Mix Rcon\r\n t ^= RCON[(ksRow / keySize) | 0] << 24;\r\n } else if (keySize > 6 && ksRow % keySize == 4) {\r\n // Sub word\r\n t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\r\n }\r\n\r\n keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\r\n }\r\n }\r\n\r\n // Compute inv key schedule\r\n var invKeySchedule = this._invKeySchedule = [];\r\n for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\r\n var ksRow = ksRows - invKsRow;\r\n\r\n if (invKsRow % 4) {\r\n var t = keySchedule[ksRow];\r\n } else {\r\n var t = keySchedule[ksRow - 4];\r\n }\r\n\r\n if (invKsRow < 4 || ksRow <= 4) {\r\n invKeySchedule[invKsRow] = t;\r\n } else {\r\n invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\r\n INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\r\n }\r\n }\r\n },\r\n\r\n encryptBlock: function (M, offset) {\r\n this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\r\n },\r\n\r\n decryptBlock: function (M, offset) {\r\n // Swap 2nd and 4th rows\r\n var t = M[offset + 1];\r\n M[offset + 1] = M[offset + 3];\r\n M[offset + 3] = t;\r\n\r\n this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\r\n\r\n // Inv swap 2nd and 4th rows\r\n var t = M[offset + 1];\r\n M[offset + 1] = M[offset + 3];\r\n M[offset + 3] = t;\r\n },\r\n\r\n _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\r\n // Shortcut\r\n var nRounds = this._nRounds;\r\n\r\n // Get input, add round key\r\n var s0 = M[offset] ^ keySchedule[0];\r\n var s1 = M[offset + 1] ^ keySchedule[1];\r\n var s2 = M[offset + 2] ^ keySchedule[2];\r\n var s3 = M[offset + 3] ^ keySchedule[3];\r\n\r\n // Key schedule row counter\r\n var ksRow = 4;\r\n\r\n // Rounds\r\n for (var round = 1; round < nRounds; round++) {\r\n // Shift rows, sub bytes, mix columns, add round key\r\n var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\r\n var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\r\n var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\r\n var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\r\n\r\n // Update state\r\n s0 = t0;\r\n s1 = t1;\r\n s2 = t2;\r\n s3 = t3;\r\n }\r\n\r\n // Shift rows, sub bytes, add round key\r\n var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\r\n var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\r\n var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\r\n var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\r\n\r\n // Set output\r\n M[offset] = t0;\r\n M[offset + 1] = t1;\r\n M[offset + 2] = t2;\r\n M[offset + 3] = t3;\r\n },\r\n\r\n keySize: 256 / 32\r\n });\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\r\n\t */\r\n C.AES = BlockCipher._createHelper(AES);\r\n }());\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var WordArray = C_lib.WordArray;\r\n var BlockCipher = C_lib.BlockCipher;\r\n var C_algo = C.algo;\r\n\r\n // Permuted Choice 1 constants\r\n var PC1 = [\r\n 57, 49, 41, 33, 25, 17, 9, 1,\r\n 58, 50, 42, 34, 26, 18, 10, 2,\r\n 59, 51, 43, 35, 27, 19, 11, 3,\r\n 60, 52, 44, 36, 63, 55, 47, 39,\r\n 31, 23, 15, 7, 62, 54, 46, 38,\r\n 30, 22, 14, 6, 61, 53, 45, 37,\r\n 29, 21, 13, 5, 28, 20, 12, 4\r\n ];\r\n\r\n // Permuted Choice 2 constants\r\n var PC2 = [\r\n 14, 17, 11, 24, 1, 5,\r\n 3, 28, 15, 6, 21, 10,\r\n 23, 19, 12, 4, 26, 8,\r\n 16, 7, 27, 20, 13, 2,\r\n 41, 52, 31, 37, 47, 55,\r\n 30, 40, 51, 45, 33, 48,\r\n 44, 49, 39, 56, 34, 53,\r\n 46, 42, 50, 36, 29, 32\r\n ];\r\n\r\n // Cumulative bit shift constants\r\n var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\r\n\r\n // SBOXes and round permutation constants\r\n var SBOX_P = [\r\n {\r\n 0x0: 0x808200,\r\n 0x10000000: 0x8000,\r\n 0x20000000: 0x808002,\r\n 0x30000000: 0x2,\r\n 0x40000000: 0x200,\r\n 0x50000000: 0x808202,\r\n 0x60000000: 0x800202,\r\n 0x70000000: 0x800000,\r\n 0x80000000: 0x202,\r\n 0x90000000: 0x800200,\r\n 0xa0000000: 0x8200,\r\n 0xb0000000: 0x808000,\r\n 0xc0000000: 0x8002,\r\n 0xd0000000: 0x800002,\r\n 0xe0000000: 0x0,\r\n 0xf0000000: 0x8202,\r\n 0x8000000: 0x0,\r\n 0x18000000: 0x808202,\r\n 0x28000000: 0x8202,\r\n 0x38000000: 0x8000,\r\n 0x48000000: 0x808200,\r\n 0x58000000: 0x200,\r\n 0x68000000: 0x808002,\r\n 0x78000000: 0x2,\r\n 0x88000000: 0x800200,\r\n 0x98000000: 0x8200,\r\n 0xa8000000: 0x808000,\r\n 0xb8000000: 0x800202,\r\n 0xc8000000: 0x800002,\r\n 0xd8000000: 0x8002,\r\n 0xe8000000: 0x202,\r\n 0xf8000000: 0x800000,\r\n 0x1: 0x8000,\r\n 0x10000001: 0x2,\r\n 0x20000001: 0x808200,\r\n 0x30000001: 0x800000,\r\n 0x40000001: 0x808002,\r\n 0x50000001: 0x8200,\r\n 0x60000001: 0x200,\r\n 0x70000001: 0x800202,\r\n 0x80000001: 0x808202,\r\n 0x90000001: 0x808000,\r\n 0xa0000001: 0x800002,\r\n 0xb0000001: 0x8202,\r\n 0xc0000001: 0x202,\r\n 0xd0000001: 0x800200,\r\n 0xe0000001: 0x8002,\r\n 0xf0000001: 0x0,\r\n 0x8000001: 0x808202,\r\n 0x18000001: 0x808000,\r\n 0x28000001: 0x800000,\r\n 0x38000001: 0x200,\r\n 0x48000001: 0x8000,\r\n 0x58000001: 0x800002,\r\n 0x68000001: 0x2,\r\n 0x78000001: 0x8202,\r\n 0x88000001: 0x8002,\r\n 0x98000001: 0x800202,\r\n 0xa8000001: 0x202,\r\n 0xb8000001: 0x808200,\r\n 0xc8000001: 0x800200,\r\n 0xd8000001: 0x0,\r\n 0xe8000001: 0x8200,\r\n 0xf8000001: 0x808002\r\n },\r\n {\r\n 0x0: 0x40084010,\r\n 0x1000000: 0x4000,\r\n 0x2000000: 0x80000,\r\n 0x3000000: 0x40080010,\r\n 0x4000000: 0x40000010,\r\n 0x5000000: 0x40084000,\r\n 0x6000000: 0x40004000,\r\n 0x7000000: 0x10,\r\n 0x8000000: 0x84000,\r\n 0x9000000: 0x40004010,\r\n 0xa000000: 0x40000000,\r\n 0xb000000: 0x84010,\r\n 0xc000000: 0x80010,\r\n 0xd000000: 0x0,\r\n 0xe000000: 0x4010,\r\n 0xf000000: 0x40080000,\r\n 0x800000: 0x40004000,\r\n 0x1800000: 0x84010,\r\n 0x2800000: 0x10,\r\n 0x3800000: 0x40004010,\r\n 0x4800000: 0x40084010,\r\n 0x5800000: 0x40000000,\r\n 0x6800000: 0x80000,\r\n 0x7800000: 0x40080010,\r\n 0x8800000: 0x80010,\r\n 0x9800000: 0x0,\r\n 0xa800000: 0x4000,\r\n 0xb800000: 0x40080000,\r\n 0xc800000: 0x40000010,\r\n 0xd800000: 0x84000,\r\n 0xe800000: 0x40084000,\r\n 0xf800000: 0x4010,\r\n 0x10000000: 0x0,\r\n 0x11000000: 0x40080010,\r\n 0x12000000: 0x40004010,\r\n 0x13000000: 0x40084000,\r\n 0x14000000: 0x40080000,\r\n 0x15000000: 0x10,\r\n 0x16000000: 0x84010,\r\n 0x17000000: 0x4000,\r\n 0x18000000: 0x4010,\r\n 0x19000000: 0x80000,\r\n 0x1a000000: 0x80010,\r\n 0x1b000000: 0x40000010,\r\n 0x1c000000: 0x84000,\r\n 0x1d000000: 0x40004000,\r\n 0x1e000000: 0x40000000,\r\n 0x1f000000: 0x40084010,\r\n 0x10800000: 0x84010,\r\n 0x11800000: 0x80000,\r\n 0x12800000: 0x40080000,\r\n 0x13800000: 0x4000,\r\n 0x14800000: 0x40004000,\r\n 0x15800000: 0x40084010,\r\n 0x16800000: 0x10,\r\n 0x17800000: 0x40000000,\r\n 0x18800000: 0x40084000,\r\n 0x19800000: 0x40000010,\r\n 0x1a800000: 0x40004010,\r\n 0x1b800000: 0x80010,\r\n 0x1c800000: 0x0,\r\n 0x1d800000: 0x4010,\r\n 0x1e800000: 0x40080010,\r\n 0x1f800000: 0x84000\r\n },\r\n {\r\n 0x0: 0x104,\r\n 0x100000: 0x0,\r\n 0x200000: 0x4000100,\r\n 0x300000: 0x10104,\r\n 0x400000: 0x10004,\r\n 0x500000: 0x4000004,\r\n 0x600000: 0x4010104,\r\n 0x700000: 0x4010000,\r\n 0x800000: 0x4000000,\r\n 0x900000: 0x4010100,\r\n 0xa00000: 0x10100,\r\n 0xb00000: 0x4010004,\r\n 0xc00000: 0x4000104,\r\n 0xd00000: 0x10000,\r\n 0xe00000: 0x4,\r\n 0xf00000: 0x100,\r\n 0x80000: 0x4010100,\r\n 0x180000: 0x4010004,\r\n 0x280000: 0x0,\r\n 0x380000: 0x4000100,\r\n 0x480000: 0x4000004,\r\n 0x580000: 0x10000,\r\n 0x680000: 0x10004,\r\n 0x780000: 0x104,\r\n 0x880000: 0x4,\r\n 0x980000: 0x100,\r\n 0xa80000: 0x4010000,\r\n 0xb80000: 0x10104,\r\n 0xc80000: 0x10100,\r\n 0xd80000: 0x4000104,\r\n 0xe80000: 0x4010104,\r\n 0xf80000: 0x4000000,\r\n 0x1000000: 0x4010100,\r\n 0x1100000: 0x10004,\r\n 0x1200000: 0x10000,\r\n 0x1300000: 0x4000100,\r\n 0x1400000: 0x100,\r\n 0x1500000: 0x4010104,\r\n 0x1600000: 0x4000004,\r\n 0x1700000: 0x0,\r\n 0x1800000: 0x4000104,\r\n 0x1900000: 0x4000000,\r\n 0x1a00000: 0x4,\r\n 0x1b00000: 0x10100,\r\n 0x1c00000: 0x4010000,\r\n 0x1d00000: 0x104,\r\n 0x1e00000: 0x10104,\r\n 0x1f00000: 0x4010004,\r\n 0x1080000: 0x4000000,\r\n 0x1180000: 0x104,\r\n 0x1280000: 0x4010100,\r\n 0x1380000: 0x0,\r\n 0x1480000: 0x10004,\r\n 0x1580000: 0x4000100,\r\n 0x1680000: 0x100,\r\n 0x1780000: 0x4010004,\r\n 0x1880000: 0x10000,\r\n 0x1980000: 0x4010104,\r\n 0x1a80000: 0x10104,\r\n 0x1b80000: 0x4000004,\r\n 0x1c80000: 0x4000104,\r\n 0x1d80000: 0x4010000,\r\n 0x1e80000: 0x4,\r\n 0x1f80000: 0x10100\r\n },\r\n {\r\n 0x0: 0x80401000,\r\n 0x10000: 0x80001040,\r\n 0x20000: 0x401040,\r\n 0x30000: 0x80400000,\r\n 0x40000: 0x0,\r\n 0x50000: 0x401000,\r\n 0x60000: 0x80000040,\r\n 0x70000: 0x400040,\r\n 0x80000: 0x80000000,\r\n 0x90000: 0x400000,\r\n 0xa0000: 0x40,\r\n 0xb0000: 0x80001000,\r\n 0xc0000: 0x80400040,\r\n 0xd0000: 0x1040,\r\n 0xe0000: 0x1000,\r\n 0xf0000: 0x80401040,\r\n 0x8000: 0x80001040,\r\n 0x18000: 0x40,\r\n 0x28000: 0x80400040,\r\n 0x38000: 0x80001000,\r\n 0x48000: 0x401000,\r\n 0x58000: 0x80401040,\r\n 0x68000: 0x0,\r\n 0x78000: 0x80400000,\r\n 0x88000: 0x1000,\r\n 0x98000: 0x80401000,\r\n 0xa8000: 0x400000,\r\n 0xb8000: 0x1040,\r\n 0xc8000: 0x80000000,\r\n 0xd8000: 0x400040,\r\n 0xe8000: 0x401040,\r\n 0xf8000: 0x80000040,\r\n 0x100000: 0x400040,\r\n 0x110000: 0x401000,\r\n 0x120000: 0x80000040,\r\n 0x130000: 0x0,\r\n 0x140000: 0x1040,\r\n 0x150000: 0x80400040,\r\n 0x160000: 0x80401000,\r\n 0x170000: 0x80001040,\r\n 0x180000: 0x80401040,\r\n 0x190000: 0x80000000,\r\n 0x1a0000: 0x80400000,\r\n 0x1b0000: 0x401040,\r\n 0x1c0000: 0x80001000,\r\n 0x1d0000: 0x400000,\r\n 0x1e0000: 0x40,\r\n 0x1f0000: 0x1000,\r\n 0x108000: 0x80400000,\r\n 0x118000: 0x80401040,\r\n 0x128000: 0x0,\r\n 0x138000: 0x401000,\r\n 0x148000: 0x400040,\r\n 0x158000: 0x80000000,\r\n 0x168000: 0x80001040,\r\n 0x178000: 0x40,\r\n 0x188000: 0x80000040,\r\n 0x198000: 0x1000,\r\n 0x1a8000: 0x80001000,\r\n 0x1b8000: 0x80400040,\r\n 0x1c8000: 0x1040,\r\n 0x1d8000: 0x80401000,\r\n 0x1e8000: 0x400000,\r\n 0x1f8000: 0x401040\r\n },\r\n {\r\n 0x0: 0x80,\r\n 0x1000: 0x1040000,\r\n 0x2000: 0x40000,\r\n 0x3000: 0x20000000,\r\n 0x4000: 0x20040080,\r\n 0x5000: 0x1000080,\r\n 0x6000: 0x21000080,\r\n 0x7000: 0x40080,\r\n 0x8000: 0x1000000,\r\n 0x9000: 0x20040000,\r\n 0xa000: 0x20000080,\r\n 0xb000: 0x21040080,\r\n 0xc000: 0x21040000,\r\n 0xd000: 0x0,\r\n 0xe000: 0x1040080,\r\n 0xf000: 0x21000000,\r\n 0x800: 0x1040080,\r\n 0x1800: 0x21000080,\r\n 0x2800: 0x80,\r\n 0x3800: 0x1040000,\r\n 0x4800: 0x40000,\r\n 0x5800: 0x20040080,\r\n 0x6800: 0x21040000,\r\n 0x7800: 0x20000000,\r\n 0x8800: 0x20040000,\r\n 0x9800: 0x0,\r\n 0xa800: 0x21040080,\r\n 0xb800: 0x1000080,\r\n 0xc800: 0x20000080,\r\n 0xd800: 0x21000000,\r\n 0xe800: 0x1000000,\r\n 0xf800: 0x40080,\r\n 0x10000: 0x40000,\r\n 0x11000: 0x80,\r\n 0x12000: 0x20000000,\r\n 0x13000: 0x21000080,\r\n 0x14000: 0x1000080,\r\n 0x15000: 0x21040000,\r\n 0x16000: 0x20040080,\r\n 0x17000: 0x1000000,\r\n 0x18000: 0x21040080,\r\n 0x19000: 0x21000000,\r\n 0x1a000: 0x1040000,\r\n 0x1b000: 0x20040000,\r\n 0x1c000: 0x40080,\r\n 0x1d000: 0x20000080,\r\n 0x1e000: 0x0,\r\n 0x1f000: 0x1040080,\r\n 0x10800: 0x21000080,\r\n 0x11800: 0x1000000,\r\n 0x12800: 0x1040000,\r\n 0x13800: 0x20040080,\r\n 0x14800: 0x20000000,\r\n 0x15800: 0x1040080,\r\n 0x16800: 0x80,\r\n 0x17800: 0x21040000,\r\n 0x18800: 0x40080,\r\n 0x19800: 0x21040080,\r\n 0x1a800: 0x0,\r\n 0x1b800: 0x21000000,\r\n 0x1c800: 0x1000080,\r\n 0x1d800: 0x40000,\r\n 0x1e800: 0x20040000,\r\n 0x1f800: 0x20000080\r\n },\r\n {\r\n 0x0: 0x10000008,\r\n 0x100: 0x2000,\r\n 0x200: 0x10200000,\r\n 0x300: 0x10202008,\r\n 0x400: 0x10002000,\r\n 0x500: 0x200000,\r\n 0x600: 0x200008,\r\n 0x700: 0x10000000,\r\n 0x800: 0x0,\r\n 0x900: 0x10002008,\r\n 0xa00: 0x202000,\r\n 0xb00: 0x8,\r\n 0xc00: 0x10200008,\r\n 0xd00: 0x202008,\r\n 0xe00: 0x2008,\r\n 0xf00: 0x10202000,\r\n 0x80: 0x10200000,\r\n 0x180: 0x10202008,\r\n 0x280: 0x8,\r\n 0x380: 0x200000,\r\n 0x480: 0x202008,\r\n 0x580: 0x10000008,\r\n 0x680: 0x10002000,\r\n 0x780: 0x2008,\r\n 0x880: 0x200008,\r\n 0x980: 0x2000,\r\n 0xa80: 0x10002008,\r\n 0xb80: 0x10200008,\r\n 0xc80: 0x0,\r\n 0xd80: 0x10202000,\r\n 0xe80: 0x202000,\r\n 0xf80: 0x10000000,\r\n 0x1000: 0x10002000,\r\n 0x1100: 0x10200008,\r\n 0x1200: 0x10202008,\r\n 0x1300: 0x2008,\r\n 0x1400: 0x200000,\r\n 0x1500: 0x10000000,\r\n 0x1600: 0x10000008,\r\n 0x1700: 0x202000,\r\n 0x1800: 0x202008,\r\n 0x1900: 0x0,\r\n 0x1a00: 0x8,\r\n 0x1b00: 0x10200000,\r\n 0x1c00: 0x2000,\r\n 0x1d00: 0x10002008,\r\n 0x1e00: 0x10202000,\r\n 0x1f00: 0x200008,\r\n 0x1080: 0x8,\r\n 0x1180: 0x202000,\r\n 0x1280: 0x200000,\r\n 0x1380: 0x10000008,\r\n 0x1480: 0x10002000,\r\n 0x1580: 0x2008,\r\n 0x1680: 0x10202008,\r\n 0x1780: 0x10200000,\r\n 0x1880: 0x10202000,\r\n 0x1980: 0x10200008,\r\n 0x1a80: 0x2000,\r\n 0x1b80: 0x202008,\r\n 0x1c80: 0x200008,\r\n 0x1d80: 0x0,\r\n 0x1e80: 0x10000000,\r\n 0x1f80: 0x10002008\r\n },\r\n {\r\n 0x0: 0x100000,\r\n 0x10: 0x2000401,\r\n 0x20: 0x400,\r\n 0x30: 0x100401,\r\n 0x40: 0x2100401,\r\n 0x50: 0x0,\r\n 0x60: 0x1,\r\n 0x70: 0x2100001,\r\n 0x80: 0x2000400,\r\n 0x90: 0x100001,\r\n 0xa0: 0x2000001,\r\n 0xb0: 0x2100400,\r\n 0xc0: 0x2100000,\r\n 0xd0: 0x401,\r\n 0xe0: 0x100400,\r\n 0xf0: 0x2000000,\r\n 0x8: 0x2100001,\r\n 0x18: 0x0,\r\n 0x28: 0x2000401,\r\n 0x38: 0x2100400,\r\n 0x48: 0x100000,\r\n 0x58: 0x2000001,\r\n 0x68: 0x2000000,\r\n 0x78: 0x401,\r\n 0x88: 0x100401,\r\n 0x98: 0x2000400,\r\n 0xa8: 0x2100000,\r\n 0xb8: 0x100001,\r\n 0xc8: 0x400,\r\n 0xd8: 0x2100401,\r\n 0xe8: 0x1,\r\n 0xf8: 0x100400,\r\n 0x100: 0x2000000,\r\n 0x110: 0x100000,\r\n 0x120: 0x2000401,\r\n 0x130: 0x2100001,\r\n 0x140: 0x100001,\r\n 0x150: 0x2000400,\r\n 0x160: 0x2100400,\r\n 0x170: 0x100401,\r\n 0x180: 0x401,\r\n 0x190: 0x2100401,\r\n 0x1a0: 0x100400,\r\n 0x1b0: 0x1,\r\n 0x1c0: 0x0,\r\n 0x1d0: 0x2100000,\r\n 0x1e0: 0x2000001,\r\n 0x1f0: 0x400,\r\n 0x108: 0x100400,\r\n 0x118: 0x2000401,\r\n 0x128: 0x2100001,\r\n 0x138: 0x1,\r\n 0x148: 0x2000000,\r\n 0x158: 0x100000,\r\n 0x168: 0x401,\r\n 0x178: 0x2100400,\r\n 0x188: 0x2000001,\r\n 0x198: 0x2100000,\r\n 0x1a8: 0x0,\r\n 0x1b8: 0x2100401,\r\n 0x1c8: 0x100401,\r\n 0x1d8: 0x400,\r\n 0x1e8: 0x2000400,\r\n 0x1f8: 0x100001\r\n },\r\n {\r\n 0x0: 0x8000820,\r\n 0x1: 0x20000,\r\n 0x2: 0x8000000,\r\n 0x3: 0x20,\r\n 0x4: 0x20020,\r\n 0x5: 0x8020820,\r\n 0x6: 0x8020800,\r\n 0x7: 0x800,\r\n 0x8: 0x8020000,\r\n 0x9: 0x8000800,\r\n 0xa: 0x20800,\r\n 0xb: 0x8020020,\r\n 0xc: 0x820,\r\n 0xd: 0x0,\r\n 0xe: 0x8000020,\r\n 0xf: 0x20820,\r\n 0x80000000: 0x800,\r\n 0x80000001: 0x8020820,\r\n 0x80000002: 0x8000820,\r\n 0x80000003: 0x8000000,\r\n 0x80000004: 0x8020000,\r\n 0x80000005: 0x20800,\r\n 0x80000006: 0x20820,\r\n 0x80000007: 0x20,\r\n 0x80000008: 0x8000020,\r\n 0x80000009: 0x820,\r\n 0x8000000a: 0x20020,\r\n 0x8000000b: 0x8020800,\r\n 0x8000000c: 0x0,\r\n 0x8000000d: 0x8020020,\r\n 0x8000000e: 0x8000800,\r\n 0x8000000f: 0x20000,\r\n 0x10: 0x20820,\r\n 0x11: 0x8020800,\r\n 0x12: 0x20,\r\n 0x13: 0x800,\r\n 0x14: 0x8000800,\r\n 0x15: 0x8000020,\r\n 0x16: 0x8020020,\r\n 0x17: 0x20000,\r\n 0x18: 0x0,\r\n 0x19: 0x20020,\r\n 0x1a: 0x8020000,\r\n 0x1b: 0x8000820,\r\n 0x1c: 0x8020820,\r\n 0x1d: 0x20800,\r\n 0x1e: 0x820,\r\n 0x1f: 0x8000000,\r\n 0x80000010: 0x20000,\r\n 0x80000011: 0x800,\r\n 0x80000012: 0x8020020,\r\n 0x80000013: 0x20820,\r\n 0x80000014: 0x20,\r\n 0x80000015: 0x8020000,\r\n 0x80000016: 0x8000000,\r\n 0x80000017: 0x8000820,\r\n 0x80000018: 0x8020820,\r\n 0x80000019: 0x8000020,\r\n 0x8000001a: 0x8000800,\r\n 0x8000001b: 0x0,\r\n 0x8000001c: 0x20800,\r\n 0x8000001d: 0x820,\r\n 0x8000001e: 0x20020,\r\n 0x8000001f: 0x8020800\r\n }\r\n ];\r\n\r\n // Masks that select the SBOX input\r\n var SBOX_MASK = [\r\n 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\r\n 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\r\n ];\r\n\r\n\t /**\r\n\t * DES block cipher algorithm.\r\n\t */\r\n var DES = C_algo.DES = BlockCipher.extend({\r\n _doReset: function () {\r\n // Shortcuts\r\n var key = this._key;\r\n var keyWords = key.words;\r\n\r\n // Select 56 bits according to PC1\r\n var keyBits = [];\r\n for (var i = 0; i < 56; i++) {\r\n var keyBitPos = PC1[i] - 1;\r\n keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\r\n }\r\n\r\n // Assemble 16 subkeys\r\n var subKeys = this._subKeys = [];\r\n for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\r\n // Create subkey\r\n var subKey = subKeys[nSubKey] = [];\r\n\r\n // Shortcut\r\n var bitShift = BIT_SHIFTS[nSubKey];\r\n\r\n // Select 48 bits according to PC2\r\n for (var i = 0; i < 24; i++) {\r\n // Select from the left 28 key bits\r\n subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\r\n\r\n // Select from the right 28 key bits\r\n subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\r\n }\r\n\r\n // Since each subkey is applied to an expanded 32-bit input,\r\n // the subkey can be broken into 8 values scaled to 32-bits,\r\n // which allows the key to be used without expansion\r\n subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\r\n for (var i = 1; i < 7; i++) {\r\n subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\r\n }\r\n subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\r\n }\r\n\r\n // Compute inverse subkeys\r\n var invSubKeys = this._invSubKeys = [];\r\n for (var i = 0; i < 16; i++) {\r\n invSubKeys[i] = subKeys[15 - i];\r\n }\r\n },\r\n\r\n encryptBlock: function (M, offset) {\r\n this._doCryptBlock(M, offset, this._subKeys);\r\n },\r\n\r\n decryptBlock: function (M, offset) {\r\n this._doCryptBlock(M, offset, this._invSubKeys);\r\n },\r\n\r\n _doCryptBlock: function (M, offset, subKeys) {\r\n // Get input\r\n this._lBlock = M[offset];\r\n this._rBlock = M[offset + 1];\r\n\r\n // Initial permutation\r\n exchangeLR.call(this, 4, 0x0f0f0f0f);\r\n exchangeLR.call(this, 16, 0x0000ffff);\r\n exchangeRL.call(this, 2, 0x33333333);\r\n exchangeRL.call(this, 8, 0x00ff00ff);\r\n exchangeLR.call(this, 1, 0x55555555);\r\n\r\n // Rounds\r\n for (var round = 0; round < 16; round++) {\r\n // Shortcuts\r\n var subKey = subKeys[round];\r\n var lBlock = this._lBlock;\r\n var rBlock = this._rBlock;\r\n\r\n // Feistel function\r\n var f = 0;\r\n for (var i = 0; i < 8; i++) {\r\n f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\r\n }\r\n this._lBlock = rBlock;\r\n this._rBlock = lBlock ^ f;\r\n }\r\n\r\n // Undo swap from last round\r\n var t = this._lBlock;\r\n this._lBlock = this._rBlock;\r\n this._rBlock = t;\r\n\r\n // Final permutation\r\n exchangeLR.call(this, 1, 0x55555555);\r\n exchangeRL.call(this, 8, 0x00ff00ff);\r\n exchangeRL.call(this, 2, 0x33333333);\r\n exchangeLR.call(this, 16, 0x0000ffff);\r\n exchangeLR.call(this, 4, 0x0f0f0f0f);\r\n\r\n // Set output\r\n M[offset] = this._lBlock;\r\n M[offset + 1] = this._rBlock;\r\n },\r\n\r\n keySize: 64 / 32,\r\n\r\n ivSize: 64 / 32,\r\n\r\n blockSize: 64 / 32\r\n });\r\n\r\n // Swap bits across the left and right words\r\n function exchangeLR(offset, mask) {\r\n var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\r\n this._rBlock ^= t;\r\n this._lBlock ^= t << offset;\r\n }\r\n\r\n function exchangeRL(offset, mask) {\r\n var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\r\n this._lBlock ^= t;\r\n this._rBlock ^= t << offset;\r\n }\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\r\n\t */\r\n C.DES = BlockCipher._createHelper(DES);\r\n\r\n\t /**\r\n\t * Triple-DES block cipher algorithm.\r\n\t */\r\n var TripleDES = C_algo.TripleDES = BlockCipher.extend({\r\n _doReset: function () {\r\n // Shortcuts\r\n var key = this._key;\r\n var keyWords = key.words;\r\n\r\n // Create DES instances\r\n this._des1 = DES.createEncryptor(WordArray.create(keyWords.slice(0, 2)));\r\n this._des2 = DES.createEncryptor(WordArray.create(keyWords.slice(2, 4)));\r\n this._des3 = DES.createEncryptor(WordArray.create(keyWords.slice(4, 6)));\r\n },\r\n\r\n encryptBlock: function (M, offset) {\r\n this._des1.encryptBlock(M, offset);\r\n this._des2.decryptBlock(M, offset);\r\n this._des3.encryptBlock(M, offset);\r\n },\r\n\r\n decryptBlock: function (M, offset) {\r\n this._des3.decryptBlock(M, offset);\r\n this._des2.encryptBlock(M, offset);\r\n this._des1.decryptBlock(M, offset);\r\n },\r\n\r\n keySize: 192 / 32,\r\n\r\n ivSize: 64 / 32,\r\n\r\n blockSize: 64 / 32\r\n });\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\r\n\t */\r\n C.TripleDES = BlockCipher._createHelper(TripleDES);\r\n }());\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var StreamCipher = C_lib.StreamCipher;\r\n var C_algo = C.algo;\r\n\r\n\t /**\r\n\t * RC4 stream cipher algorithm.\r\n\t */\r\n var RC4 = C_algo.RC4 = StreamCipher.extend({\r\n _doReset: function () {\r\n // Shortcuts\r\n var key = this._key;\r\n var keyWords = key.words;\r\n var keySigBytes = key.sigBytes;\r\n\r\n // Init sbox\r\n var S = this._S = [];\r\n for (var i = 0; i < 256; i++) {\r\n S[i] = i;\r\n }\r\n\r\n // Key setup\r\n for (var i = 0, j = 0; i < 256; i++) {\r\n var keyByteIndex = i % keySigBytes;\r\n var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\r\n\r\n j = (j + S[i] + keyByte) % 256;\r\n\r\n // Swap\r\n var t = S[i];\r\n S[i] = S[j];\r\n S[j] = t;\r\n }\r\n\r\n // Counters\r\n this._i = this._j = 0;\r\n },\r\n\r\n _doProcessBlock: function (M, offset) {\r\n M[offset] ^= generateKeystreamWord.call(this);\r\n },\r\n\r\n keySize: 256 / 32,\r\n\r\n ivSize: 0\r\n });\r\n\r\n function generateKeystreamWord() {\r\n // Shortcuts\r\n var S = this._S;\r\n var i = this._i;\r\n var j = this._j;\r\n\r\n // Generate keystream word\r\n var keystreamWord = 0;\r\n for (var n = 0; n < 4; n++) {\r\n i = (i + 1) % 256;\r\n j = (j + S[i]) % 256;\r\n\r\n // Swap\r\n var t = S[i];\r\n S[i] = S[j];\r\n S[j] = t;\r\n\r\n keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\r\n }\r\n\r\n // Update counters\r\n this._i = i;\r\n this._j = j;\r\n\r\n return keystreamWord;\r\n }\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\r\n\t */\r\n C.RC4 = StreamCipher._createHelper(RC4);\r\n\r\n\t /**\r\n\t * Modified RC4 stream cipher algorithm.\r\n\t */\r\n var RC4Drop = C_algo.RC4Drop = RC4.extend({\r\n\t /**\r\n\t * Configuration options.\r\n\t *\r\n\t * @property {number} drop The number of keystream words to drop. Default 192\r\n\t */\r\n cfg: RC4.cfg.extend({\r\n drop: 192\r\n }),\r\n\r\n _doReset: function () {\r\n RC4._doReset.call(this);\r\n\r\n // Drop\r\n for (var i = this.cfg.drop; i > 0; i--) {\r\n generateKeystreamWord.call(this);\r\n }\r\n }\r\n });\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\r\n\t */\r\n C.RC4Drop = StreamCipher._createHelper(RC4Drop);\r\n }());\r\n\r\n\r\n\t/** @preserve\r\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\r\n\t * derived from CryptoJS.mode.CTR\r\n\t * Jan Hruby jhruby.web@gmail.com\r\n\t */\r\n CryptoJS.mode.CTRGladman = (function () {\r\n var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\r\n\r\n function incWord(word) {\r\n if (((word >> 24) & 0xff) === 0xff) { //overflow\r\n var b1 = (word >> 16) & 0xff;\r\n var b2 = (word >> 8) & 0xff;\r\n var b3 = word & 0xff;\r\n\r\n if (b1 === 0xff) // overflow b1\r\n {\r\n b1 = 0;\r\n if (b2 === 0xff) {\r\n b2 = 0;\r\n if (b3 === 0xff) {\r\n b3 = 0;\r\n }\r\n else {\r\n ++b3;\r\n }\r\n }\r\n else {\r\n ++b2;\r\n }\r\n }\r\n else {\r\n ++b1;\r\n }\r\n\r\n word = 0;\r\n word += (b1 << 16);\r\n word += (b2 << 8);\r\n word += b3;\r\n }\r\n else {\r\n word += (0x01 << 24);\r\n }\r\n return word;\r\n }\r\n\r\n function incCounter(counter) {\r\n if ((counter[0] = incWord(counter[0])) === 0) {\r\n // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\r\n counter[1] = incWord(counter[1]);\r\n }\r\n return counter;\r\n }\r\n\r\n var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\r\n processBlock: function (words, offset) {\r\n // Shortcuts\r\n var cipher = this._cipher\r\n var blockSize = cipher.blockSize;\r\n var iv = this._iv;\r\n var counter = this._counter;\r\n\r\n // Generate keystream\r\n if (iv) {\r\n counter = this._counter = iv.slice(0);\r\n\r\n // Remove IV for subsequent blocks\r\n this._iv = undefined;\r\n }\r\n\r\n incCounter(counter);\r\n\r\n var keystream = counter.slice(0);\r\n cipher.encryptBlock(keystream, 0);\r\n\r\n // Encrypt\r\n for (var i = 0; i < blockSize; i++) {\r\n words[offset + i] ^= keystream[i];\r\n }\r\n }\r\n });\r\n\r\n CTRGladman.Decryptor = Encryptor;\r\n\r\n return CTRGladman;\r\n }());\r\n\r\n\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var StreamCipher = C_lib.StreamCipher;\r\n var C_algo = C.algo;\r\n\r\n // Reusable objects\r\n var S = [];\r\n var C_ = [];\r\n var G = [];\r\n\r\n\t /**\r\n\t * Rabbit stream cipher algorithm\r\n\t */\r\n var Rabbit = C_algo.Rabbit = StreamCipher.extend({\r\n _doReset: function () {\r\n // Shortcuts\r\n var K = this._key.words;\r\n var iv = this.cfg.iv;\r\n\r\n // Swap endian\r\n for (var i = 0; i < 4; i++) {\r\n K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\r\n (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\r\n }\r\n\r\n // Generate initial state values\r\n var X = this._X = [\r\n K[0], (K[3] << 16) | (K[2] >>> 16),\r\n K[1], (K[0] << 16) | (K[3] >>> 16),\r\n K[2], (K[1] << 16) | (K[0] >>> 16),\r\n K[3], (K[2] << 16) | (K[1] >>> 16)\r\n ];\r\n\r\n // Generate initial counter values\r\n var C = this._C = [\r\n (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\r\n (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\r\n (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\r\n (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\r\n ];\r\n\r\n // Carry bit\r\n this._b = 0;\r\n\r\n // Iterate the system four times\r\n for (var i = 0; i < 4; i++) {\r\n nextState.call(this);\r\n }\r\n\r\n // Modify the counters\r\n for (var i = 0; i < 8; i++) {\r\n C[i] ^= X[(i + 4) & 7];\r\n }\r\n\r\n // IV setup\r\n if (iv) {\r\n // Shortcuts\r\n var IV = iv.words;\r\n var IV_0 = IV[0];\r\n var IV_1 = IV[1];\r\n\r\n // Generate four subvectors\r\n var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\r\n var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\r\n var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\r\n var i3 = (i2 << 16) | (i0 & 0x0000ffff);\r\n\r\n // Modify counter values\r\n C[0] ^= i0;\r\n C[1] ^= i1;\r\n C[2] ^= i2;\r\n C[3] ^= i3;\r\n C[4] ^= i0;\r\n C[5] ^= i1;\r\n C[6] ^= i2;\r\n C[7] ^= i3;\r\n\r\n // Iterate the system four times\r\n for (var i = 0; i < 4; i++) {\r\n nextState.call(this);\r\n }\r\n }\r\n },\r\n\r\n _doProcessBlock: function (M, offset) {\r\n // Shortcut\r\n var X = this._X;\r\n\r\n // Iterate the system\r\n nextState.call(this);\r\n\r\n // Generate four keystream words\r\n S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\r\n S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\r\n S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\r\n S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\r\n\r\n for (var i = 0; i < 4; i++) {\r\n // Swap endian\r\n S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\r\n (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\r\n\r\n // Encrypt\r\n M[offset + i] ^= S[i];\r\n }\r\n },\r\n\r\n blockSize: 128 / 32,\r\n\r\n ivSize: 64 / 32\r\n });\r\n\r\n function nextState() {\r\n // Shortcuts\r\n var X = this._X;\r\n var C = this._C;\r\n\r\n // Save old counter values\r\n for (var i = 0; i < 8; i++) {\r\n C_[i] = C[i];\r\n }\r\n\r\n // Calculate new counter values\r\n C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\r\n C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\r\n C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\r\n C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\r\n C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\r\n C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\r\n C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\r\n C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\r\n this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\r\n\r\n // Calculate the g-values\r\n for (var i = 0; i < 8; i++) {\r\n var gx = X[i] + C[i];\r\n\r\n // Construct high and low argument for squaring\r\n var ga = gx & 0xffff;\r\n var gb = gx >>> 16;\r\n\r\n // Calculate high and low result of squaring\r\n var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\r\n var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\r\n\r\n // High XOR low\r\n G[i] = gh ^ gl;\r\n }\r\n\r\n // Calculate new state values\r\n X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\r\n X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\r\n X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\r\n X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\r\n X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\r\n X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\r\n X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\r\n X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\r\n }\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\r\n\t */\r\n C.Rabbit = StreamCipher._createHelper(Rabbit);\r\n }());\r\n\r\n\r\n\t/**\r\n\t * Counter block mode.\r\n\t */\r\n CryptoJS.mode.CTR = (function () {\r\n var CTR = CryptoJS.lib.BlockCipherMode.extend();\r\n\r\n var Encryptor = CTR.Encryptor = CTR.extend({\r\n processBlock: function (words, offset) {\r\n // Shortcuts\r\n var cipher = this._cipher\r\n var blockSize = cipher.blockSize;\r\n var iv = this._iv;\r\n var counter = this._counter;\r\n\r\n // Generate keystream\r\n if (iv) {\r\n counter = this._counter = iv.slice(0);\r\n\r\n // Remove IV for subsequent blocks\r\n this._iv = undefined;\r\n }\r\n var keystream = counter.slice(0);\r\n cipher.encryptBlock(keystream, 0);\r\n\r\n // Increment counter\r\n counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\r\n\r\n // Encrypt\r\n for (var i = 0; i < blockSize; i++) {\r\n words[offset + i] ^= keystream[i];\r\n }\r\n }\r\n });\r\n\r\n CTR.Decryptor = Encryptor;\r\n\r\n return CTR;\r\n }());\r\n\r\n\r\n (function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var StreamCipher = C_lib.StreamCipher;\r\n var C_algo = C.algo;\r\n\r\n // Reusable objects\r\n var S = [];\r\n var C_ = [];\r\n var G = [];\r\n\r\n\t /**\r\n\t * Rabbit stream cipher algorithm.\r\n\t *\r\n\t * This is a legacy version that neglected to convert the key to little-endian.\r\n\t * This error doesn't affect the cipher's security,\r\n\t * but it does affect its compatibility with other implementations.\r\n\t */\r\n var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\r\n _doReset: function () {\r\n // Shortcuts\r\n var K = this._key.words;\r\n var iv = this.cfg.iv;\r\n\r\n // Generate initial state values\r\n var X = this._X = [\r\n K[0], (K[3] << 16) | (K[2] >>> 16),\r\n K[1], (K[0] << 16) | (K[3] >>> 16),\r\n K[2], (K[1] << 16) | (K[0] >>> 16),\r\n K[3], (K[2] << 16) | (K[1] >>> 16)\r\n ];\r\n\r\n // Generate initial counter values\r\n var C = this._C = [\r\n (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\r\n (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\r\n (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\r\n (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\r\n ];\r\n\r\n // Carry bit\r\n this._b = 0;\r\n\r\n // Iterate the system four times\r\n for (var i = 0; i < 4; i++) {\r\n nextState.call(this);\r\n }\r\n\r\n // Modify the counters\r\n for (var i = 0; i < 8; i++) {\r\n C[i] ^= X[(i + 4) & 7];\r\n }\r\n\r\n // IV setup\r\n if (iv) {\r\n // Shortcuts\r\n var IV = iv.words;\r\n var IV_0 = IV[0];\r\n var IV_1 = IV[1];\r\n\r\n // Generate four subvectors\r\n var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\r\n var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\r\n var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\r\n var i3 = (i2 << 16) | (i0 & 0x0000ffff);\r\n\r\n // Modify counter values\r\n C[0] ^= i0;\r\n C[1] ^= i1;\r\n C[2] ^= i2;\r\n C[3] ^= i3;\r\n C[4] ^= i0;\r\n C[5] ^= i1;\r\n C[6] ^= i2;\r\n C[7] ^= i3;\r\n\r\n // Iterate the system four times\r\n for (var i = 0; i < 4; i++) {\r\n nextState.call(this);\r\n }\r\n }\r\n },\r\n\r\n _doProcessBlock: function (M, offset) {\r\n // Shortcut\r\n var X = this._X;\r\n\r\n // Iterate the system\r\n nextState.call(this);\r\n\r\n // Generate four keystream words\r\n S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\r\n S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\r\n S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\r\n S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\r\n\r\n for (var i = 0; i < 4; i++) {\r\n // Swap endian\r\n S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\r\n (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\r\n\r\n // Encrypt\r\n M[offset + i] ^= S[i];\r\n }\r\n },\r\n\r\n blockSize: 128 / 32,\r\n\r\n ivSize: 64 / 32\r\n });\r\n\r\n function nextState() {\r\n // Shortcuts\r\n var X = this._X;\r\n var C = this._C;\r\n\r\n // Save old counter values\r\n for (var i = 0; i < 8; i++) {\r\n C_[i] = C[i];\r\n }\r\n\r\n // Calculate new counter values\r\n C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\r\n C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\r\n C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\r\n C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\r\n C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\r\n C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\r\n C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\r\n C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\r\n this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\r\n\r\n // Calculate the g-values\r\n for (var i = 0; i < 8; i++) {\r\n var gx = X[i] + C[i];\r\n\r\n // Construct high and low argument for squaring\r\n var ga = gx & 0xffff;\r\n var gb = gx >>> 16;\r\n\r\n // Calculate high and low result of squaring\r\n var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\r\n var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\r\n\r\n // High XOR low\r\n G[i] = gh ^ gl;\r\n }\r\n\r\n // Calculate new state values\r\n X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\r\n X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\r\n X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\r\n X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\r\n X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\r\n X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\r\n X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\r\n X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\r\n }\r\n\r\n\t /**\r\n\t * Shortcut functions to the cipher's object interface.\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\r\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\r\n\t */\r\n C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\r\n }());\r\n\r\n\r\n\t/**\r\n\t * Zero padding strategy.\r\n\t */\r\n CryptoJS.pad.ZeroPadding = {\r\n pad: function (data, blockSize) {\r\n // Shortcut\r\n var blockSizeBytes = blockSize * 4;\r\n\r\n // Pad\r\n data.clamp();\r\n data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\r\n },\r\n\r\n unpad: function (data) {\r\n // Shortcut\r\n var dataWords = data.words;\r\n\r\n // Unpad\r\n var i = data.sigBytes - 1;\r\n while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\r\n i--;\r\n }\r\n data.sigBytes = i + 1;\r\n }\r\n };\r\n\r\n\r\n return CryptoJS;\r\n\r\n}));\n; (function (root, factory) {\r\n if (typeof exports === \"object\") {\r\n // CommonJS\r\n module.exports = exports = factory(require(\"./core\"));\r\n }\r\n else if (typeof define === \"function\" && define.amd) {\r\n // AMD\r\n define([\"./core\"], factory);\r\n }\r\n else {\r\n // Global (browser)\r\n factory(root.CryptoJS);\r\n }\r\n}(this, function (CryptoJS) {\r\n\r\n (function (Math) {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var WordArray = C_lib.WordArray;\r\n var Hasher = C_lib.Hasher;\r\n var C_algo = C.algo;\r\n\r\n // Constants table\r\n var T = [];\r\n\r\n // Compute constants\r\n (function () {\r\n for (var i = 0; i < 64; i++) {\r\n T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\r\n }\r\n }());\r\n\r\n\t /**\r\n\t * MD5 hash algorithm.\r\n\t */\r\n var MD5 = C_algo.MD5 = Hasher.extend({\r\n _doReset: function () {\r\n this._hash = new WordArray.init([\r\n 0x67452301, 0xefcdab89,\r\n 0x98badcfe, 0x10325476\r\n ]);\r\n },\r\n\r\n _doProcessBlock: function (M, offset) {\r\n // Swap endian\r\n for (var i = 0; i < 16; i++) {\r\n // Shortcuts\r\n var offset_i = offset + i;\r\n var M_offset_i = M[offset_i];\r\n\r\n M[offset_i] = (\r\n (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\r\n (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\r\n );\r\n }\r\n\r\n // Shortcuts\r\n var H = this._hash.words;\r\n\r\n var M_offset_0 = M[offset + 0];\r\n var M_offset_1 = M[offset + 1];\r\n var M_offset_2 = M[offset + 2];\r\n var M_offset_3 = M[offset + 3];\r\n var M_offset_4 = M[offset + 4];\r\n var M_offset_5 = M[offset + 5];\r\n var M_offset_6 = M[offset + 6];\r\n var M_offset_7 = M[offset + 7];\r\n var M_offset_8 = M[offset + 8];\r\n var M_offset_9 = M[offset + 9];\r\n var M_offset_10 = M[offset + 10];\r\n var M_offset_11 = M[offset + 11];\r\n var M_offset_12 = M[offset + 12];\r\n var M_offset_13 = M[offset + 13];\r\n var M_offset_14 = M[offset + 14];\r\n var M_offset_15 = M[offset + 15];\r\n\r\n // Working varialbes\r\n var a = H[0];\r\n var b = H[1];\r\n var c = H[2];\r\n var d = H[3];\r\n\r\n // Computation\r\n a = FF(a, b, c, d, M_offset_0, 7, T[0]);\r\n d = FF(d, a, b, c, M_offset_1, 12, T[1]);\r\n c = FF(c, d, a, b, M_offset_2, 17, T[2]);\r\n b = FF(b, c, d, a, M_offset_3, 22, T[3]);\r\n a = FF(a, b, c, d, M_offset_4, 7, T[4]);\r\n d = FF(d, a, b, c, M_offset_5, 12, T[5]);\r\n c = FF(c, d, a, b, M_offset_6, 17, T[6]);\r\n b = FF(b, c, d, a, M_offset_7, 22, T[7]);\r\n a = FF(a, b, c, d, M_offset_8, 7, T[8]);\r\n d = FF(d, a, b, c, M_offset_9, 12, T[9]);\r\n c = FF(c, d, a, b, M_offset_10, 17, T[10]);\r\n b = FF(b, c, d, a, M_offset_11, 22, T[11]);\r\n a = FF(a, b, c, d, M_offset_12, 7, T[12]);\r\n d = FF(d, a, b, c, M_offset_13, 12, T[13]);\r\n c = FF(c, d, a, b, M_offset_14, 17, T[14]);\r\n b = FF(b, c, d, a, M_offset_15, 22, T[15]);\r\n\r\n a = GG(a, b, c, d, M_offset_1, 5, T[16]);\r\n d = GG(d, a, b, c, M_offset_6, 9, T[17]);\r\n c = GG(c, d, a, b, M_offset_11, 14, T[18]);\r\n b = GG(b, c, d, a, M_offset_0, 20, T[19]);\r\n a = GG(a, b, c, d, M_offset_5, 5, T[20]);\r\n d = GG(d, a, b, c, M_offset_10, 9, T[21]);\r\n c = GG(c, d, a, b, M_offset_15, 14, T[22]);\r\n b = GG(b, c, d, a, M_offset_4, 20, T[23]);\r\n a = GG(a, b, c, d, M_offset_9, 5, T[24]);\r\n d = GG(d, a, b, c, M_offset_14, 9, T[25]);\r\n c = GG(c, d, a, b, M_offset_3, 14, T[26]);\r\n b = GG(b, c, d, a, M_offset_8, 20, T[27]);\r\n a = GG(a, b, c, d, M_offset_13, 5, T[28]);\r\n d = GG(d, a, b, c, M_offset_2, 9, T[29]);\r\n c = GG(c, d, a, b, M_offset_7, 14, T[30]);\r\n b = GG(b, c, d, a, M_offset_12, 20, T[31]);\r\n\r\n a = HH(a, b, c, d, M_offset_5, 4, T[32]);\r\n d = HH(d, a, b, c, M_offset_8, 11, T[33]);\r\n c = HH(c, d, a, b, M_offset_11, 16, T[34]);\r\n b = HH(b, c, d, a, M_offset_14, 23, T[35]);\r\n a = HH(a, b, c, d, M_offset_1, 4, T[36]);\r\n d = HH(d, a, b, c, M_offset_4, 11, T[37]);\r\n c = HH(c, d, a, b, M_offset_7, 16, T[38]);\r\n b = HH(b, c, d, a, M_offset_10, 23, T[39]);\r\n a = HH(a, b, c, d, M_offset_13, 4, T[40]);\r\n d = HH(d, a, b, c, M_offset_0, 11, T[41]);\r\n c = HH(c, d, a, b, M_offset_3, 16, T[42]);\r\n b = HH(b, c, d, a, M_offset_6, 23, T[43]);\r\n a = HH(a, b, c, d, M_offset_9, 4, T[44]);\r\n d = HH(d, a, b, c, M_offset_12, 11, T[45]);\r\n c = HH(c, d, a, b, M_offset_15, 16, T[46]);\r\n b = HH(b, c, d, a, M_offset_2, 23, T[47]);\r\n\r\n a = II(a, b, c, d, M_offset_0, 6, T[48]);\r\n d = II(d, a, b, c, M_offset_7, 10, T[49]);\r\n c = II(c, d, a, b, M_offset_14, 15, T[50]);\r\n b = II(b, c, d, a, M_offset_5, 21, T[51]);\r\n a = II(a, b, c, d, M_offset_12, 6, T[52]);\r\n d = II(d, a, b, c, M_offset_3, 10, T[53]);\r\n c = II(c, d, a, b, M_offset_10, 15, T[54]);\r\n b = II(b, c, d, a, M_offset_1, 21, T[55]);\r\n a = II(a, b, c, d, M_offset_8, 6, T[56]);\r\n d = II(d, a, b, c, M_offset_15, 10, T[57]);\r\n c = II(c, d, a, b, M_offset_6, 15, T[58]);\r\n b = II(b, c, d, a, M_offset_13, 21, T[59]);\r\n a = II(a, b, c, d, M_offset_4, 6, T[60]);\r\n d = II(d, a, b, c, M_offset_11, 10, T[61]);\r\n c = II(c, d, a, b, M_offset_2, 15, T[62]);\r\n b = II(b, c, d, a, M_offset_9, 21, T[63]);\r\n\r\n // Intermediate hash value\r\n H[0] = (H[0] + a) | 0;\r\n H[1] = (H[1] + b) | 0;\r\n H[2] = (H[2] + c) | 0;\r\n H[3] = (H[3] + d) | 0;\r\n },\r\n\r\n _doFinalize: function () {\r\n // Shortcuts\r\n var data = this._data;\r\n var dataWords = data.words;\r\n\r\n var nBitsTotal = this._nDataBytes * 8;\r\n var nBitsLeft = data.sigBytes * 8;\r\n\r\n // Add padding\r\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\r\n\r\n var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\r\n var nBitsTotalL = nBitsTotal;\r\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\r\n (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\r\n (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\r\n );\r\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\r\n (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\r\n (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\r\n );\r\n\r\n data.sigBytes = (dataWords.length + 1) * 4;\r\n\r\n // Hash final blocks\r\n this._process();\r\n\r\n // Shortcuts\r\n var hash = this._hash;\r\n var H = hash.words;\r\n\r\n // Swap endian\r\n for (var i = 0; i < 4; i++) {\r\n // Shortcut\r\n var H_i = H[i];\r\n\r\n H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\r\n (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\r\n }\r\n\r\n // Return final computed hash\r\n return hash;\r\n },\r\n\r\n clone: function () {\r\n var clone = Hasher.clone.call(this);\r\n clone._hash = this._hash.clone();\r\n\r\n return clone;\r\n }\r\n });\r\n\r\n function FF(a, b, c, d, x, s, t) {\r\n var n = a + ((b & c) | (~b & d)) + x + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n }\r\n\r\n function GG(a, b, c, d, x, s, t) {\r\n var n = a + ((b & d) | (c & ~d)) + x + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n }\r\n\r\n function HH(a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + x + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n }\r\n\r\n function II(a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + x + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n }\r\n\r\n\t /**\r\n\t * Shortcut function to the hasher's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t *\r\n\t * @return {WordArray} The hash.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hash = CryptoJS.MD5('message');\r\n\t * var hash = CryptoJS.MD5(wordArray);\r\n\t */\r\n C.MD5 = Hasher._createHelper(MD5);\r\n\r\n\t /**\r\n\t * Shortcut function to the HMAC's object interface.\r\n\t *\r\n\t * @param {WordArray|string} message The message to hash.\r\n\t * @param {WordArray|string} key The secret key.\r\n\t *\r\n\t * @return {WordArray} The HMAC.\r\n\t *\r\n\t * @static\r\n\t *\r\n\t * @example\r\n\t *\r\n\t * var hmac = CryptoJS.HmacMD5(message, key);\r\n\t */\r\n C.HmacMD5 = Hasher._createHmacHelper(MD5);\r\n }(Math));\r\n\r\n\r\n return CryptoJS.MD5;\r\n\r\n}));\n/*--------------------------------------------------------------------------\r\n * linq.js - LINQ for JavaScript\r\n * licensed under MIT License\r\n *------------------------------------------------------------------------*/\r\n\r\n(function (root, undefined) {\r\n // ReadOnly Function\r\n var Functions = {\r\n Identity: function (x) { return x; },\r\n True: function () { return true; },\r\n Blank: function () { }\r\n };\r\n\r\n // const Type\r\n var Types = {\r\n Boolean: typeof true,\r\n Number: typeof 0,\r\n String: typeof \"\",\r\n Object: typeof {},\r\n Undefined: typeof undefined,\r\n Function: typeof function () { }\r\n };\r\n\r\n // createLambda cache\r\n var funcCache = { \"\": Functions.Identity };\r\n\r\n // private utility methods\r\n var Utils = {\r\n // Create anonymous function from lambda expression string\r\n createLambda: function (expression) {\r\n if (expression == null) return Functions.Identity;\r\n if (typeof expression === Types.String) {\r\n // get from cache\r\n var f = funcCache[expression];\r\n if (f != null) {\r\n return f;\r\n }\r\n\r\n if (expression.indexOf(\"=>\") === -1) {\r\n var regexp = new RegExp(\"[$]+\", \"g\");\r\n\r\n var maxLength = 0;\r\n var match;\r\n while ((match = regexp.exec(expression)) != null) {\r\n var paramNumber = match[0].length;\r\n if (paramNumber > maxLength) {\r\n maxLength = paramNumber;\r\n }\r\n }\r\n\r\n var argArray = [];\r\n for (var i = 1; i <= maxLength; i++) {\r\n var dollar = \"\";\r\n for (var j = 0; j < i; j++) {\r\n dollar += \"$\";\r\n }\r\n argArray.push(dollar);\r\n }\r\n\r\n var args = Array.prototype.join.call(argArray, \",\");\r\n\r\n f = new Function(args, \"return \" + expression);\r\n funcCache[expression] = f;\r\n return f;\r\n }\r\n else {\r\n var expr = expression.match(/^[(\\s]*([^()]*?)[)\\s]*=>(.*)/);\r\n f = new Function(expr[1], \"return \" + expr[2]);\r\n funcCache[expression] = f;\r\n return f;\r\n }\r\n }\r\n return expression;\r\n },\r\n\r\n isIEnumerable: function (obj) {\r\n if (typeof Enumerator !== Types.Undefined) {\r\n try {\r\n new Enumerator(obj); // check JScript(IE)'s Enumerator\r\n return true;\r\n }\r\n catch (e) { }\r\n }\r\n\r\n return false;\r\n },\r\n\r\n // IE8's defineProperty is defined but cannot use, therefore check defineProperties\r\n defineProperty: (Object.defineProperties != null)\r\n ? function (target, methodName, value) {\r\n Object.defineProperty(target, methodName, {\r\n enumerable: false,\r\n configurable: true,\r\n writable: true,\r\n value: value\r\n })\r\n }\r\n : function (target, methodName, value) {\r\n target[methodName] = value;\r\n },\r\n\r\n compare: function (a, b) {\r\n return (a === b) ? 0\r\n : (a > b) ? 1\r\n : -1;\r\n },\r\n\r\n dispose: function (obj) {\r\n if (obj != null) obj.dispose();\r\n }\r\n };\r\n\r\n // IEnumerator State\r\n var State = { Before: 0, Running: 1, After: 2 };\r\n\r\n // \"Enumerator\" is conflict JScript's \"Enumerator\"\r\n var IEnumerator = function (initialize, tryGetNext, dispose) {\r\n var yielder = new Yielder();\r\n var state = State.Before;\r\n\r\n this.current = yielder.current;\r\n\r\n this.moveNext = function () {\r\n try {\r\n switch (state) {\r\n case State.Before:\r\n state = State.Running;\r\n initialize();\r\n // fall through\r\n case State.Running:\r\n if (tryGetNext.apply(yielder)) {\r\n return true;\r\n }\r\n else {\r\n this.dispose();\r\n return false;\r\n }\r\n case State.After:\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n this.dispose();\r\n throw e;\r\n }\r\n };\r\n\r\n this.dispose = function () {\r\n if (state != State.Running) return;\r\n\r\n try {\r\n dispose();\r\n }\r\n finally {\r\n state = State.After;\r\n }\r\n };\r\n };\r\n\r\n // for tryGetNext\r\n var Yielder = function () {\r\n var current = null;\r\n this.current = function () { return current; };\r\n this.yieldReturn = function (value) {\r\n current = value;\r\n return true;\r\n };\r\n this.yieldBreak = function () {\r\n return false;\r\n };\r\n };\r\n\r\n // Enumerable constuctor\r\n var Enumerable = function (getEnumerator) {\r\n this.getEnumerator = getEnumerator;\r\n };\r\n\r\n // Utility\r\n\r\n Enumerable.Utils = {}; // container\r\n\r\n Enumerable.Utils.createLambda = function (expression) {\r\n return Utils.createLambda(expression);\r\n };\r\n\r\n Enumerable.Utils.createEnumerable = function (getEnumerator) {\r\n return new Enumerable(getEnumerator);\r\n };\r\n\r\n Enumerable.Utils.createEnumerator = function (initialize, tryGetNext, dispose) {\r\n return new IEnumerator(initialize, tryGetNext, dispose);\r\n };\r\n\r\n Enumerable.Utils.extendTo = function (type) {\r\n var typeProto = type.prototype;\r\n var enumerableProto;\r\n\r\n if (type === Array) {\r\n enumerableProto = ArrayEnumerable.prototype;\r\n Utils.defineProperty(typeProto, \"getSource\", function () {\r\n return this;\r\n });\r\n }\r\n else {\r\n enumerableProto = Enumerable.prototype;\r\n Utils.defineProperty(typeProto, \"getEnumerator\", function () {\r\n return Enumerable.from(this).getEnumerator();\r\n });\r\n }\r\n\r\n for (var methodName in enumerableProto) {\r\n var func = enumerableProto[methodName];\r\n\r\n // already extended\r\n if (typeProto[methodName] == func) continue;\r\n\r\n // already defined(example Array#reverse/join/forEach...)\r\n if (typeProto[methodName] != null) {\r\n methodName = methodName + \"ByLinq\";\r\n if (typeProto[methodName] == func) continue; // recheck\r\n }\r\n\r\n if (func instanceof Function) {\r\n Utils.defineProperty(typeProto, methodName, func);\r\n }\r\n }\r\n };\r\n\r\n // Generator\r\n\r\n Enumerable.choice = function () // variable argument\r\n {\r\n var args = arguments;\r\n\r\n return new Enumerable(function () {\r\n return new IEnumerator(\r\n function () {\r\n args = (args[0] instanceof Array) ? args[0]\r\n : (args[0].getEnumerator != null) ? args[0].toArray()\r\n : args;\r\n },\r\n function () {\r\n return this.yieldReturn(args[Math.floor(Math.random() * args.length)]);\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.cycle = function () // variable argument\r\n {\r\n var args = arguments;\r\n\r\n return new Enumerable(function () {\r\n var index = 0;\r\n return new IEnumerator(\r\n function () {\r\n args = (args[0] instanceof Array) ? args[0]\r\n : (args[0].getEnumerator != null) ? args[0].toArray()\r\n : args;\r\n },\r\n function () {\r\n if (index >= args.length) index = 0;\r\n return this.yieldReturn(args[index++]);\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.empty = function () {\r\n return new Enumerable(function () {\r\n return new IEnumerator(\r\n Functions.Blank,\r\n function () { return false; },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.from = function (obj) {\r\n if (obj == null) {\r\n return Enumerable.empty();\r\n }\r\n if (obj instanceof Enumerable) {\r\n return obj;\r\n }\r\n if (typeof obj == Types.Number || typeof obj == Types.Boolean) {\r\n return Enumerable.repeat(obj, 1);\r\n }\r\n if (typeof obj == Types.String) {\r\n return new Enumerable(function () {\r\n var index = 0;\r\n return new IEnumerator(\r\n Functions.Blank,\r\n function () {\r\n return (index < obj.length) ? this.yieldReturn(obj.charAt(index++)) : false;\r\n },\r\n Functions.Blank);\r\n });\r\n }\r\n if (typeof obj != Types.Function) {\r\n // array or array like object\r\n if (typeof obj.length == Types.Number) {\r\n return new ArrayEnumerable(obj);\r\n }\r\n\r\n // JScript's IEnumerable\r\n if (!(obj instanceof Object) && Utils.isIEnumerable(obj)) {\r\n return new Enumerable(function () {\r\n var isFirst = true;\r\n var enumerator;\r\n return new IEnumerator(\r\n function () { enumerator = new Enumerator(obj); },\r\n function () {\r\n if (isFirst) isFirst = false;\r\n else enumerator.moveNext();\r\n\r\n return (enumerator.atEnd()) ? false : this.yieldReturn(enumerator.item());\r\n },\r\n Functions.Blank);\r\n });\r\n }\r\n\r\n // WinMD IIterable\r\n if (typeof Windows === Types.Object && typeof obj.first === Types.Function) {\r\n return new Enumerable(function () {\r\n var isFirst = true;\r\n var enumerator;\r\n return new IEnumerator(\r\n function () { enumerator = obj.first(); },\r\n function () {\r\n if (isFirst) isFirst = false;\r\n else enumerator.moveNext();\r\n\r\n return (enumerator.hasCurrent) ? this.yieldReturn(enumerator.current) : this.yieldBreak();\r\n },\r\n Functions.Blank);\r\n });\r\n }\r\n }\r\n\r\n // case function/object : Create keyValuePair[]\r\n return new Enumerable(function () {\r\n var array = [];\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n for (var key in obj) {\r\n var value = obj[key];\r\n if (!(value instanceof Function) && Object.prototype.hasOwnProperty.call(obj, key)) {\r\n array.push({ key: key, value: value });\r\n }\r\n }\r\n },\r\n function () {\r\n return (index < array.length)\r\n ? this.yieldReturn(array[index++])\r\n : false;\r\n },\r\n Functions.Blank);\r\n });\r\n },\r\n\r\n Enumerable.make = function (element) {\r\n return Enumerable.repeat(element, 1);\r\n };\r\n\r\n // Overload:function(input, pattern)\r\n // Overload:function(input, pattern, flags)\r\n Enumerable.matches = function (input, pattern, flags) {\r\n if (flags == null) flags = \"\";\r\n if (pattern instanceof RegExp) {\r\n flags += (pattern.ignoreCase) ? \"i\" : \"\";\r\n flags += (pattern.multiline) ? \"m\" : \"\";\r\n pattern = pattern.source;\r\n }\r\n if (flags.indexOf(\"g\") === -1) flags += \"g\";\r\n\r\n return new Enumerable(function () {\r\n var regex;\r\n return new IEnumerator(\r\n function () { regex = new RegExp(pattern, flags); },\r\n function () {\r\n var match = regex.exec(input);\r\n return (match) ? this.yieldReturn(match) : false;\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n // Overload:function(start, count)\r\n // Overload:function(start, count, step)\r\n Enumerable.range = function (start, count, step) {\r\n if (step == null) step = 1;\r\n\r\n return new Enumerable(function () {\r\n var value;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { value = start - step; },\r\n function () {\r\n return (index++ < count)\r\n ? this.yieldReturn(value += step)\r\n : this.yieldBreak();\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n // Overload:function(start, count)\r\n // Overload:function(start, count, step)\r\n Enumerable.rangeDown = function (start, count, step) {\r\n if (step == null) step = 1;\r\n\r\n return new Enumerable(function () {\r\n var value;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { value = start + step; },\r\n function () {\r\n return (index++ < count)\r\n ? this.yieldReturn(value -= step)\r\n : this.yieldBreak();\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n // Overload:function(start, to)\r\n // Overload:function(start, to, step)\r\n Enumerable.rangeTo = function (start, to, step) {\r\n if (step == null) step = 1;\r\n\r\n if (start < to) {\r\n return new Enumerable(function () {\r\n var value;\r\n\r\n return new IEnumerator(\r\n function () { value = start - step; },\r\n function () {\r\n var next = value += step;\r\n return (next <= to)\r\n ? this.yieldReturn(next)\r\n : this.yieldBreak();\r\n },\r\n Functions.Blank);\r\n });\r\n }\r\n else {\r\n return new Enumerable(function () {\r\n var value;\r\n\r\n return new IEnumerator(\r\n function () { value = start + step; },\r\n function () {\r\n var next = value -= step;\r\n return (next >= to)\r\n ? this.yieldReturn(next)\r\n : this.yieldBreak();\r\n },\r\n Functions.Blank);\r\n });\r\n }\r\n };\r\n\r\n // Overload:function(element)\r\n // Overload:function(element, count)\r\n Enumerable.repeat = function (element, count) {\r\n if (count != null) return Enumerable.repeat(element).take(count);\r\n\r\n return new Enumerable(function () {\r\n return new IEnumerator(\r\n Functions.Blank,\r\n function () { return this.yieldReturn(element); },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.repeatWithFinalize = function (initializer, finalizer) {\r\n initializer = Utils.createLambda(initializer);\r\n finalizer = Utils.createLambda(finalizer);\r\n\r\n return new Enumerable(function () {\r\n var element;\r\n return new IEnumerator(\r\n function () { element = initializer(); },\r\n function () { return this.yieldReturn(element); },\r\n function () {\r\n if (element != null) {\r\n finalizer(element);\r\n element = null;\r\n }\r\n });\r\n });\r\n };\r\n\r\n // Overload:function(func)\r\n // Overload:function(func, count)\r\n Enumerable.generate = function (func, count) {\r\n if (count != null) return Enumerable.generate(func).take(count);\r\n func = Utils.createLambda(func);\r\n\r\n return new Enumerable(function () {\r\n return new IEnumerator(\r\n Functions.Blank,\r\n function () { return this.yieldReturn(func()); },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(start)\r\n // Overload:function(start, step)\r\n Enumerable.toInfinity = function (start, step) {\r\n if (start == null) start = 0;\r\n if (step == null) step = 1;\r\n\r\n return new Enumerable(function () {\r\n var value;\r\n return new IEnumerator(\r\n function () { value = start - step; },\r\n function () { return this.yieldReturn(value += step); },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(start)\r\n // Overload:function(start, step)\r\n Enumerable.toNegativeInfinity = function (start, step) {\r\n if (start == null) start = 0;\r\n if (step == null) step = 1;\r\n\r\n return new Enumerable(function () {\r\n var value;\r\n return new IEnumerator(\r\n function () { value = start + step; },\r\n function () { return this.yieldReturn(value -= step); },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.unfold = function (seed, func) {\r\n func = Utils.createLambda(func);\r\n\r\n return new Enumerable(function () {\r\n var isFirst = true;\r\n var value;\r\n return new IEnumerator(\r\n Functions.Blank,\r\n function () {\r\n if (isFirst) {\r\n isFirst = false;\r\n value = seed;\r\n return this.yieldReturn(value);\r\n }\r\n value = func(value);\r\n return this.yieldReturn(value);\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.defer = function (enumerableFactory) {\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = Enumerable.from(enumerableFactory()).getEnumerator(); },\r\n function () {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.current())\r\n : this.yieldBreak();\r\n },\r\n function () {\r\n Utils.dispose(enumerator);\r\n });\r\n });\r\n };\r\n\r\n // Extension Methods\r\n\r\n /* Projection and Filtering Methods */\r\n\r\n // Overload:function(func)\r\n // Overload:function(func, resultSelector)\r\n // Overload:function(func, resultSelector)\r\n Enumerable.prototype.traverseBreadthFirst = function (func, resultSelector) {\r\n var source = this;\r\n func = Utils.createLambda(func);\r\n resultSelector = Utils.createLambda(resultSelector);\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var nestLevel = 0;\r\n var buffer = [];\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n while (true) {\r\n if (enumerator.moveNext()) {\r\n buffer.push(enumerator.current());\r\n return this.yieldReturn(resultSelector(enumerator.current(), nestLevel));\r\n }\r\n\r\n var next = Enumerable.from(buffer).selectMany(function (x) { return func(x); });\r\n if (!next.any()) {\r\n return false;\r\n }\r\n else {\r\n nestLevel++;\r\n buffer = [];\r\n Utils.dispose(enumerator);\r\n enumerator = next.getEnumerator();\r\n }\r\n }\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function(func)\r\n // Overload:function(func, resultSelector)\r\n // Overload:function(func, resultSelector)\r\n Enumerable.prototype.traverseDepthFirst = function (func, resultSelector) {\r\n var source = this;\r\n func = Utils.createLambda(func);\r\n resultSelector = Utils.createLambda(resultSelector);\r\n\r\n return new Enumerable(function () {\r\n var enumeratorStack = [];\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n while (true) {\r\n if (enumerator.moveNext()) {\r\n var value = resultSelector(enumerator.current(), enumeratorStack.length);\r\n enumeratorStack.push(enumerator);\r\n enumerator = Enumerable.from(func(enumerator.current())).getEnumerator();\r\n return this.yieldReturn(value);\r\n }\r\n\r\n if (enumeratorStack.length <= 0) return false;\r\n Utils.dispose(enumerator);\r\n enumerator = enumeratorStack.pop();\r\n }\r\n },\r\n function () {\r\n try {\r\n Utils.dispose(enumerator);\r\n }\r\n finally {\r\n Enumerable.from(enumeratorStack).forEach(function (s) { s.dispose(); });\r\n }\r\n });\r\n });\r\n };\r\n\r\n Enumerable.prototype.flatten = function () {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var middleEnumerator = null;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n while (true) {\r\n if (middleEnumerator != null) {\r\n if (middleEnumerator.moveNext()) {\r\n return this.yieldReturn(middleEnumerator.current());\r\n }\r\n else {\r\n middleEnumerator = null;\r\n }\r\n }\r\n\r\n if (enumerator.moveNext()) {\r\n if (enumerator.current() instanceof Array) {\r\n Utils.dispose(middleEnumerator);\r\n middleEnumerator = Enumerable.from(enumerator.current())\r\n .selectMany(Functions.Identity)\r\n .flatten()\r\n .getEnumerator();\r\n continue;\r\n }\r\n else {\r\n return this.yieldReturn(enumerator.current());\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n },\r\n function () {\r\n try {\r\n Utils.dispose(enumerator);\r\n }\r\n finally {\r\n Utils.dispose(middleEnumerator);\r\n }\r\n });\r\n });\r\n };\r\n\r\n Enumerable.prototype.pairwise = function (selector) {\r\n var source = this;\r\n selector = Utils.createLambda(selector);\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.getEnumerator();\r\n enumerator.moveNext();\r\n },\r\n function () {\r\n var prev = enumerator.current();\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(selector(prev, enumerator.current()))\r\n : false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function(func)\r\n // Overload:function(seed,func)\r\n Enumerable.prototype.scan = function (seed, func) {\r\n var isUseSeed;\r\n if (func == null) {\r\n func = Utils.createLambda(seed); // arguments[0]\r\n isUseSeed = false;\r\n } else {\r\n func = Utils.createLambda(func);\r\n isUseSeed = true;\r\n }\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var value;\r\n var isFirst = true;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n if (isFirst) {\r\n isFirst = false;\r\n if (!isUseSeed) {\r\n if (enumerator.moveNext()) {\r\n return this.yieldReturn(value = enumerator.current());\r\n }\r\n }\r\n else {\r\n return this.yieldReturn(value = seed);\r\n }\r\n }\r\n\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(value = func(value, enumerator.current()))\r\n : false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function(selector)\r\n // Overload:function(selector)\r\n Enumerable.prototype.select = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n\r\n if (selector.length <= 1) {\r\n return new WhereSelectEnumerable(this, null, selector);\r\n }\r\n else {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(selector(enumerator.current(), index++))\r\n : false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n }\r\n };\r\n\r\n // Overload:function(collectionSelector)\r\n // Overload:function(collectionSelector)\r\n // Overload:function(collectionSelector,resultSelector)\r\n // Overload:function(collectionSelector,resultSelector)\r\n Enumerable.prototype.selectMany = function (collectionSelector, resultSelector) {\r\n var source = this;\r\n collectionSelector = Utils.createLambda(collectionSelector);\r\n if (resultSelector == null) resultSelector = function (a, b) { return b; };\r\n resultSelector = Utils.createLambda(resultSelector);\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var middleEnumerator = undefined;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n if (middleEnumerator === undefined) {\r\n if (!enumerator.moveNext()) return false;\r\n }\r\n do {\r\n if (middleEnumerator == null) {\r\n var middleSeq = collectionSelector(enumerator.current(), index++);\r\n middleEnumerator = Enumerable.from(middleSeq).getEnumerator();\r\n }\r\n if (middleEnumerator.moveNext()) {\r\n return this.yieldReturn(resultSelector(enumerator.current(), middleEnumerator.current()));\r\n }\r\n Utils.dispose(middleEnumerator);\r\n middleEnumerator = null;\r\n } while (enumerator.moveNext());\r\n return false;\r\n },\r\n function () {\r\n try {\r\n Utils.dispose(enumerator);\r\n }\r\n finally {\r\n Utils.dispose(middleEnumerator);\r\n }\r\n });\r\n });\r\n };\r\n\r\n // Overload:function(predicate)\r\n // Overload:function(predicate)\r\n Enumerable.prototype.where = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n\r\n if (predicate.length <= 1) {\r\n return new WhereEnumerable(this, predicate);\r\n }\r\n else {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n if (predicate(enumerator.current(), index++)) {\r\n return this.yieldReturn(enumerator.current());\r\n }\r\n }\r\n return false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n }\r\n };\r\n\r\n\r\n // Overload:function(selector)\r\n // Overload:function(selector)\r\n Enumerable.prototype.choose = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n var result = selector(enumerator.current(), index++);\r\n if (result != null) {\r\n return this.yieldReturn(result);\r\n }\r\n }\r\n return this.yieldBreak();\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n Enumerable.prototype.ofType = function (type) {\r\n var typeName;\r\n switch (type) {\r\n case Number:\r\n typeName = Types.Number;\r\n break;\r\n case String:\r\n typeName = Types.String;\r\n break;\r\n case Boolean:\r\n typeName = Types.Boolean;\r\n break;\r\n case Function:\r\n typeName = Types.Function;\r\n break;\r\n default:\r\n typeName = null;\r\n break;\r\n }\r\n return (typeName === null)\r\n ? this.where(function (x) { return x instanceof type; })\r\n : this.where(function (x) { return typeof x === typeName; });\r\n };\r\n\r\n // mutiple arguments, last one is selector, others are enumerable\r\n Enumerable.prototype.zip = function () {\r\n var args = arguments;\r\n var selector = Utils.createLambda(arguments[arguments.length - 1]);\r\n\r\n var source = this;\r\n // optimized case:argument is 2\r\n if (arguments.length == 2) {\r\n var second = arguments[0];\r\n\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n firstEnumerator = source.getEnumerator();\r\n secondEnumerator = Enumerable.from(second).getEnumerator();\r\n },\r\n function () {\r\n if (firstEnumerator.moveNext() && secondEnumerator.moveNext()) {\r\n return this.yieldReturn(selector(firstEnumerator.current(), secondEnumerator.current(), index++));\r\n }\r\n return false;\r\n },\r\n function () {\r\n try {\r\n Utils.dispose(firstEnumerator);\r\n } finally {\r\n Utils.dispose(secondEnumerator);\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n return new Enumerable(function () {\r\n var enumerators;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n var array = Enumerable.make(source)\r\n .concat(Enumerable.from(args).takeExceptLast().select(Enumerable.from))\r\n .select(function (x) { return x.getEnumerator() })\r\n .toArray();\r\n enumerators = Enumerable.from(array);\r\n },\r\n function () {\r\n if (enumerators.all(function (x) { return x.moveNext() })) {\r\n var array = enumerators\r\n .select(function (x) { return x.current() })\r\n .toArray();\r\n array.push(index++);\r\n return this.yieldReturn(selector.apply(null, array));\r\n }\r\n else {\r\n return this.yieldBreak();\r\n }\r\n },\r\n function () {\r\n Enumerable.from(enumerators).forEach(Utils.dispose);\r\n });\r\n });\r\n }\r\n };\r\n\r\n // mutiple arguments\r\n Enumerable.prototype.merge = function () {\r\n var args = arguments;\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerators;\r\n var index = -1;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerators = Enumerable.make(source)\r\n .concat(Enumerable.from(args).select(Enumerable.from))\r\n .select(function (x) { return x.getEnumerator() })\r\n .toArray();\r\n },\r\n function () {\r\n while (enumerators.length > 0) {\r\n index = (index >= enumerators.length - 1) ? 0 : index + 1;\r\n var enumerator = enumerators[index];\r\n\r\n if (enumerator.moveNext()) {\r\n return this.yieldReturn(enumerator.current());\r\n }\r\n else {\r\n enumerator.dispose();\r\n enumerators.splice(index--, 1);\r\n }\r\n }\r\n return this.yieldBreak();\r\n },\r\n function () {\r\n Enumerable.from(enumerators).forEach(Utils.dispose);\r\n });\r\n });\r\n };\r\n\r\n /* Join Methods */\r\n\r\n // Overload:function (inner, outerKeySelector, innerKeySelector, resultSelector)\r\n // Overload:function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector)\r\n Enumerable.prototype.join = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\r\n outerKeySelector = Utils.createLambda(outerKeySelector);\r\n innerKeySelector = Utils.createLambda(innerKeySelector);\r\n resultSelector = Utils.createLambda(resultSelector);\r\n compareSelector = Utils.createLambda(compareSelector);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var outerEnumerator;\r\n var lookup;\r\n var innerElements = null;\r\n var innerCount = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n outerEnumerator = source.getEnumerator();\r\n lookup = Enumerable.from(inner).toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n },\r\n function () {\r\n while (true) {\r\n if (innerElements != null) {\r\n var innerElement = innerElements[innerCount++];\r\n if (innerElement !== undefined) {\r\n return this.yieldReturn(resultSelector(outerEnumerator.current(), innerElement));\r\n }\r\n\r\n innerElement = null;\r\n innerCount = 0;\r\n }\r\n\r\n if (outerEnumerator.moveNext()) {\r\n var key = outerKeySelector(outerEnumerator.current());\r\n innerElements = lookup.get(key).toArray();\r\n } else {\r\n return false;\r\n }\r\n }\r\n },\r\n function () { Utils.dispose(outerEnumerator); });\r\n });\r\n };\r\n\r\n // Overload:function (inner, outerKeySelector, innerKeySelector, resultSelector)\r\n // Overload:function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector)\r\n Enumerable.prototype.groupJoin = function (inner, outerKeySelector, innerKeySelector, resultSelector, compareSelector) {\r\n outerKeySelector = Utils.createLambda(outerKeySelector);\r\n innerKeySelector = Utils.createLambda(innerKeySelector);\r\n resultSelector = Utils.createLambda(resultSelector);\r\n compareSelector = Utils.createLambda(compareSelector);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator = source.getEnumerator();\r\n var lookup = null;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.getEnumerator();\r\n lookup = Enumerable.from(inner).toLookup(innerKeySelector, Functions.Identity, compareSelector);\r\n },\r\n function () {\r\n if (enumerator.moveNext()) {\r\n var innerElement = lookup.get(outerKeySelector(enumerator.current()));\r\n return this.yieldReturn(resultSelector(enumerator.current(), innerElement));\r\n }\r\n return false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n /* Set Methods */\r\n\r\n Enumerable.prototype.all = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n\r\n var result = true;\r\n this.forEach(function (x) {\r\n if (!predicate(x)) {\r\n result = false;\r\n return false; // break\r\n }\r\n });\r\n return result;\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(predicate)\r\n Enumerable.prototype.any = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n\r\n var enumerator = this.getEnumerator();\r\n try {\r\n if (arguments.length == 0) return enumerator.moveNext(); // case:function()\r\n\r\n while (enumerator.moveNext()) // case:function(predicate)\r\n {\r\n if (predicate(enumerator.current())) return true;\r\n }\r\n return false;\r\n }\r\n finally {\r\n Utils.dispose(enumerator);\r\n }\r\n };\r\n\r\n Enumerable.prototype.isEmpty = function () {\r\n return !this.any();\r\n };\r\n\r\n // multiple arguments\r\n Enumerable.prototype.concat = function () {\r\n var source = this;\r\n\r\n if (arguments.length == 1) {\r\n var second = arguments[0];\r\n\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n\r\n return new IEnumerator(\r\n function () { firstEnumerator = source.getEnumerator(); },\r\n function () {\r\n if (secondEnumerator == null) {\r\n if (firstEnumerator.moveNext()) return this.yieldReturn(firstEnumerator.current());\r\n secondEnumerator = Enumerable.from(second).getEnumerator();\r\n }\r\n if (secondEnumerator.moveNext()) return this.yieldReturn(secondEnumerator.current());\r\n return false;\r\n },\r\n function () {\r\n try {\r\n Utils.dispose(firstEnumerator);\r\n }\r\n finally {\r\n Utils.dispose(secondEnumerator);\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n var args = arguments;\r\n\r\n return new Enumerable(function () {\r\n var enumerators;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerators = Enumerable.make(source)\r\n .concat(Enumerable.from(args).select(Enumerable.from))\r\n .select(function (x) { return x.getEnumerator() })\r\n .toArray();\r\n },\r\n function () {\r\n while (enumerators.length > 0) {\r\n var enumerator = enumerators[0];\r\n\r\n if (enumerator.moveNext()) {\r\n return this.yieldReturn(enumerator.current());\r\n }\r\n else {\r\n enumerator.dispose();\r\n enumerators.splice(0, 1);\r\n }\r\n }\r\n return this.yieldBreak();\r\n },\r\n function () {\r\n Enumerable.from(enumerators).forEach(Utils.dispose);\r\n });\r\n });\r\n }\r\n };\r\n\r\n Enumerable.prototype.insert = function (index, second) {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var count = 0;\r\n var isEnumerated = false;\r\n\r\n return new IEnumerator(\r\n function () {\r\n firstEnumerator = source.getEnumerator();\r\n secondEnumerator = Enumerable.from(second).getEnumerator();\r\n },\r\n function () {\r\n if (count == index && secondEnumerator.moveNext()) {\r\n isEnumerated = true;\r\n return this.yieldReturn(secondEnumerator.current());\r\n }\r\n if (firstEnumerator.moveNext()) {\r\n count++;\r\n return this.yieldReturn(firstEnumerator.current());\r\n }\r\n if (!isEnumerated && secondEnumerator.moveNext()) {\r\n return this.yieldReturn(secondEnumerator.current());\r\n }\r\n return false;\r\n },\r\n function () {\r\n try {\r\n Utils.dispose(firstEnumerator);\r\n }\r\n finally {\r\n Utils.dispose(secondEnumerator);\r\n }\r\n });\r\n });\r\n };\r\n\r\n Enumerable.prototype.alternate = function (alternateValueOrSequence) {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var buffer;\r\n var enumerator;\r\n var alternateSequence;\r\n var alternateEnumerator;\r\n\r\n return new IEnumerator(\r\n function () {\r\n if (alternateValueOrSequence instanceof Array || alternateValueOrSequence.getEnumerator != null) {\r\n alternateSequence = Enumerable.from(Enumerable.from(alternateValueOrSequence).toArray()); // freeze\r\n }\r\n else {\r\n alternateSequence = Enumerable.make(alternateValueOrSequence);\r\n }\r\n enumerator = source.getEnumerator();\r\n if (enumerator.moveNext()) buffer = enumerator.current();\r\n },\r\n function () {\r\n while (true) {\r\n if (alternateEnumerator != null) {\r\n if (alternateEnumerator.moveNext()) {\r\n return this.yieldReturn(alternateEnumerator.current());\r\n }\r\n else {\r\n alternateEnumerator = null;\r\n }\r\n }\r\n\r\n if (buffer == null && enumerator.moveNext()) {\r\n buffer = enumerator.current(); // hasNext\r\n alternateEnumerator = alternateSequence.getEnumerator();\r\n continue; // GOTO\r\n }\r\n else if (buffer != null) {\r\n var retVal = buffer;\r\n buffer = null;\r\n return this.yieldReturn(retVal);\r\n }\r\n\r\n return this.yieldBreak();\r\n }\r\n },\r\n function () {\r\n try {\r\n Utils.dispose(enumerator);\r\n }\r\n finally {\r\n Utils.dispose(alternateEnumerator);\r\n }\r\n });\r\n });\r\n };\r\n\r\n // Overload:function(value)\r\n // Overload:function(value, compareSelector)\r\n Enumerable.prototype.contains = function (value, compareSelector) {\r\n compareSelector = Utils.createLambda(compareSelector);\r\n var enumerator = this.getEnumerator();\r\n try {\r\n while (enumerator.moveNext()) {\r\n if (compareSelector(enumerator.current()) === value) return true;\r\n }\r\n return false;\r\n }\r\n finally {\r\n Utils.dispose(enumerator);\r\n }\r\n };\r\n\r\n Enumerable.prototype.defaultIfEmpty = function (defaultValue) {\r\n var source = this;\r\n if (defaultValue === undefined) defaultValue = null;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var isFirst = true;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n if (enumerator.moveNext()) {\r\n isFirst = false;\r\n return this.yieldReturn(enumerator.current());\r\n }\r\n else if (isFirst) {\r\n isFirst = false;\r\n return this.yieldReturn(defaultValue);\r\n }\r\n return false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(compareSelector)\r\n Enumerable.prototype.distinct = function (compareSelector) {\r\n return this.except(Enumerable.empty(), compareSelector);\r\n };\r\n\r\n Enumerable.prototype.distinctUntilChanged = function (compareSelector) {\r\n compareSelector = Utils.createLambda(compareSelector);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var compareKey;\r\n var initial;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.getEnumerator();\r\n },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n var key = compareSelector(enumerator.current());\r\n\r\n if (initial) {\r\n initial = false;\r\n compareKey = key;\r\n return this.yieldReturn(enumerator.current());\r\n }\r\n\r\n if (compareKey === key) {\r\n continue;\r\n }\r\n\r\n compareKey = key;\r\n return this.yieldReturn(enumerator.current());\r\n }\r\n return this.yieldBreak();\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function(second)\r\n // Overload:function(second, compareSelector)\r\n Enumerable.prototype.except = function (second, compareSelector) {\r\n compareSelector = Utils.createLambda(compareSelector);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var keys;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.getEnumerator();\r\n keys = new Dictionary(compareSelector);\r\n Enumerable.from(second).forEach(function (key) { keys.add(key); });\r\n },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n var current = enumerator.current();\r\n if (!keys.contains(current)) {\r\n keys.add(current);\r\n return this.yieldReturn(current);\r\n }\r\n }\r\n return false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function(second)\r\n // Overload:function(second, compareSelector)\r\n Enumerable.prototype.intersect = function (second, compareSelector) {\r\n compareSelector = Utils.createLambda(compareSelector);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var keys;\r\n var outs;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.getEnumerator();\r\n\r\n keys = new Dictionary(compareSelector);\r\n Enumerable.from(second).forEach(function (key) { keys.add(key); });\r\n outs = new Dictionary(compareSelector);\r\n },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n var current = enumerator.current();\r\n if (!outs.contains(current) && keys.contains(current)) {\r\n outs.add(current);\r\n return this.yieldReturn(current);\r\n }\r\n }\r\n return false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function(second)\r\n // Overload:function(second, compareSelector)\r\n Enumerable.prototype.sequenceEqual = function (second, compareSelector) {\r\n compareSelector = Utils.createLambda(compareSelector);\r\n\r\n var firstEnumerator = this.getEnumerator();\r\n try {\r\n var secondEnumerator = Enumerable.from(second).getEnumerator();\r\n try {\r\n while (firstEnumerator.moveNext()) {\r\n if (!secondEnumerator.moveNext()\r\n || compareSelector(firstEnumerator.current()) !== compareSelector(secondEnumerator.current())) {\r\n return false;\r\n }\r\n }\r\n\r\n if (secondEnumerator.moveNext()) return false;\r\n return true;\r\n }\r\n finally {\r\n Utils.dispose(secondEnumerator);\r\n }\r\n }\r\n finally {\r\n Utils.dispose(firstEnumerator);\r\n }\r\n };\r\n\r\n Enumerable.prototype.union = function (second, compareSelector) {\r\n compareSelector = Utils.createLambda(compareSelector);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var firstEnumerator;\r\n var secondEnumerator;\r\n var keys;\r\n\r\n return new IEnumerator(\r\n function () {\r\n firstEnumerator = source.getEnumerator();\r\n keys = new Dictionary(compareSelector);\r\n },\r\n function () {\r\n var current;\r\n if (secondEnumerator === undefined) {\r\n while (firstEnumerator.moveNext()) {\r\n current = firstEnumerator.current();\r\n if (!keys.contains(current)) {\r\n keys.add(current);\r\n return this.yieldReturn(current);\r\n }\r\n }\r\n secondEnumerator = Enumerable.from(second).getEnumerator();\r\n }\r\n while (secondEnumerator.moveNext()) {\r\n current = secondEnumerator.current();\r\n if (!keys.contains(current)) {\r\n keys.add(current);\r\n return this.yieldReturn(current);\r\n }\r\n }\r\n return false;\r\n },\r\n function () {\r\n try {\r\n Utils.dispose(firstEnumerator);\r\n }\r\n finally {\r\n Utils.dispose(secondEnumerator);\r\n }\r\n });\r\n });\r\n };\r\n\r\n /* Ordering Methods */\r\n\r\n Enumerable.prototype.orderBy = function (keySelector) {\r\n return new OrderedEnumerable(this, keySelector, false);\r\n };\r\n\r\n Enumerable.prototype.orderByDescending = function (keySelector) {\r\n return new OrderedEnumerable(this, keySelector, true);\r\n };\r\n\r\n Enumerable.prototype.reverse = function () {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var buffer;\r\n var index;\r\n\r\n return new IEnumerator(\r\n function () {\r\n buffer = source.toArray();\r\n index = buffer.length;\r\n },\r\n function () {\r\n return (index > 0)\r\n ? this.yieldReturn(buffer[--index])\r\n : false;\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.prototype.shuffle = function () {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var buffer;\r\n\r\n return new IEnumerator(\r\n function () { buffer = source.toArray(); },\r\n function () {\r\n if (buffer.length > 0) {\r\n var i = Math.floor(Math.random() * buffer.length);\r\n return this.yieldReturn(buffer.splice(i, 1)[0]);\r\n }\r\n return false;\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n Enumerable.prototype.weightedSample = function (weightSelector) {\r\n weightSelector = Utils.createLambda(weightSelector);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var sortedByBound;\r\n var totalWeight = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n sortedByBound = source\r\n .choose(function (x) {\r\n var weight = weightSelector(x);\r\n if (weight <= 0) return null; // ignore 0\r\n\r\n totalWeight += weight;\r\n return { value: x, bound: totalWeight };\r\n })\r\n .toArray();\r\n },\r\n function () {\r\n if (sortedByBound.length > 0) {\r\n var draw = Math.floor(Math.random() * totalWeight) + 1;\r\n\r\n var lower = -1;\r\n var upper = sortedByBound.length;\r\n while (upper - lower > 1) {\r\n var index = Math.floor((lower + upper) / 2);\r\n if (sortedByBound[index].bound >= draw) {\r\n upper = index;\r\n }\r\n else {\r\n lower = index;\r\n }\r\n }\r\n\r\n return this.yieldReturn(sortedByBound[upper].value);\r\n }\r\n\r\n return this.yieldBreak();\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n /* Grouping Methods */\r\n\r\n // Overload:function(keySelector)\r\n // Overload:function(keySelector,elementSelector)\r\n // Overload:function(keySelector,elementSelector,resultSelector)\r\n // Overload:function(keySelector,elementSelector,resultSelector,compareSelector)\r\n Enumerable.prototype.groupBy = function (keySelector, elementSelector, resultSelector, compareSelector) {\r\n var source = this;\r\n keySelector = Utils.createLambda(keySelector);\r\n elementSelector = Utils.createLambda(elementSelector);\r\n if (resultSelector != null) resultSelector = Utils.createLambda(resultSelector);\r\n compareSelector = Utils.createLambda(compareSelector);\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.toLookup(keySelector, elementSelector, compareSelector)\r\n .toEnumerable()\r\n .getEnumerator();\r\n },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n return (resultSelector == null)\r\n ? this.yieldReturn(enumerator.current())\r\n : this.yieldReturn(resultSelector(enumerator.current().key(), enumerator.current()));\r\n }\r\n return false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function(keySelector)\r\n // Overload:function(keySelector,elementSelector)\r\n // Overload:function(keySelector,elementSelector,resultSelector)\r\n // Overload:function(keySelector,elementSelector,resultSelector,compareSelector)\r\n Enumerable.prototype.partitionBy = function (keySelector, elementSelector, resultSelector, compareSelector) {\r\n\r\n var source = this;\r\n keySelector = Utils.createLambda(keySelector);\r\n elementSelector = Utils.createLambda(elementSelector);\r\n compareSelector = Utils.createLambda(compareSelector);\r\n var hasResultSelector;\r\n if (resultSelector == null) {\r\n hasResultSelector = false;\r\n resultSelector = function (key, group) { return new Grouping(key, group); };\r\n }\r\n else {\r\n hasResultSelector = true;\r\n resultSelector = Utils.createLambda(resultSelector);\r\n }\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var key;\r\n var compareKey;\r\n var group = [];\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.getEnumerator();\r\n if (enumerator.moveNext()) {\r\n key = keySelector(enumerator.current());\r\n compareKey = compareSelector(key);\r\n group.push(elementSelector(enumerator.current()));\r\n }\r\n },\r\n function () {\r\n var hasNext;\r\n while ((hasNext = enumerator.moveNext()) == true) {\r\n if (compareKey === compareSelector(keySelector(enumerator.current()))) {\r\n group.push(elementSelector(enumerator.current()));\r\n }\r\n else break;\r\n }\r\n\r\n if (group.length > 0) {\r\n var result = (hasResultSelector)\r\n ? resultSelector(key, Enumerable.from(group))\r\n : resultSelector(key, group);\r\n if (hasNext) {\r\n key = keySelector(enumerator.current());\r\n compareKey = compareSelector(key);\r\n group = [elementSelector(enumerator.current())];\r\n }\r\n else group = [];\r\n\r\n return this.yieldReturn(result);\r\n }\r\n\r\n return false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n Enumerable.prototype.buffer = function (count) {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n var array = [];\r\n var index = 0;\r\n while (enumerator.moveNext()) {\r\n array.push(enumerator.current());\r\n if (++index >= count) return this.yieldReturn(array);\r\n }\r\n if (array.length > 0) return this.yieldReturn(array);\r\n return false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n /* Aggregate Methods */\r\n\r\n // Overload:function(func)\r\n // Overload:function(seed,func)\r\n // Overload:function(seed,func,resultSelector)\r\n Enumerable.prototype.aggregate = function (seed, func, resultSelector) {\r\n resultSelector = Utils.createLambda(resultSelector);\r\n return resultSelector(this.scan(seed, func, resultSelector).last());\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(selector)\r\n Enumerable.prototype.average = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n\r\n var sum = 0;\r\n var count = 0;\r\n this.forEach(function (x) {\r\n sum += selector(x);\r\n ++count;\r\n });\r\n\r\n return sum / count;\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(predicate)\r\n Enumerable.prototype.count = function (predicate) {\r\n predicate = (predicate == null) ? Functions.True : Utils.createLambda(predicate);\r\n\r\n var count = 0;\r\n this.forEach(function (x, i) {\r\n if (predicate(x, i))++count;\r\n });\r\n return count;\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(selector)\r\n Enumerable.prototype.max = function (selector) {\r\n if (selector == null) selector = Functions.Identity;\r\n return this.select(selector).aggregate(function (a, b) { return (a > b) ? a : b; });\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(selector)\r\n Enumerable.prototype.min = function (selector) {\r\n if (selector == null) selector = Functions.Identity;\r\n return this.select(selector).aggregate(function (a, b) { return (a < b) ? a : b; });\r\n };\r\n\r\n Enumerable.prototype.maxBy = function (keySelector) {\r\n keySelector = Utils.createLambda(keySelector);\r\n return this.aggregate(function (a, b) { return (keySelector(a) > keySelector(b)) ? a : b; });\r\n };\r\n\r\n Enumerable.prototype.minBy = function (keySelector) {\r\n keySelector = Utils.createLambda(keySelector);\r\n return this.aggregate(function (a, b) { return (keySelector(a) < keySelector(b)) ? a : b; });\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(selector)\r\n Enumerable.prototype.sum = function (selector) {\r\n if (selector == null) selector = Functions.Identity;\r\n return this.select(selector).aggregate(0, function (a, b) { return a + b; });\r\n };\r\n\r\n /* Paging Methods */\r\n\r\n Enumerable.prototype.elementAt = function (index) {\r\n var value;\r\n var found = false;\r\n this.forEach(function (x, i) {\r\n if (i == index) {\r\n value = x;\r\n found = true;\r\n return false;\r\n }\r\n });\r\n\r\n if (!found) throw new Error(\"index is less than 0 or greater than or equal to the number of elements in source.\");\r\n return value;\r\n };\r\n\r\n Enumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = null;\r\n var value;\r\n var found = false;\r\n this.forEach(function (x, i) {\r\n if (i == index) {\r\n value = x;\r\n found = true;\r\n return false;\r\n }\r\n });\r\n\r\n return (!found) ? defaultValue : value;\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(predicate)\r\n Enumerable.prototype.first = function (predicate) {\r\n if (predicate != null) return this.where(predicate).first();\r\n\r\n var value;\r\n var found = false;\r\n this.forEach(function (x) {\r\n value = x;\r\n found = true;\r\n return false;\r\n });\r\n\r\n if (!found) throw new Error(\"first:No element satisfies the condition.\");\r\n return value;\r\n };\r\n\r\n Enumerable.prototype.firstOrDefault = function (predicate, defaultValue) {\r\n if (predicate !== undefined) {\r\n if (typeof predicate === Types.Function || typeof Utils.createLambda(predicate) === Types.Function) {\r\n return this.where(predicate).firstOrDefault(undefined, defaultValue);\r\n }\r\n defaultValue = predicate;\r\n }\r\n\r\n var value;\r\n var found = false;\r\n this.forEach(function (x) {\r\n value = x;\r\n found = true;\r\n return false;\r\n });\r\n return (!found) ? defaultValue : value;\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(predicate)\r\n Enumerable.prototype.last = function (predicate) {\r\n if (predicate != null) return this.where(predicate).last();\r\n\r\n var value;\r\n var found = false;\r\n this.forEach(function (x) {\r\n found = true;\r\n value = x;\r\n });\r\n\r\n if (!found) throw new Error(\"last:No element satisfies the condition.\");\r\n return value;\r\n };\r\n\r\n Enumerable.prototype.lastOrDefault = function (predicate, defaultValue) {\r\n if (predicate !== undefined) {\r\n if (typeof predicate === Types.Function || typeof Utils.createLambda(predicate) === Types.Function) {\r\n return this.where(predicate).lastOrDefault(undefined, defaultValue);\r\n }\r\n defaultValue = predicate;\r\n }\r\n\r\n var value;\r\n var found = false;\r\n this.forEach(function (x) {\r\n found = true;\r\n value = x;\r\n });\r\n return (!found) ? defaultValue : value;\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(predicate)\r\n Enumerable.prototype.single = function (predicate) {\r\n if (predicate != null) return this.where(predicate).single();\r\n\r\n var value;\r\n var found = false;\r\n this.forEach(function (x) {\r\n if (!found) {\r\n found = true;\r\n value = x;\r\n } else throw new Error(\"single:sequence contains more than one element.\");\r\n });\r\n\r\n if (!found) throw new Error(\"single:No element satisfies the condition.\");\r\n return value;\r\n };\r\n\r\n // Overload:function(defaultValue)\r\n // Overload:function(defaultValue,predicate)\r\n Enumerable.prototype.singleOrDefault = function (predicate, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = null;\r\n if (predicate != null) return this.where(predicate).singleOrDefault(null, defaultValue);\r\n\r\n var value;\r\n var found = false;\r\n this.forEach(function (x) {\r\n if (!found) {\r\n found = true;\r\n value = x;\r\n } else throw new Error(\"single:sequence contains more than one element.\");\r\n });\r\n\r\n return (!found) ? defaultValue : value;\r\n };\r\n\r\n Enumerable.prototype.skip = function (count) {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = source.getEnumerator();\r\n while (index++ < count && enumerator.moveNext()) {\r\n }\r\n ;\r\n },\r\n function () {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.current())\r\n : false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function(predicate)\r\n // Overload:function(predicate)\r\n Enumerable.prototype.skipWhile = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n var isSkipEnd = false;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n while (!isSkipEnd) {\r\n if (enumerator.moveNext()) {\r\n if (!predicate(enumerator.current(), index++)) {\r\n isSkipEnd = true;\r\n return this.yieldReturn(enumerator.current());\r\n }\r\n continue;\r\n } else return false;\r\n }\r\n\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.current())\r\n : false;\r\n\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n Enumerable.prototype.take = function (count) {\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n return (index++ < count && enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.current())\r\n : false;\r\n },\r\n function () { Utils.dispose(enumerator); }\r\n );\r\n });\r\n };\r\n\r\n // Overload:function(predicate)\r\n // Overload:function(predicate)\r\n Enumerable.prototype.takeWhile = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n return (enumerator.moveNext() && predicate(enumerator.current(), index++))\r\n ? this.yieldReturn(enumerator.current())\r\n : false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(count)\r\n Enumerable.prototype.takeExceptLast = function (count) {\r\n if (count == null) count = 1;\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n if (count <= 0) return source.getEnumerator(); // do nothing\r\n\r\n var enumerator;\r\n var q = [];\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n if (q.length == count) {\r\n q.push(enumerator.current());\r\n return this.yieldReturn(q.shift());\r\n }\r\n q.push(enumerator.current());\r\n }\r\n return false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n Enumerable.prototype.takeFromLast = function (count) {\r\n if (count <= 0 || count == null) return Enumerable.empty();\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var sourceEnumerator;\r\n var enumerator;\r\n var q = [];\r\n\r\n return new IEnumerator(\r\n function () { sourceEnumerator = source.getEnumerator(); },\r\n function () {\r\n while (sourceEnumerator.moveNext()) {\r\n if (q.length == count) q.shift();\r\n q.push(sourceEnumerator.current());\r\n }\r\n if (enumerator == null) {\r\n enumerator = Enumerable.from(q).getEnumerator();\r\n }\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.current())\r\n : false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function(item)\r\n // Overload:function(predicate)\r\n Enumerable.prototype.indexOf = function (item) {\r\n var found = null;\r\n\r\n // item as predicate\r\n if (typeof (item) === Types.Function) {\r\n this.forEach(function (x, i) {\r\n if (item(x, i)) {\r\n found = i;\r\n return false;\r\n }\r\n });\r\n }\r\n else {\r\n this.forEach(function (x, i) {\r\n if (x === item) {\r\n found = i;\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n return (found !== null) ? found : -1;\r\n };\r\n\r\n // Overload:function(item)\r\n // Overload:function(predicate)\r\n Enumerable.prototype.lastIndexOf = function (item) {\r\n var result = -1;\r\n\r\n // item as predicate\r\n if (typeof (item) === Types.Function) {\r\n this.forEach(function (x, i) {\r\n if (item(x, i)) result = i;\r\n });\r\n }\r\n else {\r\n this.forEach(function (x, i) {\r\n if (x === item) result = i;\r\n });\r\n }\r\n\r\n return result;\r\n };\r\n\r\n /* Convert Methods */\r\n\r\n Enumerable.prototype.cast = function () {\r\n return this;\r\n };\r\n\r\n Enumerable.prototype.asEnumerable = function () {\r\n return Enumerable.from(this);\r\n };\r\n\r\n Enumerable.prototype.toArray = function () {\r\n var array = [];\r\n this.forEach(function (x) { array.push(x); });\r\n return array;\r\n };\r\n\r\n // Overload:function(keySelector)\r\n // Overload:function(keySelector, elementSelector)\r\n // Overload:function(keySelector, elementSelector, compareSelector)\r\n Enumerable.prototype.toLookup = function (keySelector, elementSelector, compareSelector) {\r\n keySelector = Utils.createLambda(keySelector);\r\n elementSelector = Utils.createLambda(elementSelector);\r\n compareSelector = Utils.createLambda(compareSelector);\r\n\r\n var dict = new Dictionary(compareSelector);\r\n this.forEach(function (x) {\r\n var key = keySelector(x);\r\n var element = elementSelector(x);\r\n\r\n var array = dict.get(key);\r\n if (array !== undefined) array.push(element);\r\n else dict.add(key, [element]);\r\n });\r\n return new Lookup(dict);\r\n };\r\n\r\n Enumerable.prototype.toObject = function (keySelector, elementSelector) {\r\n keySelector = Utils.createLambda(keySelector);\r\n elementSelector = Utils.createLambda(elementSelector);\r\n\r\n var obj = {};\r\n this.forEach(function (x) {\r\n obj[keySelector(x)] = elementSelector(x);\r\n });\r\n return obj;\r\n };\r\n\r\n // Overload:function(keySelector, elementSelector)\r\n // Overload:function(keySelector, elementSelector, compareSelector)\r\n Enumerable.prototype.toDictionary = function (keySelector, elementSelector, compareSelector) {\r\n keySelector = Utils.createLambda(keySelector);\r\n elementSelector = Utils.createLambda(elementSelector);\r\n compareSelector = Utils.createLambda(compareSelector);\r\n\r\n var dict = new Dictionary(compareSelector);\r\n this.forEach(function (x) {\r\n dict.add(keySelector(x), elementSelector(x));\r\n });\r\n return dict;\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(replacer)\r\n // Overload:function(replacer, space)\r\n Enumerable.prototype.toJSONString = function (replacer, space) {\r\n if (typeof JSON === Types.Undefined || JSON.stringify == null) {\r\n throw new Error(\"toJSONString can't find JSON.stringify. This works native JSON support Browser or include json2.js\");\r\n }\r\n return JSON.stringify(this.toArray(), replacer, space);\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(separator)\r\n // Overload:function(separator,selector)\r\n Enumerable.prototype.toJoinedString = function (separator, selector) {\r\n if (separator == null) separator = \"\";\r\n if (selector == null) selector = Functions.Identity;\r\n\r\n return this.select(selector).toArray().join(separator);\r\n };\r\n\r\n\r\n /* Action Methods */\r\n\r\n // Overload:function(action)\r\n // Overload:function(action)\r\n Enumerable.prototype.doAction = function (action) {\r\n var source = this;\r\n action = Utils.createLambda(action);\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n if (enumerator.moveNext()) {\r\n action(enumerator.current(), index++);\r\n return this.yieldReturn(enumerator.current());\r\n }\r\n return false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n // Overload:function(action)\r\n // Overload:function(action)\r\n // Overload:function(func)\r\n // Overload:function(func)\r\n Enumerable.prototype.forEach = function (action) {\r\n action = Utils.createLambda(action);\r\n\r\n var index = 0;\r\n var enumerator = this.getEnumerator();\r\n try {\r\n while (enumerator.moveNext()) {\r\n if (action(enumerator.current(), index++) === false) break;\r\n }\r\n } finally {\r\n Utils.dispose(enumerator);\r\n }\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(separator)\r\n // Overload:function(separator,selector)\r\n Enumerable.prototype.write = function (separator, selector) {\r\n if (separator == null) separator = \"\";\r\n selector = Utils.createLambda(selector);\r\n\r\n var isFirst = true;\r\n this.forEach(function (item) {\r\n if (isFirst) isFirst = false;\r\n else document.write(separator);\r\n document.write(selector(item));\r\n });\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(selector)\r\n Enumerable.prototype.writeLine = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n\r\n this.forEach(function (item) {\r\n document.writeln(selector(item) + \"
\");\r\n });\r\n };\r\n\r\n Enumerable.prototype.force = function () {\r\n var enumerator = this.getEnumerator();\r\n\r\n try {\r\n while (enumerator.moveNext()) {\r\n }\r\n }\r\n finally {\r\n Utils.dispose(enumerator);\r\n }\r\n };\r\n\r\n /* Functional Methods */\r\n\r\n Enumerable.prototype.letBind = function (func) {\r\n func = Utils.createLambda(func);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () {\r\n enumerator = Enumerable.from(func(source)).getEnumerator();\r\n },\r\n function () {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.current())\r\n : false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n Enumerable.prototype.share = function () {\r\n var source = this;\r\n var sharedEnumerator;\r\n var disposed = false;\r\n\r\n return new DisposableEnumerable(function () {\r\n return new IEnumerator(\r\n function () {\r\n if (sharedEnumerator == null) {\r\n sharedEnumerator = source.getEnumerator();\r\n }\r\n },\r\n function () {\r\n if (disposed) throw new Error(\"enumerator is disposed\");\r\n\r\n return (sharedEnumerator.moveNext())\r\n ? this.yieldReturn(sharedEnumerator.current())\r\n : false;\r\n },\r\n Functions.Blank\r\n );\r\n }, function () {\r\n disposed = true;\r\n Utils.dispose(sharedEnumerator);\r\n });\r\n };\r\n\r\n Enumerable.prototype.memoize = function () {\r\n var source = this;\r\n var cache;\r\n var enumerator;\r\n var disposed = false;\r\n\r\n return new DisposableEnumerable(function () {\r\n var index = -1;\r\n\r\n return new IEnumerator(\r\n function () {\r\n if (enumerator == null) {\r\n enumerator = source.getEnumerator();\r\n cache = [];\r\n }\r\n },\r\n function () {\r\n if (disposed) throw new Error(\"enumerator is disposed\");\r\n\r\n index++;\r\n if (cache.length <= index) {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(cache[index] = enumerator.current())\r\n : false;\r\n }\r\n\r\n return this.yieldReturn(cache[index]);\r\n },\r\n Functions.Blank\r\n );\r\n }, function () {\r\n disposed = true;\r\n Utils.dispose(enumerator);\r\n cache = null;\r\n });\r\n };\r\n\r\n /* Error Handling Methods */\r\n\r\n Enumerable.prototype.catchError = function (handler) {\r\n handler = Utils.createLambda(handler);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n try {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.current())\r\n : false;\r\n } catch (e) {\r\n handler(e);\r\n return false;\r\n }\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n });\r\n };\r\n\r\n Enumerable.prototype.finallyAction = function (finallyAction) {\r\n finallyAction = Utils.createLambda(finallyAction);\r\n var source = this;\r\n\r\n return new Enumerable(function () {\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n return (enumerator.moveNext())\r\n ? this.yieldReturn(enumerator.current())\r\n : false;\r\n },\r\n function () {\r\n try {\r\n Utils.dispose(enumerator);\r\n } finally {\r\n finallyAction();\r\n }\r\n });\r\n });\r\n };\r\n\r\n /* For Debug Methods */\r\n\r\n // Overload:function()\r\n // Overload:function(selector)\r\n Enumerable.prototype.log = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n\r\n return this.doAction(function (item) {\r\n if (typeof console !== Types.Undefined) {\r\n console.log(selector(item));\r\n }\r\n });\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(message)\r\n // Overload:function(message,selector)\r\n Enumerable.prototype.trace = function (message, selector) {\r\n if (message == null) message = \"Trace\";\r\n selector = Utils.createLambda(selector);\r\n\r\n return this.doAction(function (item) {\r\n if (typeof console !== Types.Undefined) {\r\n console.log(message, selector(item));\r\n }\r\n });\r\n };\r\n\r\n // private\r\n\r\n var OrderedEnumerable = function (source, keySelector, descending, parent) {\r\n this.source = source;\r\n this.keySelector = Utils.createLambda(keySelector);\r\n this.descending = descending;\r\n this.parent = parent;\r\n };\r\n OrderedEnumerable.prototype = new Enumerable();\r\n\r\n OrderedEnumerable.prototype.createOrderedEnumerable = function (keySelector, descending) {\r\n return new OrderedEnumerable(this.source, keySelector, descending, this);\r\n };\r\n\r\n OrderedEnumerable.prototype.thenBy = function (keySelector) {\r\n return this.createOrderedEnumerable(keySelector, false);\r\n };\r\n\r\n OrderedEnumerable.prototype.thenByDescending = function (keySelector) {\r\n return this.createOrderedEnumerable(keySelector, true);\r\n };\r\n\r\n OrderedEnumerable.prototype.getEnumerator = function () {\r\n var self = this;\r\n var buffer;\r\n var indexes;\r\n var index = 0;\r\n\r\n return new IEnumerator(\r\n function () {\r\n buffer = [];\r\n indexes = [];\r\n self.source.forEach(function (item, index) {\r\n buffer.push(item);\r\n indexes.push(index);\r\n });\r\n var sortContext = SortContext.create(self, null);\r\n sortContext.GenerateKeys(buffer);\r\n\r\n indexes.sort(function (a, b) { return sortContext.compare(a, b); });\r\n },\r\n function () {\r\n return (index < indexes.length)\r\n ? this.yieldReturn(buffer[indexes[index++]])\r\n : false;\r\n },\r\n Functions.Blank\r\n );\r\n };\r\n\r\n var SortContext = function (keySelector, descending, child) {\r\n this.keySelector = keySelector;\r\n this.descending = descending;\r\n this.child = child;\r\n this.keys = null;\r\n };\r\n\r\n SortContext.create = function (orderedEnumerable, currentContext) {\r\n var context = new SortContext(orderedEnumerable.keySelector, orderedEnumerable.descending, currentContext);\r\n if (orderedEnumerable.parent != null) return SortContext.create(orderedEnumerable.parent, context);\r\n return context;\r\n };\r\n\r\n SortContext.prototype.GenerateKeys = function (source) {\r\n var len = source.length;\r\n var keySelector = this.keySelector;\r\n var keys = new Array(len);\r\n for (var i = 0; i < len; i++) keys[i] = keySelector(source[i]);\r\n this.keys = keys;\r\n\r\n if (this.child != null) this.child.GenerateKeys(source);\r\n };\r\n\r\n SortContext.prototype.compare = function (index1, index2) {\r\n var comparison = Utils.compare(this.keys[index1], this.keys[index2]);\r\n\r\n if (comparison == 0) {\r\n if (this.child != null) return this.child.compare(index1, index2);\r\n return Utils.compare(index1, index2);\r\n }\r\n\r\n return (this.descending) ? -comparison : comparison;\r\n };\r\n\r\n var DisposableEnumerable = function (getEnumerator, dispose) {\r\n this.dispose = dispose;\r\n Enumerable.call(this, getEnumerator);\r\n };\r\n DisposableEnumerable.prototype = new Enumerable();\r\n\r\n // optimize array or arraylike object\r\n\r\n var ArrayEnumerable = function (source) {\r\n this.getSource = function () { return source; };\r\n };\r\n ArrayEnumerable.prototype = new Enumerable();\r\n\r\n ArrayEnumerable.prototype.any = function (predicate) {\r\n return (predicate == null)\r\n ? (this.getSource().length > 0)\r\n : Enumerable.prototype.any.apply(this, arguments);\r\n };\r\n\r\n ArrayEnumerable.prototype.count = function (predicate) {\r\n return (predicate == null)\r\n ? this.getSource().length\r\n : Enumerable.prototype.count.apply(this, arguments);\r\n };\r\n\r\n ArrayEnumerable.prototype.elementAt = function (index) {\r\n var source = this.getSource();\r\n return (0 <= index && index < source.length)\r\n ? source[index]\r\n : Enumerable.prototype.elementAt.apply(this, arguments);\r\n };\r\n\r\n ArrayEnumerable.prototype.elementAtOrDefault = function (index, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = null;\r\n var source = this.getSource();\r\n return (0 <= index && index < source.length)\r\n ? source[index]\r\n : defaultValue;\r\n };\r\n\r\n ArrayEnumerable.prototype.first = function (predicate) {\r\n var source = this.getSource();\r\n return (predicate == null && source.length > 0)\r\n ? source[0]\r\n : Enumerable.prototype.first.apply(this, arguments);\r\n };\r\n\r\n ArrayEnumerable.prototype.firstOrDefault = function (predicate, defaultValue) {\r\n if (predicate !== undefined) {\r\n return Enumerable.prototype.firstOrDefault.apply(this, arguments);\r\n }\r\n defaultValue = predicate;\r\n\r\n var source = this.getSource();\r\n return source.length > 0 ? source[0] : defaultValue;\r\n };\r\n\r\n ArrayEnumerable.prototype.last = function (predicate) {\r\n var source = this.getSource();\r\n return (predicate == null && source.length > 0)\r\n ? source[source.length - 1]\r\n : Enumerable.prototype.last.apply(this, arguments);\r\n };\r\n\r\n ArrayEnumerable.prototype.lastOrDefault = function (predicate, defaultValue) {\r\n if (predicate !== undefined) {\r\n return Enumerable.prototype.lastOrDefault.apply(this, arguments);\r\n }\r\n defaultValue = predicate;\r\n\r\n var source = this.getSource();\r\n return source.length > 0 ? source[source.length - 1] : defaultValue;\r\n };\r\n\r\n ArrayEnumerable.prototype.skip = function (count) {\r\n var source = this.getSource();\r\n\r\n return new Enumerable(function () {\r\n var index;\r\n\r\n return new IEnumerator(\r\n function () { index = (count < 0) ? 0 : count; },\r\n function () {\r\n return (index < source.length)\r\n ? this.yieldReturn(source[index++])\r\n : false;\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n ArrayEnumerable.prototype.takeExceptLast = function (count) {\r\n if (count == null) count = 1;\r\n return this.take(this.getSource().length - count);\r\n };\r\n\r\n ArrayEnumerable.prototype.takeFromLast = function (count) {\r\n return this.skip(this.getSource().length - count);\r\n };\r\n\r\n ArrayEnumerable.prototype.reverse = function () {\r\n var source = this.getSource();\r\n\r\n return new Enumerable(function () {\r\n var index;\r\n\r\n return new IEnumerator(\r\n function () {\r\n index = source.length;\r\n },\r\n function () {\r\n return (index > 0)\r\n ? this.yieldReturn(source[--index])\r\n : false;\r\n },\r\n Functions.Blank);\r\n });\r\n };\r\n\r\n ArrayEnumerable.prototype.sequenceEqual = function (second, compareSelector) {\r\n if ((second instanceof ArrayEnumerable || second instanceof Array)\r\n && compareSelector == null\r\n && Enumerable.from(second).count() != this.count()) {\r\n return false;\r\n }\r\n\r\n return Enumerable.prototype.sequenceEqual.apply(this, arguments);\r\n };\r\n\r\n ArrayEnumerable.prototype.toJoinedString = function (separator, selector) {\r\n var source = this.getSource();\r\n if (selector != null || !(source instanceof Array)) {\r\n return Enumerable.prototype.toJoinedString.apply(this, arguments);\r\n }\r\n\r\n if (separator == null) separator = \"\";\r\n return source.join(separator);\r\n };\r\n\r\n ArrayEnumerable.prototype.getEnumerator = function () {\r\n var source = this.getSource();\r\n var index = -1;\r\n\r\n // fast and simple enumerator\r\n return {\r\n current: function () { return source[index]; },\r\n moveNext: function () {\r\n return ++index < source.length;\r\n },\r\n dispose: Functions.Blank\r\n };\r\n };\r\n\r\n // optimization for multiple where and multiple select and whereselect\r\n\r\n var WhereEnumerable = function (source, predicate) {\r\n this.prevSource = source;\r\n this.prevPredicate = predicate; // predicate.length always <= 1\r\n };\r\n WhereEnumerable.prototype = new Enumerable();\r\n\r\n WhereEnumerable.prototype.where = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n\r\n if (predicate.length <= 1) {\r\n var prevPredicate = this.prevPredicate;\r\n var composedPredicate = function (x) { return prevPredicate(x) && predicate(x); };\r\n return new WhereEnumerable(this.prevSource, composedPredicate);\r\n }\r\n else {\r\n // if predicate use index, can't compose\r\n return Enumerable.prototype.where.call(this, predicate);\r\n }\r\n };\r\n\r\n WhereEnumerable.prototype.select = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n\r\n return (selector.length <= 1)\r\n ? new WhereSelectEnumerable(this.prevSource, this.prevPredicate, selector)\r\n : Enumerable.prototype.select.call(this, selector);\r\n };\r\n\r\n WhereEnumerable.prototype.getEnumerator = function () {\r\n var predicate = this.prevPredicate;\r\n var source = this.prevSource;\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n if (predicate(enumerator.current())) {\r\n return this.yieldReturn(enumerator.current());\r\n }\r\n }\r\n return false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n };\r\n\r\n var WhereSelectEnumerable = function (source, predicate, selector) {\r\n this.prevSource = source;\r\n this.prevPredicate = predicate; // predicate.length always <= 1 or null\r\n this.prevSelector = selector; // selector.length always <= 1\r\n };\r\n WhereSelectEnumerable.prototype = new Enumerable();\r\n\r\n WhereSelectEnumerable.prototype.where = function (predicate) {\r\n predicate = Utils.createLambda(predicate);\r\n\r\n return (predicate.length <= 1)\r\n ? new WhereEnumerable(this, predicate)\r\n : Enumerable.prototype.where.call(this, predicate);\r\n };\r\n\r\n WhereSelectEnumerable.prototype.select = function (selector) {\r\n selector = Utils.createLambda(selector);\r\n\r\n if (selector.length <= 1) {\r\n var prevSelector = this.prevSelector;\r\n var composedSelector = function (x) { return selector(prevSelector(x)); };\r\n return new WhereSelectEnumerable(this.prevSource, this.prevPredicate, composedSelector);\r\n }\r\n else {\r\n // if selector use index, can't compose\r\n return Enumerable.prototype.select.call(this, selector);\r\n }\r\n };\r\n\r\n WhereSelectEnumerable.prototype.getEnumerator = function () {\r\n var predicate = this.prevPredicate;\r\n var selector = this.prevSelector;\r\n var source = this.prevSource;\r\n var enumerator;\r\n\r\n return new IEnumerator(\r\n function () { enumerator = source.getEnumerator(); },\r\n function () {\r\n while (enumerator.moveNext()) {\r\n if (predicate == null || predicate(enumerator.current())) {\r\n return this.yieldReturn(selector(enumerator.current()));\r\n }\r\n }\r\n return false;\r\n },\r\n function () { Utils.dispose(enumerator); });\r\n };\r\n\r\n // Collections\r\n\r\n var Dictionary = (function () {\r\n // static utility methods\r\n var callHasOwnProperty = function (target, key) {\r\n return Object.prototype.hasOwnProperty.call(target, key);\r\n };\r\n\r\n var computeHashCode = function (obj) {\r\n if (obj === null) return \"null\";\r\n if (obj === undefined) return \"undefined\";\r\n\r\n return (typeof obj.toString === Types.Function)\r\n ? obj.toString()\r\n : Object.prototype.toString.call(obj);\r\n };\r\n\r\n // LinkedList for Dictionary\r\n var HashEntry = function (key, value) {\r\n this.key = key;\r\n this.value = value;\r\n this.prev = null;\r\n this.next = null;\r\n };\r\n\r\n var EntryList = function () {\r\n this.first = null;\r\n this.last = null;\r\n };\r\n EntryList.prototype =\r\n {\r\n addLast: function (entry) {\r\n if (this.last != null) {\r\n this.last.next = entry;\r\n entry.prev = this.last;\r\n this.last = entry;\r\n } else this.first = this.last = entry;\r\n },\r\n\r\n replace: function (entry, newEntry) {\r\n if (entry.prev != null) {\r\n entry.prev.next = newEntry;\r\n newEntry.prev = entry.prev;\r\n } else this.first = newEntry;\r\n\r\n if (entry.next != null) {\r\n entry.next.prev = newEntry;\r\n newEntry.next = entry.next;\r\n } else this.last = newEntry;\r\n\r\n },\r\n\r\n remove: function (entry) {\r\n if (entry.prev != null) entry.prev.next = entry.next;\r\n else this.first = entry.next;\r\n\r\n if (entry.next != null) entry.next.prev = entry.prev;\r\n else this.last = entry.prev;\r\n }\r\n };\r\n\r\n // Overload:function()\r\n // Overload:function(compareSelector)\r\n var Dictionary = function (compareSelector) {\r\n this.countField = 0;\r\n this.entryList = new EntryList();\r\n this.buckets = {}; // as Dictionary>\r\n this.compareSelector = (compareSelector == null) ? Functions.Identity : compareSelector;\r\n };\r\n Dictionary.prototype =\r\n {\r\n add: function (key, value) {\r\n var compareKey = this.compareSelector(key);\r\n var hash = computeHashCode(compareKey);\r\n var entry = new HashEntry(key, value);\r\n if (callHasOwnProperty(this.buckets, hash)) {\r\n var array = this.buckets[hash];\r\n for (var i = 0; i < array.length; i++) {\r\n if (this.compareSelector(array[i].key) === compareKey) {\r\n this.entryList.replace(array[i], entry);\r\n array[i] = entry;\r\n return;\r\n }\r\n }\r\n array.push(entry);\r\n } else {\r\n this.buckets[hash] = [entry];\r\n }\r\n this.countField++;\r\n this.entryList.addLast(entry);\r\n },\r\n\r\n get: function (key) {\r\n var compareKey = this.compareSelector(key);\r\n var hash = computeHashCode(compareKey);\r\n if (!callHasOwnProperty(this.buckets, hash)) return undefined;\r\n\r\n var array = this.buckets[hash];\r\n for (var i = 0; i < array.length; i++) {\r\n var entry = array[i];\r\n if (this.compareSelector(entry.key) === compareKey) return entry.value;\r\n }\r\n return undefined;\r\n },\r\n\r\n set: function (key, value) {\r\n var compareKey = this.compareSelector(key);\r\n var hash = computeHashCode(compareKey);\r\n if (callHasOwnProperty(this.buckets, hash)) {\r\n var array = this.buckets[hash];\r\n for (var i = 0; i < array.length; i++) {\r\n if (this.compareSelector(array[i].key) === compareKey) {\r\n var newEntry = new HashEntry(key, value);\r\n this.entryList.replace(array[i], newEntry);\r\n array[i] = newEntry;\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n },\r\n\r\n contains: function (key) {\r\n var compareKey = this.compareSelector(key);\r\n var hash = computeHashCode(compareKey);\r\n if (!callHasOwnProperty(this.buckets, hash)) return false;\r\n\r\n var array = this.buckets[hash];\r\n for (var i = 0; i < array.length; i++) {\r\n if (this.compareSelector(array[i].key) === compareKey) return true;\r\n }\r\n return false;\r\n },\r\n\r\n clear: function () {\r\n this.countField = 0;\r\n this.buckets = {};\r\n this.entryList = new EntryList();\r\n },\r\n\r\n remove: function (key) {\r\n var compareKey = this.compareSelector(key);\r\n var hash = computeHashCode(compareKey);\r\n if (!callHasOwnProperty(this.buckets, hash)) return;\r\n\r\n var array = this.buckets[hash];\r\n for (var i = 0; i < array.length; i++) {\r\n if (this.compareSelector(array[i].key) === compareKey) {\r\n this.entryList.remove(array[i]);\r\n array.splice(i, 1);\r\n if (array.length == 0) delete this.buckets[hash];\r\n this.countField--;\r\n return;\r\n }\r\n }\r\n },\r\n\r\n count: function () {\r\n return this.countField;\r\n },\r\n\r\n toEnumerable: function () {\r\n var self = this;\r\n return new Enumerable(function () {\r\n var currentEntry;\r\n\r\n return new IEnumerator(\r\n function () { currentEntry = self.entryList.first; },\r\n function () {\r\n if (currentEntry != null) {\r\n var result = { key: currentEntry.key, value: currentEntry.value };\r\n currentEntry = currentEntry.next;\r\n return this.yieldReturn(result);\r\n }\r\n return false;\r\n },\r\n Functions.Blank);\r\n });\r\n }\r\n };\r\n\r\n return Dictionary;\r\n })();\r\n\r\n // dictionary = Dictionary\r\n var Lookup = function (dictionary) {\r\n this.count = function () {\r\n return dictionary.count();\r\n };\r\n this.get = function (key) {\r\n return Enumerable.from(dictionary.get(key));\r\n };\r\n this.contains = function (key) {\r\n return dictionary.contains(key);\r\n };\r\n this.toEnumerable = function () {\r\n return dictionary.toEnumerable().select(function (kvp) {\r\n return new Grouping(kvp.key, kvp.value);\r\n });\r\n };\r\n };\r\n\r\n var Grouping = function (groupKey, elements) {\r\n this.key = function () {\r\n return groupKey;\r\n };\r\n ArrayEnumerable.call(this, elements);\r\n };\r\n Grouping.prototype = new ArrayEnumerable();\r\n\r\n // module export\r\n if (typeof define === Types.Function && define.amd) { // AMD\r\n define(\"linqjs\", [], function () { return Enumerable; });\r\n }\r\n else if (typeof module !== Types.Undefined && module.exports) { // Node\r\n module.exports = Enumerable;\r\n }\r\n else {\r\n root.Enumerable = Enumerable;\r\n }\r\n})(this);\n!function (e) { \"use strict\"; function t(e, i, a) { var o, n = document.createElement(\"img\"); return n.onerror = function (o) { return t.onerror(n, o, e, i, a) }, n.onload = function (o) { return t.onload(n, o, e, i, a) }, \"string\" == typeof e ? (t.fetchBlob(e, function (i) { i ? (e = i, o = t.createObjectURL(e)) : (o = e, a && a.crossOrigin && (n.crossOrigin = a.crossOrigin)), n.src = o }, a), n) : t.isInstanceOf(\"Blob\", e) || t.isInstanceOf(\"File\", e) ? (o = n._objectURL = t.createObjectURL(e)) ? (n.src = o, n) : t.readFile(e, function (e) { var t = e.target; t && t.result ? n.src = t.result : i && i(e) }) : void 0 } function i(e, i) { !e._objectURL || i && i.noRevoke || (t.revokeObjectURL(e._objectURL), delete e._objectURL) } var a = e.createObjectURL && e || e.URL && URL.revokeObjectURL && URL || e.webkitURL && webkitURL; t.fetchBlob = function (e, t, i) { t() }, t.isInstanceOf = function (e, t) { return Object.prototype.toString.call(t) === \"[object \" + e + \"]\" }, t.transform = function (e, t, i, a, o) { i(e, o) }, t.onerror = function (e, t, a, o, n) { i(e, n), o && o.call(e, t) }, t.onload = function (e, a, o, n, r) { i(e, r), n && t.transform(e, r, n, o, {}) }, t.createObjectURL = function (e) { return !!a && a.createObjectURL(e) }, t.revokeObjectURL = function (e) { return !!a && a.revokeObjectURL(e) }, t.readFile = function (t, i, a) { if (e.FileReader) { var o = new FileReader; if (o.onload = o.onerror = i, a = a || \"readAsDataURL\", o[a]) return o[a](t), o } return !1 }, \"function\" == typeof define && define.amd ? define(function () { return t }) : \"object\" == typeof module && module.exports ? module.exports = t : e.loadImage = t }(\"undefined\" != typeof window && window || this), function (e) { \"use strict\"; \"function\" == typeof define && define.amd ? define([\"./load-image\"], e) : e(\"object\" == typeof module && module.exports ? require(\"./load-image\") : window.loadImage) }(function (e) { \"use strict\"; var t = e.transform; e.transform = function (i, a, o, n, r) { t.call(e, e.scale(i, a, r), a, o, n, r) }, e.transformCoordinates = function () { }, e.getTransformedOptions = function (e, t) { var i, a, o, n, r = t.aspectRatio; if (!r) return t; i = {}; for (a in t) t.hasOwnProperty(a) && (i[a] = t[a]); return i.crop = !0, o = e.naturalWidth || e.width, n = e.naturalHeight || e.height, o / n > r ? (i.maxWidth = n * r, i.maxHeight = n) : (i.maxWidth = o, i.maxHeight = o / r), i }, e.renderImageToCanvas = function (e, t, i, a, o, n, r, s, l, c) { return e.getContext(\"2d\").drawImage(t, i, a, o, n, r, s, l, c), e }, e.hasCanvasOption = function (e) { return e.canvas || e.crop || !!e.aspectRatio }, e.scale = function (t, i, a) { function o() { var e = Math.max((l || I) / I, (c || v) / v); e > 1 && (I *= e, v *= e) } function n() { var e = Math.min((r || I) / I, (s || v) / v); e < 1 && (I *= e, v *= e) } i = i || {}; var r, s, l, c, d, u, f, g, p, m, h, S = document.createElement(\"canvas\"), b = t.getContext || e.hasCanvasOption(i) && S.getContext, y = t.naturalWidth || t.width, x = t.naturalHeight || t.height, I = y, v = x; if (b && (f = (i = e.getTransformedOptions(t, i, a)).left || 0, g = i.top || 0, i.sourceWidth ? (d = i.sourceWidth, void 0 !== i.right && void 0 === i.left && (f = y - d - i.right)) : d = y - f - (i.right || 0), i.sourceHeight ? (u = i.sourceHeight, void 0 !== i.bottom && void 0 === i.top && (g = x - u - i.bottom)) : u = x - g - (i.bottom || 0), I = d, v = u), r = i.maxWidth, s = i.maxHeight, l = i.minWidth, c = i.minHeight, b && r && s && i.crop ? (I = r, v = s, (h = d / u - r / s) < 0 ? (u = s * d / r, void 0 === i.top && void 0 === i.bottom && (g = (x - u) / 2)) : h > 0 && (d = r * u / s, void 0 === i.left && void 0 === i.right && (f = (y - d) / 2))) : ((i.contain || i.cover) && (l = r = r || l, c = s = s || c), i.cover ? (n(), o()) : (o(), n())), b) { if ((p = i.pixelRatio) > 1 && (S.style.width = I + \"px\", S.style.height = v + \"px\", I *= p, v *= p, S.getContext(\"2d\").scale(p, p)), (m = i.downsamplingRatio) > 0 && m < 1 && I < d && v < u) for (; d * m > I;)S.width = d * m, S.height = u * m, e.renderImageToCanvas(S, t, f, g, d, u, 0, 0, S.width, S.height), f = 0, g = 0, d = S.width, u = S.height, (t = document.createElement(\"canvas\")).width = d, t.height = u, e.renderImageToCanvas(t, S, 0, 0, d, u, 0, 0, d, u); return S.width = I, S.height = v, e.transformCoordinates(S, i), e.renderImageToCanvas(S, t, f, g, d, u, 0, 0, I, v) } return t.width = I, t.height = v, t } }), function (e) { \"use strict\"; \"function\" == typeof define && define.amd ? define([\"./load-image\"], e) : e(\"object\" == typeof module && module.exports ? require(\"./load-image\") : window.loadImage) }(function (e) { \"use strict\"; var t = \"undefined\" != typeof Blob && (Blob.prototype.slice || Blob.prototype.webkitSlice || Blob.prototype.mozSlice); e.blobSlice = t && function () { return (this.slice || this.webkitSlice || this.mozSlice).apply(this, arguments) }, e.metaDataParsers = { jpeg: { 65505: [], 65517: [] } }, e.parseMetaData = function (t, i, a, o) { a = a || {}, o = o || {}; var n = this, r = a.maxMetaDataSize || 262144; !!(\"undefined\" != typeof DataView && t && t.size >= 12 && \"image/jpeg\" === t.type && e.blobSlice) && e.readFile(e.blobSlice.call(t, 0, r), function (t) { if (t.target.error) return console.log(t.target.error), void i(o); var r, s, l, c, d = t.target.result, u = new DataView(d), f = 2, g = u.byteLength - 4, p = f; if (65496 === u.getUint16(0)) { for (; f < g && ((r = u.getUint16(f)) >= 65504 && r <= 65519 || 65534 === r);) { if (s = u.getUint16(f + 2) + 2, f + s > u.byteLength) { console.log(\"Invalid meta data: Invalid segment size.\"); break } if (l = e.metaDataParsers.jpeg[r]) for (c = 0; c < l.length; c += 1)l[c].call(n, u, f, s, o, a); p = f += s } !a.disableImageHead && p > 6 && (d.slice ? o.imageHead = d.slice(0, p) : o.imageHead = new Uint8Array(d).subarray(0, p)) } else console.log(\"Invalid JPEG file: Missing JPEG marker.\"); i(o) }, \"readAsArrayBuffer\") || i(o) }, e.hasMetaOption = function (e) { return e && e.meta }; var i = e.transform; e.transform = function (t, a, o, n, r) { e.hasMetaOption(a) ? e.parseMetaData(n, function (r) { i.call(e, t, a, o, n, r) }, a, r) : i.apply(e, arguments) } }), function (e) { \"use strict\"; \"function\" == typeof define && define.amd ? define([\"./load-image\", \"./load-image-meta\"], e) : \"object\" == typeof module && module.exports ? e(require(\"./load-image\"), require(\"./load-image-meta\")) : e(window.loadImage) }(function (e) { \"use strict\"; \"undefined\" != typeof fetch && \"undefined\" != typeof Request && (e.fetchBlob = function (t, i, a) { if (e.hasMetaOption(a)) return fetch(new Request(t, a)).then(function (e) { return e.blob() }).then(i).catch(function (e) { console.log(e), i() }); i() }) }), function (e) { \"use strict\"; \"function\" == typeof define && define.amd ? define([\"./load-image\", \"./load-image-scale\", \"./load-image-meta\"], e) : \"object\" == typeof module && module.exports ? e(require(\"./load-image\"), require(\"./load-image-scale\"), require(\"./load-image-meta\")) : e(window.loadImage) }(function (e) { \"use strict\"; var t = e.hasCanvasOption, i = e.hasMetaOption, a = e.transformCoordinates, o = e.getTransformedOptions; e.hasCanvasOption = function (i) { return !!i.orientation || t.call(e, i) }, e.hasMetaOption = function (t) { return t && !0 === t.orientation || i.call(e, t) }, e.transformCoordinates = function (t, i) { a.call(e, t, i); var o = t.getContext(\"2d\"), n = t.width, r = t.height, s = t.style.width, l = t.style.height, c = i.orientation; if (c && !(c > 8)) switch (c > 4 && (t.width = r, t.height = n, t.style.width = l, t.style.height = s), c) { case 2: o.translate(n, 0), o.scale(-1, 1); break; case 3: o.translate(n, r), o.rotate(Math.PI); break; case 4: o.translate(0, r), o.scale(1, -1); break; case 5: o.rotate(.5 * Math.PI), o.scale(1, -1); break; case 6: o.rotate(.5 * Math.PI), o.translate(0, -r); break; case 7: o.rotate(.5 * Math.PI), o.translate(n, -r), o.scale(-1, 1); break; case 8: o.rotate(-.5 * Math.PI), o.translate(-n, 0) } }, e.getTransformedOptions = function (t, i, a) { var n, r, s = o.call(e, t, i), l = s.orientation; if (!0 === l && a && a.exif && (l = a.exif.get(\"Orientation\")), !l || l > 8 || 1 === l) return s; n = {}; for (r in s) s.hasOwnProperty(r) && (n[r] = s[r]); switch (n.orientation = l, l) { case 2: n.left = s.right, n.right = s.left; break; case 3: n.left = s.right, n.top = s.bottom, n.right = s.left, n.bottom = s.top; break; case 4: n.top = s.bottom, n.bottom = s.top; break; case 5: n.left = s.top, n.top = s.left, n.right = s.bottom, n.bottom = s.right; break; case 6: n.left = s.top, n.top = s.right, n.right = s.bottom, n.bottom = s.left; break; case 7: n.left = s.bottom, n.top = s.right, n.right = s.top, n.bottom = s.left; break; case 8: n.left = s.bottom, n.top = s.left, n.right = s.top, n.bottom = s.right }return n.orientation > 4 && (n.maxWidth = s.maxHeight, n.maxHeight = s.maxWidth, n.minWidth = s.minHeight, n.minHeight = s.minWidth, n.sourceWidth = s.sourceHeight, n.sourceHeight = s.sourceWidth), n } }), function (e) { \"use strict\"; \"function\" == typeof define && define.amd ? define([\"./load-image\", \"./load-image-meta\"], e) : \"object\" == typeof module && module.exports ? e(require(\"./load-image\"), require(\"./load-image-meta\")) : e(window.loadImage) }(function (e) { \"use strict\"; e.ExifMap = function () { return this }, e.ExifMap.prototype.map = { Orientation: 274 }, e.ExifMap.prototype.get = function (e) { return this[e] || this[this.map[e]] }, e.getExifThumbnail = function (t, i, a) { if (a && !(i + a > t.byteLength)) return e.createObjectURL(new Blob([t.buffer.slice(i, i + a)])); console.log(\"Invalid Exif data: Invalid thumbnail data.\") }, e.exifTagTypes = { 1: { getValue: function (e, t) { return e.getUint8(t) }, size: 1 }, 2: { getValue: function (e, t) { return String.fromCharCode(e.getUint8(t)) }, size: 1, ascii: !0 }, 3: { getValue: function (e, t, i) { return e.getUint16(t, i) }, size: 2 }, 4: { getValue: function (e, t, i) { return e.getUint32(t, i) }, size: 4 }, 5: { getValue: function (e, t, i) { return e.getUint32(t, i) / e.getUint32(t + 4, i) }, size: 8 }, 9: { getValue: function (e, t, i) { return e.getInt32(t, i) }, size: 4 }, 10: { getValue: function (e, t, i) { return e.getInt32(t, i) / e.getInt32(t + 4, i) }, size: 8 } }, e.exifTagTypes[7] = e.exifTagTypes[1], e.getExifValue = function (t, i, a, o, n, r) { var s, l, c, d, u, f, g = e.exifTagTypes[o]; if (g) { if (s = g.size * n, !((l = s > 4 ? i + t.getUint32(a + 8, r) : a + 8) + s > t.byteLength)) { if (1 === n) return g.getValue(t, l, r); for (c = [], d = 0; d < n; d += 1)c[d] = g.getValue(t, l + d * g.size, r); if (g.ascii) { for (u = \"\", d = 0; d < c.length && \"\\0\" !== (f = c[d]); d += 1)u += f; return u } return c } console.log(\"Invalid Exif data: Invalid data offset.\") } else console.log(\"Invalid Exif data: Invalid tag type.\") }, e.parseExifTag = function (t, i, a, o, n) { var r = t.getUint16(a, o); n.exif[r] = e.getExifValue(t, i, a, t.getUint16(a + 2, o), t.getUint32(a + 4, o), o) }, e.parseExifTags = function (e, t, i, a, o) { var n, r, s; if (i + 6 > e.byteLength) console.log(\"Invalid Exif data: Invalid directory offset.\"); else { if (n = e.getUint16(i, a), !((r = i + 2 + 12 * n) + 4 > e.byteLength)) { for (s = 0; s < n; s += 1)this.parseExifTag(e, t, i + 2 + 12 * s, a, o); return e.getUint32(r, a) } console.log(\"Invalid Exif data: Invalid directory size.\") } }, e.parseExifData = function (t, i, a, o, n) { if (!n.disableExif) { var r, s, l, c = i + 10; if (1165519206 === t.getUint32(i + 4)) if (c + 8 > t.byteLength) console.log(\"Invalid Exif data: Invalid segment size.\"); else if (0 === t.getUint16(i + 8)) { switch (t.getUint16(c)) { case 18761: r = !0; break; case 19789: r = !1; break; default: return void console.log(\"Invalid Exif data: Invalid byte alignment marker.\") }42 === t.getUint16(c + 2, r) ? (s = t.getUint32(c + 4, r), o.exif = new e.ExifMap, (s = e.parseExifTags(t, c, c + s, r, o)) && !n.disableExifThumbnail && (l = { exif: {} }, s = e.parseExifTags(t, c, c + s, r, l), l.exif[513] && (o.exif.Thumbnail = e.getExifThumbnail(t, c + l.exif[513], l.exif[514]))), o.exif[34665] && !n.disableExifSub && e.parseExifTags(t, c, c + o.exif[34665], r, o), o.exif[34853] && !n.disableExifGps && e.parseExifTags(t, c, c + o.exif[34853], r, o)) : console.log(\"Invalid Exif data: Missing TIFF marker.\") } else console.log(\"Invalid Exif data: Missing byte alignment offset.\") } }, e.metaDataParsers.jpeg[65505].push(e.parseExifData) }), function (e) { \"use strict\"; \"function\" == typeof define && define.amd ? define([\"./load-image\", \"./load-image-exif\"], e) : \"object\" == typeof module && module.exports ? e(require(\"./load-image\"), require(\"./load-image-exif\")) : e(window.loadImage) }(function (e) { \"use strict\"; e.ExifMap.prototype.tags = { 256: \"ImageWidth\", 257: \"ImageHeight\", 34665: \"ExifIFDPointer\", 34853: \"GPSInfoIFDPointer\", 40965: \"InteroperabilityIFDPointer\", 258: \"BitsPerSample\", 259: \"Compression\", 262: \"PhotometricInterpretation\", 274: \"Orientation\", 277: \"SamplesPerPixel\", 284: \"PlanarConfiguration\", 530: \"YCbCrSubSampling\", 531: \"YCbCrPositioning\", 282: \"XResolution\", 283: \"YResolution\", 296: \"ResolutionUnit\", 273: \"StripOffsets\", 278: \"RowsPerStrip\", 279: \"StripByteCounts\", 513: \"JPEGInterchangeFormat\", 514: \"JPEGInterchangeFormatLength\", 301: \"TransferFunction\", 318: \"WhitePoint\", 319: \"PrimaryChromaticities\", 529: \"YCbCrCoefficients\", 532: \"ReferenceBlackWhite\", 306: \"DateTime\", 270: \"ImageDescription\", 271: \"Make\", 272: \"Model\", 305: \"Software\", 315: \"Artist\", 33432: \"Copyright\", 36864: \"ExifVersion\", 40960: \"FlashpixVersion\", 40961: \"ColorSpace\", 40962: \"PixelXDimension\", 40963: \"PixelYDimension\", 42240: \"Gamma\", 37121: \"ComponentsConfiguration\", 37122: \"CompressedBitsPerPixel\", 37500: \"MakerNote\", 37510: \"UserComment\", 40964: \"RelatedSoundFile\", 36867: \"DateTimeOriginal\", 36868: \"DateTimeDigitized\", 37520: \"SubSecTime\", 37521: \"SubSecTimeOriginal\", 37522: \"SubSecTimeDigitized\", 33434: \"ExposureTime\", 33437: \"FNumber\", 34850: \"ExposureProgram\", 34852: \"SpectralSensitivity\", 34855: \"PhotographicSensitivity\", 34856: \"OECF\", 34864: \"SensitivityType\", 34865: \"StandardOutputSensitivity\", 34866: \"RecommendedExposureIndex\", 34867: \"ISOSpeed\", 34868: \"ISOSpeedLatitudeyyy\", 34869: \"ISOSpeedLatitudezzz\", 37377: \"ShutterSpeedValue\", 37378: \"ApertureValue\", 37379: \"BrightnessValue\", 37380: \"ExposureBias\", 37381: \"MaxApertureValue\", 37382: \"SubjectDistance\", 37383: \"MeteringMode\", 37384: \"LightSource\", 37385: \"Flash\", 37396: \"SubjectArea\", 37386: \"FocalLength\", 41483: \"FlashEnergy\", 41484: \"SpatialFrequencyResponse\", 41486: \"FocalPlaneXResolution\", 41487: \"FocalPlaneYResolution\", 41488: \"FocalPlaneResolutionUnit\", 41492: \"SubjectLocation\", 41493: \"ExposureIndex\", 41495: \"SensingMethod\", 41728: \"FileSource\", 41729: \"SceneType\", 41730: \"CFAPattern\", 41985: \"CustomRendered\", 41986: \"ExposureMode\", 41987: \"WhiteBalance\", 41988: \"DigitalZoomRatio\", 41989: \"FocalLengthIn35mmFilm\", 41990: \"SceneCaptureType\", 41991: \"GainControl\", 41992: \"Contrast\", 41993: \"Saturation\", 41994: \"Sharpness\", 41995: \"DeviceSettingDescription\", 41996: \"SubjectDistanceRange\", 42016: \"ImageUniqueID\", 42032: \"CameraOwnerName\", 42033: \"BodySerialNumber\", 42034: \"LensSpecification\", 42035: \"LensMake\", 42036: \"LensModel\", 42037: \"LensSerialNumber\", 0: \"GPSVersionID\", 1: \"GPSLatitudeRef\", 2: \"GPSLatitude\", 3: \"GPSLongitudeRef\", 4: \"GPSLongitude\", 5: \"GPSAltitudeRef\", 6: \"GPSAltitude\", 7: \"GPSTimeStamp\", 8: \"GPSSatellites\", 9: \"GPSStatus\", 10: \"GPSMeasureMode\", 11: \"GPSDOP\", 12: \"GPSSpeedRef\", 13: \"GPSSpeed\", 14: \"GPSTrackRef\", 15: \"GPSTrack\", 16: \"GPSImgDirectionRef\", 17: \"GPSImgDirection\", 18: \"GPSMapDatum\", 19: \"GPSDestLatitudeRef\", 20: \"GPSDestLatitude\", 21: \"GPSDestLongitudeRef\", 22: \"GPSDestLongitude\", 23: \"GPSDestBearingRef\", 24: \"GPSDestBearing\", 25: \"GPSDestDistanceRef\", 26: \"GPSDestDistance\", 27: \"GPSProcessingMethod\", 28: \"GPSAreaInformation\", 29: \"GPSDateStamp\", 30: \"GPSDifferential\", 31: \"GPSHPositioningError\" }, e.ExifMap.prototype.stringValues = { ExposureProgram: { 0: \"Undefined\", 1: \"Manual\", 2: \"Normal program\", 3: \"Aperture priority\", 4: \"Shutter priority\", 5: \"Creative program\", 6: \"Action program\", 7: \"Portrait mode\", 8: \"Landscape mode\" }, MeteringMode: { 0: \"Unknown\", 1: \"Average\", 2: \"CenterWeightedAverage\", 3: \"Spot\", 4: \"MultiSpot\", 5: \"Pattern\", 6: \"Partial\", 255: \"Other\" }, LightSource: { 0: \"Unknown\", 1: \"Daylight\", 2: \"Fluorescent\", 3: \"Tungsten (incandescent light)\", 4: \"Flash\", 9: \"Fine weather\", 10: \"Cloudy weather\", 11: \"Shade\", 12: \"Daylight fluorescent (D 5700 - 7100K)\", 13: \"Day white fluorescent (N 4600 - 5400K)\", 14: \"Cool white fluorescent (W 3900 - 4500K)\", 15: \"White fluorescent (WW 3200 - 3700K)\", 17: \"Standard light A\", 18: \"Standard light B\", 19: \"Standard light C\", 20: \"D55\", 21: \"D65\", 22: \"D75\", 23: \"D50\", 24: \"ISO studio tungsten\", 255: \"Other\" }, Flash: { 0: \"Flash did not fire\", 1: \"Flash fired\", 5: \"Strobe return light not detected\", 7: \"Strobe return light detected\", 9: \"Flash fired, compulsory flash mode\", 13: \"Flash fired, compulsory flash mode, return light not detected\", 15: \"Flash fired, compulsory flash mode, return light detected\", 16: \"Flash did not fire, compulsory flash mode\", 24: \"Flash did not fire, auto mode\", 25: \"Flash fired, auto mode\", 29: \"Flash fired, auto mode, return light not detected\", 31: \"Flash fired, auto mode, return light detected\", 32: \"No flash function\", 65: \"Flash fired, red-eye reduction mode\", 69: \"Flash fired, red-eye reduction mode, return light not detected\", 71: \"Flash fired, red-eye reduction mode, return light detected\", 73: \"Flash fired, compulsory flash mode, red-eye reduction mode\", 77: \"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected\", 79: \"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected\", 89: \"Flash fired, auto mode, red-eye reduction mode\", 93: \"Flash fired, auto mode, return light not detected, red-eye reduction mode\", 95: \"Flash fired, auto mode, return light detected, red-eye reduction mode\" }, SensingMethod: { 1: \"Undefined\", 2: \"One-chip color area sensor\", 3: \"Two-chip color area sensor\", 4: \"Three-chip color area sensor\", 5: \"Color sequential area sensor\", 7: \"Trilinear sensor\", 8: \"Color sequential linear sensor\" }, SceneCaptureType: { 0: \"Standard\", 1: \"Landscape\", 2: \"Portrait\", 3: \"Night scene\" }, SceneType: { 1: \"Directly photographed\" }, CustomRendered: { 0: \"Normal process\", 1: \"Custom process\" }, WhiteBalance: { 0: \"Auto white balance\", 1: \"Manual white balance\" }, GainControl: { 0: \"None\", 1: \"Low gain up\", 2: \"High gain up\", 3: \"Low gain down\", 4: \"High gain down\" }, Contrast: { 0: \"Normal\", 1: \"Soft\", 2: \"Hard\" }, Saturation: { 0: \"Normal\", 1: \"Low saturation\", 2: \"High saturation\" }, Sharpness: { 0: \"Normal\", 1: \"Soft\", 2: \"Hard\" }, SubjectDistanceRange: { 0: \"Unknown\", 1: \"Macro\", 2: \"Close view\", 3: \"Distant view\" }, FileSource: { 3: \"DSC\" }, ComponentsConfiguration: { 0: \"\", 1: \"Y\", 2: \"Cb\", 3: \"Cr\", 4: \"R\", 5: \"G\", 6: \"B\" }, Orientation: { 1: \"top-left\", 2: \"top-right\", 3: \"bottom-right\", 4: \"bottom-left\", 5: \"left-top\", 6: \"right-top\", 7: \"right-bottom\", 8: \"left-bottom\" } }, e.ExifMap.prototype.getText = function (e) { var t = this.get(e); switch (e) { case \"LightSource\": case \"Flash\": case \"MeteringMode\": case \"ExposureProgram\": case \"SensingMethod\": case \"SceneCaptureType\": case \"SceneType\": case \"CustomRendered\": case \"WhiteBalance\": case \"GainControl\": case \"Contrast\": case \"Saturation\": case \"Sharpness\": case \"SubjectDistanceRange\": case \"FileSource\": case \"Orientation\": return this.stringValues[e][t]; case \"ExifVersion\": case \"FlashpixVersion\": if (!t) return; return String.fromCharCode(t[0], t[1], t[2], t[3]); case \"ComponentsConfiguration\": if (!t) return; return this.stringValues[e][t[0]] + this.stringValues[e][t[1]] + this.stringValues[e][t[2]] + this.stringValues[e][t[3]]; case \"GPSVersionID\": if (!t) return; return t[0] + \".\" + t[1] + \".\" + t[2] + \".\" + t[3] }return String(t) }, function (e) { var t, i = e.tags, a = e.map; for (t in i) i.hasOwnProperty(t) && (a[i[t]] = t) }(e.ExifMap.prototype), e.ExifMap.prototype.getAll = function () { var e, t, i = {}; for (e in this) this.hasOwnProperty(e) && (t = this.tags[e]) && (i[t] = this.getText(t)); return i } }), function (e) { \"use strict\"; \"function\" == typeof define && define.amd ? define([\"./load-image\", \"./load-image-meta\"], e) : \"object\" == typeof module && module.exports ? e(require(\"./load-image\"), require(\"./load-image-meta\")) : e(window.loadImage) }(function (e) { \"use strict\"; e.IptcMap = function () { return this }, e.IptcMap.prototype.map = { ObjectName: 5 }, e.IptcMap.prototype.get = function (e) { return this[e] || this[this.map[e]] }, e.parseIptcTags = function (e, t, i, a) { for (var o, n, r = t; r < t + i;)28 === e.getUint8(r) && 2 === e.getUint8(r + 1) && (n = e.getUint8(r + 2)) in a.iptc.tags && (o = function (e, t, i) { for (var a = \"\", o = t; o < t + i; o++)a += String.fromCharCode(e.getUint8(o)); return a }(e, r + 5, e.getInt16(r + 3)), a.iptc.hasOwnProperty(n) ? a.iptc[n] instanceof Array ? a.iptc[n].push(o) : a.iptc[n] = [a.iptc[n], o] : a.iptc[n] = o), r++ }, e.parseIptcData = function (t, i, a, o, n) { if (!n.disableIptc) { for (var r = i + a; i + 8 < r;) { if (function (e, t) { return 943868237 === e.getUint32(t) && 1028 === e.getUint16(t + 4) }(t, i)) { var s = t.getUint8(i + 7); s % 2 != 0 && (s += 1), 0 === s && (s = 4); var l = i + 8 + s; if (l > r) { console.log(\"Invalid IPTC data: Invalid segment offset.\"); break } var c = t.getUint16(i + 6 + s); if (i + c > r) { console.log(\"Invalid IPTC data: Invalid segment size.\"); break } return o.iptc = new e.IptcMap, e.parseIptcTags(t, l, c, o) } i++ } console.log(\"No IPTC data at this offset - could be XMP\") } }, e.metaDataParsers.jpeg[65517].push(e.parseIptcData) }), function (e) { \"use strict\"; \"function\" == typeof define && define.amd ? define([\"./load-image\", \"./load-image-iptc\"], e) : \"object\" == typeof module && module.exports ? e(require(\"./load-image\"), require(\"./load-image-iptc\")) : e(window.loadImage) }(function (e) { \"use strict\"; e.IptcMap.prototype.tags = { 3: \"ObjectType\", 4: \"ObjectAttribute\", 5: \"ObjectName\", 7: \"EditStatus\", 8: \"EditorialUpdate\", 10: \"Urgency\", 12: \"SubjectRef\", 15: \"Category\", 20: \"SupplCategory\", 22: \"FixtureID\", 25: \"Keywords\", 26: \"ContentLocCode\", 27: \"ContentLocName\", 30: \"ReleaseDate\", 35: \"ReleaseTime\", 37: \"ExpirationDate\", 38: \"ExpirationTime\", 40: \"SpecialInstructions\", 42: \"ActionAdvised\", 45: \"RefService\", 47: \"RefDate\", 50: \"RefNumber\", 55: \"DateCreated\", 60: \"TimeCreated\", 62: \"DigitalCreationDate\", 63: \"DigitalCreationTime\", 65: \"OriginatingProgram\", 70: \"ProgramVersion\", 75: \"ObjectCycle\", 80: \"Byline\", 85: \"BylineTitle\", 90: \"City\", 92: \"Sublocation\", 95: \"State\", 100: \"CountryCode\", 101: \"CountryName\", 103: \"OrigTransRef\", 105: \"Headline\", 110: \"Credit\", 115: \"Source\", 116: \"CopyrightNotice\", 118: \"Contact\", 120: \"Caption\", 122: \"WriterEditor\", 130: \"ImageType\", 131: \"ImageOrientation\", 135: \"LanguageID\" }, e.IptcMap.prototype.getText = function (e) { var t = this.get(e); return String(t) }, function (e) { var t, i = e.tags, a = e.map || {}; for (t in i) i.hasOwnProperty(t) && (a[i[t]] = t) }(e.IptcMap.prototype), e.IptcMap.prototype.getAll = function () { var e, t, i = {}; for (e in this) this.hasOwnProperty(e) && (t = this.tags[e]) && (i[t] = this.getText(t)); return i } });\n// https://github.com/zenozeng/color-hash\r\n(function (f) { if (typeof exports === \"object\" && typeof module !== \"undefined\") { module.exports = f() } else if (typeof define === \"function\" && define.amd) { define([], f) } else { var g; if (typeof window !== \"undefined\") { g = window } else if (typeof global !== \"undefined\") { g = global } else if (typeof self !== \"undefined\") { g = self } else { g = this } g.ColorHash = f() } })(function () {\r\n var define, module, exports; return (function e(t, n, r) { function s(o, u) { if (!n[o]) { if (!t[o]) { var a = typeof require == \"function\" && require; if (!u && a) return a(o, !0); if (i) return i(o, !0); var f = new Error(\"Cannot find module '\" + o + \"'\"); throw f.code = \"MODULE_NOT_FOUND\", f } var l = n[o] = { exports: {} }; t[o][0].call(l.exports, function (e) { var n = t[o][1][e]; return s(n ? n : e) }, l, l.exports, e, t, n, r) } return n[o].exports } var i = typeof require == \"function\" && require; for (var o = 0; o < r.length; o++)s(r[o]); return s })({\r\n 1: [function (require, module, exports) {\r\n /**\r\n * BKDR Hash (modified version)\r\n *\r\n * @param {String} str string to hash\r\n * @returns {Number}\r\n */\r\n var BKDRHash = function (str) {\r\n var seed = 131;\r\n var seed2 = 137;\r\n var hash = 0;\r\n // make hash more sensitive for short string like 'a', 'b', 'c'\r\n str += 'x';\r\n // Note: Number.MAX_SAFE_INTEGER equals 9007199254740991\r\n var MAX_SAFE_INTEGER = parseInt(9007199254740991 / seed2);\r\n for (var i = 0; i < str.length; i++) {\r\n if (hash > MAX_SAFE_INTEGER) {\r\n hash = parseInt(hash / seed2);\r\n }\r\n hash = hash * seed + str.charCodeAt(i);\r\n }\r\n return hash;\r\n };\r\n\r\n module.exports = BKDRHash;\r\n\r\n }, {}], 2: [function (require, module, exports) {\r\n var BKDRHash = require('./bkdr-hash');\r\n\r\n /**\r\n * Convert RGB Array to HEX\r\n *\r\n * @param {Array} RGBArray - [R, G, B]\r\n * @returns {String} 6 digits hex starting with #\r\n */\r\n var RGB2HEX = function (RGBArray) {\r\n var hex = '#';\r\n RGBArray.forEach(function (value) {\r\n if (value < 16) {\r\n hex += 0;\r\n }\r\n hex += value.toString(16);\r\n });\r\n return hex;\r\n };\r\n\r\n /**\r\n * Convert HSL to RGB\r\n *\r\n * @see {@link http://zh.wikipedia.org/wiki/HSL和HSV色彩空间} for further information.\r\n * @param {Number} H Hue ∈ [0, 360)\r\n * @param {Number} S Saturation ∈ [0, 1]\r\n * @param {Number} L Lightness ∈ [0, 1]\r\n * @returns {Array} R, G, B ∈ [0, 255]\r\n */\r\n var HSL2RGB = function (H, S, L) {\r\n H /= 360;\r\n\r\n var q = L < 0.5 ? L * (1 + S) : L + S - L * S;\r\n var p = 2 * L - q;\r\n\r\n return [H + 1 / 3, H, H - 1 / 3].map(function (color) {\r\n if (color < 0) {\r\n color++;\r\n }\r\n if (color > 1) {\r\n color--;\r\n }\r\n if (color < 1 / 6) {\r\n color = p + (q - p) * 6 * color;\r\n } else if (color < 0.5) {\r\n color = q;\r\n } else if (color < 2 / 3) {\r\n color = p + (q - p) * 6 * (2 / 3 - color);\r\n } else {\r\n color = p;\r\n }\r\n return Math.round(color * 255);\r\n });\r\n };\r\n\r\n function isArray(o) {\r\n return Object.prototype.toString.call(o) === '[object Array]';\r\n }\r\n\r\n /**\r\n * Color Hash Class\r\n *\r\n * @class\r\n */\r\n var ColorHash = function (options) {\r\n options = options || {};\r\n\r\n var LS = [options.lightness, options.saturation].map(function (param) {\r\n param = param || [0.35, 0.5, 0.65]; // note that 3 is a prime\r\n return isArray(param) ? param.concat() : [param];\r\n });\r\n\r\n this.L = LS[0];\r\n this.S = LS[1];\r\n\r\n if (typeof options.hue === 'number') {\r\n options.hue = { min: options.hue, max: options.hue };\r\n }\r\n if (typeof options.hue === 'object' && !isArray(options.hue)) {\r\n options.hue = [options.hue];\r\n }\r\n if (typeof options.hue === 'undefined') {\r\n options.hue = [];\r\n }\r\n this.hueRanges = options.hue.map(function (range) {\r\n return {\r\n min: typeof range.min === 'undefined' ? 0 : range.min,\r\n max: typeof range.max === 'undefined' ? 360 : range.max\r\n };\r\n });\r\n\r\n this.hash = options.hash || BKDRHash;\r\n };\r\n\r\n /**\r\n * Returns the hash in [h, s, l].\r\n * Note that H ∈ [0, 360); S ∈ [0, 1]; L ∈ [0, 1];\r\n *\r\n * @param {String} str string to hash\r\n * @returns {Array} [h, s, l]\r\n */\r\n ColorHash.prototype.hsl = function (str) {\r\n var H, S, L;\r\n var hash = this.hash(str);\r\n\r\n if (this.hueRanges.length) {\r\n var range = this.hueRanges[hash % this.hueRanges.length];\r\n var hueResolution = 727; // note that 727 is a prime\r\n H = ((hash / this.hueRanges.length) % hueResolution) * (range.max - range.min) / hueResolution + range.min;\r\n } else {\r\n H = hash % 359; // note that 359 is a prime\r\n }\r\n hash = parseInt(hash / 360);\r\n S = this.S[hash % this.S.length];\r\n hash = parseInt(hash / this.S.length);\r\n L = this.L[hash % this.L.length];\r\n\r\n return [H, S, L];\r\n };\r\n\r\n /**\r\n * Returns the hash in [r, g, b].\r\n * Note that R, G, B ∈ [0, 255]\r\n *\r\n * @param {String} str string to hash\r\n * @returns {Array} [r, g, b]\r\n */\r\n ColorHash.prototype.rgb = function (str) {\r\n var hsl = this.hsl(str);\r\n return HSL2RGB.apply(this, hsl);\r\n };\r\n\r\n /**\r\n * Returns the hash in hex\r\n *\r\n * @param {String} str string to hash\r\n * @returns {String} hex with #\r\n */\r\n ColorHash.prototype.hex = function (str) {\r\n var rgb = this.rgb(str);\r\n return RGB2HEX(rgb);\r\n };\r\n\r\n module.exports = ColorHash;\r\n\r\n }, { \"./bkdr-hash\": 1 }]\r\n }, {}, [2])(2)\r\n});\n/*!\r\n * Chart.js\r\n * http://chartjs.org/\r\n * Version: 2.7.2\r\n *\r\n * Copyright 2018 Chart.js Contributors\r\n * Released under the MIT license\r\n * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md\r\n */\r\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Chart = f()}})(function(){var define,module,exports;return (function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o lum2) {\r\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\r\n\t\t}\r\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\r\n\t},\r\n\r\n\tlevel: function (color2) {\r\n\t\tvar contrastRatio = this.contrast(color2);\r\n\t\tif (contrastRatio >= 7.1) {\r\n\t\t\treturn 'AAA';\r\n\t\t}\r\n\r\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\r\n\t},\r\n\r\n\tdark: function () {\r\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\r\n\t\tvar rgb = this.values.rgb;\r\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\r\n\t\treturn yiq < 128;\r\n\t},\r\n\r\n\tlight: function () {\r\n\t\treturn !this.dark();\r\n\t},\r\n\r\n\tnegate: function () {\r\n\t\tvar rgb = [];\r\n\t\tfor (var i = 0; i < 3; i++) {\r\n\t\t\trgb[i] = 255 - this.values.rgb[i];\r\n\t\t}\r\n\t\tthis.setValues('rgb', rgb);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tlighten: function (ratio) {\r\n\t\tvar hsl = this.values.hsl;\r\n\t\thsl[2] += hsl[2] * ratio;\r\n\t\tthis.setValues('hsl', hsl);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tdarken: function (ratio) {\r\n\t\tvar hsl = this.values.hsl;\r\n\t\thsl[2] -= hsl[2] * ratio;\r\n\t\tthis.setValues('hsl', hsl);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tsaturate: function (ratio) {\r\n\t\tvar hsl = this.values.hsl;\r\n\t\thsl[1] += hsl[1] * ratio;\r\n\t\tthis.setValues('hsl', hsl);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tdesaturate: function (ratio) {\r\n\t\tvar hsl = this.values.hsl;\r\n\t\thsl[1] -= hsl[1] * ratio;\r\n\t\tthis.setValues('hsl', hsl);\r\n\t\treturn this;\r\n\t},\r\n\r\n\twhiten: function (ratio) {\r\n\t\tvar hwb = this.values.hwb;\r\n\t\thwb[1] += hwb[1] * ratio;\r\n\t\tthis.setValues('hwb', hwb);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tblacken: function (ratio) {\r\n\t\tvar hwb = this.values.hwb;\r\n\t\thwb[2] += hwb[2] * ratio;\r\n\t\tthis.setValues('hwb', hwb);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tgreyscale: function () {\r\n\t\tvar rgb = this.values.rgb;\r\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\r\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\r\n\t\tthis.setValues('rgb', [val, val, val]);\r\n\t\treturn this;\r\n\t},\r\n\r\n\tclearer: function (ratio) {\r\n\t\tvar alpha = this.values.alpha;\r\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\r\n\t\treturn this;\r\n\t},\r\n\r\n\topaquer: function (ratio) {\r\n\t\tvar alpha = this.values.alpha;\r\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\r\n\t\treturn this;\r\n\t},\r\n\r\n\trotate: function (degrees) {\r\n\t\tvar hsl = this.values.hsl;\r\n\t\tvar hue = (hsl[0] + degrees) % 360;\r\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\r\n\t\tthis.setValues('hsl', hsl);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t/**\r\n\t * Ported from sass implementation in C\r\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\r\n\t */\r\n\tmix: function (mixinColor, weight) {\r\n\t\tvar color1 = this;\r\n\t\tvar color2 = mixinColor;\r\n\t\tvar p = weight === undefined ? 0.5 : weight;\r\n\r\n\t\tvar w = 2 * p - 1;\r\n\t\tvar a = color1.alpha() - color2.alpha();\r\n\r\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\r\n\t\tvar w2 = 1 - w1;\r\n\r\n\t\treturn this\r\n\t\t\t.rgb(\r\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\r\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\r\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\r\n\t\t\t)\r\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\r\n\t},\r\n\r\n\ttoJSON: function () {\r\n\t\treturn this.rgb();\r\n\t},\r\n\r\n\tclone: function () {\r\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\r\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\r\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\r\n\t\t// except 'alpha' which is a number.\r\n\t\tvar result = new Color();\r\n\t\tvar source = this.values;\r\n\t\tvar target = result.values;\r\n\t\tvar value, type;\r\n\r\n\t\tfor (var prop in source) {\r\n\t\t\tif (source.hasOwnProperty(prop)) {\r\n\t\t\t\tvalue = source[prop];\r\n\t\t\t\ttype = ({}).toString.call(value);\r\n\t\t\t\tif (type === '[object Array]') {\r\n\t\t\t\t\ttarget[prop] = value.slice(0);\r\n\t\t\t\t} else if (type === '[object Number]') {\r\n\t\t\t\t\ttarget[prop] = value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error('unexpected color value:', value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n};\r\n\r\nColor.prototype.spaces = {\r\n\trgb: ['red', 'green', 'blue'],\r\n\thsl: ['hue', 'saturation', 'lightness'],\r\n\thsv: ['hue', 'saturation', 'value'],\r\n\thwb: ['hue', 'whiteness', 'blackness'],\r\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\r\n};\r\n\r\nColor.prototype.maxes = {\r\n\trgb: [255, 255, 255],\r\n\thsl: [360, 100, 100],\r\n\thsv: [360, 100, 100],\r\n\thwb: [360, 100, 100],\r\n\tcmyk: [100, 100, 100, 100]\r\n};\r\n\r\nColor.prototype.getValues = function (space) {\r\n\tvar values = this.values;\r\n\tvar vals = {};\r\n\r\n\tfor (var i = 0; i < space.length; i++) {\r\n\t\tvals[space.charAt(i)] = values[space][i];\r\n\t}\r\n\r\n\tif (values.alpha !== 1) {\r\n\t\tvals.a = values.alpha;\r\n\t}\r\n\r\n\t// {r: 255, g: 255, b: 255, a: 0.4}\r\n\treturn vals;\r\n};\r\n\r\nColor.prototype.setValues = function (space, vals) {\r\n\tvar values = this.values;\r\n\tvar spaces = this.spaces;\r\n\tvar maxes = this.maxes;\r\n\tvar alpha = 1;\r\n\tvar i;\r\n\r\n\tthis.valid = true;\r\n\r\n\tif (space === 'alpha') {\r\n\t\talpha = vals;\r\n\t} else if (vals.length) {\r\n\t\t// [10, 10, 10]\r\n\t\tvalues[space] = vals.slice(0, space.length);\r\n\t\talpha = vals[space.length];\r\n\t} else if (vals[space.charAt(0)] !== undefined) {\r\n\t\t// {r: 10, g: 10, b: 10}\r\n\t\tfor (i = 0; i < space.length; i++) {\r\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\r\n\t\t}\r\n\r\n\t\talpha = vals.a;\r\n\t} else if (vals[spaces[space][0]] !== undefined) {\r\n\t\t// {red: 10, green: 10, blue: 10}\r\n\t\tvar chans = spaces[space];\r\n\r\n\t\tfor (i = 0; i < space.length; i++) {\r\n\t\t\tvalues[space][i] = vals[chans[i]];\r\n\t\t}\r\n\r\n\t\talpha = vals.alpha;\r\n\t}\r\n\r\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\r\n\r\n\tif (space === 'alpha') {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tvar capped;\r\n\r\n\t// cap values of the space prior converting all values\r\n\tfor (i = 0; i < space.length; i++) {\r\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\r\n\t\tvalues[space][i] = Math.round(capped);\r\n\t}\r\n\r\n\t// convert to all the other color spaces\r\n\tfor (var sname in spaces) {\r\n\t\tif (sname !== space) {\r\n\t\t\tvalues[sname] = convert[space][sname](values[space]);\r\n\t\t}\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n\r\nColor.prototype.setSpace = function (space, args) {\r\n\tvar vals = args[0];\r\n\r\n\tif (vals === undefined) {\r\n\t\t// color.rgb()\r\n\t\treturn this.getValues(space);\r\n\t}\r\n\r\n\t// color.rgb(10, 10, 10)\r\n\tif (typeof vals === 'number') {\r\n\t\tvals = Array.prototype.slice.call(args);\r\n\t}\r\n\r\n\tthis.setValues(space, vals);\r\n\treturn this;\r\n};\r\n\r\nColor.prototype.setChannel = function (space, index, val) {\r\n\tvar svalues = this.values[space];\r\n\tif (val === undefined) {\r\n\t\t// color.red()\r\n\t\treturn svalues[index];\r\n\t} else if (val === svalues[index]) {\r\n\t\t// color.red(color.red())\r\n\t\treturn this;\r\n\t}\r\n\r\n\t// color.red(100)\r\n\tsvalues[index] = val;\r\n\tthis.setValues(space, svalues);\r\n\r\n\treturn this;\r\n};\r\n\r\nif (typeof window !== 'undefined') {\r\n\twindow.Color = Color;\r\n}\r\n\r\nmodule.exports = Color;\r\n\r\n},{\"2\":2,\"5\":5}],4:[function(require,module,exports){\r\n/* MIT license */\r\n\r\nmodule.exports = {\r\n rgb2hsl: rgb2hsl,\r\n rgb2hsv: rgb2hsv,\r\n rgb2hwb: rgb2hwb,\r\n rgb2cmyk: rgb2cmyk,\r\n rgb2keyword: rgb2keyword,\r\n rgb2xyz: rgb2xyz,\r\n rgb2lab: rgb2lab,\r\n rgb2lch: rgb2lch,\r\n\r\n hsl2rgb: hsl2rgb,\r\n hsl2hsv: hsl2hsv,\r\n hsl2hwb: hsl2hwb,\r\n hsl2cmyk: hsl2cmyk,\r\n hsl2keyword: hsl2keyword,\r\n\r\n hsv2rgb: hsv2rgb,\r\n hsv2hsl: hsv2hsl,\r\n hsv2hwb: hsv2hwb,\r\n hsv2cmyk: hsv2cmyk,\r\n hsv2keyword: hsv2keyword,\r\n\r\n hwb2rgb: hwb2rgb,\r\n hwb2hsl: hwb2hsl,\r\n hwb2hsv: hwb2hsv,\r\n hwb2cmyk: hwb2cmyk,\r\n hwb2keyword: hwb2keyword,\r\n\r\n cmyk2rgb: cmyk2rgb,\r\n cmyk2hsl: cmyk2hsl,\r\n cmyk2hsv: cmyk2hsv,\r\n cmyk2hwb: cmyk2hwb,\r\n cmyk2keyword: cmyk2keyword,\r\n\r\n keyword2rgb: keyword2rgb,\r\n keyword2hsl: keyword2hsl,\r\n keyword2hsv: keyword2hsv,\r\n keyword2hwb: keyword2hwb,\r\n keyword2cmyk: keyword2cmyk,\r\n keyword2lab: keyword2lab,\r\n keyword2xyz: keyword2xyz,\r\n\r\n xyz2rgb: xyz2rgb,\r\n xyz2lab: xyz2lab,\r\n xyz2lch: xyz2lch,\r\n\r\n lab2xyz: lab2xyz,\r\n lab2rgb: lab2rgb,\r\n lab2lch: lab2lch,\r\n\r\n lch2lab: lch2lab,\r\n lch2xyz: lch2xyz,\r\n lch2rgb: lch2rgb\r\n}\r\n\r\n\r\nfunction rgb2hsl(rgb) {\r\n var r = rgb[0]/255,\r\n g = rgb[1]/255,\r\n b = rgb[2]/255,\r\n min = Math.min(r, g, b),\r\n max = Math.max(r, g, b),\r\n delta = max - min,\r\n h, s, l;\r\n\r\n if (max == min)\r\n h = 0;\r\n else if (r == max)\r\n h = (g - b) / delta;\r\n else if (g == max)\r\n h = 2 + (b - r) / delta;\r\n else if (b == max)\r\n h = 4 + (r - g)/ delta;\r\n\r\n h = Math.min(h * 60, 360);\r\n\r\n if (h < 0)\r\n h += 360;\r\n\r\n l = (min + max) / 2;\r\n\r\n if (max == min)\r\n s = 0;\r\n else if (l <= 0.5)\r\n s = delta / (max + min);\r\n else\r\n s = delta / (2 - max - min);\r\n\r\n return [h, s * 100, l * 100];\r\n}\r\n\r\nfunction rgb2hsv(rgb) {\r\n var r = rgb[0],\r\n g = rgb[1],\r\n b = rgb[2],\r\n min = Math.min(r, g, b),\r\n max = Math.max(r, g, b),\r\n delta = max - min,\r\n h, s, v;\r\n\r\n if (max == 0)\r\n s = 0;\r\n else\r\n s = (delta/max * 1000)/10;\r\n\r\n if (max == min)\r\n h = 0;\r\n else if (r == max)\r\n h = (g - b) / delta;\r\n else if (g == max)\r\n h = 2 + (b - r) / delta;\r\n else if (b == max)\r\n h = 4 + (r - g) / delta;\r\n\r\n h = Math.min(h * 60, 360);\r\n\r\n if (h < 0)\r\n h += 360;\r\n\r\n v = ((max / 255) * 1000) / 10;\r\n\r\n return [h, s, v];\r\n}\r\n\r\nfunction rgb2hwb(rgb) {\r\n var r = rgb[0],\r\n g = rgb[1],\r\n b = rgb[2],\r\n h = rgb2hsl(rgb)[0],\r\n w = 1/255 * Math.min(r, Math.min(g, b)),\r\n b = 1 - 1/255 * Math.max(r, Math.max(g, b));\r\n\r\n return [h, w * 100, b * 100];\r\n}\r\n\r\nfunction rgb2cmyk(rgb) {\r\n var r = rgb[0] / 255,\r\n g = rgb[1] / 255,\r\n b = rgb[2] / 255,\r\n c, m, y, k;\r\n\r\n k = Math.min(1 - r, 1 - g, 1 - b);\r\n c = (1 - r - k) / (1 - k) || 0;\r\n m = (1 - g - k) / (1 - k) || 0;\r\n y = (1 - b - k) / (1 - k) || 0;\r\n return [c * 100, m * 100, y * 100, k * 100];\r\n}\r\n\r\nfunction rgb2keyword(rgb) {\r\n return reverseKeywords[JSON.stringify(rgb)];\r\n}\r\n\r\nfunction rgb2xyz(rgb) {\r\n var r = rgb[0] / 255,\r\n g = rgb[1] / 255,\r\n b = rgb[2] / 255;\r\n\r\n // assume sRGB\r\n r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\r\n g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\r\n b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\r\n\r\n var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\r\n var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\r\n var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\r\n\r\n return [x * 100, y *100, z * 100];\r\n}\r\n\r\nfunction rgb2lab(rgb) {\r\n var xyz = rgb2xyz(rgb),\r\n x = xyz[0],\r\n y = xyz[1],\r\n z = xyz[2],\r\n l, a, b;\r\n\r\n x /= 95.047;\r\n y /= 100;\r\n z /= 108.883;\r\n\r\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\r\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\r\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\r\n\r\n l = (116 * y) - 16;\r\n a = 500 * (x - y);\r\n b = 200 * (y - z);\r\n\r\n return [l, a, b];\r\n}\r\n\r\nfunction rgb2lch(args) {\r\n return lab2lch(rgb2lab(args));\r\n}\r\n\r\nfunction hsl2rgb(hsl) {\r\n var h = hsl[0] / 360,\r\n s = hsl[1] / 100,\r\n l = hsl[2] / 100,\r\n t1, t2, t3, rgb, val;\r\n\r\n if (s == 0) {\r\n val = l * 255;\r\n return [val, val, val];\r\n }\r\n\r\n if (l < 0.5)\r\n t2 = l * (1 + s);\r\n else\r\n t2 = l + s - l * s;\r\n t1 = 2 * l - t2;\r\n\r\n rgb = [0, 0, 0];\r\n for (var i = 0; i < 3; i++) {\r\n t3 = h + 1 / 3 * - (i - 1);\r\n t3 < 0 && t3++;\r\n t3 > 1 && t3--;\r\n\r\n if (6 * t3 < 1)\r\n val = t1 + (t2 - t1) * 6 * t3;\r\n else if (2 * t3 < 1)\r\n val = t2;\r\n else if (3 * t3 < 2)\r\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\r\n else\r\n val = t1;\r\n\r\n rgb[i] = val * 255;\r\n }\r\n\r\n return rgb;\r\n}\r\n\r\nfunction hsl2hsv(hsl) {\r\n var h = hsl[0],\r\n s = hsl[1] / 100,\r\n l = hsl[2] / 100,\r\n sv, v;\r\n\r\n if(l === 0) {\r\n // no need to do calc on black\r\n // also avoids divide by 0 error\r\n return [0, 0, 0];\r\n }\r\n\r\n l *= 2;\r\n s *= (l <= 1) ? l : 2 - l;\r\n v = (l + s) / 2;\r\n sv = (2 * s) / (l + s);\r\n return [h, sv * 100, v * 100];\r\n}\r\n\r\nfunction hsl2hwb(args) {\r\n return rgb2hwb(hsl2rgb(args));\r\n}\r\n\r\nfunction hsl2cmyk(args) {\r\n return rgb2cmyk(hsl2rgb(args));\r\n}\r\n\r\nfunction hsl2keyword(args) {\r\n return rgb2keyword(hsl2rgb(args));\r\n}\r\n\r\n\r\nfunction hsv2rgb(hsv) {\r\n var h = hsv[0] / 60,\r\n s = hsv[1] / 100,\r\n v = hsv[2] / 100,\r\n hi = Math.floor(h) % 6;\r\n\r\n var f = h - Math.floor(h),\r\n p = 255 * v * (1 - s),\r\n q = 255 * v * (1 - (s * f)),\r\n t = 255 * v * (1 - (s * (1 - f))),\r\n v = 255 * v;\r\n\r\n switch(hi) {\r\n case 0:\r\n return [v, t, p];\r\n case 1:\r\n return [q, v, p];\r\n case 2:\r\n return [p, v, t];\r\n case 3:\r\n return [p, q, v];\r\n case 4:\r\n return [t, p, v];\r\n case 5:\r\n return [v, p, q];\r\n }\r\n}\r\n\r\nfunction hsv2hsl(hsv) {\r\n var h = hsv[0],\r\n s = hsv[1] / 100,\r\n v = hsv[2] / 100,\r\n sl, l;\r\n\r\n l = (2 - s) * v;\r\n sl = s * v;\r\n sl /= (l <= 1) ? l : 2 - l;\r\n sl = sl || 0;\r\n l /= 2;\r\n return [h, sl * 100, l * 100];\r\n}\r\n\r\nfunction hsv2hwb(args) {\r\n return rgb2hwb(hsv2rgb(args))\r\n}\r\n\r\nfunction hsv2cmyk(args) {\r\n return rgb2cmyk(hsv2rgb(args));\r\n}\r\n\r\nfunction hsv2keyword(args) {\r\n return rgb2keyword(hsv2rgb(args));\r\n}\r\n\r\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\r\nfunction hwb2rgb(hwb) {\r\n var h = hwb[0] / 360,\r\n wh = hwb[1] / 100,\r\n bl = hwb[2] / 100,\r\n ratio = wh + bl,\r\n i, v, f, n;\r\n\r\n // wh + bl cant be > 1\r\n if (ratio > 1) {\r\n wh /= ratio;\r\n bl /= ratio;\r\n }\r\n\r\n i = Math.floor(6 * h);\r\n v = 1 - bl;\r\n f = 6 * h - i;\r\n if ((i & 0x01) != 0) {\r\n f = 1 - f;\r\n }\r\n n = wh + f * (v - wh); // linear interpolation\r\n\r\n switch (i) {\r\n default:\r\n case 6:\r\n case 0: r = v; g = n; b = wh; break;\r\n case 1: r = n; g = v; b = wh; break;\r\n case 2: r = wh; g = v; b = n; break;\r\n case 3: r = wh; g = n; b = v; break;\r\n case 4: r = n; g = wh; b = v; break;\r\n case 5: r = v; g = wh; b = n; break;\r\n }\r\n\r\n return [r * 255, g * 255, b * 255];\r\n}\r\n\r\nfunction hwb2hsl(args) {\r\n return rgb2hsl(hwb2rgb(args));\r\n}\r\n\r\nfunction hwb2hsv(args) {\r\n return rgb2hsv(hwb2rgb(args));\r\n}\r\n\r\nfunction hwb2cmyk(args) {\r\n return rgb2cmyk(hwb2rgb(args));\r\n}\r\n\r\nfunction hwb2keyword(args) {\r\n return rgb2keyword(hwb2rgb(args));\r\n}\r\n\r\nfunction cmyk2rgb(cmyk) {\r\n var c = cmyk[0] / 100,\r\n m = cmyk[1] / 100,\r\n y = cmyk[2] / 100,\r\n k = cmyk[3] / 100,\r\n r, g, b;\r\n\r\n r = 1 - Math.min(1, c * (1 - k) + k);\r\n g = 1 - Math.min(1, m * (1 - k) + k);\r\n b = 1 - Math.min(1, y * (1 - k) + k);\r\n return [r * 255, g * 255, b * 255];\r\n}\r\n\r\nfunction cmyk2hsl(args) {\r\n return rgb2hsl(cmyk2rgb(args));\r\n}\r\n\r\nfunction cmyk2hsv(args) {\r\n return rgb2hsv(cmyk2rgb(args));\r\n}\r\n\r\nfunction cmyk2hwb(args) {\r\n return rgb2hwb(cmyk2rgb(args));\r\n}\r\n\r\nfunction cmyk2keyword(args) {\r\n return rgb2keyword(cmyk2rgb(args));\r\n}\r\n\r\n\r\nfunction xyz2rgb(xyz) {\r\n var x = xyz[0] / 100,\r\n y = xyz[1] / 100,\r\n z = xyz[2] / 100,\r\n r, g, b;\r\n\r\n r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\r\n g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\r\n b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\r\n\r\n // assume sRGB\r\n r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\r\n : r = (r * 12.92);\r\n\r\n g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\r\n : g = (g * 12.92);\r\n\r\n b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\r\n : b = (b * 12.92);\r\n\r\n r = Math.min(Math.max(0, r), 1);\r\n g = Math.min(Math.max(0, g), 1);\r\n b = Math.min(Math.max(0, b), 1);\r\n\r\n return [r * 255, g * 255, b * 255];\r\n}\r\n\r\nfunction xyz2lab(xyz) {\r\n var x = xyz[0],\r\n y = xyz[1],\r\n z = xyz[2],\r\n l, a, b;\r\n\r\n x /= 95.047;\r\n y /= 100;\r\n z /= 108.883;\r\n\r\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\r\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\r\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\r\n\r\n l = (116 * y) - 16;\r\n a = 500 * (x - y);\r\n b = 200 * (y - z);\r\n\r\n return [l, a, b];\r\n}\r\n\r\nfunction xyz2lch(args) {\r\n return lab2lch(xyz2lab(args));\r\n}\r\n\r\nfunction lab2xyz(lab) {\r\n var l = lab[0],\r\n a = lab[1],\r\n b = lab[2],\r\n x, y, z, y2;\r\n\r\n if (l <= 8) {\r\n y = (l * 100) / 903.3;\r\n y2 = (7.787 * (y / 100)) + (16 / 116);\r\n } else {\r\n y = 100 * Math.pow((l + 16) / 116, 3);\r\n y2 = Math.pow(y / 100, 1/3);\r\n }\r\n\r\n x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\r\n\r\n z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\r\n\r\n return [x, y, z];\r\n}\r\n\r\nfunction lab2lch(lab) {\r\n var l = lab[0],\r\n a = lab[1],\r\n b = lab[2],\r\n hr, h, c;\r\n\r\n hr = Math.atan2(b, a);\r\n h = hr * 360 / 2 / Math.PI;\r\n if (h < 0) {\r\n h += 360;\r\n }\r\n c = Math.sqrt(a * a + b * b);\r\n return [l, c, h];\r\n}\r\n\r\nfunction lab2rgb(args) {\r\n return xyz2rgb(lab2xyz(args));\r\n}\r\n\r\nfunction lch2lab(lch) {\r\n var l = lch[0],\r\n c = lch[1],\r\n h = lch[2],\r\n a, b, hr;\r\n\r\n hr = h / 360 * 2 * Math.PI;\r\n a = c * Math.cos(hr);\r\n b = c * Math.sin(hr);\r\n return [l, a, b];\r\n}\r\n\r\nfunction lch2xyz(args) {\r\n return lab2xyz(lch2lab(args));\r\n}\r\n\r\nfunction lch2rgb(args) {\r\n return lab2rgb(lch2lab(args));\r\n}\r\n\r\nfunction keyword2rgb(keyword) {\r\n return cssKeywords[keyword];\r\n}\r\n\r\nfunction keyword2hsl(args) {\r\n return rgb2hsl(keyword2rgb(args));\r\n}\r\n\r\nfunction keyword2hsv(args) {\r\n return rgb2hsv(keyword2rgb(args));\r\n}\r\n\r\nfunction keyword2hwb(args) {\r\n return rgb2hwb(keyword2rgb(args));\r\n}\r\n\r\nfunction keyword2cmyk(args) {\r\n return rgb2cmyk(keyword2rgb(args));\r\n}\r\n\r\nfunction keyword2lab(args) {\r\n return rgb2lab(keyword2rgb(args));\r\n}\r\n\r\nfunction keyword2xyz(args) {\r\n return rgb2xyz(keyword2rgb(args));\r\n}\r\n\r\nvar cssKeywords = {\r\n aliceblue: [240,248,255],\r\n antiquewhite: [250,235,215],\r\n aqua: [0,255,255],\r\n aquamarine: [127,255,212],\r\n azure: [240,255,255],\r\n beige: [245,245,220],\r\n bisque: [255,228,196],\r\n black: [0,0,0],\r\n blanchedalmond: [255,235,205],\r\n blue: [0,0,255],\r\n blueviolet: [138,43,226],\r\n brown: [165,42,42],\r\n burlywood: [222,184,135],\r\n cadetblue: [95,158,160],\r\n chartreuse: [127,255,0],\r\n chocolate: [210,105,30],\r\n coral: [255,127,80],\r\n cornflowerblue: [100,149,237],\r\n cornsilk: [255,248,220],\r\n crimson: [220,20,60],\r\n cyan: [0,255,255],\r\n darkblue: [0,0,139],\r\n darkcyan: [0,139,139],\r\n darkgoldenrod: [184,134,11],\r\n darkgray: [169,169,169],\r\n darkgreen: [0,100,0],\r\n darkgrey: [169,169,169],\r\n darkkhaki: [189,183,107],\r\n darkmagenta: [139,0,139],\r\n darkolivegreen: [85,107,47],\r\n darkorange: [255,140,0],\r\n darkorchid: [153,50,204],\r\n darkred: [139,0,0],\r\n darksalmon: [233,150,122],\r\n darkseagreen: [143,188,143],\r\n darkslateblue: [72,61,139],\r\n darkslategray: [47,79,79],\r\n darkslategrey: [47,79,79],\r\n darkturquoise: [0,206,209],\r\n darkviolet: [148,0,211],\r\n deeppink: [255,20,147],\r\n deepskyblue: [0,191,255],\r\n dimgray: [105,105,105],\r\n dimgrey: [105,105,105],\r\n dodgerblue: [30,144,255],\r\n firebrick: [178,34,34],\r\n floralwhite: [255,250,240],\r\n forestgreen: [34,139,34],\r\n fuchsia: [255,0,255],\r\n gainsboro: [220,220,220],\r\n ghostwhite: [248,248,255],\r\n gold: [255,215,0],\r\n goldenrod: [218,165,32],\r\n gray: [128,128,128],\r\n green: [0,128,0],\r\n greenyellow: [173,255,47],\r\n grey: [128,128,128],\r\n honeydew: [240,255,240],\r\n hotpink: [255,105,180],\r\n indianred: [205,92,92],\r\n indigo: [75,0,130],\r\n ivory: [255,255,240],\r\n khaki: [240,230,140],\r\n lavender: [230,230,250],\r\n lavenderblush: [255,240,245],\r\n lawngreen: [124,252,0],\r\n lemonchiffon: [255,250,205],\r\n lightblue: [173,216,230],\r\n lightcoral: [240,128,128],\r\n lightcyan: [224,255,255],\r\n lightgoldenrodyellow: [250,250,210],\r\n lightgray: [211,211,211],\r\n lightgreen: [144,238,144],\r\n lightgrey: [211,211,211],\r\n lightpink: [255,182,193],\r\n lightsalmon: [255,160,122],\r\n lightseagreen: [32,178,170],\r\n lightskyblue: [135,206,250],\r\n lightslategray: [119,136,153],\r\n lightslategrey: [119,136,153],\r\n lightsteelblue: [176,196,222],\r\n lightyellow: [255,255,224],\r\n lime: [0,255,0],\r\n limegreen: [50,205,50],\r\n linen: [250,240,230],\r\n magenta: [255,0,255],\r\n maroon: [128,0,0],\r\n mediumaquamarine: [102,205,170],\r\n mediumblue: [0,0,205],\r\n mediumorchid: [186,85,211],\r\n mediumpurple: [147,112,219],\r\n mediumseagreen: [60,179,113],\r\n mediumslateblue: [123,104,238],\r\n mediumspringgreen: [0,250,154],\r\n mediumturquoise: [72,209,204],\r\n mediumvioletred: [199,21,133],\r\n midnightblue: [25,25,112],\r\n mintcream: [245,255,250],\r\n mistyrose: [255,228,225],\r\n moccasin: [255,228,181],\r\n navajowhite: [255,222,173],\r\n navy: [0,0,128],\r\n oldlace: [253,245,230],\r\n olive: [128,128,0],\r\n olivedrab: [107,142,35],\r\n orange: [255,165,0],\r\n orangered: [255,69,0],\r\n orchid: [218,112,214],\r\n palegoldenrod: [238,232,170],\r\n palegreen: [152,251,152],\r\n paleturquoise: [175,238,238],\r\n palevioletred: [219,112,147],\r\n papayawhip: [255,239,213],\r\n peachpuff: [255,218,185],\r\n peru: [205,133,63],\r\n pink: [255,192,203],\r\n plum: [221,160,221],\r\n powderblue: [176,224,230],\r\n purple: [128,0,128],\r\n rebeccapurple: [102, 51, 153],\r\n red: [255,0,0],\r\n rosybrown: [188,143,143],\r\n royalblue: [65,105,225],\r\n saddlebrown: [139,69,19],\r\n salmon: [250,128,114],\r\n sandybrown: [244,164,96],\r\n seagreen: [46,139,87],\r\n seashell: [255,245,238],\r\n sienna: [160,82,45],\r\n silver: [192,192,192],\r\n skyblue: [135,206,235],\r\n slateblue: [106,90,205],\r\n slategray: [112,128,144],\r\n slategrey: [112,128,144],\r\n snow: [255,250,250],\r\n springgreen: [0,255,127],\r\n steelblue: [70,130,180],\r\n tan: [210,180,140],\r\n teal: [0,128,128],\r\n thistle: [216,191,216],\r\n tomato: [255,99,71],\r\n turquoise: [64,224,208],\r\n violet: [238,130,238],\r\n wheat: [245,222,179],\r\n white: [255,255,255],\r\n whitesmoke: [245,245,245],\r\n yellow: [255,255,0],\r\n yellowgreen: [154,205,50]\r\n};\r\n\r\nvar reverseKeywords = {};\r\nfor (var key in cssKeywords) {\r\n reverseKeywords[JSON.stringify(cssKeywords[key])] = key;\r\n}\r\n\r\n},{}],5:[function(require,module,exports){\r\nvar conversions = require(4);\r\n\r\nvar convert = function() {\r\n return new Converter();\r\n}\r\n\r\nfor (var func in conversions) {\r\n // export Raw versions\r\n convert[func + \"Raw\"] = (function(func) {\r\n // accept array or plain args\r\n return function(arg) {\r\n if (typeof arg == \"number\")\r\n arg = Array.prototype.slice.call(arguments);\r\n return conversions[func](arg);\r\n }\r\n })(func);\r\n\r\n var pair = /(\\w+)2(\\w+)/.exec(func),\r\n from = pair[1],\r\n to = pair[2];\r\n\r\n // export rgb2hsl and [\"rgb\"][\"hsl\"]\r\n convert[from] = convert[from] || {};\r\n\r\n convert[from][to] = convert[func] = (function(func) { \r\n return function(arg) {\r\n if (typeof arg == \"number\")\r\n arg = Array.prototype.slice.call(arguments);\r\n \r\n var val = conversions[func](arg);\r\n if (typeof val == \"string\" || val === undefined)\r\n return val; // keyword\r\n\r\n for (var i = 0; i < val.length; i++)\r\n val[i] = Math.round(val[i]);\r\n return val;\r\n }\r\n })(func);\r\n}\r\n\r\n\r\n/* Converter does lazy conversion and caching */\r\nvar Converter = function() {\r\n this.convs = {};\r\n};\r\n\r\n/* Either get the values for a space or\r\n set the values for a space, depending on args */\r\nConverter.prototype.routeSpace = function(space, args) {\r\n var values = args[0];\r\n if (values === undefined) {\r\n // color.rgb()\r\n return this.getValues(space);\r\n }\r\n // color.rgb(10, 10, 10)\r\n if (typeof values == \"number\") {\r\n values = Array.prototype.slice.call(args); \r\n }\r\n\r\n return this.setValues(space, values);\r\n};\r\n \r\n/* Set the values for a space, invalidating cache */\r\nConverter.prototype.setValues = function(space, values) {\r\n this.space = space;\r\n this.convs = {};\r\n this.convs[space] = values;\r\n return this;\r\n};\r\n\r\n/* Get the values for a space. If there's already\r\n a conversion for the space, fetch it, otherwise\r\n compute it */\r\nConverter.prototype.getValues = function(space) {\r\n var vals = this.convs[space];\r\n if (!vals) {\r\n var fspace = this.space,\r\n from = this.convs[fspace];\r\n vals = convert[fspace][space](from);\r\n\r\n this.convs[space] = vals;\r\n }\r\n return vals;\r\n};\r\n\r\n[\"rgb\", \"hsl\", \"hsv\", \"cmyk\", \"keyword\"].forEach(function(space) {\r\n Converter.prototype[space] = function(vals) {\r\n return this.routeSpace(space, arguments);\r\n }\r\n});\r\n\r\nmodule.exports = convert;\r\n},{\"4\":4}],6:[function(require,module,exports){\r\n'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n\r\n},{}],7:[function(require,module,exports){\r\n/**\r\n * @namespace Chart\r\n */\r\nvar Chart = require(29)();\r\n\r\nChart.helpers = require(45);\r\n\r\n// @todo dispatch these helpers into appropriated helpers/helpers.* file and write unit tests!\r\nrequire(27)(Chart);\r\n\r\nChart.defaults = require(25);\r\nChart.Element = require(26);\r\nChart.elements = require(40);\r\nChart.Interaction = require(28);\r\nChart.layouts = require(30);\r\nChart.platform = require(48);\r\nChart.plugins = require(31);\r\nChart.Ticks = require(34);\r\n\r\nrequire(22)(Chart);\r\nrequire(23)(Chart);\r\nrequire(24)(Chart);\r\nrequire(33)(Chart);\r\nrequire(32)(Chart);\r\nrequire(35)(Chart);\r\n\r\nrequire(55)(Chart);\r\nrequire(53)(Chart);\r\nrequire(54)(Chart);\r\nrequire(56)(Chart);\r\nrequire(57)(Chart);\r\nrequire(58)(Chart);\r\n\r\n// Controllers must be loaded after elements\r\n// See Chart.core.datasetController.dataElementType\r\nrequire(15)(Chart);\r\nrequire(16)(Chart);\r\nrequire(17)(Chart);\r\nrequire(18)(Chart);\r\nrequire(19)(Chart);\r\nrequire(20)(Chart);\r\nrequire(21)(Chart);\r\n\r\nrequire(8)(Chart);\r\nrequire(9)(Chart);\r\nrequire(10)(Chart);\r\nrequire(11)(Chart);\r\nrequire(12)(Chart);\r\nrequire(13)(Chart);\r\nrequire(14)(Chart);\r\n\r\n// Loading built-it plugins\r\nvar plugins = require(49);\r\nfor (var k in plugins) {\r\n\tif (plugins.hasOwnProperty(k)) {\r\n\t\tChart.plugins.register(plugins[k]);\r\n\t}\r\n}\r\n\r\nChart.platform.initialize();\r\n\r\nmodule.exports = Chart;\r\nif (typeof window !== 'undefined') {\r\n\twindow.Chart = Chart;\r\n}\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, not available anymore\r\n * @namespace Chart.Legend\r\n * @deprecated since version 2.1.5\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nChart.Legend = plugins.legend._element;\r\n\r\n/**\r\n * Provided for backward compatibility, not available anymore\r\n * @namespace Chart.Title\r\n * @deprecated since version 2.1.5\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nChart.Title = plugins.title._element;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.plugins instead\r\n * @namespace Chart.pluginService\r\n * @deprecated since version 2.1.5\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nChart.pluginService = Chart.plugins;\r\n\r\n/**\r\n * Provided for backward compatibility, inheriting from Chart.PlugingBase has no\r\n * effect, instead simply create/register plugins via plain JavaScript objects.\r\n * @interface Chart.PluginBase\r\n * @deprecated since version 2.5.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nChart.PluginBase = Chart.Element.extend({});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas instead.\r\n * @namespace Chart.canvasHelpers\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nChart.canvasHelpers = Chart.helpers.canvas;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.layouts instead.\r\n * @namespace Chart.layoutService\r\n * @deprecated since version 2.8.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nChart.layoutService = Chart.layouts;\r\n\r\n},{\"10\":10,\"11\":11,\"12\":12,\"13\":13,\"14\":14,\"15\":15,\"16\":16,\"17\":17,\"18\":18,\"19\":19,\"20\":20,\"21\":21,\"22\":22,\"23\":23,\"24\":24,\"25\":25,\"26\":26,\"27\":27,\"28\":28,\"29\":29,\"30\":30,\"31\":31,\"32\":32,\"33\":33,\"34\":34,\"35\":35,\"40\":40,\"45\":45,\"48\":48,\"49\":49,\"53\":53,\"54\":54,\"55\":55,\"56\":56,\"57\":57,\"58\":58,\"8\":8,\"9\":9}],8:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.Bar = function(context, config) {\r\n\t\tconfig.type = 'bar';\r\n\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n\r\n};\r\n\r\n},{}],9:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.Bubble = function(context, config) {\r\n\t\tconfig.type = 'bubble';\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n\r\n};\r\n\r\n},{}],10:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.Doughnut = function(context, config) {\r\n\t\tconfig.type = 'doughnut';\r\n\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n\r\n};\r\n\r\n},{}],11:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.Line = function(context, config) {\r\n\t\tconfig.type = 'line';\r\n\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n\r\n};\r\n\r\n},{}],12:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.PolarArea = function(context, config) {\r\n\t\tconfig.type = 'polarArea';\r\n\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n\r\n};\r\n\r\n},{}],13:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.Radar = function(context, config) {\r\n\t\tconfig.type = 'radar';\r\n\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n\r\n};\r\n\r\n},{}],14:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\tChart.Scatter = function(context, config) {\r\n\t\tconfig.type = 'scatter';\r\n\t\treturn new Chart(context, config);\r\n\t};\r\n};\r\n\r\n},{}],15:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar elements = require(40);\r\nvar helpers = require(45);\r\n\r\ndefaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\r\n\t\t\t// Specific to Bar Controller\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9,\r\n\r\n\t\t\t// offset settings\r\n\t\t\toffset: true,\r\n\r\n\t\t\t// grid line settings\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ndefaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\tposition: 'left',\r\n\t\t\ttype: 'category',\r\n\r\n\t\t\t// Specific to Horizontal Bar Controller\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9,\r\n\r\n\t\t\t// offset settings\r\n\t\t\toffset: true,\r\n\r\n\t\t\t// grid line settings\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function(item, data) {\r\n\t\t\t\t// Pick first xLabel for now\r\n\t\t\t\tvar title = '';\r\n\r\n\t\t\t\tif (item.length > 0) {\r\n\t\t\t\t\tif (item[0].yLabel) {\r\n\t\t\t\t\t\ttitle = item[0].yLabel;\r\n\t\t\t\t\t} else if (data.labels.length > 0 && item[0].index < data.labels.length) {\r\n\t\t\t\t\t\ttitle = data.labels[item[0].index];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn title;\r\n\t\t\t},\r\n\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\treturn datasetLabel + ': ' + item.xLabel;\r\n\t\t\t}\r\n\t\t},\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale.isHorizontal() ? scale.width : scale.height;\r\n\tvar ticks = scale.getTicks();\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, pixels[i] - pixels[i - 1]);\r\n\t}\r\n\r\n\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, curr - prev) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar size, ratio;\r\n\r\n\tif (helpers.isNullOrUndef(thickness)) {\r\n\t\tsize = ruler.min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale end extremity.\r\n\t\tprev = curr - (next === null ? ruler.end - curr : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - ((curr - prev) / 2) * percent;\r\n\tsize = ((next - prev) / 2) * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.controllers.bar = Chart.DatasetController.extend({\r\n\r\n\t\tdataElementType: elements.Rectangle,\r\n\r\n\t\tinitialize: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta;\r\n\r\n\t\t\tChart.DatasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\t\tmeta = me.getMeta();\r\n\t\t\tmeta.stack = me.getDataset().stack;\r\n\t\t\tmeta.bar = true;\r\n\t\t},\r\n\r\n\t\tupdate: function(reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar rects = me.getMeta().data;\r\n\t\t\tvar i, ilen;\r\n\r\n\t\t\tme._ruler = me.getRuler();\r\n\r\n\t\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tupdateElement: function(rectangle, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar custom = rectangle.custom || {};\r\n\t\t\tvar rectangleOptions = chart.options.elements.rectangle;\r\n\r\n\t\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\trectangle._datasetIndex = me.index;\r\n\t\t\trectangle._index = index;\r\n\r\n\t\t\trectangle._model = {\r\n\t\t\t\tdatasetLabel: dataset.label,\r\n\t\t\t\tlabel: chart.data.labels[index],\r\n\t\t\t\tborderSkipped: custom.borderSkipped ? custom.borderSkipped : rectangleOptions.borderSkipped,\r\n\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, rectangleOptions.backgroundColor),\r\n\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, rectangleOptions.borderColor),\r\n\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, rectangleOptions.borderWidth)\r\n\t\t\t};\r\n\r\n\t\t\tme.updateElementGeometry(rectangle, index, reset);\r\n\r\n\t\t\trectangle.pivot();\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tupdateElementGeometry: function(rectangle, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar model = rectangle._model;\r\n\t\t\tvar vscale = me.getValueScale();\r\n\t\t\tvar base = vscale.getBasePixel();\r\n\t\t\tvar horizontal = vscale.isHorizontal();\r\n\t\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\t\tvar vpixels = me.calculateBarValuePixels(me.index, index);\r\n\t\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler);\r\n\r\n\t\t\tmodel.horizontal = horizontal;\r\n\t\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetValueScaleId: function() {\r\n\t\t\treturn this.getMeta().yAxisID;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetIndexScaleId: function() {\r\n\t\t\treturn this.getMeta().xAxisID;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetValueScale: function() {\r\n\t\t\treturn this.getScaleForId(this.getValueScaleId());\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetIndexScale: function() {\r\n\t\t\treturn this.getScaleForId(this.getIndexScaleId());\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Returns the stacks based on groups and bar visibility.\r\n\t\t * @param {Number} [last] - The dataset index\r\n\t\t * @returns {Array} The stack list\r\n\t\t * @private\r\n\t\t */\r\n\t\t_getStacks: function(last) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar scale = me.getIndexScale();\r\n\t\t\tvar stacked = scale.options.stacked;\r\n\t\t\tvar ilen = last === undefined ? chart.data.datasets.length : last + 1;\r\n\t\t\tvar stacks = [];\r\n\t\t\tvar i, meta;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tif (meta.bar && chart.isDatasetVisible(i) &&\r\n\t\t\t\t\t(stacked === false ||\r\n\t\t\t\t\t(stacked === true && stacks.indexOf(meta.stack) === -1) ||\r\n\t\t\t\t\t(stacked === undefined && (meta.stack === undefined || stacks.indexOf(meta.stack) === -1)))) {\r\n\t\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn stacks;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetStackCount: function() {\r\n\t\t\treturn this._getStacks().length;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t\t * @param {Number} [datasetIndex] - The dataset index\r\n\t\t * @param {String} [name] - The stack name to find\r\n\t\t * @returns {Number} The stack index\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetStackIndex: function(datasetIndex, name) {\r\n\t\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\t\tvar index = (name !== undefined)\r\n\t\t\t\t? stacks.indexOf(name)\r\n\t\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\t\treturn (index === -1)\r\n\t\t\t\t? stacks.length - 1\r\n\t\t\t\t: index;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetRuler: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar scale = me.getIndexScale();\r\n\t\t\tvar stackCount = me.getStackCount();\r\n\t\t\tvar datasetIndex = me.index;\r\n\t\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\t\tvar start = isHorizontal ? scale.left : scale.top;\r\n\t\t\tvar end = start + (isHorizontal ? scale.width : scale.height);\r\n\t\t\tvar pixels = [];\r\n\t\t\tvar i, ilen, min;\r\n\r\n\t\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\t\tpixels.push(scale.getPixelForValue(null, i, datasetIndex));\r\n\t\t\t}\r\n\r\n\t\t\tmin = helpers.isNullOrUndef(scale.options.barThickness)\r\n\t\t\t\t? computeMinSampleSize(scale, pixels)\r\n\t\t\t\t: -1;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tmin: min,\r\n\t\t\t\tpixels: pixels,\r\n\t\t\t\tstart: start,\r\n\t\t\t\tend: end,\r\n\t\t\t\tstackCount: stackCount,\r\n\t\t\t\tscale: scale\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Note: pixel values are not clamped to the scale area.\r\n\t\t * @private\r\n\t\t */\r\n\t\tcalculateBarValuePixels: function(datasetIndex, index) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar scale = me.getValueScale();\r\n\t\t\tvar datasets = chart.data.datasets;\r\n\t\t\tvar value = scale.getRightValue(datasets[datasetIndex].data[index]);\r\n\t\t\tvar stacked = scale.options.stacked;\r\n\t\t\tvar stack = meta.stack;\r\n\t\t\tvar start = 0;\r\n\t\t\tvar i, imeta, ivalue, base, head, size;\r\n\r\n\t\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\t\tfor (i = 0; i < datasetIndex; ++i) {\r\n\t\t\t\t\timeta = chart.getDatasetMeta(i);\r\n\r\n\t\t\t\t\tif (imeta.bar &&\r\n\t\t\t\t\t\timeta.stack === stack &&\r\n\t\t\t\t\t\timeta.controller.getValueScaleId() === scale.id &&\r\n\t\t\t\t\t\tchart.isDatasetVisible(i)) {\r\n\r\n\t\t\t\t\t\tivalue = scale.getRightValue(datasets[i].data[index]);\r\n\t\t\t\t\t\tif ((value < 0 && ivalue < 0) || (value >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tbase = scale.getPixelForValue(start);\r\n\t\t\thead = scale.getPixelForValue(start + value);\r\n\t\t\tsize = (head - base) / 2;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tsize: size,\r\n\t\t\t\tbase: base,\r\n\t\t\t\thead: head,\r\n\t\t\t\tcenter: head + size / 2\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tcalculateBarIndexPixels: function(datasetIndex, index, ruler) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = ruler.scale.options;\r\n\t\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\t\tvar size = Math.min(\r\n\t\t\t\thelpers.valueOrDefault(options.maxBarThickness, Infinity),\r\n\t\t\t\trange.chunk * range.ratio);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tbase: center - size / 2,\r\n\t\t\t\thead: center + size / 2,\r\n\t\t\t\tcenter: center,\r\n\t\t\t\tsize: size\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\tdraw: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar scale = me.getValueScale();\r\n\t\t\tvar rects = me.getMeta().data;\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar ilen = rects.length;\r\n\t\t\tvar i = 0;\r\n\r\n\t\t\thelpers.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\t\tfor (; i < ilen; ++i) {\r\n\t\t\t\tif (!isNaN(scale.getRightValue(dataset.data[i]))) {\r\n\t\t\t\t\trects[i].draw();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\thelpers.canvas.unclipArea(chart.ctx);\r\n\t\t},\r\n\r\n\t\tsetHoverStyle: function(rectangle) {\r\n\t\t\tvar dataset = this.chart.data.datasets[rectangle._datasetIndex];\r\n\t\t\tvar index = rectangle._index;\r\n\t\t\tvar custom = rectangle.custom || {};\r\n\t\t\tvar model = rectangle._model;\r\n\r\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.valueAtIndexOrDefault(dataset.hoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\r\n\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.valueAtIndexOrDefault(dataset.hoverBorderColor, index, helpers.getHoverColor(model.borderColor));\r\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.valueAtIndexOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);\r\n\t\t},\r\n\r\n\t\tremoveHoverStyle: function(rectangle) {\r\n\t\t\tvar dataset = this.chart.data.datasets[rectangle._datasetIndex];\r\n\t\t\tvar index = rectangle._index;\r\n\t\t\tvar custom = rectangle.custom || {};\r\n\t\t\tvar model = rectangle._model;\r\n\t\t\tvar rectangleElementOptions = this.chart.options.elements.rectangle;\r\n\r\n\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, rectangleElementOptions.backgroundColor);\r\n\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, rectangleElementOptions.borderColor);\r\n\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, rectangleElementOptions.borderWidth);\r\n\t\t}\r\n\t});\r\n\r\n\tChart.controllers.horizontalBar = Chart.controllers.bar.extend({\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetValueScaleId: function() {\r\n\t\t\treturn this.getMeta().xAxisID;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetIndexScaleId: function() {\r\n\t\t\treturn this.getMeta().yAxisID;\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"25\":25,\"40\":40,\"45\":45}],16:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar elements = require(40);\r\nvar helpers = require(45);\r\n\r\ndefaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.controllers.bubble = Chart.DatasetController.extend({\r\n\t\t/**\r\n\t\t * @protected\r\n\t\t */\r\n\t\tdataElementType: elements.Point,\r\n\r\n\t\t/**\r\n\t\t * @protected\r\n\t\t */\r\n\t\tupdate: function(reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar points = meta.data;\r\n\r\n\t\t\t// Update Points\r\n\t\t\thelpers.each(points, function(point, index) {\r\n\t\t\t\tme.updateElement(point, index, reset);\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @protected\r\n\t\t */\r\n\t\tupdateElement: function(point, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\tvar options = me._resolveElementOptions(point, index);\r\n\t\t\tvar data = me.getDataset().data[index];\r\n\t\t\tvar dsIndex = me.index;\r\n\r\n\t\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\t\tpoint._xScale = xScale;\r\n\t\t\tpoint._yScale = yScale;\r\n\t\t\tpoint._options = options;\r\n\t\t\tpoint._datasetIndex = dsIndex;\r\n\t\t\tpoint._index = index;\r\n\t\t\tpoint._model = {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\thitRadius: options.hitRadius,\r\n\t\t\t\tpointStyle: options.pointStyle,\r\n\t\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t\tx: x,\r\n\t\t\t\ty: y,\r\n\t\t\t};\r\n\r\n\t\t\tpoint.pivot();\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @protected\r\n\t\t */\r\n\t\tsetHoverStyle: function(point) {\r\n\t\t\tvar model = point._model;\r\n\t\t\tvar options = point._options;\r\n\r\n\t\t\tmodel.backgroundColor = helpers.valueOrDefault(options.hoverBackgroundColor, helpers.getHoverColor(options.backgroundColor));\r\n\t\t\tmodel.borderColor = helpers.valueOrDefault(options.hoverBorderColor, helpers.getHoverColor(options.borderColor));\r\n\t\t\tmodel.borderWidth = helpers.valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @protected\r\n\t\t */\r\n\t\tremoveHoverStyle: function(point) {\r\n\t\t\tvar model = point._model;\r\n\t\t\tvar options = point._options;\r\n\r\n\t\t\tmodel.backgroundColor = options.backgroundColor;\r\n\t\t\tmodel.borderColor = options.borderColor;\r\n\t\t\tmodel.borderWidth = options.borderWidth;\r\n\t\t\tmodel.radius = options.radius;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\t_resolveElementOptions: function(point, index) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar datasets = chart.data.datasets;\r\n\t\t\tvar dataset = datasets[me.index];\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar options = chart.options.elements.point;\r\n\t\t\tvar resolve = helpers.options.resolve;\r\n\t\t\tvar data = dataset.data[index];\r\n\t\t\tvar values = {};\r\n\t\t\tvar i, ilen, key;\r\n\r\n\t\t\t// Scriptable options\r\n\t\t\tvar context = {\r\n\t\t\t\tchart: chart,\r\n\t\t\t\tdataIndex: index,\r\n\t\t\t\tdataset: dataset,\r\n\t\t\t\tdatasetIndex: me.index\r\n\t\t\t};\r\n\r\n\t\t\tvar keys = [\r\n\t\t\t\t'backgroundColor',\r\n\t\t\t\t'borderColor',\r\n\t\t\t\t'borderWidth',\r\n\t\t\t\t'hoverBackgroundColor',\r\n\t\t\t\t'hoverBorderColor',\r\n\t\t\t\t'hoverBorderWidth',\r\n\t\t\t\t'hoverRadius',\r\n\t\t\t\t'hitRadius',\r\n\t\t\t\t'pointStyle'\r\n\t\t\t];\r\n\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdataset[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index);\r\n\t\t\t}\r\n\r\n\t\t\t// Custom radius resolution\r\n\t\t\tvalues.radius = resolve([\r\n\t\t\t\tcustom.radius,\r\n\t\t\t\tdata ? data.r : undefined,\r\n\t\t\t\tdataset.radius,\r\n\t\t\t\toptions.radius\r\n\t\t\t], context, index);\r\n\r\n\t\t\treturn values;\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"25\":25,\"40\":40,\"45\":45}],17:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar elements = require(40);\r\nvar helpers = require(45);\r\n\r\ndefaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar text = [];\r\n\t\ttext.push('
    ');\r\n\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (var i = 0; i < datasets[0].data.length; ++i) {\r\n\t\t\t\ttext.push('
  • ');\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\ttext.push(labels[i]);\r\n\t\t\t\t}\r\n\t\t\t\ttext.push('
  • ');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttext.push('
');\r\n\t\treturn text.join('');\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar ds = data.datasets[0];\r\n\t\t\t\t\t\tvar arc = meta.data[i];\r\n\t\t\t\t\t\tvar custom = arc && arc.custom || {};\r\n\t\t\t\t\t\tvar valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\r\n\t\t\t\t\t\tvar arcOpts = chart.options.elements.arc;\r\n\t\t\t\t\t\tvar fill = custom.backgroundColor ? custom.backgroundColor : valueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\r\n\t\t\t\t\t\tvar stroke = custom.borderColor ? custom.borderColor : valueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\r\n\t\t\t\t\t\tvar bw = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: fill,\r\n\t\t\t\t\t\t\tstrokeStyle: stroke,\r\n\t\t\t\t\t\t\tlineWidth: bw,\r\n\t\t\t\t\t\t\thidden: isNaN(ds.data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: Math.PI * -0.5,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: Math.PI * 2.0,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ndefaults._set('pie', helpers.clone(defaults.doughnut));\r\ndefaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.controllers.doughnut = Chart.controllers.pie = Chart.DatasetController.extend({\r\n\r\n\t\tdataElementType: elements.Arc,\r\n\r\n\t\tlinkScales: helpers.noop,\r\n\r\n\t\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\t\tgetRingIndex: function(datasetIndex) {\r\n\t\t\tvar ringIndex = 0;\r\n\r\n\t\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t\t++ringIndex;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn ringIndex;\r\n\t\t},\r\n\r\n\t\tupdate: function(reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar chartArea = chart.chartArea;\r\n\t\t\tvar opts = chart.options;\r\n\t\t\tvar arcOpts = opts.elements.arc;\r\n\t\t\tvar availableWidth = chartArea.right - chartArea.left - arcOpts.borderWidth;\r\n\t\t\tvar availableHeight = chartArea.bottom - chartArea.top - arcOpts.borderWidth;\r\n\t\t\tvar minSize = Math.min(availableWidth, availableHeight);\r\n\t\t\tvar offset = {x: 0, y: 0};\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar cutoutPercentage = opts.cutoutPercentage;\r\n\t\t\tvar circumference = opts.circumference;\r\n\r\n\t\t\t// If the chart's circumference isn't a full circle, calculate minSize as a ratio of the width/height of the arc\r\n\t\t\tif (circumference < Math.PI * 2.0) {\r\n\t\t\t\tvar startAngle = opts.rotation % (Math.PI * 2.0);\r\n\t\t\t\tstartAngle += Math.PI * 2.0 * (startAngle >= Math.PI ? -1 : startAngle < -Math.PI ? 1 : 0);\r\n\t\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\t\tvar start = {x: Math.cos(startAngle), y: Math.sin(startAngle)};\r\n\t\t\t\tvar end = {x: Math.cos(endAngle), y: Math.sin(endAngle)};\r\n\t\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || (startAngle <= Math.PI * 2.0 && Math.PI * 2.0 <= endAngle);\r\n\t\t\t\tvar contains90 = (startAngle <= Math.PI * 0.5 && Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 2.5 && Math.PI * 2.5 <= endAngle);\r\n\t\t\t\tvar contains180 = (startAngle <= -Math.PI && -Math.PI <= endAngle) || (startAngle <= Math.PI && Math.PI <= endAngle);\r\n\t\t\t\tvar contains270 = (startAngle <= -Math.PI * 0.5 && -Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 1.5 && Math.PI * 1.5 <= endAngle);\r\n\t\t\t\tvar cutout = cutoutPercentage / 100.0;\r\n\t\t\t\tvar min = {x: contains180 ? -1 : Math.min(start.x * (start.x < 0 ? 1 : cutout), end.x * (end.x < 0 ? 1 : cutout)), y: contains270 ? -1 : Math.min(start.y * (start.y < 0 ? 1 : cutout), end.y * (end.y < 0 ? 1 : cutout))};\r\n\t\t\t\tvar max = {x: contains0 ? 1 : Math.max(start.x * (start.x > 0 ? 1 : cutout), end.x * (end.x > 0 ? 1 : cutout)), y: contains90 ? 1 : Math.max(start.y * (start.y > 0 ? 1 : cutout), end.y * (end.y > 0 ? 1 : cutout))};\r\n\t\t\t\tvar size = {width: (max.x - min.x) * 0.5, height: (max.y - min.y) * 0.5};\r\n\t\t\t\tminSize = Math.min(availableWidth / size.width, availableHeight / size.height);\r\n\t\t\t\toffset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5};\r\n\t\t\t}\r\n\r\n\t\t\tchart.borderWidth = me.getMaxBorderWidth(meta.data);\r\n\t\t\tchart.outerRadius = Math.max((minSize - chart.borderWidth) / 2, 0);\r\n\t\t\tchart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 0, 0);\r\n\t\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\t\t\tchart.offsetX = offset.x * chart.outerRadius;\r\n\t\t\tchart.offsetY = offset.y * chart.outerRadius;\r\n\r\n\t\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.getRingIndex(me.index));\r\n\t\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength, 0);\r\n\r\n\t\t\thelpers.each(meta.data, function(arc, index) {\r\n\t\t\t\tme.updateElement(arc, index, reset);\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tupdateElement: function(arc, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar chartArea = chart.chartArea;\r\n\t\t\tvar opts = chart.options;\r\n\t\t\tvar animationOpts = opts.animation;\r\n\t\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / (2.0 * Math.PI));\r\n\t\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\t\tvar valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\r\n\r\n\t\t\thelpers.extend(arc, {\r\n\t\t\t\t// Utility\r\n\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t_index: index,\r\n\r\n\t\t\t\t// Desired view properties\r\n\t\t\t\t_model: {\r\n\t\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\t\tendAngle: endAngle,\r\n\t\t\t\t\tcircumference: circumference,\r\n\t\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\t\tlabel: valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tvar model = arc._model;\r\n\t\t\t// Resets the visual styles\r\n\t\t\tthis.removeHoverStyle(arc);\r\n\r\n\t\t\t// Set correct angles if not resetting\r\n\t\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\t\tif (index === 0) {\r\n\t\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t\t}\r\n\r\n\t\t\tarc.pivot();\r\n\t\t},\r\n\r\n\t\tremoveHoverStyle: function(arc) {\r\n\t\t\tChart.DatasetController.prototype.removeHoverStyle.call(this, arc, this.chart.options.elements.arc);\r\n\t\t},\r\n\r\n\t\tcalculateTotal: function() {\r\n\t\t\tvar dataset = this.getDataset();\r\n\t\t\tvar meta = this.getMeta();\r\n\t\t\tvar total = 0;\r\n\t\t\tvar value;\r\n\r\n\t\t\thelpers.each(meta.data, function(element, index) {\r\n\t\t\t\tvalue = dataset.data[index];\r\n\t\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t/* if (total === 0) {\r\n\t\t\t\ttotal = NaN;\r\n\t\t\t}*/\r\n\r\n\t\t\treturn total;\r\n\t\t},\r\n\r\n\t\tcalculateCircumference: function(value) {\r\n\t\t\tvar total = this.getMeta().total;\r\n\t\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\t\treturn (Math.PI * 2.0) * (Math.abs(value) / total);\r\n\t\t\t}\r\n\t\t\treturn 0;\r\n\t\t},\r\n\r\n\t\t// gets the max border or hover width to properly scale pie charts\r\n\t\tgetMaxBorderWidth: function(arcs) {\r\n\t\t\tvar max = 0;\r\n\t\t\tvar index = this.index;\r\n\t\t\tvar length = arcs.length;\r\n\t\t\tvar borderWidth;\r\n\t\t\tvar hoverWidth;\r\n\r\n\t\t\tfor (var i = 0; i < length; i++) {\r\n\t\t\t\tborderWidth = arcs[i]._model ? arcs[i]._model.borderWidth : 0;\r\n\t\t\t\thoverWidth = arcs[i]._chart ? arcs[i]._chart.config.data.datasets[index].hoverBorderWidth : 0;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t\treturn max;\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"25\":25,\"40\":40,\"45\":45}],18:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar elements = require(40);\r\nvar helpers = require(45);\r\n\r\ndefaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tfunction lineEnabled(dataset, options) {\r\n\t\treturn helpers.valueOrDefault(dataset.showLine, options.showLines);\r\n\t}\r\n\r\n\tChart.controllers.line = Chart.DatasetController.extend({\r\n\r\n\t\tdatasetElementType: elements.Line,\r\n\r\n\t\tdataElementType: elements.Point,\r\n\r\n\t\tupdate: function(reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar line = meta.dataset;\r\n\t\t\tvar points = meta.data || [];\r\n\t\t\tvar options = me.chart.options;\r\n\t\t\tvar lineElementOptions = options.elements.line;\r\n\t\t\tvar scale = me.getScaleForId(meta.yAxisID);\r\n\t\t\tvar i, ilen, custom;\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar showLine = lineEnabled(dataset, options);\r\n\r\n\t\t\t// Update Line\r\n\t\t\tif (showLine) {\r\n\t\t\t\tcustom = line.custom || {};\r\n\r\n\t\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\r\n\t\t\t\t\tdataset.lineTension = dataset.tension;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Utility\r\n\t\t\t\tline._scale = scale;\r\n\t\t\t\tline._datasetIndex = me.index;\r\n\t\t\t\t// Data\r\n\t\t\t\tline._children = points;\r\n\t\t\t\t// Model\r\n\t\t\t\tline._model = {\r\n\t\t\t\t\t// Appearance\r\n\t\t\t\t\t// The default behavior of lines is to break at null values, according\r\n\t\t\t\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t\t\t\t// This option gives lines the ability to span gaps\r\n\t\t\t\t\tspanGaps: dataset.spanGaps ? dataset.spanGaps : options.spanGaps,\r\n\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, lineElementOptions.tension),\r\n\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\r\n\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\r\n\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\r\n\t\t\t\t\tborderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\r\n\t\t\t\t\tborderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\r\n\t\t\t\t\tborderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\r\n\t\t\t\t\tborderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\r\n\t\t\t\t\tfill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\r\n\t\t\t\t\tsteppedLine: custom.steppedLine ? custom.steppedLine : helpers.valueOrDefault(dataset.steppedLine, lineElementOptions.stepped),\r\n\t\t\t\t\tcubicInterpolationMode: custom.cubicInterpolationMode ? custom.cubicInterpolationMode : helpers.valueOrDefault(dataset.cubicInterpolationMode, lineElementOptions.cubicInterpolationMode),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tline.pivot();\r\n\t\t\t}\r\n\r\n\t\t\t// Update Points\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t\t}\r\n\r\n\t\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\t\tme.updateBezierControlPoints();\r\n\t\t\t}\r\n\r\n\t\t\t// Now pivot the point for animation\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tpoints[i].pivot();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tgetPointBackgroundColor: function(point, index) {\r\n\t\t\tvar backgroundColor = this.chart.options.elements.point.backgroundColor;\r\n\t\t\tvar dataset = this.getDataset();\r\n\t\t\tvar custom = point.custom || {};\r\n\r\n\t\t\tif (custom.backgroundColor) {\r\n\t\t\t\tbackgroundColor = custom.backgroundColor;\r\n\t\t\t} else if (dataset.pointBackgroundColor) {\r\n\t\t\t\tbackgroundColor = helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, backgroundColor);\r\n\t\t\t} else if (dataset.backgroundColor) {\r\n\t\t\t\tbackgroundColor = dataset.backgroundColor;\r\n\t\t\t}\r\n\r\n\t\t\treturn backgroundColor;\r\n\t\t},\r\n\r\n\t\tgetPointBorderColor: function(point, index) {\r\n\t\t\tvar borderColor = this.chart.options.elements.point.borderColor;\r\n\t\t\tvar dataset = this.getDataset();\r\n\t\t\tvar custom = point.custom || {};\r\n\r\n\t\t\tif (custom.borderColor) {\r\n\t\t\t\tborderColor = custom.borderColor;\r\n\t\t\t} else if (dataset.pointBorderColor) {\r\n\t\t\t\tborderColor = helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, borderColor);\r\n\t\t\t} else if (dataset.borderColor) {\r\n\t\t\t\tborderColor = dataset.borderColor;\r\n\t\t\t}\r\n\r\n\t\t\treturn borderColor;\r\n\t\t},\r\n\r\n\t\tgetPointBorderWidth: function(point, index) {\r\n\t\t\tvar borderWidth = this.chart.options.elements.point.borderWidth;\r\n\t\t\tvar dataset = this.getDataset();\r\n\t\t\tvar custom = point.custom || {};\r\n\r\n\t\t\tif (!isNaN(custom.borderWidth)) {\r\n\t\t\t\tborderWidth = custom.borderWidth;\r\n\t\t\t} else if (!isNaN(dataset.pointBorderWidth) || helpers.isArray(dataset.pointBorderWidth)) {\r\n\t\t\t\tborderWidth = helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, borderWidth);\r\n\t\t\t} else if (!isNaN(dataset.borderWidth)) {\r\n\t\t\t\tborderWidth = dataset.borderWidth;\r\n\t\t\t}\r\n\r\n\t\t\treturn borderWidth;\r\n\t\t},\r\n\r\n\t\tupdateElement: function(point, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar datasetIndex = me.index;\r\n\t\t\tvar value = dataset.data[index];\r\n\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\t\tvar pointOptions = me.chart.options.elements.point;\r\n\t\t\tvar x, y;\r\n\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\r\n\t\t\t\tdataset.pointRadius = dataset.radius;\r\n\t\t\t}\r\n\t\t\tif ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) {\r\n\t\t\t\tdataset.pointHitRadius = dataset.hitRadius;\r\n\t\t\t}\r\n\r\n\t\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t\t// Utility\r\n\t\t\tpoint._xScale = xScale;\r\n\t\t\tpoint._yScale = yScale;\r\n\t\t\tpoint._datasetIndex = datasetIndex;\r\n\t\t\tpoint._index = index;\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\tpoint._model = {\r\n\t\t\t\tx: x,\r\n\t\t\t\ty: y,\r\n\t\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t\t// Appearance\r\n\t\t\t\tradius: custom.radius || helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointOptions.radius),\r\n\t\t\t\tpointStyle: custom.pointStyle || helpers.valueAtIndexOrDefault(dataset.pointStyle, index, pointOptions.pointStyle),\r\n\t\t\t\tbackgroundColor: me.getPointBackgroundColor(point, index),\r\n\t\t\t\tborderColor: me.getPointBorderColor(point, index),\r\n\t\t\t\tborderWidth: me.getPointBorderWidth(point, index),\r\n\t\t\t\ttension: meta.dataset._model ? meta.dataset._model.tension : 0,\r\n\t\t\t\tsteppedLine: meta.dataset._model ? meta.dataset._model.steppedLine : false,\r\n\t\t\t\t// Tooltip\r\n\t\t\t\thitRadius: custom.hitRadius || helpers.valueAtIndexOrDefault(dataset.pointHitRadius, index, pointOptions.hitRadius)\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\t\tvar sumPos = 0;\r\n\t\t\tvar sumNeg = 0;\r\n\t\t\tvar i, ds, dsMeta;\r\n\r\n\t\t\tif (yScale.options.stacked) {\r\n\t\t\t\tfor (i = 0; i < datasetIndex; i++) {\r\n\t\t\t\t\tds = chart.data.datasets[i];\r\n\t\t\t\t\tdsMeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id && chart.isDatasetVisible(i)) {\r\n\t\t\t\t\t\tvar stackedRightValue = Number(yScale.getRightValue(ds.data[index]));\r\n\t\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar rightValue = Number(yScale.getRightValue(value));\r\n\t\t\t\tif (rightValue < 0) {\r\n\t\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t\t}\r\n\t\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t\t}\r\n\r\n\t\t\treturn yScale.getPixelForValue(value);\r\n\t\t},\r\n\r\n\t\tupdateBezierControlPoints: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar area = me.chart.chartArea;\r\n\t\t\tvar points = (meta.data || []);\r\n\t\t\tvar i, ilen, point, model, controlPoints;\r\n\r\n\t\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\t\treturn !pt._model.skip;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t\t}\r\n\r\n\t\t\tif (meta.dataset._model.cubicInterpolationMode === 'monotone') {\r\n\t\t\t\thelpers.splineCurveMonotone(points);\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\t\tpoint = points[i];\r\n\t\t\t\t\tmodel = point._model;\r\n\t\t\t\t\tcontrolPoints = helpers.splineCurve(\r\n\t\t\t\t\t\thelpers.previousItem(points, i)._model,\r\n\t\t\t\t\t\tmodel,\r\n\t\t\t\t\t\thelpers.nextItem(points, i)._model,\r\n\t\t\t\t\t\tmeta.dataset._model.tension\r\n\t\t\t\t\t);\r\n\t\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (me.chart.options.elements.line.capBezierPoints) {\r\n\t\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tdraw: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar points = meta.data || [];\r\n\t\t\tvar area = chart.chartArea;\r\n\t\t\tvar ilen = points.length;\r\n\t\t\tvar i = 0;\r\n\r\n\t\t\thelpers.canvas.clipArea(chart.ctx, area);\r\n\r\n\t\t\tif (lineEnabled(me.getDataset(), chart.options)) {\r\n\t\t\t\tmeta.dataset.draw();\r\n\t\t\t}\r\n\r\n\t\t\thelpers.canvas.unclipArea(chart.ctx);\r\n\r\n\t\t\t// Draw the points\r\n\t\t\tfor (; i < ilen; ++i) {\r\n\t\t\t\tpoints[i].draw(area);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsetHoverStyle: function(point) {\r\n\t\t\t// Point\r\n\t\t\tvar dataset = this.chart.data.datasets[point._datasetIndex];\r\n\t\t\tvar index = point._index;\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar model = point._model;\r\n\r\n\t\t\tmodel.radius = custom.hoverRadius || helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\r\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\r\n\t\t\tmodel.borderColor = custom.hoverBorderColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\r\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\r\n\t\t},\r\n\r\n\t\tremoveHoverStyle: function(point) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar dataset = me.chart.data.datasets[point._datasetIndex];\r\n\t\t\tvar index = point._index;\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar model = point._model;\r\n\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\r\n\t\t\t\tdataset.pointRadius = dataset.radius;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.radius = custom.radius || helpers.valueAtIndexOrDefault(dataset.pointRadius, index, me.chart.options.elements.point.radius);\r\n\t\t\tmodel.backgroundColor = me.getPointBackgroundColor(point, index);\r\n\t\t\tmodel.borderColor = me.getPointBorderColor(point, index);\r\n\t\t\tmodel.borderWidth = me.getPointBorderWidth(point, index);\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"25\":25,\"40\":40,\"45\":45}],19:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar elements = require(40);\r\nvar helpers = require(45);\r\n\r\ndefaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar text = [];\r\n\t\ttext.push('
    ');\r\n\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (var i = 0; i < datasets[0].data.length; ++i) {\r\n\t\t\t\ttext.push('
  • ');\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\ttext.push(labels[i]);\r\n\t\t\t\t}\r\n\t\t\t\ttext.push('
  • ');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttext.push('
');\r\n\t\treturn text.join('');\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar ds = data.datasets[0];\r\n\t\t\t\t\t\tvar arc = meta.data[i];\r\n\t\t\t\t\t\tvar custom = arc.custom || {};\r\n\t\t\t\t\t\tvar valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\r\n\t\t\t\t\t\tvar arcOpts = chart.options.elements.arc;\r\n\t\t\t\t\t\tvar fill = custom.backgroundColor ? custom.backgroundColor : valueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\r\n\t\t\t\t\t\tvar stroke = custom.borderColor ? custom.borderColor : valueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\r\n\t\t\t\t\t\tvar bw = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: fill,\r\n\t\t\t\t\t\t\tstrokeStyle: stroke,\r\n\t\t\t\t\t\t\tlineWidth: bw,\r\n\t\t\t\t\t\t\thidden: isNaN(ds.data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.controllers.polarArea = Chart.DatasetController.extend({\r\n\r\n\t\tdataElementType: elements.Arc,\r\n\r\n\t\tlinkScales: helpers.noop,\r\n\r\n\t\tupdate: function(reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar chartArea = chart.chartArea;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar opts = chart.options;\r\n\t\t\tvar arcOpts = opts.elements.arc;\r\n\t\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\t\t\tchart.outerRadius = Math.max((minSize - arcOpts.borderWidth / 2) / 2, 0);\r\n\t\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\r\n\t\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\t\thelpers.each(meta.data, function(arc, index) {\r\n\t\t\t\tme.updateElement(arc, index, reset);\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tupdateElement: function(arc, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar opts = chart.options;\r\n\t\t\tvar animationOpts = opts.animation;\r\n\t\t\tvar scale = chart.scale;\r\n\t\t\tvar labels = chart.data.labels;\r\n\r\n\t\t\tvar circumference = me.calculateCircumference(dataset.data[index]);\r\n\t\t\tvar centerX = scale.xCenter;\r\n\t\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t\t// If there is NaN data before us, we need to calculate the starting angle correctly.\r\n\t\t\t// We could be way more efficient here, but its unlikely that the polar area chart will have a lot of data\r\n\t\t\tvar visibleCount = 0;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tfor (var i = 0; i < index; ++i) {\r\n\t\t\t\tif (!isNaN(dataset.data[i]) && !meta.data[i].hidden) {\r\n\t\t\t\t\t++visibleCount;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\t\tvar startAngle = datasetStartAngle + (circumference * visibleCount);\r\n\t\t\tvar endAngle = startAngle + (arc.hidden ? 0 : circumference);\r\n\r\n\t\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\r\n\t\t\thelpers.extend(arc, {\r\n\t\t\t\t// Utility\r\n\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t_index: index,\r\n\t\t\t\t_scale: scale,\r\n\r\n\t\t\t\t// Desired view properties\r\n\t\t\t\t_model: {\r\n\t\t\t\t\tx: centerX,\r\n\t\t\t\t\ty: centerY,\r\n\t\t\t\t\tinnerRadius: 0,\r\n\t\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\t\tlabel: helpers.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Apply border and fill style\r\n\t\t\tme.removeHoverStyle(arc);\r\n\r\n\t\t\tarc.pivot();\r\n\t\t},\r\n\r\n\t\tremoveHoverStyle: function(arc) {\r\n\t\t\tChart.DatasetController.prototype.removeHoverStyle.call(this, arc, this.chart.options.elements.arc);\r\n\t\t},\r\n\r\n\t\tcountVisibleElements: function() {\r\n\t\t\tvar dataset = this.getDataset();\r\n\t\t\tvar meta = this.getMeta();\r\n\t\t\tvar count = 0;\r\n\r\n\t\t\thelpers.each(meta.data, function(element, index) {\r\n\t\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\t\tcount++;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn count;\r\n\t\t},\r\n\r\n\t\tcalculateCircumference: function(value) {\r\n\t\t\tvar count = this.getMeta().count;\r\n\t\t\tif (count > 0 && !isNaN(value)) {\r\n\t\t\t\treturn (2 * Math.PI) / count;\r\n\t\t\t}\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"25\":25,\"40\":40,\"45\":45}],20:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar elements = require(40);\r\nvar helpers = require(45);\r\n\r\ndefaults._set('radar', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.controllers.radar = Chart.DatasetController.extend({\r\n\r\n\t\tdatasetElementType: elements.Line,\r\n\r\n\t\tdataElementType: elements.Point,\r\n\r\n\t\tlinkScales: helpers.noop,\r\n\r\n\t\tupdate: function(reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar line = meta.dataset;\r\n\t\t\tvar points = meta.data;\r\n\t\t\tvar custom = line.custom || {};\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar lineElementOptions = me.chart.options.elements.line;\r\n\t\t\tvar scale = me.chart.scale;\r\n\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\r\n\t\t\t\tdataset.lineTension = dataset.tension;\r\n\t\t\t}\r\n\r\n\t\t\thelpers.extend(meta.dataset, {\r\n\t\t\t\t// Utility\r\n\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t_scale: scale,\r\n\t\t\t\t// Data\r\n\t\t\t\t_children: points,\r\n\t\t\t\t_loop: true,\r\n\t\t\t\t// Model\r\n\t\t\t\t_model: {\r\n\t\t\t\t\t// Appearance\r\n\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, lineElementOptions.tension),\r\n\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\r\n\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\r\n\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\r\n\t\t\t\t\tfill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\r\n\t\t\t\t\tborderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\r\n\t\t\t\t\tborderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\r\n\t\t\t\t\tborderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\r\n\t\t\t\t\tborderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.pivot();\r\n\r\n\t\t\t// Update Points\r\n\t\t\thelpers.each(points, function(point, index) {\r\n\t\t\t\tme.updateElement(point, index, reset);\r\n\t\t\t}, me);\r\n\r\n\t\t\t// Update bezier control points\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t},\r\n\t\tupdateElement: function(point, index, reset) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar scale = me.chart.scale;\r\n\t\t\tvar pointElementOptions = me.chart.options.elements.point;\r\n\t\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\r\n\t\t\t\tdataset.pointRadius = dataset.radius;\r\n\t\t\t}\r\n\t\t\tif ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) {\r\n\t\t\t\tdataset.pointHitRadius = dataset.hitRadius;\r\n\t\t\t}\r\n\r\n\t\t\thelpers.extend(point, {\r\n\t\t\t\t// Utility\r\n\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t_index: index,\r\n\t\t\t\t_scale: scale,\r\n\r\n\t\t\t\t// Desired view properties\r\n\t\t\t\t_model: {\r\n\t\t\t\t\tx: reset ? scale.xCenter : pointPosition.x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\t\t\ty: reset ? scale.yCenter : pointPosition.y,\r\n\r\n\t\t\t\t\t// Appearance\r\n\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, me.chart.options.elements.line.tension),\r\n\t\t\t\t\tradius: custom.radius ? custom.radius : helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointElementOptions.radius),\r\n\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor),\r\n\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor),\r\n\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth),\r\n\t\t\t\t\tpointStyle: custom.pointStyle ? custom.pointStyle : helpers.valueAtIndexOrDefault(dataset.pointStyle, index, pointElementOptions.pointStyle),\r\n\r\n\t\t\t\t\t// Tooltip\r\n\t\t\t\t\thitRadius: custom.hitRadius ? custom.hitRadius : helpers.valueAtIndexOrDefault(dataset.pointHitRadius, index, pointElementOptions.hitRadius)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tpoint._model.skip = custom.skip ? custom.skip : (isNaN(point._model.x) || isNaN(point._model.y));\r\n\t\t},\r\n\t\tupdateBezierControlPoints: function() {\r\n\t\t\tvar chartArea = this.chart.chartArea;\r\n\t\t\tvar meta = this.getMeta();\r\n\r\n\t\t\thelpers.each(meta.data, function(point, index) {\r\n\t\t\t\tvar model = point._model;\r\n\t\t\t\tvar controlPoints = helpers.splineCurve(\r\n\t\t\t\t\thelpers.previousItem(meta.data, index, true)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers.nextItem(meta.data, index, true)._model,\r\n\t\t\t\t\tmodel.tension\r\n\t\t\t\t);\r\n\r\n\t\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\t\tmodel.controlPointPreviousX = Math.max(Math.min(controlPoints.previous.x, chartArea.right), chartArea.left);\r\n\t\t\t\tmodel.controlPointPreviousY = Math.max(Math.min(controlPoints.previous.y, chartArea.bottom), chartArea.top);\r\n\r\n\t\t\t\tmodel.controlPointNextX = Math.max(Math.min(controlPoints.next.x, chartArea.right), chartArea.left);\r\n\t\t\t\tmodel.controlPointNextY = Math.max(Math.min(controlPoints.next.y, chartArea.bottom), chartArea.top);\r\n\r\n\t\t\t\t// Now pivot the point for animation\r\n\t\t\t\tpoint.pivot();\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tsetHoverStyle: function(point) {\r\n\t\t\t// Point\r\n\t\t\tvar dataset = this.chart.data.datasets[point._datasetIndex];\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar index = point._index;\r\n\t\t\tvar model = point._model;\r\n\r\n\t\t\tmodel.radius = custom.hoverRadius ? custom.hoverRadius : helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\r\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\r\n\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\r\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\r\n\t\t},\r\n\r\n\t\tremoveHoverStyle: function(point) {\r\n\t\t\tvar dataset = this.chart.data.datasets[point._datasetIndex];\r\n\t\t\tvar custom = point.custom || {};\r\n\t\t\tvar index = point._index;\r\n\t\t\tvar model = point._model;\r\n\t\t\tvar pointElementOptions = this.chart.options.elements.point;\r\n\r\n\t\t\tmodel.radius = custom.radius ? custom.radius : helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointElementOptions.radius);\r\n\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor);\r\n\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor);\r\n\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth);\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"25\":25,\"40\":40,\"45\":45}],21:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\n\r\ndefaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\tshowLines: false,\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\t// Scatter charts use line controllers\r\n\tChart.controllers.scatter = Chart.controllers.line;\r\n\r\n};\r\n\r\n},{\"25\":25}],22:[function(require,module,exports){\r\n/* global window: false */\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar Element = require(26);\r\nvar helpers = require(45);\r\n\r\ndefaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers.noop,\r\n\t\tonComplete: helpers.noop\r\n\t}\r\n});\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.Animation = Element.extend({\r\n\t\tchart: null, // the animation associated chart instance\r\n\t\tcurrentStep: 0, // the current animation step\r\n\t\tnumSteps: 60, // default number of steps\r\n\t\teasing: '', // the easing to use for this animation\r\n\t\trender: null, // render function used by the animation service\r\n\r\n\t\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\t\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n\t});\r\n\r\n\tChart.animationService = {\r\n\t\tframeDuration: 17,\r\n\t\tanimations: [],\r\n\t\tdropFrames: 0,\r\n\t\trequest: null,\r\n\r\n\t\t/**\r\n\t\t * @param {Chart} chart - The chart to animate.\r\n\t\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t\t * @param {Number} duration - The animation duration in ms.\r\n\t\t * @param {Boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t\t */\r\n\t\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\t\tvar animations = this.animations;\r\n\t\t\tvar i, ilen;\r\n\r\n\t\t\tanimation.chart = chart;\r\n\r\n\t\t\tif (!lazy) {\r\n\t\t\t\tchart.animating = true;\r\n\t\t\t}\r\n\r\n\t\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\t\tanimations[i] = animation;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tanimations.push(animation);\r\n\r\n\t\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\t\tif (animations.length === 1) {\r\n\t\t\t\tthis.requestAnimationFrame();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcancelAnimation: function(chart) {\r\n\t\t\tvar index = helpers.findIndex(this.animations, function(animation) {\r\n\t\t\t\treturn animation.chart === chart;\r\n\t\t\t});\r\n\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tthis.animations.splice(index, 1);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\trequestAnimationFrame: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tif (me.request === null) {\r\n\t\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\t\tme.request = helpers.requestAnimFrame.call(window, function() {\r\n\t\t\t\t\tme.request = null;\r\n\t\t\t\t\tme.startDigest();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tstartDigest: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar startTime = Date.now();\r\n\t\t\tvar framesToDrop = 0;\r\n\r\n\t\t\tif (me.dropFrames > 1) {\r\n\t\t\t\tframesToDrop = Math.floor(me.dropFrames);\r\n\t\t\t\tme.dropFrames = me.dropFrames % 1;\r\n\t\t\t}\r\n\r\n\t\t\tme.advance(1 + framesToDrop);\r\n\r\n\t\t\tvar endTime = Date.now();\r\n\r\n\t\t\tme.dropFrames += (endTime - startTime) / me.frameDuration;\r\n\r\n\t\t\t// Do we have more stuff to animate?\r\n\t\t\tif (me.animations.length > 0) {\r\n\t\t\t\tme.requestAnimationFrame();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tadvance: function(count) {\r\n\t\t\tvar animations = this.animations;\r\n\t\t\tvar animation, chart;\r\n\t\t\tvar i = 0;\r\n\r\n\t\t\twhile (i < animations.length) {\r\n\t\t\t\tanimation = animations[i];\r\n\t\t\t\tchart = animation.chart;\r\n\r\n\t\t\t\tanimation.currentStep = (animation.currentStep || 0) + count;\r\n\t\t\t\tanimation.currentStep = Math.min(animation.currentStep, animation.numSteps);\r\n\r\n\t\t\t\thelpers.callback(animation.render, [chart, animation], chart);\r\n\t\t\t\thelpers.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\t\tif (animation.currentStep >= animation.numSteps) {\r\n\t\t\t\t\thelpers.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\t\tchart.animating = false;\r\n\t\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t++i;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Provided for backward compatibility, use Chart.Animation instead\r\n\t * @prop Chart.Animation#animationObject\r\n\t * @deprecated since version 2.6.0\r\n\t * @todo remove at version 3\r\n\t */\r\n\tObject.defineProperty(Chart.Animation.prototype, 'animationObject', {\r\n\t\tget: function() {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * Provided for backward compatibility, use Chart.Animation#chart instead\r\n\t * @prop Chart.Animation#chartInstance\r\n\t * @deprecated since version 2.6.0\r\n\t * @todo remove at version 3\r\n\t */\r\n\tObject.defineProperty(Chart.Animation.prototype, 'chartInstance', {\r\n\t\tget: function() {\r\n\t\t\treturn this.chart;\r\n\t\t},\r\n\t\tset: function(value) {\r\n\t\t\tthis.chart = value;\r\n\t\t}\r\n\t});\r\n\r\n};\r\n\r\n},{\"25\":25,\"26\":26,\"45\":45}],23:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar helpers = require(45);\r\nvar Interaction = require(28);\r\nvar layouts = require(30);\r\nvar platform = require(48);\r\nvar plugins = require(31);\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\t// Create a dictionary of chart types, to allow for extension of existing types\r\n\tChart.types = {};\r\n\r\n\t// Store a reference to each instance - allowing us to globally resize chart instances on window resize.\r\n\t// Destroy method on the chart will remove the instance of the chart from this reference.\r\n\tChart.instances = {};\r\n\r\n\t// Controllers available for dataset visualization eg. bar, line, slice, etc.\r\n\tChart.controllers = {};\r\n\r\n\t/**\r\n\t * Initializes the given config with global and chart default values.\r\n\t */\r\n\tfunction initConfig(config) {\r\n\t\tconfig = config || {};\r\n\r\n\t\t// Do NOT use configMerge() for the data object because this method merges arrays\r\n\t\t// and so would change references to labels and datasets, preventing data updates.\r\n\t\tvar data = config.data = config.data || {};\r\n\t\tdata.datasets = data.datasets || [];\r\n\t\tdata.labels = data.labels || [];\r\n\r\n\t\tconfig.options = helpers.configMerge(\r\n\t\t\tdefaults.global,\r\n\t\t\tdefaults[config.type],\r\n\t\t\tconfig.options || {});\r\n\r\n\t\treturn config;\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the config of the chart\r\n\t * @param chart {Chart} chart to update the options for\r\n\t */\r\n\tfunction updateConfig(chart) {\r\n\t\tvar newOptions = chart.options;\r\n\r\n\t\thelpers.each(chart.scales, function(scale) {\r\n\t\t\tlayouts.removeBox(chart, scale);\r\n\t\t});\r\n\r\n\t\tnewOptions = helpers.configMerge(\r\n\t\t\tChart.defaults.global,\r\n\t\t\tChart.defaults[chart.config.type],\r\n\t\t\tnewOptions);\r\n\r\n\t\tchart.options = chart.config.options = newOptions;\r\n\t\tchart.ensureScalesHaveIDs();\r\n\t\tchart.buildOrUpdateScales();\r\n\t\t// Tooltip\r\n\t\tchart.tooltip._options = newOptions.tooltips;\r\n\t\tchart.tooltip.initialize();\r\n\t}\r\n\r\n\tfunction positionIsHorizontal(position) {\r\n\t\treturn position === 'top' || position === 'bottom';\r\n\t}\r\n\r\n\thelpers.extend(Chart.prototype, /** @lends Chart */ {\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tconstruct: function(item, config) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tconfig = initConfig(config);\r\n\r\n\t\t\tvar context = platform.acquireContext(item, config);\r\n\t\t\tvar canvas = context && context.canvas;\r\n\t\t\tvar height = canvas && canvas.height;\r\n\t\t\tvar width = canvas && canvas.width;\r\n\r\n\t\t\tme.id = helpers.uid();\r\n\t\t\tme.ctx = context;\r\n\t\t\tme.canvas = canvas;\r\n\t\t\tme.config = config;\r\n\t\t\tme.width = width;\r\n\t\t\tme.height = height;\r\n\t\t\tme.aspectRatio = height ? width / height : null;\r\n\t\t\tme.options = config.options;\r\n\t\t\tme._bufferedRender = false;\r\n\r\n\t\t\t/**\r\n\t\t\t * Provided for backward compatibility, Chart and Chart.Controller have been merged,\r\n\t\t\t * the \"instance\" still need to be defined since it might be called from plugins.\r\n\t\t\t * @prop Chart#chart\r\n\t\t\t * @deprecated since version 2.6.0\r\n\t\t\t * @todo remove at version 3\r\n\t\t\t * @private\r\n\t\t\t */\r\n\t\t\tme.chart = me;\r\n\t\t\tme.controller = me; // chart.chart.controller #inception\r\n\r\n\t\t\t// Add the chart instance to the global namespace\r\n\t\t\tChart.instances[me.id] = me;\r\n\r\n\t\t\t// Define alias to the config data: `chart.data === chart.config.data`\r\n\t\t\tObject.defineProperty(me, 'data', {\r\n\t\t\t\tget: function() {\r\n\t\t\t\t\treturn me.config.data;\r\n\t\t\t\t},\r\n\t\t\t\tset: function(value) {\r\n\t\t\t\t\tme.config.data = value;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (!context || !canvas) {\r\n\t\t\t\t// The given item is not a compatible context2d element, let's return before finalizing\r\n\t\t\t\t// the chart initialization but after setting basic chart / controller properties that\r\n\t\t\t\t// can help to figure out that the chart is not valid (e.g chart.canvas !== null);\r\n\t\t\t\t// https://github.com/chartjs/Chart.js/issues/2807\r\n\t\t\t\tconsole.error(\"Failed to create chart: can't acquire context from the given item\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tme.initialize();\r\n\t\t\tme.update();\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tinitialize: function() {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\t// Before init plugin notification\r\n\t\t\tplugins.notify(me, 'beforeInit');\r\n\r\n\t\t\thelpers.retinaScale(me, me.options.devicePixelRatio);\r\n\r\n\t\t\tme.bindEvents();\r\n\r\n\t\t\tif (me.options.responsive) {\r\n\t\t\t\t// Initial resize before chart draws (must be silent to preserve initial animations).\r\n\t\t\t\tme.resize(true);\r\n\t\t\t}\r\n\r\n\t\t\t// Make sure scales have IDs and are built before we build any controllers.\r\n\t\t\tme.ensureScalesHaveIDs();\r\n\t\t\tme.buildOrUpdateScales();\r\n\t\t\tme.initToolTip();\r\n\r\n\t\t\t// After init plugin notification\r\n\t\t\tplugins.notify(me, 'afterInit');\r\n\r\n\t\t\treturn me;\r\n\t\t},\r\n\r\n\t\tclear: function() {\r\n\t\t\thelpers.canvas.clear(this);\r\n\t\t\treturn this;\r\n\t\t},\r\n\r\n\t\tstop: function() {\r\n\t\t\t// Stops any current animation loop occurring\r\n\t\t\tChart.animationService.cancelAnimation(this);\r\n\t\t\treturn this;\r\n\t\t},\r\n\r\n\t\tresize: function(silent) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = me.options;\r\n\t\t\tvar canvas = me.canvas;\r\n\t\t\tvar aspectRatio = (options.maintainAspectRatio && me.aspectRatio) || null;\r\n\r\n\t\t\t// the canvas render width and height will be casted to integers so make sure that\r\n\t\t\t// the canvas display style uses the same integer values to avoid blurring effect.\r\n\r\n\t\t\t// Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collased\r\n\t\t\tvar newWidth = Math.max(0, Math.floor(helpers.getMaximumWidth(canvas)));\r\n\t\t\tvar newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers.getMaximumHeight(canvas)));\r\n\r\n\t\t\tif (me.width === newWidth && me.height === newHeight) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tcanvas.width = me.width = newWidth;\r\n\t\t\tcanvas.height = me.height = newHeight;\r\n\t\t\tcanvas.style.width = newWidth + 'px';\r\n\t\t\tcanvas.style.height = newHeight + 'px';\r\n\r\n\t\t\thelpers.retinaScale(me, options.devicePixelRatio);\r\n\r\n\t\t\tif (!silent) {\r\n\t\t\t\t// Notify any plugins about the resize\r\n\t\t\t\tvar newSize = {width: newWidth, height: newHeight};\r\n\t\t\t\tplugins.notify(me, 'resize', [newSize]);\r\n\r\n\t\t\t\t// Notify of resize\r\n\t\t\t\tif (me.options.onResize) {\r\n\t\t\t\t\tme.options.onResize(me, newSize);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tme.stop();\r\n\t\t\t\tme.update(me.options.responsiveAnimationDuration);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tensureScalesHaveIDs: function() {\r\n\t\t\tvar options = this.options;\r\n\t\t\tvar scalesOptions = options.scales || {};\r\n\t\t\tvar scaleOptions = options.scale;\r\n\r\n\t\t\thelpers.each(scalesOptions.xAxes, function(xAxisOptions, index) {\r\n\t\t\t\txAxisOptions.id = xAxisOptions.id || ('x-axis-' + index);\r\n\t\t\t});\r\n\r\n\t\t\thelpers.each(scalesOptions.yAxes, function(yAxisOptions, index) {\r\n\t\t\t\tyAxisOptions.id = yAxisOptions.id || ('y-axis-' + index);\r\n\t\t\t});\r\n\r\n\t\t\tif (scaleOptions) {\r\n\t\t\t\tscaleOptions.id = scaleOptions.id || 'scale';\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Builds a map of scale ID to scale object for future lookup.\r\n\t\t */\r\n\t\tbuildOrUpdateScales: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = me.options;\r\n\t\t\tvar scales = me.scales || {};\r\n\t\t\tvar items = [];\r\n\t\t\tvar updated = Object.keys(scales).reduce(function(obj, id) {\r\n\t\t\t\tobj[id] = false;\r\n\t\t\t\treturn obj;\r\n\t\t\t}, {});\r\n\r\n\t\t\tif (options.scales) {\r\n\t\t\t\titems = items.concat(\r\n\t\t\t\t\t(options.scales.xAxes || []).map(function(xAxisOptions) {\r\n\t\t\t\t\t\treturn {options: xAxisOptions, dtype: 'category', dposition: 'bottom'};\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t(options.scales.yAxes || []).map(function(yAxisOptions) {\r\n\t\t\t\t\t\treturn {options: yAxisOptions, dtype: 'linear', dposition: 'left'};\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (options.scale) {\r\n\t\t\t\titems.push({\r\n\t\t\t\t\toptions: options.scale,\r\n\t\t\t\t\tdtype: 'radialLinear',\r\n\t\t\t\t\tisDefault: true,\r\n\t\t\t\t\tdposition: 'chartArea'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\thelpers.each(items, function(item) {\r\n\t\t\t\tvar scaleOptions = item.options;\r\n\t\t\t\tvar id = scaleOptions.id;\r\n\t\t\t\tvar scaleType = helpers.valueOrDefault(scaleOptions.type, item.dtype);\r\n\r\n\t\t\t\tif (positionIsHorizontal(scaleOptions.position) !== positionIsHorizontal(item.dposition)) {\r\n\t\t\t\t\tscaleOptions.position = item.dposition;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tupdated[id] = true;\r\n\t\t\t\tvar scale = null;\r\n\t\t\t\tif (id in scales && scales[id].type === scaleType) {\r\n\t\t\t\t\tscale = scales[id];\r\n\t\t\t\t\tscale.options = scaleOptions;\r\n\t\t\t\t\tscale.ctx = me.ctx;\r\n\t\t\t\t\tscale.chart = me;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar scaleClass = Chart.scaleService.getScaleConstructor(scaleType);\r\n\t\t\t\t\tif (!scaleClass) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tscale = new scaleClass({\r\n\t\t\t\t\t\tid: id,\r\n\t\t\t\t\t\ttype: scaleType,\r\n\t\t\t\t\t\toptions: scaleOptions,\r\n\t\t\t\t\t\tctx: me.ctx,\r\n\t\t\t\t\t\tchart: me\r\n\t\t\t\t\t});\r\n\t\t\t\t\tscales[scale.id] = scale;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tscale.mergeTicksOptions();\r\n\r\n\t\t\t\t// TODO(SB): I think we should be able to remove this custom case (options.scale)\r\n\t\t\t\t// and consider it as a regular scale part of the \"scales\"\" map only! This would\r\n\t\t\t\t// make the logic easier and remove some useless? custom code.\r\n\t\t\t\tif (item.isDefault) {\r\n\t\t\t\t\tme.scale = scale;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t// clear up discarded scales\r\n\t\t\thelpers.each(updated, function(hasUpdated, id) {\r\n\t\t\t\tif (!hasUpdated) {\r\n\t\t\t\t\tdelete scales[id];\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tme.scales = scales;\r\n\r\n\t\t\tChart.scaleService.addScalesToLayout(this);\r\n\t\t},\r\n\r\n\t\tbuildOrUpdateControllers: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar types = [];\r\n\t\t\tvar newControllers = [];\r\n\r\n\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\tvar meta = me.getDatasetMeta(datasetIndex);\r\n\t\t\t\tvar type = dataset.type || me.config.type;\r\n\r\n\t\t\t\tif (meta.type && meta.type !== type) {\r\n\t\t\t\t\tme.destroyDatasetMeta(datasetIndex);\r\n\t\t\t\t\tmeta = me.getDatasetMeta(datasetIndex);\r\n\t\t\t\t}\r\n\t\t\t\tmeta.type = type;\r\n\r\n\t\t\t\ttypes.push(meta.type);\r\n\r\n\t\t\t\tif (meta.controller) {\r\n\t\t\t\t\tmeta.controller.updateIndex(datasetIndex);\r\n\t\t\t\t\tmeta.controller.linkScales();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar ControllerClass = Chart.controllers[meta.type];\r\n\t\t\t\t\tif (ControllerClass === undefined) {\r\n\t\t\t\t\t\tthrow new Error('\"' + meta.type + '\" is not a chart type.');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tmeta.controller = new ControllerClass(me, datasetIndex);\r\n\t\t\t\t\tnewControllers.push(meta.controller);\r\n\t\t\t\t}\r\n\t\t\t}, me);\r\n\r\n\t\t\treturn newControllers;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Reset the elements of all datasets\r\n\t\t * @private\r\n\t\t */\r\n\t\tresetElements: function() {\r\n\t\t\tvar me = this;\r\n\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\tme.getDatasetMeta(datasetIndex).controller.reset();\r\n\t\t\t}, me);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t* Resets the chart back to it's state before the initial animation\r\n\t\t*/\r\n\t\treset: function() {\r\n\t\t\tthis.resetElements();\r\n\t\t\tthis.tooltip.initialize();\r\n\t\t},\r\n\r\n\t\tupdate: function(config) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tif (!config || typeof config !== 'object') {\r\n\t\t\t\t// backwards compatibility\r\n\t\t\t\tconfig = {\r\n\t\t\t\t\tduration: config,\r\n\t\t\t\t\tlazy: arguments[1]\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tupdateConfig(me);\r\n\r\n\t\t\t// plugins options references might have change, let's invalidate the cache\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\r\n\t\t\tplugins._invalidate(me);\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeUpdate') === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// In case the entire data object changed\r\n\t\t\tme.tooltip._data = me.data;\r\n\r\n\t\t\t// Make sure dataset controllers are updated and new controllers are reset\r\n\t\t\tvar newControllers = me.buildOrUpdateControllers();\r\n\r\n\t\t\t// Make sure all dataset controllers have correct meta data counts\r\n\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\tme.getDatasetMeta(datasetIndex).controller.buildOrUpdateElements();\r\n\t\t\t}, me);\r\n\r\n\t\t\tme.updateLayout();\r\n\r\n\t\t\t// Can only reset the new controllers after the scales have been updated\r\n\t\t\tif (me.options.animation && me.options.animation.duration) {\r\n\t\t\t\thelpers.each(newControllers, function(controller) {\r\n\t\t\t\t\tcontroller.reset();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tme.updateDatasets();\r\n\r\n\t\t\t// Need to reset tooltip in case it is displayed with elements that are removed\r\n\t\t\t// after update.\r\n\t\t\tme.tooltip.initialize();\r\n\r\n\t\t\t// Last active contains items that were previously in the tooltip.\r\n\t\t\t// When we reset the tooltip, we need to clear it\r\n\t\t\tme.lastActive = [];\r\n\r\n\t\t\t// Do this before render so that any plugins that need final scale updates can use it\r\n\t\t\tplugins.notify(me, 'afterUpdate');\r\n\r\n\t\t\tif (me._bufferedRender) {\r\n\t\t\t\tme._bufferedRequest = {\r\n\t\t\t\t\tduration: config.duration,\r\n\t\t\t\t\teasing: config.easing,\r\n\t\t\t\t\tlazy: config.lazy\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tme.render(config);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\r\n\t\t * hook, in which case, plugins will not be called on `afterLayout`.\r\n\t\t * @private\r\n\t\t */\r\n\t\tupdateLayout: function() {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeLayout') === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlayouts.update(this, this.width, this.height);\r\n\r\n\t\t\t/**\r\n\t\t\t * Provided for backward compatibility, use `afterLayout` instead.\r\n\t\t\t * @method IPlugin#afterScaleUpdate\r\n\t\t\t * @deprecated since version 2.5.0\r\n\t\t\t * @todo remove at version 3\r\n\t\t\t * @private\r\n\t\t\t */\r\n\t\t\tplugins.notify(me, 'afterScaleUpdate');\r\n\t\t\tplugins.notify(me, 'afterLayout');\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\r\n\t\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\r\n\t\t * @private\r\n\t\t */\r\n\t\tupdateDatasets: function() {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeDatasetsUpdate') === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tfor (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tme.updateDataset(i);\r\n\t\t\t}\r\n\r\n\t\t\tplugins.notify(me, 'afterDatasetsUpdate');\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\r\n\t\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\r\n\t\t * @private\r\n\t\t */\r\n\t\tupdateDataset: function(index) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getDatasetMeta(index);\r\n\t\t\tvar args = {\r\n\t\t\t\tmeta: meta,\r\n\t\t\t\tindex: index\r\n\t\t\t};\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeDatasetUpdate', [args]) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tmeta.controller.update();\r\n\r\n\t\t\tplugins.notify(me, 'afterDatasetUpdate', [args]);\r\n\t\t},\r\n\r\n\t\trender: function(config) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tif (!config || typeof config !== 'object') {\r\n\t\t\t\t// backwards compatibility\r\n\t\t\t\tconfig = {\r\n\t\t\t\t\tduration: config,\r\n\t\t\t\t\tlazy: arguments[1]\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tvar duration = config.duration;\r\n\t\t\tvar lazy = config.lazy;\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeRender') === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar animationOptions = me.options.animation;\r\n\t\t\tvar onComplete = function(animation) {\r\n\t\t\t\tplugins.notify(me, 'afterRender');\r\n\t\t\t\thelpers.callback(animationOptions && animationOptions.onComplete, [animation], me);\r\n\t\t\t};\r\n\r\n\t\t\tif (animationOptions && ((typeof duration !== 'undefined' && duration !== 0) || (typeof duration === 'undefined' && animationOptions.duration !== 0))) {\r\n\t\t\t\tvar animation = new Chart.Animation({\r\n\t\t\t\t\tnumSteps: (duration || animationOptions.duration) / 16.66, // 60 fps\r\n\t\t\t\t\teasing: config.easing || animationOptions.easing,\r\n\r\n\t\t\t\t\trender: function(chart, animationObject) {\r\n\t\t\t\t\t\tvar easingFunction = helpers.easing.effects[animationObject.easing];\r\n\t\t\t\t\t\tvar currentStep = animationObject.currentStep;\r\n\t\t\t\t\t\tvar stepDecimal = currentStep / animationObject.numSteps;\r\n\r\n\t\t\t\t\t\tchart.draw(easingFunction(stepDecimal), stepDecimal, currentStep);\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tonAnimationProgress: animationOptions.onProgress,\r\n\t\t\t\t\tonAnimationComplete: onComplete\r\n\t\t\t\t});\r\n\r\n\t\t\t\tChart.animationService.addAnimation(me, animation, duration, lazy);\r\n\t\t\t} else {\r\n\t\t\t\tme.draw();\r\n\r\n\t\t\t\t// See https://github.com/chartjs/Chart.js/issues/3781\r\n\t\t\t\tonComplete(new Chart.Animation({numSteps: 0, chart: me}));\r\n\t\t\t}\r\n\r\n\t\t\treturn me;\r\n\t\t},\r\n\r\n\t\tdraw: function(easingValue) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tme.clear();\r\n\r\n\t\t\tif (helpers.isNullOrUndef(easingValue)) {\r\n\t\t\t\teasingValue = 1;\r\n\t\t\t}\r\n\r\n\t\t\tme.transition(easingValue);\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeDraw', [easingValue]) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Draw all the scales\r\n\t\t\thelpers.each(me.boxes, function(box) {\r\n\t\t\t\tbox.draw(me.chartArea);\r\n\t\t\t}, me);\r\n\r\n\t\t\tif (me.scale) {\r\n\t\t\t\tme.scale.draw();\r\n\t\t\t}\r\n\r\n\t\t\tme.drawDatasets(easingValue);\r\n\t\t\tme._drawTooltip(easingValue);\r\n\r\n\t\t\tplugins.notify(me, 'afterDraw', [easingValue]);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\ttransition: function(easingValue) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tfor (var i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tif (me.isDatasetVisible(i)) {\r\n\t\t\t\t\tme.getDatasetMeta(i).controller.transition(easingValue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tme.tooltip.transition(easingValue);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\r\n\t\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\r\n\t\t * @private\r\n\t\t */\r\n\t\tdrawDatasets: function(easingValue) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeDatasetsDraw', [easingValue]) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Draw datasets reversed to support proper line stacking\r\n\t\t\tfor (var i = (me.data.datasets || []).length - 1; i >= 0; --i) {\r\n\t\t\t\tif (me.isDatasetVisible(i)) {\r\n\t\t\t\t\tme.drawDataset(i, easingValue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tplugins.notify(me, 'afterDatasetsDraw', [easingValue]);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\r\n\t\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\r\n\t\t * @private\r\n\t\t */\r\n\t\tdrawDataset: function(index, easingValue) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getDatasetMeta(index);\r\n\t\t\tvar args = {\r\n\t\t\t\tmeta: meta,\r\n\t\t\t\tindex: index,\r\n\t\t\t\teasingValue: easingValue\r\n\t\t\t};\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeDatasetDraw', [args]) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tmeta.controller.draw(easingValue);\r\n\r\n\t\t\tplugins.notify(me, 'afterDatasetDraw', [args]);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Draws tooltip unless a plugin returns `false` to the `beforeTooltipDraw`\r\n\t\t * hook, in which case, plugins will not be called on `afterTooltipDraw`.\r\n\t\t * @private\r\n\t\t */\r\n\t\t_drawTooltip: function(easingValue) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar tooltip = me.tooltip;\r\n\t\t\tvar args = {\r\n\t\t\t\ttooltip: tooltip,\r\n\t\t\t\teasingValue: easingValue\r\n\t\t\t};\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeTooltipDraw', [args]) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\ttooltip.draw();\r\n\r\n\t\t\tplugins.notify(me, 'afterTooltipDraw', [args]);\r\n\t\t},\r\n\r\n\t\t// Get the single element that was clicked on\r\n\t\t// @return : An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw\r\n\t\tgetElementAtEvent: function(e) {\r\n\t\t\treturn Interaction.modes.single(this, e);\r\n\t\t},\r\n\r\n\t\tgetElementsAtEvent: function(e) {\r\n\t\t\treturn Interaction.modes.label(this, e, {intersect: true});\r\n\t\t},\r\n\r\n\t\tgetElementsAtXAxis: function(e) {\r\n\t\t\treturn Interaction.modes['x-axis'](this, e, {intersect: true});\r\n\t\t},\r\n\r\n\t\tgetElementsAtEventForMode: function(e, mode, options) {\r\n\t\t\tvar method = Interaction.modes[mode];\r\n\t\t\tif (typeof method === 'function') {\r\n\t\t\t\treturn method(this, e, options);\r\n\t\t\t}\r\n\r\n\t\t\treturn [];\r\n\t\t},\r\n\r\n\t\tgetDatasetAtEvent: function(e) {\r\n\t\t\treturn Interaction.modes.dataset(this, e, {intersect: true});\r\n\t\t},\r\n\r\n\t\tgetDatasetMeta: function(datasetIndex) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar dataset = me.data.datasets[datasetIndex];\r\n\t\t\tif (!dataset._meta) {\r\n\t\t\t\tdataset._meta = {};\r\n\t\t\t}\r\n\r\n\t\t\tvar meta = dataset._meta[me.id];\r\n\t\t\tif (!meta) {\r\n\t\t\t\tmeta = dataset._meta[me.id] = {\r\n\t\t\t\t\ttype: null,\r\n\t\t\t\t\tdata: [],\r\n\t\t\t\t\tdataset: null,\r\n\t\t\t\t\tcontroller: null,\r\n\t\t\t\t\thidden: null,\t\t\t// See isDatasetVisible() comment\r\n\t\t\t\t\txAxisID: null,\r\n\t\t\t\t\tyAxisID: null\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn meta;\r\n\t\t},\r\n\r\n\t\tgetVisibleDatasetCount: function() {\r\n\t\t\tvar count = 0;\r\n\t\t\tfor (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (this.isDatasetVisible(i)) {\r\n\t\t\t\t\tcount++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn count;\r\n\t\t},\r\n\r\n\t\tisDatasetVisible: function(datasetIndex) {\r\n\t\t\tvar meta = this.getDatasetMeta(datasetIndex);\r\n\r\n\t\t\t// meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\r\n\t\t\t// the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\r\n\t\t\treturn typeof meta.hidden === 'boolean' ? !meta.hidden : !this.data.datasets[datasetIndex].hidden;\r\n\t\t},\r\n\r\n\t\tgenerateLegend: function() {\r\n\t\t\treturn this.options.legendCallback(this);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tdestroyDatasetMeta: function(datasetIndex) {\r\n\t\t\tvar id = this.id;\r\n\t\t\tvar dataset = this.data.datasets[datasetIndex];\r\n\t\t\tvar meta = dataset._meta && dataset._meta[id];\r\n\r\n\t\t\tif (meta) {\r\n\t\t\t\tmeta.controller.destroy();\r\n\t\t\t\tdelete dataset._meta[id];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tdestroy: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar canvas = me.canvas;\r\n\t\t\tvar i, ilen;\r\n\r\n\t\t\tme.stop();\r\n\r\n\t\t\t// dataset controllers need to cleanup associated data\r\n\t\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tme.destroyDatasetMeta(i);\r\n\t\t\t}\r\n\r\n\t\t\tif (canvas) {\r\n\t\t\t\tme.unbindEvents();\r\n\t\t\t\thelpers.canvas.clear(me);\r\n\t\t\t\tplatform.releaseContext(me.ctx);\r\n\t\t\t\tme.canvas = null;\r\n\t\t\t\tme.ctx = null;\r\n\t\t\t}\r\n\r\n\t\t\tplugins.notify(me, 'destroy');\r\n\r\n\t\t\tdelete Chart.instances[me.id];\r\n\t\t},\r\n\r\n\t\ttoBase64Image: function() {\r\n\t\t\treturn this.canvas.toDataURL.apply(this.canvas, arguments);\r\n\t\t},\r\n\r\n\t\tinitToolTip: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tme.tooltip = new Chart.Tooltip({\r\n\t\t\t\t_chart: me,\r\n\t\t\t\t_chartInstance: me, // deprecated, backward compatibility\r\n\t\t\t\t_data: me.data,\r\n\t\t\t\t_options: me.options.tooltips\r\n\t\t\t}, me);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tbindEvents: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar listeners = me._listeners = {};\r\n\t\t\tvar listener = function() {\r\n\t\t\t\tme.eventHandler.apply(me, arguments);\r\n\t\t\t};\r\n\r\n\t\t\thelpers.each(me.options.events, function(type) {\r\n\t\t\t\tplatform.addEventListener(me, type, listener);\r\n\t\t\t\tlisteners[type] = listener;\r\n\t\t\t});\r\n\r\n\t\t\t// Elements used to detect size change should not be injected for non responsive charts.\r\n\t\t\t// See https://github.com/chartjs/Chart.js/issues/2210\r\n\t\t\tif (me.options.responsive) {\r\n\t\t\t\tlistener = function() {\r\n\t\t\t\t\tme.resize();\r\n\t\t\t\t};\r\n\r\n\t\t\t\tplatform.addEventListener(me, 'resize', listener);\r\n\t\t\t\tlisteners.resize = listener;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tunbindEvents: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar listeners = me._listeners;\r\n\t\t\tif (!listeners) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tdelete me._listeners;\r\n\t\t\thelpers.each(listeners, function(listener, type) {\r\n\t\t\t\tplatform.removeEventListener(me, type, listener);\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tupdateHoverStyle: function(elements, mode, enabled) {\r\n\t\t\tvar method = enabled ? 'setHoverStyle' : 'removeHoverStyle';\r\n\t\t\tvar element, i, ilen;\r\n\r\n\t\t\tfor (i = 0, ilen = elements.length; i < ilen; ++i) {\r\n\t\t\t\telement = elements[i];\r\n\t\t\t\tif (element) {\r\n\t\t\t\t\tthis.getDatasetMeta(element._datasetIndex).controller[method](element);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\teventHandler: function(e) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar tooltip = me.tooltip;\r\n\r\n\t\t\tif (plugins.notify(me, 'beforeEvent', [e]) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Buffer any update calls so that renders do not occur\r\n\t\t\tme._bufferedRender = true;\r\n\t\t\tme._bufferedRequest = null;\r\n\r\n\t\t\tvar changed = me.handleEvent(e);\r\n\t\t\t// for smooth tooltip animations issue #4989\r\n\t\t\t// the tooltip should be the source of change\r\n\t\t\t// Animation check workaround:\r\n\t\t\t// tooltip._start will be null when tooltip isn't animating\r\n\t\t\tif (tooltip) {\r\n\t\t\t\tchanged = tooltip._start\r\n\t\t\t\t\t? tooltip.handleEvent(e)\r\n\t\t\t\t\t: changed | tooltip.handleEvent(e);\r\n\t\t\t}\r\n\r\n\t\t\tplugins.notify(me, 'afterEvent', [e]);\r\n\r\n\t\t\tvar bufferedRequest = me._bufferedRequest;\r\n\t\t\tif (bufferedRequest) {\r\n\t\t\t\t// If we have an update that was triggered, we need to do a normal render\r\n\t\t\t\tme.render(bufferedRequest);\r\n\t\t\t} else if (changed && !me.animating) {\r\n\t\t\t\t// If entering, leaving, or changing elements, animate the change via pivot\r\n\t\t\t\tme.stop();\r\n\r\n\t\t\t\t// We only need to render at this point. Updating will cause scales to be\r\n\t\t\t\t// recomputed generating flicker & using more memory than necessary.\r\n\t\t\t\tme.render(me.options.hover.animationDuration, true);\r\n\t\t\t}\r\n\r\n\t\t\tme._bufferedRender = false;\r\n\t\t\tme._bufferedRequest = null;\r\n\r\n\t\t\treturn me;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Handle an event\r\n\t\t * @private\r\n\t\t * @param {IEvent} event the event to handle\r\n\t\t * @return {Boolean} true if the chart needs to re-render\r\n\t\t */\r\n\t\thandleEvent: function(e) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = me.options || {};\r\n\t\t\tvar hoverOptions = options.hover;\r\n\t\t\tvar changed = false;\r\n\r\n\t\t\tme.lastActive = me.lastActive || [];\r\n\r\n\t\t\t// Find Active Elements for hover and tooltips\r\n\t\t\tif (e.type === 'mouseout') {\r\n\t\t\t\tme.active = [];\r\n\t\t\t} else {\r\n\t\t\t\tme.active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions);\r\n\t\t\t}\r\n\r\n\t\t\t// Invoke onHover hook\r\n\t\t\t// Need to call with native event here to not break backwards compatibility\r\n\t\t\thelpers.callback(options.onHover || options.hover.onHover, [e.native, me.active], me);\r\n\r\n\t\t\tif (e.type === 'mouseup' || e.type === 'click') {\r\n\t\t\t\tif (options.onClick) {\r\n\t\t\t\t\t// Use e.native here for backwards compatibility\r\n\t\t\t\t\toptions.onClick.call(me, e.native, me.active);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Remove styling for last active (even if it may still be active)\r\n\t\t\tif (me.lastActive.length) {\r\n\t\t\t\tme.updateHoverStyle(me.lastActive, hoverOptions.mode, false);\r\n\t\t\t}\r\n\r\n\t\t\t// Built in hover styling\r\n\t\t\tif (me.active.length && hoverOptions.mode) {\r\n\t\t\t\tme.updateHoverStyle(me.active, hoverOptions.mode, true);\r\n\t\t\t}\r\n\r\n\t\t\tchanged = !helpers.arrayEquals(me.active, me.lastActive);\r\n\r\n\t\t\t// Remember Last Actives\r\n\t\t\tme.lastActive = me.active;\r\n\r\n\t\t\treturn changed;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * Provided for backward compatibility, use Chart instead.\r\n\t * @class Chart.Controller\r\n\t * @deprecated since version 2.6.0\r\n\t * @todo remove at version 3\r\n\t * @private\r\n\t */\r\n\tChart.Controller = Chart;\r\n};\r\n\r\n},{\"25\":25,\"28\":28,\"30\":30,\"31\":31,\"45\":45,\"48\":48}],24:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(45);\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n\t/**\r\n\t * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n\t * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n\t * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n\t */\r\n\tfunction listenArrayEvents(array, listener) {\r\n\t\tif (array._chartjs) {\r\n\t\t\tarray._chartjs.listeners.push(listener);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tObject.defineProperty(array, '_chartjs', {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: {\r\n\t\t\t\tlisteners: [listener]\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarrayEvents.forEach(function(key) {\r\n\t\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\t\tvar base = array[key];\r\n\r\n\t\t\tObject.defineProperty(array, key, {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tenumerable: false,\r\n\t\t\t\tvalue: function() {\r\n\t\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\t\thelpers.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\treturn res;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Removes the given array event listener and cleanup extra attached properties (such as\r\n\t * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n\t */\r\n\tfunction unlistenArrayEvents(array, listener) {\r\n\t\tvar stub = array._chartjs;\r\n\t\tif (!stub) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar listeners = stub.listeners;\r\n\t\tvar index = listeners.indexOf(listener);\r\n\t\tif (index !== -1) {\r\n\t\t\tlisteners.splice(index, 1);\r\n\t\t}\r\n\r\n\t\tif (listeners.length > 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tarrayEvents.forEach(function(key) {\r\n\t\t\tdelete array[key];\r\n\t\t});\r\n\r\n\t\tdelete array._chartjs;\r\n\t}\r\n\r\n\t// Base class for all dataset controllers (line, bar, etc)\r\n\tChart.DatasetController = function(chart, datasetIndex) {\r\n\t\tthis.initialize(chart, datasetIndex);\r\n\t};\r\n\r\n\thelpers.extend(Chart.DatasetController.prototype, {\r\n\r\n\t\t/**\r\n\t\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t\t * @type {Chart.core.element}\r\n\t\t */\r\n\t\tdatasetElementType: null,\r\n\r\n\t\t/**\r\n\t\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t\t * @type {Chart.core.element}\r\n\t\t */\r\n\t\tdataElementType: null,\r\n\r\n\t\tinitialize: function(chart, datasetIndex) {\r\n\t\t\tvar me = this;\r\n\t\t\tme.chart = chart;\r\n\t\t\tme.index = datasetIndex;\r\n\t\t\tme.linkScales();\r\n\t\t\tme.addElements();\r\n\t\t},\r\n\r\n\t\tupdateIndex: function(datasetIndex) {\r\n\t\t\tthis.index = datasetIndex;\r\n\t\t},\r\n\r\n\t\tlinkScales: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar dataset = me.getDataset();\r\n\r\n\t\t\tif (meta.xAxisID === null || !(meta.xAxisID in me.chart.scales)) {\r\n\t\t\t\tmeta.xAxisID = dataset.xAxisID || me.chart.options.scales.xAxes[0].id;\r\n\t\t\t}\r\n\t\t\tif (meta.yAxisID === null || !(meta.yAxisID in me.chart.scales)) {\r\n\t\t\t\tmeta.yAxisID = dataset.yAxisID || me.chart.options.scales.yAxes[0].id;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tgetDataset: function() {\r\n\t\t\treturn this.chart.data.datasets[this.index];\r\n\t\t},\r\n\r\n\t\tgetMeta: function() {\r\n\t\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t\t},\r\n\r\n\t\tgetScaleForId: function(scaleID) {\r\n\t\t\treturn this.chart.scales[scaleID];\r\n\t\t},\r\n\r\n\t\treset: function() {\r\n\t\t\tthis.update(true);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tdestroy: function() {\r\n\t\t\tif (this._data) {\r\n\t\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcreateMetaDataset: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar type = me.datasetElementType;\r\n\t\t\treturn type && new type({\r\n\t\t\t\t_chart: me.chart,\r\n\t\t\t\t_datasetIndex: me.index\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tcreateMetaData: function(index) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar type = me.dataElementType;\r\n\t\t\treturn type && new type({\r\n\t\t\t\t_chart: me.chart,\r\n\t\t\t\t_datasetIndex: me.index,\r\n\t\t\t\t_index: index\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\taddElements: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar data = me.getDataset().data || [];\r\n\t\t\tvar metaData = meta.data;\r\n\t\t\tvar i, ilen;\r\n\r\n\t\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t\t}\r\n\r\n\t\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t\t},\r\n\r\n\t\taddElementAndReset: function(index) {\r\n\t\t\tvar element = this.createMetaData(index);\r\n\t\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\t\tthis.updateElement(element, index, true);\r\n\t\t},\r\n\r\n\t\tbuildOrUpdateElements: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar dataset = me.getDataset();\r\n\t\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t\t// the internal meta data accordingly.\r\n\t\t\tif (me._data !== data) {\r\n\t\t\t\tif (me._data) {\r\n\t\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t\tme._data = data;\r\n\t\t\t}\r\n\r\n\t\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\t\tme.resyncElements();\r\n\t\t},\r\n\r\n\t\tupdate: helpers.noop,\r\n\r\n\t\ttransition: function(easingValue) {\r\n\t\t\tvar meta = this.getMeta();\r\n\t\t\tvar elements = meta.data || [];\r\n\t\t\tvar ilen = elements.length;\r\n\t\t\tvar i = 0;\r\n\r\n\t\t\tfor (; i < ilen; ++i) {\r\n\t\t\t\telements[i].transition(easingValue);\r\n\t\t\t}\r\n\r\n\t\t\tif (meta.dataset) {\r\n\t\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tdraw: function() {\r\n\t\t\tvar meta = this.getMeta();\r\n\t\t\tvar elements = meta.data || [];\r\n\t\t\tvar ilen = elements.length;\r\n\t\t\tvar i = 0;\r\n\r\n\t\t\tif (meta.dataset) {\r\n\t\t\t\tmeta.dataset.draw();\r\n\t\t\t}\r\n\r\n\t\t\tfor (; i < ilen; ++i) {\r\n\t\t\t\telements[i].draw();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tremoveHoverStyle: function(element, elementOpts) {\r\n\t\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\t\tvar index = element._index;\r\n\t\t\tvar custom = element.custom || {};\r\n\t\t\tvar valueOrDefault = helpers.valueAtIndexOrDefault;\r\n\t\t\tvar model = element._model;\r\n\r\n\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor);\r\n\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor);\r\n\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth);\r\n\t\t},\r\n\r\n\t\tsetHoverStyle: function(element) {\r\n\t\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\t\tvar index = element._index;\r\n\t\t\tvar custom = element.custom || {};\r\n\t\t\tvar valueOrDefault = helpers.valueAtIndexOrDefault;\r\n\t\t\tvar getHoverColor = helpers.getHoverColor;\r\n\t\t\tvar model = element._model;\r\n\r\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : valueOrDefault(dataset.hoverBackgroundColor, index, getHoverColor(model.backgroundColor));\r\n\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : valueOrDefault(dataset.hoverBorderColor, index, getHoverColor(model.borderColor));\r\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : valueOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tresyncElements: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar meta = me.getMeta();\r\n\t\t\tvar data = me.getDataset().data;\r\n\t\t\tvar numMeta = meta.data.length;\r\n\t\t\tvar numData = data.length;\r\n\r\n\t\t\tif (numData < numMeta) {\r\n\t\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t\t} else if (numData > numMeta) {\r\n\t\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tinsertElements: function(start, count) {\r\n\t\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\t\tthis.addElementAndReset(start + i);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tonDataPush: function() {\r\n\t\t\tthis.insertElements(this.getDataset().data.length - 1, arguments.length);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tonDataPop: function() {\r\n\t\t\tthis.getMeta().data.pop();\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tonDataShift: function() {\r\n\t\t\tthis.getMeta().data.shift();\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tonDataSplice: function(start, count) {\r\n\t\t\tthis.getMeta().data.splice(start, count);\r\n\t\t\tthis.insertElements(start, arguments.length - 2);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tonDataUnshift: function() {\r\n\t\t\tthis.insertElements(0, arguments.length);\r\n\t\t}\r\n\t});\r\n\r\n\tChart.DatasetController.extend = helpers.inherits;\r\n};\r\n\r\n},{\"45\":45}],25:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(45);\r\n\r\nmodule.exports = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n},{\"45\":45}],26:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar color = require(3);\r\nvar helpers = require(45);\r\n\r\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = color(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = color(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (type === 'number' && isFinite(origin) && isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers.extend(Element.prototype, {\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers.clone(me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = model;\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers.isNumber(this._model.x) && helpers.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers.inherits;\r\n\r\nmodule.exports = Element;\r\n\r\n},{\"3\":3,\"45\":45}],27:[function(require,module,exports){\r\n/* global window: false */\r\n/* global document: false */\r\n'use strict';\r\n\r\nvar color = require(3);\r\nvar defaults = require(25);\r\nvar helpers = require(45);\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\t// -- Basic js utility methods\r\n\r\n\thelpers.configMerge = function(/* objects ... */) {\r\n\t\treturn helpers.merge(helpers.clone(arguments[0]), [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, target, source, options) {\r\n\t\t\t\tvar tval = target[key] || {};\r\n\t\t\t\tvar sval = source[key];\r\n\r\n\t\t\t\tif (key === 'scales') {\r\n\t\t\t\t\t// scale config merging is complex. Add our own function here for that\r\n\t\t\t\t\ttarget[key] = helpers.scaleMerge(tval, sval);\r\n\t\t\t\t} else if (key === 'scale') {\r\n\t\t\t\t\t// used in polar area & radar charts since there is only one scale\r\n\t\t\t\t\ttarget[key] = helpers.merge(tval, [Chart.scaleService.getScaleDefaults(sval.type), sval]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\thelpers._merger(key, target, source, options);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\thelpers.scaleMerge = function(/* objects ... */) {\r\n\t\treturn helpers.merge(helpers.clone(arguments[0]), [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, target, source, options) {\r\n\t\t\t\tif (key === 'xAxes' || key === 'yAxes') {\r\n\t\t\t\t\tvar slen = source[key].length;\r\n\t\t\t\t\tvar i, type, scale;\r\n\r\n\t\t\t\t\tif (!target[key]) {\r\n\t\t\t\t\t\ttarget[key] = [];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfor (i = 0; i < slen; ++i) {\r\n\t\t\t\t\t\tscale = source[key][i];\r\n\t\t\t\t\t\ttype = helpers.valueOrDefault(scale.type, key === 'xAxes' ? 'category' : 'linear');\r\n\r\n\t\t\t\t\t\tif (i >= target[key].length) {\r\n\t\t\t\t\t\t\ttarget[key].push({});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) {\r\n\t\t\t\t\t\t\t// new/untyped scale or type changed: let's apply the new defaults\r\n\t\t\t\t\t\t\t// then merge source scale to correctly overwrite the defaults.\r\n\t\t\t\t\t\t\thelpers.merge(target[key][i], [Chart.scaleService.getScaleDefaults(type), scale]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// scales type are the same\r\n\t\t\t\t\t\t\thelpers.merge(target[key][i], scale);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\thelpers._merger(key, target, source, options);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\thelpers.where = function(collection, filterCallback) {\r\n\t\tif (helpers.isArray(collection) && Array.prototype.filter) {\r\n\t\t\treturn collection.filter(filterCallback);\r\n\t\t}\r\n\t\tvar filtered = [];\r\n\r\n\t\thelpers.each(collection, function(item) {\r\n\t\t\tif (filterCallback(item)) {\r\n\t\t\t\tfiltered.push(item);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn filtered;\r\n\t};\r\n\thelpers.findIndex = Array.prototype.findIndex ?\r\n\t\tfunction(array, callback, scope) {\r\n\t\t\treturn array.findIndex(callback, scope);\r\n\t\t} :\r\n\t\tfunction(array, callback, scope) {\r\n\t\t\tscope = scope === undefined ? array : scope;\r\n\t\t\tfor (var i = 0, ilen = array.length; i < ilen; ++i) {\r\n\t\t\t\tif (callback.call(scope, array[i], i, array)) {\r\n\t\t\t\t\treturn i;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn -1;\r\n\t\t};\r\n\thelpers.findNextWhere = function(arrayToSearch, filterCallback, startIndex) {\r\n\t\t// Default to start of the array\r\n\t\tif (helpers.isNullOrUndef(startIndex)) {\r\n\t\t\tstartIndex = -1;\r\n\t\t}\r\n\t\tfor (var i = startIndex + 1; i < arrayToSearch.length; i++) {\r\n\t\t\tvar currentItem = arrayToSearch[i];\r\n\t\t\tif (filterCallback(currentItem)) {\r\n\t\t\t\treturn currentItem;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\thelpers.findPreviousWhere = function(arrayToSearch, filterCallback, startIndex) {\r\n\t\t// Default to end of the array\r\n\t\tif (helpers.isNullOrUndef(startIndex)) {\r\n\t\t\tstartIndex = arrayToSearch.length;\r\n\t\t}\r\n\t\tfor (var i = startIndex - 1; i >= 0; i--) {\r\n\t\t\tvar currentItem = arrayToSearch[i];\r\n\t\t\tif (filterCallback(currentItem)) {\r\n\t\t\t\treturn currentItem;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// -- Math methods\r\n\thelpers.isNumber = function(n) {\r\n\t\treturn !isNaN(parseFloat(n)) && isFinite(n);\r\n\t};\r\n\thelpers.almostEquals = function(x, y, epsilon) {\r\n\t\treturn Math.abs(x - y) < epsilon;\r\n\t};\r\n\thelpers.almostWhole = function(x, epsilon) {\r\n\t\tvar rounded = Math.round(x);\r\n\t\treturn (((rounded - epsilon) < x) && ((rounded + epsilon) > x));\r\n\t};\r\n\thelpers.max = function(array) {\r\n\t\treturn array.reduce(function(max, value) {\r\n\t\t\tif (!isNaN(value)) {\r\n\t\t\t\treturn Math.max(max, value);\r\n\t\t\t}\r\n\t\t\treturn max;\r\n\t\t}, Number.NEGATIVE_INFINITY);\r\n\t};\r\n\thelpers.min = function(array) {\r\n\t\treturn array.reduce(function(min, value) {\r\n\t\t\tif (!isNaN(value)) {\r\n\t\t\t\treturn Math.min(min, value);\r\n\t\t\t}\r\n\t\t\treturn min;\r\n\t\t}, Number.POSITIVE_INFINITY);\r\n\t};\r\n\thelpers.sign = Math.sign ?\r\n\t\tfunction(x) {\r\n\t\t\treturn Math.sign(x);\r\n\t\t} :\r\n\t\tfunction(x) {\r\n\t\t\tx = +x; // convert to a number\r\n\t\t\tif (x === 0 || isNaN(x)) {\r\n\t\t\t\treturn x;\r\n\t\t\t}\r\n\t\t\treturn x > 0 ? 1 : -1;\r\n\t\t};\r\n\thelpers.log10 = Math.log10 ?\r\n\t\tfunction(x) {\r\n\t\t\treturn Math.log10(x);\r\n\t\t} :\r\n\t\tfunction(x) {\r\n\t\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t\t// Check for whole powers of 10,\r\n\t\t\t// which due to floating point rounding error should be corrected.\r\n\t\t\tvar powerOf10 = Math.round(exponent);\r\n\t\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t\t};\r\n\thelpers.toRadians = function(degrees) {\r\n\t\treturn degrees * (Math.PI / 180);\r\n\t};\r\n\thelpers.toDegrees = function(radians) {\r\n\t\treturn radians * (180 / Math.PI);\r\n\t};\r\n\t// Gets the angle from vertical upright to the point about a centre.\r\n\thelpers.getAngleFromPoint = function(centrePoint, anglePoint) {\r\n\t\tvar distanceFromXCenter = anglePoint.x - centrePoint.x;\r\n\t\tvar distanceFromYCenter = anglePoint.y - centrePoint.y;\r\n\t\tvar radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\r\n\r\n\t\tvar angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\r\n\r\n\t\tif (angle < (-0.5 * Math.PI)) {\r\n\t\t\tangle += 2.0 * Math.PI; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tangle: angle,\r\n\t\t\tdistance: radialDistanceFromCenter\r\n\t\t};\r\n\t};\r\n\thelpers.distanceBetweenPoints = function(pt1, pt2) {\r\n\t\treturn Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\r\n\t};\r\n\thelpers.aliasPixel = function(pixelWidth) {\r\n\t\treturn (pixelWidth % 2 === 0) ? 0 : 0.5;\r\n\t};\r\n\thelpers.splineCurve = function(firstPoint, middlePoint, afterPoint, t) {\r\n\t\t// Props to Rob Spencer at scaled innovation for his post on splining between points\r\n\t\t// http://scaledinnovation.com/analytics/splines/aboutSplines.html\r\n\r\n\t\t// This function must also respect \"skipped\" points\r\n\r\n\t\tvar previous = firstPoint.skip ? middlePoint : firstPoint;\r\n\t\tvar current = middlePoint;\r\n\t\tvar next = afterPoint.skip ? middlePoint : afterPoint;\r\n\r\n\t\tvar d01 = Math.sqrt(Math.pow(current.x - previous.x, 2) + Math.pow(current.y - previous.y, 2));\r\n\t\tvar d12 = Math.sqrt(Math.pow(next.x - current.x, 2) + Math.pow(next.y - current.y, 2));\r\n\r\n\t\tvar s01 = d01 / (d01 + d12);\r\n\t\tvar s12 = d12 / (d01 + d12);\r\n\r\n\t\t// If all points are the same, s01 & s02 will be inf\r\n\t\ts01 = isNaN(s01) ? 0 : s01;\r\n\t\ts12 = isNaN(s12) ? 0 : s12;\r\n\r\n\t\tvar fa = t * s01; // scaling factor for triangle Ta\r\n\t\tvar fb = t * s12;\r\n\r\n\t\treturn {\r\n\t\t\tprevious: {\r\n\t\t\t\tx: current.x - fa * (next.x - previous.x),\r\n\t\t\t\ty: current.y - fa * (next.y - previous.y)\r\n\t\t\t},\r\n\t\t\tnext: {\r\n\t\t\t\tx: current.x + fb * (next.x - previous.x),\r\n\t\t\t\ty: current.y + fb * (next.y - previous.y)\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\thelpers.EPSILON = Number.EPSILON || 1e-14;\r\n\thelpers.splineCurveMonotone = function(points) {\r\n\t\t// This function calculates Bézier control points in a similar way than |splineCurve|,\r\n\t\t// but preserves monotonicity of the provided data and ensures no local extremums are added\r\n\t\t// between the dataset discrete points due to the interpolation.\r\n\t\t// See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\r\n\r\n\t\tvar pointsWithTangents = (points || []).map(function(point) {\r\n\t\t\treturn {\r\n\t\t\t\tmodel: point._model,\r\n\t\t\t\tdeltaK: 0,\r\n\t\t\t\tmK: 0\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\t// Calculate slopes (deltaK) and initialize tangents (mK)\r\n\t\tvar pointsLen = pointsWithTangents.length;\r\n\t\tvar i, pointBefore, pointCurrent, pointAfter;\r\n\t\tfor (i = 0; i < pointsLen; ++i) {\r\n\t\t\tpointCurrent = pointsWithTangents[i];\r\n\t\t\tif (pointCurrent.model.skip) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\r\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\r\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\r\n\t\t\t\tvar slopeDeltaX = (pointAfter.model.x - pointCurrent.model.x);\r\n\r\n\t\t\t\t// In the case of two points that appear at the same x pixel, slopeDeltaX is 0\r\n\t\t\t\tpointCurrent.deltaK = slopeDeltaX !== 0 ? (pointAfter.model.y - pointCurrent.model.y) / slopeDeltaX : 0;\r\n\t\t\t}\r\n\r\n\t\t\tif (!pointBefore || pointBefore.model.skip) {\r\n\t\t\t\tpointCurrent.mK = pointCurrent.deltaK;\r\n\t\t\t} else if (!pointAfter || pointAfter.model.skip) {\r\n\t\t\t\tpointCurrent.mK = pointBefore.deltaK;\r\n\t\t\t} else if (this.sign(pointBefore.deltaK) !== this.sign(pointCurrent.deltaK)) {\r\n\t\t\t\tpointCurrent.mK = 0;\r\n\t\t\t} else {\r\n\t\t\t\tpointCurrent.mK = (pointBefore.deltaK + pointCurrent.deltaK) / 2;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Adjust tangents to ensure monotonic properties\r\n\t\tvar alphaK, betaK, tauK, squaredMagnitude;\r\n\t\tfor (i = 0; i < pointsLen - 1; ++i) {\r\n\t\t\tpointCurrent = pointsWithTangents[i];\r\n\t\t\tpointAfter = pointsWithTangents[i + 1];\r\n\t\t\tif (pointCurrent.model.skip || pointAfter.model.skip) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (helpers.almostEquals(pointCurrent.deltaK, 0, this.EPSILON)) {\r\n\t\t\t\tpointCurrent.mK = pointAfter.mK = 0;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\talphaK = pointCurrent.mK / pointCurrent.deltaK;\r\n\t\t\tbetaK = pointAfter.mK / pointCurrent.deltaK;\r\n\t\t\tsquaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\r\n\t\t\tif (squaredMagnitude <= 9) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\ttauK = 3 / Math.sqrt(squaredMagnitude);\r\n\t\t\tpointCurrent.mK = alphaK * tauK * pointCurrent.deltaK;\r\n\t\t\tpointAfter.mK = betaK * tauK * pointCurrent.deltaK;\r\n\t\t}\r\n\r\n\t\t// Compute control points\r\n\t\tvar deltaX;\r\n\t\tfor (i = 0; i < pointsLen; ++i) {\r\n\t\t\tpointCurrent = pointsWithTangents[i];\r\n\t\t\tif (pointCurrent.model.skip) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\r\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\r\n\t\t\tif (pointBefore && !pointBefore.model.skip) {\r\n\t\t\t\tdeltaX = (pointCurrent.model.x - pointBefore.model.x) / 3;\r\n\t\t\t\tpointCurrent.model.controlPointPreviousX = pointCurrent.model.x - deltaX;\r\n\t\t\t\tpointCurrent.model.controlPointPreviousY = pointCurrent.model.y - deltaX * pointCurrent.mK;\r\n\t\t\t}\r\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\r\n\t\t\t\tdeltaX = (pointAfter.model.x - pointCurrent.model.x) / 3;\r\n\t\t\t\tpointCurrent.model.controlPointNextX = pointCurrent.model.x + deltaX;\r\n\t\t\t\tpointCurrent.model.controlPointNextY = pointCurrent.model.y + deltaX * pointCurrent.mK;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\thelpers.nextItem = function(collection, index, loop) {\r\n\t\tif (loop) {\r\n\t\t\treturn index >= collection.length - 1 ? collection[0] : collection[index + 1];\r\n\t\t}\r\n\t\treturn index >= collection.length - 1 ? collection[collection.length - 1] : collection[index + 1];\r\n\t};\r\n\thelpers.previousItem = function(collection, index, loop) {\r\n\t\tif (loop) {\r\n\t\t\treturn index <= 0 ? collection[collection.length - 1] : collection[index - 1];\r\n\t\t}\r\n\t\treturn index <= 0 ? collection[0] : collection[index - 1];\r\n\t};\r\n\t// Implementation of the nice number algorithm used in determining where axis labels will go\r\n\thelpers.niceNum = function(range, round) {\r\n\t\tvar exponent = Math.floor(helpers.log10(range));\r\n\t\tvar fraction = range / Math.pow(10, exponent);\r\n\t\tvar niceFraction;\r\n\r\n\t\tif (round) {\r\n\t\t\tif (fraction < 1.5) {\r\n\t\t\t\tniceFraction = 1;\r\n\t\t\t} else if (fraction < 3) {\r\n\t\t\t\tniceFraction = 2;\r\n\t\t\t} else if (fraction < 7) {\r\n\t\t\t\tniceFraction = 5;\r\n\t\t\t} else {\r\n\t\t\t\tniceFraction = 10;\r\n\t\t\t}\r\n\t\t} else if (fraction <= 1.0) {\r\n\t\t\tniceFraction = 1;\r\n\t\t} else if (fraction <= 2) {\r\n\t\t\tniceFraction = 2;\r\n\t\t} else if (fraction <= 5) {\r\n\t\t\tniceFraction = 5;\r\n\t\t} else {\r\n\t\t\tniceFraction = 10;\r\n\t\t}\r\n\r\n\t\treturn niceFraction * Math.pow(10, exponent);\r\n\t};\r\n\t// Request animation polyfill - http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\thelpers.requestAnimFrame = (function() {\r\n\t\tif (typeof window === 'undefined') {\r\n\t\t\treturn function(callback) {\r\n\t\t\t\tcallback();\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn window.requestAnimationFrame ||\r\n\t\t\twindow.webkitRequestAnimationFrame ||\r\n\t\t\twindow.mozRequestAnimationFrame ||\r\n\t\t\twindow.oRequestAnimationFrame ||\r\n\t\t\twindow.msRequestAnimationFrame ||\r\n\t\t\tfunction(callback) {\r\n\t\t\t\treturn window.setTimeout(callback, 1000 / 60);\r\n\t\t\t};\r\n\t}());\r\n\t// -- DOM methods\r\n\thelpers.getRelativePosition = function(evt, chart) {\r\n\t\tvar mouseX, mouseY;\r\n\t\tvar e = evt.originalEvent || evt;\r\n\t\tvar canvas = evt.currentTarget || evt.srcElement;\r\n\t\tvar boundingRect = canvas.getBoundingClientRect();\r\n\r\n\t\tvar touches = e.touches;\r\n\t\tif (touches && touches.length > 0) {\r\n\t\t\tmouseX = touches[0].clientX;\r\n\t\t\tmouseY = touches[0].clientY;\r\n\r\n\t\t} else {\r\n\t\t\tmouseX = e.clientX;\r\n\t\t\tmouseY = e.clientY;\r\n\t\t}\r\n\r\n\t\t// Scale mouse coordinates into canvas coordinates\r\n\t\t// by following the pattern laid out by 'jerryj' in the comments of\r\n\t\t// http://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/\r\n\t\tvar paddingLeft = parseFloat(helpers.getStyle(canvas, 'padding-left'));\r\n\t\tvar paddingTop = parseFloat(helpers.getStyle(canvas, 'padding-top'));\r\n\t\tvar paddingRight = parseFloat(helpers.getStyle(canvas, 'padding-right'));\r\n\t\tvar paddingBottom = parseFloat(helpers.getStyle(canvas, 'padding-bottom'));\r\n\t\tvar width = boundingRect.right - boundingRect.left - paddingLeft - paddingRight;\r\n\t\tvar height = boundingRect.bottom - boundingRect.top - paddingTop - paddingBottom;\r\n\r\n\t\t// We divide by the current device pixel ratio, because the canvas is scaled up by that amount in each direction. However\r\n\t\t// the backend model is in unscaled coordinates. Since we are going to deal with our model coordinates, we go back here\r\n\t\tmouseX = Math.round((mouseX - boundingRect.left - paddingLeft) / (width) * canvas.width / chart.currentDevicePixelRatio);\r\n\t\tmouseY = Math.round((mouseY - boundingRect.top - paddingTop) / (height) * canvas.height / chart.currentDevicePixelRatio);\r\n\r\n\t\treturn {\r\n\t\t\tx: mouseX,\r\n\t\t\ty: mouseY\r\n\t\t};\r\n\r\n\t};\r\n\r\n\t// Private helper function to convert max-width/max-height values that may be percentages into a number\r\n\tfunction parseMaxStyle(styleValue, node, parentProperty) {\r\n\t\tvar valueInPixels;\r\n\t\tif (typeof styleValue === 'string') {\r\n\t\t\tvalueInPixels = parseInt(styleValue, 10);\r\n\r\n\t\t\tif (styleValue.indexOf('%') !== -1) {\r\n\t\t\t\t// percentage * size in dimension\r\n\t\t\t\tvalueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalueInPixels = styleValue;\r\n\t\t}\r\n\r\n\t\treturn valueInPixels;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns if the given value contains an effective constraint.\r\n\t * @private\r\n\t */\r\n\tfunction isConstrainedValue(value) {\r\n\t\treturn value !== undefined && value !== null && value !== 'none';\r\n\t}\r\n\r\n\t// Private helper to get a constraint dimension\r\n\t// @param domNode : the node to check the constraint on\r\n\t// @param maxStyle : the style that defines the maximum for the direction we are using (maxWidth / maxHeight)\r\n\t// @param percentageProperty : property of parent to use when calculating width as a percentage\r\n\t// @see http://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser\r\n\tfunction getConstraintDimension(domNode, maxStyle, percentageProperty) {\r\n\t\tvar view = document.defaultView;\r\n\t\tvar parentNode = domNode.parentNode;\r\n\t\tvar constrainedNode = view.getComputedStyle(domNode)[maxStyle];\r\n\t\tvar constrainedContainer = view.getComputedStyle(parentNode)[maxStyle];\r\n\t\tvar hasCNode = isConstrainedValue(constrainedNode);\r\n\t\tvar hasCContainer = isConstrainedValue(constrainedContainer);\r\n\t\tvar infinity = Number.POSITIVE_INFINITY;\r\n\r\n\t\tif (hasCNode || hasCContainer) {\r\n\t\t\treturn Math.min(\r\n\t\t\t\thasCNode ? parseMaxStyle(constrainedNode, domNode, percentageProperty) : infinity,\r\n\t\t\t\thasCContainer ? parseMaxStyle(constrainedContainer, parentNode, percentageProperty) : infinity);\r\n\t\t}\r\n\r\n\t\treturn 'none';\r\n\t}\r\n\t// returns Number or undefined if no constraint\r\n\thelpers.getConstraintWidth = function(domNode) {\r\n\t\treturn getConstraintDimension(domNode, 'max-width', 'clientWidth');\r\n\t};\r\n\t// returns Number or undefined if no constraint\r\n\thelpers.getConstraintHeight = function(domNode) {\r\n\t\treturn getConstraintDimension(domNode, 'max-height', 'clientHeight');\r\n\t};\r\n\thelpers.getMaximumWidth = function(domNode) {\r\n\t\tvar container = domNode.parentNode;\r\n\t\tif (!container) {\r\n\t\t\treturn domNode.clientWidth;\r\n\t\t}\r\n\r\n\t\tvar paddingLeft = parseInt(helpers.getStyle(container, 'padding-left'), 10);\r\n\t\tvar paddingRight = parseInt(helpers.getStyle(container, 'padding-right'), 10);\r\n\t\tvar w = container.clientWidth - paddingLeft - paddingRight;\r\n\t\tvar cw = helpers.getConstraintWidth(domNode);\r\n\t\treturn isNaN(cw) ? w : Math.min(w, cw);\r\n\t};\r\n\thelpers.getMaximumHeight = function(domNode) {\r\n\t\tvar container = domNode.parentNode;\r\n\t\tif (!container) {\r\n\t\t\treturn domNode.clientHeight;\r\n\t\t}\r\n\r\n\t\tvar paddingTop = parseInt(helpers.getStyle(container, 'padding-top'), 10);\r\n\t\tvar paddingBottom = parseInt(helpers.getStyle(container, 'padding-bottom'), 10);\r\n\t\tvar h = container.clientHeight - paddingTop - paddingBottom;\r\n\t\tvar ch = helpers.getConstraintHeight(domNode);\r\n\t\treturn isNaN(ch) ? h : Math.min(h, ch);\r\n\t};\r\n\thelpers.getStyle = function(el, property) {\r\n\t\treturn el.currentStyle ?\r\n\t\t\tel.currentStyle[property] :\r\n\t\t\tdocument.defaultView.getComputedStyle(el, null).getPropertyValue(property);\r\n\t};\r\n\thelpers.retinaScale = function(chart, forceRatio) {\r\n\t\tvar pixelRatio = chart.currentDevicePixelRatio = forceRatio || window.devicePixelRatio || 1;\r\n\t\tif (pixelRatio === 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar height = chart.height;\r\n\t\tvar width = chart.width;\r\n\r\n\t\tcanvas.height = height * pixelRatio;\r\n\t\tcanvas.width = width * pixelRatio;\r\n\t\tchart.ctx.scale(pixelRatio, pixelRatio);\r\n\r\n\t\t// If no style has been set on the canvas, the render size is used as display size,\r\n\t\t// making the chart visually bigger, so let's enforce it to the \"correct\" values.\r\n\t\t// See https://github.com/chartjs/Chart.js/issues/3575\r\n\t\tif (!canvas.style.height && !canvas.style.width) {\r\n\t\t\tcanvas.style.height = height + 'px';\r\n\t\t\tcanvas.style.width = width + 'px';\r\n\t\t}\r\n\t};\r\n\t// -- Canvas methods\r\n\thelpers.fontString = function(pixelSize, fontStyle, fontFamily) {\r\n\t\treturn fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\r\n\t};\r\n\thelpers.longestText = function(ctx, font, arrayOfThings, cache) {\r\n\t\tcache = cache || {};\r\n\t\tvar data = cache.data = cache.data || {};\r\n\t\tvar gc = cache.garbageCollect = cache.garbageCollect || [];\r\n\r\n\t\tif (cache.font !== font) {\r\n\t\t\tdata = cache.data = {};\r\n\t\t\tgc = cache.garbageCollect = [];\r\n\t\t\tcache.font = font;\r\n\t\t}\r\n\r\n\t\tctx.font = font;\r\n\t\tvar longest = 0;\r\n\t\thelpers.each(arrayOfThings, function(thing) {\r\n\t\t\t// Undefined strings and arrays should not be measured\r\n\t\t\tif (thing !== undefined && thing !== null && helpers.isArray(thing) !== true) {\r\n\t\t\t\tlongest = helpers.measureText(ctx, data, gc, longest, thing);\r\n\t\t\t} else if (helpers.isArray(thing)) {\r\n\t\t\t\t// if it is an array lets measure each element\r\n\t\t\t\t// to do maybe simplify this function a bit so we can do this more recursively?\r\n\t\t\t\thelpers.each(thing, function(nestedThing) {\r\n\t\t\t\t\t// Undefined strings and arrays should not be measured\r\n\t\t\t\t\tif (nestedThing !== undefined && nestedThing !== null && !helpers.isArray(nestedThing)) {\r\n\t\t\t\t\t\tlongest = helpers.measureText(ctx, data, gc, longest, nestedThing);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar gcLen = gc.length / 2;\r\n\t\tif (gcLen > arrayOfThings.length) {\r\n\t\t\tfor (var i = 0; i < gcLen; i++) {\r\n\t\t\t\tdelete data[gc[i]];\r\n\t\t\t}\r\n\t\t\tgc.splice(0, gcLen);\r\n\t\t}\r\n\t\treturn longest;\r\n\t};\r\n\thelpers.measureText = function(ctx, data, gc, longest, string) {\r\n\t\tvar textWidth = data[string];\r\n\t\tif (!textWidth) {\r\n\t\t\ttextWidth = data[string] = ctx.measureText(string).width;\r\n\t\t\tgc.push(string);\r\n\t\t}\r\n\t\tif (textWidth > longest) {\r\n\t\t\tlongest = textWidth;\r\n\t\t}\r\n\t\treturn longest;\r\n\t};\r\n\thelpers.numberOfLabelLines = function(arrayOfThings) {\r\n\t\tvar numberOfLines = 1;\r\n\t\thelpers.each(arrayOfThings, function(thing) {\r\n\t\t\tif (helpers.isArray(thing)) {\r\n\t\t\t\tif (thing.length > numberOfLines) {\r\n\t\t\t\t\tnumberOfLines = thing.length;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn numberOfLines;\r\n\t};\r\n\r\n\thelpers.color = !color ?\r\n\t\tfunction(value) {\r\n\t\t\tconsole.error('Color.js not found!');\r\n\t\t\treturn value;\r\n\t\t} :\r\n\t\tfunction(value) {\r\n\t\t\t/* global CanvasGradient */\r\n\t\t\tif (value instanceof CanvasGradient) {\r\n\t\t\t\tvalue = defaults.global.defaultColor;\r\n\t\t\t}\r\n\r\n\t\t\treturn color(value);\r\n\t\t};\r\n\r\n\thelpers.getHoverColor = function(colorValue) {\r\n\t\t/* global CanvasPattern */\r\n\t\treturn (colorValue instanceof CanvasPattern) ?\r\n\t\t\tcolorValue :\r\n\t\t\thelpers.color(colorValue).saturate(0.5).darken(0.1).rgbString();\r\n\t};\r\n};\r\n\r\n},{\"25\":25,\"3\":3,\"45\":45}],28:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(45);\r\n\r\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {Point} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param chart {chart} the chart\r\n * @param handler {Function} the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar datasets = chart.data.datasets;\r\n\tvar meta, i, j, ilen, jlen;\r\n\r\n\tfor (i = 0, ilen = datasets.length; i < ilen; ++i) {\r\n\t\tif (!chart.isDatasetVisible(i)) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tmeta = chart.getDatasetMeta(i);\r\n\t\tfor (j = 0, jlen = meta.data.length; j < jlen; ++j) {\r\n\t\t\tvar element = meta.data[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param items {ChartElement[]} elements to filter\r\n * @param position {Point} the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param chart {Chart} the chart to look at elements from\r\n * @param position {Point} the point to be nearest to\r\n * @param intersect {Boolean} if true, only consider items that intersect the position\r\n * @param distanceMetric {Function} function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {String} axis the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart.data.datasets.forEach(function(dataset, datasetIndex) {\r\n\t\tif (chart.isDatasetVisible(datasetIndex)) {\r\n\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t\t// don't count items that are skipped (null data)\r\n\t\t\tif (element && !element._view.skip) {\r\n\t\t\t\telements.push(element);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nmodule.exports = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param chart {chart} the chart we are returning items from\r\n\t\t * @param e {Event} the event we are find things at\r\n\t\t * @param options {IInteractionOptions} options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param chart {chart} the chart we are returning items from\r\n\t\t * @param e {Event} the event we are find things at\r\n\t\t * @param options {IInteractionOptions} options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param chart {chart} the chart we are returning items from\r\n\t\t * @param e {Event} the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param chart {chart} the chart we are returning items from\r\n\t\t * @param e {Event} the event we are find things at\r\n\t\t * @param options {IInteractionOptions} options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar nearestItems = getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\r\n\t\t\t// We have multiple items at the same distance from the event. Now sort by smallest\r\n\t\t\tif (nearestItems.length > 1) {\r\n\t\t\t\tnearestItems.sort(function(a, b) {\r\n\t\t\t\t\tvar sizeA = a.getArea();\r\n\t\t\t\t\tvar sizeB = b.getArea();\r\n\t\t\t\t\tvar ret = sizeA - sizeB;\r\n\r\n\t\t\t\t\tif (ret === 0) {\r\n\t\t\t\t\t\t// if equal sort by dataset index\r\n\t\t\t\t\t\tret = a._datasetIndex - b._datasetIndex;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn ret;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Return only 1 item\r\n\t\t\treturn nearestItems.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param chart {chart} the chart we are returning items from\r\n\t\t * @param e {Event} the event we are find things at\r\n\t\t * @param options {IInteractionOptions} options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param chart {chart} the chart we are returning items from\r\n\t\t * @param e {Event} the event we are find things at\r\n\t\t * @param options {IInteractionOptions} options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"45\":45}],29:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\n\r\ndefaults._set('global', {\r\n\tresponsive: true,\r\n\tresponsiveAnimationDuration: 0,\r\n\tmaintainAspectRatio: true,\r\n\tevents: ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'],\r\n\thover: {\r\n\t\tonHover: null,\r\n\t\tmode: 'nearest',\r\n\t\tintersect: true,\r\n\t\tanimationDuration: 400\r\n\t},\r\n\tonClick: null,\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tshowLines: true,\r\n\r\n\t// Element defaults defined in element extensions\r\n\telements: {},\r\n\r\n\t// Layout options such as padding\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = function() {\r\n\r\n\t// Occupy the global variable of Chart, and create a simple base class\r\n\tvar Chart = function(item, config) {\r\n\t\tthis.construct(item, config);\r\n\t\treturn this;\r\n\t};\r\n\r\n\tChart.Chart = Chart;\r\n\r\n\treturn Chart;\r\n};\r\n\r\n},{\"25\":25}],30:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(45);\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers.where(array, function(v) {\r\n\t\treturn v.position === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\tarray.forEach(function(v, i) {\r\n\t\tv._tmpIndex_ = i;\r\n\t\treturn v;\r\n\t});\r\n\tarray.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0._tmpIndex_ - v1._tmpIndex_ :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n\tarray.forEach(function(v) {\r\n\t\tdelete v._tmpIndex_;\r\n\t});\r\n}\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {String} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {Number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {Boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {Function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {Function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {Function} getPadding - Returns an object with padding on the edges\r\n * @prop {Number} width - Width of item. Must be valid after update()\r\n * @prop {Number} height - Height of item. Must be valid after update()\r\n * @prop {Number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {Number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {Number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {Number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nmodule.exports = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {Object} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {Object} item - the item to configure with the given options\r\n\t * @param {Object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {Number} width - the width to fit into\r\n\t * @param {Number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers.options.toPadding(layoutOptions.padding);\r\n\t\tvar leftPadding = padding.left;\r\n\t\tvar rightPadding = padding.right;\r\n\t\tvar topPadding = padding.top;\r\n\t\tvar bottomPadding = padding.bottom;\r\n\r\n\t\tvar leftBoxes = filterByPosition(chart.boxes, 'left');\r\n\t\tvar rightBoxes = filterByPosition(chart.boxes, 'right');\r\n\t\tvar topBoxes = filterByPosition(chart.boxes, 'top');\r\n\t\tvar bottomBoxes = filterByPosition(chart.boxes, 'bottom');\r\n\t\tvar chartAreaBoxes = filterByPosition(chart.boxes, 'chartArea');\r\n\r\n\t\t// Sort boxes by weight. A higher weight is further away from the chart area\r\n\t\tsortByWeight(leftBoxes, true);\r\n\t\tsortByWeight(rightBoxes, false);\r\n\t\tsortByWeight(topBoxes, true);\r\n\t\tsortByWeight(bottomBoxes, false);\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\t\t// What we do to find the best sizing, we do the following\r\n\t\t// 1. Determine the minimum size of the chart area.\r\n\t\t// 2. Split the remaining width equally between each vertical axis\r\n\t\t// 3. Split the remaining height equally between each horizontal axis\r\n\t\t// 4. Give each layout the maximum size it can be. The layout will return it's minimum size\r\n\t\t// 5. Adjust the sizes of each axis based on it's minimum reported size.\r\n\t\t// 6. Refit each axis\r\n\t\t// 7. Position each axis in the final location\r\n\t\t// 8. Tell the chart the final location of the chart area\r\n\t\t// 9. Tell any axes that overlay the chart area the positions of the chart area\r\n\r\n\t\t// Step 1\r\n\t\tvar chartWidth = width - leftPadding - rightPadding;\r\n\t\tvar chartHeight = height - topPadding - bottomPadding;\r\n\t\tvar chartAreaWidth = chartWidth / 2; // min 50%\r\n\t\tvar chartAreaHeight = chartHeight / 2; // min 50%\r\n\r\n\t\t// Step 2\r\n\t\tvar verticalBoxWidth = (width - chartAreaWidth) / (leftBoxes.length + rightBoxes.length);\r\n\r\n\t\t// Step 3\r\n\t\tvar horizontalBoxHeight = (height - chartAreaHeight) / (topBoxes.length + bottomBoxes.length);\r\n\r\n\t\t// Step 4\r\n\t\tvar maxChartAreaWidth = chartWidth;\r\n\t\tvar maxChartAreaHeight = chartHeight;\r\n\t\tvar minBoxSizes = [];\r\n\r\n\t\tfunction getMinimumBoxSize(box) {\r\n\t\t\tvar minSize;\r\n\t\t\tvar isHorizontal = box.isHorizontal();\r\n\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\tminSize = box.update(box.fullWidth ? chartWidth : maxChartAreaWidth, horizontalBoxHeight);\r\n\t\t\t\tmaxChartAreaHeight -= minSize.height;\r\n\t\t\t} else {\r\n\t\t\t\tminSize = box.update(verticalBoxWidth, maxChartAreaHeight);\r\n\t\t\t\tmaxChartAreaWidth -= minSize.width;\r\n\t\t\t}\r\n\r\n\t\t\tminBoxSizes.push({\r\n\t\t\t\thorizontal: isHorizontal,\r\n\t\t\t\tminSize: minSize,\r\n\t\t\t\tbox: box,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\thelpers.each(leftBoxes.concat(rightBoxes, topBoxes, bottomBoxes), getMinimumBoxSize);\r\n\r\n\t\t// If a horizontal box has padding, we move the left boxes over to avoid ugly charts (see issue #2478)\r\n\t\tvar maxHorizontalLeftPadding = 0;\r\n\t\tvar maxHorizontalRightPadding = 0;\r\n\t\tvar maxVerticalTopPadding = 0;\r\n\t\tvar maxVerticalBottomPadding = 0;\r\n\r\n\t\thelpers.each(topBoxes.concat(bottomBoxes), function(horizontalBox) {\r\n\t\t\tif (horizontalBox.getPadding) {\r\n\t\t\t\tvar boxPadding = horizontalBox.getPadding();\r\n\t\t\t\tmaxHorizontalLeftPadding = Math.max(maxHorizontalLeftPadding, boxPadding.left);\r\n\t\t\t\tmaxHorizontalRightPadding = Math.max(maxHorizontalRightPadding, boxPadding.right);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\thelpers.each(leftBoxes.concat(rightBoxes), function(verticalBox) {\r\n\t\t\tif (verticalBox.getPadding) {\r\n\t\t\t\tvar boxPadding = verticalBox.getPadding();\r\n\t\t\t\tmaxVerticalTopPadding = Math.max(maxVerticalTopPadding, boxPadding.top);\r\n\t\t\t\tmaxVerticalBottomPadding = Math.max(maxVerticalBottomPadding, boxPadding.bottom);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// At this point, maxChartAreaHeight and maxChartAreaWidth are the size the chart area could\r\n\t\t// be if the axes are drawn at their minimum sizes.\r\n\t\t// Steps 5 & 6\r\n\t\tvar totalLeftBoxesWidth = leftPadding;\r\n\t\tvar totalRightBoxesWidth = rightPadding;\r\n\t\tvar totalTopBoxesHeight = topPadding;\r\n\t\tvar totalBottomBoxesHeight = bottomPadding;\r\n\r\n\t\t// Function to fit a box\r\n\t\tfunction fitBox(box) {\r\n\t\t\tvar minBoxSize = helpers.findNextWhere(minBoxSizes, function(minBox) {\r\n\t\t\t\treturn minBox.box === box;\r\n\t\t\t});\r\n\r\n\t\t\tif (minBoxSize) {\r\n\t\t\t\tif (box.isHorizontal()) {\r\n\t\t\t\t\tvar scaleMargin = {\r\n\t\t\t\t\t\tleft: Math.max(totalLeftBoxesWidth, maxHorizontalLeftPadding),\r\n\t\t\t\t\t\tright: Math.max(totalRightBoxesWidth, maxHorizontalRightPadding),\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\tbottom: 0\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t// Don't use min size here because of label rotation. When the labels are rotated, their rotation highly depends\r\n\t\t\t\t\t// on the margin. Sometimes they need to increase in size slightly\r\n\t\t\t\t\tbox.update(box.fullWidth ? chartWidth : maxChartAreaWidth, chartHeight / 2, scaleMargin);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbox.update(minBoxSize.minSize.width, maxChartAreaHeight);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Update, and calculate the left and right margins for the horizontal boxes\r\n\t\thelpers.each(leftBoxes.concat(rightBoxes), fitBox);\r\n\r\n\t\thelpers.each(leftBoxes, function(box) {\r\n\t\t\ttotalLeftBoxesWidth += box.width;\r\n\t\t});\r\n\r\n\t\thelpers.each(rightBoxes, function(box) {\r\n\t\t\ttotalRightBoxesWidth += box.width;\r\n\t\t});\r\n\r\n\t\t// Set the Left and Right margins for the horizontal boxes\r\n\t\thelpers.each(topBoxes.concat(bottomBoxes), fitBox);\r\n\r\n\t\t// Figure out how much margin is on the top and bottom of the vertical boxes\r\n\t\thelpers.each(topBoxes, function(box) {\r\n\t\t\ttotalTopBoxesHeight += box.height;\r\n\t\t});\r\n\r\n\t\thelpers.each(bottomBoxes, function(box) {\r\n\t\t\ttotalBottomBoxesHeight += box.height;\r\n\t\t});\r\n\r\n\t\tfunction finalFitVerticalBox(box) {\r\n\t\t\tvar minBoxSize = helpers.findNextWhere(minBoxSizes, function(minSize) {\r\n\t\t\t\treturn minSize.box === box;\r\n\t\t\t});\r\n\r\n\t\t\tvar scaleMargin = {\r\n\t\t\t\tleft: 0,\r\n\t\t\t\tright: 0,\r\n\t\t\t\ttop: totalTopBoxesHeight,\r\n\t\t\t\tbottom: totalBottomBoxesHeight\r\n\t\t\t};\r\n\r\n\t\t\tif (minBoxSize) {\r\n\t\t\t\tbox.update(minBoxSize.minSize.width, maxChartAreaHeight, scaleMargin);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Let the left layout know the final margin\r\n\t\thelpers.each(leftBoxes.concat(rightBoxes), finalFitVerticalBox);\r\n\r\n\t\t// Recalculate because the size of each layout might have changed slightly due to the margins (label rotation for instance)\r\n\t\ttotalLeftBoxesWidth = leftPadding;\r\n\t\ttotalRightBoxesWidth = rightPadding;\r\n\t\ttotalTopBoxesHeight = topPadding;\r\n\t\ttotalBottomBoxesHeight = bottomPadding;\r\n\r\n\t\thelpers.each(leftBoxes, function(box) {\r\n\t\t\ttotalLeftBoxesWidth += box.width;\r\n\t\t});\r\n\r\n\t\thelpers.each(rightBoxes, function(box) {\r\n\t\t\ttotalRightBoxesWidth += box.width;\r\n\t\t});\r\n\r\n\t\thelpers.each(topBoxes, function(box) {\r\n\t\t\ttotalTopBoxesHeight += box.height;\r\n\t\t});\r\n\t\thelpers.each(bottomBoxes, function(box) {\r\n\t\t\ttotalBottomBoxesHeight += box.height;\r\n\t\t});\r\n\r\n\t\t// We may be adding some padding to account for rotated x axis labels\r\n\t\tvar leftPaddingAddition = Math.max(maxHorizontalLeftPadding - totalLeftBoxesWidth, 0);\r\n\t\ttotalLeftBoxesWidth += leftPaddingAddition;\r\n\t\ttotalRightBoxesWidth += Math.max(maxHorizontalRightPadding - totalRightBoxesWidth, 0);\r\n\r\n\t\tvar topPaddingAddition = Math.max(maxVerticalTopPadding - totalTopBoxesHeight, 0);\r\n\t\ttotalTopBoxesHeight += topPaddingAddition;\r\n\t\ttotalBottomBoxesHeight += Math.max(maxVerticalBottomPadding - totalBottomBoxesHeight, 0);\r\n\r\n\t\t// Figure out if our chart area changed. This would occur if the dataset layout label rotation\r\n\t\t// changed due to the application of the margins in step 6. Since we can only get bigger, this is safe to do\r\n\t\t// without calling `fit` again\r\n\t\tvar newMaxChartAreaHeight = height - totalTopBoxesHeight - totalBottomBoxesHeight;\r\n\t\tvar newMaxChartAreaWidth = width - totalLeftBoxesWidth - totalRightBoxesWidth;\r\n\r\n\t\tif (newMaxChartAreaWidth !== maxChartAreaWidth || newMaxChartAreaHeight !== maxChartAreaHeight) {\r\n\t\t\thelpers.each(leftBoxes, function(box) {\r\n\t\t\t\tbox.height = newMaxChartAreaHeight;\r\n\t\t\t});\r\n\r\n\t\t\thelpers.each(rightBoxes, function(box) {\r\n\t\t\t\tbox.height = newMaxChartAreaHeight;\r\n\t\t\t});\r\n\r\n\t\t\thelpers.each(topBoxes, function(box) {\r\n\t\t\t\tif (!box.fullWidth) {\r\n\t\t\t\t\tbox.width = newMaxChartAreaWidth;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\thelpers.each(bottomBoxes, function(box) {\r\n\t\t\t\tif (!box.fullWidth) {\r\n\t\t\t\t\tbox.width = newMaxChartAreaWidth;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmaxChartAreaHeight = newMaxChartAreaHeight;\r\n\t\t\tmaxChartAreaWidth = newMaxChartAreaWidth;\r\n\t\t}\r\n\r\n\t\t// Step 7 - Position the boxes\r\n\t\tvar left = leftPadding + leftPaddingAddition;\r\n\t\tvar top = topPadding + topPaddingAddition;\r\n\r\n\t\tfunction placeBox(box) {\r\n\t\t\tif (box.isHorizontal()) {\r\n\t\t\t\tbox.left = box.fullWidth ? leftPadding : totalLeftBoxesWidth;\r\n\t\t\t\tbox.right = box.fullWidth ? width - rightPadding : totalLeftBoxesWidth + maxChartAreaWidth;\r\n\t\t\t\tbox.top = top;\r\n\t\t\t\tbox.bottom = top + box.height;\r\n\r\n\t\t\t\t// Move to next point\r\n\t\t\t\ttop = box.bottom;\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tbox.left = left;\r\n\t\t\t\tbox.right = left + box.width;\r\n\t\t\t\tbox.top = totalTopBoxesHeight;\r\n\t\t\t\tbox.bottom = totalTopBoxesHeight + maxChartAreaHeight;\r\n\r\n\t\t\t\t// Move to next point\r\n\t\t\t\tleft = box.right;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers.each(leftBoxes.concat(topBoxes), placeBox);\r\n\r\n\t\t// Account for chart width and height\r\n\t\tleft += maxChartAreaWidth;\r\n\t\ttop += maxChartAreaHeight;\r\n\r\n\t\thelpers.each(rightBoxes, placeBox);\r\n\t\thelpers.each(bottomBoxes, placeBox);\r\n\r\n\t\t// Step 8\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: totalLeftBoxesWidth,\r\n\t\t\ttop: totalTopBoxesHeight,\r\n\t\t\tright: totalLeftBoxesWidth + maxChartAreaWidth,\r\n\t\t\tbottom: totalTopBoxesHeight + maxChartAreaHeight\r\n\t\t};\r\n\r\n\t\t// Step 9\r\n\t\thelpers.each(chartAreaBoxes, function(box) {\r\n\t\t\tbox.left = chart.chartArea.left;\r\n\t\t\tbox.top = chart.chartArea.top;\r\n\t\t\tbox.right = chart.chartArea.right;\r\n\t\t\tbox.bottom = chart.chartArea.bottom;\r\n\r\n\t\t\tbox.update(maxChartAreaWidth, maxChartAreaHeight);\r\n\t\t});\r\n\t}\r\n};\r\n\r\n},{\"45\":45}],31:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar helpers = require(45);\r\n\r\ndefaults._set('global', {\r\n\tplugins: {}\r\n});\r\n\r\n/**\r\n * The plugin service singleton\r\n * @namespace Chart.plugins\r\n * @since 2.1.0\r\n */\r\nmodule.exports = {\r\n\t/**\r\n\t * Globally registered plugins.\r\n\t * @private\r\n\t */\r\n\t_plugins: [],\r\n\r\n\t/**\r\n\t * This identifier is used to invalidate the descriptors cache attached to each chart\r\n\t * when a global plugin is registered or unregistered. In this case, the cache ID is\r\n\t * incremented and descriptors are regenerated during following API calls.\r\n\t * @private\r\n\t */\r\n\t_cacheId: 0,\r\n\r\n\t/**\r\n\t * Registers the given plugin(s) if not already registered.\r\n\t * @param {Array|Object} plugins plugin instance(s).\r\n\t */\r\n\tregister: function(plugins) {\r\n\t\tvar p = this._plugins;\r\n\t\t([]).concat(plugins).forEach(function(plugin) {\r\n\t\t\tif (p.indexOf(plugin) === -1) {\r\n\t\t\t\tp.push(plugin);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis._cacheId++;\r\n\t},\r\n\r\n\t/**\r\n\t * Unregisters the given plugin(s) only if registered.\r\n\t * @param {Array|Object} plugins plugin instance(s).\r\n\t */\r\n\tunregister: function(plugins) {\r\n\t\tvar p = this._plugins;\r\n\t\t([]).concat(plugins).forEach(function(plugin) {\r\n\t\t\tvar idx = p.indexOf(plugin);\r\n\t\t\tif (idx !== -1) {\r\n\t\t\t\tp.splice(idx, 1);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis._cacheId++;\r\n\t},\r\n\r\n\t/**\r\n\t * Remove all registered plugins.\r\n\t * @since 2.1.5\r\n\t */\r\n\tclear: function() {\r\n\t\tthis._plugins = [];\r\n\t\tthis._cacheId++;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the number of registered plugins?\r\n\t * @returns {Number}\r\n\t * @since 2.1.5\r\n\t */\r\n\tcount: function() {\r\n\t\treturn this._plugins.length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns all registered plugin instances.\r\n\t * @returns {Array} array of plugin objects.\r\n\t * @since 2.1.5\r\n\t */\r\n\tgetAll: function() {\r\n\t\treturn this._plugins;\r\n\t},\r\n\r\n\t/**\r\n\t * Calls enabled plugins for `chart` on the specified hook and with the given args.\r\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\r\n\t * returned value can be used, for instance, to interrupt the current action.\r\n\t * @param {Object} chart - The chart instance for which plugins should be called.\r\n\t * @param {String} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\r\n\t * @param {Array} [args] - Extra arguments to apply to the hook call.\r\n\t * @returns {Boolean} false if any of the plugins return false, else returns true.\r\n\t */\r\n\tnotify: function(chart, hook, args) {\r\n\t\tvar descriptors = this.descriptors(chart);\r\n\t\tvar ilen = descriptors.length;\r\n\t\tvar i, descriptor, plugin, params, method;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tdescriptor = descriptors[i];\r\n\t\t\tplugin = descriptor.plugin;\r\n\t\t\tmethod = plugin[hook];\r\n\t\t\tif (typeof method === 'function') {\r\n\t\t\t\tparams = [chart].concat(args || []);\r\n\t\t\t\tparams.push(descriptor.options);\r\n\t\t\t\tif (method.apply(plugin, params) === false) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns descriptors of enabled plugins for the given chart.\r\n\t * @returns {Array} [{ plugin, options }]\r\n\t * @private\r\n\t */\r\n\tdescriptors: function(chart) {\r\n\t\tvar cache = chart.$plugins || (chart.$plugins = {});\r\n\t\tif (cache.id === this._cacheId) {\r\n\t\t\treturn cache.descriptors;\r\n\t\t}\r\n\r\n\t\tvar plugins = [];\r\n\t\tvar descriptors = [];\r\n\t\tvar config = (chart && chart.config) || {};\r\n\t\tvar options = (config.options && config.options.plugins) || {};\r\n\r\n\t\tthis._plugins.concat(config.plugins || []).forEach(function(plugin) {\r\n\t\t\tvar idx = plugins.indexOf(plugin);\r\n\t\t\tif (idx !== -1) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar id = plugin.id;\r\n\t\t\tvar opts = options[id];\r\n\t\t\tif (opts === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (opts === true) {\r\n\t\t\t\topts = helpers.clone(defaults.global.plugins[id]);\r\n\t\t\t}\r\n\r\n\t\t\tplugins.push(plugin);\r\n\t\t\tdescriptors.push({\r\n\t\t\t\tplugin: plugin,\r\n\t\t\t\toptions: opts || {}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tcache.descriptors = descriptors;\r\n\t\tcache.id = this._cacheId;\r\n\t\treturn descriptors;\r\n\t},\r\n\r\n\t/**\r\n\t * Invalidates cache for the given chart: descriptors hold a reference on plugin option,\r\n\t * but in some cases, this reference can be changed by the user when updating options.\r\n\t * https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\r\n\t * @private\r\n\t */\r\n\t_invalidate: function(chart) {\r\n\t\tdelete chart.$plugins;\r\n\t}\r\n};\r\n\r\n/**\r\n * Plugin extension hooks.\r\n * @interface IPlugin\r\n * @since 2.1.0\r\n */\r\n/**\r\n * @method IPlugin#beforeInit\r\n * @desc Called before initializing `chart`.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#afterInit\r\n * @desc Called after `chart` has been initialized and before the first update.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeUpdate\r\n * @desc Called before updating `chart`. If any plugin returns `false`, the update\r\n * is cancelled (and thus subsequent render(s)) until another `update` is triggered.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart update.\r\n */\r\n/**\r\n * @method IPlugin#afterUpdate\r\n * @desc Called after `chart` has been updated and before rendering. Note that this\r\n * hook will not be called if the chart update has been previously cancelled.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeDatasetsUpdate\r\n * @desc Called before updating the `chart` datasets. If any plugin returns `false`,\r\n * the datasets update is cancelled until another `update` is triggered.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} false to cancel the datasets update.\r\n * @since version 2.1.5\r\n*/\r\n/**\r\n * @method IPlugin#afterDatasetsUpdate\r\n * @desc Called after the `chart` datasets have been updated. Note that this hook\r\n * will not be called if the datasets update has been previously cancelled.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n * @since version 2.1.5\r\n */\r\n/**\r\n * @method IPlugin#beforeDatasetUpdate\r\n * @desc Called before updating the `chart` dataset at the given `args.index`. If any plugin\r\n * returns `false`, the datasets update is cancelled until another `update` is triggered.\r\n * @param {Chart} chart - The chart instance.\r\n * @param {Object} args - The call arguments.\r\n * @param {Number} args.index - The dataset index.\r\n * @param {Object} args.meta - The dataset metadata.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\r\n */\r\n/**\r\n * @method IPlugin#afterDatasetUpdate\r\n * @desc Called after the `chart` datasets at the given `args.index` has been updated. Note\r\n * that this hook will not be called if the datasets update has been previously cancelled.\r\n * @param {Chart} chart - The chart instance.\r\n * @param {Object} args - The call arguments.\r\n * @param {Number} args.index - The dataset index.\r\n * @param {Object} args.meta - The dataset metadata.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeLayout\r\n * @desc Called before laying out `chart`. If any plugin returns `false`,\r\n * the layout update is cancelled until another `update` is triggered.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart layout.\r\n */\r\n/**\r\n * @method IPlugin#afterLayout\r\n * @desc Called after the `chart` has been layed out. Note that this hook will not\r\n * be called if the layout update has been previously cancelled.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeRender\r\n * @desc Called before rendering `chart`. If any plugin returns `false`,\r\n * the rendering is cancelled until another `render` is triggered.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart rendering.\r\n */\r\n/**\r\n * @method IPlugin#afterRender\r\n * @desc Called after the `chart` has been fully rendered (and animation completed). Note\r\n * that this hook will not be called if the rendering has been previously cancelled.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeDraw\r\n * @desc Called before drawing `chart` at every animation frame specified by the given\r\n * easing value. If any plugin returns `false`, the frame drawing is cancelled until\r\n * another `render` is triggered.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart drawing.\r\n */\r\n/**\r\n * @method IPlugin#afterDraw\r\n * @desc Called after the `chart` has been drawn for the specific easing value. Note\r\n * that this hook will not be called if the drawing has been previously cancelled.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeDatasetsDraw\r\n * @desc Called before drawing the `chart` datasets. If any plugin returns `false`,\r\n * the datasets drawing is cancelled until another `render` is triggered.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\r\n */\r\n/**\r\n * @method IPlugin#afterDatasetsDraw\r\n * @desc Called after the `chart` datasets have been drawn. Note that this hook\r\n * will not be called if the datasets drawing has been previously cancelled.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeDatasetDraw\r\n * @desc Called before drawing the `chart` dataset at the given `args.index` (datasets\r\n * are drawn in the reverse order). If any plugin returns `false`, the datasets drawing\r\n * is cancelled until another `render` is triggered.\r\n * @param {Chart} chart - The chart instance.\r\n * @param {Object} args - The call arguments.\r\n * @param {Number} args.index - The dataset index.\r\n * @param {Object} args.meta - The dataset metadata.\r\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\r\n */\r\n/**\r\n * @method IPlugin#afterDatasetDraw\r\n * @desc Called after the `chart` datasets at the given `args.index` have been drawn\r\n * (datasets are drawn in the reverse order). Note that this hook will not be called\r\n * if the datasets drawing has been previously cancelled.\r\n * @param {Chart} chart - The chart instance.\r\n * @param {Object} args - The call arguments.\r\n * @param {Number} args.index - The dataset index.\r\n * @param {Object} args.meta - The dataset metadata.\r\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeTooltipDraw\r\n * @desc Called before drawing the `tooltip`. If any plugin returns `false`,\r\n * the tooltip drawing is cancelled until another `render` is triggered.\r\n * @param {Chart} chart - The chart instance.\r\n * @param {Object} args - The call arguments.\r\n * @param {Object} args.tooltip - The tooltip.\r\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n * @returns {Boolean} `false` to cancel the chart tooltip drawing.\r\n */\r\n/**\r\n * @method IPlugin#afterTooltipDraw\r\n * @desc Called after drawing the `tooltip`. Note that this hook will not\r\n * be called if the tooltip drawing has been previously cancelled.\r\n * @param {Chart} chart - The chart instance.\r\n * @param {Object} args - The call arguments.\r\n * @param {Object} args.tooltip - The tooltip.\r\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#beforeEvent\r\n * @desc Called before processing the specified `event`. If any plugin returns `false`,\r\n * the event will be discarded.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {IEvent} event - The event object.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#afterEvent\r\n * @desc Called after the `event` has been consumed. Note that this hook\r\n * will not be called if the `event` has been previously discarded.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {IEvent} event - The event object.\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#resize\r\n * @desc Called after the chart as been resized.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Number} size - The new canvas display size (eq. canvas.style width & height).\r\n * @param {Object} options - The plugin options.\r\n */\r\n/**\r\n * @method IPlugin#destroy\r\n * @desc Called after the chart as been destroyed.\r\n * @param {Chart.Controller} chart - The chart instance.\r\n * @param {Object} options - The plugin options.\r\n */\r\n\r\n},{\"25\":25,\"45\":45}],32:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar Element = require(26);\r\nvar helpers = require(45);\r\nvar Ticks = require(34);\r\n\r\ndefaults._set('scale', {\r\n\tdisplay: true,\r\n\tposition: 'left',\r\n\toffset: false,\r\n\r\n\t// grid line settings\r\n\tgridLines: {\r\n\t\tdisplay: true,\r\n\t\tcolor: 'rgba(0, 0, 0, 0.1)',\r\n\t\tlineWidth: 1,\r\n\t\tdrawBorder: true,\r\n\t\tdrawOnChartArea: true,\r\n\t\tdrawTicks: true,\r\n\t\ttickMarkLength: 10,\r\n\t\tzeroLineWidth: 1,\r\n\t\tzeroLineColor: 'rgba(0,0,0,0.25)',\r\n\t\tzeroLineBorderDash: [],\r\n\t\tzeroLineBorderDashOffset: 0.0,\r\n\t\toffsetGridLines: false,\r\n\t\tborderDash: [],\r\n\t\tborderDashOffset: 0.0\r\n\t},\r\n\r\n\t// scale label\r\n\tscaleLabel: {\r\n\t\t// display property\r\n\t\tdisplay: false,\r\n\r\n\t\t// actual label\r\n\t\tlabelString: '',\r\n\r\n\t\t// line height\r\n\t\tlineHeight: 1.2,\r\n\r\n\t\t// top/bottom padding\r\n\t\tpadding: {\r\n\t\t\ttop: 4,\r\n\t\t\tbottom: 4\r\n\t\t}\r\n\t},\r\n\r\n\t// label settings\r\n\tticks: {\r\n\t\tbeginAtZero: false,\r\n\t\tminRotation: 0,\r\n\t\tmaxRotation: 50,\r\n\t\tmirror: false,\r\n\t\tpadding: 0,\r\n\t\treverse: false,\r\n\t\tdisplay: true,\r\n\t\tautoSkip: true,\r\n\t\tautoSkipPadding: 0,\r\n\t\tlabelOffset: 0,\r\n\t\t// We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\r\n\t\tcallback: Ticks.formatters.values,\r\n\t\tminor: {},\r\n\t\tmajor: {}\r\n\t}\r\n});\r\n\r\nfunction labelsFromTicks(ticks) {\r\n\tvar labels = [];\r\n\tvar i, ilen;\r\n\r\n\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\r\n\t\tlabels.push(ticks[i].label);\r\n\t}\r\n\r\n\treturn labels;\r\n}\r\n\r\nfunction getLineValue(scale, index, offsetGridLines) {\r\n\tvar lineValue = scale.getPixelForTick(index);\r\n\r\n\tif (offsetGridLines) {\r\n\t\tif (index === 0) {\r\n\t\t\tlineValue -= (scale.getPixelForTick(1) - lineValue) / 2;\r\n\t\t} else {\r\n\t\t\tlineValue -= (lineValue - scale.getPixelForTick(index - 1)) / 2;\r\n\t\t}\r\n\t}\r\n\treturn lineValue;\r\n}\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tfunction computeTextSize(context, tick, font) {\r\n\t\treturn helpers.isArray(tick) ?\r\n\t\t\thelpers.longestText(context, font, tick) :\r\n\t\t\tcontext.measureText(tick).width;\r\n\t}\r\n\r\n\tfunction parseFontOptions(options) {\r\n\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\t\tvar globalDefaults = defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar style = valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle);\r\n\t\tvar family = valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily);\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tstyle: style,\r\n\t\t\tfamily: family,\r\n\t\t\tfont: helpers.fontString(size, style, family)\r\n\t\t};\r\n\t}\r\n\r\n\tfunction parseLineHeight(options) {\r\n\t\treturn helpers.options.toLineHeight(\r\n\t\t\thelpers.valueOrDefault(options.lineHeight, 1.2),\r\n\t\t\thelpers.valueOrDefault(options.fontSize, defaults.global.defaultFontSize));\r\n\t}\r\n\r\n\tChart.Scale = Element.extend({\r\n\t\t/**\r\n\t\t * Get the padding needed for the scale\r\n\t\t * @method getPadding\r\n\t\t * @private\r\n\t\t * @returns {Padding} the necessary padding\r\n\t\t */\r\n\t\tgetPadding: function() {\r\n\t\t\tvar me = this;\r\n\t\t\treturn {\r\n\t\t\t\tleft: me.paddingLeft || 0,\r\n\t\t\t\ttop: me.paddingTop || 0,\r\n\t\t\t\tright: me.paddingRight || 0,\r\n\t\t\t\tbottom: me.paddingBottom || 0\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Returns the scale tick objects ({label, major})\r\n\t\t * @since 2.7\r\n\t\t */\r\n\t\tgetTicks: function() {\r\n\t\t\treturn this._ticks;\r\n\t\t},\r\n\r\n\t\t// These methods are ordered by lifecyle. Utilities then follow.\r\n\t\t// Any function defined here is inherited by all scale types.\r\n\t\t// Any function can be extended by the scale type\r\n\r\n\t\tmergeTicksOptions: function() {\r\n\t\t\tvar ticks = this.options.ticks;\r\n\t\t\tif (ticks.minor === false) {\r\n\t\t\t\tticks.minor = {\r\n\t\t\t\t\tdisplay: false\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tif (ticks.major === false) {\r\n\t\t\t\tticks.major = {\r\n\t\t\t\t\tdisplay: false\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tfor (var key in ticks) {\r\n\t\t\t\tif (key !== 'major' && key !== 'minor') {\r\n\t\t\t\t\tif (typeof ticks.minor[key] === 'undefined') {\r\n\t\t\t\t\t\tticks.minor[key] = ticks[key];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (typeof ticks.major[key] === 'undefined') {\r\n\t\t\t\t\t\tticks.major[key] = ticks[key];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tbeforeUpdate: function() {\r\n\t\t\thelpers.callback(this.options.beforeUpdate, [this]);\r\n\t\t},\r\n\t\tupdate: function(maxWidth, maxHeight, margins) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar i, ilen, labels, label, ticks, tick;\r\n\r\n\t\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\r\n\t\t\tme.beforeUpdate();\r\n\r\n\t\t\t// Absorb the master measurements\r\n\t\t\tme.maxWidth = maxWidth;\r\n\t\t\tme.maxHeight = maxHeight;\r\n\t\t\tme.margins = helpers.extend({\r\n\t\t\t\tleft: 0,\r\n\t\t\t\tright: 0,\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tbottom: 0\r\n\t\t\t}, margins);\r\n\t\t\tme.longestTextCache = me.longestTextCache || {};\r\n\r\n\t\t\t// Dimensions\r\n\t\t\tme.beforeSetDimensions();\r\n\t\t\tme.setDimensions();\r\n\t\t\tme.afterSetDimensions();\r\n\r\n\t\t\t// Data min/max\r\n\t\t\tme.beforeDataLimits();\r\n\t\t\tme.determineDataLimits();\r\n\t\t\tme.afterDataLimits();\r\n\r\n\t\t\t// Ticks - `this.ticks` is now DEPRECATED!\r\n\t\t\t// Internal ticks are now stored as objects in the PRIVATE `this._ticks` member\r\n\t\t\t// and must not be accessed directly from outside this class. `this.ticks` being\r\n\t\t\t// around for long time and not marked as private, we can't change its structure\r\n\t\t\t// without unexpected breaking changes. If you need to access the scale ticks,\r\n\t\t\t// use scale.getTicks() instead.\r\n\r\n\t\t\tme.beforeBuildTicks();\r\n\r\n\t\t\t// New implementations should return an array of objects but for BACKWARD COMPAT,\r\n\t\t\t// we still support no return (`this.ticks` internally set by calling this method).\r\n\t\t\tticks = me.buildTicks() || [];\r\n\r\n\t\t\tme.afterBuildTicks();\r\n\r\n\t\t\tme.beforeTickToLabelConversion();\r\n\r\n\t\t\t// New implementations should return the formatted tick labels but for BACKWARD\r\n\t\t\t// COMPAT, we still support no return (`this.ticks` internally changed by calling\r\n\t\t\t// this method and supposed to contain only string values).\r\n\t\t\tlabels = me.convertTicksToLabels(ticks) || me.ticks;\r\n\r\n\t\t\tme.afterTickToLabelConversion();\r\n\r\n\t\t\tme.ticks = labels; // BACKWARD COMPATIBILITY\r\n\r\n\t\t\t// IMPORTANT: from this point, we consider that `this.ticks` will NEVER change!\r\n\r\n\t\t\t// BACKWARD COMPAT: synchronize `_ticks` with labels (so potentially `this.ticks`)\r\n\t\t\tfor (i = 0, ilen = labels.length; i < ilen; ++i) {\r\n\t\t\t\tlabel = labels[i];\r\n\t\t\t\ttick = ticks[i];\r\n\t\t\t\tif (!tick) {\r\n\t\t\t\t\tticks.push(tick = {\r\n\t\t\t\t\t\tlabel: label,\r\n\t\t\t\t\t\tmajor: false\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttick.label = label;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tme._ticks = ticks;\r\n\r\n\t\t\t// Tick Rotation\r\n\t\t\tme.beforeCalculateTickRotation();\r\n\t\t\tme.calculateTickRotation();\r\n\t\t\tme.afterCalculateTickRotation();\r\n\t\t\t// Fit\r\n\t\t\tme.beforeFit();\r\n\t\t\tme.fit();\r\n\t\t\tme.afterFit();\r\n\t\t\t//\r\n\t\t\tme.afterUpdate();\r\n\r\n\t\t\treturn me.minSize;\r\n\r\n\t\t},\r\n\t\tafterUpdate: function() {\r\n\t\t\thelpers.callback(this.options.afterUpdate, [this]);\r\n\t\t},\r\n\r\n\t\t//\r\n\r\n\t\tbeforeSetDimensions: function() {\r\n\t\t\thelpers.callback(this.options.beforeSetDimensions, [this]);\r\n\t\t},\r\n\t\tsetDimensions: function() {\r\n\t\t\tvar me = this;\r\n\t\t\t// Set the unconstrained dimension before label rotation\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\t// Reset position before calculating rotation\r\n\t\t\t\tme.width = me.maxWidth;\r\n\t\t\t\tme.left = 0;\r\n\t\t\t\tme.right = me.width;\r\n\t\t\t} else {\r\n\t\t\t\tme.height = me.maxHeight;\r\n\r\n\t\t\t\t// Reset position before calculating rotation\r\n\t\t\t\tme.top = 0;\r\n\t\t\t\tme.bottom = me.height;\r\n\t\t\t}\r\n\r\n\t\t\t// Reset padding\r\n\t\t\tme.paddingLeft = 0;\r\n\t\t\tme.paddingTop = 0;\r\n\t\t\tme.paddingRight = 0;\r\n\t\t\tme.paddingBottom = 0;\r\n\t\t},\r\n\t\tafterSetDimensions: function() {\r\n\t\t\thelpers.callback(this.options.afterSetDimensions, [this]);\r\n\t\t},\r\n\r\n\t\t// Data limits\r\n\t\tbeforeDataLimits: function() {\r\n\t\t\thelpers.callback(this.options.beforeDataLimits, [this]);\r\n\t\t},\r\n\t\tdetermineDataLimits: helpers.noop,\r\n\t\tafterDataLimits: function() {\r\n\t\t\thelpers.callback(this.options.afterDataLimits, [this]);\r\n\t\t},\r\n\r\n\t\t//\r\n\t\tbeforeBuildTicks: function() {\r\n\t\t\thelpers.callback(this.options.beforeBuildTicks, [this]);\r\n\t\t},\r\n\t\tbuildTicks: helpers.noop,\r\n\t\tafterBuildTicks: function() {\r\n\t\t\thelpers.callback(this.options.afterBuildTicks, [this]);\r\n\t\t},\r\n\r\n\t\tbeforeTickToLabelConversion: function() {\r\n\t\t\thelpers.callback(this.options.beforeTickToLabelConversion, [this]);\r\n\t\t},\r\n\t\tconvertTicksToLabels: function() {\r\n\t\t\tvar me = this;\r\n\t\t\t// Convert ticks to strings\r\n\t\t\tvar tickOpts = me.options.ticks;\r\n\t\t\tme.ticks = me.ticks.map(tickOpts.userCallback || tickOpts.callback, this);\r\n\t\t},\r\n\t\tafterTickToLabelConversion: function() {\r\n\t\t\thelpers.callback(this.options.afterTickToLabelConversion, [this]);\r\n\t\t},\r\n\r\n\t\t//\r\n\r\n\t\tbeforeCalculateTickRotation: function() {\r\n\t\t\thelpers.callback(this.options.beforeCalculateTickRotation, [this]);\r\n\t\t},\r\n\t\tcalculateTickRotation: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar context = me.ctx;\r\n\t\t\tvar tickOpts = me.options.ticks;\r\n\t\t\tvar labels = labelsFromTicks(me._ticks);\r\n\r\n\t\t\t// Get the width of each grid by calculating the difference\r\n\t\t\t// between x offsets between 0 and 1.\r\n\t\t\tvar tickFont = parseFontOptions(tickOpts);\r\n\t\t\tcontext.font = tickFont.font;\r\n\r\n\t\t\tvar labelRotation = tickOpts.minRotation || 0;\r\n\r\n\t\t\tif (labels.length && me.options.display && me.isHorizontal()) {\r\n\t\t\t\tvar originalLabelWidth = helpers.longestText(context, tickFont.font, labels, me.longestTextCache);\r\n\t\t\t\tvar labelWidth = originalLabelWidth;\r\n\t\t\t\tvar cosRotation, sinRotation;\r\n\r\n\t\t\t\t// Allow 3 pixels x2 padding either side for label readability\r\n\t\t\t\tvar tickWidth = me.getPixelForTick(1) - me.getPixelForTick(0) - 6;\r\n\r\n\t\t\t\t// Max label rotation can be set or default to 90 - also act as a loop counter\r\n\t\t\t\twhile (labelWidth > tickWidth && labelRotation < tickOpts.maxRotation) {\r\n\t\t\t\t\tvar angleRadians = helpers.toRadians(labelRotation);\r\n\t\t\t\t\tcosRotation = Math.cos(angleRadians);\r\n\t\t\t\t\tsinRotation = Math.sin(angleRadians);\r\n\r\n\t\t\t\t\tif (sinRotation * originalLabelWidth > me.maxHeight) {\r\n\t\t\t\t\t\t// go back one step\r\n\t\t\t\t\t\tlabelRotation--;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlabelRotation++;\r\n\t\t\t\t\tlabelWidth = cosRotation * originalLabelWidth;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tme.labelRotation = labelRotation;\r\n\t\t},\r\n\t\tafterCalculateTickRotation: function() {\r\n\t\t\thelpers.callback(this.options.afterCalculateTickRotation, [this]);\r\n\t\t},\r\n\r\n\t\t//\r\n\r\n\t\tbeforeFit: function() {\r\n\t\t\thelpers.callback(this.options.beforeFit, [this]);\r\n\t\t},\r\n\t\tfit: function() {\r\n\t\t\tvar me = this;\r\n\t\t\t// Reset\r\n\t\t\tvar minSize = me.minSize = {\r\n\t\t\t\twidth: 0,\r\n\t\t\t\theight: 0\r\n\t\t\t};\r\n\r\n\t\t\tvar labels = labelsFromTicks(me._ticks);\r\n\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\t\t\tvar scaleLabelOpts = opts.scaleLabel;\r\n\t\t\tvar gridLineOpts = opts.gridLines;\r\n\t\t\tvar display = opts.display;\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\r\n\t\t\tvar tickFont = parseFontOptions(tickOpts);\r\n\t\t\tvar tickMarkLength = opts.gridLines.tickMarkLength;\r\n\r\n\t\t\t// Width\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\t// subtract the margins to line up with the chartArea if we are a full width scale\r\n\t\t\t\tminSize.width = me.isFullWidth() ? me.maxWidth - me.margins.left - me.margins.right : me.maxWidth;\r\n\t\t\t} else {\r\n\t\t\t\tminSize.width = display && gridLineOpts.drawTicks ? tickMarkLength : 0;\r\n\t\t\t}\r\n\r\n\t\t\t// height\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\tminSize.height = display && gridLineOpts.drawTicks ? tickMarkLength : 0;\r\n\t\t\t} else {\r\n\t\t\t\tminSize.height = me.maxHeight; // fill all the height\r\n\t\t\t}\r\n\r\n\t\t\t// Are we showing a title for the scale?\r\n\t\t\tif (scaleLabelOpts.display && display) {\r\n\t\t\t\tvar scaleLabelLineHeight = parseLineHeight(scaleLabelOpts);\r\n\t\t\t\tvar scaleLabelPadding = helpers.options.toPadding(scaleLabelOpts.padding);\r\n\t\t\t\tvar deltaHeight = scaleLabelLineHeight + scaleLabelPadding.height;\r\n\r\n\t\t\t\tif (isHorizontal) {\r\n\t\t\t\t\tminSize.height += deltaHeight;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tminSize.width += deltaHeight;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Don't bother fitting the ticks if we are not showing them\r\n\t\t\tif (tickOpts.display && display) {\r\n\t\t\t\tvar largestTextWidth = helpers.longestText(me.ctx, tickFont.font, labels, me.longestTextCache);\r\n\t\t\t\tvar tallestLabelHeightInLines = helpers.numberOfLabelLines(labels);\r\n\t\t\t\tvar lineSpace = tickFont.size * 0.5;\r\n\t\t\t\tvar tickPadding = me.options.ticks.padding;\r\n\r\n\t\t\t\tif (isHorizontal) {\r\n\t\t\t\t\t// A horizontal axis is more constrained by the height.\r\n\t\t\t\t\tme.longestLabelWidth = largestTextWidth;\r\n\r\n\t\t\t\t\tvar angleRadians = helpers.toRadians(me.labelRotation);\r\n\t\t\t\t\tvar cosRotation = Math.cos(angleRadians);\r\n\t\t\t\t\tvar sinRotation = Math.sin(angleRadians);\r\n\r\n\t\t\t\t\t// TODO - improve this calculation\r\n\t\t\t\t\tvar labelHeight = (sinRotation * largestTextWidth)\r\n\t\t\t\t\t\t+ (tickFont.size * tallestLabelHeightInLines)\r\n\t\t\t\t\t\t+ (lineSpace * (tallestLabelHeightInLines - 1))\r\n\t\t\t\t\t\t+ lineSpace; // padding\r\n\r\n\t\t\t\t\tminSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding);\r\n\r\n\t\t\t\t\tme.ctx.font = tickFont.font;\r\n\t\t\t\t\tvar firstLabelWidth = computeTextSize(me.ctx, labels[0], tickFont.font);\r\n\t\t\t\t\tvar lastLabelWidth = computeTextSize(me.ctx, labels[labels.length - 1], tickFont.font);\r\n\r\n\t\t\t\t\t// Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\r\n\t\t\t\t\t// which means that the right padding is dominated by the font height\r\n\t\t\t\t\tif (me.labelRotation !== 0) {\r\n\t\t\t\t\t\tme.paddingLeft = opts.position === 'bottom' ? (cosRotation * firstLabelWidth) + 3 : (cosRotation * lineSpace) + 3; // add 3 px to move away from canvas edges\r\n\t\t\t\t\t\tme.paddingRight = opts.position === 'bottom' ? (cosRotation * lineSpace) + 3 : (cosRotation * lastLabelWidth) + 3;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tme.paddingLeft = firstLabelWidth / 2 + 3; // add 3 px to move away from canvas edges\r\n\t\t\t\t\t\tme.paddingRight = lastLabelWidth / 2 + 3;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// A vertical axis is more constrained by the width. Labels are the\r\n\t\t\t\t\t// dominant factor here, so get that length first and account for padding\r\n\t\t\t\t\tif (tickOpts.mirror) {\r\n\t\t\t\t\t\tlargestTextWidth = 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// use lineSpace for consistency with horizontal axis\r\n\t\t\t\t\t\t// tickPadding is not implemented for horizontal\r\n\t\t\t\t\t\tlargestTextWidth += tickPadding + lineSpace;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tminSize.width = Math.min(me.maxWidth, minSize.width + largestTextWidth);\r\n\r\n\t\t\t\t\tme.paddingTop = tickFont.size / 2;\r\n\t\t\t\t\tme.paddingBottom = tickFont.size / 2;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tme.handleMargins();\r\n\r\n\t\t\tme.width = minSize.width;\r\n\t\t\tme.height = minSize.height;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Handle margins and padding interactions\r\n\t\t * @private\r\n\t\t */\r\n\t\thandleMargins: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tif (me.margins) {\r\n\t\t\t\tme.paddingLeft = Math.max(me.paddingLeft - me.margins.left, 0);\r\n\t\t\t\tme.paddingTop = Math.max(me.paddingTop - me.margins.top, 0);\r\n\t\t\t\tme.paddingRight = Math.max(me.paddingRight - me.margins.right, 0);\r\n\t\t\t\tme.paddingBottom = Math.max(me.paddingBottom - me.margins.bottom, 0);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tafterFit: function() {\r\n\t\t\thelpers.callback(this.options.afterFit, [this]);\r\n\t\t},\r\n\r\n\t\t// Shared Methods\r\n\t\tisHorizontal: function() {\r\n\t\t\treturn this.options.position === 'top' || this.options.position === 'bottom';\r\n\t\t},\r\n\t\tisFullWidth: function() {\r\n\t\t\treturn (this.options.fullWidth);\r\n\t\t},\r\n\r\n\t\t// Get the correct value. NaN bad inputs, If the value type is object get the x or y based on whether we are horizontal or not\r\n\t\tgetRightValue: function(rawValue) {\r\n\t\t\t// Null and undefined values first\r\n\t\t\tif (helpers.isNullOrUndef(rawValue)) {\r\n\t\t\t\treturn NaN;\r\n\t\t\t}\r\n\t\t\t// isNaN(object) returns true, so make sure NaN is checking for a number; Discard Infinite values\r\n\t\t\tif (typeof rawValue === 'number' && !isFinite(rawValue)) {\r\n\t\t\t\treturn NaN;\r\n\t\t\t}\r\n\t\t\t// If it is in fact an object, dive in one more level\r\n\t\t\tif (rawValue) {\r\n\t\t\t\tif (this.isHorizontal()) {\r\n\t\t\t\t\tif (rawValue.x !== undefined) {\r\n\t\t\t\t\t\treturn this.getRightValue(rawValue.x);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (rawValue.y !== undefined) {\r\n\t\t\t\t\treturn this.getRightValue(rawValue.y);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Value is good, return it\r\n\t\t\treturn rawValue;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Used to get the value to display in the tooltip for the data at the given index\r\n\t\t * @param index\r\n\t\t * @param datasetIndex\r\n\t\t */\r\n\t\tgetLabelForIndex: helpers.noop,\r\n\r\n\t\t/**\r\n\t\t * Returns the location of the given data point. Value can either be an index or a numerical value\r\n\t\t * The coordinate (0, 0) is at the upper-left corner of the canvas\r\n\t\t * @param value\r\n\t\t * @param index\r\n\t\t * @param datasetIndex\r\n\t\t */\r\n\t\tgetPixelForValue: helpers.noop,\r\n\r\n\t\t/**\r\n\t\t * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\r\n\t\t * The coordinate (0, 0) is at the upper-left corner of the canvas\r\n\t\t * @param pixel\r\n\t\t */\r\n\t\tgetValueForPixel: helpers.noop,\r\n\r\n\t\t/**\r\n\t\t * Returns the location of the tick at the given index\r\n\t\t * The coordinate (0, 0) is at the upper-left corner of the canvas\r\n\t\t */\r\n\t\tgetPixelForTick: function(index) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar offset = me.options.offset;\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\tvar innerWidth = me.width - (me.paddingLeft + me.paddingRight);\r\n\t\t\t\tvar tickWidth = innerWidth / Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\r\n\t\t\t\tvar pixel = (tickWidth * index) + me.paddingLeft;\r\n\r\n\t\t\t\tif (offset) {\r\n\t\t\t\t\tpixel += tickWidth / 2;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar finalVal = me.left + Math.round(pixel);\r\n\t\t\t\tfinalVal += me.isFullWidth() ? me.margins.left : 0;\r\n\t\t\t\treturn finalVal;\r\n\t\t\t}\r\n\t\t\tvar innerHeight = me.height - (me.paddingTop + me.paddingBottom);\r\n\t\t\treturn me.top + (index * (innerHeight / (me._ticks.length - 1)));\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Utility for getting the pixel location of a percentage of scale\r\n\t\t * The coordinate (0, 0) is at the upper-left corner of the canvas\r\n\t\t */\r\n\t\tgetPixelForDecimal: function(decimal) {\r\n\t\t\tvar me = this;\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\tvar innerWidth = me.width - (me.paddingLeft + me.paddingRight);\r\n\t\t\t\tvar valueOffset = (innerWidth * decimal) + me.paddingLeft;\r\n\r\n\t\t\t\tvar finalVal = me.left + Math.round(valueOffset);\r\n\t\t\t\tfinalVal += me.isFullWidth() ? me.margins.left : 0;\r\n\t\t\t\treturn finalVal;\r\n\t\t\t}\r\n\t\t\treturn me.top + (decimal * me.height);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Returns the pixel for the minimum chart value\r\n\t\t * The coordinate (0, 0) is at the upper-left corner of the canvas\r\n\t\t */\r\n\t\tgetBasePixel: function() {\r\n\t\t\treturn this.getPixelForValue(this.getBaseValue());\r\n\t\t},\r\n\r\n\t\tgetBaseValue: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar min = me.min;\r\n\t\t\tvar max = me.max;\r\n\r\n\t\t\treturn me.beginAtZero ? 0 :\r\n\t\t\t\tmin < 0 && max < 0 ? max :\r\n\t\t\t\tmin > 0 && max > 0 ? min :\r\n\t\t\t\t0;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Returns a subset of ticks to be plotted to avoid overlapping labels.\r\n\t\t * @private\r\n\t\t */\r\n\t\t_autoSkip: function(ticks) {\r\n\t\t\tvar skipRatio;\r\n\t\t\tvar me = this;\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\t\t\tvar optionTicks = me.options.ticks.minor;\r\n\t\t\tvar tickCount = ticks.length;\r\n\t\t\tvar labelRotationRadians = helpers.toRadians(me.labelRotation);\r\n\t\t\tvar cosRotation = Math.cos(labelRotationRadians);\r\n\t\t\tvar longestRotatedLabel = me.longestLabelWidth * cosRotation;\r\n\t\t\tvar result = [];\r\n\t\t\tvar i, tick, shouldSkip;\r\n\r\n\t\t\t// figure out the maximum number of gridlines to show\r\n\t\t\tvar maxTicks;\r\n\t\t\tif (optionTicks.maxTicksLimit) {\r\n\t\t\t\tmaxTicks = optionTicks.maxTicksLimit;\r\n\t\t\t}\r\n\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\tskipRatio = false;\r\n\r\n\t\t\t\tif ((longestRotatedLabel + optionTicks.autoSkipPadding) * tickCount > (me.width - (me.paddingLeft + me.paddingRight))) {\r\n\t\t\t\t\tskipRatio = 1 + Math.floor(((longestRotatedLabel + optionTicks.autoSkipPadding) * tickCount) / (me.width - (me.paddingLeft + me.paddingRight)));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// if they defined a max number of optionTicks,\r\n\t\t\t\t// increase skipRatio until that number is met\r\n\t\t\t\tif (maxTicks && tickCount > maxTicks) {\r\n\t\t\t\t\tskipRatio = Math.max(skipRatio, Math.floor(tickCount / maxTicks));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfor (i = 0; i < tickCount; i++) {\r\n\t\t\t\ttick = ticks[i];\r\n\r\n\t\t\t\t// Since we always show the last tick,we need may need to hide the last shown one before\r\n\t\t\t\tshouldSkip = (skipRatio > 1 && i % skipRatio > 0) || (i % skipRatio === 0 && i + skipRatio >= tickCount);\r\n\t\t\t\tif (shouldSkip && i !== tickCount - 1) {\r\n\t\t\t\t\t// leave tick in place but make sure it's not displayed (#4635)\r\n\t\t\t\t\tdelete tick.label;\r\n\t\t\t\t}\r\n\t\t\t\tresult.push(tick);\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t},\r\n\r\n\t\t// Actually draw the scale on the canvas\r\n\t\t// @param {rectangle} chartArea : the area of the chart to draw full grid lines on\r\n\t\tdraw: function(chartArea) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = me.options;\r\n\t\t\tif (!options.display) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar context = me.ctx;\r\n\t\t\tvar globalDefaults = defaults.global;\r\n\t\t\tvar optionTicks = options.ticks.minor;\r\n\t\t\tvar optionMajorTicks = options.ticks.major || optionTicks;\r\n\t\t\tvar gridLines = options.gridLines;\r\n\t\t\tvar scaleLabel = options.scaleLabel;\r\n\r\n\t\t\tvar isRotated = me.labelRotation !== 0;\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\r\n\t\t\tvar ticks = optionTicks.autoSkip ? me._autoSkip(me.getTicks()) : me.getTicks();\r\n\t\t\tvar tickFontColor = helpers.valueOrDefault(optionTicks.fontColor, globalDefaults.defaultFontColor);\r\n\t\t\tvar tickFont = parseFontOptions(optionTicks);\r\n\t\t\tvar majorTickFontColor = helpers.valueOrDefault(optionMajorTicks.fontColor, globalDefaults.defaultFontColor);\r\n\t\t\tvar majorTickFont = parseFontOptions(optionMajorTicks);\r\n\r\n\t\t\tvar tl = gridLines.drawTicks ? gridLines.tickMarkLength : 0;\r\n\r\n\t\t\tvar scaleLabelFontColor = helpers.valueOrDefault(scaleLabel.fontColor, globalDefaults.defaultFontColor);\r\n\t\t\tvar scaleLabelFont = parseFontOptions(scaleLabel);\r\n\t\t\tvar scaleLabelPadding = helpers.options.toPadding(scaleLabel.padding);\r\n\t\t\tvar labelRotationRadians = helpers.toRadians(me.labelRotation);\r\n\r\n\t\t\tvar itemsToDraw = [];\r\n\r\n\t\t\tvar axisWidth = me.options.gridLines.lineWidth;\r\n\t\t\tvar xTickStart = options.position === 'right' ? me.right : me.right - axisWidth - tl;\r\n\t\t\tvar xTickEnd = options.position === 'right' ? me.right + tl : me.right;\r\n\t\t\tvar yTickStart = options.position === 'bottom' ? me.top + axisWidth : me.bottom - tl - axisWidth;\r\n\t\t\tvar yTickEnd = options.position === 'bottom' ? me.top + axisWidth + tl : me.bottom + axisWidth;\r\n\r\n\t\t\thelpers.each(ticks, function(tick, index) {\r\n\t\t\t\t// autoskipper skipped this tick (#4635)\r\n\t\t\t\tif (helpers.isNullOrUndef(tick.label)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar label = tick.label;\r\n\t\t\t\tvar lineWidth, lineColor, borderDash, borderDashOffset;\r\n\t\t\t\tif (index === me.zeroLineIndex && options.offset === gridLines.offsetGridLines) {\r\n\t\t\t\t\t// Draw the first index specially\r\n\t\t\t\t\tlineWidth = gridLines.zeroLineWidth;\r\n\t\t\t\t\tlineColor = gridLines.zeroLineColor;\r\n\t\t\t\t\tborderDash = gridLines.zeroLineBorderDash;\r\n\t\t\t\t\tborderDashOffset = gridLines.zeroLineBorderDashOffset;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlineWidth = helpers.valueAtIndexOrDefault(gridLines.lineWidth, index);\r\n\t\t\t\t\tlineColor = helpers.valueAtIndexOrDefault(gridLines.color, index);\r\n\t\t\t\t\tborderDash = helpers.valueOrDefault(gridLines.borderDash, globalDefaults.borderDash);\r\n\t\t\t\t\tborderDashOffset = helpers.valueOrDefault(gridLines.borderDashOffset, globalDefaults.borderDashOffset);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Common properties\r\n\t\t\t\tvar tx1, ty1, tx2, ty2, x1, y1, x2, y2, labelX, labelY;\r\n\t\t\t\tvar textAlign = 'middle';\r\n\t\t\t\tvar textBaseline = 'middle';\r\n\t\t\t\tvar tickPadding = optionTicks.padding;\r\n\r\n\t\t\t\tif (isHorizontal) {\r\n\t\t\t\t\tvar labelYOffset = tl + tickPadding;\r\n\r\n\t\t\t\t\tif (options.position === 'bottom') {\r\n\t\t\t\t\t\t// bottom\r\n\t\t\t\t\t\ttextBaseline = !isRotated ? 'top' : 'middle';\r\n\t\t\t\t\t\ttextAlign = !isRotated ? 'center' : 'right';\r\n\t\t\t\t\t\tlabelY = me.top + labelYOffset;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// top\r\n\t\t\t\t\t\ttextBaseline = !isRotated ? 'bottom' : 'middle';\r\n\t\t\t\t\t\ttextAlign = !isRotated ? 'center' : 'left';\r\n\t\t\t\t\t\tlabelY = me.bottom - labelYOffset;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar xLineValue = getLineValue(me, index, gridLines.offsetGridLines && ticks.length > 1);\r\n\t\t\t\t\tif (xLineValue < me.left) {\r\n\t\t\t\t\t\tlineColor = 'rgba(0,0,0,0)';\r\n\t\t\t\t\t}\r\n\t\t\t\t\txLineValue += helpers.aliasPixel(lineWidth);\r\n\r\n\t\t\t\t\tlabelX = me.getPixelForTick(index) + optionTicks.labelOffset; // x values for optionTicks (need to consider offsetLabel option)\r\n\r\n\t\t\t\t\ttx1 = tx2 = x1 = x2 = xLineValue;\r\n\t\t\t\t\tty1 = yTickStart;\r\n\t\t\t\t\tty2 = yTickEnd;\r\n\t\t\t\t\ty1 = chartArea.top;\r\n\t\t\t\t\ty2 = chartArea.bottom + axisWidth;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar isLeft = options.position === 'left';\r\n\t\t\t\t\tvar labelXOffset;\r\n\r\n\t\t\t\t\tif (optionTicks.mirror) {\r\n\t\t\t\t\t\ttextAlign = isLeft ? 'left' : 'right';\r\n\t\t\t\t\t\tlabelXOffset = tickPadding;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttextAlign = isLeft ? 'right' : 'left';\r\n\t\t\t\t\t\tlabelXOffset = tl + tickPadding;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlabelX = isLeft ? me.right - labelXOffset : me.left + labelXOffset;\r\n\r\n\t\t\t\t\tvar yLineValue = getLineValue(me, index, gridLines.offsetGridLines && ticks.length > 1);\r\n\t\t\t\t\tif (yLineValue < me.top) {\r\n\t\t\t\t\t\tlineColor = 'rgba(0,0,0,0)';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tyLineValue += helpers.aliasPixel(lineWidth);\r\n\r\n\t\t\t\t\tlabelY = me.getPixelForTick(index) + optionTicks.labelOffset;\r\n\r\n\t\t\t\t\ttx1 = xTickStart;\r\n\t\t\t\t\ttx2 = xTickEnd;\r\n\t\t\t\t\tx1 = chartArea.left;\r\n\t\t\t\t\tx2 = chartArea.right + axisWidth;\r\n\t\t\t\t\tty1 = ty2 = y1 = y2 = yLineValue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\titemsToDraw.push({\r\n\t\t\t\t\ttx1: tx1,\r\n\t\t\t\t\tty1: ty1,\r\n\t\t\t\t\ttx2: tx2,\r\n\t\t\t\t\tty2: ty2,\r\n\t\t\t\t\tx1: x1,\r\n\t\t\t\t\ty1: y1,\r\n\t\t\t\t\tx2: x2,\r\n\t\t\t\t\ty2: y2,\r\n\t\t\t\t\tlabelX: labelX,\r\n\t\t\t\t\tlabelY: labelY,\r\n\t\t\t\t\tglWidth: lineWidth,\r\n\t\t\t\t\tglColor: lineColor,\r\n\t\t\t\t\tglBorderDash: borderDash,\r\n\t\t\t\t\tglBorderDashOffset: borderDashOffset,\r\n\t\t\t\t\trotation: -1 * labelRotationRadians,\r\n\t\t\t\t\tlabel: label,\r\n\t\t\t\t\tmajor: tick.major,\r\n\t\t\t\t\ttextBaseline: textBaseline,\r\n\t\t\t\t\ttextAlign: textAlign\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\t// Draw all of the tick labels, tick marks, and grid lines at the correct places\r\n\t\t\thelpers.each(itemsToDraw, function(itemToDraw) {\r\n\t\t\t\tif (gridLines.display) {\r\n\t\t\t\t\tcontext.save();\r\n\t\t\t\t\tcontext.lineWidth = itemToDraw.glWidth;\r\n\t\t\t\t\tcontext.strokeStyle = itemToDraw.glColor;\r\n\t\t\t\t\tif (context.setLineDash) {\r\n\t\t\t\t\t\tcontext.setLineDash(itemToDraw.glBorderDash);\r\n\t\t\t\t\t\tcontext.lineDashOffset = itemToDraw.glBorderDashOffset;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcontext.beginPath();\r\n\r\n\t\t\t\t\tif (gridLines.drawTicks) {\r\n\t\t\t\t\t\tcontext.moveTo(itemToDraw.tx1, itemToDraw.ty1);\r\n\t\t\t\t\t\tcontext.lineTo(itemToDraw.tx2, itemToDraw.ty2);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (gridLines.drawOnChartArea) {\r\n\t\t\t\t\t\tcontext.moveTo(itemToDraw.x1, itemToDraw.y1);\r\n\t\t\t\t\t\tcontext.lineTo(itemToDraw.x2, itemToDraw.y2);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcontext.stroke();\r\n\t\t\t\t\tcontext.restore();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (optionTicks.display) {\r\n\t\t\t\t\t// Make sure we draw text in the correct color and font\r\n\t\t\t\t\tcontext.save();\r\n\t\t\t\t\tcontext.translate(itemToDraw.labelX, itemToDraw.labelY);\r\n\t\t\t\t\tcontext.rotate(itemToDraw.rotation);\r\n\t\t\t\t\tcontext.font = itemToDraw.major ? majorTickFont.font : tickFont.font;\r\n\t\t\t\t\tcontext.fillStyle = itemToDraw.major ? majorTickFontColor : tickFontColor;\r\n\t\t\t\t\tcontext.textBaseline = itemToDraw.textBaseline;\r\n\t\t\t\t\tcontext.textAlign = itemToDraw.textAlign;\r\n\r\n\t\t\t\t\tvar label = itemToDraw.label;\r\n\t\t\t\t\tif (helpers.isArray(label)) {\r\n\t\t\t\t\t\tvar lineCount = label.length;\r\n\t\t\t\t\t\tvar lineHeight = tickFont.size * 1.5;\r\n\t\t\t\t\t\tvar y = me.isHorizontal() ? 0 : -lineHeight * (lineCount - 1) / 2;\r\n\r\n\t\t\t\t\t\tfor (var i = 0; i < lineCount; ++i) {\r\n\t\t\t\t\t\t\t// We just make sure the multiline element is a string here..\r\n\t\t\t\t\t\t\tcontext.fillText('' + label[i], 0, y);\r\n\t\t\t\t\t\t\t// apply same lineSpacing as calculated @ L#320\r\n\t\t\t\t\t\t\ty += lineHeight;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tcontext.fillText(label, 0, 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.restore();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (scaleLabel.display) {\r\n\t\t\t\t// Draw the scale label\r\n\t\t\t\tvar scaleLabelX;\r\n\t\t\t\tvar scaleLabelY;\r\n\t\t\t\tvar rotation = 0;\r\n\t\t\t\tvar halfLineHeight = parseLineHeight(scaleLabel) / 2;\r\n\r\n\t\t\t\tif (isHorizontal) {\r\n\t\t\t\t\tscaleLabelX = me.left + ((me.right - me.left) / 2); // midpoint of the width\r\n\t\t\t\t\tscaleLabelY = options.position === 'bottom'\r\n\t\t\t\t\t\t? me.bottom - halfLineHeight - scaleLabelPadding.bottom\r\n\t\t\t\t\t\t: me.top + halfLineHeight + scaleLabelPadding.top;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar isLeft = options.position === 'left';\r\n\t\t\t\t\tscaleLabelX = isLeft\r\n\t\t\t\t\t\t? me.left + halfLineHeight + scaleLabelPadding.top\r\n\t\t\t\t\t\t: me.right - halfLineHeight - scaleLabelPadding.top;\r\n\t\t\t\t\tscaleLabelY = me.top + ((me.bottom - me.top) / 2);\r\n\t\t\t\t\trotation = isLeft ? -0.5 * Math.PI : 0.5 * Math.PI;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcontext.save();\r\n\t\t\t\tcontext.translate(scaleLabelX, scaleLabelY);\r\n\t\t\t\tcontext.rotate(rotation);\r\n\t\t\t\tcontext.textAlign = 'center';\r\n\t\t\t\tcontext.textBaseline = 'middle';\r\n\t\t\t\tcontext.fillStyle = scaleLabelFontColor; // render in correct colour\r\n\t\t\t\tcontext.font = scaleLabelFont.font;\r\n\t\t\t\tcontext.fillText(scaleLabel.labelString, 0, 0);\r\n\t\t\t\tcontext.restore();\r\n\t\t\t}\r\n\r\n\t\t\tif (gridLines.drawBorder) {\r\n\t\t\t\t// Draw the line at the edge of the axis\r\n\t\t\t\tcontext.lineWidth = helpers.valueAtIndexOrDefault(gridLines.lineWidth, 0);\r\n\t\t\t\tcontext.strokeStyle = helpers.valueAtIndexOrDefault(gridLines.color, 0);\r\n\t\t\t\tvar x1 = me.left;\r\n\t\t\t\tvar x2 = me.right + axisWidth;\r\n\t\t\t\tvar y1 = me.top;\r\n\t\t\t\tvar y2 = me.bottom + axisWidth;\r\n\r\n\t\t\t\tvar aliasPixel = helpers.aliasPixel(context.lineWidth);\r\n\t\t\t\tif (isHorizontal) {\r\n\t\t\t\t\ty1 = y2 = options.position === 'top' ? me.bottom : me.top;\r\n\t\t\t\t\ty1 += aliasPixel;\r\n\t\t\t\t\ty2 += aliasPixel;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tx1 = x2 = options.position === 'left' ? me.right : me.left;\r\n\t\t\t\t\tx1 += aliasPixel;\r\n\t\t\t\t\tx2 += aliasPixel;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcontext.beginPath();\r\n\t\t\t\tcontext.moveTo(x1, y1);\r\n\t\t\t\tcontext.lineTo(x2, y2);\r\n\t\t\t\tcontext.stroke();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"25\":25,\"26\":26,\"34\":34,\"45\":45}],33:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar helpers = require(45);\r\nvar layouts = require(30);\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tChart.scaleService = {\r\n\t\t// Scale registration object. Extensions can register new scale types (such as log or DB scales) and then\r\n\t\t// use the new chart options to grab the correct scale\r\n\t\tconstructors: {},\r\n\t\t// Use a registration function so that we can move to an ES6 map when we no longer need to support\r\n\t\t// old browsers\r\n\r\n\t\t// Scale config defaults\r\n\t\tdefaults: {},\r\n\t\tregisterScaleType: function(type, scaleConstructor, scaleDefaults) {\r\n\t\t\tthis.constructors[type] = scaleConstructor;\r\n\t\t\tthis.defaults[type] = helpers.clone(scaleDefaults);\r\n\t\t},\r\n\t\tgetScaleConstructor: function(type) {\r\n\t\t\treturn this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined;\r\n\t\t},\r\n\t\tgetScaleDefaults: function(type) {\r\n\t\t\t// Return the scale defaults merged with the global settings so that we always use the latest ones\r\n\t\t\treturn this.defaults.hasOwnProperty(type) ? helpers.merge({}, [defaults.scale, this.defaults[type]]) : {};\r\n\t\t},\r\n\t\tupdateScaleDefaults: function(type, additions) {\r\n\t\t\tvar me = this;\r\n\t\t\tif (me.defaults.hasOwnProperty(type)) {\r\n\t\t\t\tme.defaults[type] = helpers.extend(me.defaults[type], additions);\r\n\t\t\t}\r\n\t\t},\r\n\t\taddScalesToLayout: function(chart) {\r\n\t\t\t// Adds each scale to the chart.boxes array to be sized accordingly\r\n\t\t\thelpers.each(chart.scales, function(scale) {\r\n\t\t\t\t// Set ILayoutItem parameters for backwards compatibility\r\n\t\t\t\tscale.fullWidth = scale.options.fullWidth;\r\n\t\t\t\tscale.position = scale.options.position;\r\n\t\t\t\tscale.weight = scale.options.weight;\r\n\t\t\t\tlayouts.addBox(chart, scale);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n};\r\n\r\n},{\"25\":25,\"30\":30,\"45\":45}],34:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(45);\r\n\r\n/**\r\n * Namespace to hold static tick generation functions\r\n * @namespace Chart.Ticks\r\n */\r\nmodule.exports = {\r\n\t/**\r\n\t * Namespace to hold formatters for different types of ticks\r\n\t * @namespace Chart.Ticks.formatters\r\n\t */\r\n\tformatters: {\r\n\t\t/**\r\n\t\t * Formatter for value labels\r\n\t\t * @method Chart.Ticks.formatters.values\r\n\t\t * @param value the value to display\r\n\t\t * @return {String|Array} the label to display\r\n\t\t */\r\n\t\tvalues: function(value) {\r\n\t\t\treturn helpers.isArray(value) ? value : '' + value;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Formatter for linear numeric ticks\r\n\t\t * @method Chart.Ticks.formatters.linear\r\n\t\t * @param tickValue {Number} the value to be formatted\r\n\t\t * @param index {Number} the position of the tickValue parameter in the ticks array\r\n\t\t * @param ticks {Array} the list of ticks being converted\r\n\t\t * @return {String} string representation of the tickValue parameter\r\n\t\t */\r\n\t\tlinear: function(tickValue, index, ticks) {\r\n\t\t\t// If we have lots of ticks, don't use the ones\r\n\t\t\tvar delta = ticks.length > 3 ? ticks[2] - ticks[1] : ticks[1] - ticks[0];\r\n\r\n\t\t\t// If we have a number like 2.5 as the delta, figure out how many decimal places we need\r\n\t\t\tif (Math.abs(delta) > 1) {\r\n\t\t\t\tif (tickValue !== Math.floor(tickValue)) {\r\n\t\t\t\t\t// not an integer\r\n\t\t\t\t\tdelta = tickValue - Math.floor(tickValue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar logDelta = helpers.log10(Math.abs(delta));\r\n\t\t\tvar tickString = '';\r\n\r\n\t\t\tif (tickValue !== 0) {\r\n\t\t\t\tvar numDecimal = -1 * Math.floor(logDelta);\r\n\t\t\t\tnumDecimal = Math.max(Math.min(numDecimal, 20), 0); // toFixed has a max of 20 decimal places\r\n\t\t\t\ttickString = tickValue.toFixed(numDecimal);\r\n\t\t\t} else {\r\n\t\t\t\ttickString = '0'; // never show decimal places for 0\r\n\t\t\t}\r\n\r\n\t\t\treturn tickString;\r\n\t\t},\r\n\r\n\t\tlogarithmic: function(tickValue, index, ticks) {\r\n\t\t\tvar remain = tickValue / (Math.pow(10, Math.floor(helpers.log10(tickValue))));\r\n\r\n\t\t\tif (tickValue === 0) {\r\n\t\t\t\treturn '0';\r\n\t\t\t} else if (remain === 1 || remain === 2 || remain === 5 || index === 0 || index === ticks.length - 1) {\r\n\t\t\t\treturn tickValue.toExponential();\r\n\t\t\t}\r\n\t\t\treturn '';\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"45\":45}],35:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar Element = require(26);\r\nvar helpers = require(45);\r\n\r\ndefaults._set('global', {\r\n\ttooltips: {\r\n\t\tenabled: true,\r\n\t\tcustom: null,\r\n\t\tmode: 'nearest',\r\n\t\tposition: 'average',\r\n\t\tintersect: true,\r\n\t\tbackgroundColor: 'rgba(0,0,0,0.8)',\r\n\t\ttitleFontStyle: 'bold',\r\n\t\ttitleSpacing: 2,\r\n\t\ttitleMarginBottom: 6,\r\n\t\ttitleFontColor: '#fff',\r\n\t\ttitleAlign: 'left',\r\n\t\tbodySpacing: 2,\r\n\t\tbodyFontColor: '#fff',\r\n\t\tbodyAlign: 'left',\r\n\t\tfooterFontStyle: 'bold',\r\n\t\tfooterSpacing: 2,\r\n\t\tfooterMarginTop: 6,\r\n\t\tfooterFontColor: '#fff',\r\n\t\tfooterAlign: 'left',\r\n\t\tyPadding: 6,\r\n\t\txPadding: 6,\r\n\t\tcaretPadding: 2,\r\n\t\tcaretSize: 5,\r\n\t\tcornerRadius: 6,\r\n\t\tmultiKeyBackground: '#fff',\r\n\t\tdisplayColors: true,\r\n\t\tborderColor: 'rgba(0,0,0,0)',\r\n\t\tborderWidth: 0,\r\n\t\tcallbacks: {\r\n\t\t\t// Args are: (tooltipItems, data)\r\n\t\t\tbeforeTitle: helpers.noop,\r\n\t\t\ttitle: function(tooltipItems, data) {\r\n\t\t\t\t// Pick first xLabel for now\r\n\t\t\t\tvar title = '';\r\n\t\t\t\tvar labels = data.labels;\r\n\t\t\t\tvar labelCount = labels ? labels.length : 0;\r\n\r\n\t\t\t\tif (tooltipItems.length > 0) {\r\n\t\t\t\t\tvar item = tooltipItems[0];\r\n\r\n\t\t\t\t\tif (item.xLabel) {\r\n\t\t\t\t\t\ttitle = item.xLabel;\r\n\t\t\t\t\t} else if (labelCount > 0 && item.index < labelCount) {\r\n\t\t\t\t\t\ttitle = labels[item.index];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn title;\r\n\t\t\t},\r\n\t\t\tafterTitle: helpers.noop,\r\n\r\n\t\t\t// Args are: (tooltipItems, data)\r\n\t\t\tbeforeBody: helpers.noop,\r\n\r\n\t\t\t// Args are: (tooltipItem, data)\r\n\t\t\tbeforeLabel: helpers.noop,\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar label = data.datasets[tooltipItem.datasetIndex].label || '';\r\n\r\n\t\t\t\tif (label) {\r\n\t\t\t\t\tlabel += ': ';\r\n\t\t\t\t}\r\n\t\t\t\tlabel += tooltipItem.yLabel;\r\n\t\t\t\treturn label;\r\n\t\t\t},\r\n\t\t\tlabelColor: function(tooltipItem, chart) {\r\n\t\t\t\tvar meta = chart.getDatasetMeta(tooltipItem.datasetIndex);\r\n\t\t\t\tvar activeElement = meta.data[tooltipItem.index];\r\n\t\t\t\tvar view = activeElement._view;\r\n\t\t\t\treturn {\r\n\t\t\t\t\tborderColor: view.borderColor,\r\n\t\t\t\t\tbackgroundColor: view.backgroundColor\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\t\tlabelTextColor: function() {\r\n\t\t\t\treturn this._options.bodyFontColor;\r\n\t\t\t},\r\n\t\t\tafterLabel: helpers.noop,\r\n\r\n\t\t\t// Args are: (tooltipItems, data)\r\n\t\t\tafterBody: helpers.noop,\r\n\r\n\t\t\t// Args are: (tooltipItems, data)\r\n\t\t\tbeforeFooter: helpers.noop,\r\n\t\t\tfooter: helpers.noop,\r\n\t\t\tafterFooter: helpers.noop\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\t/**\r\n \t * Helper method to merge the opacity into a color\r\n \t */\r\n\tfunction mergeOpacity(colorString, opacity) {\r\n\t\tvar color = helpers.color(colorString);\r\n\t\treturn color.alpha(opacity * color.alpha()).rgbaString();\r\n\t}\r\n\r\n\t// Helper to push or concat based on if the 2nd parameter is an array or not\r\n\tfunction pushOrConcat(base, toPush) {\r\n\t\tif (toPush) {\r\n\t\t\tif (helpers.isArray(toPush)) {\r\n\t\t\t\t// base = base.concat(toPush);\r\n\t\t\t\tArray.prototype.push.apply(base, toPush);\r\n\t\t\t} else {\r\n\t\t\t\tbase.push(toPush);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn base;\r\n\t}\r\n\r\n\t// Private helper to create a tooltip item model\r\n\t// @param element : the chart element (point, arc, bar) to create the tooltip item for\r\n\t// @return : new tooltip item\r\n\tfunction createTooltipItem(element) {\r\n\t\tvar xScale = element._xScale;\r\n\t\tvar yScale = element._yScale || element._scale; // handle radar || polarArea charts\r\n\t\tvar index = element._index;\r\n\t\tvar datasetIndex = element._datasetIndex;\r\n\r\n\t\treturn {\r\n\t\t\txLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '',\r\n\t\t\tyLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '',\r\n\t\t\tindex: index,\r\n\t\t\tdatasetIndex: datasetIndex,\r\n\t\t\tx: element._model.x,\r\n\t\t\ty: element._model.y\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Helper to get the reset model for the tooltip\r\n\t * @param tooltipOpts {Object} the tooltip options\r\n\t */\r\n\tfunction getBaseModel(tooltipOpts) {\r\n\t\tvar globalDefaults = defaults.global;\r\n\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\r\n\t\treturn {\r\n\t\t\t// Positioning\r\n\t\t\txPadding: tooltipOpts.xPadding,\r\n\t\t\tyPadding: tooltipOpts.yPadding,\r\n\t\t\txAlign: tooltipOpts.xAlign,\r\n\t\t\tyAlign: tooltipOpts.yAlign,\r\n\r\n\t\t\t// Body\r\n\t\t\tbodyFontColor: tooltipOpts.bodyFontColor,\r\n\t\t\t_bodyFontFamily: valueOrDefault(tooltipOpts.bodyFontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\t_bodyFontStyle: valueOrDefault(tooltipOpts.bodyFontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\t_bodyAlign: tooltipOpts.bodyAlign,\r\n\t\t\tbodyFontSize: valueOrDefault(tooltipOpts.bodyFontSize, globalDefaults.defaultFontSize),\r\n\t\t\tbodySpacing: tooltipOpts.bodySpacing,\r\n\r\n\t\t\t// Title\r\n\t\t\ttitleFontColor: tooltipOpts.titleFontColor,\r\n\t\t\t_titleFontFamily: valueOrDefault(tooltipOpts.titleFontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\t_titleFontStyle: valueOrDefault(tooltipOpts.titleFontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\ttitleFontSize: valueOrDefault(tooltipOpts.titleFontSize, globalDefaults.defaultFontSize),\r\n\t\t\t_titleAlign: tooltipOpts.titleAlign,\r\n\t\t\ttitleSpacing: tooltipOpts.titleSpacing,\r\n\t\t\ttitleMarginBottom: tooltipOpts.titleMarginBottom,\r\n\r\n\t\t\t// Footer\r\n\t\t\tfooterFontColor: tooltipOpts.footerFontColor,\r\n\t\t\t_footerFontFamily: valueOrDefault(tooltipOpts.footerFontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\t_footerFontStyle: valueOrDefault(tooltipOpts.footerFontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tfooterFontSize: valueOrDefault(tooltipOpts.footerFontSize, globalDefaults.defaultFontSize),\r\n\t\t\t_footerAlign: tooltipOpts.footerAlign,\r\n\t\t\tfooterSpacing: tooltipOpts.footerSpacing,\r\n\t\t\tfooterMarginTop: tooltipOpts.footerMarginTop,\r\n\r\n\t\t\t// Appearance\r\n\t\t\tcaretSize: tooltipOpts.caretSize,\r\n\t\t\tcornerRadius: tooltipOpts.cornerRadius,\r\n\t\t\tbackgroundColor: tooltipOpts.backgroundColor,\r\n\t\t\topacity: 0,\r\n\t\t\tlegendColorBackground: tooltipOpts.multiKeyBackground,\r\n\t\t\tdisplayColors: tooltipOpts.displayColors,\r\n\t\t\tborderColor: tooltipOpts.borderColor,\r\n\t\t\tborderWidth: tooltipOpts.borderWidth\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Get the size of the tooltip\r\n\t */\r\n\tfunction getTooltipSize(tooltip, model) {\r\n\t\tvar ctx = tooltip._chart.ctx;\r\n\r\n\t\tvar height = model.yPadding * 2; // Tooltip Padding\r\n\t\tvar width = 0;\r\n\r\n\t\t// Count of all lines in the body\r\n\t\tvar body = model.body;\r\n\t\tvar combinedBodyLength = body.reduce(function(count, bodyItem) {\r\n\t\t\treturn count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\r\n\t\t}, 0);\r\n\t\tcombinedBodyLength += model.beforeBody.length + model.afterBody.length;\r\n\r\n\t\tvar titleLineCount = model.title.length;\r\n\t\tvar footerLineCount = model.footer.length;\r\n\t\tvar titleFontSize = model.titleFontSize;\r\n\t\tvar bodyFontSize = model.bodyFontSize;\r\n\t\tvar footerFontSize = model.footerFontSize;\r\n\r\n\t\theight += titleLineCount * titleFontSize; // Title Lines\r\n\t\theight += titleLineCount ? (titleLineCount - 1) * model.titleSpacing : 0; // Title Line Spacing\r\n\t\theight += titleLineCount ? model.titleMarginBottom : 0; // Title's bottom Margin\r\n\t\theight += combinedBodyLength * bodyFontSize; // Body Lines\r\n\t\theight += combinedBodyLength ? (combinedBodyLength - 1) * model.bodySpacing : 0; // Body Line Spacing\r\n\t\theight += footerLineCount ? model.footerMarginTop : 0; // Footer Margin\r\n\t\theight += footerLineCount * (footerFontSize); // Footer Lines\r\n\t\theight += footerLineCount ? (footerLineCount - 1) * model.footerSpacing : 0; // Footer Line Spacing\r\n\r\n\t\t// Title width\r\n\t\tvar widthPadding = 0;\r\n\t\tvar maxLineWidth = function(line) {\r\n\t\t\twidth = Math.max(width, ctx.measureText(line).width + widthPadding);\r\n\t\t};\r\n\r\n\t\tctx.font = helpers.fontString(titleFontSize, model._titleFontStyle, model._titleFontFamily);\r\n\t\thelpers.each(model.title, maxLineWidth);\r\n\r\n\t\t// Body width\r\n\t\tctx.font = helpers.fontString(bodyFontSize, model._bodyFontStyle, model._bodyFontFamily);\r\n\t\thelpers.each(model.beforeBody.concat(model.afterBody), maxLineWidth);\r\n\r\n\t\t// Body lines may include some extra width due to the color box\r\n\t\twidthPadding = model.displayColors ? (bodyFontSize + 2) : 0;\r\n\t\thelpers.each(body, function(bodyItem) {\r\n\t\t\thelpers.each(bodyItem.before, maxLineWidth);\r\n\t\t\thelpers.each(bodyItem.lines, maxLineWidth);\r\n\t\t\thelpers.each(bodyItem.after, maxLineWidth);\r\n\t\t});\r\n\r\n\t\t// Reset back to 0\r\n\t\twidthPadding = 0;\r\n\r\n\t\t// Footer width\r\n\t\tctx.font = helpers.fontString(footerFontSize, model._footerFontStyle, model._footerFontFamily);\r\n\t\thelpers.each(model.footer, maxLineWidth);\r\n\r\n\t\t// Add padding\r\n\t\twidth += 2 * model.xPadding;\r\n\r\n\t\treturn {\r\n\t\t\twidth: width,\r\n\t\t\theight: height\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Helper to get the alignment of a tooltip given the size\r\n\t */\r\n\tfunction determineAlignment(tooltip, size) {\r\n\t\tvar model = tooltip._model;\r\n\t\tvar chart = tooltip._chart;\r\n\t\tvar chartArea = tooltip._chart.chartArea;\r\n\t\tvar xAlign = 'center';\r\n\t\tvar yAlign = 'center';\r\n\r\n\t\tif (model.y < size.height) {\r\n\t\t\tyAlign = 'top';\r\n\t\t} else if (model.y > (chart.height - size.height)) {\r\n\t\t\tyAlign = 'bottom';\r\n\t\t}\r\n\r\n\t\tvar lf, rf; // functions to determine left, right alignment\r\n\t\tvar olf, orf; // functions to determine if left/right alignment causes tooltip to go outside chart\r\n\t\tvar yf; // function to get the y alignment if the tooltip goes outside of the left or right edges\r\n\t\tvar midX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar midY = (chartArea.top + chartArea.bottom) / 2;\r\n\r\n\t\tif (yAlign === 'center') {\r\n\t\t\tlf = function(x) {\r\n\t\t\t\treturn x <= midX;\r\n\t\t\t};\r\n\t\t\trf = function(x) {\r\n\t\t\t\treturn x > midX;\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tlf = function(x) {\r\n\t\t\t\treturn x <= (size.width / 2);\r\n\t\t\t};\r\n\t\t\trf = function(x) {\r\n\t\t\t\treturn x >= (chart.width - (size.width / 2));\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tolf = function(x) {\r\n\t\t\treturn x + size.width + model.caretSize + model.caretPadding > chart.width;\r\n\t\t};\r\n\t\torf = function(x) {\r\n\t\t\treturn x - size.width - model.caretSize - model.caretPadding < 0;\r\n\t\t};\r\n\t\tyf = function(y) {\r\n\t\t\treturn y <= midY ? 'top' : 'bottom';\r\n\t\t};\r\n\r\n\t\tif (lf(model.x)) {\r\n\t\t\txAlign = 'left';\r\n\r\n\t\t\t// Is tooltip too wide and goes over the right side of the chart.?\r\n\t\t\tif (olf(model.x)) {\r\n\t\t\t\txAlign = 'center';\r\n\t\t\t\tyAlign = yf(model.y);\r\n\t\t\t}\r\n\t\t} else if (rf(model.x)) {\r\n\t\t\txAlign = 'right';\r\n\r\n\t\t\t// Is tooltip too wide and goes outside left edge of canvas?\r\n\t\t\tif (orf(model.x)) {\r\n\t\t\t\txAlign = 'center';\r\n\t\t\t\tyAlign = yf(model.y);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar opts = tooltip._options;\r\n\t\treturn {\r\n\t\t\txAlign: opts.xAlign ? opts.xAlign : xAlign,\r\n\t\t\tyAlign: opts.yAlign ? opts.yAlign : yAlign\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * @Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\r\n\t */\r\n\tfunction getBackgroundPoint(vm, size, alignment, chart) {\r\n\t\t// Background Position\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\r\n\t\tvar caretSize = vm.caretSize;\r\n\t\tvar caretPadding = vm.caretPadding;\r\n\t\tvar cornerRadius = vm.cornerRadius;\r\n\t\tvar xAlign = alignment.xAlign;\r\n\t\tvar yAlign = alignment.yAlign;\r\n\t\tvar paddingAndSize = caretSize + caretPadding;\r\n\t\tvar radiusAndPadding = cornerRadius + caretPadding;\r\n\r\n\t\tif (xAlign === 'right') {\r\n\t\t\tx -= size.width;\r\n\t\t} else if (xAlign === 'center') {\r\n\t\t\tx -= (size.width / 2);\r\n\t\t\tif (x + size.width > chart.width) {\r\n\t\t\t\tx = chart.width - size.width;\r\n\t\t\t}\r\n\t\t\tif (x < 0) {\r\n\t\t\t\tx = 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (yAlign === 'top') {\r\n\t\t\ty += paddingAndSize;\r\n\t\t} else if (yAlign === 'bottom') {\r\n\t\t\ty -= size.height + paddingAndSize;\r\n\t\t} else {\r\n\t\t\ty -= (size.height / 2);\r\n\t\t}\r\n\r\n\t\tif (yAlign === 'center') {\r\n\t\t\tif (xAlign === 'left') {\r\n\t\t\t\tx += paddingAndSize;\r\n\t\t\t} else if (xAlign === 'right') {\r\n\t\t\t\tx -= paddingAndSize;\r\n\t\t\t}\r\n\t\t} else if (xAlign === 'left') {\r\n\t\t\tx -= radiusAndPadding;\r\n\t\t} else if (xAlign === 'right') {\r\n\t\t\tx += radiusAndPadding;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tx: x,\r\n\t\t\ty: y\r\n\t\t};\r\n\t}\r\n\r\n\tChart.Tooltip = Element.extend({\r\n\t\tinitialize: function() {\r\n\t\t\tthis._model = getBaseModel(this._options);\r\n\t\t\tthis._lastActive = [];\r\n\t\t},\r\n\r\n\t\t// Get the title\r\n\t\t// Args are: (tooltipItem, data)\r\n\t\tgetTitle: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me._options;\r\n\t\t\tvar callbacks = opts.callbacks;\r\n\r\n\t\t\tvar beforeTitle = callbacks.beforeTitle.apply(me, arguments);\r\n\t\t\tvar title = callbacks.title.apply(me, arguments);\r\n\t\t\tvar afterTitle = callbacks.afterTitle.apply(me, arguments);\r\n\r\n\t\t\tvar lines = [];\r\n\t\t\tlines = pushOrConcat(lines, beforeTitle);\r\n\t\t\tlines = pushOrConcat(lines, title);\r\n\t\t\tlines = pushOrConcat(lines, afterTitle);\r\n\r\n\t\t\treturn lines;\r\n\t\t},\r\n\r\n\t\t// Args are: (tooltipItem, data)\r\n\t\tgetBeforeBody: function() {\r\n\t\t\tvar lines = this._options.callbacks.beforeBody.apply(this, arguments);\r\n\t\t\treturn helpers.isArray(lines) ? lines : lines !== undefined ? [lines] : [];\r\n\t\t},\r\n\r\n\t\t// Args are: (tooltipItem, data)\r\n\t\tgetBody: function(tooltipItems, data) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar callbacks = me._options.callbacks;\r\n\t\t\tvar bodyItems = [];\r\n\r\n\t\t\thelpers.each(tooltipItems, function(tooltipItem) {\r\n\t\t\t\tvar bodyItem = {\r\n\t\t\t\t\tbefore: [],\r\n\t\t\t\t\tlines: [],\r\n\t\t\t\t\tafter: []\r\n\t\t\t\t};\r\n\t\t\t\tpushOrConcat(bodyItem.before, callbacks.beforeLabel.call(me, tooltipItem, data));\r\n\t\t\t\tpushOrConcat(bodyItem.lines, callbacks.label.call(me, tooltipItem, data));\r\n\t\t\t\tpushOrConcat(bodyItem.after, callbacks.afterLabel.call(me, tooltipItem, data));\r\n\r\n\t\t\t\tbodyItems.push(bodyItem);\r\n\t\t\t});\r\n\r\n\t\t\treturn bodyItems;\r\n\t\t},\r\n\r\n\t\t// Args are: (tooltipItem, data)\r\n\t\tgetAfterBody: function() {\r\n\t\t\tvar lines = this._options.callbacks.afterBody.apply(this, arguments);\r\n\t\t\treturn helpers.isArray(lines) ? lines : lines !== undefined ? [lines] : [];\r\n\t\t},\r\n\r\n\t\t// Get the footer and beforeFooter and afterFooter lines\r\n\t\t// Args are: (tooltipItem, data)\r\n\t\tgetFooter: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar callbacks = me._options.callbacks;\r\n\r\n\t\t\tvar beforeFooter = callbacks.beforeFooter.apply(me, arguments);\r\n\t\t\tvar footer = callbacks.footer.apply(me, arguments);\r\n\t\t\tvar afterFooter = callbacks.afterFooter.apply(me, arguments);\r\n\r\n\t\t\tvar lines = [];\r\n\t\t\tlines = pushOrConcat(lines, beforeFooter);\r\n\t\t\tlines = pushOrConcat(lines, footer);\r\n\t\t\tlines = pushOrConcat(lines, afterFooter);\r\n\r\n\t\t\treturn lines;\r\n\t\t},\r\n\r\n\t\tupdate: function(changed) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me._options;\r\n\r\n\t\t\t// Need to regenerate the model because its faster than using extend and it is necessary due to the optimization in Chart.Element.transition\r\n\t\t\t// that does _view = _model if ease === 1. This causes the 2nd tooltip update to set properties in both the view and model at the same time\r\n\t\t\t// which breaks any animations.\r\n\t\t\tvar existingModel = me._model;\r\n\t\t\tvar model = me._model = getBaseModel(opts);\r\n\t\t\tvar active = me._active;\r\n\r\n\t\t\tvar data = me._data;\r\n\r\n\t\t\t// In the case where active.length === 0 we need to keep these at existing values for good animations\r\n\t\t\tvar alignment = {\r\n\t\t\t\txAlign: existingModel.xAlign,\r\n\t\t\t\tyAlign: existingModel.yAlign\r\n\t\t\t};\r\n\t\t\tvar backgroundPoint = {\r\n\t\t\t\tx: existingModel.x,\r\n\t\t\t\ty: existingModel.y\r\n\t\t\t};\r\n\t\t\tvar tooltipSize = {\r\n\t\t\t\twidth: existingModel.width,\r\n\t\t\t\theight: existingModel.height\r\n\t\t\t};\r\n\t\t\tvar tooltipPosition = {\r\n\t\t\t\tx: existingModel.caretX,\r\n\t\t\t\ty: existingModel.caretY\r\n\t\t\t};\r\n\r\n\t\t\tvar i, len;\r\n\r\n\t\t\tif (active.length) {\r\n\t\t\t\tmodel.opacity = 1;\r\n\r\n\t\t\t\tvar labelColors = [];\r\n\t\t\t\tvar labelTextColors = [];\r\n\t\t\t\ttooltipPosition = Chart.Tooltip.positioners[opts.position].call(me, active, me._eventPosition);\r\n\r\n\t\t\t\tvar tooltipItems = [];\r\n\t\t\t\tfor (i = 0, len = active.length; i < len; ++i) {\r\n\t\t\t\t\ttooltipItems.push(createTooltipItem(active[i]));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If the user provided a filter function, use it to modify the tooltip items\r\n\t\t\t\tif (opts.filter) {\r\n\t\t\t\t\ttooltipItems = tooltipItems.filter(function(a) {\r\n\t\t\t\t\t\treturn opts.filter(a, data);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If the user provided a sorting function, use it to modify the tooltip items\r\n\t\t\t\tif (opts.itemSort) {\r\n\t\t\t\t\ttooltipItems = tooltipItems.sort(function(a, b) {\r\n\t\t\t\t\t\treturn opts.itemSort(a, b, data);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Determine colors for boxes\r\n\t\t\t\thelpers.each(tooltipItems, function(tooltipItem) {\r\n\t\t\t\t\tlabelColors.push(opts.callbacks.labelColor.call(me, tooltipItem, me._chart));\r\n\t\t\t\t\tlabelTextColors.push(opts.callbacks.labelTextColor.call(me, tooltipItem, me._chart));\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t\t// Build the Text Lines\r\n\t\t\t\tmodel.title = me.getTitle(tooltipItems, data);\r\n\t\t\t\tmodel.beforeBody = me.getBeforeBody(tooltipItems, data);\r\n\t\t\t\tmodel.body = me.getBody(tooltipItems, data);\r\n\t\t\t\tmodel.afterBody = me.getAfterBody(tooltipItems, data);\r\n\t\t\t\tmodel.footer = me.getFooter(tooltipItems, data);\r\n\r\n\t\t\t\t// Initial positioning and colors\r\n\t\t\t\tmodel.x = Math.round(tooltipPosition.x);\r\n\t\t\t\tmodel.y = Math.round(tooltipPosition.y);\r\n\t\t\t\tmodel.caretPadding = opts.caretPadding;\r\n\t\t\t\tmodel.labelColors = labelColors;\r\n\t\t\t\tmodel.labelTextColors = labelTextColors;\r\n\r\n\t\t\t\t// data points\r\n\t\t\t\tmodel.dataPoints = tooltipItems;\r\n\r\n\t\t\t\t// We need to determine alignment of the tooltip\r\n\t\t\t\ttooltipSize = getTooltipSize(this, model);\r\n\t\t\t\talignment = determineAlignment(this, tooltipSize);\r\n\t\t\t\t// Final Size and Position\r\n\t\t\t\tbackgroundPoint = getBackgroundPoint(model, tooltipSize, alignment, me._chart);\r\n\t\t\t} else {\r\n\t\t\t\tmodel.opacity = 0;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.xAlign = alignment.xAlign;\r\n\t\t\tmodel.yAlign = alignment.yAlign;\r\n\t\t\tmodel.x = backgroundPoint.x;\r\n\t\t\tmodel.y = backgroundPoint.y;\r\n\t\t\tmodel.width = tooltipSize.width;\r\n\t\t\tmodel.height = tooltipSize.height;\r\n\r\n\t\t\t// Point where the caret on the tooltip points to\r\n\t\t\tmodel.caretX = tooltipPosition.x;\r\n\t\t\tmodel.caretY = tooltipPosition.y;\r\n\r\n\t\t\tme._model = model;\r\n\r\n\t\t\tif (changed && opts.custom) {\r\n\t\t\t\topts.custom.call(me, model);\r\n\t\t\t}\r\n\r\n\t\t\treturn me;\r\n\t\t},\r\n\t\tdrawCaret: function(tooltipPoint, size) {\r\n\t\t\tvar ctx = this._chart.ctx;\r\n\t\t\tvar vm = this._view;\r\n\t\t\tvar caretPosition = this.getCaretPosition(tooltipPoint, size, vm);\r\n\r\n\t\t\tctx.lineTo(caretPosition.x1, caretPosition.y1);\r\n\t\t\tctx.lineTo(caretPosition.x2, caretPosition.y2);\r\n\t\t\tctx.lineTo(caretPosition.x3, caretPosition.y3);\r\n\t\t},\r\n\t\tgetCaretPosition: function(tooltipPoint, size, vm) {\r\n\t\t\tvar x1, x2, x3, y1, y2, y3;\r\n\t\t\tvar caretSize = vm.caretSize;\r\n\t\t\tvar cornerRadius = vm.cornerRadius;\r\n\t\t\tvar xAlign = vm.xAlign;\r\n\t\t\tvar yAlign = vm.yAlign;\r\n\t\t\tvar ptX = tooltipPoint.x;\r\n\t\t\tvar ptY = tooltipPoint.y;\r\n\t\t\tvar width = size.width;\r\n\t\t\tvar height = size.height;\r\n\r\n\t\t\tif (yAlign === 'center') {\r\n\t\t\t\ty2 = ptY + (height / 2);\r\n\r\n\t\t\t\tif (xAlign === 'left') {\r\n\t\t\t\t\tx1 = ptX;\r\n\t\t\t\t\tx2 = x1 - caretSize;\r\n\t\t\t\t\tx3 = x1;\r\n\r\n\t\t\t\t\ty1 = y2 + caretSize;\r\n\t\t\t\t\ty3 = y2 - caretSize;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tx1 = ptX + width;\r\n\t\t\t\t\tx2 = x1 + caretSize;\r\n\t\t\t\t\tx3 = x1;\r\n\r\n\t\t\t\t\ty1 = y2 - caretSize;\r\n\t\t\t\t\ty3 = y2 + caretSize;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (xAlign === 'left') {\r\n\t\t\t\t\tx2 = ptX + cornerRadius + (caretSize);\r\n\t\t\t\t\tx1 = x2 - caretSize;\r\n\t\t\t\t\tx3 = x2 + caretSize;\r\n\t\t\t\t} else if (xAlign === 'right') {\r\n\t\t\t\t\tx2 = ptX + width - cornerRadius - caretSize;\r\n\t\t\t\t\tx1 = x2 - caretSize;\r\n\t\t\t\t\tx3 = x2 + caretSize;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tx2 = vm.caretX;\r\n\t\t\t\t\tx1 = x2 - caretSize;\r\n\t\t\t\t\tx3 = x2 + caretSize;\r\n\t\t\t\t}\r\n\t\t\t\tif (yAlign === 'top') {\r\n\t\t\t\t\ty1 = ptY;\r\n\t\t\t\t\ty2 = y1 - caretSize;\r\n\t\t\t\t\ty3 = y1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\ty1 = ptY + height;\r\n\t\t\t\t\ty2 = y1 + caretSize;\r\n\t\t\t\t\ty3 = y1;\r\n\t\t\t\t\t// invert drawing order\r\n\t\t\t\t\tvar tmp = x3;\r\n\t\t\t\t\tx3 = x1;\r\n\t\t\t\t\tx1 = tmp;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {x1: x1, x2: x2, x3: x3, y1: y1, y2: y2, y3: y3};\r\n\t\t},\r\n\t\tdrawTitle: function(pt, vm, ctx, opacity) {\r\n\t\t\tvar title = vm.title;\r\n\r\n\t\t\tif (title.length) {\r\n\t\t\t\tctx.textAlign = vm._titleAlign;\r\n\t\t\t\tctx.textBaseline = 'top';\r\n\r\n\t\t\t\tvar titleFontSize = vm.titleFontSize;\r\n\t\t\t\tvar titleSpacing = vm.titleSpacing;\r\n\r\n\t\t\t\tctx.fillStyle = mergeOpacity(vm.titleFontColor, opacity);\r\n\t\t\t\tctx.font = helpers.fontString(titleFontSize, vm._titleFontStyle, vm._titleFontFamily);\r\n\r\n\t\t\t\tvar i, len;\r\n\t\t\t\tfor (i = 0, len = title.length; i < len; ++i) {\r\n\t\t\t\t\tctx.fillText(title[i], pt.x, pt.y);\r\n\t\t\t\t\tpt.y += titleFontSize + titleSpacing; // Line Height and spacing\r\n\r\n\t\t\t\t\tif (i + 1 === title.length) {\r\n\t\t\t\t\t\tpt.y += vm.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tdrawBody: function(pt, vm, ctx, opacity) {\r\n\t\t\tvar bodyFontSize = vm.bodyFontSize;\r\n\t\t\tvar bodySpacing = vm.bodySpacing;\r\n\t\t\tvar body = vm.body;\r\n\r\n\t\t\tctx.textAlign = vm._bodyAlign;\r\n\t\t\tctx.textBaseline = 'top';\r\n\t\t\tctx.font = helpers.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily);\r\n\r\n\t\t\t// Before Body\r\n\t\t\tvar xLinePadding = 0;\r\n\t\t\tvar fillLineOfText = function(line) {\r\n\t\t\t\tctx.fillText(line, pt.x + xLinePadding, pt.y);\r\n\t\t\t\tpt.y += bodyFontSize + bodySpacing;\r\n\t\t\t};\r\n\r\n\t\t\t// Before body lines\r\n\t\t\tctx.fillStyle = mergeOpacity(vm.bodyFontColor, opacity);\r\n\t\t\thelpers.each(vm.beforeBody, fillLineOfText);\r\n\r\n\t\t\tvar drawColorBoxes = vm.displayColors;\r\n\t\t\txLinePadding = drawColorBoxes ? (bodyFontSize + 2) : 0;\r\n\r\n\t\t\t// Draw body lines now\r\n\t\t\thelpers.each(body, function(bodyItem, i) {\r\n\t\t\t\tvar textColor = mergeOpacity(vm.labelTextColors[i], opacity);\r\n\t\t\t\tctx.fillStyle = textColor;\r\n\t\t\t\thelpers.each(bodyItem.before, fillLineOfText);\r\n\r\n\t\t\t\thelpers.each(bodyItem.lines, function(line) {\r\n\t\t\t\t\t// Draw Legend-like boxes if needed\r\n\t\t\t\t\tif (drawColorBoxes) {\r\n\t\t\t\t\t\t// Fill a white rect so that colours merge nicely if the opacity is < 1\r\n\t\t\t\t\t\tctx.fillStyle = mergeOpacity(vm.legendColorBackground, opacity);\r\n\t\t\t\t\t\tctx.fillRect(pt.x, pt.y, bodyFontSize, bodyFontSize);\r\n\r\n\t\t\t\t\t\t// Border\r\n\t\t\t\t\t\tctx.lineWidth = 1;\r\n\t\t\t\t\t\tctx.strokeStyle = mergeOpacity(vm.labelColors[i].borderColor, opacity);\r\n\t\t\t\t\t\tctx.strokeRect(pt.x, pt.y, bodyFontSize, bodyFontSize);\r\n\r\n\t\t\t\t\t\t// Inner square\r\n\t\t\t\t\t\tctx.fillStyle = mergeOpacity(vm.labelColors[i].backgroundColor, opacity);\r\n\t\t\t\t\t\tctx.fillRect(pt.x + 1, pt.y + 1, bodyFontSize - 2, bodyFontSize - 2);\r\n\t\t\t\t\t\tctx.fillStyle = textColor;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfillLineOfText(line);\r\n\t\t\t\t});\r\n\r\n\t\t\t\thelpers.each(bodyItem.after, fillLineOfText);\r\n\t\t\t});\r\n\r\n\t\t\t// Reset back to 0 for after body\r\n\t\t\txLinePadding = 0;\r\n\r\n\t\t\t// After body lines\r\n\t\t\thelpers.each(vm.afterBody, fillLineOfText);\r\n\t\t\tpt.y -= bodySpacing; // Remove last body spacing\r\n\t\t},\r\n\t\tdrawFooter: function(pt, vm, ctx, opacity) {\r\n\t\t\tvar footer = vm.footer;\r\n\r\n\t\t\tif (footer.length) {\r\n\t\t\t\tpt.y += vm.footerMarginTop;\r\n\r\n\t\t\t\tctx.textAlign = vm._footerAlign;\r\n\t\t\t\tctx.textBaseline = 'top';\r\n\r\n\t\t\t\tctx.fillStyle = mergeOpacity(vm.footerFontColor, opacity);\r\n\t\t\t\tctx.font = helpers.fontString(vm.footerFontSize, vm._footerFontStyle, vm._footerFontFamily);\r\n\r\n\t\t\t\thelpers.each(footer, function(line) {\r\n\t\t\t\t\tctx.fillText(line, pt.x, pt.y);\r\n\t\t\t\t\tpt.y += vm.footerFontSize + vm.footerSpacing;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\tdrawBackground: function(pt, vm, ctx, tooltipSize, opacity) {\r\n\t\t\tctx.fillStyle = mergeOpacity(vm.backgroundColor, opacity);\r\n\t\t\tctx.strokeStyle = mergeOpacity(vm.borderColor, opacity);\r\n\t\t\tctx.lineWidth = vm.borderWidth;\r\n\t\t\tvar xAlign = vm.xAlign;\r\n\t\t\tvar yAlign = vm.yAlign;\r\n\t\t\tvar x = pt.x;\r\n\t\t\tvar y = pt.y;\r\n\t\t\tvar width = tooltipSize.width;\r\n\t\t\tvar height = tooltipSize.height;\r\n\t\t\tvar radius = vm.cornerRadius;\r\n\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.moveTo(x + radius, y);\r\n\t\t\tif (yAlign === 'top') {\r\n\t\t\t\tthis.drawCaret(pt, tooltipSize);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(x + width - radius, y);\r\n\t\t\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n\t\t\tif (yAlign === 'center' && xAlign === 'right') {\r\n\t\t\t\tthis.drawCaret(pt, tooltipSize);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(x + width, y + height - radius);\r\n\t\t\tctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\r\n\t\t\tif (yAlign === 'bottom') {\r\n\t\t\t\tthis.drawCaret(pt, tooltipSize);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(x + radius, y + height);\r\n\t\t\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n\t\t\tif (yAlign === 'center' && xAlign === 'left') {\r\n\t\t\t\tthis.drawCaret(pt, tooltipSize);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(x, y + radius);\r\n\t\t\tctx.quadraticCurveTo(x, y, x + radius, y);\r\n\t\t\tctx.closePath();\r\n\r\n\t\t\tctx.fill();\r\n\r\n\t\t\tif (vm.borderWidth > 0) {\r\n\t\t\t\tctx.stroke();\r\n\t\t\t}\r\n\t\t},\r\n\t\tdraw: function() {\r\n\t\t\tvar ctx = this._chart.ctx;\r\n\t\t\tvar vm = this._view;\r\n\r\n\t\t\tif (vm.opacity === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar tooltipSize = {\r\n\t\t\t\twidth: vm.width,\r\n\t\t\t\theight: vm.height\r\n\t\t\t};\r\n\t\t\tvar pt = {\r\n\t\t\t\tx: vm.x,\r\n\t\t\t\ty: vm.y\r\n\t\t\t};\r\n\r\n\t\t\t// IE11/Edge does not like very small opacities, so snap to 0\r\n\t\t\tvar opacity = Math.abs(vm.opacity < 1e-3) ? 0 : vm.opacity;\r\n\r\n\t\t\t// Truthy/falsey value for empty tooltip\r\n\t\t\tvar hasTooltipContent = vm.title.length || vm.beforeBody.length || vm.body.length || vm.afterBody.length || vm.footer.length;\r\n\r\n\t\t\tif (this._options.enabled && hasTooltipContent) {\r\n\t\t\t\t// Draw Background\r\n\t\t\t\tthis.drawBackground(pt, vm, ctx, tooltipSize, opacity);\r\n\r\n\t\t\t\t// Draw Title, Body, and Footer\r\n\t\t\t\tpt.x += vm.xPadding;\r\n\t\t\t\tpt.y += vm.yPadding;\r\n\r\n\t\t\t\t// Titles\r\n\t\t\t\tthis.drawTitle(pt, vm, ctx, opacity);\r\n\r\n\t\t\t\t// Body\r\n\t\t\t\tthis.drawBody(pt, vm, ctx, opacity);\r\n\r\n\t\t\t\t// Footer\r\n\t\t\t\tthis.drawFooter(pt, vm, ctx, opacity);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Handle an event\r\n\t\t * @private\r\n\t\t * @param {IEvent} event - The event to handle\r\n\t\t * @returns {Boolean} true if the tooltip changed\r\n\t\t */\r\n\t\thandleEvent: function(e) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = me._options;\r\n\t\t\tvar changed = false;\r\n\r\n\t\t\tme._lastActive = me._lastActive || [];\r\n\r\n\t\t\t// Find Active Elements for tooltips\r\n\t\t\tif (e.type === 'mouseout') {\r\n\t\t\t\tme._active = [];\r\n\t\t\t} else {\r\n\t\t\t\tme._active = me._chart.getElementsAtEventForMode(e, options.mode, options);\r\n\t\t\t}\r\n\r\n\t\t\t// Remember Last Actives\r\n\t\t\tchanged = !helpers.arrayEquals(me._active, me._lastActive);\r\n\r\n\t\t\t// Only handle target event on tooltip change\r\n\t\t\tif (changed) {\r\n\t\t\t\tme._lastActive = me._active;\r\n\r\n\t\t\t\tif (options.enabled || options.custom) {\r\n\t\t\t\t\tme._eventPosition = {\r\n\t\t\t\t\t\tx: e.x,\r\n\t\t\t\t\t\ty: e.y\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tme.update(true);\r\n\t\t\t\t\tme.pivot();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn changed;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t * @namespace Chart.Tooltip.positioners\r\n\t */\r\n\tChart.Tooltip.positioners = {\r\n\t\t/**\r\n\t\t * Average mode places the tooltip at the average position of the elements shown\r\n\t\t * @function Chart.Tooltip.positioners.average\r\n\t\t * @param elements {ChartElement[]} the elements being displayed in the tooltip\r\n\t\t * @returns {Point} tooltip position\r\n\t\t */\r\n\t\taverage: function(elements) {\r\n\t\t\tif (!elements.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tvar i, len;\r\n\t\t\tvar x = 0;\r\n\t\t\tvar y = 0;\r\n\t\t\tvar count = 0;\r\n\r\n\t\t\tfor (i = 0, len = elements.length; i < len; ++i) {\r\n\t\t\t\tvar el = elements[i];\r\n\t\t\t\tif (el && el.hasValue()) {\r\n\t\t\t\t\tvar pos = el.tooltipPosition();\r\n\t\t\t\t\tx += pos.x;\r\n\t\t\t\t\ty += pos.y;\r\n\t\t\t\t\t++count;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tx: Math.round(x / count),\r\n\t\t\t\ty: Math.round(y / count)\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Gets the tooltip position nearest of the item nearest to the event position\r\n\t\t * @function Chart.Tooltip.positioners.nearest\r\n\t\t * @param elements {Chart.Element[]} the tooltip elements\r\n\t\t * @param eventPosition {Point} the position of the event in canvas coordinates\r\n\t\t * @returns {Point} the tooltip position\r\n\t\t */\r\n\t\tnearest: function(elements, eventPosition) {\r\n\t\t\tvar x = eventPosition.x;\r\n\t\t\tvar y = eventPosition.y;\r\n\t\t\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\t\t\tvar i, len, nearestElement;\r\n\r\n\t\t\tfor (i = 0, len = elements.length; i < len; ++i) {\r\n\t\t\t\tvar el = elements[i];\r\n\t\t\t\tif (el && el.hasValue()) {\r\n\t\t\t\t\tvar center = el.getCenterPoint();\r\n\t\t\t\t\tvar d = helpers.distanceBetweenPoints(eventPosition, center);\r\n\r\n\t\t\t\t\tif (d < minDistance) {\r\n\t\t\t\t\t\tminDistance = d;\r\n\t\t\t\t\t\tnearestElement = el;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (nearestElement) {\r\n\t\t\t\tvar tp = nearestElement.tooltipPosition();\r\n\t\t\t\tx = tp.x;\r\n\t\t\t\ty = tp.y;\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tx: x,\r\n\t\t\t\ty: y\r\n\t\t\t};\r\n\t\t}\r\n\t};\r\n};\r\n\r\n},{\"25\":25,\"26\":26,\"45\":45}],36:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar Element = require(26);\r\nvar helpers = require(45);\r\n\r\ndefaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = Element.extend({\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar\tangle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += 2.0 * Math.PI;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= 2.0 * Math.PI;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += 2.0 * Math.PI;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar sA = vm.startAngle;\r\n\t\tvar eA = vm.endAngle;\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA);\r\n\t\tctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);\r\n\r\n\t\tctx.closePath();\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\r\n\t\tctx.fill();\r\n\t\tctx.lineJoin = 'bevel';\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tctx.stroke();\r\n\t\t}\r\n\t}\r\n});\r\n\r\n},{\"25\":25,\"26\":26,\"45\":45}],37:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar Element = require(26);\r\nvar helpers = require(45);\r\n\r\nvar globalDefaults = defaults.global;\r\n\r\ndefaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: globalDefaults.defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: globalDefaults.defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nmodule.exports = Element.extend({\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar index, current, previous, currentVM;\r\n\r\n\t\t// If we are looping, adding the first point again\r\n\t\tif (me._loop && points.length) {\r\n\t\t\tpoints.push(points[0]);\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = vm.borderDashOffset || globalOptionLineElements.borderDashOffset;\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = vm.borderWidth || globalOptionLineElements.borderWidth;\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\t\tlastDrawnIndex = -1;\r\n\r\n\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\tcurrent = points[index];\r\n\t\t\tprevious = helpers.previousItem(points, index);\r\n\t\t\tcurrentVM = current._view;\r\n\r\n\t\t\t// First point moves to it's starting position no matter what\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tif (!currentVM.skip) {\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tprevious = lastDrawnIndex === -1 ? previous : points[lastDrawnIndex];\r\n\r\n\t\t\t\tif (!currentVM.skip) {\r\n\t\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Line to next point\r\n\t\t\t\t\t\thelpers.canvas.lineTo(ctx, previous._view, current._view);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\r\n\r\n},{\"25\":25,\"26\":26,\"45\":45}],38:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar Element = require(26);\r\nvar helpers = require(45);\r\n\r\nvar defaultColor = defaults.global.defaultColor;\r\n\r\ndefaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nmodule.exports = Element.extend({\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar model = this._model;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar color = helpers.color;\r\n\t\tvar errMargin = 1.01; // 1.01 is margin for Accumulated error. (Especially Edge, IE.)\r\n\t\tvar ratio = 0;\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\tctx.lineWidth = helpers.valueOrDefault(vm.borderWidth, defaults.global.elements.point.borderWidth);\r\n\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\r\n\t\t// Cliping for Points.\r\n\t\t// going out from inner charArea?\r\n\t\tif ((chartArea !== undefined) && ((model.x < chartArea.left) || (chartArea.right * errMargin < model.x) || (model.y < chartArea.top) || (chartArea.bottom * errMargin < model.y))) {\r\n\t\t\t// Point fade out\r\n\t\t\tif (model.x < chartArea.left) {\r\n\t\t\t\tratio = (x - model.x) / (chartArea.left - model.x);\r\n\t\t\t} else if (chartArea.right * errMargin < model.x) {\r\n\t\t\t\tratio = (model.x - x) / (model.x - chartArea.right);\r\n\t\t\t} else if (model.y < chartArea.top) {\r\n\t\t\t\tratio = (y - model.y) / (chartArea.top - model.y);\r\n\t\t\t} else if (chartArea.bottom * errMargin < model.y) {\r\n\t\t\t\tratio = (model.y - y) / (model.y - chartArea.bottom);\r\n\t\t\t}\r\n\t\t\tratio = Math.round(ratio * 100) / 100;\r\n\t\t\tctx.strokeStyle = color(ctx.strokeStyle).alpha(ratio).rgbString();\r\n\t\t\tctx.fillStyle = color(ctx.fillStyle).alpha(ratio).rgbString();\r\n\t\t}\r\n\r\n\t\thelpers.canvas.drawPoint(ctx, pointStyle, radius, x, y);\r\n\t}\r\n});\r\n\r\n},{\"25\":25,\"26\":26,\"45\":45}],39:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar Element = require(26);\r\n\r\ndefaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaults.global.defaultColor,\r\n\t\t\tborderColor: defaults.global.defaultColor,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(bar) {\r\n\treturn bar._view.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(bar) {\r\n\tvar vm = bar._view;\r\n\tvar x1, x2, y1, y2;\r\n\r\n\tif (isVertical(bar)) {\r\n\t\t// vertical\r\n\t\tvar halfWidth = vm.width / 2;\r\n\t\tx1 = vm.x - halfWidth;\r\n\t\tx2 = vm.x + halfWidth;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\t// horizontal bar\r\n\t\tvar halfHeight = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - halfHeight;\r\n\t\ty2 = vm.y + halfHeight;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nmodule.exports = Element.extend({\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar left, right, top, bottom, signX, signY, borderSkipped;\r\n\t\tvar borderWidth = vm.borderWidth;\r\n\r\n\t\tif (!vm.horizontal) {\r\n\t\t\t// bar\r\n\t\t\tleft = vm.x - vm.width / 2;\r\n\t\t\tright = vm.x + vm.width / 2;\r\n\t\t\ttop = vm.y;\r\n\t\t\tbottom = vm.base;\r\n\t\t\tsignX = 1;\r\n\t\t\tsignY = bottom > top ? 1 : -1;\r\n\t\t\tborderSkipped = vm.borderSkipped || 'bottom';\r\n\t\t} else {\r\n\t\t\t// horizontal bar\r\n\t\t\tleft = vm.base;\r\n\t\t\tright = vm.x;\r\n\t\t\ttop = vm.y - vm.height / 2;\r\n\t\t\tbottom = vm.y + vm.height / 2;\r\n\t\t\tsignX = right > left ? 1 : -1;\r\n\t\t\tsignY = 1;\r\n\t\t\tborderSkipped = vm.borderSkipped || 'left';\r\n\t\t}\r\n\r\n\t\t// Canvas doesn't allow us to stroke inside the width so we can\r\n\t\t// adjust the sizes to fit if we're setting a stroke on the line\r\n\t\tif (borderWidth) {\r\n\t\t\t// borderWidth shold be less than bar width and bar height.\r\n\t\t\tvar barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\r\n\t\t\tborderWidth = borderWidth > barSize ? barSize : borderWidth;\r\n\t\t\tvar halfStroke = borderWidth / 2;\r\n\t\t\t// Adjust borderWidth when bar top position is near vm.base(zero).\r\n\t\t\tvar borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\r\n\t\t\tvar borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\r\n\t\t\tvar borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\r\n\t\t\tvar borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\r\n\t\t\t// not become a vertical line?\r\n\t\t\tif (borderLeft !== borderRight) {\r\n\t\t\t\ttop = borderTop;\r\n\t\t\t\tbottom = borderBottom;\r\n\t\t\t}\r\n\t\t\t// not become a horizontal line?\r\n\t\t\tif (borderTop !== borderBottom) {\r\n\t\t\t\tleft = borderLeft;\r\n\t\t\t\tright = borderRight;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\t\tctx.lineWidth = borderWidth;\r\n\r\n\t\t// Corner points, from bottom-left to bottom-right clockwise\r\n\t\t// | 1 2 |\r\n\t\t// | 0 3 |\r\n\t\tvar corners = [\r\n\t\t\t[left, bottom],\r\n\t\t\t[left, top],\r\n\t\t\t[right, top],\r\n\t\t\t[right, bottom]\r\n\t\t];\r\n\r\n\t\t// Find first (starting) corner with fallback to 'bottom'\r\n\t\tvar borders = ['bottom', 'left', 'top', 'right'];\r\n\t\tvar startCorner = borders.indexOf(borderSkipped, 0);\r\n\t\tif (startCorner === -1) {\r\n\t\t\tstartCorner = 0;\r\n\t\t}\r\n\r\n\t\tfunction cornerAt(index) {\r\n\t\t\treturn corners[(startCorner + index) % 4];\r\n\t\t}\r\n\r\n\t\t// Draw rectangle from 'startCorner'\r\n\t\tvar corner = cornerAt(0);\r\n\t\tctx.moveTo(corner[0], corner[1]);\r\n\r\n\t\tfor (var i = 1; i < 4; i++) {\r\n\t\t\tcorner = cornerAt(i);\r\n\t\t\tctx.lineTo(corner[0], corner[1]);\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tif (borderWidth) {\r\n\t\t\tctx.stroke();\r\n\t\t}\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar inRange = false;\r\n\r\n\t\tif (this._view) {\r\n\t\t\tvar bounds = getBarBounds(this);\r\n\t\t\tinRange = mouseX >= bounds.left && mouseX <= bounds.right && mouseY >= bounds.top && mouseY <= bounds.bottom;\r\n\t\t}\r\n\r\n\t\treturn inRange;\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar inRange = false;\r\n\t\tvar bounds = getBarBounds(me);\r\n\r\n\t\tif (isVertical(me)) {\r\n\t\t\tinRange = mouseX >= bounds.left && mouseX <= bounds.right;\r\n\t\t} else {\r\n\t\t\tinRange = mouseY >= bounds.top && mouseY <= bounds.bottom;\r\n\t\t}\r\n\r\n\t\treturn inRange;\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\tvar bounds = getBarBounds(this);\r\n\t\treturn mouseX >= bounds.left && mouseX <= bounds.right;\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\tvar bounds = getBarBounds(this);\r\n\t\treturn mouseY >= bounds.top && mouseY <= bounds.bottom;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(this)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.width * Math.abs(vm.y - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\r\n\r\n},{\"25\":25,\"26\":26}],40:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = {};\r\nmodule.exports.Arc = require(36);\r\nmodule.exports.Line = require(37);\r\nmodule.exports.Point = require(38);\r\nmodule.exports.Rectangle = require(39);\r\n\r\n},{\"36\":36,\"37\":37,\"38\":38,\"39\":39}],41:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(42);\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports = module.exports = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {Number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {Number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {Number} width - The rectangle's width.\r\n\t * @param {Number} height - The rectangle's height.\r\n\t * @param {Number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar rx = Math.min(radius, width / 2);\r\n\t\t\tvar ry = Math.min(radius, height / 2);\r\n\r\n\t\t\tctx.moveTo(x + rx, y);\r\n\t\t\tctx.lineTo(x + width - rx, y);\r\n\t\t\tctx.quadraticCurveTo(x + width, y, x + width, y + ry);\r\n\t\t\tctx.lineTo(x + width, y + height - ry);\r\n\t\t\tctx.quadraticCurveTo(x + width, y + height, x + width - rx, y + height);\r\n\t\t\tctx.lineTo(x + rx, y + height);\r\n\t\t\tctx.quadraticCurveTo(x, y + height, x, y + height - ry);\r\n\t\t\tctx.lineTo(x, y + ry);\r\n\t\t\tctx.quadraticCurveTo(x, y, x + rx, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y) {\r\n\t\tvar type, edgeLength, xOffset, yOffset, height, size;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.drawImage(style, x - style.width / 2, y - style.height / 2, style.width, style.height);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(x, y, radius, 0, Math.PI * 2);\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.fill();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.beginPath();\r\n\t\t\tedgeLength = 3 * radius / Math.sqrt(3);\r\n\t\t\theight = edgeLength * Math.sqrt(3) / 2;\r\n\t\t\tctx.moveTo(x - edgeLength / 2, y + height / 3);\r\n\t\t\tctx.lineTo(x + edgeLength / 2, y + height / 3);\r\n\t\t\tctx.lineTo(x, y - 2 * height / 3);\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.fill();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tsize = 1 / Math.SQRT2 * radius;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.fillRect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\tctx.strokeRect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\tvar offset = radius / Math.SQRT2;\r\n\t\t\tvar leftX = x - offset;\r\n\t\t\tvar topY = y - offset;\r\n\t\t\tvar sideSize = Math.SQRT2 * radius;\r\n\t\t\tctx.beginPath();\r\n\t\t\tthis.roundedRect(ctx, leftX, topY, sideSize, sideSize, radius / 2);\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.fill();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRot':\r\n\t\t\tsize = 1 / Math.SQRT2 * radius;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.moveTo(x - size, y);\r\n\t\t\tctx.lineTo(x, y + size);\r\n\t\t\tctx.lineTo(x + size, y);\r\n\t\t\tctx.lineTo(x, y - size);\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.fill();\r\n\t\t\tbreak;\r\n\t\tcase 'cross':\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.moveTo(x, y + radius);\r\n\t\t\tctx.lineTo(x, y - radius);\r\n\t\t\tctx.moveTo(x - radius, y);\r\n\t\t\tctx.lineTo(x + radius, y);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\tctx.beginPath();\r\n\t\t\txOffset = Math.cos(Math.PI / 4) * radius;\r\n\t\t\tyOffset = Math.sin(Math.PI / 4) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x - xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y - yOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.moveTo(x, y + radius);\r\n\t\t\tctx.lineTo(x, y - radius);\r\n\t\t\tctx.moveTo(x - radius, y);\r\n\t\t\tctx.lineTo(x + radius, y);\r\n\t\t\txOffset = Math.cos(Math.PI / 4) * radius;\r\n\t\t\tyOffset = Math.sin(Math.PI / 4) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x - xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y - yOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.moveTo(x - radius, y);\r\n\t\t\tctx.lineTo(x + radius, y);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + radius, y);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tif (target.steppedLine) {\r\n\t\t\tif ((target.steppedLine === 'after' && !flip) || (target.steppedLine !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.clear = exports.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports.roundedRect.apply(exports, arguments);\r\n\tctx.closePath();\r\n};\r\n\r\n},{\"42\":42}],42:[function(require,module,exports){\r\n'use strict';\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {Number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {Boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {Boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: Array.isArray ? Array.isArray : function(value) {\r\n\t\treturn Object.prototype.toString.call(value) === '[object Array]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {Boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {Number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {Function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {Object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {Object|Array} loopable - The object or array to be iterated.\r\n\t * @param {Function} fn - The function to call for each item.\r\n\t * @param {Object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {Boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see http://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {Boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = {};\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): this method is also used by configMerge and scaleMerge as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {Object} target - The target object in which all sources are merged into.\r\n\t * @param {Object|Array(Object)} source - Object(s) to merge into `target`.\r\n\t * @param {Object} [options] - Merging options:\r\n\t * @param {Function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {Object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {Object} target - The target object in which all sources are merged into.\r\n\t * @param {Object|Array(Object)} source - Object(s) to merge into `target`.\r\n\t * @returns {Object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {Object} target - The target object in which all objects are merged into.\r\n\t * @param {Object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {Object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {Object} The `target` object.\r\n\t */\r\n\textend: function(target) {\r\n\t\tvar setFn = function(value, key) {\r\n\t\t\ttarget[key] = value;\r\n\t\t};\r\n\t\tfor (var i = 1, ilen = arguments.length; i < ilen; ++i) {\r\n\t\t\thelpers.each(arguments[i], setFn);\r\n\t\t}\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t}\r\n};\r\n\r\nmodule.exports = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\r\n\r\n},{}],43:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(42);\r\n\r\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nmodule.exports = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.easingEffects = effects;\r\n\r\n},{\"42\":42}],44:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(42);\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nmodule.exports = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {Number|String} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {Number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {Number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {Number|Object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {Object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array[]} inputs - An array of values, falling back to the last value.\r\n\t * @param {Object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {Number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index) {\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"42\":42}],45:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = require(42);\r\nmodule.exports.easing = require(43);\r\nmodule.exports.canvas = require(41);\r\nmodule.exports.options = require(44);\r\n\r\n},{\"41\":41,\"42\":42,\"43\":43,\"44\":44}],46:[function(require,module,exports){\r\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nmodule.exports = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\r\n\r\n},{}],47:[function(require,module,exports){\r\n/**\r\n * Chart.Platform implementation for targeting a web browser\r\n */\r\n\r\n'use strict';\r\n\r\nvar helpers = require(45);\r\n\r\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {Number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addEventListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeEventListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar resizer = document.createElement('div');\r\n\tvar cls = CSS_PREFIX + 'size-monitor';\r\n\tvar maxSize = 1000000;\r\n\tvar style =\r\n\t\t'position:absolute;' +\r\n\t\t'left:0;' +\r\n\t\t'top:0;' +\r\n\t\t'right:0;' +\r\n\t\t'bottom:0;' +\r\n\t\t'overflow:hidden;' +\r\n\t\t'pointer-events:none;' +\r\n\t\t'visibility:hidden;' +\r\n\t\t'z-index:-1;';\r\n\r\n\tresizer.style.cssText = style;\r\n\tresizer.className = cls;\r\n\tresizer.innerHTML =\r\n\t\t'
' +\r\n\t\t\t'
' +\r\n\t\t\t'
' +\r\n\t\t'
' +\r\n\t\t'
' +\r\n\t\t\t'
' +\r\n\t\t\t'
' +\r\n\t\t'
';\r\n\r\n\tvar expand = resizer.childNodes[0];\r\n\tvar shrink = resizer.childNodes[1];\r\n\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddEventListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddEventListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddEventListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveEventListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\treturn listener(createEvent('resize', chart));\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\nfunction injectCSS(platform, css) {\r\n\t// http://stackoverflow.com/q/3922139\r\n\tvar style = platform._style || document.createElement('style');\r\n\tif (!platform._style) {\r\n\t\tplatform._style = style;\r\n\t\tcss = '/* Chart.js */\\n' + css;\r\n\t\tstyle.setAttribute('type', 'text/css');\r\n\t\tdocument.getElementsByTagName('head')[0].appendChild(style);\r\n\t}\r\n\r\n\tstyle.appendChild(document.createTextNode(css));\r\n}\r\n\r\nmodule.exports = {\r\n\t/**\r\n\t * This property holds whether this platform is enabled for the current environment.\r\n\t * Currently used by platform.js to select the proper implementation.\r\n\t * @private\r\n\t */\r\n\t_enabled: typeof window !== 'undefined' && typeof document !== 'undefined',\r\n\r\n\tinitialize: function() {\r\n\t\tvar keyframes = 'from{opacity:0.99}to{opacity:1}';\r\n\r\n\t\tinjectCSS(this,\r\n\t\t\t// DOM rendering detection\r\n\t\t\t// https://davidwalsh.name/detect-node-insertion\r\n\t\t\t'@-webkit-keyframes ' + CSS_RENDER_ANIMATION + '{' + keyframes + '}' +\r\n\t\t\t'@keyframes ' + CSS_RENDER_ANIMATION + '{' + keyframes + '}' +\r\n\t\t\t'.' + CSS_RENDER_MONITOR + '{' +\r\n\t\t\t\t'-webkit-animation:' + CSS_RENDER_ANIMATION + ' 0.001s;' +\r\n\t\t\t\t'animation:' + CSS_RENDER_ANIMATION + ' 0.001s;' +\r\n\t\t\t'}'\r\n\t\t);\r\n\t},\r\n\r\n\tacquireContext: function(item, config) {\r\n\t\tif (typeof item === 'string') {\r\n\t\t\titem = document.getElementById(item);\r\n\t\t} else if (item.length) {\r\n\t\t\t// Support for array based queries (such as jQuery)\r\n\t\t\titem = item[0];\r\n\t\t}\r\n\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\t// To prevent canvas fingerprinting, some add-ons undefine the getContext\r\n\t\t// method, for example: https://github.com/kkapsner/CanvasBlocker\r\n\t\t// https://github.com/chartjs/Chart.js/issues/2807\r\n\t\tvar context = item && item.getContext && item.getContext('2d');\r\n\r\n\t\t// `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the item is\r\n\t\t// inside an iframe or when running in a protected environment. We could guess the\r\n\t\t// types from their toString() value but let's keep things flexible and assume it's\r\n\t\t// a sufficient condition if the item has a context2D which has item as `canvas`.\r\n\t\t// https://github.com/chartjs/Chart.js/issues/3887\r\n\t\t// https://github.com/chartjs/Chart.js/issues/4102\r\n\t\t// https://github.com/chartjs/Chart.js/issues/4152\r\n\t\tif (context && context.canvas === item) {\r\n\t\t\tinitCanvas(item, config);\r\n\t\t\treturn context;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t},\r\n\r\n\treleaseContext: function(context) {\r\n\t\tvar canvas = context.canvas;\r\n\t\tif (!canvas[EXPANDO_KEY]) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar initial = canvas[EXPANDO_KEY].initial;\r\n\t\t['height', 'width'].forEach(function(prop) {\r\n\t\t\tvar value = initial[prop];\r\n\t\t\tif (helpers.isNullOrUndef(value)) {\r\n\t\t\t\tcanvas.removeAttribute(prop);\r\n\t\t\t} else {\r\n\t\t\t\tcanvas.setAttribute(prop, value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\thelpers.each(initial.style || {}, function(value, key) {\r\n\t\t\tcanvas.style[key] = value;\r\n\t\t});\r\n\r\n\t\t// The canvas render size might have been changed (and thus the state stack discarded),\r\n\t\t// we can't use save() and restore() to restore the initial state. So make sure that at\r\n\t\t// least the canvas context is reset to the default state by setting the canvas width.\r\n\t\t// https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\r\n\t\tcanvas.width = canvas.width;\r\n\r\n\t\tdelete canvas[EXPANDO_KEY];\r\n\t},\r\n\r\n\taddEventListener: function(chart, type, listener) {\r\n\t\tvar canvas = chart.canvas;\r\n\t\tif (type === 'resize') {\r\n\t\t\t// Note: the resize event is not supported on all browsers.\r\n\t\t\taddResizeListener(canvas, listener, chart);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar expando = listener[EXPANDO_KEY] || (listener[EXPANDO_KEY] = {});\r\n\t\tvar proxies = expando.proxies || (expando.proxies = {});\r\n\t\tvar proxy = proxies[chart.id + '_' + type] = function(event) {\r\n\t\t\tlistener(fromNativeEvent(event, chart));\r\n\t\t};\r\n\r\n\t\taddEventListener(canvas, type, proxy);\r\n\t},\r\n\r\n\tremoveEventListener: function(chart, type, listener) {\r\n\t\tvar canvas = chart.canvas;\r\n\t\tif (type === 'resize') {\r\n\t\t\t// Note: the resize event is not supported on all browsers.\r\n\t\t\tremoveResizeListener(canvas, listener);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar expando = listener[EXPANDO_KEY] || {};\r\n\t\tvar proxies = expando.proxies || {};\r\n\t\tvar proxy = proxies[chart.id + '_' + type];\r\n\t\tif (!proxy) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tremoveEventListener(canvas, type, proxy);\r\n\t}\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use EventTarget.addEventListener instead.\r\n * EventTarget.addEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\r\n * @function Chart.helpers.addEvent\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.addEvent = addEventListener;\r\n\r\n/**\r\n * Provided for backward compatibility, use EventTarget.removeEventListener instead.\r\n * EventTarget.removeEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener\r\n * @function Chart.helpers.removeEvent\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.removeEvent = removeEventListener;\r\n\r\n},{\"45\":45}],48:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(45);\r\nvar basic = require(46);\r\nvar dom = require(47);\r\n\r\n// @TODO Make possible to select another platform at build time.\r\nvar implementation = dom._enabled ? dom : basic;\r\n\r\n/**\r\n * @namespace Chart.platform\r\n * @see https://chartjs.gitbooks.io/proposals/content/Platform.html\r\n * @since 2.4.0\r\n */\r\nmodule.exports = helpers.extend({\r\n\t/**\r\n\t * @since 2.7.0\r\n\t */\r\n\tinitialize: function() {},\r\n\r\n\t/**\r\n\t * Called at chart construction time, returns a context2d instance implementing\r\n\t * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\r\n\t * @param {*} item - The native item from which to acquire context (platform specific)\r\n\t * @param {Object} options - The chart options\r\n\t * @returns {CanvasRenderingContext2D} context2d instance\r\n\t */\r\n\tacquireContext: function() {},\r\n\r\n\t/**\r\n\t * Called at chart destruction time, releases any resources associated to the context\r\n\t * previously returned by the acquireContext() method.\r\n\t * @param {CanvasRenderingContext2D} context - The context2d instance\r\n\t * @returns {Boolean} true if the method succeeded, else false\r\n\t */\r\n\treleaseContext: function() {},\r\n\r\n\t/**\r\n\t * Registers the specified listener on the given chart.\r\n\t * @param {Chart} chart - Chart from which to listen for event\r\n\t * @param {String} type - The ({@link IEvent}) type to listen for\r\n\t * @param {Function} listener - Receives a notification (an object that implements\r\n\t * the {@link IEvent} interface) when an event of the specified type occurs.\r\n\t */\r\n\taddEventListener: function() {},\r\n\r\n\t/**\r\n\t * Removes the specified listener previously registered with addEventListener.\r\n\t * @param {Chart} chart -Chart from which to remove the listener\r\n\t * @param {String} type - The ({@link IEvent}) type to remove\r\n\t * @param {Function} listener - The listener function to remove from the event target.\r\n\t */\r\n\tremoveEventListener: function() {}\r\n\r\n}, implementation);\r\n\r\n/**\r\n * @interface IPlatform\r\n * Allows abstracting platform dependencies away from the chart\r\n * @borrows Chart.platform.acquireContext as acquireContext\r\n * @borrows Chart.platform.releaseContext as releaseContext\r\n * @borrows Chart.platform.addEventListener as addEventListener\r\n * @borrows Chart.platform.removeEventListener as removeEventListener\r\n */\r\n\r\n/**\r\n * @interface IEvent\r\n * @prop {String} type - The event type name, possible values are:\r\n * 'contextmenu', 'mouseenter', 'mousedown', 'mousemove', 'mouseup', 'mouseout',\r\n * 'click', 'dblclick', 'keydown', 'keypress', 'keyup' and 'resize'\r\n * @prop {*} native - The original native event (null for emulated events, e.g. 'resize')\r\n * @prop {Number} x - The mouse x position, relative to the canvas (null for incompatible events)\r\n * @prop {Number} y - The mouse y position, relative to the canvas (null for incompatible events)\r\n */\r\n\r\n},{\"45\":45,\"46\":46,\"47\":47}],49:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = {};\r\nmodule.exports.filler = require(50);\r\nmodule.exports.legend = require(51);\r\nmodule.exports.title = require(52);\r\n\r\n},{\"50\":50,\"51\":51,\"52\":52}],50:[function(require,module,exports){\r\n/**\r\n * Plugin based on discussion from the following Chart.js issues:\r\n * @see https://github.com/chartjs/Chart.js/issues/2380#issuecomment-279961569\r\n * @see https://github.com/chartjs/Chart.js/issues/2440#issuecomment-256461897\r\n */\r\n\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar elements = require(40);\r\nvar helpers = require(45);\r\n\r\ndefaults._set('global', {\r\n\tplugins: {\r\n\t\tfiller: {\r\n\t\t\tpropagate: true\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar mappers = {\r\n\tdataset: function(source) {\r\n\t\tvar index = source.fill;\r\n\t\tvar chart = source.chart;\r\n\t\tvar meta = chart.getDatasetMeta(index);\r\n\t\tvar visible = meta && chart.isDatasetVisible(index);\r\n\t\tvar points = (visible && meta.dataset._children) || [];\r\n\t\tvar length = points.length || 0;\r\n\r\n\t\treturn !length ? null : function(point, i) {\r\n\t\t\treturn (i < length && points[i]._view) || null;\r\n\t\t};\r\n\t},\r\n\r\n\tboundary: function(source) {\r\n\t\tvar boundary = source.boundary;\r\n\t\tvar x = boundary ? boundary.x : null;\r\n\t\tvar y = boundary ? boundary.y : null;\r\n\r\n\t\treturn function(point) {\r\n\t\t\treturn {\r\n\t\t\t\tx: x === null ? point.x : x,\r\n\t\t\t\ty: y === null ? point.y : y,\r\n\t\t\t};\r\n\t\t};\r\n\t}\r\n};\r\n\r\n// @todo if (fill[0] === '#')\r\nfunction decodeFill(el, index, count) {\r\n\tvar model = el._model || {};\r\n\tvar fill = model.fill;\r\n\tvar target;\r\n\r\n\tif (fill === undefined) {\r\n\t\tfill = !!model.backgroundColor;\r\n\t}\r\n\r\n\tif (fill === false || fill === null) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tif (fill === true) {\r\n\t\treturn 'origin';\r\n\t}\r\n\r\n\ttarget = parseFloat(fill, 10);\r\n\tif (isFinite(target) && Math.floor(target) === target) {\r\n\t\tif (fill[0] === '-' || fill[0] === '+') {\r\n\t\t\ttarget = index + target;\r\n\t\t}\r\n\r\n\t\tif (target === index || target < 0 || target >= count) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t}\r\n\r\n\tswitch (fill) {\r\n\t// compatibility\r\n\tcase 'bottom':\r\n\t\treturn 'start';\r\n\tcase 'top':\r\n\t\treturn 'end';\r\n\tcase 'zero':\r\n\t\treturn 'origin';\r\n\t// supported boundaries\r\n\tcase 'origin':\r\n\tcase 'start':\r\n\tcase 'end':\r\n\t\treturn fill;\r\n\t// invalid fill values\r\n\tdefault:\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nfunction computeBoundary(source) {\r\n\tvar model = source.el._model || {};\r\n\tvar scale = source.el._scale || {};\r\n\tvar fill = source.fill;\r\n\tvar target = null;\r\n\tvar horizontal;\r\n\r\n\tif (isFinite(fill)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// Backward compatibility: until v3, we still need to support boundary values set on\r\n\t// the model (scaleTop, scaleBottom and scaleZero) because some external plugins and\r\n\t// controllers might still use it (e.g. the Smith chart).\r\n\r\n\tif (fill === 'start') {\r\n\t\ttarget = model.scaleBottom === undefined ? scale.bottom : model.scaleBottom;\r\n\t} else if (fill === 'end') {\r\n\t\ttarget = model.scaleTop === undefined ? scale.top : model.scaleTop;\r\n\t} else if (model.scaleZero !== undefined) {\r\n\t\ttarget = model.scaleZero;\r\n\t} else if (scale.getBasePosition) {\r\n\t\ttarget = scale.getBasePosition();\r\n\t} else if (scale.getBasePixel) {\r\n\t\ttarget = scale.getBasePixel();\r\n\t}\r\n\r\n\tif (target !== undefined && target !== null) {\r\n\t\tif (target.x !== undefined && target.y !== undefined) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\tif (typeof target === 'number' && isFinite(target)) {\r\n\t\t\thorizontal = scale.isHorizontal();\r\n\t\t\treturn {\r\n\t\t\t\tx: horizontal ? target : null,\r\n\t\t\t\ty: horizontal ? null : target\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nfunction resolveTarget(sources, index, propagate) {\r\n\tvar source = sources[index];\r\n\tvar fill = source.fill;\r\n\tvar visited = [index];\r\n\tvar target;\r\n\r\n\tif (!propagate) {\r\n\t\treturn fill;\r\n\t}\r\n\r\n\twhile (fill !== false && visited.indexOf(fill) === -1) {\r\n\t\tif (!isFinite(fill)) {\r\n\t\t\treturn fill;\r\n\t\t}\r\n\r\n\t\ttarget = sources[fill];\r\n\t\tif (!target) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (target.visible) {\r\n\t\t\treturn fill;\r\n\t\t}\r\n\r\n\t\tvisited.push(fill);\r\n\t\tfill = target.fill;\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n\r\nfunction createMapper(source) {\r\n\tvar fill = source.fill;\r\n\tvar type = 'dataset';\r\n\r\n\tif (fill === false) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tif (!isFinite(fill)) {\r\n\t\ttype = 'boundary';\r\n\t}\r\n\r\n\treturn mappers[type](source);\r\n}\r\n\r\nfunction isDrawable(point) {\r\n\treturn point && !point.skip;\r\n}\r\n\r\nfunction drawArea(ctx, curve0, curve1, len0, len1) {\r\n\tvar i;\r\n\r\n\tif (!len0 || !len1) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// building first area curve (normal)\r\n\tctx.moveTo(curve0[0].x, curve0[0].y);\r\n\tfor (i = 1; i < len0; ++i) {\r\n\t\thelpers.canvas.lineTo(ctx, curve0[i - 1], curve0[i]);\r\n\t}\r\n\r\n\t// joining the two area curves\r\n\tctx.lineTo(curve1[len1 - 1].x, curve1[len1 - 1].y);\r\n\r\n\t// building opposite area curve (reverse)\r\n\tfor (i = len1 - 1; i > 0; --i) {\r\n\t\thelpers.canvas.lineTo(ctx, curve1[i], curve1[i - 1], true);\r\n\t}\r\n}\r\n\r\nfunction doFill(ctx, points, mapper, view, color, loop) {\r\n\tvar count = points.length;\r\n\tvar span = view.spanGaps;\r\n\tvar curve0 = [];\r\n\tvar curve1 = [];\r\n\tvar len0 = 0;\r\n\tvar len1 = 0;\r\n\tvar i, ilen, index, p0, p1, d0, d1;\r\n\r\n\tctx.beginPath();\r\n\r\n\tfor (i = 0, ilen = (count + !!loop); i < ilen; ++i) {\r\n\t\tindex = i % count;\r\n\t\tp0 = points[index]._view;\r\n\t\tp1 = mapper(p0, index, view);\r\n\t\td0 = isDrawable(p0);\r\n\t\td1 = isDrawable(p1);\r\n\r\n\t\tif (d0 && d1) {\r\n\t\t\tlen0 = curve0.push(p0);\r\n\t\t\tlen1 = curve1.push(p1);\r\n\t\t} else if (len0 && len1) {\r\n\t\t\tif (!span) {\r\n\t\t\t\tdrawArea(ctx, curve0, curve1, len0, len1);\r\n\t\t\t\tlen0 = len1 = 0;\r\n\t\t\t\tcurve0 = [];\r\n\t\t\t\tcurve1 = [];\r\n\t\t\t} else {\r\n\t\t\t\tif (d0) {\r\n\t\t\t\t\tcurve0.push(p0);\r\n\t\t\t\t}\r\n\t\t\t\tif (d1) {\r\n\t\t\t\t\tcurve1.push(p1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tdrawArea(ctx, curve0, curve1, len0, len1);\r\n\r\n\tctx.closePath();\r\n\tctx.fillStyle = color;\r\n\tctx.fill();\r\n}\r\n\r\nmodule.exports = {\r\n\tid: 'filler',\r\n\r\n\tafterDatasetsUpdate: function(chart, options) {\r\n\t\tvar count = (chart.data.datasets || []).length;\r\n\t\tvar propagate = options.propagate;\r\n\t\tvar sources = [];\r\n\t\tvar meta, i, el, source;\r\n\r\n\t\tfor (i = 0; i < count; ++i) {\r\n\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\tel = meta.dataset;\r\n\t\t\tsource = null;\r\n\r\n\t\t\tif (el && el._model && el instanceof elements.Line) {\r\n\t\t\t\tsource = {\r\n\t\t\t\t\tvisible: chart.isDatasetVisible(i),\r\n\t\t\t\t\tfill: decodeFill(el, i, count),\r\n\t\t\t\t\tchart: chart,\r\n\t\t\t\t\tel: el\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tmeta.$filler = source;\r\n\t\t\tsources.push(source);\r\n\t\t}\r\n\r\n\t\tfor (i = 0; i < count; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!source) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tsource.fill = resolveTarget(sources, i, propagate);\r\n\t\t\tsource.boundary = computeBoundary(source);\r\n\t\t\tsource.mapper = createMapper(source);\r\n\t\t}\r\n\t},\r\n\r\n\tbeforeDatasetDraw: function(chart, args) {\r\n\t\tvar meta = args.meta.$filler;\r\n\t\tif (!meta) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar ctx = chart.ctx;\r\n\t\tvar el = meta.el;\r\n\t\tvar view = el._view;\r\n\t\tvar points = el._children || [];\r\n\t\tvar mapper = meta.mapper;\r\n\t\tvar color = view.backgroundColor || defaults.global.defaultColor;\r\n\r\n\t\tif (mapper && color && points.length) {\r\n\t\t\thelpers.canvas.clipArea(ctx, chart.chartArea);\r\n\t\t\tdoFill(ctx, points, mapper, view, color, el._loop);\r\n\t\t\thelpers.canvas.unclipArea(ctx);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"25\":25,\"40\":40,\"45\":45}],51:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar Element = require(26);\r\nvar helpers = require(45);\r\nvar layouts = require(30);\r\n\r\nvar noop = helpers.noop;\r\n\r\ndefaults._set('global', {\r\n\tlegend: {\r\n\t\tdisplay: true,\r\n\t\tposition: 'top',\r\n\t\tfullWidth: true,\r\n\t\treverse: false,\r\n\t\tweight: 1000,\r\n\r\n\t\t// a callback that will handle\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.datasetIndex;\r\n\t\t\tvar ci = this.chart;\r\n\t\t\tvar meta = ci.getDatasetMeta(index);\r\n\r\n\t\t\t// See controller.isDatasetVisible comment\r\n\t\t\tmeta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;\r\n\r\n\t\t\t// We hid a dataset ... rerender the chart\r\n\t\t\tci.update();\r\n\t\t},\r\n\r\n\t\tonHover: null,\r\n\r\n\t\tlabels: {\r\n\t\t\tboxWidth: 40,\r\n\t\t\tpadding: 10,\r\n\t\t\t// Generates labels shown in the legend\r\n\t\t\t// Valid properties to return:\r\n\t\t\t// text : text to display\r\n\t\t\t// fillStyle : fill of coloured box\r\n\t\t\t// strokeStyle: stroke of coloured box\r\n\t\t\t// hidden : if this legend item refers to a hidden item\r\n\t\t\t// lineCap : cap style for line\r\n\t\t\t// lineDash\r\n\t\t\t// lineDashOffset :\r\n\t\t\t// lineJoin :\r\n\t\t\t// lineWidth :\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\treturn helpers.isArray(data.datasets) ? data.datasets.map(function(dataset, i) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\ttext: dataset.label,\r\n\t\t\t\t\t\tfillStyle: (!helpers.isArray(dataset.backgroundColor) ? dataset.backgroundColor : dataset.backgroundColor[0]),\r\n\t\t\t\t\t\thidden: !chart.isDatasetVisible(i),\r\n\t\t\t\t\t\tlineCap: dataset.borderCapStyle,\r\n\t\t\t\t\t\tlineDash: dataset.borderDash,\r\n\t\t\t\t\t\tlineDashOffset: dataset.borderDashOffset,\r\n\t\t\t\t\t\tlineJoin: dataset.borderJoinStyle,\r\n\t\t\t\t\t\tlineWidth: dataset.borderWidth,\r\n\t\t\t\t\t\tstrokeStyle: dataset.borderColor,\r\n\t\t\t\t\t\tpointStyle: dataset.pointStyle,\r\n\r\n\t\t\t\t\t\t// Below is extra data used for toggling the datasets\r\n\t\t\t\t\t\tdatasetIndex: i\r\n\t\t\t\t\t};\r\n\t\t\t\t}, this) : [];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tlegendCallback: function(chart) {\r\n\t\tvar text = [];\r\n\t\ttext.push('
    ');\r\n\t\tfor (var i = 0; i < chart.data.datasets.length; i++) {\r\n\t\t\ttext.push('
  • ');\r\n\t\t\tif (chart.data.datasets[i].label) {\r\n\t\t\t\ttext.push(chart.data.datasets[i].label);\r\n\t\t\t}\r\n\t\t\ttext.push('
  • ');\r\n\t\t}\r\n\t\ttext.push('
');\r\n\t\treturn text.join('');\r\n\t}\r\n});\r\n\r\n/**\r\n * Helper function to get the box width based on the usePointStyle option\r\n * @param labelopts {Object} the label options on the legend\r\n * @param fontSize {Number} the label font size\r\n * @return {Number} width of the color box area\r\n */\r\nfunction getBoxWidth(labelOpts, fontSize) {\r\n\treturn labelOpts.usePointStyle ?\r\n\t\tfontSize * Math.SQRT2 :\r\n\t\tlabelOpts.boxWidth;\r\n}\r\n\r\n/**\r\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\r\n */\r\nvar Legend = Element.extend({\r\n\r\n\tinitialize: function(config) {\r\n\t\thelpers.extend(this, config);\r\n\r\n\t\t// Contains hit boxes for each dataset (in dataset order)\r\n\t\tthis.legendHitBoxes = [];\r\n\r\n\t\t// Are we in doughnut mode which has a different data type\r\n\t\tthis.doughnutMode = false;\r\n\t},\r\n\r\n\t// These methods are ordered by lifecycle. Utilities then follow.\r\n\t// Any function defined here is inherited by all legend types.\r\n\t// Any function can be extended by the legend type\r\n\r\n\tbeforeUpdate: noop,\r\n\tupdate: function(maxWidth, maxHeight, margins) {\r\n\t\tvar me = this;\r\n\r\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\r\n\t\tme.beforeUpdate();\r\n\r\n\t\t// Absorb the master measurements\r\n\t\tme.maxWidth = maxWidth;\r\n\t\tme.maxHeight = maxHeight;\r\n\t\tme.margins = margins;\r\n\r\n\t\t// Dimensions\r\n\t\tme.beforeSetDimensions();\r\n\t\tme.setDimensions();\r\n\t\tme.afterSetDimensions();\r\n\t\t// Labels\r\n\t\tme.beforeBuildLabels();\r\n\t\tme.buildLabels();\r\n\t\tme.afterBuildLabels();\r\n\r\n\t\t// Fit\r\n\t\tme.beforeFit();\r\n\t\tme.fit();\r\n\t\tme.afterFit();\r\n\t\t//\r\n\t\tme.afterUpdate();\r\n\r\n\t\treturn me.minSize;\r\n\t},\r\n\tafterUpdate: noop,\r\n\r\n\t//\r\n\r\n\tbeforeSetDimensions: noop,\r\n\tsetDimensions: function() {\r\n\t\tvar me = this;\r\n\t\t// Set the unconstrained dimension before label rotation\r\n\t\tif (me.isHorizontal()) {\r\n\t\t\t// Reset position before calculating rotation\r\n\t\t\tme.width = me.maxWidth;\r\n\t\t\tme.left = 0;\r\n\t\t\tme.right = me.width;\r\n\t\t} else {\r\n\t\t\tme.height = me.maxHeight;\r\n\r\n\t\t\t// Reset position before calculating rotation\r\n\t\t\tme.top = 0;\r\n\t\t\tme.bottom = me.height;\r\n\t\t}\r\n\r\n\t\t// Reset padding\r\n\t\tme.paddingLeft = 0;\r\n\t\tme.paddingTop = 0;\r\n\t\tme.paddingRight = 0;\r\n\t\tme.paddingBottom = 0;\r\n\r\n\t\t// Reset minSize\r\n\t\tme.minSize = {\r\n\t\t\twidth: 0,\r\n\t\t\theight: 0\r\n\t\t};\r\n\t},\r\n\tafterSetDimensions: noop,\r\n\r\n\t//\r\n\r\n\tbeforeBuildLabels: noop,\r\n\tbuildLabels: function() {\r\n\t\tvar me = this;\r\n\t\tvar labelOpts = me.options.labels || {};\r\n\t\tvar legendItems = helpers.callback(labelOpts.generateLabels, [me.chart], me) || [];\r\n\r\n\t\tif (labelOpts.filter) {\r\n\t\t\tlegendItems = legendItems.filter(function(item) {\r\n\t\t\t\treturn labelOpts.filter(item, me.chart.data);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (me.options.reverse) {\r\n\t\t\tlegendItems.reverse();\r\n\t\t}\r\n\r\n\t\tme.legendItems = legendItems;\r\n\t},\r\n\tafterBuildLabels: noop,\r\n\r\n\t//\r\n\r\n\tbeforeFit: noop,\r\n\tfit: function() {\r\n\t\tvar me = this;\r\n\t\tvar opts = me.options;\r\n\t\tvar labelOpts = opts.labels;\r\n\t\tvar display = opts.display;\r\n\r\n\t\tvar ctx = me.ctx;\r\n\r\n\t\tvar globalDefault = defaults.global;\r\n\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\t\tvar fontSize = valueOrDefault(labelOpts.fontSize, globalDefault.defaultFontSize);\r\n\t\tvar fontStyle = valueOrDefault(labelOpts.fontStyle, globalDefault.defaultFontStyle);\r\n\t\tvar fontFamily = valueOrDefault(labelOpts.fontFamily, globalDefault.defaultFontFamily);\r\n\t\tvar labelFont = helpers.fontString(fontSize, fontStyle, fontFamily);\r\n\r\n\t\t// Reset hit boxes\r\n\t\tvar hitboxes = me.legendHitBoxes = [];\r\n\r\n\t\tvar minSize = me.minSize;\r\n\t\tvar isHorizontal = me.isHorizontal();\r\n\r\n\t\tif (isHorizontal) {\r\n\t\t\tminSize.width = me.maxWidth; // fill all the width\r\n\t\t\tminSize.height = display ? 10 : 0;\r\n\t\t} else {\r\n\t\t\tminSize.width = display ? 10 : 0;\r\n\t\t\tminSize.height = me.maxHeight; // fill all the height\r\n\t\t}\r\n\r\n\t\t// Increase sizes here\r\n\t\tif (display) {\r\n\t\t\tctx.font = labelFont;\r\n\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\t// Labels\r\n\r\n\t\t\t\t// Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\r\n\t\t\t\tvar lineWidths = me.lineWidths = [0];\r\n\t\t\t\tvar totalHeight = me.legendItems.length ? fontSize + (labelOpts.padding) : 0;\r\n\r\n\t\t\t\tctx.textAlign = 'left';\r\n\t\t\t\tctx.textBaseline = 'top';\r\n\r\n\t\t\t\thelpers.each(me.legendItems, function(legendItem, i) {\r\n\t\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\r\n\t\t\t\t\tvar width = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\r\n\r\n\t\t\t\t\tif (lineWidths[lineWidths.length - 1] + width + labelOpts.padding >= me.width) {\r\n\t\t\t\t\t\ttotalHeight += fontSize + (labelOpts.padding);\r\n\t\t\t\t\t\tlineWidths[lineWidths.length] = me.left;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\r\n\t\t\t\t\thitboxes[i] = {\r\n\t\t\t\t\t\tleft: 0,\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\twidth: width,\r\n\t\t\t\t\t\theight: fontSize\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tlineWidths[lineWidths.length - 1] += width + labelOpts.padding;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tminSize.height += totalHeight;\r\n\r\n\t\t\t} else {\r\n\t\t\t\tvar vPadding = labelOpts.padding;\r\n\t\t\t\tvar columnWidths = me.columnWidths = [];\r\n\t\t\t\tvar totalWidth = labelOpts.padding;\r\n\t\t\t\tvar currentColWidth = 0;\r\n\t\t\t\tvar currentColHeight = 0;\r\n\t\t\t\tvar itemHeight = fontSize + vPadding;\r\n\r\n\t\t\t\thelpers.each(me.legendItems, function(legendItem, i) {\r\n\t\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\r\n\t\t\t\t\tvar itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\r\n\r\n\t\t\t\t\t// If too tall, go to new column\r\n\t\t\t\t\tif (currentColHeight + itemHeight > minSize.height) {\r\n\t\t\t\t\t\ttotalWidth += currentColWidth + labelOpts.padding;\r\n\t\t\t\t\t\tcolumnWidths.push(currentColWidth); // previous column width\r\n\r\n\t\t\t\t\t\tcurrentColWidth = 0;\r\n\t\t\t\t\t\tcurrentColHeight = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Get max width\r\n\t\t\t\t\tcurrentColWidth = Math.max(currentColWidth, itemWidth);\r\n\t\t\t\t\tcurrentColHeight += itemHeight;\r\n\r\n\t\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\r\n\t\t\t\t\thitboxes[i] = {\r\n\t\t\t\t\t\tleft: 0,\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\twidth: itemWidth,\r\n\t\t\t\t\t\theight: fontSize\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\r\n\t\t\t\ttotalWidth += currentColWidth;\r\n\t\t\t\tcolumnWidths.push(currentColWidth);\r\n\t\t\t\tminSize.width += totalWidth;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tme.width = minSize.width;\r\n\t\tme.height = minSize.height;\r\n\t},\r\n\tafterFit: noop,\r\n\r\n\t// Shared Methods\r\n\tisHorizontal: function() {\r\n\t\treturn this.options.position === 'top' || this.options.position === 'bottom';\r\n\t},\r\n\r\n\t// Actually draw the legend on the canvas\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar opts = me.options;\r\n\t\tvar labelOpts = opts.labels;\r\n\t\tvar globalDefault = defaults.global;\r\n\t\tvar lineDefault = globalDefault.elements.line;\r\n\t\tvar legendWidth = me.width;\r\n\t\tvar lineWidths = me.lineWidths;\r\n\r\n\t\tif (opts.display) {\r\n\t\t\tvar ctx = me.ctx;\r\n\t\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\t\t\tvar fontColor = valueOrDefault(labelOpts.fontColor, globalDefault.defaultFontColor);\r\n\t\t\tvar fontSize = valueOrDefault(labelOpts.fontSize, globalDefault.defaultFontSize);\r\n\t\t\tvar fontStyle = valueOrDefault(labelOpts.fontStyle, globalDefault.defaultFontStyle);\r\n\t\t\tvar fontFamily = valueOrDefault(labelOpts.fontFamily, globalDefault.defaultFontFamily);\r\n\t\t\tvar labelFont = helpers.fontString(fontSize, fontStyle, fontFamily);\r\n\t\t\tvar cursor;\r\n\r\n\t\t\t// Canvas setup\r\n\t\t\tctx.textAlign = 'left';\r\n\t\t\tctx.textBaseline = 'middle';\r\n\t\t\tctx.lineWidth = 0.5;\r\n\t\t\tctx.strokeStyle = fontColor; // for strikethrough effect\r\n\t\t\tctx.fillStyle = fontColor; // render in correct colour\r\n\t\t\tctx.font = labelFont;\r\n\r\n\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\r\n\t\t\tvar hitboxes = me.legendHitBoxes;\r\n\r\n\t\t\t// current position\r\n\t\t\tvar drawLegendBox = function(x, y, legendItem) {\r\n\t\t\t\tif (isNaN(boxWidth) || boxWidth <= 0) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Set the ctx for the box\r\n\t\t\t\tctx.save();\r\n\r\n\t\t\t\tctx.fillStyle = valueOrDefault(legendItem.fillStyle, globalDefault.defaultColor);\r\n\t\t\t\tctx.lineCap = valueOrDefault(legendItem.lineCap, lineDefault.borderCapStyle);\r\n\t\t\t\tctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, lineDefault.borderDashOffset);\r\n\t\t\t\tctx.lineJoin = valueOrDefault(legendItem.lineJoin, lineDefault.borderJoinStyle);\r\n\t\t\t\tctx.lineWidth = valueOrDefault(legendItem.lineWidth, lineDefault.borderWidth);\r\n\t\t\t\tctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, globalDefault.defaultColor);\r\n\t\t\t\tvar isLineWidthZero = (valueOrDefault(legendItem.lineWidth, lineDefault.borderWidth) === 0);\r\n\r\n\t\t\t\tif (ctx.setLineDash) {\r\n\t\t\t\t\t// IE 9 and 10 do not support line dash\r\n\t\t\t\t\tctx.setLineDash(valueOrDefault(legendItem.lineDash, lineDefault.borderDash));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (opts.labels && opts.labels.usePointStyle) {\r\n\t\t\t\t\t// Recalculate x and y for drawPoint() because its expecting\r\n\t\t\t\t\t// x and y to be center of figure (instead of top left)\r\n\t\t\t\t\tvar radius = fontSize * Math.SQRT2 / 2;\r\n\t\t\t\t\tvar offSet = radius / Math.SQRT2;\r\n\t\t\t\t\tvar centerX = x + offSet;\r\n\t\t\t\t\tvar centerY = y + offSet;\r\n\r\n\t\t\t\t\t// Draw pointStyle as legend symbol\r\n\t\t\t\t\thelpers.canvas.drawPoint(ctx, legendItem.pointStyle, radius, centerX, centerY);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Draw box as legend symbol\r\n\t\t\t\t\tif (!isLineWidthZero) {\r\n\t\t\t\t\t\tctx.strokeRect(x, y, boxWidth, fontSize);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tctx.fillRect(x, y, boxWidth, fontSize);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tctx.restore();\r\n\t\t\t};\r\n\t\t\tvar fillText = function(x, y, legendItem, textWidth) {\r\n\t\t\t\tvar halfFontSize = fontSize / 2;\r\n\t\t\t\tvar xLeft = boxWidth + halfFontSize + x;\r\n\t\t\t\tvar yMiddle = y + halfFontSize;\r\n\r\n\t\t\t\tctx.fillText(legendItem.text, xLeft, yMiddle);\r\n\r\n\t\t\t\tif (legendItem.hidden) {\r\n\t\t\t\t\t// Strikethrough the text if hidden\r\n\t\t\t\t\tctx.beginPath();\r\n\t\t\t\t\tctx.lineWidth = 2;\r\n\t\t\t\t\tctx.moveTo(xLeft, yMiddle);\r\n\t\t\t\t\tctx.lineTo(xLeft + textWidth, yMiddle);\r\n\t\t\t\t\tctx.stroke();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t// Horizontal\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\t\t\tif (isHorizontal) {\r\n\t\t\t\tcursor = {\r\n\t\t\t\t\tx: me.left + ((legendWidth - lineWidths[0]) / 2),\r\n\t\t\t\t\ty: me.top + labelOpts.padding,\r\n\t\t\t\t\tline: 0\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tcursor = {\r\n\t\t\t\t\tx: me.left + labelOpts.padding,\r\n\t\t\t\t\ty: me.top + labelOpts.padding,\r\n\t\t\t\t\tline: 0\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tvar itemHeight = fontSize + labelOpts.padding;\r\n\t\t\thelpers.each(me.legendItems, function(legendItem, i) {\r\n\t\t\t\tvar textWidth = ctx.measureText(legendItem.text).width;\r\n\t\t\t\tvar width = boxWidth + (fontSize / 2) + textWidth;\r\n\t\t\t\tvar x = cursor.x;\r\n\t\t\t\tvar y = cursor.y;\r\n\r\n\t\t\t\tif (isHorizontal) {\r\n\t\t\t\t\tif (x + width >= legendWidth) {\r\n\t\t\t\t\t\ty = cursor.y += itemHeight;\r\n\t\t\t\t\t\tcursor.line++;\r\n\t\t\t\t\t\tx = cursor.x = me.left + ((legendWidth - lineWidths[cursor.line]) / 2);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (y + itemHeight > me.bottom) {\r\n\t\t\t\t\tx = cursor.x = x + me.columnWidths[cursor.line] + labelOpts.padding;\r\n\t\t\t\t\ty = cursor.y = me.top + labelOpts.padding;\r\n\t\t\t\t\tcursor.line++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdrawLegendBox(x, y, legendItem);\r\n\r\n\t\t\t\thitboxes[i].left = x;\r\n\t\t\t\thitboxes[i].top = y;\r\n\r\n\t\t\t\t// Fill the actual label\r\n\t\t\t\tfillText(x, y, legendItem, textWidth);\r\n\r\n\t\t\t\tif (isHorizontal) {\r\n\t\t\t\t\tcursor.x += width + (labelOpts.padding);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcursor.y += itemHeight;\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Handle an event\r\n\t * @private\r\n\t * @param {IEvent} event - The event to handle\r\n\t * @return {Boolean} true if a change occured\r\n\t */\r\n\thandleEvent: function(e) {\r\n\t\tvar me = this;\r\n\t\tvar opts = me.options;\r\n\t\tvar type = e.type === 'mouseup' ? 'click' : e.type;\r\n\t\tvar changed = false;\r\n\r\n\t\tif (type === 'mousemove') {\r\n\t\t\tif (!opts.onHover) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t} else if (type === 'click') {\r\n\t\t\tif (!opts.onClick) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Chart event already has relative position in it\r\n\t\tvar x = e.x;\r\n\t\tvar y = e.y;\r\n\r\n\t\tif (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) {\r\n\t\t\t// See if we are touching one of the dataset boxes\r\n\t\t\tvar lh = me.legendHitBoxes;\r\n\t\t\tfor (var i = 0; i < lh.length; ++i) {\r\n\t\t\t\tvar hitBox = lh[i];\r\n\r\n\t\t\t\tif (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\r\n\t\t\t\t\t// Touching an element\r\n\t\t\t\t\tif (type === 'click') {\r\n\t\t\t\t\t\t// use e.native for backwards compatibility\r\n\t\t\t\t\t\topts.onClick.call(me, e.native, me.legendItems[i]);\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t} else if (type === 'mousemove') {\r\n\t\t\t\t\t\t// use e.native for backwards compatibility\r\n\t\t\t\t\t\topts.onHover.call(me, e.native, me.legendItems[i]);\r\n\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn changed;\r\n\t}\r\n});\r\n\r\nfunction createNewLegendAndAttach(chart, legendOpts) {\r\n\tvar legend = new Legend({\r\n\t\tctx: chart.ctx,\r\n\t\toptions: legendOpts,\r\n\t\tchart: chart\r\n\t});\r\n\r\n\tlayouts.configure(chart, legend, legendOpts);\r\n\tlayouts.addBox(chart, legend);\r\n\tchart.legend = legend;\r\n}\r\n\r\nmodule.exports = {\r\n\tid: 'legend',\r\n\r\n\t/**\r\n\t * Backward compatibility: since 2.1.5, the legend is registered as a plugin, making\r\n\t * Chart.Legend obsolete. To avoid a breaking change, we export the Legend as part of\r\n\t * the plugin, which one will be re-exposed in the chart.js file.\r\n\t * https://github.com/chartjs/Chart.js/pull/2640\r\n\t * @private\r\n\t */\r\n\t_element: Legend,\r\n\r\n\tbeforeInit: function(chart) {\r\n\t\tvar legendOpts = chart.options.legend;\r\n\r\n\t\tif (legendOpts) {\r\n\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\r\n\t\t}\r\n\t},\r\n\r\n\tbeforeUpdate: function(chart) {\r\n\t\tvar legendOpts = chart.options.legend;\r\n\t\tvar legend = chart.legend;\r\n\r\n\t\tif (legendOpts) {\r\n\t\t\thelpers.mergeIf(legendOpts, defaults.global.legend);\r\n\r\n\t\t\tif (legend) {\r\n\t\t\t\tlayouts.configure(chart, legend, legendOpts);\r\n\t\t\t\tlegend.options = legendOpts;\r\n\t\t\t} else {\r\n\t\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\r\n\t\t\t}\r\n\t\t} else if (legend) {\r\n\t\t\tlayouts.removeBox(chart, legend);\r\n\t\t\tdelete chart.legend;\r\n\t\t}\r\n\t},\r\n\r\n\tafterEvent: function(chart, e) {\r\n\t\tvar legend = chart.legend;\r\n\t\tif (legend) {\r\n\t\t\tlegend.handleEvent(e);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"25\":25,\"26\":26,\"30\":30,\"45\":45}],52:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar Element = require(26);\r\nvar helpers = require(45);\r\nvar layouts = require(30);\r\n\r\nvar noop = helpers.noop;\r\n\r\ndefaults._set('global', {\r\n\ttitle: {\r\n\t\tdisplay: false,\r\n\t\tfontStyle: 'bold',\r\n\t\tfullWidth: true,\r\n\t\tlineHeight: 1.2,\r\n\t\tpadding: 10,\r\n\t\tposition: 'top',\r\n\t\ttext: '',\r\n\t\tweight: 2000 // by default greater than legend (1000) to be above\r\n\t}\r\n});\r\n\r\n/**\r\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\r\n */\r\nvar Title = Element.extend({\r\n\tinitialize: function(config) {\r\n\t\tvar me = this;\r\n\t\thelpers.extend(me, config);\r\n\r\n\t\t// Contains hit boxes for each dataset (in dataset order)\r\n\t\tme.legendHitBoxes = [];\r\n\t},\r\n\r\n\t// These methods are ordered by lifecycle. Utilities then follow.\r\n\r\n\tbeforeUpdate: noop,\r\n\tupdate: function(maxWidth, maxHeight, margins) {\r\n\t\tvar me = this;\r\n\r\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\r\n\t\tme.beforeUpdate();\r\n\r\n\t\t// Absorb the master measurements\r\n\t\tme.maxWidth = maxWidth;\r\n\t\tme.maxHeight = maxHeight;\r\n\t\tme.margins = margins;\r\n\r\n\t\t// Dimensions\r\n\t\tme.beforeSetDimensions();\r\n\t\tme.setDimensions();\r\n\t\tme.afterSetDimensions();\r\n\t\t// Labels\r\n\t\tme.beforeBuildLabels();\r\n\t\tme.buildLabels();\r\n\t\tme.afterBuildLabels();\r\n\r\n\t\t// Fit\r\n\t\tme.beforeFit();\r\n\t\tme.fit();\r\n\t\tme.afterFit();\r\n\t\t//\r\n\t\tme.afterUpdate();\r\n\r\n\t\treturn me.minSize;\r\n\r\n\t},\r\n\tafterUpdate: noop,\r\n\r\n\t//\r\n\r\n\tbeforeSetDimensions: noop,\r\n\tsetDimensions: function() {\r\n\t\tvar me = this;\r\n\t\t// Set the unconstrained dimension before label rotation\r\n\t\tif (me.isHorizontal()) {\r\n\t\t\t// Reset position before calculating rotation\r\n\t\t\tme.width = me.maxWidth;\r\n\t\t\tme.left = 0;\r\n\t\t\tme.right = me.width;\r\n\t\t} else {\r\n\t\t\tme.height = me.maxHeight;\r\n\r\n\t\t\t// Reset position before calculating rotation\r\n\t\t\tme.top = 0;\r\n\t\t\tme.bottom = me.height;\r\n\t\t}\r\n\r\n\t\t// Reset padding\r\n\t\tme.paddingLeft = 0;\r\n\t\tme.paddingTop = 0;\r\n\t\tme.paddingRight = 0;\r\n\t\tme.paddingBottom = 0;\r\n\r\n\t\t// Reset minSize\r\n\t\tme.minSize = {\r\n\t\t\twidth: 0,\r\n\t\t\theight: 0\r\n\t\t};\r\n\t},\r\n\tafterSetDimensions: noop,\r\n\r\n\t//\r\n\r\n\tbeforeBuildLabels: noop,\r\n\tbuildLabels: noop,\r\n\tafterBuildLabels: noop,\r\n\r\n\t//\r\n\r\n\tbeforeFit: noop,\r\n\tfit: function() {\r\n\t\tvar me = this;\r\n\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\t\tvar opts = me.options;\r\n\t\tvar display = opts.display;\r\n\t\tvar fontSize = valueOrDefault(opts.fontSize, defaults.global.defaultFontSize);\r\n\t\tvar minSize = me.minSize;\r\n\t\tvar lineCount = helpers.isArray(opts.text) ? opts.text.length : 1;\r\n\t\tvar lineHeight = helpers.options.toLineHeight(opts.lineHeight, fontSize);\r\n\t\tvar textSize = display ? (lineCount * lineHeight) + (opts.padding * 2) : 0;\r\n\r\n\t\tif (me.isHorizontal()) {\r\n\t\t\tminSize.width = me.maxWidth; // fill all the width\r\n\t\t\tminSize.height = textSize;\r\n\t\t} else {\r\n\t\t\tminSize.width = textSize;\r\n\t\t\tminSize.height = me.maxHeight; // fill all the height\r\n\t\t}\r\n\r\n\t\tme.width = minSize.width;\r\n\t\tme.height = minSize.height;\r\n\r\n\t},\r\n\tafterFit: noop,\r\n\r\n\t// Shared Methods\r\n\tisHorizontal: function() {\r\n\t\tvar pos = this.options.position;\r\n\t\treturn pos === 'top' || pos === 'bottom';\r\n\t},\r\n\r\n\t// Actually draw the title block on the canvas\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar ctx = me.ctx;\r\n\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\t\tvar opts = me.options;\r\n\t\tvar globalDefaults = defaults.global;\r\n\r\n\t\tif (opts.display) {\r\n\t\t\tvar fontSize = valueOrDefault(opts.fontSize, globalDefaults.defaultFontSize);\r\n\t\t\tvar fontStyle = valueOrDefault(opts.fontStyle, globalDefaults.defaultFontStyle);\r\n\t\t\tvar fontFamily = valueOrDefault(opts.fontFamily, globalDefaults.defaultFontFamily);\r\n\t\t\tvar titleFont = helpers.fontString(fontSize, fontStyle, fontFamily);\r\n\t\t\tvar lineHeight = helpers.options.toLineHeight(opts.lineHeight, fontSize);\r\n\t\t\tvar offset = lineHeight / 2 + opts.padding;\r\n\t\t\tvar rotation = 0;\r\n\t\t\tvar top = me.top;\r\n\t\t\tvar left = me.left;\r\n\t\t\tvar bottom = me.bottom;\r\n\t\t\tvar right = me.right;\r\n\t\t\tvar maxWidth, titleX, titleY;\r\n\r\n\t\t\tctx.fillStyle = valueOrDefault(opts.fontColor, globalDefaults.defaultFontColor); // render in correct colour\r\n\t\t\tctx.font = titleFont;\r\n\r\n\t\t\t// Horizontal\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\ttitleX = left + ((right - left) / 2); // midpoint of the width\r\n\t\t\t\ttitleY = top + offset;\r\n\t\t\t\tmaxWidth = right - left;\r\n\t\t\t} else {\r\n\t\t\t\ttitleX = opts.position === 'left' ? left + offset : right - offset;\r\n\t\t\t\ttitleY = top + ((bottom - top) / 2);\r\n\t\t\t\tmaxWidth = bottom - top;\r\n\t\t\t\trotation = Math.PI * (opts.position === 'left' ? -0.5 : 0.5);\r\n\t\t\t}\r\n\r\n\t\t\tctx.save();\r\n\t\t\tctx.translate(titleX, titleY);\r\n\t\t\tctx.rotate(rotation);\r\n\t\t\tctx.textAlign = 'center';\r\n\t\t\tctx.textBaseline = 'middle';\r\n\r\n\t\t\tvar text = opts.text;\r\n\t\t\tif (helpers.isArray(text)) {\r\n\t\t\t\tvar y = 0;\r\n\t\t\t\tfor (var i = 0; i < text.length; ++i) {\r\n\t\t\t\t\tctx.fillText(text[i], 0, y, maxWidth);\r\n\t\t\t\t\ty += lineHeight;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tctx.fillText(text, 0, 0, maxWidth);\r\n\t\t\t}\r\n\r\n\t\t\tctx.restore();\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction createNewTitleBlockAndAttach(chart, titleOpts) {\r\n\tvar title = new Title({\r\n\t\tctx: chart.ctx,\r\n\t\toptions: titleOpts,\r\n\t\tchart: chart\r\n\t});\r\n\r\n\tlayouts.configure(chart, title, titleOpts);\r\n\tlayouts.addBox(chart, title);\r\n\tchart.titleBlock = title;\r\n}\r\n\r\nmodule.exports = {\r\n\tid: 'title',\r\n\r\n\t/**\r\n\t * Backward compatibility: since 2.1.5, the title is registered as a plugin, making\r\n\t * Chart.Title obsolete. To avoid a breaking change, we export the Title as part of\r\n\t * the plugin, which one will be re-exposed in the chart.js file.\r\n\t * https://github.com/chartjs/Chart.js/pull/2640\r\n\t * @private\r\n\t */\r\n\t_element: Title,\r\n\r\n\tbeforeInit: function(chart) {\r\n\t\tvar titleOpts = chart.options.title;\r\n\r\n\t\tif (titleOpts) {\r\n\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\r\n\t\t}\r\n\t},\r\n\r\n\tbeforeUpdate: function(chart) {\r\n\t\tvar titleOpts = chart.options.title;\r\n\t\tvar titleBlock = chart.titleBlock;\r\n\r\n\t\tif (titleOpts) {\r\n\t\t\thelpers.mergeIf(titleOpts, defaults.global.title);\r\n\r\n\t\t\tif (titleBlock) {\r\n\t\t\t\tlayouts.configure(chart, titleBlock, titleOpts);\r\n\t\t\t\ttitleBlock.options = titleOpts;\r\n\t\t\t} else {\r\n\t\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\r\n\t\t\t}\r\n\t\t} else if (titleBlock) {\r\n\t\t\tlayouts.removeBox(chart, titleBlock);\r\n\t\t\tdelete chart.titleBlock;\r\n\t\t}\r\n\t}\r\n};\r\n\r\n},{\"25\":25,\"26\":26,\"30\":30,\"45\":45}],53:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\t// Default config for a category scale\r\n\tvar defaultConfig = {\r\n\t\tposition: 'bottom'\r\n\t};\r\n\r\n\tvar DatasetScale = Chart.Scale.extend({\r\n\t\t/**\r\n\t\t* Internal function to get the correct labels. If data.xLabels or data.yLabels are defined, use those\r\n\t\t* else fall back to data.labels\r\n\t\t* @private\r\n\t\t*/\r\n\t\tgetLabels: function() {\r\n\t\t\tvar data = this.chart.data;\r\n\t\t\treturn this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels;\r\n\t\t},\r\n\r\n\t\tdetermineDataLimits: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar labels = me.getLabels();\r\n\t\t\tme.minIndex = 0;\r\n\t\t\tme.maxIndex = labels.length - 1;\r\n\t\t\tvar findIndex;\r\n\r\n\t\t\tif (me.options.ticks.min !== undefined) {\r\n\t\t\t\t// user specified min value\r\n\t\t\t\tfindIndex = labels.indexOf(me.options.ticks.min);\r\n\t\t\t\tme.minIndex = findIndex !== -1 ? findIndex : me.minIndex;\r\n\t\t\t}\r\n\r\n\t\t\tif (me.options.ticks.max !== undefined) {\r\n\t\t\t\t// user specified max value\r\n\t\t\t\tfindIndex = labels.indexOf(me.options.ticks.max);\r\n\t\t\t\tme.maxIndex = findIndex !== -1 ? findIndex : me.maxIndex;\r\n\t\t\t}\r\n\r\n\t\t\tme.min = labels[me.minIndex];\r\n\t\t\tme.max = labels[me.maxIndex];\r\n\t\t},\r\n\r\n\t\tbuildTicks: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar labels = me.getLabels();\r\n\t\t\t// If we are viewing some subset of labels, slice the original array\r\n\t\t\tme.ticks = (me.minIndex === 0 && me.maxIndex === labels.length - 1) ? labels : labels.slice(me.minIndex, me.maxIndex + 1);\r\n\t\t},\r\n\r\n\t\tgetLabelForIndex: function(index, datasetIndex) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar data = me.chart.data;\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\r\n\t\t\tif (data.yLabels && !isHorizontal) {\r\n\t\t\t\treturn me.getRightValue(data.datasets[datasetIndex].data[index]);\r\n\t\t\t}\r\n\t\t\treturn me.ticks[index - me.minIndex];\r\n\t\t},\r\n\r\n\t\t// Used to get data value locations. Value can either be an index or a numerical value\r\n\t\tgetPixelForValue: function(value, index) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar offset = me.options.offset;\r\n\t\t\t// 1 is added because we need the length but we have the indexes\r\n\t\t\tvar offsetAmt = Math.max((me.maxIndex + 1 - me.minIndex - (offset ? 0 : 1)), 1);\r\n\r\n\t\t\t// If value is a data object, then index is the index in the data array,\r\n\t\t\t// not the index of the scale. We need to change that.\r\n\t\t\tvar valueCategory;\r\n\t\t\tif (value !== undefined && value !== null) {\r\n\t\t\t\tvalueCategory = me.isHorizontal() ? value.x : value.y;\r\n\t\t\t}\r\n\t\t\tif (valueCategory !== undefined || (value !== undefined && isNaN(index))) {\r\n\t\t\t\tvar labels = me.getLabels();\r\n\t\t\t\tvalue = valueCategory || value;\r\n\t\t\t\tvar idx = labels.indexOf(value);\r\n\t\t\t\tindex = idx !== -1 ? idx : index;\r\n\t\t\t}\r\n\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\tvar valueWidth = me.width / offsetAmt;\r\n\t\t\t\tvar widthOffset = (valueWidth * (index - me.minIndex));\r\n\r\n\t\t\t\tif (offset) {\r\n\t\t\t\t\twidthOffset += (valueWidth / 2);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn me.left + Math.round(widthOffset);\r\n\t\t\t}\r\n\t\t\tvar valueHeight = me.height / offsetAmt;\r\n\t\t\tvar heightOffset = (valueHeight * (index - me.minIndex));\r\n\r\n\t\t\tif (offset) {\r\n\t\t\t\theightOffset += (valueHeight / 2);\r\n\t\t\t}\r\n\r\n\t\t\treturn me.top + Math.round(heightOffset);\r\n\t\t},\r\n\t\tgetPixelForTick: function(index) {\r\n\t\t\treturn this.getPixelForValue(this.ticks[index], index + this.minIndex, null);\r\n\t\t},\r\n\t\tgetValueForPixel: function(pixel) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar offset = me.options.offset;\r\n\t\t\tvar value;\r\n\t\t\tvar offsetAmt = Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\r\n\t\t\tvar horz = me.isHorizontal();\r\n\t\t\tvar valueDimension = (horz ? me.width : me.height) / offsetAmt;\r\n\r\n\t\t\tpixel -= horz ? me.left : me.top;\r\n\r\n\t\t\tif (offset) {\r\n\t\t\t\tpixel -= (valueDimension / 2);\r\n\t\t\t}\r\n\r\n\t\t\tif (pixel <= 0) {\r\n\t\t\t\tvalue = 0;\r\n\t\t\t} else {\r\n\t\t\t\tvalue = Math.round(pixel / valueDimension);\r\n\t\t\t}\r\n\r\n\t\t\treturn value + me.minIndex;\r\n\t\t},\r\n\t\tgetBasePixel: function() {\r\n\t\t\treturn this.bottom;\r\n\t\t}\r\n\t});\r\n\r\n\tChart.scaleService.registerScaleType('category', DatasetScale, defaultConfig);\r\n\r\n};\r\n\r\n},{}],54:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar helpers = require(45);\r\nvar Ticks = require(34);\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tvar defaultConfig = {\r\n\t\tposition: 'left',\r\n\t\tticks: {\r\n\t\t\tcallback: Ticks.formatters.linear\r\n\t\t}\r\n\t};\r\n\r\n\tvar LinearScale = Chart.LinearScaleBase.extend({\r\n\r\n\t\tdetermineDataLimits: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar data = chart.data;\r\n\t\t\tvar datasets = data.datasets;\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\t\t\tvar DEFAULT_MIN = 0;\r\n\t\t\tvar DEFAULT_MAX = 1;\r\n\r\n\t\t\tfunction IDMatches(meta) {\r\n\t\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\r\n\t\t\t}\r\n\r\n\t\t\t// First Calculate the range\r\n\t\t\tme.min = null;\r\n\t\t\tme.max = null;\r\n\r\n\t\t\tvar hasStacks = opts.stacked;\r\n\t\t\tif (hasStacks === undefined) {\r\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tif (hasStacks) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\r\n\t\t\t\t\t\tmeta.stack !== undefined) {\r\n\t\t\t\t\t\thasStacks = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (opts.stacked || hasStacks) {\r\n\t\t\t\tvar valuesPerStack = {};\r\n\r\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tvar key = [\r\n\t\t\t\t\t\tmeta.type,\r\n\t\t\t\t\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\r\n\t\t\t\t\t\t((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\r\n\t\t\t\t\t\tmeta.stack\r\n\t\t\t\t\t].join('.');\r\n\r\n\t\t\t\t\tif (valuesPerStack[key] === undefined) {\r\n\t\t\t\t\t\tvaluesPerStack[key] = {\r\n\t\t\t\t\t\t\tpositiveValues: [],\r\n\t\t\t\t\t\t\tnegativeValues: []\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Store these per type\r\n\t\t\t\t\tvar positiveValues = valuesPerStack[key].positiveValues;\r\n\t\t\t\t\tvar negativeValues = valuesPerStack[key].negativeValues;\r\n\r\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\r\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\r\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\r\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tpositiveValues[index] = positiveValues[index] || 0;\r\n\t\t\t\t\t\t\tnegativeValues[index] = negativeValues[index] || 0;\r\n\r\n\t\t\t\t\t\t\tif (opts.relativePoints) {\r\n\t\t\t\t\t\t\t\tpositiveValues[index] = 100;\r\n\t\t\t\t\t\t\t} else if (value < 0) {\r\n\t\t\t\t\t\t\t\tnegativeValues[index] += value;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tpositiveValues[index] += value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\thelpers.each(valuesPerStack, function(valuesForType) {\r\n\t\t\t\t\tvar values = valuesForType.positiveValues.concat(valuesForType.negativeValues);\r\n\t\t\t\t\tvar minVal = helpers.min(values);\r\n\t\t\t\t\tvar maxVal = helpers.max(values);\r\n\t\t\t\t\tme.min = me.min === null ? minVal : Math.min(me.min, minVal);\r\n\t\t\t\t\tme.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\r\n\t\t\t\t});\r\n\r\n\t\t\t} else {\r\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\r\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\r\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\r\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (me.min === null) {\r\n\t\t\t\t\t\t\t\tme.min = value;\r\n\t\t\t\t\t\t\t} else if (value < me.min) {\r\n\t\t\t\t\t\t\t\tme.min = value;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (me.max === null) {\r\n\t\t\t\t\t\t\t\tme.max = value;\r\n\t\t\t\t\t\t\t} else if (value > me.max) {\r\n\t\t\t\t\t\t\t\tme.max = value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tme.min = isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN;\r\n\t\t\tme.max = isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX;\r\n\r\n\t\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\r\n\t\t\tthis.handleTickRangeOptions();\r\n\t\t},\r\n\t\tgetTickLimit: function() {\r\n\t\t\tvar maxTicks;\r\n\t\t\tvar me = this;\r\n\t\t\tvar tickOpts = me.options.ticks;\r\n\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\tmaxTicks = Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(me.width / 50));\r\n\t\t\t} else {\r\n\t\t\t\t// The factor of 2 used to scale the font size has been experimentally determined.\r\n\t\t\t\tvar tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, defaults.global.defaultFontSize);\r\n\t\t\t\tmaxTicks = Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(me.height / (2 * tickFontSize)));\r\n\t\t\t}\r\n\r\n\t\t\treturn maxTicks;\r\n\t\t},\r\n\t\t// Called after the ticks are built. We need\r\n\t\thandleDirectionalChanges: function() {\r\n\t\t\tif (!this.isHorizontal()) {\r\n\t\t\t\t// We are in a vertical orientation. The top value is the highest. So reverse the array\r\n\t\t\t\tthis.ticks.reverse();\r\n\t\t\t}\r\n\t\t},\r\n\t\tgetLabelForIndex: function(index, datasetIndex) {\r\n\t\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\r\n\t\t},\r\n\t\t// Utils\r\n\t\tgetPixelForValue: function(value) {\r\n\t\t\t// This must be called after fit has been run so that\r\n\t\t\t// this.left, this.top, this.right, and this.bottom have been defined\r\n\t\t\tvar me = this;\r\n\t\t\tvar start = me.start;\r\n\r\n\t\t\tvar rightValue = +me.getRightValue(value);\r\n\t\t\tvar pixel;\r\n\t\t\tvar range = me.end - start;\r\n\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\tpixel = me.left + (me.width / range * (rightValue - start));\r\n\t\t\t} else {\r\n\t\t\t\tpixel = me.bottom - (me.height / range * (rightValue - start));\r\n\t\t\t}\r\n\t\t\treturn pixel;\r\n\t\t},\r\n\t\tgetValueForPixel: function(pixel) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\t\t\tvar innerDimension = isHorizontal ? me.width : me.height;\r\n\t\t\tvar offset = (isHorizontal ? pixel - me.left : me.bottom - pixel) / innerDimension;\r\n\t\t\treturn me.start + ((me.end - me.start) * offset);\r\n\t\t},\r\n\t\tgetPixelForTick: function(index) {\r\n\t\t\treturn this.getPixelForValue(this.ticksAsNumbers[index]);\r\n\t\t}\r\n\t});\r\n\tChart.scaleService.registerScaleType('linear', LinearScale, defaultConfig);\r\n\r\n};\r\n\r\n},{\"25\":25,\"34\":34,\"45\":45}],55:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(45);\r\n\r\n/**\r\n * Generate a set of linear ticks\r\n * @param generationOptions the options used to generate the ticks\r\n * @param dataRange the range of the data\r\n * @returns {Array} array of tick values\r\n */\r\nfunction generateTicks(generationOptions, dataRange) {\r\n\tvar ticks = [];\r\n\t// To get a \"nice\" value for the tick spacing, we will use the appropriately named\r\n\t// \"nice number\" algorithm. See http://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\r\n\t// for details.\r\n\r\n\tvar spacing;\r\n\tif (generationOptions.stepSize && generationOptions.stepSize > 0) {\r\n\t\tspacing = generationOptions.stepSize;\r\n\t} else {\r\n\t\tvar niceRange = helpers.niceNum(dataRange.max - dataRange.min, false);\r\n\t\tspacing = helpers.niceNum(niceRange / (generationOptions.maxTicks - 1), true);\r\n\t}\r\n\tvar niceMin = Math.floor(dataRange.min / spacing) * spacing;\r\n\tvar niceMax = Math.ceil(dataRange.max / spacing) * spacing;\r\n\r\n\t// If min, max and stepSize is set and they make an evenly spaced scale use it.\r\n\tif (generationOptions.min && generationOptions.max && generationOptions.stepSize) {\r\n\t\t// If very close to our whole number, use it.\r\n\t\tif (helpers.almostWhole((generationOptions.max - generationOptions.min) / generationOptions.stepSize, spacing / 1000)) {\r\n\t\t\tniceMin = generationOptions.min;\r\n\t\t\tniceMax = generationOptions.max;\r\n\t\t}\r\n\t}\r\n\r\n\tvar numSpaces = (niceMax - niceMin) / spacing;\r\n\t// If very close to our rounded value, use it.\r\n\tif (helpers.almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\r\n\t\tnumSpaces = Math.round(numSpaces);\r\n\t} else {\r\n\t\tnumSpaces = Math.ceil(numSpaces);\r\n\t}\r\n\r\n\tvar precision = 1;\r\n\tif (spacing < 1) {\r\n\t\tprecision = Math.pow(10, spacing.toString().length - 2);\r\n\t\tniceMin = Math.round(niceMin * precision) / precision;\r\n\t\tniceMax = Math.round(niceMax * precision) / precision;\r\n\t}\r\n\tticks.push(generationOptions.min !== undefined ? generationOptions.min : niceMin);\r\n\tfor (var j = 1; j < numSpaces; ++j) {\r\n\t\tticks.push(Math.round((niceMin + j * spacing) * precision) / precision);\r\n\t}\r\n\tticks.push(generationOptions.max !== undefined ? generationOptions.max : niceMax);\r\n\r\n\treturn ticks;\r\n}\r\n\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tvar noop = helpers.noop;\r\n\r\n\tChart.LinearScaleBase = Chart.Scale.extend({\r\n\t\tgetRightValue: function(value) {\r\n\t\t\tif (typeof value === 'string') {\r\n\t\t\t\treturn +value;\r\n\t\t\t}\r\n\t\t\treturn Chart.Scale.prototype.getRightValue.call(this, value);\r\n\t\t},\r\n\r\n\t\thandleTickRangeOptions: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\r\n\t\t\t// If we are forcing it to begin at 0, but 0 will already be rendered on the chart,\r\n\t\t\t// do nothing since that would make the chart weird. If the user really wants a weird chart\r\n\t\t\t// axis, they can manually override it\r\n\t\t\tif (tickOpts.beginAtZero) {\r\n\t\t\t\tvar minSign = helpers.sign(me.min);\r\n\t\t\t\tvar maxSign = helpers.sign(me.max);\r\n\r\n\t\t\t\tif (minSign < 0 && maxSign < 0) {\r\n\t\t\t\t\t// move the top up to 0\r\n\t\t\t\t\tme.max = 0;\r\n\t\t\t\t} else if (minSign > 0 && maxSign > 0) {\r\n\t\t\t\t\t// move the bottom down to 0\r\n\t\t\t\t\tme.min = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined;\r\n\t\t\tvar setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined;\r\n\r\n\t\t\tif (tickOpts.min !== undefined) {\r\n\t\t\t\tme.min = tickOpts.min;\r\n\t\t\t} else if (tickOpts.suggestedMin !== undefined) {\r\n\t\t\t\tif (me.min === null) {\r\n\t\t\t\t\tme.min = tickOpts.suggestedMin;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tme.min = Math.min(me.min, tickOpts.suggestedMin);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (tickOpts.max !== undefined) {\r\n\t\t\t\tme.max = tickOpts.max;\r\n\t\t\t} else if (tickOpts.suggestedMax !== undefined) {\r\n\t\t\t\tif (me.max === null) {\r\n\t\t\t\t\tme.max = tickOpts.suggestedMax;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tme.max = Math.max(me.max, tickOpts.suggestedMax);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (setMin !== setMax) {\r\n\t\t\t\t// We set the min or the max but not both.\r\n\t\t\t\t// So ensure that our range is good\r\n\t\t\t\t// Inverted or 0 length range can happen when\r\n\t\t\t\t// ticks.min is set, and no datasets are visible\r\n\t\t\t\tif (me.min >= me.max) {\r\n\t\t\t\t\tif (setMin) {\r\n\t\t\t\t\t\tme.max = me.min + 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tme.min = me.max - 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (me.min === me.max) {\r\n\t\t\t\tme.max++;\r\n\r\n\t\t\t\tif (!tickOpts.beginAtZero) {\r\n\t\t\t\t\tme.min--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tgetTickLimit: noop,\r\n\t\thandleDirectionalChanges: noop,\r\n\r\n\t\tbuildTicks: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\r\n\t\t\t// Figure out what the max number of ticks we can support it is based on the size of\r\n\t\t\t// the axis area. For now, we say that the minimum tick spacing in pixels must be 50\r\n\t\t\t// We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\r\n\t\t\t// the graph. Make sure we always have at least 2 ticks\r\n\t\t\tvar maxTicks = me.getTickLimit();\r\n\t\t\tmaxTicks = Math.max(2, maxTicks);\r\n\r\n\t\t\tvar numericGeneratorOptions = {\r\n\t\t\t\tmaxTicks: maxTicks,\r\n\t\t\t\tmin: tickOpts.min,\r\n\t\t\t\tmax: tickOpts.max,\r\n\t\t\t\tstepSize: helpers.valueOrDefault(tickOpts.fixedStepSize, tickOpts.stepSize)\r\n\t\t\t};\r\n\t\t\tvar ticks = me.ticks = generateTicks(numericGeneratorOptions, me);\r\n\r\n\t\t\tme.handleDirectionalChanges();\r\n\r\n\t\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\r\n\t\t\t// range of the scale\r\n\t\t\tme.max = helpers.max(ticks);\r\n\t\t\tme.min = helpers.min(ticks);\r\n\r\n\t\t\tif (tickOpts.reverse) {\r\n\t\t\t\tticks.reverse();\r\n\r\n\t\t\t\tme.start = me.max;\r\n\t\t\t\tme.end = me.min;\r\n\t\t\t} else {\r\n\t\t\t\tme.start = me.min;\r\n\t\t\t\tme.end = me.max;\r\n\t\t\t}\r\n\t\t},\r\n\t\tconvertTicksToLabels: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tme.ticksAsNumbers = me.ticks.slice();\r\n\t\t\tme.zeroLineIndex = me.ticks.indexOf(0);\r\n\r\n\t\t\tChart.Scale.prototype.convertTicksToLabels.call(me);\r\n\t\t}\r\n\t});\r\n};\r\n\r\n},{\"45\":45}],56:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar helpers = require(45);\r\nvar Ticks = require(34);\r\n\r\n/**\r\n * Generate a set of logarithmic ticks\r\n * @param generationOptions the options used to generate the ticks\r\n * @param dataRange the range of the data\r\n * @returns {Array} array of tick values\r\n */\r\nfunction generateTicks(generationOptions, dataRange) {\r\n\tvar ticks = [];\r\n\tvar valueOrDefault = helpers.valueOrDefault;\r\n\r\n\t// Figure out what the max number of ticks we can support it is based on the size of\r\n\t// the axis area. For now, we say that the minimum tick spacing in pixels must be 50\r\n\t// We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\r\n\t// the graph\r\n\tvar tickVal = valueOrDefault(generationOptions.min, Math.pow(10, Math.floor(helpers.log10(dataRange.min))));\r\n\r\n\tvar endExp = Math.floor(helpers.log10(dataRange.max));\r\n\tvar endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\r\n\tvar exp, significand;\r\n\r\n\tif (tickVal === 0) {\r\n\t\texp = Math.floor(helpers.log10(dataRange.minNotZero));\r\n\t\tsignificand = Math.floor(dataRange.minNotZero / Math.pow(10, exp));\r\n\r\n\t\tticks.push(tickVal);\r\n\t\ttickVal = significand * Math.pow(10, exp);\r\n\t} else {\r\n\t\texp = Math.floor(helpers.log10(tickVal));\r\n\t\tsignificand = Math.floor(tickVal / Math.pow(10, exp));\r\n\t}\r\n\tvar precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\r\n\r\n\tdo {\r\n\t\tticks.push(tickVal);\r\n\r\n\t\t++significand;\r\n\t\tif (significand === 10) {\r\n\t\t\tsignificand = 1;\r\n\t\t\t++exp;\r\n\t\t\tprecision = exp >= 0 ? 1 : precision;\r\n\t\t}\r\n\r\n\t\ttickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\r\n\t} while (exp < endExp || (exp === endExp && significand < endSignificand));\r\n\r\n\tvar lastTick = valueOrDefault(generationOptions.max, tickVal);\r\n\tticks.push(lastTick);\r\n\r\n\treturn ticks;\r\n}\r\n\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tvar defaultConfig = {\r\n\t\tposition: 'left',\r\n\r\n\t\t// label settings\r\n\t\tticks: {\r\n\t\t\tcallback: Ticks.formatters.logarithmic\r\n\t\t}\r\n\t};\r\n\r\n\tvar LogarithmicScale = Chart.Scale.extend({\r\n\t\tdetermineDataLimits: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar data = chart.data;\r\n\t\t\tvar datasets = data.datasets;\r\n\t\t\tvar isHorizontal = me.isHorizontal();\r\n\t\t\tfunction IDMatches(meta) {\r\n\t\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\r\n\t\t\t}\r\n\r\n\t\t\t// Calculate Range\r\n\t\t\tme.min = null;\r\n\t\t\tme.max = null;\r\n\t\t\tme.minNotZero = null;\r\n\r\n\t\t\tvar hasStacks = opts.stacked;\r\n\t\t\tif (hasStacks === undefined) {\r\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tif (hasStacks) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\r\n\t\t\t\t\t\tmeta.stack !== undefined) {\r\n\t\t\t\t\t\thasStacks = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (opts.stacked || hasStacks) {\r\n\t\t\t\tvar valuesPerStack = {};\r\n\r\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tvar key = [\r\n\t\t\t\t\t\tmeta.type,\r\n\t\t\t\t\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\r\n\t\t\t\t\t\t((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\r\n\t\t\t\t\t\tmeta.stack\r\n\t\t\t\t\t].join('.');\r\n\r\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\r\n\t\t\t\t\t\tif (valuesPerStack[key] === undefined) {\r\n\t\t\t\t\t\t\tvaluesPerStack[key] = [];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\r\n\t\t\t\t\t\t\tvar values = valuesPerStack[key];\r\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\r\n\t\t\t\t\t\t\t// invalid, hidden and negative values are ignored\r\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden || value < 0) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvalues[index] = values[index] || 0;\r\n\t\t\t\t\t\t\tvalues[index] += value;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\thelpers.each(valuesPerStack, function(valuesForType) {\r\n\t\t\t\t\tif (valuesForType.length > 0) {\r\n\t\t\t\t\t\tvar minVal = helpers.min(valuesForType);\r\n\t\t\t\t\t\tvar maxVal = helpers.max(valuesForType);\r\n\t\t\t\t\t\tme.min = me.min === null ? minVal : Math.min(me.min, minVal);\r\n\t\t\t\t\t\tme.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t} else {\r\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\r\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\r\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\r\n\t\t\t\t\t\t\t// invalid, hidden and negative values are ignored\r\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden || value < 0) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (me.min === null) {\r\n\t\t\t\t\t\t\t\tme.min = value;\r\n\t\t\t\t\t\t\t} else if (value < me.min) {\r\n\t\t\t\t\t\t\t\tme.min = value;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (me.max === null) {\r\n\t\t\t\t\t\t\t\tme.max = value;\r\n\t\t\t\t\t\t\t} else if (value > me.max) {\r\n\t\t\t\t\t\t\t\tme.max = value;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (value !== 0 && (me.minNotZero === null || value < me.minNotZero)) {\r\n\t\t\t\t\t\t\t\tme.minNotZero = value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Common base implementation to handle ticks.min, ticks.max\r\n\t\t\tthis.handleTickRangeOptions();\r\n\t\t},\r\n\t\thandleTickRangeOptions: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\t\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\t\t\tvar DEFAULT_MIN = 1;\r\n\t\t\tvar DEFAULT_MAX = 10;\r\n\r\n\t\t\tme.min = valueOrDefault(tickOpts.min, me.min);\r\n\t\t\tme.max = valueOrDefault(tickOpts.max, me.max);\r\n\r\n\t\t\tif (me.min === me.max) {\r\n\t\t\t\tif (me.min !== 0 && me.min !== null) {\r\n\t\t\t\t\tme.min = Math.pow(10, Math.floor(helpers.log10(me.min)) - 1);\r\n\t\t\t\t\tme.max = Math.pow(10, Math.floor(helpers.log10(me.max)) + 1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tme.min = DEFAULT_MIN;\r\n\t\t\t\t\tme.max = DEFAULT_MAX;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (me.min === null) {\r\n\t\t\t\tme.min = Math.pow(10, Math.floor(helpers.log10(me.max)) - 1);\r\n\t\t\t}\r\n\t\t\tif (me.max === null) {\r\n\t\t\t\tme.max = me.min !== 0\r\n\t\t\t\t\t? Math.pow(10, Math.floor(helpers.log10(me.min)) + 1)\r\n\t\t\t\t\t: DEFAULT_MAX;\r\n\t\t\t}\r\n\t\t\tif (me.minNotZero === null) {\r\n\t\t\t\tif (me.min > 0) {\r\n\t\t\t\t\tme.minNotZero = me.min;\r\n\t\t\t\t} else if (me.max < 1) {\r\n\t\t\t\t\tme.minNotZero = Math.pow(10, Math.floor(helpers.log10(me.max)));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tme.minNotZero = DEFAULT_MIN;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tbuildTicks: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\t\t\tvar reverse = !me.isHorizontal();\r\n\r\n\t\t\tvar generationOptions = {\r\n\t\t\t\tmin: tickOpts.min,\r\n\t\t\t\tmax: tickOpts.max\r\n\t\t\t};\r\n\t\t\tvar ticks = me.ticks = generateTicks(generationOptions, me);\r\n\r\n\t\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\r\n\t\t\t// range of the scale\r\n\t\t\tme.max = helpers.max(ticks);\r\n\t\t\tme.min = helpers.min(ticks);\r\n\r\n\t\t\tif (tickOpts.reverse) {\r\n\t\t\t\treverse = !reverse;\r\n\t\t\t\tme.start = me.max;\r\n\t\t\t\tme.end = me.min;\r\n\t\t\t} else {\r\n\t\t\t\tme.start = me.min;\r\n\t\t\t\tme.end = me.max;\r\n\t\t\t}\r\n\t\t\tif (reverse) {\r\n\t\t\t\tticks.reverse();\r\n\t\t\t}\r\n\t\t},\r\n\t\tconvertTicksToLabels: function() {\r\n\t\t\tthis.tickValues = this.ticks.slice();\r\n\r\n\t\t\tChart.Scale.prototype.convertTicksToLabels.call(this);\r\n\t\t},\r\n\t\t// Get the correct tooltip label\r\n\t\tgetLabelForIndex: function(index, datasetIndex) {\r\n\t\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\r\n\t\t},\r\n\t\tgetPixelForTick: function(index) {\r\n\t\t\treturn this.getPixelForValue(this.tickValues[index]);\r\n\t\t},\r\n\t\t/**\r\n\t\t * Returns the value of the first tick.\r\n\t\t * @param {Number} value - The minimum not zero value.\r\n\t\t * @return {Number} The first tick value.\r\n\t\t * @private\r\n\t\t */\r\n\t\t_getFirstTickValue: function(value) {\r\n\t\t\tvar exp = Math.floor(helpers.log10(value));\r\n\t\t\tvar significand = Math.floor(value / Math.pow(10, exp));\r\n\r\n\t\t\treturn significand * Math.pow(10, exp);\r\n\t\t},\r\n\t\tgetPixelForValue: function(value) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar reverse = me.options.ticks.reverse;\r\n\t\t\tvar log10 = helpers.log10;\r\n\t\t\tvar firstTickValue = me._getFirstTickValue(me.minNotZero);\r\n\t\t\tvar offset = 0;\r\n\t\t\tvar innerDimension, pixel, start, end, sign;\r\n\r\n\t\t\tvalue = +me.getRightValue(value);\r\n\t\t\tif (reverse) {\r\n\t\t\t\tstart = me.end;\r\n\t\t\t\tend = me.start;\r\n\t\t\t\tsign = -1;\r\n\t\t\t} else {\r\n\t\t\t\tstart = me.start;\r\n\t\t\t\tend = me.end;\r\n\t\t\t\tsign = 1;\r\n\t\t\t}\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\tinnerDimension = me.width;\r\n\t\t\t\tpixel = reverse ? me.right : me.left;\r\n\t\t\t} else {\r\n\t\t\t\tinnerDimension = me.height;\r\n\t\t\t\tsign *= -1; // invert, since the upper-left corner of the canvas is at pixel (0, 0)\r\n\t\t\t\tpixel = reverse ? me.top : me.bottom;\r\n\t\t\t}\r\n\t\t\tif (value !== start) {\r\n\t\t\t\tif (start === 0) { // include zero tick\r\n\t\t\t\t\toffset = helpers.getValueOrDefault(\r\n\t\t\t\t\t\tme.options.ticks.fontSize,\r\n\t\t\t\t\t\tChart.defaults.global.defaultFontSize\r\n\t\t\t\t\t);\r\n\t\t\t\t\tinnerDimension -= offset;\r\n\t\t\t\t\tstart = firstTickValue;\r\n\t\t\t\t}\r\n\t\t\t\tif (value !== 0) {\r\n\t\t\t\t\toffset += innerDimension / (log10(end) - log10(start)) * (log10(value) - log10(start));\r\n\t\t\t\t}\r\n\t\t\t\tpixel += sign * offset;\r\n\t\t\t}\r\n\t\t\treturn pixel;\r\n\t\t},\r\n\t\tgetValueForPixel: function(pixel) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar reverse = me.options.ticks.reverse;\r\n\t\t\tvar log10 = helpers.log10;\r\n\t\t\tvar firstTickValue = me._getFirstTickValue(me.minNotZero);\r\n\t\t\tvar innerDimension, start, end, value;\r\n\r\n\t\t\tif (reverse) {\r\n\t\t\t\tstart = me.end;\r\n\t\t\t\tend = me.start;\r\n\t\t\t} else {\r\n\t\t\t\tstart = me.start;\r\n\t\t\t\tend = me.end;\r\n\t\t\t}\r\n\t\t\tif (me.isHorizontal()) {\r\n\t\t\t\tinnerDimension = me.width;\r\n\t\t\t\tvalue = reverse ? me.right - pixel : pixel - me.left;\r\n\t\t\t} else {\r\n\t\t\t\tinnerDimension = me.height;\r\n\t\t\t\tvalue = reverse ? pixel - me.top : me.bottom - pixel;\r\n\t\t\t}\r\n\t\t\tif (value !== start) {\r\n\t\t\t\tif (start === 0) { // include zero tick\r\n\t\t\t\t\tvar offset = helpers.getValueOrDefault(\r\n\t\t\t\t\t\tme.options.ticks.fontSize,\r\n\t\t\t\t\t\tChart.defaults.global.defaultFontSize\r\n\t\t\t\t\t);\r\n\t\t\t\t\tvalue -= offset;\r\n\t\t\t\t\tinnerDimension -= offset;\r\n\t\t\t\t\tstart = firstTickValue;\r\n\t\t\t\t}\r\n\t\t\t\tvalue *= log10(end) - log10(start);\r\n\t\t\t\tvalue /= innerDimension;\r\n\t\t\t\tvalue = Math.pow(10, log10(start) + value);\r\n\t\t\t}\r\n\t\t\treturn value;\r\n\t\t}\r\n\t});\r\n\tChart.scaleService.registerScaleType('logarithmic', LogarithmicScale, defaultConfig);\r\n\r\n};\r\n\r\n},{\"34\":34,\"45\":45}],57:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar defaults = require(25);\r\nvar helpers = require(45);\r\nvar Ticks = require(34);\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tvar globalDefaults = defaults.global;\r\n\r\n\tvar defaultConfig = {\r\n\t\tdisplay: true,\r\n\r\n\t\t// Boolean - Whether to animate scaling the chart from the centre\r\n\t\tanimate: true,\r\n\t\tposition: 'chartArea',\r\n\r\n\t\tangleLines: {\r\n\t\t\tdisplay: true,\r\n\t\t\tcolor: 'rgba(0, 0, 0, 0.1)',\r\n\t\t\tlineWidth: 1\r\n\t\t},\r\n\r\n\t\tgridLines: {\r\n\t\t\tcircular: false\r\n\t\t},\r\n\r\n\t\t// label settings\r\n\t\tticks: {\r\n\t\t\t// Boolean - Show a backdrop to the scale label\r\n\t\t\tshowLabelBackdrop: true,\r\n\r\n\t\t\t// String - The colour of the label backdrop\r\n\t\t\tbackdropColor: 'rgba(255,255,255,0.75)',\r\n\r\n\t\t\t// Number - The backdrop padding above & below the label in pixels\r\n\t\t\tbackdropPaddingY: 2,\r\n\r\n\t\t\t// Number - The backdrop padding to the side of the label in pixels\r\n\t\t\tbackdropPaddingX: 2,\r\n\r\n\t\t\tcallback: Ticks.formatters.linear\r\n\t\t},\r\n\r\n\t\tpointLabels: {\r\n\t\t\t// Boolean - if true, show point labels\r\n\t\t\tdisplay: true,\r\n\r\n\t\t\t// Number - Point label font size in pixels\r\n\t\t\tfontSize: 10,\r\n\r\n\t\t\t// Function - Used to convert point labels\r\n\t\t\tcallback: function(label) {\r\n\t\t\t\treturn label;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tfunction getValueCount(scale) {\r\n\t\tvar opts = scale.options;\r\n\t\treturn opts.angleLines.display || opts.pointLabels.display ? scale.chart.data.labels.length : 0;\r\n\t}\r\n\r\n\tfunction getPointLabelFontOptions(scale) {\r\n\t\tvar pointLabelOptions = scale.options.pointLabels;\r\n\t\tvar fontSize = helpers.valueOrDefault(pointLabelOptions.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar fontStyle = helpers.valueOrDefault(pointLabelOptions.fontStyle, globalDefaults.defaultFontStyle);\r\n\t\tvar fontFamily = helpers.valueOrDefault(pointLabelOptions.fontFamily, globalDefaults.defaultFontFamily);\r\n\t\tvar font = helpers.fontString(fontSize, fontStyle, fontFamily);\r\n\r\n\t\treturn {\r\n\t\t\tsize: fontSize,\r\n\t\t\tstyle: fontStyle,\r\n\t\t\tfamily: fontFamily,\r\n\t\t\tfont: font\r\n\t\t};\r\n\t}\r\n\r\n\tfunction measureLabelSize(ctx, fontSize, label) {\r\n\t\tif (helpers.isArray(label)) {\r\n\t\t\treturn {\r\n\t\t\t\tw: helpers.longestText(ctx, ctx.font, label),\r\n\t\t\t\th: (label.length * fontSize) + ((label.length - 1) * 1.5 * fontSize)\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tw: ctx.measureText(label).width,\r\n\t\t\th: fontSize\r\n\t\t};\r\n\t}\r\n\r\n\tfunction determineLimits(angle, pos, size, min, max) {\r\n\t\tif (angle === min || angle === max) {\r\n\t\t\treturn {\r\n\t\t\t\tstart: pos - (size / 2),\r\n\t\t\t\tend: pos + (size / 2)\r\n\t\t\t};\r\n\t\t} else if (angle < min || angle > max) {\r\n\t\t\treturn {\r\n\t\t\t\tstart: pos - size - 5,\r\n\t\t\t\tend: pos\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tstart: pos,\r\n\t\t\tend: pos + size + 5\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Helper function to fit a radial linear scale with point labels\r\n\t */\r\n\tfunction fitWithPointLabels(scale) {\r\n\t\t/*\r\n\t\t * Right, this is really confusing and there is a lot of maths going on here\r\n\t\t * The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\r\n\t\t *\r\n\t\t * Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\r\n\t\t *\r\n\t\t * Solution:\r\n\t\t *\r\n\t\t * We assume the radius of the polygon is half the size of the canvas at first\r\n\t\t * at each index we check if the text overlaps.\r\n\t\t *\r\n\t\t * Where it does, we store that angle and that index.\r\n\t\t *\r\n\t\t * After finding the largest index and angle we calculate how much we need to remove\r\n\t\t * from the shape radius to move the point inwards by that x.\r\n\t\t *\r\n\t\t * We average the left and right distances to get the maximum shape radius that can fit in the box\r\n\t\t * along with labels.\r\n\t\t *\r\n\t\t * Once we have that, we can find the centre point for the chart, by taking the x text protrusion\r\n\t\t * on each side, removing that from the size, halving it and adding the left x protrusion width.\r\n\t\t *\r\n\t\t * This will mean we have a shape fitted to the canvas, as large as it can be with the labels\r\n\t\t * and position it in the most space efficient manner\r\n\t\t *\r\n\t\t * https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\r\n\t\t */\r\n\r\n\t\tvar plFont = getPointLabelFontOptions(scale);\r\n\r\n\t\t// Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\r\n\t\t// Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\r\n\t\tvar largestPossibleRadius = Math.min(scale.height / 2, scale.width / 2);\r\n\t\tvar furthestLimits = {\r\n\t\t\tr: scale.width,\r\n\t\t\tl: 0,\r\n\t\t\tt: scale.height,\r\n\t\t\tb: 0\r\n\t\t};\r\n\t\tvar furthestAngles = {};\r\n\t\tvar i, textSize, pointPosition;\r\n\r\n\t\tscale.ctx.font = plFont.font;\r\n\t\tscale._pointLabelSizes = [];\r\n\r\n\t\tvar valueCount = getValueCount(scale);\r\n\t\tfor (i = 0; i < valueCount; i++) {\r\n\t\t\tpointPosition = scale.getPointPosition(i, largestPossibleRadius);\r\n\t\t\ttextSize = measureLabelSize(scale.ctx, plFont.size, scale.pointLabels[i] || '');\r\n\t\t\tscale._pointLabelSizes[i] = textSize;\r\n\r\n\t\t\t// Add quarter circle to make degree 0 mean top of circle\r\n\t\t\tvar angleRadians = scale.getIndexAngle(i);\r\n\t\t\tvar angle = helpers.toDegrees(angleRadians) % 360;\r\n\t\t\tvar hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\r\n\t\t\tvar vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\r\n\r\n\t\t\tif (hLimits.start < furthestLimits.l) {\r\n\t\t\t\tfurthestLimits.l = hLimits.start;\r\n\t\t\t\tfurthestAngles.l = angleRadians;\r\n\t\t\t}\r\n\r\n\t\t\tif (hLimits.end > furthestLimits.r) {\r\n\t\t\t\tfurthestLimits.r = hLimits.end;\r\n\t\t\t\tfurthestAngles.r = angleRadians;\r\n\t\t\t}\r\n\r\n\t\t\tif (vLimits.start < furthestLimits.t) {\r\n\t\t\t\tfurthestLimits.t = vLimits.start;\r\n\t\t\t\tfurthestAngles.t = angleRadians;\r\n\t\t\t}\r\n\r\n\t\t\tif (vLimits.end > furthestLimits.b) {\r\n\t\t\t\tfurthestLimits.b = vLimits.end;\r\n\t\t\t\tfurthestAngles.b = angleRadians;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tscale.setReductions(largestPossibleRadius, furthestLimits, furthestAngles);\r\n\t}\r\n\r\n\t/**\r\n\t * Helper function to fit a radial linear scale with no point labels\r\n\t */\r\n\tfunction fit(scale) {\r\n\t\tvar largestPossibleRadius = Math.min(scale.height / 2, scale.width / 2);\r\n\t\tscale.drawingArea = Math.round(largestPossibleRadius);\r\n\t\tscale.setCenterPoint(0, 0, 0, 0);\r\n\t}\r\n\r\n\tfunction getTextAlignForAngle(angle) {\r\n\t\tif (angle === 0 || angle === 180) {\r\n\t\t\treturn 'center';\r\n\t\t} else if (angle < 180) {\r\n\t\t\treturn 'left';\r\n\t\t}\r\n\r\n\t\treturn 'right';\r\n\t}\r\n\r\n\tfunction fillText(ctx, text, position, fontSize) {\r\n\t\tif (helpers.isArray(text)) {\r\n\t\t\tvar y = position.y;\r\n\t\t\tvar spacing = 1.5 * fontSize;\r\n\r\n\t\t\tfor (var i = 0; i < text.length; ++i) {\r\n\t\t\t\tctx.fillText(text[i], position.x, y);\r\n\t\t\t\ty += spacing;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tctx.fillText(text, position.x, position.y);\r\n\t\t}\r\n\t}\r\n\r\n\tfunction adjustPointPositionForLabelHeight(angle, textSize, position) {\r\n\t\tif (angle === 90 || angle === 270) {\r\n\t\t\tposition.y -= (textSize.h / 2);\r\n\t\t} else if (angle > 270 || angle < 90) {\r\n\t\t\tposition.y -= textSize.h;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction drawPointLabels(scale) {\r\n\t\tvar ctx = scale.ctx;\r\n\t\tvar opts = scale.options;\r\n\t\tvar angleLineOpts = opts.angleLines;\r\n\t\tvar pointLabelOpts = opts.pointLabels;\r\n\r\n\t\tctx.lineWidth = angleLineOpts.lineWidth;\r\n\t\tctx.strokeStyle = angleLineOpts.color;\r\n\r\n\t\tvar outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\r\n\r\n\t\t// Point Label Font\r\n\t\tvar plFont = getPointLabelFontOptions(scale);\r\n\r\n\t\tctx.textBaseline = 'top';\r\n\r\n\t\tfor (var i = getValueCount(scale) - 1; i >= 0; i--) {\r\n\t\t\tif (angleLineOpts.display) {\r\n\t\t\t\tvar outerPosition = scale.getPointPosition(i, outerDistance);\r\n\t\t\t\tctx.beginPath();\r\n\t\t\t\tctx.moveTo(scale.xCenter, scale.yCenter);\r\n\t\t\t\tctx.lineTo(outerPosition.x, outerPosition.y);\r\n\t\t\t\tctx.stroke();\r\n\t\t\t\tctx.closePath();\r\n\t\t\t}\r\n\r\n\t\t\tif (pointLabelOpts.display) {\r\n\t\t\t\t// Extra 3px out for some label spacing\r\n\t\t\t\tvar pointLabelPosition = scale.getPointPosition(i, outerDistance + 5);\r\n\r\n\t\t\t\t// Keep this in loop since we may support array properties here\r\n\t\t\t\tvar pointLabelFontColor = helpers.valueAtIndexOrDefault(pointLabelOpts.fontColor, i, globalDefaults.defaultFontColor);\r\n\t\t\t\tctx.font = plFont.font;\r\n\t\t\t\tctx.fillStyle = pointLabelFontColor;\r\n\r\n\t\t\t\tvar angleRadians = scale.getIndexAngle(i);\r\n\t\t\t\tvar angle = helpers.toDegrees(angleRadians);\r\n\t\t\t\tctx.textAlign = getTextAlignForAngle(angle);\r\n\t\t\t\tadjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition);\r\n\t\t\t\tfillText(ctx, scale.pointLabels[i] || '', pointLabelPosition, plFont.size);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction drawRadiusLine(scale, gridLineOpts, radius, index) {\r\n\t\tvar ctx = scale.ctx;\r\n\t\tctx.strokeStyle = helpers.valueAtIndexOrDefault(gridLineOpts.color, index - 1);\r\n\t\tctx.lineWidth = helpers.valueAtIndexOrDefault(gridLineOpts.lineWidth, index - 1);\r\n\r\n\t\tif (scale.options.gridLines.circular) {\r\n\t\t\t// Draw circular arcs between the points\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(scale.xCenter, scale.yCenter, radius, 0, Math.PI * 2);\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.stroke();\r\n\t\t} else {\r\n\t\t\t// Draw straight lines connecting each index\r\n\t\t\tvar valueCount = getValueCount(scale);\r\n\r\n\t\t\tif (valueCount === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tctx.beginPath();\r\n\t\t\tvar pointPosition = scale.getPointPosition(0, radius);\r\n\t\t\tctx.moveTo(pointPosition.x, pointPosition.y);\r\n\r\n\t\t\tfor (var i = 1; i < valueCount; i++) {\r\n\t\t\t\tpointPosition = scale.getPointPosition(i, radius);\r\n\t\t\t\tctx.lineTo(pointPosition.x, pointPosition.y);\r\n\t\t\t}\r\n\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.stroke();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction numberOrZero(param) {\r\n\t\treturn helpers.isNumber(param) ? param : 0;\r\n\t}\r\n\r\n\tvar LinearRadialScale = Chart.LinearScaleBase.extend({\r\n\t\tsetDimensions: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\t\t\t// Set the unconstrained dimension before label rotation\r\n\t\t\tme.width = me.maxWidth;\r\n\t\t\tme.height = me.maxHeight;\r\n\t\t\tme.xCenter = Math.round(me.width / 2);\r\n\t\t\tme.yCenter = Math.round(me.height / 2);\r\n\r\n\t\t\tvar minSize = helpers.min([me.height, me.width]);\r\n\t\t\tvar tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\r\n\t\t\tme.drawingArea = opts.display ? (minSize / 2) - (tickFontSize / 2 + tickOpts.backdropPaddingY) : (minSize / 2);\r\n\t\t},\r\n\t\tdetermineDataLimits: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar min = Number.POSITIVE_INFINITY;\r\n\t\t\tvar max = Number.NEGATIVE_INFINITY;\r\n\r\n\t\t\thelpers.each(chart.data.datasets, function(dataset, datasetIndex) {\r\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex)) {\r\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\r\n\r\n\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\r\n\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\r\n\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tmin = Math.min(value, min);\r\n\t\t\t\t\t\tmax = Math.max(value, max);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tme.min = (min === Number.POSITIVE_INFINITY ? 0 : min);\r\n\t\t\tme.max = (max === Number.NEGATIVE_INFINITY ? 0 : max);\r\n\r\n\t\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\r\n\t\t\tme.handleTickRangeOptions();\r\n\t\t},\r\n\t\tgetTickLimit: function() {\r\n\t\t\tvar tickOpts = this.options.ticks;\r\n\t\t\tvar tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\r\n\t\t\treturn Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(this.drawingArea / (1.5 * tickFontSize)));\r\n\t\t},\r\n\t\tconvertTicksToLabels: function() {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tChart.LinearScaleBase.prototype.convertTicksToLabels.call(me);\r\n\r\n\t\t\t// Point labels\r\n\t\t\tme.pointLabels = me.chart.data.labels.map(me.options.pointLabels.callback, me);\r\n\t\t},\r\n\t\tgetLabelForIndex: function(index, datasetIndex) {\r\n\t\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\r\n\t\t},\r\n\t\tfit: function() {\r\n\t\t\tif (this.options.pointLabels.display) {\r\n\t\t\t\tfitWithPointLabels(this);\r\n\t\t\t} else {\r\n\t\t\t\tfit(this);\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * Set radius reductions and determine new radius and center point\r\n\t\t * @private\r\n\t\t */\r\n\t\tsetReductions: function(largestPossibleRadius, furthestLimits, furthestAngles) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\r\n\t\t\tvar radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\r\n\t\t\tvar radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\r\n\t\t\tvar radiusReductionBottom = -Math.max(furthestLimits.b - me.height, 0) / Math.cos(furthestAngles.b);\r\n\r\n\t\t\tradiusReductionLeft = numberOrZero(radiusReductionLeft);\r\n\t\t\tradiusReductionRight = numberOrZero(radiusReductionRight);\r\n\t\t\tradiusReductionTop = numberOrZero(radiusReductionTop);\r\n\t\t\tradiusReductionBottom = numberOrZero(radiusReductionBottom);\r\n\r\n\t\t\tme.drawingArea = Math.min(\r\n\t\t\t\tMath.round(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\r\n\t\t\t\tMath.round(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2));\r\n\t\t\tme.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\r\n\t\t},\r\n\t\tsetCenterPoint: function(leftMovement, rightMovement, topMovement, bottomMovement) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar maxRight = me.width - rightMovement - me.drawingArea;\r\n\t\t\tvar maxLeft = leftMovement + me.drawingArea;\r\n\t\t\tvar maxTop = topMovement + me.drawingArea;\r\n\t\t\tvar maxBottom = me.height - bottomMovement - me.drawingArea;\r\n\r\n\t\t\tme.xCenter = Math.round(((maxLeft + maxRight) / 2) + me.left);\r\n\t\t\tme.yCenter = Math.round(((maxTop + maxBottom) / 2) + me.top);\r\n\t\t},\r\n\r\n\t\tgetIndexAngle: function(index) {\r\n\t\t\tvar angleMultiplier = (Math.PI * 2) / getValueCount(this);\r\n\t\t\tvar startAngle = this.chart.options && this.chart.options.startAngle ?\r\n\t\t\t\tthis.chart.options.startAngle :\r\n\t\t\t\t0;\r\n\r\n\t\t\tvar startAngleRadians = startAngle * Math.PI * 2 / 360;\r\n\r\n\t\t\t// Start from the top instead of right, so remove a quarter of the circle\r\n\t\t\treturn index * angleMultiplier + startAngleRadians;\r\n\t\t},\r\n\t\tgetDistanceFromCenterForValue: function(value) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tif (value === null) {\r\n\t\t\t\treturn 0; // null always in center\r\n\t\t\t}\r\n\r\n\t\t\t// Take into account half font size + the yPadding of the top value\r\n\t\t\tvar scalingFactor = me.drawingArea / (me.max - me.min);\r\n\t\t\tif (me.options.ticks.reverse) {\r\n\t\t\t\treturn (me.max - value) * scalingFactor;\r\n\t\t\t}\r\n\t\t\treturn (value - me.min) * scalingFactor;\r\n\t\t},\r\n\t\tgetPointPosition: function(index, distanceFromCenter) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar thisAngle = me.getIndexAngle(index) - (Math.PI / 2);\r\n\t\t\treturn {\r\n\t\t\t\tx: Math.round(Math.cos(thisAngle) * distanceFromCenter) + me.xCenter,\r\n\t\t\t\ty: Math.round(Math.sin(thisAngle) * distanceFromCenter) + me.yCenter\r\n\t\t\t};\r\n\t\t},\r\n\t\tgetPointPositionForValue: function(index, value) {\r\n\t\t\treturn this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\r\n\t\t},\r\n\r\n\t\tgetBasePosition: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar min = me.min;\r\n\t\t\tvar max = me.max;\r\n\r\n\t\t\treturn me.getPointPositionForValue(0,\r\n\t\t\t\tme.beginAtZero ? 0 :\r\n\t\t\t\tmin < 0 && max < 0 ? max :\r\n\t\t\t\tmin > 0 && max > 0 ? min :\r\n\t\t\t\t0);\r\n\t\t},\r\n\r\n\t\tdraw: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar opts = me.options;\r\n\t\t\tvar gridLineOpts = opts.gridLines;\r\n\t\t\tvar tickOpts = opts.ticks;\r\n\t\t\tvar valueOrDefault = helpers.valueOrDefault;\r\n\r\n\t\t\tif (opts.display) {\r\n\t\t\t\tvar ctx = me.ctx;\r\n\t\t\t\tvar startAngle = this.getIndexAngle(0);\r\n\r\n\t\t\t\t// Tick Font\r\n\t\t\t\tvar tickFontSize = valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\r\n\t\t\t\tvar tickFontStyle = valueOrDefault(tickOpts.fontStyle, globalDefaults.defaultFontStyle);\r\n\t\t\t\tvar tickFontFamily = valueOrDefault(tickOpts.fontFamily, globalDefaults.defaultFontFamily);\r\n\t\t\t\tvar tickLabelFont = helpers.fontString(tickFontSize, tickFontStyle, tickFontFamily);\r\n\r\n\t\t\t\thelpers.each(me.ticks, function(label, index) {\r\n\t\t\t\t\t// Don't draw a centre value (if it is minimum)\r\n\t\t\t\t\tif (index > 0 || tickOpts.reverse) {\r\n\t\t\t\t\t\tvar yCenterOffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\r\n\r\n\t\t\t\t\t\t// Draw circular lines around the scale\r\n\t\t\t\t\t\tif (gridLineOpts.display && index !== 0) {\r\n\t\t\t\t\t\t\tdrawRadiusLine(me, gridLineOpts, yCenterOffset, index);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (tickOpts.display) {\r\n\t\t\t\t\t\t\tvar tickFontColor = valueOrDefault(tickOpts.fontColor, globalDefaults.defaultFontColor);\r\n\t\t\t\t\t\t\tctx.font = tickLabelFont;\r\n\r\n\t\t\t\t\t\t\tctx.save();\r\n\t\t\t\t\t\t\tctx.translate(me.xCenter, me.yCenter);\r\n\t\t\t\t\t\t\tctx.rotate(startAngle);\r\n\r\n\t\t\t\t\t\t\tif (tickOpts.showLabelBackdrop) {\r\n\t\t\t\t\t\t\t\tvar labelWidth = ctx.measureText(label).width;\r\n\t\t\t\t\t\t\t\tctx.fillStyle = tickOpts.backdropColor;\r\n\t\t\t\t\t\t\t\tctx.fillRect(\r\n\t\t\t\t\t\t\t\t\t-labelWidth / 2 - tickOpts.backdropPaddingX,\r\n\t\t\t\t\t\t\t\t\t-yCenterOffset - tickFontSize / 2 - tickOpts.backdropPaddingY,\r\n\t\t\t\t\t\t\t\t\tlabelWidth + tickOpts.backdropPaddingX * 2,\r\n\t\t\t\t\t\t\t\t\ttickFontSize + tickOpts.backdropPaddingY * 2\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tctx.textAlign = 'center';\r\n\t\t\t\t\t\t\tctx.textBaseline = 'middle';\r\n\t\t\t\t\t\t\tctx.fillStyle = tickFontColor;\r\n\t\t\t\t\t\t\tctx.fillText(label, 0, -yCenterOffset);\r\n\t\t\t\t\t\t\tctx.restore();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (opts.angleLines.display || opts.pointLabels.display) {\r\n\t\t\t\t\tdrawPointLabels(me);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tChart.scaleService.registerScaleType('radialLinear', LinearRadialScale, defaultConfig);\r\n\r\n};\r\n\r\n},{\"25\":25,\"34\":34,\"45\":45}],58:[function(require,module,exports){\r\n/* global window: false */\r\n'use strict';\r\n\r\nvar moment = require(1);\r\nmoment = typeof moment === 'function' ? moment : window.moment;\r\n\r\nvar defaults = require(25);\r\nvar helpers = require(45);\r\n\r\n// Integer constants are from the ES6 spec.\r\nvar MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;\r\nvar MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\n\r\nvar INTERVALS = {\r\n\tmillisecond: {\r\n\t\tcommon: true,\r\n\t\tsize: 1,\r\n\t\tsteps: [1, 2, 5, 10, 20, 50, 100, 250, 500]\r\n\t},\r\n\tsecond: {\r\n\t\tcommon: true,\r\n\t\tsize: 1000,\r\n\t\tsteps: [1, 2, 5, 10, 30]\r\n\t},\r\n\tminute: {\r\n\t\tcommon: true,\r\n\t\tsize: 60000,\r\n\t\tsteps: [1, 2, 5, 10, 30]\r\n\t},\r\n\thour: {\r\n\t\tcommon: true,\r\n\t\tsize: 3600000,\r\n\t\tsteps: [1, 2, 3, 6, 12]\r\n\t},\r\n\tday: {\r\n\t\tcommon: true,\r\n\t\tsize: 86400000,\r\n\t\tsteps: [1, 2, 5]\r\n\t},\r\n\tweek: {\r\n\t\tcommon: false,\r\n\t\tsize: 604800000,\r\n\t\tsteps: [1, 2, 3, 4]\r\n\t},\r\n\tmonth: {\r\n\t\tcommon: true,\r\n\t\tsize: 2.628e9,\r\n\t\tsteps: [1, 2, 3]\r\n\t},\r\n\tquarter: {\r\n\t\tcommon: false,\r\n\t\tsize: 7.884e9,\r\n\t\tsteps: [1, 2, 3, 4]\r\n\t},\r\n\tyear: {\r\n\t\tcommon: true,\r\n\t\tsize: 3.154e10\r\n\t}\r\n};\r\n\r\nvar UNITS = Object.keys(INTERVALS);\r\n\r\nfunction sorter(a, b) {\r\n\treturn a - b;\r\n}\r\n\r\nfunction arrayUnique(items) {\r\n\tvar hash = {};\r\n\tvar out = [];\r\n\tvar i, ilen, item;\r\n\r\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\r\n\t\titem = items[i];\r\n\t\tif (!hash[item]) {\r\n\t\t\thash[item] = true;\r\n\t\t\tout.push(item);\r\n\t\t}\r\n\t}\r\n\r\n\treturn out;\r\n}\r\n\r\n/**\r\n * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\r\n * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\r\n * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\r\n * extremity (left + width or top + height). Note that it would be more optimized to directly\r\n * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\r\n * to create the lookup table. The table ALWAYS contains at least two items: min and max.\r\n *\r\n * @param {Number[]} timestamps - timestamps sorted from lowest to highest.\r\n * @param {String} distribution - If 'linear', timestamps will be spread linearly along the min\r\n * and max range, so basically, the table will contains only two items: {min, 0} and {max, 1}.\r\n * If 'series', timestamps will be positioned at the same distance from each other. In this\r\n * case, only timestamps that break the time linearity are registered, meaning that in the\r\n * best case, all timestamps are linear, the table contains only min and max.\r\n */\r\nfunction buildLookupTable(timestamps, min, max, distribution) {\r\n\tif (distribution === 'linear' || !timestamps.length) {\r\n\t\treturn [\r\n\t\t\t{time: min, pos: 0},\r\n\t\t\t{time: max, pos: 1}\r\n\t\t];\r\n\t}\r\n\r\n\tvar table = [];\r\n\tvar items = [min];\r\n\tvar i, ilen, prev, curr, next;\r\n\r\n\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\r\n\t\tcurr = timestamps[i];\r\n\t\tif (curr > min && curr < max) {\r\n\t\t\titems.push(curr);\r\n\t\t}\r\n\t}\r\n\r\n\titems.push(max);\r\n\r\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\r\n\t\tnext = items[i + 1];\r\n\t\tprev = items[i - 1];\r\n\t\tcurr = items[i];\r\n\r\n\t\t// only add points that breaks the scale linearity\r\n\t\tif (prev === undefined || next === undefined || Math.round((next + prev) / 2) !== curr) {\r\n\t\t\ttable.push({time: curr, pos: i / (ilen - 1)});\r\n\t\t}\r\n\t}\r\n\r\n\treturn table;\r\n}\r\n\r\n// @see adapted from http://www.anujgakhar.com/2014/03/01/binary-search-in-javascript/\r\nfunction lookup(table, key, value) {\r\n\tvar lo = 0;\r\n\tvar hi = table.length - 1;\r\n\tvar mid, i0, i1;\r\n\r\n\twhile (lo >= 0 && lo <= hi) {\r\n\t\tmid = (lo + hi) >> 1;\r\n\t\ti0 = table[mid - 1] || null;\r\n\t\ti1 = table[mid];\r\n\r\n\t\tif (!i0) {\r\n\t\t\t// given value is outside table (before first item)\r\n\t\t\treturn {lo: null, hi: i1};\r\n\t\t} else if (i1[key] < value) {\r\n\t\t\tlo = mid + 1;\r\n\t\t} else if (i0[key] > value) {\r\n\t\t\thi = mid - 1;\r\n\t\t} else {\r\n\t\t\treturn {lo: i0, hi: i1};\r\n\t\t}\r\n\t}\r\n\r\n\t// given value is outside table (after last item)\r\n\treturn {lo: i1, hi: null};\r\n}\r\n\r\n/**\r\n * Linearly interpolates the given source `value` using the table items `skey` values and\r\n * returns the associated `tkey` value. For example, interpolate(table, 'time', 42, 'pos')\r\n * returns the position for a timestamp equal to 42. If value is out of bounds, values at\r\n * index [0, 1] or [n - 1, n] are used for the interpolation.\r\n */\r\nfunction interpolate(table, skey, sval, tkey) {\r\n\tvar range = lookup(table, skey, sval);\r\n\r\n\t// Note: the lookup table ALWAYS contains at least 2 items (min and max)\r\n\tvar prev = !range.lo ? table[0] : !range.hi ? table[table.length - 2] : range.lo;\r\n\tvar next = !range.lo ? table[1] : !range.hi ? table[table.length - 1] : range.hi;\r\n\r\n\tvar span = next[skey] - prev[skey];\r\n\tvar ratio = span ? (sval - prev[skey]) / span : 0;\r\n\tvar offset = (next[tkey] - prev[tkey]) * ratio;\r\n\r\n\treturn prev[tkey] + offset;\r\n}\r\n\r\n/**\r\n * Convert the given value to a moment object using the given time options.\r\n * @see http://momentjs.com/docs/#/parsing/\r\n */\r\nfunction momentify(value, options) {\r\n\tvar parser = options.parser;\r\n\tvar format = options.parser || options.format;\r\n\r\n\tif (typeof parser === 'function') {\r\n\t\treturn parser(value);\r\n\t}\r\n\r\n\tif (typeof value === 'string' && typeof format === 'string') {\r\n\t\treturn moment(value, format);\r\n\t}\r\n\r\n\tif (!(value instanceof moment)) {\r\n\t\tvalue = moment(value);\r\n\t}\r\n\r\n\tif (value.isValid()) {\r\n\t\treturn value;\r\n\t}\r\n\r\n\t// Labels are in an incompatible moment format and no `parser` has been provided.\r\n\t// The user might still use the deprecated `format` option to convert his inputs.\r\n\tif (typeof format === 'function') {\r\n\t\treturn format(value);\r\n\t}\r\n\r\n\treturn value;\r\n}\r\n\r\nfunction parse(input, scale) {\r\n\tif (helpers.isNullOrUndef(input)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tvar options = scale.options.time;\r\n\tvar value = momentify(scale.getRightValue(input), options);\r\n\tif (!value.isValid()) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tif (options.round) {\r\n\t\tvalue.startOf(options.round);\r\n\t}\r\n\r\n\treturn value.valueOf();\r\n}\r\n\r\n/**\r\n * Returns the number of unit to skip to be able to display up to `capacity` number of ticks\r\n * in `unit` for the given `min` / `max` range and respecting the interval steps constraints.\r\n */\r\nfunction determineStepSize(min, max, unit, capacity) {\r\n\tvar range = max - min;\r\n\tvar interval = INTERVALS[unit];\r\n\tvar milliseconds = interval.size;\r\n\tvar steps = interval.steps;\r\n\tvar i, ilen, factor;\r\n\r\n\tif (!steps) {\r\n\t\treturn Math.ceil(range / (capacity * milliseconds));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = steps.length; i < ilen; ++i) {\r\n\t\tfactor = steps[i];\r\n\t\tif (Math.ceil(range / (milliseconds * factor)) <= capacity) {\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn factor;\r\n}\r\n\r\n/**\r\n * Figures out what unit results in an appropriate number of auto-generated ticks\r\n */\r\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\r\n\tvar ilen = UNITS.length;\r\n\tvar i, interval, factor;\r\n\r\n\tfor (i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\r\n\t\tinterval = INTERVALS[UNITS[i]];\r\n\t\tfactor = interval.steps ? interval.steps[interval.steps.length - 1] : MAX_INTEGER;\r\n\r\n\t\tif (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\r\n\t\t\treturn UNITS[i];\r\n\t\t}\r\n\t}\r\n\r\n\treturn UNITS[ilen - 1];\r\n}\r\n\r\n/**\r\n * Figures out what unit to format a set of ticks with\r\n */\r\nfunction determineUnitForFormatting(ticks, minUnit, min, max) {\r\n\tvar duration = moment.duration(moment(max).diff(moment(min)));\r\n\tvar ilen = UNITS.length;\r\n\tvar i, unit;\r\n\r\n\tfor (i = ilen - 1; i >= UNITS.indexOf(minUnit); i--) {\r\n\t\tunit = UNITS[i];\r\n\t\tif (INTERVALS[unit].common && duration.as(unit) >= ticks.length) {\r\n\t\t\treturn unit;\r\n\t\t}\r\n\t}\r\n\r\n\treturn UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\r\n}\r\n\r\nfunction determineMajorUnit(unit) {\r\n\tfor (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\r\n\t\tif (INTERVALS[UNITS[i]].common) {\r\n\t\t\treturn UNITS[i];\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Generates a maximum of `capacity` timestamps between min and max, rounded to the\r\n * `minor` unit, aligned on the `major` unit and using the given scale time `options`.\r\n * Important: this method can return ticks outside the min and max range, it's the\r\n * responsibility of the calling code to clamp values if needed.\r\n */\r\nfunction generate(min, max, capacity, options) {\r\n\tvar timeOpts = options.time;\r\n\tvar minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, capacity);\r\n\tvar major = determineMajorUnit(minor);\r\n\tvar stepSize = helpers.valueOrDefault(timeOpts.stepSize, timeOpts.unitStepSize);\r\n\tvar weekday = minor === 'week' ? timeOpts.isoWeekday : false;\r\n\tvar majorTicksEnabled = options.ticks.major.enabled;\r\n\tvar interval = INTERVALS[minor];\r\n\tvar first = moment(min);\r\n\tvar last = moment(max);\r\n\tvar ticks = [];\r\n\tvar time;\r\n\r\n\tif (!stepSize) {\r\n\t\tstepSize = determineStepSize(min, max, minor, capacity);\r\n\t}\r\n\r\n\t// For 'week' unit, handle the first day of week option\r\n\tif (weekday) {\r\n\t\tfirst = first.isoWeekday(weekday);\r\n\t\tlast = last.isoWeekday(weekday);\r\n\t}\r\n\r\n\t// Align first/last ticks on unit\r\n\tfirst = first.startOf(weekday ? 'day' : minor);\r\n\tlast = last.startOf(weekday ? 'day' : minor);\r\n\r\n\t// Make sure that the last tick include max\r\n\tif (last < max) {\r\n\t\tlast.add(1, minor);\r\n\t}\r\n\r\n\ttime = moment(first);\r\n\r\n\tif (majorTicksEnabled && major && !weekday && !timeOpts.round) {\r\n\t\t// Align the first tick on the previous `minor` unit aligned on the `major` unit:\r\n\t\t// we first aligned time on the previous `major` unit then add the number of full\r\n\t\t// stepSize there is between first and the previous major time.\r\n\t\ttime.startOf(major);\r\n\t\ttime.add(~~((first - time) / (interval.size * stepSize)) * stepSize, minor);\r\n\t}\r\n\r\n\tfor (; time < last; time.add(stepSize, minor)) {\r\n\t\tticks.push(+time);\r\n\t}\r\n\r\n\tticks.push(+time);\r\n\r\n\treturn ticks;\r\n}\r\n\r\n/**\r\n * Returns the right and left offsets from edges in the form of {left, right}.\r\n * Offsets are added when the `offset` option is true.\r\n */\r\nfunction computeOffsets(table, ticks, min, max, options) {\r\n\tvar left = 0;\r\n\tvar right = 0;\r\n\tvar upper, lower;\r\n\r\n\tif (options.offset && ticks.length) {\r\n\t\tif (!options.time.min) {\r\n\t\t\tupper = ticks.length > 1 ? ticks[1] : max;\r\n\t\t\tlower = ticks[0];\r\n\t\t\tleft = (\r\n\t\t\t\tinterpolate(table, 'time', upper, 'pos') -\r\n\t\t\t\tinterpolate(table, 'time', lower, 'pos')\r\n\t\t\t) / 2;\r\n\t\t}\r\n\t\tif (!options.time.max) {\r\n\t\t\tupper = ticks[ticks.length - 1];\r\n\t\t\tlower = ticks.length > 1 ? ticks[ticks.length - 2] : min;\r\n\t\t\tright = (\r\n\t\t\t\tinterpolate(table, 'time', upper, 'pos') -\r\n\t\t\t\tinterpolate(table, 'time', lower, 'pos')\r\n\t\t\t) / 2;\r\n\t\t}\r\n\t}\r\n\r\n\treturn {left: left, right: right};\r\n}\r\n\r\nfunction ticksFromTimestamps(values, majorUnit) {\r\n\tvar ticks = [];\r\n\tvar i, ilen, value, major;\r\n\r\n\tfor (i = 0, ilen = values.length; i < ilen; ++i) {\r\n\t\tvalue = values[i];\r\n\t\tmajor = majorUnit ? value === +moment(value).startOf(majorUnit) : false;\r\n\r\n\t\tticks.push({\r\n\t\t\tvalue: value,\r\n\t\t\tmajor: major\r\n\t\t});\r\n\t}\r\n\r\n\treturn ticks;\r\n}\r\n\r\nfunction determineLabelFormat(data, timeOpts) {\r\n\tvar i, momentDate, hasTime;\r\n\tvar ilen = data.length;\r\n\r\n\t// find the label with the most parts (milliseconds, minutes, etc.)\r\n\t// format all labels with the same level of detail as the most specific label\r\n\tfor (i = 0; i < ilen; i++) {\r\n\t\tmomentDate = momentify(data[i], timeOpts);\r\n\t\tif (momentDate.millisecond() !== 0) {\r\n\t\t\treturn 'MMM D, YYYY h:mm:ss.SSS a';\r\n\t\t}\r\n\t\tif (momentDate.second() !== 0 || momentDate.minute() !== 0 || momentDate.hour() !== 0) {\r\n\t\t\thasTime = true;\r\n\t\t}\r\n\t}\r\n\tif (hasTime) {\r\n\t\treturn 'MMM D, YYYY h:mm:ss a';\r\n\t}\r\n\treturn 'MMM D, YYYY';\r\n}\r\n\r\nmodule.exports = function(Chart) {\r\n\r\n\tvar defaultConfig = {\r\n\t\tposition: 'bottom',\r\n\r\n\t\t/**\r\n\t\t * Data distribution along the scale:\r\n\t\t * - 'linear': data are spread according to their time (distances can vary),\r\n\t\t * - 'series': data are spread at the same distance from each other.\r\n\t\t * @see https://github.com/chartjs/Chart.js/pull/4507\r\n\t\t * @since 2.7.0\r\n\t\t */\r\n\t\tdistribution: 'linear',\r\n\r\n\t\t/**\r\n\t\t * Scale boundary strategy (bypassed by min/max time options)\r\n\t\t * - `data`: make sure data are fully visible, ticks outside are removed\r\n\t\t * - `ticks`: make sure ticks are fully visible, data outside are truncated\r\n\t\t * @see https://github.com/chartjs/Chart.js/pull/4556\r\n\t\t * @since 2.7.0\r\n\t\t */\r\n\t\tbounds: 'data',\r\n\r\n\t\ttime: {\r\n\t\t\tparser: false, // false == a pattern string from http://momentjs.com/docs/#/parsing/string-format/ or a custom callback that converts its argument to a moment\r\n\t\t\tformat: false, // DEPRECATED false == date objects, moment object, callback or a pattern string from http://momentjs.com/docs/#/parsing/string-format/\r\n\t\t\tunit: false, // false == automatic or override with week, month, year, etc.\r\n\t\t\tround: false, // none, or override with week, month, year, etc.\r\n\t\t\tdisplayFormat: false, // DEPRECATED\r\n\t\t\tisoWeekday: false, // override week start day - see http://momentjs.com/docs/#/get-set/iso-weekday/\r\n\t\t\tminUnit: 'millisecond',\r\n\r\n\t\t\t// defaults to unit's corresponding unitFormat below or override using pattern string from http://momentjs.com/docs/#/displaying/format/\r\n\t\t\tdisplayFormats: {\r\n\t\t\t\tmillisecond: 'h:mm:ss.SSS a', // 11:20:01.123 AM,\r\n\t\t\t\tsecond: 'h:mm:ss a', // 11:20:01 AM\r\n\t\t\t\tminute: 'h:mm a', // 11:20 AM\r\n\t\t\t\thour: 'hA', // 5PM\r\n\t\t\t\tday: 'MMM D', // Sep 4\r\n\t\t\t\tweek: 'll', // Week 46, or maybe \"[W]WW - YYYY\" ?\r\n\t\t\t\tmonth: 'MMM YYYY', // Sept 2015\r\n\t\t\t\tquarter: '[Q]Q - YYYY', // Q3\r\n\t\t\t\tyear: 'YYYY' // 2015\r\n\t\t\t},\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tautoSkip: false,\r\n\r\n\t\t\t/**\r\n\t\t\t * Ticks generation input values:\r\n\t\t\t * - 'auto': generates \"optimal\" ticks based on scale size and time options.\r\n\t\t\t * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\r\n\t\t\t * - 'labels': generates ticks from user given `data.labels` values ONLY.\r\n\t\t\t * @see https://github.com/chartjs/Chart.js/pull/4507\r\n\t\t\t * @since 2.7.0\r\n\t\t\t */\r\n\t\t\tsource: 'auto',\r\n\r\n\t\t\tmajor: {\r\n\t\t\t\tenabled: false\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tvar TimeScale = Chart.Scale.extend({\r\n\t\tinitialize: function() {\r\n\t\t\tif (!moment) {\r\n\t\t\t\tthrow new Error('Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com');\r\n\t\t\t}\r\n\r\n\t\t\tthis.mergeTicksOptions();\r\n\r\n\t\t\tChart.Scale.prototype.initialize.call(this);\r\n\t\t},\r\n\r\n\t\tupdate: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = me.options;\r\n\r\n\t\t\t// DEPRECATIONS: output a message only one time per update\r\n\t\t\tif (options.time && options.time.format) {\r\n\t\t\t\tconsole.warn('options.time.format is deprecated and replaced by options.time.parser.');\r\n\t\t\t}\r\n\r\n\t\t\treturn Chart.Scale.prototype.update.apply(me, arguments);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Allows data to be referenced via 't' attribute\r\n\t\t */\r\n\t\tgetRightValue: function(rawValue) {\r\n\t\t\tif (rawValue && rawValue.t !== undefined) {\r\n\t\t\t\trawValue = rawValue.t;\r\n\t\t\t}\r\n\t\t\treturn Chart.Scale.prototype.getRightValue.call(this, rawValue);\r\n\t\t},\r\n\r\n\t\tdetermineDataLimits: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar chart = me.chart;\r\n\t\t\tvar timeOpts = me.options.time;\r\n\t\t\tvar unit = timeOpts.unit || 'day';\r\n\t\t\tvar min = MAX_INTEGER;\r\n\t\t\tvar max = MIN_INTEGER;\r\n\t\t\tvar timestamps = [];\r\n\t\t\tvar datasets = [];\r\n\t\t\tvar labels = [];\r\n\t\t\tvar i, j, ilen, jlen, data, timestamp;\r\n\r\n\t\t\t// Convert labels to timestamps\r\n\t\t\tfor (i = 0, ilen = chart.data.labels.length; i < ilen; ++i) {\r\n\t\t\t\tlabels.push(parse(chart.data.labels[i], me));\r\n\t\t\t}\r\n\r\n\t\t\t// Convert data to timestamps\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tdata = chart.data.datasets[i].data;\r\n\r\n\t\t\t\t\t// Let's consider that all data have the same format.\r\n\t\t\t\t\tif (helpers.isObject(data[0])) {\r\n\t\t\t\t\t\tdatasets[i] = [];\r\n\r\n\t\t\t\t\t\tfor (j = 0, jlen = data.length; j < jlen; ++j) {\r\n\t\t\t\t\t\t\ttimestamp = parse(data[j], me);\r\n\t\t\t\t\t\t\ttimestamps.push(timestamp);\r\n\t\t\t\t\t\t\tdatasets[i][j] = timestamp;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttimestamps.push.apply(timestamps, labels);\r\n\t\t\t\t\t\tdatasets[i] = labels.slice(0);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdatasets[i] = [];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (labels.length) {\r\n\t\t\t\t// Sort labels **after** data have been converted\r\n\t\t\t\tlabels = arrayUnique(labels).sort(sorter);\r\n\t\t\t\tmin = Math.min(min, labels[0]);\r\n\t\t\t\tmax = Math.max(max, labels[labels.length - 1]);\r\n\t\t\t}\r\n\r\n\t\t\tif (timestamps.length) {\r\n\t\t\t\ttimestamps = arrayUnique(timestamps).sort(sorter);\r\n\t\t\t\tmin = Math.min(min, timestamps[0]);\r\n\t\t\t\tmax = Math.max(max, timestamps[timestamps.length - 1]);\r\n\t\t\t}\r\n\r\n\t\t\tmin = parse(timeOpts.min, me) || min;\r\n\t\t\tmax = parse(timeOpts.max, me) || max;\r\n\r\n\t\t\t// In case there is no valid min/max, set limits based on unit time option\r\n\t\t\tmin = min === MAX_INTEGER ? +moment().startOf(unit) : min;\r\n\t\t\tmax = max === MIN_INTEGER ? +moment().endOf(unit) + 1 : max;\r\n\r\n\t\t\t// Make sure that max is strictly higher than min (required by the lookup table)\r\n\t\t\tme.min = Math.min(min, max);\r\n\t\t\tme.max = Math.max(min + 1, max);\r\n\r\n\t\t\t// PRIVATE\r\n\t\t\tme._horizontal = me.isHorizontal();\r\n\t\t\tme._table = [];\r\n\t\t\tme._timestamps = {\r\n\t\t\t\tdata: timestamps,\r\n\t\t\t\tdatasets: datasets,\r\n\t\t\t\tlabels: labels\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\tbuildTicks: function() {\r\n\t\t\tvar me = this;\r\n\t\t\tvar min = me.min;\r\n\t\t\tvar max = me.max;\r\n\t\t\tvar options = me.options;\r\n\t\t\tvar timeOpts = options.time;\r\n\t\t\tvar timestamps = [];\r\n\t\t\tvar ticks = [];\r\n\t\t\tvar i, ilen, timestamp;\r\n\r\n\t\t\tswitch (options.ticks.source) {\r\n\t\t\tcase 'data':\r\n\t\t\t\ttimestamps = me._timestamps.data;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'labels':\r\n\t\t\t\ttimestamps = me._timestamps.labels;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'auto':\r\n\t\t\tdefault:\r\n\t\t\t\ttimestamps = generate(min, max, me.getLabelCapacity(min), options);\r\n\t\t\t}\r\n\r\n\t\t\tif (options.bounds === 'ticks' && timestamps.length) {\r\n\t\t\t\tmin = timestamps[0];\r\n\t\t\t\tmax = timestamps[timestamps.length - 1];\r\n\t\t\t}\r\n\r\n\t\t\t// Enforce limits with user min/max options\r\n\t\t\tmin = parse(timeOpts.min, me) || min;\r\n\t\t\tmax = parse(timeOpts.max, me) || max;\r\n\r\n\t\t\t// Remove ticks outside the min/max range\r\n\t\t\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\r\n\t\t\t\ttimestamp = timestamps[i];\r\n\t\t\t\tif (timestamp >= min && timestamp <= max) {\r\n\t\t\t\t\tticks.push(timestamp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tme.min = min;\r\n\t\t\tme.max = max;\r\n\r\n\t\t\t// PRIVATE\r\n\t\t\tme._unit = timeOpts.unit || determineUnitForFormatting(ticks, timeOpts.minUnit, me.min, me.max);\r\n\t\t\tme._majorUnit = determineMajorUnit(me._unit);\r\n\t\t\tme._table = buildLookupTable(me._timestamps.data, min, max, options.distribution);\r\n\t\t\tme._offsets = computeOffsets(me._table, ticks, min, max, options);\r\n\t\t\tme._labelFormat = determineLabelFormat(me._timestamps.data, timeOpts);\r\n\r\n\t\t\treturn ticksFromTimestamps(ticks, me._majorUnit);\r\n\t\t},\r\n\r\n\t\tgetLabelForIndex: function(index, datasetIndex) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar data = me.chart.data;\r\n\t\t\tvar timeOpts = me.options.time;\r\n\t\t\tvar label = data.labels && index < data.labels.length ? data.labels[index] : '';\r\n\t\t\tvar value = data.datasets[datasetIndex].data[index];\r\n\r\n\t\t\tif (helpers.isObject(value)) {\r\n\t\t\t\tlabel = me.getRightValue(value);\r\n\t\t\t}\r\n\t\t\tif (timeOpts.tooltipFormat) {\r\n\t\t\t\treturn momentify(label, timeOpts).format(timeOpts.tooltipFormat);\r\n\t\t\t}\r\n\t\t\tif (typeof label === 'string') {\r\n\t\t\t\treturn label;\r\n\t\t\t}\r\n\r\n\t\t\treturn momentify(label, timeOpts).format(me._labelFormat);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Function to format an individual tick mark\r\n\t\t * @private\r\n\t\t */\r\n\t\ttickFormatFunction: function(tick, index, ticks, formatOverride) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar options = me.options;\r\n\t\t\tvar time = tick.valueOf();\r\n\t\t\tvar formats = options.time.displayFormats;\r\n\t\t\tvar minorFormat = formats[me._unit];\r\n\t\t\tvar majorUnit = me._majorUnit;\r\n\t\t\tvar majorFormat = formats[majorUnit];\r\n\t\t\tvar majorTime = tick.clone().startOf(majorUnit).valueOf();\r\n\t\t\tvar majorTickOpts = options.ticks.major;\r\n\t\t\tvar major = majorTickOpts.enabled && majorUnit && majorFormat && time === majorTime;\r\n\t\t\tvar label = tick.format(formatOverride ? formatOverride : major ? majorFormat : minorFormat);\r\n\t\t\tvar tickOpts = major ? majorTickOpts : options.ticks.minor;\r\n\t\t\tvar formatter = helpers.valueOrDefault(tickOpts.callback, tickOpts.userCallback);\r\n\r\n\t\t\treturn formatter ? formatter(label, index, ticks) : label;\r\n\t\t},\r\n\r\n\t\tconvertTicksToLabels: function(ticks) {\r\n\t\t\tvar labels = [];\r\n\t\t\tvar i, ilen;\r\n\r\n\t\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\r\n\t\t\t\tlabels.push(this.tickFormatFunction(moment(ticks[i].value), i, ticks));\r\n\t\t\t}\r\n\r\n\t\t\treturn labels;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetPixelForOffset: function(time) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar size = me._horizontal ? me.width : me.height;\r\n\t\t\tvar start = me._horizontal ? me.left : me.top;\r\n\t\t\tvar pos = interpolate(me._table, 'time', time, 'pos');\r\n\r\n\t\t\treturn start + size * (me._offsets.left + pos) / (me._offsets.left + 1 + me._offsets.right);\r\n\t\t},\r\n\r\n\t\tgetPixelForValue: function(value, index, datasetIndex) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar time = null;\r\n\r\n\t\t\tif (index !== undefined && datasetIndex !== undefined) {\r\n\t\t\t\ttime = me._timestamps.datasets[datasetIndex][index];\r\n\t\t\t}\r\n\r\n\t\t\tif (time === null) {\r\n\t\t\t\ttime = parse(value, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (time !== null) {\r\n\t\t\t\treturn me.getPixelForOffset(time);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tgetPixelForTick: function(index) {\r\n\t\t\tvar ticks = this.getTicks();\r\n\t\t\treturn index >= 0 && index < ticks.length ?\r\n\t\t\t\tthis.getPixelForOffset(ticks[index].value) :\r\n\t\t\t\tnull;\r\n\t\t},\r\n\r\n\t\tgetValueForPixel: function(pixel) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar size = me._horizontal ? me.width : me.height;\r\n\t\t\tvar start = me._horizontal ? me.left : me.top;\r\n\t\t\tvar pos = (size ? (pixel - start) / size : 0) * (me._offsets.left + 1 + me._offsets.left) - me._offsets.right;\r\n\t\t\tvar time = interpolate(me._table, 'pos', pos, 'time');\r\n\r\n\t\t\treturn moment(time);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Crude approximation of what the label width might be\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetLabelWidth: function(label) {\r\n\t\t\tvar me = this;\r\n\t\t\tvar ticksOpts = me.options.ticks;\r\n\t\t\tvar tickLabelWidth = me.ctx.measureText(label).width;\r\n\t\t\tvar angle = helpers.toRadians(ticksOpts.maxRotation);\r\n\t\t\tvar cosRotation = Math.cos(angle);\r\n\t\t\tvar sinRotation = Math.sin(angle);\r\n\t\t\tvar tickFontSize = helpers.valueOrDefault(ticksOpts.fontSize, defaults.global.defaultFontSize);\r\n\r\n\t\t\treturn (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t */\r\n\t\tgetLabelCapacity: function(exampleTime) {\r\n\t\t\tvar me = this;\r\n\r\n\t\t\tvar formatOverride = me.options.time.displayFormats.millisecond;\t// Pick the longest format for guestimation\r\n\r\n\t\t\tvar exampleLabel = me.tickFormatFunction(moment(exampleTime), 0, [], formatOverride);\r\n\t\t\tvar tickLabelWidth = me.getLabelWidth(exampleLabel);\r\n\t\t\tvar innerWidth = me.isHorizontal() ? me.width : me.height;\r\n\r\n\t\t\tvar capacity = Math.floor(innerWidth / tickLabelWidth);\r\n\t\t\treturn capacity > 0 ? capacity : 1;\r\n\t\t}\r\n\t});\r\n\r\n\tChart.scaleService.registerScaleType('time', TimeScale, defaultConfig);\r\n};\r\n\r\n},{\"1\":1,\"25\":25,\"45\":45}]},{},[7])(7)\r\n});\n/*!\r\n * chartjs-plugin-annotation.js\r\n * http://chartjs.org/\r\n * Version: 0.5.7\r\n *\r\n * Copyright 2016 Evert Timberg\r\n * Released under the MIT license\r\n * https://github.com/chartjs/Chart.Annotation.js/blob/master/LICENSE.md\r\n */\r\n(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 0) {\r\n\t\t\t\tvar canvas = chartInstance.chart.canvas;\r\n\t\t\t\tvar eventHandler = events.dispatcher.bind(chartInstance);\r\n\t\t\t\tevents.collapseHoverEvents(watchFor).forEach(function(eventName) {\r\n\t\t\t\t\tchartHelpers.addEvent(canvas, eventName, eventHandler);\r\n\t\t\t\t\tchartInstance.annotation.onDestroy.push(function() {\r\n\t\t\t\t\t\tchartHelpers.removeEvent(canvas, eventName, eventHandler);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\tdestroy: function(chartInstance) {\r\n\t\t\tvar deregisterers = chartInstance.annotation.onDestroy;\r\n\t\t\twhile (deregisterers.length > 0) {\r\n\t\t\t\tderegisterers.pop()();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n\r\n},{\"./events.js\":4,\"./helpers.js\":5}],3:[function(require,module,exports){\r\nmodule.exports = function(Chart) {\r\n\tvar chartHelpers = Chart.helpers;\r\n\t\r\n\tvar AnnotationElement = Chart.Element.extend({\r\n\t\tinitialize: function() {\r\n\t\t\tthis.hidden = false;\r\n\t\t\tthis.hovering = false;\r\n\t\t\tthis._model = chartHelpers.clone(this._model) || {};\r\n\t\t\tthis.setDataLimits();\r\n\t\t},\r\n\t\tdestroy: function() {},\r\n\t\tsetDataLimits: function() {},\r\n\t\tconfigure: function() {},\r\n\t\tinRange: function() {},\r\n\t\tgetCenterPoint: function() {},\r\n\t\tgetWidth: function() {},\r\n\t\tgetHeight: function() {},\r\n\t\tgetArea: function() {},\r\n\t\tdraw: function() {}\r\n\t});\r\n\r\n\treturn AnnotationElement;\r\n};\r\n\r\n},{}],4:[function(require,module,exports){\r\nmodule.exports = function(Chart) {\r\n\tvar chartHelpers = Chart.helpers;\r\n\tvar helpers = require('./helpers.js')(Chart);\r\n\r\n\tfunction collapseHoverEvents(events) {\r\n\t\tvar hover = false;\r\n\t\tvar filteredEvents = events.filter(function(eventName) {\r\n\t\t\tswitch (eventName) {\r\n\t\t\t\tcase 'mouseenter':\r\n\t\t\t\tcase 'mouseover':\r\n\t\t\t\tcase 'mouseout':\r\n\t\t\t\tcase 'mouseleave':\r\n\t\t\t\t\thover = true;\r\n\t\t\t\t\treturn false;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (hover && filteredEvents.indexOf('mousemove') === -1) {\r\n\t\t\tfilteredEvents.push('mousemove');\r\n\t\t}\r\n\t\treturn filteredEvents;\r\n\t}\r\n\r\n\tfunction dispatcher(e) {\r\n\t\tvar ns = this.annotation;\r\n\t\tvar elements = helpers.elements(this);\r\n\t\tvar position = chartHelpers.getRelativePosition(e, this.chart);\r\n\t\tvar element = helpers.getNearestItems(elements, position);\r\n\t\tvar events = collapseHoverEvents(ns.options.events);\r\n\t\tvar dblClickSpeed = ns.options.dblClickSpeed;\r\n\t\tvar eventHandlers = [];\r\n\t\tvar eventHandlerName = helpers.getEventHandlerName(e.type);\r\n\t\tvar options = (element || {}).options;\r\n\r\n\t\t// Detect hover events\r\n\t\tif (e.type === 'mousemove') {\r\n\t\t\tif (element && !element.hovering) {\r\n\t\t\t\t// hover started\r\n\t\t\t\t['mouseenter', 'mouseover'].forEach(function(eventName) {\r\n\t\t\t\t\tvar eventHandlerName = helpers.getEventHandlerName(eventName);\r\n\t\t\t\t\tvar hoverEvent = helpers.createMouseEvent(eventName, e); // recreate the event to match the handler\r\n\t\t\t\t\telement.hovering = true;\r\n\t\t\t\t\tif (typeof options[eventHandlerName] === 'function') {\r\n\t\t\t\t\t\teventHandlers.push([ options[eventHandlerName], hoverEvent, element ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else if (!element) {\r\n\t\t\t\t// hover ended\r\n\t\t\t\telements.forEach(function(element) {\r\n\t\t\t\t\tif (element.hovering) {\r\n\t\t\t\t\t\telement.hovering = false;\r\n\t\t\t\t\t\tvar options = element.options;\r\n\t\t\t\t\t\t['mouseout', 'mouseleave'].forEach(function(eventName) {\r\n\t\t\t\t\t\t\tvar eventHandlerName = helpers.getEventHandlerName(eventName);\r\n\t\t\t\t\t\t\tvar hoverEvent = helpers.createMouseEvent(eventName, e); // recreate the event to match the handler\r\n\t\t\t\t\t\t\tif (typeof options[eventHandlerName] === 'function') {\r\n\t\t\t\t\t\t\t\teventHandlers.push([ options[eventHandlerName], hoverEvent, element ]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Suppress duplicate click events during a double click\r\n\t\t// 1. click -> 2. click -> 3. dblclick\r\n\t\t//\r\n\t\t// 1: wait dblClickSpeed ms, then fire click\r\n\t\t// 2: cancel (1) if it is waiting then wait dblClickSpeed ms then fire click, else fire click immediately\r\n\t\t// 3: cancel (1) or (2) if waiting, then fire dblclick \r\n\t\tif (element && events.indexOf('dblclick') > -1 && typeof options.onDblclick === 'function') {\r\n\t\t\tif (e.type === 'click' && typeof options.onClick === 'function') {\r\n\t\t\t\tclearTimeout(element.clickTimeout);\r\n\t\t\t\telement.clickTimeout = setTimeout(function() {\r\n\t\t\t\t\tdelete element.clickTimeout;\r\n\t\t\t\t\toptions.onClick.call(element, e);\r\n\t\t\t\t}, dblClickSpeed);\r\n\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\treturn;\r\n\t\t\t} else if (e.type === 'dblclick' && element.clickTimeout) {\r\n\t\t\t\tclearTimeout(element.clickTimeout);\r\n\t\t\t\tdelete element.clickTimeout;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Dispatch the event to the usual handler, but only if we haven't substituted it\r\n\t\tif (element && typeof options[eventHandlerName] === 'function' && eventHandlers.length === 0) {\r\n\t\t\teventHandlers.push([ options[eventHandlerName], e, element ]);\r\n\t\t}\r\n\r\n\t\tif (eventHandlers.length > 0) {\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t\te.preventDefault();\r\n\t\t\teventHandlers.forEach(function(eventHandler) {\r\n\t\t\t\t// [handler, event, element]\r\n\t\t\t\teventHandler[0].call(eventHandler[2], eventHandler[1]);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tdispatcher: dispatcher,\r\n\t\tcollapseHoverEvents: collapseHoverEvents\r\n\t};\r\n};\r\n\r\n},{\"./helpers.js\":5}],5:[function(require,module,exports){\r\nfunction noop() {}\r\n\r\nfunction elements(chartInstance) {\r\n\t// Turn the elements object into an array of elements\r\n\tvar elements = chartInstance.annotation.elements;\r\n\treturn Object.keys(elements).map(function(id) {\r\n\t\treturn elements[id];\r\n\t});\r\n}\r\n\r\nfunction objectId() {\r\n\treturn Math.random().toString(36).substr(2, 6);\r\n}\r\n\r\nfunction isValid(rawValue) {\r\n\tif (rawValue === null || typeof rawValue === 'undefined') {\r\n\t\treturn false;\r\n\t} else if (typeof rawValue === 'number') {\r\n\t\treturn isFinite(rawValue);\r\n\t} else {\r\n\t\treturn !!rawValue;\r\n\t}\r\n}\r\n\r\nfunction decorate(obj, prop, func) {\r\n\tvar prefix = '$';\r\n\tif (!obj[prefix + prop]) {\r\n\t\tif (obj[prop]) {\r\n\t\t\tobj[prefix + prop] = obj[prop].bind(obj);\r\n\t\t\tobj[prop] = function() {\r\n\t\t\t\tvar args = [ obj[prefix + prop] ].concat(Array.prototype.slice.call(arguments));\r\n\t\t\t\treturn func.apply(obj, args);\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tobj[prop] = function() {\r\n\t\t\t\tvar args = [ undefined ].concat(Array.prototype.slice.call(arguments));\r\n\t\t\t\treturn func.apply(obj, args);\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction callEach(fns, method) {\r\n\tfns.forEach(function(fn) {\r\n\t\t(method ? fn[method] : fn)();\r\n\t});\r\n}\r\n\r\nfunction getEventHandlerName(eventName) {\r\n\treturn 'on' + eventName[0].toUpperCase() + eventName.substring(1);\r\n}\r\n\r\nfunction createMouseEvent(type, previousEvent) {\r\n\ttry {\r\n\t\treturn new MouseEvent(type, previousEvent);\r\n\t} catch (exception) {\r\n\t\ttry {\r\n\t\t\tvar m = document.createEvent('MouseEvent');\r\n\t\t\tm.initMouseEvent(\r\n\t\t\t\ttype,\r\n\t\t\t\tpreviousEvent.canBubble,\r\n\t\t\t\tpreviousEvent.cancelable,\r\n\t\t\t\tpreviousEvent.view,\r\n\t\t\t\tpreviousEvent.detail,\r\n\t\t\t\tpreviousEvent.screenX,\r\n\t\t\t\tpreviousEvent.screenY,\r\n\t\t\t\tpreviousEvent.clientX,\r\n\t\t\t\tpreviousEvent.clientY,\r\n\t\t\t\tpreviousEvent.ctrlKey,\r\n\t\t\t\tpreviousEvent.altKey,\r\n\t\t\t\tpreviousEvent.shiftKey,\r\n\t\t\t\tpreviousEvent.metaKey,\r\n\t\t\t\tpreviousEvent.button,\r\n\t\t\t\tpreviousEvent.relatedTarget\r\n\t\t\t);\r\n\t\t\treturn m;\r\n\t\t} catch (exception2) {\r\n\t\t\tvar e = document.createEvent('Event');\r\n\t\t\te.initEvent(\r\n\t\t\t\ttype,\r\n\t\t\t\tpreviousEvent.canBubble,\r\n\t\t\t\tpreviousEvent.cancelable\r\n\t\t\t);\r\n\t\t\treturn e;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nmodule.exports = function(Chart) {\r\n\tvar chartHelpers = Chart.helpers;\r\n\r\n\tfunction initConfig(config) {\r\n\t\tconfig = chartHelpers.configMerge(Chart.Annotation.defaults, config);\r\n\t\tif (chartHelpers.isArray(config.annotations)) {\r\n\t\t\tconfig.annotations.forEach(function(annotation) {\r\n\t\t\t\tannotation.label = chartHelpers.configMerge(Chart.Annotation.labelDefaults, annotation.label);\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn config;\r\n\t}\r\n\r\n\tfunction getScaleLimits(scaleId, annotations, scaleMin, scaleMax) {\r\n\t\tvar ranges = annotations.filter(function(annotation) {\r\n\t\t\treturn !!annotation._model.ranges[scaleId];\r\n\t\t}).map(function(annotation) {\r\n\t\t\treturn annotation._model.ranges[scaleId];\r\n\t\t});\r\n\r\n\t\tvar min = ranges.map(function(range) {\r\n\t\t\treturn Number(range.min);\r\n\t\t}).reduce(function(a, b) {\r\n\t\t\treturn isFinite(b) && !isNaN(b) && b < a ? b : a;\r\n\t\t}, scaleMin);\r\n\r\n\t\tvar max = ranges.map(function(range) {\r\n\t\t\treturn Number(range.max);\r\n\t\t}).reduce(function(a, b) {\r\n\t\t\treturn isFinite(b) && !isNaN(b) && b > a ? b : a;\r\n\t\t}, scaleMax);\r\n\r\n\t\treturn {\r\n\t\t\tmin: min,\r\n\t\t\tmax: max\r\n\t\t};\r\n\t}\r\n\r\n\tfunction adjustScaleRange(scale) {\r\n\t\t// Adjust the scale range to include annotation values\r\n\t\tvar range = getScaleLimits(scale.id, elements(scale.chart), scale.min, scale.max);\r\n\t\tif (typeof scale.options.ticks.min === 'undefined' && typeof scale.options.ticks.suggestedMin === 'undefined') {\r\n\t\t\tscale.min = range.min;\r\n\t\t}\r\n\t\tif (typeof scale.options.ticks.max === 'undefined' && typeof scale.options.ticks.suggestedMax === 'undefined') {\r\n\t\t\tscale.max = range.max;\r\n\t\t}\r\n\t\tif (scale.handleTickRangeOptions) {\r\n\t\t\tscale.handleTickRangeOptions();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getNearestItems(annotations, position) {\r\n\t\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\r\n\t\treturn annotations\r\n\t\t\t.filter(function(element) {\r\n\t\t\t\treturn element.inRange(position.x, position.y);\r\n\t\t\t})\r\n\t\t\t.reduce(function(nearestItems, element) {\r\n\t\t\t\tvar center = element.getCenterPoint();\r\n\t\t\t\tvar distance = chartHelpers.distanceBetweenPoints(position, center);\r\n\r\n\t\t\t\tif (distance < minDistance) {\r\n\t\t\t\t\tnearestItems = [element];\r\n\t\t\t\t\tminDistance = distance;\r\n\t\t\t\t} else if (distance === minDistance) {\r\n\t\t\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\t\t\tnearestItems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn nearestItems;\r\n\t\t\t}, [])\r\n\t\t\t.sort(function(a, b) {\r\n\t\t\t\t// If there are multiple elements equally close,\r\n\t\t\t\t// sort them by size, then by index\r\n\t\t\t\tvar sizeA = a.getArea(), sizeB = b.getArea();\r\n\t\t\t\treturn (sizeA > sizeB || sizeA < sizeB) ? sizeA - sizeB : a._index - b._index;\r\n\t\t\t})\r\n\t\t\t.slice(0, 1)[0]; // return only the top item\r\n\t}\r\n\r\n\treturn {\r\n\t\tinitConfig: initConfig,\r\n\t\telements: elements,\r\n\t\tcallEach: callEach,\r\n\t\tnoop: noop,\r\n\t\tobjectId: objectId,\r\n\t\tisValid: isValid,\r\n\t\tdecorate: decorate,\r\n\t\tadjustScaleRange: adjustScaleRange,\r\n\t\tgetNearestItems: getNearestItems,\r\n\t\tgetEventHandlerName: getEventHandlerName,\r\n\t\tcreateMouseEvent: createMouseEvent\r\n\t};\r\n};\r\n\r\n\r\n},{}],6:[function(require,module,exports){\r\n// Get the chart variable\r\nvar Chart = require('chart.js');\r\nChart = typeof(Chart) === 'function' ? Chart : window.Chart;\r\n\r\n// Configure plugin namespace\r\nChart.Annotation = Chart.Annotation || {};\r\n\r\nChart.Annotation.drawTimeOptions = {\r\n\tafterDraw: 'afterDraw',\r\n\tafterDatasetsDraw: 'afterDatasetsDraw',\r\n\tbeforeDatasetsDraw: 'beforeDatasetsDraw'\r\n};\r\n\r\nChart.Annotation.defaults = {\r\n\tdrawTime: 'afterDatasetsDraw',\r\n\tdblClickSpeed: 350, // ms\r\n\tevents: [],\r\n\tannotations: []\r\n};\r\n\r\nChart.Annotation.labelDefaults = {\r\n\tbackgroundColor: 'rgba(0,0,0,0.8)',\r\n\tfontFamily: Chart.defaults.global.defaultFontFamily,\r\n\tfontSize: Chart.defaults.global.defaultFontSize,\r\n\tfontStyle: 'bold',\r\n\tfontColor: '#fff',\r\n\txPadding: 6,\r\n\tyPadding: 6,\r\n\tcornerRadius: 6,\r\n\tposition: 'center',\r\n\txAdjust: 0,\r\n\tyAdjust: 0,\r\n\tenabled: false,\r\n\tcontent: null\r\n};\r\n\r\nChart.Annotation.Element = require('./element.js')(Chart);\r\n\r\nChart.Annotation.types = {\r\n\tline: require('./types/line.js')(Chart),\r\n\tbox: require('./types/box.js')(Chart)\r\n};\r\n\r\nvar annotationPlugin = require('./annotation.js')(Chart);\r\n\r\nmodule.exports = annotationPlugin;\r\nChart.pluginService.register(annotationPlugin);\r\n\r\n},{\"./annotation.js\":2,\"./element.js\":3,\"./types/box.js\":7,\"./types/line.js\":8,\"chart.js\":1}],7:[function(require,module,exports){\r\n// Box Annotation implementation\r\nmodule.exports = function(Chart) {\r\n\tvar helpers = require('../helpers.js')(Chart);\r\n\t\r\n\tvar BoxAnnotation = Chart.Annotation.Element.extend({\r\n\t\tsetDataLimits: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\tvar options = this.options;\r\n\t\t\tvar chartInstance = this.chartInstance;\r\n\r\n\t\t\tvar xScale = chartInstance.scales[options.xScaleID];\r\n\t\t\tvar yScale = chartInstance.scales[options.yScaleID];\r\n\t\t\tvar chartArea = chartInstance.chartArea;\r\n\r\n\t\t\t// Set the data range for this annotation\r\n\t\t\tmodel.ranges = {};\r\n\t\t\t\r\n\t\t\tif (!chartArea) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tvar min = 0;\r\n\t\t\tvar max = 0;\r\n\t\t\t\r\n\t\t\tif (xScale) {\r\n\t\t\t\tmin = helpers.isValid(options.xMin) ? options.xMin : xScale.getPixelForValue(chartArea.left);\r\n\t\t\t\tmax = helpers.isValid(options.xMax) ? options.xMax : xScale.getPixelForValue(chartArea.right);\r\n\r\n\t\t\t\tmodel.ranges[options.xScaleID] = {\r\n\t\t\t\t\tmin: Math.min(min, max),\r\n\t\t\t\t\tmax: Math.max(min, max)\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (yScale) {\r\n\t\t\t\tmin = helpers.isValid(options.yMin) ? options.yMin : yScale.getPixelForValue(chartArea.bottom);\r\n\t\t\t\tmax = helpers.isValid(options.yMax) ? options.yMax : yScale.getPixelForValue(chartArea.top);\r\n\r\n\t\t\t\tmodel.ranges[options.yScaleID] = {\r\n\t\t\t\t\tmin: Math.min(min, max),\r\n\t\t\t\t\tmax: Math.max(min, max)\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t},\r\n\t\tconfigure: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\tvar options = this.options;\r\n\t\t\tvar chartInstance = this.chartInstance;\r\n\r\n\t\t\tvar xScale = chartInstance.scales[options.xScaleID];\r\n\t\t\tvar yScale = chartInstance.scales[options.yScaleID];\r\n\t\t\tvar chartArea = chartInstance.chartArea;\r\n\r\n\t\t\t// clip annotations to the chart area\r\n\t\t\tmodel.clip = {\r\n\t\t\t\tx1: chartArea.left,\r\n\t\t\t\tx2: chartArea.right,\r\n\t\t\t\ty1: chartArea.top,\r\n\t\t\t\ty2: chartArea.bottom\r\n\t\t\t};\r\n\r\n\t\t\tvar left = chartArea.left, \r\n\t\t\t\ttop = chartArea.top, \r\n\t\t\t\tright = chartArea.right, \r\n\t\t\t\tbottom = chartArea.bottom;\r\n\r\n\t\t\tvar min, max;\r\n\r\n\t\t\tif (xScale) {\r\n\t\t\t\tmin = helpers.isValid(options.xMin) ? xScale.getPixelForValue(options.xMin) : chartArea.left;\r\n\t\t\t\tmax = helpers.isValid(options.xMax) ? xScale.getPixelForValue(options.xMax) : chartArea.right;\r\n\t\t\t\tleft = Math.min(min, max);\r\n\t\t\t\tright = Math.max(min, max);\r\n\t\t\t}\r\n\r\n\t\t\tif (yScale) {\r\n\t\t\t\tmin = helpers.isValid(options.yMin) ? yScale.getPixelForValue(options.yMin) : chartArea.bottom;\r\n\t\t\t\tmax = helpers.isValid(options.yMax) ? yScale.getPixelForValue(options.yMax) : chartArea.top;\r\n\t\t\t\ttop = Math.min(min, max);\r\n\t\t\t\tbottom = Math.max(min, max);\r\n\t\t\t}\r\n\r\n\t\t\t// Ensure model has rect coordinates\r\n\t\t\tmodel.left = left;\r\n\t\t\tmodel.top = top;\r\n\t\t\tmodel.right = right;\r\n\t\t\tmodel.bottom = bottom;\r\n\r\n\t\t\t// Stylistic options\r\n\t\t\tmodel.borderColor = options.borderColor;\r\n\t\t\tmodel.borderWidth = options.borderWidth;\r\n\t\t\tmodel.backgroundColor = options.backgroundColor;\r\n\t\t},\r\n\t\tinRange: function(mouseX, mouseY) {\r\n\t\t\tvar model = this._model;\r\n\t\t\treturn model &&\r\n\t\t\t\tmouseX >= model.left && \r\n\t\t\t\tmouseX <= model.right && \r\n\t\t\t\tmouseY >= model.top && \r\n\t\t\t\tmouseY <= model.bottom;\r\n\t\t},\r\n\t\tgetCenterPoint: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\treturn {\r\n\t\t\t\tx: (model.right + model.left) / 2,\r\n\t\t\t\ty: (model.bottom + model.top) / 2\r\n\t\t\t};\r\n\t\t},\r\n\t\tgetWidth: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\treturn Math.abs(model.right - model.left);\r\n\t\t},\r\n\t\tgetHeight: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\treturn Math.abs(model.bottom - model.top);\r\n\t\t},\r\n\t\tgetArea: function() {\r\n\t\t\treturn this.getWidth() * this.getHeight();\r\n\t\t},\r\n\t\tdraw: function() {\r\n\t\t\tvar view = this._view;\r\n\t\t\tvar ctx = this.chartInstance.chart.ctx;\r\n\r\n\t\t\tctx.save();\r\n\r\n\t\t\t// Canvas setup\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.rect(view.clip.x1, view.clip.y1, view.clip.x2 - view.clip.x1, view.clip.y2 - view.clip.y1);\r\n\t\t\tctx.clip();\r\n\r\n\t\t\tctx.lineWidth = view.borderWidth;\r\n\t\t\tctx.strokeStyle = view.borderColor;\r\n\t\t\tctx.fillStyle = view.backgroundColor;\r\n\r\n\t\t\t// Draw\r\n\t\t\tvar width = view.right - view.left,\r\n\t\t\t\theight = view.bottom - view.top;\r\n\t\t\tctx.fillRect(view.left, view.top, width, height);\r\n\t\t\tctx.strokeRect(view.left, view.top, width, height);\r\n\r\n\t\t\tctx.restore();\r\n\t\t}\r\n\t});\r\n\r\n\treturn BoxAnnotation;\r\n};\r\n\r\n},{\"../helpers.js\":5}],8:[function(require,module,exports){\r\n// Line Annotation implementation\r\nmodule.exports = function(Chart) {\r\n\tvar chartHelpers = Chart.helpers;\r\n\tvar helpers = require('../helpers.js')(Chart);\r\n\r\n\tvar horizontalKeyword = 'horizontal';\r\n\tvar verticalKeyword = 'vertical';\r\n\r\n\tvar LineAnnotation = Chart.Annotation.Element.extend({\r\n\t\tsetDataLimits: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\tvar options = this.options;\r\n\r\n\t\t\t// Set the data range for this annotation\r\n\t\t\tmodel.ranges = {};\r\n\t\t\tmodel.ranges[options.scaleID] = {\r\n\t\t\t\tmin: options.value,\r\n\t\t\t\tmax: options.endValue || options.value\r\n\t\t\t};\r\n\t\t},\r\n\t\tconfigure: function() {\r\n\t\t\tvar model = this._model;\r\n\t\t\tvar options = this.options;\r\n\t\t\tvar chartInstance = this.chartInstance;\r\n\t\t\tvar ctx = chartInstance.chart.ctx;\r\n\r\n\t\t\tvar scale = chartInstance.scales[options.scaleID];\r\n\t\t\tvar pixel, endPixel;\r\n\t\t\tif (scale) {\r\n\t\t\t\tpixel = helpers.isValid(options.value) ? scale.getPixelForValue(options.value) : NaN;\r\n\t\t\t\tendPixel = helpers.isValid(options.endValue) ? scale.getPixelForValue(options.endValue) : pixel;\r\n\t\t\t}\r\n\r\n\t\t\tif (isNaN(pixel)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar chartArea = chartInstance.chartArea;\r\n\r\n\t\t\t// clip annotations to the chart area\r\n\t\t\tmodel.clip = {\r\n\t\t\t\tx1: chartArea.left,\r\n\t\t\t\tx2: chartArea.right,\r\n\t\t\t\ty1: chartArea.top,\r\n\t\t\t\ty2: chartArea.bottom\r\n\t\t\t};\r\n\r\n\t\t\tif (this.options.mode == horizontalKeyword) {\r\n\t\t\t\tmodel.x1 = chartArea.left;\r\n\t\t\t\tmodel.x2 = chartArea.right;\r\n\t\t\t\tmodel.y1 = pixel;\r\n\t\t\t\tmodel.y2 = endPixel;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.y1 = chartArea.top;\r\n\t\t\t\tmodel.y2 = chartArea.bottom;\r\n\t\t\t\tmodel.x1 = pixel;\r\n\t\t\t\tmodel.x2 = endPixel;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.line = new LineFunction(model);\r\n\t\t\tmodel.mode = options.mode;\r\n\r\n\t\t\t// Figure out the label:\r\n\t\t\tmodel.labelBackgroundColor = options.label.backgroundColor;\r\n\t\t\tmodel.labelFontFamily = options.label.fontFamily;\r\n\t\t\tmodel.labelFontSize = options.label.fontSize;\r\n\t\t\tmodel.labelFontStyle = options.label.fontStyle;\r\n\t\t\tmodel.labelFontColor = options.label.fontColor;\r\n\t\t\tmodel.labelXPadding = options.label.xPadding;\r\n\t\t\tmodel.labelYPadding = options.label.yPadding;\r\n\t\t\tmodel.labelCornerRadius = options.label.cornerRadius;\r\n\t\t\tmodel.labelPosition = options.label.position;\r\n\t\t\tmodel.labelXAdjust = options.label.xAdjust;\r\n\t\t\tmodel.labelYAdjust = options.label.yAdjust;\r\n\t\t\tmodel.labelEnabled = options.label.enabled;\r\n\t\t\tmodel.labelContent = options.label.content;\r\n\r\n\t\t\tctx.font = chartHelpers.fontString(model.labelFontSize, model.labelFontStyle, model.labelFontFamily);\r\n\t\t\tvar textWidth = ctx.measureText(model.labelContent).width;\r\n\t\t\tvar textHeight = ctx.measureText('M').width;\r\n\t\t\tvar labelPosition = calculateLabelPosition(model, textWidth, textHeight, model.labelXPadding, model.labelYPadding);\r\n\t\t\tmodel.labelX = labelPosition.x - model.labelXPadding;\r\n\t\t\tmodel.labelY = labelPosition.y - model.labelYPadding;\r\n\t\t\tmodel.labelWidth = textWidth + (2 * model.labelXPadding);\r\n\t\t\tmodel.labelHeight = textHeight + (2 * model.labelYPadding);\r\n\r\n\t\t\tmodel.borderColor = options.borderColor;\r\n\t\t\tmodel.borderWidth = options.borderWidth;\r\n\t\t\tmodel.borderDash = options.borderDash || [];\r\n\t\t\tmodel.borderDashOffset = options.borderDashOffset || 0;\r\n\t\t},\r\n\t\tinRange: function(mouseX, mouseY) {\r\n\t\t\tvar model = this._model;\r\n\t\t\t\r\n\t\t\treturn (\r\n\t\t\t\t// On the line\r\n\t\t\t\tmodel.line &&\r\n\t\t\t\tmodel.line.intersects(mouseX, mouseY, this.getHeight())\r\n\t\t\t) || (\r\n\t\t\t\t// On the label\r\n\t\t\t\tmodel.labelEnabled &&\r\n\t\t\t\tmodel.labelContent &&\r\n\t\t\t\tmouseX >= model.labelX && \r\n\t\t\t\tmouseX <= model.labelX + model.labelWidth && \r\n\t\t\t\tmouseY >= model.labelY && \r\n\t\t\t\tmouseY <= model.labelY + model.labelHeight\r\n\t\t\t);\r\n\t\t},\r\n\t\tgetCenterPoint: function() {\r\n\t\t\treturn {\r\n\t\t\t\tx: (this._model.x2 + this._model.x1) / 2,\r\n\t\t\t\ty: (this._model.y2 + this._model.y1) / 2\r\n\t\t\t};\r\n\t\t},\r\n\t\tgetWidth: function() {\r\n\t\t\treturn Math.abs(this._model.right - this._model.left);\r\n\t\t},\r\n\t\tgetHeight: function() {\r\n\t\t\treturn this._model.borderWidth || 1;\r\n\t\t},\r\n\t\tgetArea: function() {\r\n\t\t\treturn Math.sqrt(Math.pow(this.getWidth(), 2) + Math.pow(this.getHeight(), 2));\r\n\t\t},\r\n\t\tdraw: function() {\r\n\t\t\tvar view = this._view;\r\n\t\t\tvar ctx = this.chartInstance.chart.ctx;\r\n\r\n\t\t\tif (!view.clip) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tctx.save();\r\n\r\n\t\t\t// Canvas setup\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.rect(view.clip.x1, view.clip.y1, view.clip.x2 - view.clip.x1, view.clip.y2 - view.clip.y1);\r\n\t\t\tctx.clip();\r\n\r\n\t\t\tctx.lineWidth = view.borderWidth;\r\n\t\t\tctx.strokeStyle = view.borderColor;\r\n\r\n\t\t\tif (ctx.setLineDash) {\r\n\t\t\t\tctx.setLineDash(view.borderDash);\r\n\t\t\t}\r\n\t\t\tctx.lineDashOffset = view.borderDashOffset;\r\n\r\n\t\t\t// Draw\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.moveTo(view.x1, view.y1);\r\n\t\t\tctx.lineTo(view.x2, view.y2);\r\n\t\t\tctx.stroke();\r\n\r\n\t\t\tif (view.labelEnabled && view.labelContent) {\r\n\t\t\t\tctx.beginPath();\r\n\t\t\t\tctx.rect(view.clip.x1, view.clip.y1, view.clip.x2 - view.clip.x1, view.clip.y2 - view.clip.y1);\r\n\t\t\t\tctx.clip();\r\n\r\n\t\t\t\tctx.fillStyle = view.labelBackgroundColor;\r\n\t\t\t\t// Draw the tooltip\r\n\t\t\t\tchartHelpers.drawRoundedRectangle(\r\n\t\t\t\t\tctx,\r\n\t\t\t\t\tview.labelX, // x\r\n\t\t\t\t\tview.labelY, // y\r\n\t\t\t\t\tview.labelWidth, // width\r\n\t\t\t\t\tview.labelHeight, // height\r\n\t\t\t\t\tview.labelCornerRadius // radius\r\n\t\t\t\t);\r\n\t\t\t\tctx.fill();\r\n\r\n\t\t\t\t// Draw the text\r\n\t\t\t\tctx.font = chartHelpers.fontString(\r\n\t\t\t\t\tview.labelFontSize,\r\n\t\t\t\t\tview.labelFontStyle,\r\n\t\t\t\t\tview.labelFontFamily\r\n\t\t\t\t);\r\n\t\t\t\tctx.fillStyle = view.labelFontColor;\r\n\t\t\t\tctx.textAlign = 'center';\r\n\t\t\t\tctx.textBaseline = 'middle';\r\n\t\t\t\tctx.fillText(\r\n\t\t\t\t\tview.labelContent,\r\n\t\t\t\t\tview.labelX + (view.labelWidth / 2),\r\n\t\t\t\t\tview.labelY + (view.labelHeight / 2)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tctx.restore();\r\n\t\t}\r\n\t});\r\n\r\n\tfunction LineFunction(view) {\r\n\t\t// Describe the line in slope-intercept form (y = mx + b).\r\n\t\t// Note that the axes are rotated 90° CCW, which causes the\r\n\t\t// x- and y-axes to be swapped.\r\n\t\tvar m = (view.x2 - view.x1) / (view.y2 - view.y1);\r\n\t\tvar b = view.x1 || 0;\r\n\r\n\t\tthis.m = m;\r\n\t\tthis.b = b;\r\n\r\n\t\tthis.getX = function(y) {\r\n\t\t\t// Coordinates are relative to the origin of the canvas\r\n\t\t\treturn m * (y - view.y1) + b;\r\n\t\t};\r\n\r\n\t\tthis.getY = function(x) {\r\n\t\t\treturn ((x - b) / m) + view.y1;\r\n\t\t};\r\n\r\n\t\tthis.intersects = function(x, y, epsilon) {\r\n\t\t\tepsilon = epsilon || 0.001;\r\n\t\t\tvar dy = this.getY(x),\r\n\t\t\t\tdx = this.getX(y);\r\n\t\t\treturn (\r\n\t\t\t\t(!isFinite(dy) || Math.abs(y - dy) < epsilon) &&\r\n\t\t\t\t(!isFinite(dx) || Math.abs(x - dx) < epsilon)\r\n\t\t\t);\r\n\t\t};\r\n\t}\r\n\r\n\tfunction calculateLabelPosition(view, width, height, padWidth, padHeight) {\r\n\t\tvar line = view.line;\r\n\t\tvar ret = {}, xa = 0, ya = 0;\r\n\r\n\t\tswitch (true) {\r\n\t\t\t// top align\r\n\t\t\tcase view.mode == verticalKeyword && view.labelPosition == \"top\":\r\n\t\t\t\tya = padHeight + view.labelYAdjust;\r\n\t\t\t\txa = (width / 2) + view.labelXAdjust;\r\n\t\t\t\tret.y = view.y1 + ya;\r\n\t\t\t\tret.x = (isFinite(line.m) ? line.getX(ret.y) : view.x1) - xa;\r\n\t\t\tbreak;\r\n\r\n\t\t\t// bottom align\r\n\t\t\tcase view.mode == verticalKeyword && view.labelPosition == \"bottom\":\r\n\t\t\t\tya = height + padHeight + view.labelYAdjust;\r\n\t\t\t\txa = (width / 2) + view.labelXAdjust;\r\n\t\t\t\tret.y = view.y2 - ya;\r\n\t\t\t\tret.x = (isFinite(line.m) ? line.getX(ret.y) : view.x1) - xa;\r\n\t\t\tbreak;\r\n\r\n\t\t\t// left align\r\n\t\t\tcase view.mode == horizontalKeyword && view.labelPosition == \"left\":\r\n\t\t\t\txa = padWidth + view.labelXAdjust;\r\n\t\t\t\tya = -(height / 2) + view.labelYAdjust;\r\n\t\t\t\tret.x = view.x1 + xa;\r\n\t\t\t\tret.y = line.getY(ret.x) + ya;\r\n\t\t\tbreak;\r\n\r\n\t\t\t// right align\r\n\t\t\tcase view.mode == horizontalKeyword && view.labelPosition == \"right\":\r\n\t\t\t\txa = width + padWidth + view.labelXAdjust;\r\n\t\t\t\tya = -(height / 2) + view.labelYAdjust;\r\n\t\t\t\tret.x = view.x2 - xa;\r\n\t\t\t\tret.y = line.getY(ret.x) + ya;\r\n\t\t\tbreak;\r\n\r\n\t\t\t// center align\r\n\t\t\tdefault:\r\n\t\t\t\tret.x = ((view.x1 + view.x2 - width) / 2) + view.labelXAdjust;\r\n\t\t\t\tret.y = ((view.y1 + view.y2 - height) / 2) + view.labelYAdjust;\r\n\t\t}\r\n\r\n\t\treturn ret;\r\n\t}\r\n\r\n\treturn LineAnnotation;\r\n};\r\n\r\n},{\"../helpers.js\":5}]},{},[6]);\n(function() {\r\n\r\n var debug = false;\r\n\r\n var root = this;\r\n\r\n var EXIF = function(obj) {\r\n if (obj instanceof EXIF) return obj;\r\n if (!(this instanceof EXIF)) return new EXIF(obj);\r\n this.EXIFwrapped = obj;\r\n };\r\n\r\n if (typeof exports !== 'undefined') {\r\n if (typeof module !== 'undefined' && module.exports) {\r\n exports = module.exports = EXIF;\r\n }\r\n exports.EXIF = EXIF;\r\n } else {\r\n root.EXIF = EXIF;\r\n }\r\n\r\n var ExifTags = EXIF.Tags = {\r\n\r\n // version tags\r\n 0x9000 : \"ExifVersion\", // EXIF version\r\n 0xA000 : \"FlashpixVersion\", // Flashpix format version\r\n\r\n // colorspace tags\r\n 0xA001 : \"ColorSpace\", // Color space information tag\r\n\r\n // image configuration\r\n 0xA002 : \"PixelXDimension\", // Valid width of meaningful image\r\n 0xA003 : \"PixelYDimension\", // Valid height of meaningful image\r\n 0x9101 : \"ComponentsConfiguration\", // Information about channels\r\n 0x9102 : \"CompressedBitsPerPixel\", // Compressed bits per pixel\r\n\r\n // user information\r\n 0x927C : \"MakerNote\", // Any desired information written by the manufacturer\r\n 0x9286 : \"UserComment\", // Comments by user\r\n\r\n // related file\r\n 0xA004 : \"RelatedSoundFile\", // Name of related sound file\r\n\r\n // date and time\r\n 0x9003 : \"DateTimeOriginal\", // Date and time when the original image was generated\r\n 0x9004 : \"DateTimeDigitized\", // Date and time when the image was stored digitally\r\n 0x9290 : \"SubsecTime\", // Fractions of seconds for DateTime\r\n 0x9291 : \"SubsecTimeOriginal\", // Fractions of seconds for DateTimeOriginal\r\n 0x9292 : \"SubsecTimeDigitized\", // Fractions of seconds for DateTimeDigitized\r\n\r\n // picture-taking conditions\r\n 0x829A : \"ExposureTime\", // Exposure time (in seconds)\r\n 0x829D : \"FNumber\", // F number\r\n 0x8822 : \"ExposureProgram\", // Exposure program\r\n 0x8824 : \"SpectralSensitivity\", // Spectral sensitivity\r\n 0x8827 : \"ISOSpeedRatings\", // ISO speed rating\r\n 0x8828 : \"OECF\", // Optoelectric conversion factor\r\n 0x9201 : \"ShutterSpeedValue\", // Shutter speed\r\n 0x9202 : \"ApertureValue\", // Lens aperture\r\n 0x9203 : \"BrightnessValue\", // Value of brightness\r\n 0x9204 : \"ExposureBias\", // Exposure bias\r\n 0x9205 : \"MaxApertureValue\", // Smallest F number of lens\r\n 0x9206 : \"SubjectDistance\", // Distance to subject in meters\r\n 0x9207 : \"MeteringMode\", // Metering mode\r\n 0x9208 : \"LightSource\", // Kind of light source\r\n 0x9209 : \"Flash\", // Flash status\r\n 0x9214 : \"SubjectArea\", // Location and area of main subject\r\n 0x920A : \"FocalLength\", // Focal length of the lens in mm\r\n 0xA20B : \"FlashEnergy\", // Strobe energy in BCPS\r\n 0xA20C : \"SpatialFrequencyResponse\", //\r\n 0xA20E : \"FocalPlaneXResolution\", // Number of pixels in width direction per FocalPlaneResolutionUnit\r\n 0xA20F : \"FocalPlaneYResolution\", // Number of pixels in height direction per FocalPlaneResolutionUnit\r\n 0xA210 : \"FocalPlaneResolutionUnit\", // Unit for measuring FocalPlaneXResolution and FocalPlaneYResolution\r\n 0xA214 : \"SubjectLocation\", // Location of subject in image\r\n 0xA215 : \"ExposureIndex\", // Exposure index selected on camera\r\n 0xA217 : \"SensingMethod\", // Image sensor type\r\n 0xA300 : \"FileSource\", // Image source (3 == DSC)\r\n 0xA301 : \"SceneType\", // Scene type (1 == directly photographed)\r\n 0xA302 : \"CFAPattern\", // Color filter array geometric pattern\r\n 0xA401 : \"CustomRendered\", // Special processing\r\n 0xA402 : \"ExposureMode\", // Exposure mode\r\n 0xA403 : \"WhiteBalance\", // 1 = auto white balance, 2 = manual\r\n 0xA404 : \"DigitalZoomRation\", // Digital zoom ratio\r\n 0xA405 : \"FocalLengthIn35mmFilm\", // Equivalent foacl length assuming 35mm film camera (in mm)\r\n 0xA406 : \"SceneCaptureType\", // Type of scene\r\n 0xA407 : \"GainControl\", // Degree of overall image gain adjustment\r\n 0xA408 : \"Contrast\", // Direction of contrast processing applied by camera\r\n 0xA409 : \"Saturation\", // Direction of saturation processing applied by camera\r\n 0xA40A : \"Sharpness\", // Direction of sharpness processing applied by camera\r\n 0xA40B : \"DeviceSettingDescription\", //\r\n 0xA40C : \"SubjectDistanceRange\", // Distance to subject\r\n\r\n // other tags\r\n 0xA005 : \"InteroperabilityIFDPointer\",\r\n 0xA420 : \"ImageUniqueID\" // Identifier assigned uniquely to each image\r\n };\r\n\r\n var TiffTags = EXIF.TiffTags = {\r\n 0x0100 : \"ImageWidth\",\r\n 0x0101 : \"ImageHeight\",\r\n 0x8769 : \"ExifIFDPointer\",\r\n 0x8825 : \"GPSInfoIFDPointer\",\r\n 0xA005 : \"InteroperabilityIFDPointer\",\r\n 0x0102 : \"BitsPerSample\",\r\n 0x0103 : \"Compression\",\r\n 0x0106 : \"PhotometricInterpretation\",\r\n 0x0112 : \"Orientation\",\r\n 0x0115 : \"SamplesPerPixel\",\r\n 0x011C : \"PlanarConfiguration\",\r\n 0x0212 : \"YCbCrSubSampling\",\r\n 0x0213 : \"YCbCrPositioning\",\r\n 0x011A : \"XResolution\",\r\n 0x011B : \"YResolution\",\r\n 0x0128 : \"ResolutionUnit\",\r\n 0x0111 : \"StripOffsets\",\r\n 0x0116 : \"RowsPerStrip\",\r\n 0x0117 : \"StripByteCounts\",\r\n 0x0201 : \"JPEGInterchangeFormat\",\r\n 0x0202 : \"JPEGInterchangeFormatLength\",\r\n 0x012D : \"TransferFunction\",\r\n 0x013E : \"WhitePoint\",\r\n 0x013F : \"PrimaryChromaticities\",\r\n 0x0211 : \"YCbCrCoefficients\",\r\n 0x0214 : \"ReferenceBlackWhite\",\r\n 0x0132 : \"DateTime\",\r\n 0x010E : \"ImageDescription\",\r\n 0x010F : \"Make\",\r\n 0x0110 : \"Model\",\r\n 0x0131 : \"Software\",\r\n 0x013B : \"Artist\",\r\n 0x8298 : \"Copyright\"\r\n };\r\n\r\n var GPSTags = EXIF.GPSTags = {\r\n 0x0000 : \"GPSVersionID\",\r\n 0x0001 : \"GPSLatitudeRef\",\r\n 0x0002 : \"GPSLatitude\",\r\n 0x0003 : \"GPSLongitudeRef\",\r\n 0x0004 : \"GPSLongitude\",\r\n 0x0005 : \"GPSAltitudeRef\",\r\n 0x0006 : \"GPSAltitude\",\r\n 0x0007 : \"GPSTimeStamp\",\r\n 0x0008 : \"GPSSatellites\",\r\n 0x0009 : \"GPSStatus\",\r\n 0x000A : \"GPSMeasureMode\",\r\n 0x000B : \"GPSDOP\",\r\n 0x000C : \"GPSSpeedRef\",\r\n 0x000D : \"GPSSpeed\",\r\n 0x000E : \"GPSTrackRef\",\r\n 0x000F : \"GPSTrack\",\r\n 0x0010 : \"GPSImgDirectionRef\",\r\n 0x0011 : \"GPSImgDirection\",\r\n 0x0012 : \"GPSMapDatum\",\r\n 0x0013 : \"GPSDestLatitudeRef\",\r\n 0x0014 : \"GPSDestLatitude\",\r\n 0x0015 : \"GPSDestLongitudeRef\",\r\n 0x0016 : \"GPSDestLongitude\",\r\n 0x0017 : \"GPSDestBearingRef\",\r\n 0x0018 : \"GPSDestBearing\",\r\n 0x0019 : \"GPSDestDistanceRef\",\r\n 0x001A : \"GPSDestDistance\",\r\n 0x001B : \"GPSProcessingMethod\",\r\n 0x001C : \"GPSAreaInformation\",\r\n 0x001D : \"GPSDateStamp\",\r\n 0x001E : \"GPSDifferential\"\r\n };\r\n\r\n // EXIF 2.3 Spec\r\n var IFD1Tags = EXIF.IFD1Tags = {\r\n 0x0100: \"ImageWidth\",\r\n 0x0101: \"ImageHeight\",\r\n 0x0102: \"BitsPerSample\",\r\n 0x0103: \"Compression\",\r\n 0x0106: \"PhotometricInterpretation\",\r\n 0x0111: \"StripOffsets\",\r\n 0x0112: \"Orientation\",\r\n 0x0115: \"SamplesPerPixel\",\r\n 0x0116: \"RowsPerStrip\",\r\n 0x0117: \"StripByteCounts\",\r\n 0x011A: \"XResolution\",\r\n 0x011B: \"YResolution\",\r\n 0x011C: \"PlanarConfiguration\",\r\n 0x0128: \"ResolutionUnit\",\r\n 0x0201: \"JpegIFOffset\", // When image format is JPEG, this value show offset to JPEG data stored.(aka \"ThumbnailOffset\" or \"JPEGInterchangeFormat\")\r\n 0x0202: \"JpegIFByteCount\", // When image format is JPEG, this value shows data size of JPEG image (aka \"ThumbnailLength\" or \"JPEGInterchangeFormatLength\")\r\n 0x0211: \"YCbCrCoefficients\",\r\n 0x0212: \"YCbCrSubSampling\",\r\n 0x0213: \"YCbCrPositioning\",\r\n 0x0214: \"ReferenceBlackWhite\"\r\n };\r\n\r\n var StringValues = EXIF.StringValues = {\r\n ExposureProgram : {\r\n 0 : \"Not defined\",\r\n 1 : \"Manual\",\r\n 2 : \"Normal program\",\r\n 3 : \"Aperture priority\",\r\n 4 : \"Shutter priority\",\r\n 5 : \"Creative program\",\r\n 6 : \"Action program\",\r\n 7 : \"Portrait mode\",\r\n 8 : \"Landscape mode\"\r\n },\r\n MeteringMode : {\r\n 0 : \"Unknown\",\r\n 1 : \"Average\",\r\n 2 : \"CenterWeightedAverage\",\r\n 3 : \"Spot\",\r\n 4 : \"MultiSpot\",\r\n 5 : \"Pattern\",\r\n 6 : \"Partial\",\r\n 255 : \"Other\"\r\n },\r\n LightSource : {\r\n 0 : \"Unknown\",\r\n 1 : \"Daylight\",\r\n 2 : \"Fluorescent\",\r\n 3 : \"Tungsten (incandescent light)\",\r\n 4 : \"Flash\",\r\n 9 : \"Fine weather\",\r\n 10 : \"Cloudy weather\",\r\n 11 : \"Shade\",\r\n 12 : \"Daylight fluorescent (D 5700 - 7100K)\",\r\n 13 : \"Day white fluorescent (N 4600 - 5400K)\",\r\n 14 : \"Cool white fluorescent (W 3900 - 4500K)\",\r\n 15 : \"White fluorescent (WW 3200 - 3700K)\",\r\n 17 : \"Standard light A\",\r\n 18 : \"Standard light B\",\r\n 19 : \"Standard light C\",\r\n 20 : \"D55\",\r\n 21 : \"D65\",\r\n 22 : \"D75\",\r\n 23 : \"D50\",\r\n 24 : \"ISO studio tungsten\",\r\n 255 : \"Other\"\r\n },\r\n Flash : {\r\n 0x0000 : \"Flash did not fire\",\r\n 0x0001 : \"Flash fired\",\r\n 0x0005 : \"Strobe return light not detected\",\r\n 0x0007 : \"Strobe return light detected\",\r\n 0x0009 : \"Flash fired, compulsory flash mode\",\r\n 0x000D : \"Flash fired, compulsory flash mode, return light not detected\",\r\n 0x000F : \"Flash fired, compulsory flash mode, return light detected\",\r\n 0x0010 : \"Flash did not fire, compulsory flash mode\",\r\n 0x0018 : \"Flash did not fire, auto mode\",\r\n 0x0019 : \"Flash fired, auto mode\",\r\n 0x001D : \"Flash fired, auto mode, return light not detected\",\r\n 0x001F : \"Flash fired, auto mode, return light detected\",\r\n 0x0020 : \"No flash function\",\r\n 0x0041 : \"Flash fired, red-eye reduction mode\",\r\n 0x0045 : \"Flash fired, red-eye reduction mode, return light not detected\",\r\n 0x0047 : \"Flash fired, red-eye reduction mode, return light detected\",\r\n 0x0049 : \"Flash fired, compulsory flash mode, red-eye reduction mode\",\r\n 0x004D : \"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected\",\r\n 0x004F : \"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected\",\r\n 0x0059 : \"Flash fired, auto mode, red-eye reduction mode\",\r\n 0x005D : \"Flash fired, auto mode, return light not detected, red-eye reduction mode\",\r\n 0x005F : \"Flash fired, auto mode, return light detected, red-eye reduction mode\"\r\n },\r\n SensingMethod : {\r\n 1 : \"Not defined\",\r\n 2 : \"One-chip color area sensor\",\r\n 3 : \"Two-chip color area sensor\",\r\n 4 : \"Three-chip color area sensor\",\r\n 5 : \"Color sequential area sensor\",\r\n 7 : \"Trilinear sensor\",\r\n 8 : \"Color sequential linear sensor\"\r\n },\r\n SceneCaptureType : {\r\n 0 : \"Standard\",\r\n 1 : \"Landscape\",\r\n 2 : \"Portrait\",\r\n 3 : \"Night scene\"\r\n },\r\n SceneType : {\r\n 1 : \"Directly photographed\"\r\n },\r\n CustomRendered : {\r\n 0 : \"Normal process\",\r\n 1 : \"Custom process\"\r\n },\r\n WhiteBalance : {\r\n 0 : \"Auto white balance\",\r\n 1 : \"Manual white balance\"\r\n },\r\n GainControl : {\r\n 0 : \"None\",\r\n 1 : \"Low gain up\",\r\n 2 : \"High gain up\",\r\n 3 : \"Low gain down\",\r\n 4 : \"High gain down\"\r\n },\r\n Contrast : {\r\n 0 : \"Normal\",\r\n 1 : \"Soft\",\r\n 2 : \"Hard\"\r\n },\r\n Saturation : {\r\n 0 : \"Normal\",\r\n 1 : \"Low saturation\",\r\n 2 : \"High saturation\"\r\n },\r\n Sharpness : {\r\n 0 : \"Normal\",\r\n 1 : \"Soft\",\r\n 2 : \"Hard\"\r\n },\r\n SubjectDistanceRange : {\r\n 0 : \"Unknown\",\r\n 1 : \"Macro\",\r\n 2 : \"Close view\",\r\n 3 : \"Distant view\"\r\n },\r\n FileSource : {\r\n 3 : \"DSC\"\r\n },\r\n\r\n Components : {\r\n 0 : \"\",\r\n 1 : \"Y\",\r\n 2 : \"Cb\",\r\n 3 : \"Cr\",\r\n 4 : \"R\",\r\n 5 : \"G\",\r\n 6 : \"B\"\r\n }\r\n };\r\n\r\n function addEvent(element, event, handler) {\r\n if (element.addEventListener) {\r\n element.addEventListener(event, handler, false);\r\n } else if (element.attachEvent) {\r\n element.attachEvent(\"on\" + event, handler);\r\n }\r\n }\r\n\r\n function imageHasData(img) {\r\n return !!(img.exifdata);\r\n }\r\n\r\n\r\n function base64ToArrayBuffer(base64, contentType) {\r\n contentType = contentType || base64.match(/^data\\:([^\\;]+)\\;base64,/mi)[1] || ''; // e.g. 'data:image/jpeg;base64,...' => 'image/jpeg'\r\n base64 = base64.replace(/^data\\:([^\\;]+)\\;base64,/gmi, '');\r\n var binary = atob(base64);\r\n var len = binary.length;\r\n var buffer = new ArrayBuffer(len);\r\n var view = new Uint8Array(buffer);\r\n for (var i = 0; i < len; i++) {\r\n view[i] = binary.charCodeAt(i);\r\n }\r\n return buffer;\r\n }\r\n\r\n function objectURLToBlob(url, callback) {\r\n var http = new XMLHttpRequest();\r\n http.open(\"GET\", url, true);\r\n http.responseType = \"blob\";\r\n http.onload = function(e) {\r\n if (this.status == 200 || this.status === 0) {\r\n callback(this.response);\r\n }\r\n };\r\n http.send();\r\n }\r\n\r\n function getImageData(img, callback) {\r\n function handleBinaryFile(binFile) {\r\n var data = findEXIFinJPEG(binFile);\r\n img.exifdata = data || {};\r\n var iptcdata = findIPTCinJPEG(binFile);\r\n img.iptcdata = iptcdata || {};\r\n if (EXIF.isXmpEnabled) {\r\n var xmpdata= findXMPinJPEG(binFile);\r\n img.xmpdata = xmpdata || {}; \r\n }\r\n if (callback) {\r\n callback.call(img);\r\n }\r\n }\r\n\r\n if (img.src) {\r\n if (/^data\\:/i.test(img.src)) { // Data URI\r\n var arrayBuffer = base64ToArrayBuffer(img.src);\r\n handleBinaryFile(arrayBuffer);\r\n\r\n } else if (/^blob\\:/i.test(img.src)) { // Object URL\r\n var fileReader = new FileReader();\r\n fileReader.onload = function(e) {\r\n handleBinaryFile(e.target.result);\r\n };\r\n objectURLToBlob(img.src, function (blob) {\r\n fileReader.readAsArrayBuffer(blob);\r\n });\r\n } else {\r\n var http = new XMLHttpRequest();\r\n http.onload = function() {\r\n if (this.status == 200 || this.status === 0) {\r\n handleBinaryFile(http.response);\r\n } else {\r\n throw \"Could not load image\";\r\n }\r\n http = null;\r\n };\r\n http.open(\"GET\", img.src, true);\r\n http.responseType = \"arraybuffer\";\r\n http.send(null);\r\n }\r\n } else if (self.FileReader && (img instanceof self.Blob || img instanceof self.File)) {\r\n var fileReader = new FileReader();\r\n fileReader.onload = function(e) {\r\n if (debug) console.log(\"Got file of length \" + e.target.result.byteLength);\r\n handleBinaryFile(e.target.result);\r\n };\r\n\r\n fileReader.readAsArrayBuffer(img);\r\n }\r\n }\r\n\r\n function findEXIFinJPEG(file) {\r\n var dataView = new DataView(file);\r\n\r\n if (debug) console.log(\"Got file of length \" + file.byteLength);\r\n if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {\r\n if (debug) console.log(\"Not a valid JPEG\");\r\n return false; // not a valid jpeg\r\n }\r\n\r\n var offset = 2,\r\n length = file.byteLength,\r\n marker;\r\n\r\n while (offset < length) {\r\n if (dataView.getUint8(offset) != 0xFF) {\r\n if (debug) console.log(\"Not a valid marker at offset \" + offset + \", found: \" + dataView.getUint8(offset));\r\n return false; // not a valid marker, something is wrong\r\n }\r\n\r\n marker = dataView.getUint8(offset + 1);\r\n if (debug) console.log(marker);\r\n\r\n // we could implement handling for other markers here,\r\n // but we're only looking for 0xFFE1 for EXIF data\r\n\r\n if (marker == 225) {\r\n if (debug) console.log(\"Found 0xFFE1 marker\");\r\n\r\n return readEXIFData(dataView, offset + 4, dataView.getUint16(offset + 2) - 2);\r\n\r\n // offset += 2 + file.getShortAt(offset+2, true);\r\n\r\n } else {\r\n offset += 2 + dataView.getUint16(offset+2);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n function findIPTCinJPEG(file) {\r\n var dataView = new DataView(file);\r\n\r\n if (debug) console.log(\"Got file of length \" + file.byteLength);\r\n if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {\r\n if (debug) console.log(\"Not a valid JPEG\");\r\n return false; // not a valid jpeg\r\n }\r\n\r\n var offset = 2,\r\n length = file.byteLength;\r\n\r\n\r\n var isFieldSegmentStart = function(dataView, offset){\r\n return (\r\n dataView.getUint8(offset) === 0x38 &&\r\n dataView.getUint8(offset+1) === 0x42 &&\r\n dataView.getUint8(offset+2) === 0x49 &&\r\n dataView.getUint8(offset+3) === 0x4D &&\r\n dataView.getUint8(offset+4) === 0x04 &&\r\n dataView.getUint8(offset+5) === 0x04\r\n );\r\n };\r\n\r\n while (offset < length) {\r\n\r\n if ( isFieldSegmentStart(dataView, offset )){\r\n\r\n // Get the length of the name header (which is padded to an even number of bytes)\r\n var nameHeaderLength = dataView.getUint8(offset+7);\r\n if(nameHeaderLength % 2 !== 0) nameHeaderLength += 1;\r\n // Check for pre photoshop 6 format\r\n if(nameHeaderLength === 0) {\r\n // Always 4\r\n nameHeaderLength = 4;\r\n }\r\n\r\n var startOffset = offset + 8 + nameHeaderLength;\r\n var sectionLength = dataView.getUint16(offset + 6 + nameHeaderLength);\r\n\r\n return readIPTCData(file, startOffset, sectionLength);\r\n\r\n break;\r\n\r\n }\r\n\r\n\r\n // Not the marker, continue searching\r\n offset++;\r\n\r\n }\r\n\r\n }\r\n var IptcFieldMap = {\r\n 0x78 : 'caption',\r\n 0x6E : 'credit',\r\n 0x19 : 'keywords',\r\n 0x37 : 'dateCreated',\r\n 0x50 : 'byline',\r\n 0x55 : 'bylineTitle',\r\n 0x7A : 'captionWriter',\r\n 0x69 : 'headline',\r\n 0x74 : 'copyright',\r\n 0x0F : 'category'\r\n };\r\n function readIPTCData(file, startOffset, sectionLength){\r\n var dataView = new DataView(file);\r\n var data = {};\r\n var fieldValue, fieldName, dataSize, segmentType, segmentSize;\r\n var segmentStartPos = startOffset;\r\n while(segmentStartPos < startOffset+sectionLength) {\r\n if(dataView.getUint8(segmentStartPos) === 0x1C && dataView.getUint8(segmentStartPos+1) === 0x02){\r\n segmentType = dataView.getUint8(segmentStartPos+2);\r\n if(segmentType in IptcFieldMap) {\r\n dataSize = dataView.getInt16(segmentStartPos+3);\r\n segmentSize = dataSize + 5;\r\n fieldName = IptcFieldMap[segmentType];\r\n fieldValue = getStringFromDB(dataView, segmentStartPos+5, dataSize);\r\n // Check if we already stored a value with this name\r\n if(data.hasOwnProperty(fieldName)) {\r\n // Value already stored with this name, create multivalue field\r\n if(data[fieldName] instanceof Array) {\r\n data[fieldName].push(fieldValue);\r\n }\r\n else {\r\n data[fieldName] = [data[fieldName], fieldValue];\r\n }\r\n }\r\n else {\r\n data[fieldName] = fieldValue;\r\n }\r\n }\r\n\r\n }\r\n segmentStartPos++;\r\n }\r\n return data;\r\n }\r\n\r\n\r\n\r\n function readTags(file, tiffStart, dirStart, strings, bigEnd) {\r\n var entries = file.getUint16(dirStart, !bigEnd),\r\n tags = {},\r\n entryOffset, tag,\r\n i;\r\n\r\n for (i=0;i 4 ? valueOffset : (entryOffset + 8);\r\n vals = [];\r\n for (n=0;n 4 ? valueOffset : (entryOffset + 8);\r\n return getStringFromDB(file, offset, numValues-1);\r\n\r\n case 3: // short, 16 bit int\r\n if (numValues == 1) {\r\n return file.getUint16(entryOffset + 8, !bigEnd);\r\n } else {\r\n offset = numValues > 2 ? valueOffset : (entryOffset + 8);\r\n vals = [];\r\n for (n=0;n dataView.byteLength) { // this should not happen\r\n // console.log('******** IFD1Offset is outside the bounds of the DataView ********');\r\n return {};\r\n }\r\n // console.log('******* thumbnail IFD offset (IFD1) is: %s', IFD1OffsetPointer);\r\n\r\n var thumbTags = readTags(dataView, tiffStart, tiffStart + IFD1OffsetPointer, IFD1Tags, bigEnd)\r\n\r\n // EXIF 2.3 specification for JPEG format thumbnail\r\n\r\n // If the value of Compression(0x0103) Tag in IFD1 is '6', thumbnail image format is JPEG.\r\n // Most of Exif image uses JPEG format for thumbnail. In that case, you can get offset of thumbnail\r\n // by JpegIFOffset(0x0201) Tag in IFD1, size of thumbnail by JpegIFByteCount(0x0202) Tag.\r\n // Data format is ordinary JPEG format, starts from 0xFFD8 and ends by 0xFFD9. It seems that\r\n // JPEG format and 160x120pixels of size are recommended thumbnail format for Exif2.1 or later.\r\n\r\n if (thumbTags['Compression']) {\r\n // console.log('Thumbnail image found!');\r\n\r\n switch (thumbTags['Compression']) {\r\n case 6:\r\n // console.log('Thumbnail image format is JPEG');\r\n if (thumbTags.JpegIFOffset && thumbTags.JpegIFByteCount) {\r\n // extract the thumbnail\r\n var tOffset = tiffStart + thumbTags.JpegIFOffset;\r\n var tLength = thumbTags.JpegIFByteCount;\r\n thumbTags['blob'] = new Blob([new Uint8Array(dataView.buffer, tOffset, tLength)], {\r\n type: 'image/jpeg'\r\n });\r\n }\r\n break;\r\n\r\n case 1:\r\n console.log(\"Thumbnail image format is TIFF, which is not implemented.\");\r\n break;\r\n default:\r\n console.log(\"Unknown thumbnail image format '%s'\", thumbTags['Compression']);\r\n }\r\n }\r\n else if (thumbTags['PhotometricInterpretation'] == 2) {\r\n console.log(\"Thumbnail image format is RGB, which is not implemented.\");\r\n }\r\n return thumbTags;\r\n }\r\n\r\n function getStringFromDB(buffer, start, length) {\r\n var outstr = \"\";\r\n for (var n = start; n < start+length; n++) {\r\n outstr += String.fromCharCode(buffer.getUint8(n));\r\n }\r\n return outstr;\r\n }\r\n\r\n function readEXIFData(file, start) {\r\n if (getStringFromDB(file, start, 4) != \"Exif\") {\r\n if (debug) console.log(\"Not valid EXIF data! \" + getStringFromDB(file, start, 4));\r\n return false;\r\n }\r\n\r\n var bigEnd,\r\n tags, tag,\r\n exifData, gpsData,\r\n tiffOffset = start + 6;\r\n\r\n // test for TIFF validity and endianness\r\n if (file.getUint16(tiffOffset) == 0x4949) {\r\n bigEnd = false;\r\n } else if (file.getUint16(tiffOffset) == 0x4D4D) {\r\n bigEnd = true;\r\n } else {\r\n if (debug) console.log(\"Not valid TIFF data! (no 0x4949 or 0x4D4D)\");\r\n return false;\r\n }\r\n\r\n if (file.getUint16(tiffOffset+2, !bigEnd) != 0x002A) {\r\n if (debug) console.log(\"Not valid TIFF data! (no 0x002A)\");\r\n return false;\r\n }\r\n\r\n var firstIFDOffset = file.getUint32(tiffOffset+4, !bigEnd);\r\n\r\n if (firstIFDOffset < 0x00000008) {\r\n if (debug) console.log(\"Not valid TIFF data! (First offset less than 8)\", file.getUint32(tiffOffset+4, !bigEnd));\r\n return false;\r\n }\r\n\r\n tags = readTags(file, tiffOffset, tiffOffset + firstIFDOffset, TiffTags, bigEnd);\r\n\r\n if (tags.ExifIFDPointer) {\r\n exifData = readTags(file, tiffOffset, tiffOffset + tags.ExifIFDPointer, ExifTags, bigEnd);\r\n for (tag in exifData) {\r\n switch (tag) {\r\n case \"LightSource\" :\r\n case \"Flash\" :\r\n case \"MeteringMode\" :\r\n case \"ExposureProgram\" :\r\n case \"SensingMethod\" :\r\n case \"SceneCaptureType\" :\r\n case \"SceneType\" :\r\n case \"CustomRendered\" :\r\n case \"WhiteBalance\" :\r\n case \"GainControl\" :\r\n case \"Contrast\" :\r\n case \"Saturation\" :\r\n case \"Sharpness\" :\r\n case \"SubjectDistanceRange\" :\r\n case \"FileSource\" :\r\n exifData[tag] = StringValues[tag][exifData[tag]];\r\n break;\r\n\r\n case \"ExifVersion\" :\r\n case \"FlashpixVersion\" :\r\n exifData[tag] = String.fromCharCode(exifData[tag][0], exifData[tag][1], exifData[tag][2], exifData[tag][3]);\r\n break;\r\n\r\n case \"ComponentsConfiguration\" :\r\n exifData[tag] =\r\n StringValues.Components[exifData[tag][0]] +\r\n StringValues.Components[exifData[tag][1]] +\r\n StringValues.Components[exifData[tag][2]] +\r\n StringValues.Components[exifData[tag][3]];\r\n break;\r\n }\r\n tags[tag] = exifData[tag];\r\n }\r\n }\r\n\r\n if (tags.GPSInfoIFDPointer) {\r\n gpsData = readTags(file, tiffOffset, tiffOffset + tags.GPSInfoIFDPointer, GPSTags, bigEnd);\r\n for (tag in gpsData) {\r\n switch (tag) {\r\n case \"GPSVersionID\" :\r\n gpsData[tag] = gpsData[tag][0] +\r\n \".\" + gpsData[tag][1] +\r\n \".\" + gpsData[tag][2] +\r\n \".\" + gpsData[tag][3];\r\n break;\r\n }\r\n tags[tag] = gpsData[tag];\r\n }\r\n }\r\n\r\n // extract thumbnail\r\n tags['thumbnail'] = readThumbnailImage(file, tiffOffset, firstIFDOffset, bigEnd);\r\n\r\n return tags;\r\n }\r\n\r\n function findXMPinJPEG(file) {\r\n\r\n if (!('DOMParser' in self)) {\r\n // console.warn('XML parsing not supported without DOMParser');\r\n return;\r\n }\r\n var dataView = new DataView(file);\r\n\r\n if (debug) console.log(\"Got file of length \" + file.byteLength);\r\n if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {\r\n if (debug) console.log(\"Not a valid JPEG\");\r\n return false; // not a valid jpeg\r\n }\r\n\r\n var offset = 2,\r\n length = file.byteLength,\r\n dom = new DOMParser();\r\n\r\n while (offset < (length-4)) {\r\n if (getStringFromDB(dataView, offset, 4) == \"http\") {\r\n var startOffset = offset - 1;\r\n var sectionLength = dataView.getUint16(offset - 2) - 1;\r\n var xmpString = getStringFromDB(dataView, startOffset, sectionLength)\r\n var xmpEndIndex = xmpString.indexOf('xmpmeta>') + 8;\r\n xmpString = xmpString.substring( xmpString.indexOf( ' 0) {\r\n json['@attributes'] = {};\r\n for (var j = 0; j < xml.attributes.length; j++) {\r\n var attribute = xml.attributes.item(j);\r\n json['@attributes'][attribute.nodeName] = attribute.nodeValue;\r\n }\r\n }\r\n } else if (xml.nodeType == 3) { // text node\r\n return xml.nodeValue;\r\n }\r\n \r\n // deal with children\r\n if (xml.hasChildNodes()) {\r\n for(var i = 0; i < xml.childNodes.length; i++) {\r\n var child = xml.childNodes.item(i);\r\n var nodeName = child.nodeName;\r\n if (json[nodeName] == null) {\r\n json[nodeName] = xml2json(child);\r\n } else {\r\n if (json[nodeName].push == null) {\r\n var old = json[nodeName];\r\n json[nodeName] = [];\r\n json[nodeName].push(old);\r\n }\r\n json[nodeName].push(xml2json(child));\r\n }\r\n }\r\n }\r\n \r\n return json;\r\n }\r\n\r\n function xml2Object(xml) {\r\n try {\r\n var obj = {};\r\n if (xml.children.length > 0) {\r\n for (var i = 0; i < xml.children.length; i++) {\r\n var item = xml.children.item(i);\r\n var attributes = item.attributes;\r\n for(var idx in attributes) {\r\n var itemAtt = attributes[idx];\r\n var dataKey = itemAtt.nodeName;\r\n var dataValue = itemAtt.nodeValue;\r\n\r\n if(dataKey !== undefined) {\r\n obj[dataKey] = dataValue;\r\n }\r\n }\r\n var nodeName = item.nodeName;\r\n\r\n if (typeof (obj[nodeName]) == \"undefined\") {\r\n obj[nodeName] = xml2json(item);\r\n } else {\r\n if (typeof (obj[nodeName].push) == \"undefined\") {\r\n var old = obj[nodeName];\r\n\r\n obj[nodeName] = [];\r\n obj[nodeName].push(old);\r\n }\r\n obj[nodeName].push(xml2json(item));\r\n }\r\n }\r\n } else {\r\n obj = xml.textContent;\r\n }\r\n return obj;\r\n } catch (e) {\r\n console.log(e.message);\r\n }\r\n }\r\n\r\n EXIF.enableXmp = function() {\r\n EXIF.isXmpEnabled = true;\r\n }\r\n\r\n EXIF.disableXmp = function() {\r\n EXIF.isXmpEnabled = false;\r\n }\r\n\r\n EXIF.getData = function(img, callback) {\r\n if (((self.Image && img instanceof self.Image)\r\n || (self.HTMLImageElement && img instanceof self.HTMLImageElement))\r\n && !img.complete)\r\n return false;\r\n\r\n if (!imageHasData(img)) {\r\n getImageData(img, callback);\r\n } else {\r\n if (callback) {\r\n callback.call(img);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n EXIF.getTag = function(img, tag) {\r\n if (!imageHasData(img)) return;\r\n return img.exifdata[tag];\r\n }\r\n \r\n EXIF.getIptcTag = function(img, tag) {\r\n if (!imageHasData(img)) return;\r\n return img.iptcdata[tag];\r\n }\r\n\r\n EXIF.getAllTags = function(img) {\r\n if (!imageHasData(img)) return {};\r\n var a,\r\n data = img.exifdata,\r\n tags = {};\r\n for (a in data) {\r\n if (data.hasOwnProperty(a)) {\r\n tags[a] = data[a];\r\n }\r\n }\r\n return tags;\r\n }\r\n \r\n EXIF.getAllIptcTags = function(img) {\r\n if (!imageHasData(img)) return {};\r\n var a,\r\n data = img.iptcdata,\r\n tags = {};\r\n for (a in data) {\r\n if (data.hasOwnProperty(a)) {\r\n tags[a] = data[a];\r\n }\r\n }\r\n return tags;\r\n }\r\n\r\n EXIF.pretty = function(img) {\r\n if (!imageHasData(img)) return \"\";\r\n var a,\r\n data = img.exifdata,\r\n strPretty = \"\";\r\n for (a in data) {\r\n if (data.hasOwnProperty(a)) {\r\n if (typeof data[a] == \"object\") {\r\n if (data[a] instanceof Number) {\r\n strPretty += a + \" : \" + data[a] + \" [\" + data[a].numerator + \"/\" + data[a].denominator + \"]\\r\\n\";\r\n } else {\r\n strPretty += a + \" : [\" + data[a].length + \" values]\\r\\n\";\r\n }\r\n } else {\r\n strPretty += a + \" : \" + data[a] + \"\\r\\n\";\r\n }\r\n }\r\n }\r\n return strPretty;\r\n }\r\n\r\n EXIF.readFromBinaryFile = function(file) {\r\n return findEXIFinJPEG(file);\r\n }\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n define('exif-js', [], function() {\r\n return EXIF;\r\n });\r\n }\r\n}.call(this));\n/*************************\r\n * Croppie\r\n * Copyright 2018\r\n * Foliotek\r\n * Version: 2.6.3\r\n *************************/\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(factory);\r\n } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {\r\n // CommonJS\r\n module.exports = factory();\r\n } else {\r\n // Browser globals\r\n root.Croppie = factory();\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function () {\r\n\r\n /* Polyfills */\r\n if (typeof Promise !== 'function') {\r\n /*! promise-polyfill 3.1.0 */\r\n !function (a) { function b(a, b) { return function () { a.apply(b, arguments) } } function c(a) { if (\"object\" !== typeof this) throw new TypeError(\"Promises must be constructed via new\"); if (\"function\" !== typeof a) throw new TypeError(\"not a function\"); this._state = null, this._value = null, this._deferreds = [], i(a, b(e, this), b(f, this)) } function d(a) { var b = this; return null === this._state ? void this._deferreds.push(a) : void k(function () { var c = b._state ? a.onFulfilled : a.onRejected; if (null === c) return void (b._state ? a.resolve : a.reject)(b._value); var d; try { d = c(b._value) } catch (e) { return void a.reject(e) } a.resolve(d) }) } function e(a) { try { if (a === this) throw new TypeError(\"A promise cannot be resolved with itself.\"); if (a && (\"object\" === typeof a || \"function\" === typeof a)) { var c = a.then; if (\"function\" === typeof c) return void i(b(c, a), b(e, this), b(f, this)) } this._state = !0, this._value = a, g.call(this) } catch (d) { f.call(this, d) } } function f(a) { this._state = !1, this._value = a, g.call(this) } function g() { for (var a = 0, b = this._deferreds.length; b > a; a++)d.call(this, this._deferreds[a]); this._deferreds = null } function h(a, b, c, d) { this.onFulfilled = \"function\" === typeof a ? a : null, this.onRejected = \"function\" === typeof b ? b : null, this.resolve = c, this.reject = d } function i(a, b, c) { var d = !1; try { a(function (a) { d || (d = !0, b(a)) }, function (a) { d || (d = !0, c(a)) }) } catch (e) { if (d) return; d = !0, c(e) } } var j = setTimeout, k = \"function\" === typeof setImmediate && setImmediate || function (a) { j(a, 1) }, l = Array.isArray || function (a) { return \"[object Array]\" === Object.prototype.toString.call(a) }; c.prototype[\"catch\"] = function (a) { return this.then(null, a) }, c.prototype.then = function (a, b) { var e = this; return new c(function (c, f) { d.call(e, new h(a, b, c, f)) }) }, c.all = function () { var a = Array.prototype.slice.call(1 === arguments.length && l(arguments[0]) ? arguments[0] : arguments); return new c(function (b, c) { function d(f, g) { try { if (g && (\"object\" === typeof g || \"function\" === typeof g)) { var h = g.then; if (\"function\" === typeof h) return void h.call(g, function (a) { d(f, a) }, c) } a[f] = g, 0 === --e && b(a) } catch (i) { c(i) } } if (0 === a.length) return b([]); for (var e = a.length, f = 0; f < a.length; f++)d(f, a[f]) }) }, c.resolve = function (a) { return a && \"object\" === typeof a && a.constructor === c ? a : new c(function (b) { b(a) }) }, c.reject = function (a) { return new c(function (b, c) { c(a) }) }, c.race = function (a) { return new c(function (b, c) { for (var d = 0, e = a.length; e > d; d++)a[d].then(b, c) }) }, c._setImmediateFn = function (a) { k = a }, \"undefined\" !== typeof module && module.exports ? module.exports = c : a.Promise || (a.Promise = c) }(this);\r\n }\r\n\r\n if (typeof window.CustomEvent !== \"function\") {\r\n (function () {\r\n function CustomEvent(event, params) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n }\r\n CustomEvent.prototype = window.Event.prototype;\r\n window.CustomEvent = CustomEvent;\r\n }());\r\n }\r\n\r\n if (!HTMLCanvasElement.prototype.toBlob) {\r\n Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {\r\n value: function (callback, type, quality) {\r\n var binStr = atob(this.toDataURL(type, quality).split(',')[1]),\r\n len = binStr.length,\r\n arr = new Uint8Array(len);\r\n\r\n for (var i = 0; i < len; i++) {\r\n arr[i] = binStr.charCodeAt(i);\r\n }\r\n\r\n callback(new Blob([arr], { type: type || 'image/png' }));\r\n }\r\n });\r\n }\r\n /* End Polyfills */\r\n\r\n var cssPrefixes = ['Webkit', 'Moz', 'ms'],\r\n emptyStyles = document.createElement('div').style,\r\n EXIF_NORM = [1, 8, 3, 6],\r\n EXIF_FLIP = [2, 7, 4, 5],\r\n CSS_TRANS_ORG,\r\n CSS_TRANSFORM,\r\n CSS_USERSELECT;\r\n\r\n function vendorPrefix(prop) {\r\n if (prop in emptyStyles) {\r\n return prop;\r\n }\r\n\r\n var capProp = prop[0].toUpperCase() + prop.slice(1),\r\n i = cssPrefixes.length;\r\n\r\n while (i--) {\r\n prop = cssPrefixes[i] + capProp;\r\n if (prop in emptyStyles) {\r\n return prop;\r\n }\r\n }\r\n }\r\n\r\n CSS_TRANSFORM = vendorPrefix('transform');\r\n CSS_TRANS_ORG = vendorPrefix('transformOrigin');\r\n CSS_USERSELECT = vendorPrefix('userSelect');\r\n\r\n function getExifOffset(ornt, rotate) {\r\n var arr = EXIF_NORM.indexOf(ornt) > -1 ? EXIF_NORM : EXIF_FLIP,\r\n index = arr.indexOf(ornt),\r\n offset = (rotate / 90) % arr.length;// 180 = 2%4 = 2 shift exif by 2 indexes\r\n\r\n return arr[(arr.length + index + (offset % arr.length)) % arr.length];\r\n }\r\n\r\n // Credits to : Andrew Dupont - http://andrewdupont.net/2009/08/28/deep-extending-objects-in-javascript/\r\n function deepExtend(destination, source) {\r\n destination = destination || {};\r\n for (var property in source) {\r\n if (source[property] && source[property].constructor && source[property].constructor === Object) {\r\n destination[property] = destination[property] || {};\r\n deepExtend(destination[property], source[property]);\r\n } else {\r\n destination[property] = source[property];\r\n }\r\n }\r\n return destination;\r\n }\r\n\r\n function clone(object) {\r\n return deepExtend({}, object);\r\n }\r\n\r\n function debounce(func, wait, immediate) {\r\n var timeout;\r\n return function () {\r\n var context = this, args = arguments;\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n }\r\n\r\n function dispatchChange(element) {\r\n if (\"createEvent\" in document) {\r\n var evt = document.createEvent(\"HTMLEvents\");\r\n evt.initEvent(\"change\", false, true);\r\n element.dispatchEvent(evt);\r\n }\r\n else {\r\n element.fireEvent(\"onchange\");\r\n }\r\n }\r\n\r\n //http://jsperf.com/vanilla-css\r\n function css(el, styles, val) {\r\n if (typeof (styles) === 'string') {\r\n var tmp = styles;\r\n styles = {};\r\n styles[tmp] = val;\r\n }\r\n\r\n for (var prop in styles) {\r\n el.style[prop] = styles[prop];\r\n }\r\n }\r\n\r\n function addClass(el, c) {\r\n if (el.classList) {\r\n el.classList.add(c);\r\n }\r\n else {\r\n el.className += ' ' + c;\r\n }\r\n }\r\n\r\n function removeClass(el, c) {\r\n if (el.classList) {\r\n el.classList.remove(c);\r\n }\r\n else {\r\n el.className = el.className.replace(c, '');\r\n }\r\n }\r\n\r\n function setAttributes(el, attrs) {\r\n for (var key in attrs) {\r\n el.setAttribute(key, attrs[key]);\r\n }\r\n }\r\n\r\n function num(v) {\r\n return parseInt(v, 10);\r\n }\r\n\r\n /* Utilities */\r\n function loadImage(src, doExif) {\r\n var img = new Image();\r\n img.style.opacity = '0';\r\n return new Promise(function (resolve, reject) {\r\n function _resolve() {\r\n img.style.opacity = '1';\r\n setTimeout(function () {\r\n resolve(img);\r\n }, 1);\r\n }\r\n\r\n img.removeAttribute('crossOrigin');\r\n if (src.match(/^https?:\\/\\/|^\\/\\//)) {\r\n img.setAttribute('crossOrigin', 'anonymous');\r\n }\r\n\r\n img.onload = function () {\r\n if (doExif) {\r\n EXIF.getData(img, function () {\r\n _resolve();\r\n });\r\n }\r\n else {\r\n _resolve();\r\n }\r\n };\r\n img.onerror = function (ev) {\r\n img.style.opacity = 1;\r\n setTimeout(function () {\r\n reject(ev);\r\n }, 1);\r\n };\r\n img.src = src;\r\n });\r\n }\r\n\r\n function naturalImageDimensions(img, ornt) {\r\n var w = img.naturalWidth;\r\n var h = img.naturalHeight;\r\n var orient = ornt || getExifOrientation(img);\r\n if (orient && orient >= 5) {\r\n var x = w;\r\n w = h;\r\n h = x;\r\n }\r\n return { width: w, height: h };\r\n }\r\n\r\n /* CSS Transform Prototype */\r\n var TRANSLATE_OPTS = {\r\n 'translate3d': {\r\n suffix: ', 0px'\r\n },\r\n 'translate': {\r\n suffix: ''\r\n }\r\n };\r\n var Transform = function (x, y, scale) {\r\n this.x = parseFloat(x);\r\n this.y = parseFloat(y);\r\n this.scale = parseFloat(scale);\r\n };\r\n\r\n Transform.parse = function (v) {\r\n if (v.style) {\r\n return Transform.parse(v.style[CSS_TRANSFORM]);\r\n }\r\n else if (v.indexOf('matrix') > -1 || v.indexOf('none') > -1) {\r\n return Transform.fromMatrix(v);\r\n }\r\n else {\r\n return Transform.fromString(v);\r\n }\r\n };\r\n\r\n Transform.fromMatrix = function (v) {\r\n var vals = v.substring(7).split(',');\r\n if (!vals.length || v === 'none') {\r\n vals = [1, 0, 0, 1, 0, 0];\r\n }\r\n\r\n return new Transform(num(vals[4]), num(vals[5]), parseFloat(vals[0]));\r\n };\r\n\r\n Transform.fromString = function (v) {\r\n var values = v.split(') '),\r\n translate = values[0].substring(Croppie.globals.translate.length + 1).split(','),\r\n scale = values.length > 1 ? values[1].substring(6) : 1,\r\n x = translate.length > 1 ? translate[0] : 0,\r\n y = translate.length > 1 ? translate[1] : 0;\r\n\r\n return new Transform(x, y, scale);\r\n };\r\n\r\n Transform.prototype.toString = function () {\r\n var suffix = TRANSLATE_OPTS[Croppie.globals.translate].suffix || '';\r\n return Croppie.globals.translate + '(' + this.x + 'px, ' + this.y + 'px' + suffix + ') scale(' + this.scale + ')';\r\n };\r\n\r\n var TransformOrigin = function (el) {\r\n if (!el || !el.style[CSS_TRANS_ORG]) {\r\n this.x = 0;\r\n this.y = 0;\r\n return;\r\n }\r\n var css = el.style[CSS_TRANS_ORG].split(' ');\r\n this.x = parseFloat(css[0]);\r\n this.y = parseFloat(css[1]);\r\n };\r\n\r\n TransformOrigin.prototype.toString = function () {\r\n return this.x + 'px ' + this.y + 'px';\r\n };\r\n\r\n function getExifOrientation(img) {\r\n return img.exifdata && img.exifdata.Orientation ? num(img.exifdata.Orientation) : 1;\r\n }\r\n\r\n function drawCanvas(canvas, img, orientation) {\r\n var width = img.width,\r\n height = img.height,\r\n ctx = canvas.getContext('2d');\r\n\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n\r\n ctx.save();\r\n switch (orientation) {\r\n case 2:\r\n ctx.translate(width, 0);\r\n ctx.scale(-1, 1);\r\n break;\r\n\r\n case 3:\r\n ctx.translate(width, height);\r\n ctx.rotate(180 * Math.PI / 180);\r\n break;\r\n\r\n case 4:\r\n ctx.translate(0, height);\r\n ctx.scale(1, -1);\r\n break;\r\n\r\n case 5:\r\n canvas.width = height;\r\n canvas.height = width;\r\n ctx.rotate(90 * Math.PI / 180);\r\n ctx.scale(1, -1);\r\n break;\r\n\r\n case 6:\r\n canvas.width = height;\r\n canvas.height = width;\r\n ctx.rotate(90 * Math.PI / 180);\r\n ctx.translate(0, -height);\r\n break;\r\n\r\n case 7:\r\n canvas.width = height;\r\n canvas.height = width;\r\n ctx.rotate(-90 * Math.PI / 180);\r\n ctx.translate(-width, height);\r\n ctx.scale(1, -1);\r\n break;\r\n\r\n case 8:\r\n canvas.width = height;\r\n canvas.height = width;\r\n ctx.translate(0, width);\r\n ctx.rotate(-90 * Math.PI / 180);\r\n break;\r\n }\r\n ctx.drawImage(img, 0, 0, width, height);\r\n ctx.restore();\r\n }\r\n\r\n /* Private Methods */\r\n function _create() {\r\n var self = this,\r\n contClass = 'croppie-container',\r\n customViewportClass = self.options.viewport.type ? 'cr-vp-' + self.options.viewport.type : null,\r\n boundary, img, viewport, overlay, bw, bh;\r\n\r\n self.options.useCanvas = self.options.enableOrientation || _hasExif.call(self);\r\n // Properties on class\r\n self.data = {};\r\n self.elements = {};\r\n\r\n boundary = self.elements.boundary = document.createElement('div');\r\n viewport = self.elements.viewport = document.createElement('div');\r\n img = self.elements.img = document.createElement('img');\r\n overlay = self.elements.overlay = document.createElement('div');\r\n\r\n if (self.options.useCanvas) {\r\n self.elements.canvas = document.createElement('canvas');\r\n self.elements.preview = self.elements.canvas;\r\n }\r\n else {\r\n self.elements.preview = img;\r\n }\r\n\r\n addClass(boundary, 'cr-boundary');\r\n boundary.setAttribute('aria-dropeffect', 'none');\r\n bw = self.options.boundary.width;\r\n bh = self.options.boundary.height;\r\n css(boundary, {\r\n width: (bw + (isNaN(bw) ? '' : 'px')),\r\n height: (bh + (isNaN(bh) ? '' : 'px'))\r\n });\r\n\r\n addClass(viewport, 'cr-viewport');\r\n if (customViewportClass) {\r\n addClass(viewport, customViewportClass);\r\n }\r\n css(viewport, {\r\n width: self.options.viewport.width + 'px',\r\n height: self.options.viewport.height + 'px'\r\n });\r\n viewport.setAttribute('tabindex', 0);\r\n\r\n addClass(self.elements.preview, 'cr-image');\r\n setAttributes(self.elements.preview, { 'alt': 'preview', 'aria-grabbed': 'false' });\r\n addClass(overlay, 'cr-overlay');\r\n\r\n self.element.appendChild(boundary);\r\n boundary.appendChild(self.elements.preview);\r\n boundary.appendChild(viewport);\r\n boundary.appendChild(overlay);\r\n\r\n addClass(self.element, contClass);\r\n if (self.options.customClass) {\r\n addClass(self.element, self.options.customClass);\r\n }\r\n\r\n _initDraggable.call(this);\r\n\r\n if (self.options.enableZoom) {\r\n _initializeZoom.call(self);\r\n }\r\n\r\n // if (self.options.enableOrientation) {\r\n // _initRotationControls.call(self);\r\n // }\r\n\r\n if (self.options.enableResize) {\r\n _initializeResize.call(self);\r\n }\r\n }\r\n\r\n // function _initRotationControls () {\r\n // var self = this,\r\n // wrap, btnLeft, btnRight, iLeft, iRight;\r\n\r\n // wrap = document.createElement('div');\r\n // self.elements.orientationBtnLeft = btnLeft = document.createElement('button');\r\n // self.elements.orientationBtnRight = btnRight = document.createElement('button');\r\n\r\n // wrap.appendChild(btnLeft);\r\n // wrap.appendChild(btnRight);\r\n\r\n // iLeft = document.createElement('i');\r\n // iRight = document.createElement('i');\r\n // btnLeft.appendChild(iLeft);\r\n // btnRight.appendChild(iRight);\r\n\r\n // addClass(wrap, 'cr-rotate-controls');\r\n // addClass(btnLeft, 'cr-rotate-l');\r\n // addClass(btnRight, 'cr-rotate-r');\r\n\r\n // self.elements.boundary.appendChild(wrap);\r\n\r\n // btnLeft.addEventListener('click', function () {\r\n // self.rotate(-90);\r\n // });\r\n // btnRight.addEventListener('click', function () {\r\n // self.rotate(90);\r\n // });\r\n // }\r\n\r\n function _hasExif() {\r\n return this.options.enableExif && window.EXIF;\r\n }\r\n\r\n function _initializeResize() {\r\n var self = this;\r\n var wrap = document.createElement('div');\r\n var isDragging = false;\r\n var direction;\r\n var originalX;\r\n var originalY;\r\n var minSize = 50;\r\n var maxWidth;\r\n var maxHeight;\r\n var vr;\r\n var hr;\r\n\r\n addClass(wrap, 'cr-resizer');\r\n css(wrap, {\r\n width: this.options.viewport.width + 'px',\r\n height: this.options.viewport.height + 'px'\r\n });\r\n\r\n if (this.options.resizeControls.height) {\r\n vr = document.createElement('div');\r\n addClass(vr, 'cr-resizer-vertical');\r\n wrap.appendChild(vr);\r\n }\r\n\r\n if (this.options.resizeControls.width) {\r\n hr = document.createElement('div');\r\n addClass(hr, 'cr-resizer-horisontal');\r\n wrap.appendChild(hr);\r\n }\r\n\r\n function mouseDown(ev) {\r\n if (ev.button !== undefined && ev.button !== 0) return;\r\n\r\n if (ev.cancelable) {\r\n\t ev.preventDefault();\r\n }\r\n\r\n if (isDragging) {\r\n return;\r\n }\r\n\r\n var overlayRect = self.elements.overlay.getBoundingClientRect();\r\n\r\n isDragging = true;\r\n originalX = ev.pageX;\r\n originalY = ev.pageY;\r\n direction = ev.currentTarget.className.indexOf('vertical') !== -1 ? 'v' : 'h';\r\n maxWidth = overlayRect.width;\r\n maxHeight = overlayRect.height;\r\n\r\n if (ev.touches) {\r\n var touches = ev.touches[0];\r\n originalX = touches.pageX;\r\n originalY = touches.pageY;\r\n }\r\n\r\n window.addEventListener('mousemove', mouseMove);\r\n window.addEventListener('touchmove', mouseMove);\r\n window.addEventListener('mouseup', mouseUp);\r\n window.addEventListener('touchend', mouseUp);\r\n document.body.style[CSS_USERSELECT] = 'none';\r\n }\r\n\r\n function mouseMove(ev) {\r\n var pageX = ev.pageX;\r\n var pageY = ev.pageY;\r\n\r\n ev.preventDefault();\r\n\r\n if (ev.touches) {\r\n var touches = ev.touches[0];\r\n pageX = touches.pageX;\r\n pageY = touches.pageY;\r\n }\r\n\r\n var deltaX = pageX - originalX;\r\n var deltaY = pageY - originalY;\r\n var newHeight = self.options.viewport.height + deltaY;\r\n var newWidth = self.options.viewport.width + deltaX;\r\n\r\n if (direction === 'v' && newHeight >= minSize && newHeight <= maxHeight) {\r\n css(wrap, {\r\n height: newHeight + 'px'\r\n });\r\n\r\n self.options.boundary.height += deltaY;\r\n css(self.elements.boundary, {\r\n height: self.options.boundary.height + 'px'\r\n });\r\n\r\n self.options.viewport.height += deltaY;\r\n css(self.elements.viewport, {\r\n height: self.options.viewport.height + 'px'\r\n });\r\n }\r\n else if (direction === 'h' && newWidth >= minSize && newWidth <= maxWidth) {\r\n css(wrap, {\r\n width: newWidth + 'px'\r\n });\r\n\r\n self.options.boundary.width += deltaX;\r\n css(self.elements.boundary, {\r\n width: self.options.boundary.width + 'px'\r\n });\r\n\r\n self.options.viewport.width += deltaX;\r\n css(self.elements.viewport, {\r\n width: self.options.viewport.width + 'px'\r\n });\r\n }\r\n\r\n _updateOverlay.call(self);\r\n _updateZoomLimits.call(self);\r\n _updateCenterPoint.call(self);\r\n _triggerUpdate.call(self);\r\n originalY = pageY;\r\n originalX = pageX;\r\n }\r\n\r\n function mouseUp() {\r\n isDragging = false;\r\n window.removeEventListener('mousemove', mouseMove);\r\n window.removeEventListener('touchmove', mouseMove);\r\n window.removeEventListener('mouseup', mouseUp);\r\n window.removeEventListener('touchend', mouseUp);\r\n document.body.style[CSS_USERSELECT] = '';\r\n }\r\n\r\n if (vr) {\r\n vr.addEventListener('mousedown', mouseDown);\r\n vr.addEventListener('touchstart', mouseDown);\r\n }\r\n\r\n if (hr) {\r\n hr.addEventListener('mousedown', mouseDown);\r\n hr.addEventListener('touchstart', mouseDown);\r\n }\r\n\r\n this.elements.boundary.appendChild(wrap);\r\n }\r\n\r\n function _setZoomerVal(v) {\r\n if (this.options.enableZoom) {\r\n var z = this.elements.zoomer,\r\n val = fix(v, 4);\r\n\r\n z.value = Math.max(parseFloat(z.min), Math.min(parseFloat(z.max), val)).toString();\r\n }\r\n }\r\n\r\n function _initializeZoom() {\r\n var self = this,\r\n wrap = self.elements.zoomerWrap = document.createElement('div'),\r\n zoomer = self.elements.zoomer = document.createElement('input');\r\n\r\n addClass(wrap, 'cr-slider-wrap');\r\n addClass(zoomer, 'cr-slider');\r\n zoomer.type = 'range';\r\n zoomer.step = '0.0001';\r\n zoomer.value = '1';\r\n zoomer.style.display = self.options.showZoomer ? '' : 'none';\r\n zoomer.setAttribute('aria-label', 'zoom');\r\n\r\n self.element.appendChild(wrap);\r\n wrap.appendChild(zoomer);\r\n\r\n self._currentZoom = 1;\r\n\r\n function change() {\r\n _onZoom.call(self, {\r\n value: parseFloat(zoomer.value),\r\n origin: new TransformOrigin(self.elements.preview),\r\n viewportRect: self.elements.viewport.getBoundingClientRect(),\r\n transform: Transform.parse(self.elements.preview)\r\n });\r\n }\r\n\r\n function scroll(ev) {\r\n var delta, targetZoom;\r\n\r\n if (self.options.mouseWheelZoom === 'ctrl' && ev.ctrlKey !== true) {\r\n return 0;\r\n } else if (ev.wheelDelta) {\r\n delta = ev.wheelDelta / 1200; //wheelDelta min: -120 max: 120 // max x 10 x 2\r\n } else if (ev.deltaY) {\r\n delta = ev.deltaY / 1060; //deltaY min: -53 max: 53 // max x 10 x 2\r\n } else if (ev.detail) {\r\n delta = ev.detail / -60; //delta min: -3 max: 3 // max x 10 x 2\r\n } else {\r\n delta = 0;\r\n }\r\n\r\n targetZoom = self._currentZoom + (delta * self._currentZoom);\r\n\r\n ev.preventDefault();\r\n _setZoomerVal.call(self, targetZoom);\r\n change.call(self);\r\n }\r\n\r\n self.elements.zoomer.addEventListener('input', change);// this is being fired twice on keypress\r\n self.elements.zoomer.addEventListener('change', change);\r\n\r\n if (self.options.mouseWheelZoom) {\r\n self.elements.boundary.addEventListener('mousewheel', scroll);\r\n self.elements.boundary.addEventListener('DOMMouseScroll', scroll);\r\n }\r\n }\r\n\r\n function _onZoom(ui) {\r\n var self = this,\r\n transform = ui ? ui.transform : Transform.parse(self.elements.preview),\r\n vpRect = ui ? ui.viewportRect : self.elements.viewport.getBoundingClientRect(),\r\n origin = ui ? ui.origin : new TransformOrigin(self.elements.preview);\r\n\r\n function applyCss() {\r\n var transCss = {};\r\n transCss[CSS_TRANSFORM] = transform.toString();\r\n transCss[CSS_TRANS_ORG] = origin.toString();\r\n css(self.elements.preview, transCss);\r\n }\r\n\r\n self._currentZoom = ui ? ui.value : self._currentZoom;\r\n transform.scale = self._currentZoom;\r\n self.elements.zoomer.setAttribute('aria-valuenow', self._currentZoom);\r\n applyCss();\r\n\r\n if (self.options.enforceBoundary) {\r\n var boundaries = _getVirtualBoundaries.call(self, vpRect),\r\n transBoundaries = boundaries.translate,\r\n oBoundaries = boundaries.origin;\r\n\r\n if (transform.x >= transBoundaries.maxX) {\r\n origin.x = oBoundaries.minX;\r\n transform.x = transBoundaries.maxX;\r\n }\r\n\r\n if (transform.x <= transBoundaries.minX) {\r\n origin.x = oBoundaries.maxX;\r\n transform.x = transBoundaries.minX;\r\n }\r\n\r\n if (transform.y >= transBoundaries.maxY) {\r\n origin.y = oBoundaries.minY;\r\n transform.y = transBoundaries.maxY;\r\n }\r\n\r\n if (transform.y <= transBoundaries.minY) {\r\n origin.y = oBoundaries.maxY;\r\n transform.y = transBoundaries.minY;\r\n }\r\n }\r\n applyCss();\r\n _debouncedOverlay.call(self);\r\n _triggerUpdate.call(self);\r\n }\r\n\r\n function _getVirtualBoundaries(viewport) {\r\n var self = this,\r\n scale = self._currentZoom,\r\n vpWidth = viewport.width,\r\n vpHeight = viewport.height,\r\n centerFromBoundaryX = self.elements.boundary.clientWidth / 2,\r\n centerFromBoundaryY = self.elements.boundary.clientHeight / 2,\r\n imgRect = self.elements.preview.getBoundingClientRect(),\r\n curImgWidth = imgRect.width,\r\n curImgHeight = imgRect.height,\r\n halfWidth = vpWidth / 2,\r\n halfHeight = vpHeight / 2;\r\n\r\n var maxX = ((halfWidth / scale) - centerFromBoundaryX) * -1;\r\n var minX = maxX - ((curImgWidth * (1 / scale)) - (vpWidth * (1 / scale)));\r\n\r\n var maxY = ((halfHeight / scale) - centerFromBoundaryY) * -1;\r\n var minY = maxY - ((curImgHeight * (1 / scale)) - (vpHeight * (1 / scale)));\r\n\r\n var originMinX = (1 / scale) * halfWidth;\r\n var originMaxX = (curImgWidth * (1 / scale)) - originMinX;\r\n\r\n var originMinY = (1 / scale) * halfHeight;\r\n var originMaxY = (curImgHeight * (1 / scale)) - originMinY;\r\n\r\n return {\r\n translate: {\r\n maxX: maxX,\r\n minX: minX,\r\n maxY: maxY,\r\n minY: minY\r\n },\r\n origin: {\r\n maxX: originMaxX,\r\n minX: originMinX,\r\n maxY: originMaxY,\r\n minY: originMinY\r\n }\r\n };\r\n }\r\n\r\n function _updateCenterPoint(rotate) {\r\n var self = this,\r\n scale = self._currentZoom,\r\n data = self.elements.preview.getBoundingClientRect(),\r\n vpData = self.elements.viewport.getBoundingClientRect(),\r\n transform = Transform.parse(self.elements.preview.style[CSS_TRANSFORM]),\r\n pc = new TransformOrigin(self.elements.preview),\r\n top = (vpData.top - data.top) + (vpData.height / 2),\r\n left = (vpData.left - data.left) + (vpData.width / 2),\r\n center = {},\r\n adj = {};\r\n\r\n if (rotate) {\r\n var cx = pc.x;\r\n var cy = pc.y;\r\n var tx = transform.x;\r\n var ty = transform.y;\r\n\r\n center.y = cx;\r\n center.x = cy;\r\n transform.y = tx;\r\n transform.x = ty;\r\n }\r\n else {\r\n center.y = top / scale;\r\n center.x = left / scale;\r\n\r\n adj.y = (center.y - pc.y) * (1 - scale);\r\n adj.x = (center.x - pc.x) * (1 - scale);\r\n\r\n transform.x -= adj.x;\r\n transform.y -= adj.y;\r\n }\r\n\r\n var newCss = {};\r\n newCss[CSS_TRANS_ORG] = center.x + 'px ' + center.y + 'px';\r\n newCss[CSS_TRANSFORM] = transform.toString();\r\n css(self.elements.preview, newCss);\r\n }\r\n\r\n function _initDraggable() {\r\n var self = this,\r\n isDragging = false,\r\n originalX,\r\n originalY,\r\n originalDistance,\r\n vpRect,\r\n transform;\r\n\r\n function assignTransformCoordinates(deltaX, deltaY) {\r\n var imgRect = self.elements.preview.getBoundingClientRect(),\r\n top = transform.y + deltaY,\r\n left = transform.x + deltaX;\r\n\r\n if (self.options.enforceBoundary) {\r\n if (vpRect.top > imgRect.top + deltaY && vpRect.bottom < imgRect.bottom + deltaY) {\r\n transform.y = top;\r\n }\r\n\r\n if (vpRect.left > imgRect.left + deltaX && vpRect.right < imgRect.right + deltaX) {\r\n transform.x = left;\r\n }\r\n }\r\n else {\r\n transform.y = top;\r\n transform.x = left;\r\n }\r\n }\r\n\r\n function toggleGrabState(isDragging) {\r\n self.elements.preview.setAttribute('aria-grabbed', isDragging);\r\n self.elements.boundary.setAttribute('aria-dropeffect', isDragging ? 'move' : 'none');\r\n }\r\n\r\n function keyDown(ev) {\r\n var LEFT_ARROW = 37,\r\n UP_ARROW = 38,\r\n RIGHT_ARROW = 39,\r\n DOWN_ARROW = 40;\r\n\r\n if (ev.shiftKey && (ev.keyCode === UP_ARROW || ev.keyCode === DOWN_ARROW)) {\r\n var zoom;\r\n if (ev.keyCode === UP_ARROW) {\r\n zoom = parseFloat(self.elements.zoomer.value) + parseFloat(self.elements.zoomer.step)\r\n }\r\n else {\r\n zoom = parseFloat(self.elements.zoomer.value) - parseFloat(self.elements.zoomer.step)\r\n }\r\n self.setZoom(zoom);\r\n }\r\n else if (self.options.enableKeyMovement && (ev.keyCode >= 37 && ev.keyCode <= 40)) {\r\n ev.preventDefault();\r\n var movement = parseKeyDown(ev.keyCode);\r\n\r\n transform = Transform.parse(self.elements.preview);\r\n document.body.style[CSS_USERSELECT] = 'none';\r\n vpRect = self.elements.viewport.getBoundingClientRect();\r\n keyMove(movement);\r\n }\r\n\r\n function parseKeyDown(key) {\r\n switch (key) {\r\n case LEFT_ARROW:\r\n return [1, 0];\r\n case UP_ARROW:\r\n return [0, 1];\r\n case RIGHT_ARROW:\r\n return [-1, 0];\r\n case DOWN_ARROW:\r\n return [0, -1];\r\n }\r\n }\r\n }\r\n\r\n function keyMove(movement) {\r\n var deltaX = movement[0],\r\n deltaY = movement[1],\r\n newCss = {};\r\n\r\n assignTransformCoordinates(deltaX, deltaY);\r\n\r\n newCss[CSS_TRANSFORM] = transform.toString();\r\n css(self.elements.preview, newCss);\r\n _updateOverlay.call(self);\r\n document.body.style[CSS_USERSELECT] = '';\r\n _updateCenterPoint.call(self);\r\n _triggerUpdate.call(self);\r\n originalDistance = 0;\r\n }\r\n\r\n function mouseDown(ev) {\r\n if (ev.button !== undefined && ev.button !== 0) return;\r\n\r\n if (ev.cancelable) {\r\n ev.preventDefault();\r\n }\r\n\r\n if (isDragging) return;\r\n isDragging = true;\r\n originalX = ev.pageX;\r\n originalY = ev.pageY;\r\n\r\n if (ev.touches) {\r\n var touches = ev.touches[0];\r\n originalX = touches.pageX;\r\n originalY = touches.pageY;\r\n }\r\n toggleGrabState(isDragging);\r\n transform = Transform.parse(self.elements.preview);\r\n window.addEventListener('mousemove', mouseMove);\r\n window.addEventListener('touchmove', mouseMove);\r\n window.addEventListener('mouseup', mouseUp);\r\n window.addEventListener('touchend', mouseUp);\r\n document.body.style[CSS_USERSELECT] = 'none';\r\n vpRect = self.elements.viewport.getBoundingClientRect();\r\n }\r\n\r\n function mouseMove(ev) {\r\n ev.preventDefault();\r\n var pageX = ev.pageX,\r\n pageY = ev.pageY;\r\n\r\n if (ev.touches) {\r\n var touches = ev.touches[0];\r\n pageX = touches.pageX;\r\n pageY = touches.pageY;\r\n }\r\n\r\n var deltaX = pageX - originalX,\r\n deltaY = pageY - originalY,\r\n newCss = {};\r\n\r\n if (ev.type === 'touchmove') {\r\n if (ev.touches.length > 1) {\r\n var touch1 = ev.touches[0];\r\n var touch2 = ev.touches[1];\r\n var dist = Math.sqrt((touch1.pageX - touch2.pageX) * (touch1.pageX - touch2.pageX) + (touch1.pageY - touch2.pageY) * (touch1.pageY - touch2.pageY));\r\n\r\n if (!originalDistance) {\r\n originalDistance = dist / self._currentZoom;\r\n }\r\n\r\n var scale = dist / originalDistance;\r\n\r\n _setZoomerVal.call(self, scale);\r\n dispatchChange(self.elements.zoomer);\r\n return;\r\n }\r\n }\r\n\r\n assignTransformCoordinates(deltaX, deltaY);\r\n\r\n newCss[CSS_TRANSFORM] = transform.toString();\r\n css(self.elements.preview, newCss);\r\n _updateOverlay.call(self);\r\n originalY = pageY;\r\n originalX = pageX;\r\n }\r\n\r\n function mouseUp() {\r\n isDragging = false;\r\n toggleGrabState(isDragging);\r\n window.removeEventListener('mousemove', mouseMove);\r\n window.removeEventListener('touchmove', mouseMove);\r\n window.removeEventListener('mouseup', mouseUp);\r\n window.removeEventListener('touchend', mouseUp);\r\n document.body.style[CSS_USERSELECT] = '';\r\n _updateCenterPoint.call(self);\r\n _triggerUpdate.call(self);\r\n originalDistance = 0;\r\n }\r\n\r\n self.elements.overlay.addEventListener('mousedown', mouseDown);\r\n self.elements.viewport.addEventListener('keydown', keyDown);\r\n self.elements.overlay.addEventListener('touchstart', mouseDown);\r\n }\r\n\r\n function _updateOverlay() {\r\n if (!this.elements) return; // since this is debounced, it can be fired after destroy\r\n var self = this,\r\n boundRect = self.elements.boundary.getBoundingClientRect(),\r\n imgData = self.elements.preview.getBoundingClientRect();\r\n\r\n css(self.elements.overlay, {\r\n width: imgData.width + 'px',\r\n height: imgData.height + 'px',\r\n top: (imgData.top - boundRect.top) + 'px',\r\n left: (imgData.left - boundRect.left) + 'px'\r\n });\r\n }\r\n var _debouncedOverlay = debounce(_updateOverlay, 500);\r\n\r\n function _triggerUpdate() {\r\n var self = this,\r\n data = self.get();\r\n\r\n if (!_isVisible.call(self)) {\r\n return;\r\n }\r\n\r\n self.options.update.call(self, data);\r\n if (self.$ && typeof Prototype === 'undefined') {\r\n self.$(self.element).trigger('update.croppie', data);\r\n }\r\n else {\r\n var ev;\r\n if (window.CustomEvent) {\r\n ev = new CustomEvent('update', { detail: data });\r\n } else {\r\n ev = document.createEvent('CustomEvent');\r\n ev.initCustomEvent('update', true, true, data);\r\n }\r\n\r\n self.element.dispatchEvent(ev);\r\n }\r\n }\r\n\r\n function _isVisible() {\r\n return this.elements.preview.offsetHeight > 0 && this.elements.preview.offsetWidth > 0;\r\n }\r\n\r\n function _updatePropertiesFromImage() {\r\n var self = this,\r\n initialZoom = 1,\r\n cssReset = {},\r\n img = self.elements.preview,\r\n imgData,\r\n transformReset = new Transform(0, 0, initialZoom),\r\n originReset = new TransformOrigin(),\r\n isVisible = _isVisible.call(self);\r\n\r\n if (!isVisible || self.data.bound) {// if the croppie isn't visible or it doesn't need binding\r\n return;\r\n }\r\n\r\n self.data.bound = true;\r\n cssReset[CSS_TRANSFORM] = transformReset.toString();\r\n cssReset[CSS_TRANS_ORG] = originReset.toString();\r\n cssReset['opacity'] = 1;\r\n css(img, cssReset);\r\n\r\n imgData = self.elements.preview.getBoundingClientRect();\r\n\r\n self._originalImageWidth = imgData.width;\r\n self._originalImageHeight = imgData.height;\r\n self.data.orientation = getExifOrientation(self.elements.img);\r\n\r\n if (self.options.enableZoom) {\r\n _updateZoomLimits.call(self, true);\r\n }\r\n else {\r\n self._currentZoom = initialZoom;\r\n }\r\n\r\n transformReset.scale = self._currentZoom;\r\n cssReset[CSS_TRANSFORM] = transformReset.toString();\r\n css(img, cssReset);\r\n\r\n if (self.data.points.length) {\r\n _bindPoints.call(self, self.data.points);\r\n }\r\n else {\r\n _centerImage.call(self);\r\n }\r\n\r\n _updateCenterPoint.call(self);\r\n _updateOverlay.call(self);\r\n }\r\n\r\n function _updateZoomLimits(initial) {\r\n var self = this,\r\n minZoom = Math.max(self.options.minZoom, 0) || 0,\r\n maxZoom = self.options.maxZoom || 1.5,\r\n initialZoom,\r\n defaultInitialZoom,\r\n zoomer = self.elements.zoomer,\r\n scale = parseFloat(zoomer.value),\r\n boundaryData = self.elements.boundary.getBoundingClientRect(),\r\n imgData = naturalImageDimensions(self.elements.img, self.data.orientation),\r\n vpData = self.elements.viewport.getBoundingClientRect(),\r\n minW,\r\n minH;\r\n if (self.options.enforceBoundary) {\r\n minW = vpData.width / imgData.width;\r\n minH = vpData.height / imgData.height;\r\n minZoom = Math.max(minW, minH);\r\n }\r\n\r\n if (minZoom >= maxZoom) {\r\n maxZoom = minZoom + 1;\r\n }\r\n\r\n zoomer.min = fix(minZoom, 4);\r\n zoomer.max = fix(maxZoom, 4);\r\n\r\n if (!initial && (scale < zoomer.min || scale > zoomer.max)) {\r\n _setZoomerVal.call(self, scale < zoomer.min ? zoomer.min : zoomer.max);\r\n }\r\n else if (initial) {\r\n defaultInitialZoom = Math.max((boundaryData.width / imgData.width), (boundaryData.height / imgData.height));\r\n initialZoom = self.data.boundZoom !== null ? self.data.boundZoom : defaultInitialZoom;\r\n _setZoomerVal.call(self, initialZoom);\r\n }\r\n\r\n dispatchChange(zoomer);\r\n }\r\n\r\n function _bindPoints(points) {\r\n if (points.length !== 4) {\r\n throw \"Croppie - Invalid number of points supplied: \" + points;\r\n }\r\n var self = this,\r\n pointsWidth = points[2] - points[0],\r\n // pointsHeight = points[3] - points[1],\r\n vpData = self.elements.viewport.getBoundingClientRect(),\r\n boundRect = self.elements.boundary.getBoundingClientRect(),\r\n vpOffset = {\r\n left: vpData.left - boundRect.left,\r\n top: vpData.top - boundRect.top\r\n },\r\n scale = vpData.width / pointsWidth,\r\n originTop = points[1],\r\n originLeft = points[0],\r\n transformTop = (-1 * points[1]) + vpOffset.top,\r\n transformLeft = (-1 * points[0]) + vpOffset.left,\r\n newCss = {};\r\n\r\n newCss[CSS_TRANS_ORG] = originLeft + 'px ' + originTop + 'px';\r\n newCss[CSS_TRANSFORM] = new Transform(transformLeft, transformTop, scale).toString();\r\n css(self.elements.preview, newCss);\r\n\r\n _setZoomerVal.call(self, scale);\r\n self._currentZoom = scale;\r\n }\r\n\r\n function _centerImage() {\r\n var self = this,\r\n imgDim = self.elements.preview.getBoundingClientRect(),\r\n vpDim = self.elements.viewport.getBoundingClientRect(),\r\n boundDim = self.elements.boundary.getBoundingClientRect(),\r\n vpLeft = vpDim.left - boundDim.left,\r\n vpTop = vpDim.top - boundDim.top,\r\n w = vpLeft - ((imgDim.width - vpDim.width) / 2),\r\n h = vpTop - ((imgDim.height - vpDim.height) / 2),\r\n transform = new Transform(w, h, self._currentZoom);\r\n\r\n css(self.elements.preview, CSS_TRANSFORM, transform.toString());\r\n }\r\n\r\n function _transferImageToCanvas(customOrientation) {\r\n var self = this,\r\n canvas = self.elements.canvas,\r\n img = self.elements.img,\r\n ctx = canvas.getContext('2d');\r\n\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n\r\n var orientation = self.options.enableOrientation && customOrientation || getExifOrientation(img);\r\n drawCanvas(canvas, img, orientation);\r\n }\r\n\r\n function _getCanvas(data) {\r\n var self = this,\r\n points = data.points,\r\n left = num(points[0]),\r\n top = num(points[1]),\r\n right = num(points[2]),\r\n bottom = num(points[3]),\r\n width = right - left,\r\n height = bottom - top,\r\n circle = data.circle,\r\n canvas = document.createElement('canvas'),\r\n ctx = canvas.getContext('2d'),\r\n startX = 0,\r\n startY = 0,\r\n canvasWidth = data.outputWidth || width,\r\n canvasHeight = data.outputHeight || height;\r\n\r\n canvas.width = canvasWidth;\r\n canvas.height = canvasHeight;\r\n\r\n if (data.backgroundColor) {\r\n ctx.fillStyle = data.backgroundColor;\r\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\r\n }\r\n\r\n // By default assume we're going to draw the entire\r\n // source image onto the destination canvas.\r\n var sx = left,\r\n sy = top,\r\n sWidth = width,\r\n sHeight = height,\r\n dx = 0,\r\n dy = 0,\r\n dWidth = canvasWidth,\r\n dHeight = canvasHeight;\r\n\r\n //\r\n // Do not go outside of the original image's bounds along the x-axis.\r\n // Handle translations when projecting onto the destination canvas.\r\n //\r\n\r\n // The smallest possible source x-position is 0.\r\n if (left < 0) {\r\n sx = 0;\r\n dx = (Math.abs(left) / width) * canvasWidth;\r\n }\r\n\r\n // The largest possible source width is the original image's width.\r\n if (sWidth + sx > self._originalImageWidth) {\r\n sWidth = self._originalImageWidth - sx;\r\n dWidth = (sWidth / width) * canvasWidth;\r\n }\r\n\r\n //\r\n // Do not go outside of the original image's bounds along the y-axis.\r\n //\r\n\r\n // The smallest possible source y-position is 0.\r\n if (top < 0) {\r\n sy = 0;\r\n dy = (Math.abs(top) / height) * canvasHeight;\r\n }\r\n\r\n // The largest possible source height is the original image's height.\r\n if (sHeight + sy > self._originalImageHeight) {\r\n sHeight = self._originalImageHeight - sy;\r\n dHeight = (sHeight / height) * canvasHeight;\r\n }\r\n\r\n // console.table({ left, right, top, bottom, canvasWidth, canvasHeight, width, height, startX, startY, circle, sx, sy, dx, dy, sWidth, sHeight, dWidth, dHeight });\r\n\r\n ctx.drawImage(this.elements.preview, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);\r\n if (circle) {\r\n ctx.fillStyle = '#fff';\r\n ctx.globalCompositeOperation = 'destination-in';\r\n ctx.beginPath();\r\n ctx.arc(canvas.width / 2, canvas.height / 2, canvas.width / 2, 0, Math.PI * 2, true);\r\n ctx.closePath();\r\n ctx.fill();\r\n }\r\n return canvas;\r\n }\r\n\r\n function _getHtmlResult(data) {\r\n var points = data.points,\r\n div = document.createElement('div'),\r\n img = document.createElement('img'),\r\n width = points[2] - points[0],\r\n height = points[3] - points[1];\r\n\r\n addClass(div, 'croppie-result');\r\n div.appendChild(img);\r\n css(img, {\r\n left: (-1 * points[0]) + 'px',\r\n top: (-1 * points[1]) + 'px'\r\n });\r\n img.src = data.url;\r\n css(div, {\r\n width: width + 'px',\r\n height: height + 'px'\r\n });\r\n\r\n return div;\r\n }\r\n\r\n function _getBase64Result(data) {\r\n return _getCanvas.call(this, data).toDataURL(data.format, data.quality);\r\n }\r\n\r\n function _getBlobResult(data) {\r\n var self = this;\r\n return new Promise(function (resolve) {\r\n _getCanvas.call(self, data).toBlob(function (blob) {\r\n resolve(blob);\r\n }, data.format, data.quality);\r\n });\r\n }\r\n\r\n function _replaceImage(img) {\r\n if (this.elements.img.parentNode) {\r\n Array.prototype.forEach.call(this.elements.img.classList, function (c) { img.classList.add(c); });\r\n this.elements.img.parentNode.replaceChild(img, this.elements.img);\r\n this.elements.preview = img; // if the img is attached to the DOM, they're not using the canvas\r\n }\r\n this.elements.img = img;\r\n }\r\n\r\n function _bind(options, cb) {\r\n var self = this,\r\n url,\r\n points = [],\r\n zoom = null,\r\n hasExif = _hasExif.call(self);\r\n\r\n if (typeof (options) === 'string') {\r\n url = options;\r\n options = {};\r\n }\r\n else if (Array.isArray(options)) {\r\n points = options.slice();\r\n }\r\n else if (typeof (options) === 'undefined' && self.data.url) { //refreshing\r\n _updatePropertiesFromImage.call(self);\r\n _triggerUpdate.call(self);\r\n return null;\r\n }\r\n else {\r\n url = options.url;\r\n points = options.points || [];\r\n zoom = typeof (options.zoom) === 'undefined' ? null : options.zoom;\r\n }\r\n\r\n self.data.bound = false;\r\n self.data.url = url || self.data.url;\r\n self.data.boundZoom = zoom;\r\n\r\n return loadImage(url, hasExif).then(function (img) {\r\n _replaceImage.call(self, img);\r\n if (!points.length) {\r\n var natDim = naturalImageDimensions(img);\r\n var rect = self.elements.viewport.getBoundingClientRect();\r\n var aspectRatio = rect.width / rect.height;\r\n var imgAspectRatio = natDim.width / natDim.height;\r\n var width, height;\r\n\r\n if (imgAspectRatio > aspectRatio) {\r\n height = natDim.height;\r\n width = height * aspectRatio;\r\n }\r\n else {\r\n width = natDim.width;\r\n height = natDim.height / aspectRatio;\r\n }\r\n\r\n var x0 = (natDim.width - width) / 2;\r\n var y0 = (natDim.height - height) / 2;\r\n var x1 = x0 + width;\r\n var y1 = y0 + height;\r\n self.data.points = [x0, y0, x1, y1];\r\n }\r\n else if (self.options.relative) {\r\n points = [\r\n points[0] * img.naturalWidth / 100,\r\n points[1] * img.naturalHeight / 100,\r\n points[2] * img.naturalWidth / 100,\r\n points[3] * img.naturalHeight / 100\r\n ];\r\n }\r\n\r\n self.data.points = points.map(function (p) {\r\n return parseFloat(p);\r\n });\r\n if (self.options.useCanvas) {\r\n _transferImageToCanvas.call(self, options.orientation);\r\n }\r\n _updatePropertiesFromImage.call(self);\r\n _triggerUpdate.call(self);\r\n cb && cb();\r\n });\r\n }\r\n\r\n function fix(v, decimalPoints) {\r\n return parseFloat(v).toFixed(decimalPoints || 0);\r\n }\r\n\r\n function _get() {\r\n var self = this,\r\n imgData = self.elements.preview.getBoundingClientRect(),\r\n vpData = self.elements.viewport.getBoundingClientRect(),\r\n x1 = vpData.left - imgData.left,\r\n y1 = vpData.top - imgData.top,\r\n widthDiff = (vpData.width - self.elements.viewport.offsetWidth) / 2, //border\r\n heightDiff = (vpData.height - self.elements.viewport.offsetHeight) / 2,\r\n x2 = x1 + self.elements.viewport.offsetWidth + widthDiff,\r\n y2 = y1 + self.elements.viewport.offsetHeight + heightDiff,\r\n scale = self._currentZoom;\r\n\r\n if (scale === Infinity || isNaN(scale)) {\r\n scale = 1;\r\n }\r\n\r\n var max = self.options.enforceBoundary ? 0 : Number.NEGATIVE_INFINITY;\r\n x1 = Math.max(max, x1 / scale);\r\n y1 = Math.max(max, y1 / scale);\r\n x2 = Math.max(max, x2 / scale);\r\n y2 = Math.max(max, y2 / scale);\r\n\r\n return {\r\n points: [fix(x1), fix(y1), fix(x2), fix(y2)],\r\n zoom: scale,\r\n orientation: self.data.orientation\r\n };\r\n }\r\n\r\n var RESULT_DEFAULTS = {\r\n type: 'canvas',\r\n format: 'png',\r\n quality: 1\r\n },\r\n RESULT_FORMATS = ['jpeg', 'webp', 'png'];\r\n\r\n function _result(options) {\r\n var self = this,\r\n data = _get.call(self),\r\n opts = deepExtend(clone(RESULT_DEFAULTS), clone(options)),\r\n resultType = (typeof (options) === 'string' ? options : (opts.type || 'base64')),\r\n size = opts.size || 'viewport',\r\n format = opts.format,\r\n quality = opts.quality,\r\n backgroundColor = opts.backgroundColor,\r\n circle = typeof opts.circle === 'boolean' ? opts.circle : (self.options.viewport.type === 'circle'),\r\n vpRect = self.elements.viewport.getBoundingClientRect(),\r\n ratio = vpRect.width / vpRect.height,\r\n prom;\r\n\r\n if (size === 'viewport') {\r\n data.outputWidth = vpRect.width;\r\n data.outputHeight = vpRect.height;\r\n } else if (typeof size === 'object') {\r\n if (size.width && size.height) {\r\n data.outputWidth = size.width;\r\n data.outputHeight = size.height;\r\n } else if (size.width) {\r\n data.outputWidth = size.width;\r\n data.outputHeight = size.width / ratio;\r\n } else if (size.height) {\r\n data.outputWidth = size.height * ratio;\r\n data.outputHeight = size.height;\r\n }\r\n }\r\n\r\n if (RESULT_FORMATS.indexOf(format) > -1) {\r\n data.format = 'image/' + format;\r\n data.quality = quality;\r\n }\r\n\r\n data.circle = circle;\r\n data.url = self.data.url;\r\n data.backgroundColor = backgroundColor;\r\n\r\n prom = new Promise(function (resolve) {\r\n switch (resultType.toLowerCase()) {\r\n case 'rawcanvas':\r\n resolve(_getCanvas.call(self, data));\r\n break;\r\n case 'canvas':\r\n case 'base64':\r\n resolve(_getBase64Result.call(self, data));\r\n break;\r\n case 'blob':\r\n _getBlobResult.call(self, data).then(resolve);\r\n break;\r\n default:\r\n resolve(_getHtmlResult.call(self, data));\r\n break;\r\n }\r\n });\r\n return prom;\r\n }\r\n\r\n function _refresh() {\r\n _updatePropertiesFromImage.call(this);\r\n }\r\n\r\n function _rotate(deg) {\r\n if (!this.options.useCanvas || !this.options.enableOrientation) {\r\n throw 'Croppie: Cannot rotate without enableOrientation && EXIF.js included';\r\n }\r\n\r\n var self = this,\r\n canvas = self.elements.canvas;\r\n\r\n self.data.orientation = getExifOffset(self.data.orientation, deg);\r\n drawCanvas(canvas, self.elements.img, self.data.orientation);\r\n _updateCenterPoint.call(self, true);\r\n _updateZoomLimits.call(self);\r\n }\r\n\r\n function _destroy() {\r\n var self = this;\r\n self.element.removeChild(self.elements.boundary);\r\n removeClass(self.element, 'croppie-container');\r\n if (self.options.enableZoom) {\r\n self.element.removeChild(self.elements.zoomerWrap);\r\n }\r\n delete self.elements;\r\n }\r\n\r\n if (window.jQuery) {\r\n var $ = window.jQuery;\r\n $.fn.croppie = function (opts) {\r\n var ot = typeof opts;\r\n\r\n if (ot === 'string') {\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n var singleInst = $(this).data('croppie');\r\n\r\n if (opts === 'get') {\r\n return singleInst.get();\r\n }\r\n else if (opts === 'result') {\r\n return singleInst.result.apply(singleInst, args);\r\n }\r\n else if (opts === 'bind') {\r\n return singleInst.bind.apply(singleInst, args);\r\n }\r\n\r\n return this.each(function () {\r\n var i = $(this).data('croppie');\r\n if (!i) return;\r\n\r\n var method = i[opts];\r\n if ($.isFunction(method)) {\r\n method.apply(i, args);\r\n if (opts === 'destroy') {\r\n $(this).removeData('croppie');\r\n }\r\n }\r\n else {\r\n throw 'Croppie ' + opts + ' method not found';\r\n }\r\n });\r\n }\r\n else {\r\n return this.each(function () {\r\n var i = new Croppie(this, opts);\r\n i.$ = $;\r\n $(this).data('croppie', i);\r\n });\r\n }\r\n };\r\n }\r\n\r\n function Croppie(element, opts) {\r\n if (element.className.indexOf('croppie-container') > -1) {\r\n throw new Error(\"Croppie: Can't initialize croppie more than once\");\r\n }\r\n this.element = element;\r\n this.options = deepExtend(clone(Croppie.defaults), opts);\r\n\r\n if (this.element.tagName.toLowerCase() === 'img') {\r\n var origImage = this.element;\r\n addClass(origImage, 'cr-original-image');\r\n setAttributes(origImage, { 'aria-hidden': 'true', 'alt': '' });\r\n var replacementDiv = document.createElement('div');\r\n this.element.parentNode.appendChild(replacementDiv);\r\n replacementDiv.appendChild(origImage);\r\n this.element = replacementDiv;\r\n this.options.url = this.options.url || origImage.src;\r\n }\r\n\r\n _create.call(this);\r\n if (this.options.url) {\r\n var bindOpts = {\r\n url: this.options.url,\r\n points: this.options.points\r\n };\r\n delete this.options['url'];\r\n delete this.options['points'];\r\n _bind.call(this, bindOpts);\r\n }\r\n }\r\n\r\n Croppie.defaults = {\r\n viewport: {\r\n width: 100,\r\n height: 100,\r\n type: 'square'\r\n },\r\n boundary: {},\r\n orientationControls: {\r\n enabled: true,\r\n leftClass: '',\r\n rightClass: ''\r\n },\r\n resizeControls: {\r\n width: true,\r\n height: true\r\n },\r\n customClass: '',\r\n showZoomer: true,\r\n enableZoom: true,\r\n enableResize: false,\r\n mouseWheelZoom: true,\r\n enableExif: false,\r\n enforceBoundary: true,\r\n enableOrientation: false,\r\n enableKeyMovement: true,\r\n update: function () { }\r\n };\r\n\r\n Croppie.globals = {\r\n translate: 'translate3d'\r\n };\r\n\r\n deepExtend(Croppie.prototype, {\r\n bind: function (options, cb) {\r\n return _bind.call(this, options, cb);\r\n },\r\n get: function () {\r\n var data = _get.call(this);\r\n var points = data.points;\r\n if (this.options.relative) {\r\n points[0] /= this.elements.img.naturalWidth / 100;\r\n points[1] /= this.elements.img.naturalHeight / 100;\r\n points[2] /= this.elements.img.naturalWidth / 100;\r\n points[3] /= this.elements.img.naturalHeight / 100;\r\n }\r\n return data;\r\n },\r\n result: function (type) {\r\n return _result.call(this, type);\r\n },\r\n refresh: function () {\r\n return _refresh.call(this);\r\n },\r\n setZoom: function (v) {\r\n _setZoomerVal.call(this, v);\r\n dispatchChange(this.elements.zoomer);\r\n },\r\n rotate: function (deg) {\r\n _rotate.call(this, deg);\r\n },\r\n destroy: function () {\r\n return _destroy.call(this);\r\n }\r\n });\r\n return Croppie;\r\n}));\n(function webpackUniversalModuleDefinition(root, factory) {\r\n\tif(typeof exports === 'object' && typeof module === 'object')\r\n\t\tmodule.exports = factory();\r\n\telse if(typeof define === 'function' && define.amd)\r\n\t\tdefine([], factory);\r\n\telse if(typeof exports === 'object')\r\n\t\texports[\"Cleave\"] = factory();\r\n\telse\r\n\t\troot[\"Cleave\"] = factory();\r\n})(this, function() {\r\nreturn /******/ (function(modules) { // webpackBootstrap\r\n/******/ \t// The module cache\r\n/******/ \tvar installedModules = {};\r\n\r\n/******/ \t// The require function\r\n/******/ \tfunction __webpack_require__(moduleId) {\r\n\r\n/******/ \t\t// Check if module is in cache\r\n/******/ \t\tif(installedModules[moduleId])\r\n/******/ \t\t\treturn installedModules[moduleId].exports;\r\n\r\n/******/ \t\t// Create a new module (and put it into the cache)\r\n/******/ \t\tvar module = installedModules[moduleId] = {\r\n/******/ \t\t\texports: {},\r\n/******/ \t\t\tid: moduleId,\r\n/******/ \t\t\tloaded: false\r\n/******/ \t\t};\r\n\r\n/******/ \t\t// Execute the module function\r\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n\r\n/******/ \t\t// Flag the module as loaded\r\n/******/ \t\tmodule.loaded = true;\r\n\r\n/******/ \t\t// Return the exports of the module\r\n/******/ \t\treturn module.exports;\r\n/******/ \t}\r\n\r\n\r\n/******/ \t// expose the modules object (__webpack_modules__)\r\n/******/ \t__webpack_require__.m = modules;\r\n\r\n/******/ \t// expose the module cache\r\n/******/ \t__webpack_require__.c = installedModules;\r\n\r\n/******/ \t// __webpack_public_path__\r\n/******/ \t__webpack_require__.p = \"\";\r\n\r\n/******/ \t// Load entry module and return exports\r\n/******/ \treturn __webpack_require__(0);\r\n/******/ })\r\n/************************************************************************/\r\n/******/ ([\r\n/* 0 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\r\n\r\n\t/**\r\n\t * Construct a new Cleave instance by passing the configuration object\r\n\t *\r\n\t * @param {String | HTMLElement} element\r\n\t * @param {Object} opts\r\n\t */\r\n\tvar Cleave = function (element, opts) {\r\n\t var owner = this;\r\n\t var hasMultipleElements = false;\r\n\r\n\t if (typeof element === 'string') {\r\n\t owner.element = document.querySelector(element);\r\n\t hasMultipleElements = document.querySelectorAll(element).length > 1;\r\n\t } else {\r\n\t if (typeof element.length !== 'undefined' && element.length > 0) {\r\n\t owner.element = element[0];\r\n\t hasMultipleElements = element.length > 1;\r\n\t } else {\r\n\t owner.element = element;\r\n\t }\r\n\t }\r\n\r\n\t if (!owner.element) {\r\n\t throw new Error('[cleave.js] Please check the element');\r\n\t }\r\n\r\n\t if (hasMultipleElements) {\r\n\t try {\r\n\t // eslint-disable-next-line\r\n\t console.warn('[cleave.js] Multiple input fields matched, cleave.js will only take the first one.');\r\n\t } catch (e) {\r\n\t // Old IE\r\n\t }\r\n\t }\r\n\r\n\t opts.initValue = owner.element.value;\r\n\r\n\t owner.properties = Cleave.DefaultProperties.assign({}, opts);\r\n\r\n\t owner.init();\r\n\t};\r\n\r\n\tCleave.prototype = {\r\n\t init: function () {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t // no need to use this lib\r\n\t if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.time && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) {\r\n\t owner.onInput(pps.initValue);\r\n\r\n\t return;\r\n\t }\r\n\r\n\t pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\r\n\r\n\t owner.isAndroid = Cleave.Util.isAndroid();\r\n\t owner.lastInputValue = '';\r\n\r\n\t owner.onChangeListener = owner.onChange.bind(owner);\r\n\t owner.onKeyDownListener = owner.onKeyDown.bind(owner);\r\n\t owner.onFocusListener = owner.onFocus.bind(owner);\r\n\t owner.onCutListener = owner.onCut.bind(owner);\r\n\t owner.onCopyListener = owner.onCopy.bind(owner);\r\n\r\n\t owner.element.addEventListener('input', owner.onChangeListener);\r\n\t owner.element.addEventListener('keydown', owner.onKeyDownListener);\r\n\t owner.element.addEventListener('focus', owner.onFocusListener);\r\n\t owner.element.addEventListener('cut', owner.onCutListener);\r\n\t owner.element.addEventListener('copy', owner.onCopyListener);\r\n\r\n\r\n\t owner.initPhoneFormatter();\r\n\t owner.initDateFormatter();\r\n\t owner.initTimeFormatter();\r\n\t owner.initNumeralFormatter();\r\n\r\n\t // avoid touch input field if value is null\r\n\t // otherwise Firefox will add red box-shadow for \r\n\t if (pps.initValue || (pps.prefix && !pps.noImmediatePrefix)) {\r\n\t owner.onInput(pps.initValue);\r\n\t }\r\n\t },\r\n\r\n\t initNumeralFormatter: function () {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t if (!pps.numeral) {\r\n\t return;\r\n\t }\r\n\r\n\t pps.numeralFormatter = new Cleave.NumeralFormatter(\r\n\t pps.numeralDecimalMark,\r\n\t pps.numeralIntegerScale,\r\n\t pps.numeralDecimalScale,\r\n\t pps.numeralThousandsGroupStyle,\r\n\t pps.numeralPositiveOnly,\r\n\t pps.stripLeadingZeroes,\r\n\t pps.delimiter\r\n\t );\r\n\t },\r\n\r\n\t initTimeFormatter: function() {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t if (!pps.time) {\r\n\t return;\r\n\t }\r\n\r\n\t pps.timeFormatter = new Cleave.TimeFormatter(pps.timePattern, pps.timeFormat);\r\n\t pps.blocks = pps.timeFormatter.getBlocks();\r\n\t pps.blocksLength = pps.blocks.length;\r\n\t pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\r\n\t },\r\n\r\n\t initDateFormatter: function () {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t if (!pps.date) {\r\n\t return;\r\n\t }\r\n\r\n\t pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern);\r\n\t pps.blocks = pps.dateFormatter.getBlocks();\r\n\t pps.blocksLength = pps.blocks.length;\r\n\t pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\r\n\t },\r\n\r\n\t initPhoneFormatter: function () {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t if (!pps.phone) {\r\n\t return;\r\n\t }\r\n\r\n\t // Cleave.AsYouTypeFormatter should be provided by\r\n\t // external google closure lib\r\n\t try {\r\n\t pps.phoneFormatter = new Cleave.PhoneFormatter(\r\n\t new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),\r\n\t pps.delimiter\r\n\t );\r\n\t } catch (ex) {\r\n\t throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib');\r\n\t }\r\n\t },\r\n\r\n\t onKeyDown: function (event) {\r\n\t var owner = this, pps = owner.properties,\r\n\t charCode = event.which || event.keyCode,\r\n\t Util = Cleave.Util,\r\n\t currentValue = owner.element.value;\r\n\r\n\t // if we got any charCode === 8, this means, that this device correctly\r\n\t // sends backspace keys in event, so we do not need to apply any hacks\r\n\t owner.hasBackspaceSupport = owner.hasBackspaceSupport || charCode === 8;\r\n\t if (!owner.hasBackspaceSupport\r\n\t && Util.isAndroidBackspaceKeydown(owner.lastInputValue, currentValue)\r\n\t ) {\r\n\t charCode = 8;\r\n\t }\r\n\r\n\t owner.lastInputValue = currentValue;\r\n\r\n\t // hit backspace when last character is delimiter\r\n\t var postDelimiter = Util.getPostDelimiter(currentValue, pps.delimiter, pps.delimiters);\r\n\t if (charCode === 8 && postDelimiter) {\r\n\t pps.postDelimiterBackspace = postDelimiter;\r\n\t } else {\r\n\t pps.postDelimiterBackspace = false;\r\n\t }\r\n\t },\r\n\r\n\t onChange: function () {\r\n\t this.onInput(this.element.value);\r\n\t },\r\n\r\n\t onFocus: function () {\r\n\t var owner = this,\r\n\t pps = owner.properties;\r\n\r\n\t Cleave.Util.fixPrefixCursor(owner.element, pps.prefix, pps.delimiter, pps.delimiters);\r\n\t },\r\n\r\n\t onCut: function (e) {\r\n\t this.copyClipboardData(e);\r\n\t this.onInput('');\r\n\t },\r\n\r\n\t onCopy: function (e) {\r\n\t this.copyClipboardData(e);\r\n\t },\r\n\r\n\t copyClipboardData: function (e) {\r\n\t var owner = this,\r\n\t pps = owner.properties,\r\n\t Util = Cleave.Util,\r\n\t inputValue = owner.element.value,\r\n\t textToCopy = '';\r\n\r\n\t if (!pps.copyDelimiter) {\r\n\t textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters);\r\n\t } else {\r\n\t textToCopy = inputValue;\r\n\t }\r\n\r\n\t try {\r\n\t if (e.clipboardData) {\r\n\t e.clipboardData.setData('Text', textToCopy);\r\n\t } else {\r\n\t window.clipboardData.setData('Text', textToCopy);\r\n\t }\r\n\r\n\t e.preventDefault();\r\n\t } catch (ex) {\r\n\t // empty\r\n\t }\r\n\t },\r\n\r\n\t onInput: function (value) {\r\n\t var owner = this, pps = owner.properties,\r\n\t Util = Cleave.Util;\r\n\r\n\t // case 1: delete one more character \"4\"\r\n\t // 1234*| -> hit backspace -> 123|\r\n\t // case 2: last character is not delimiter which is:\r\n\t // 12|34* -> hit backspace -> 1|34*\r\n\t // note: no need to apply this for numeral mode\r\n\t var postDelimiterAfter = Util.getPostDelimiter(value, pps.delimiter, pps.delimiters);\r\n\t if (!pps.numeral && pps.postDelimiterBackspace && !postDelimiterAfter) {\r\n\t value = Util.headStr(value, value.length - pps.postDelimiterBackspace.length);\r\n\t }\r\n\r\n\t // phone formatter\r\n\t if (pps.phone) {\r\n\t if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\r\n\t pps.result = pps.prefix + pps.phoneFormatter.format(value).slice(pps.prefix.length);\r\n\t } else {\r\n\t pps.result = pps.phoneFormatter.format(value);\r\n\t }\r\n\t owner.updateValueState();\r\n\r\n\t return;\r\n\t }\r\n\r\n\t // numeral formatter\r\n\t if (pps.numeral) {\r\n\t if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\r\n\t pps.result = pps.prefix + pps.numeralFormatter.format(value);\r\n\t } else {\r\n\t pps.result = pps.numeralFormatter.format(value);\r\n\t }\r\n\t owner.updateValueState();\r\n\r\n\t return;\r\n\t }\r\n\r\n\t // date\r\n\t if (pps.date) {\r\n\t value = pps.dateFormatter.getValidatedDate(value);\r\n\t }\r\n\r\n\t // time\r\n\t if (pps.time) {\r\n\t value = pps.timeFormatter.getValidatedTime(value);\r\n\t }\r\n\r\n\t // strip delimiters\r\n\t value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);\r\n\r\n\t // strip prefix\r\n\t // var strippedPreviousResult = Util.stripDelimiters(pps.result, pps.delimiter, pps.delimiters);\r\n\t value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters);\r\n\r\n\t // strip non-numeric characters\r\n\t value = pps.numericOnly ? Util.strip(value, /[^\\d]/g) : value;\r\n\r\n\t // convert case\r\n\t value = pps.uppercase ? value.toUpperCase() : value;\r\n\t value = pps.lowercase ? value.toLowerCase() : value;\r\n\r\n\t // prefix\r\n\t if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\r\n\t value = pps.prefix + value;\r\n\r\n\t // no blocks specified, no need to do formatting\r\n\t if (pps.blocksLength === 0) {\r\n\t pps.result = value;\r\n\t owner.updateValueState();\r\n\r\n\t return;\r\n\t }\r\n\t }\r\n\r\n\t // update credit card props\r\n\t if (pps.creditCard) {\r\n\t owner.updateCreditCardPropsByValue(value);\r\n\t }\r\n\r\n\t // strip over length characters\r\n\t value = Util.headStr(value, pps.maxLength);\r\n\r\n\t // apply blocks\r\n\t pps.result = Util.getFormattedValue(\r\n\t value,\r\n\t pps.blocks, pps.blocksLength,\r\n\t pps.delimiter, pps.delimiters, pps.delimiterLazyShow\r\n\t );\r\n\r\n\t owner.updateValueState();\r\n\t },\r\n\r\n\t updateCreditCardPropsByValue: function (value) {\r\n\t var owner = this, pps = owner.properties,\r\n\t Util = Cleave.Util,\r\n\t creditCardInfo;\r\n\r\n\t // At least one of the first 4 characters has changed\r\n\t if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) {\r\n\t return;\r\n\t }\r\n\r\n\t creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode);\r\n\r\n\t pps.blocks = creditCardInfo.blocks;\r\n\t pps.blocksLength = pps.blocks.length;\r\n\t pps.maxLength = Util.getMaxLength(pps.blocks);\r\n\r\n\t // credit card type changed\r\n\t if (pps.creditCardType !== creditCardInfo.type) {\r\n\t pps.creditCardType = creditCardInfo.type;\r\n\r\n\t pps.onCreditCardTypeChanged.call(owner, pps.creditCardType);\r\n\t }\r\n\t },\r\n\r\n\t updateValueState: function () {\r\n\t var owner = this,\r\n\t Util = Cleave.Util,\r\n\t pps = owner.properties;\r\n\r\n\t if (!owner.element) {\r\n\t return;\r\n\t }\r\n\r\n\t var endPos = owner.element.selectionEnd;\r\n\t var oldValue = owner.element.value;\r\n\t var newValue = pps.result;\r\n\r\n\t endPos = Util.getNextCursorPosition(endPos, oldValue, newValue, pps.delimiter, pps.delimiters);\r\n\r\n\t // fix Android browser type=\"text\" input field\r\n\t // cursor not jumping issue\r\n\t if (owner.isAndroid) {\r\n\t window.setTimeout(function () {\r\n\t owner.element.value = newValue;\r\n\t Util.setSelection(owner.element, endPos, pps.document, false);\r\n\t owner.callOnValueChanged();\r\n\t }, 1);\r\n\r\n\t return;\r\n\t }\r\n\r\n\t owner.element.value = newValue;\r\n\t Util.setSelection(owner.element, endPos, pps.document, false);\r\n\t owner.callOnValueChanged();\r\n\t },\r\n\r\n\t callOnValueChanged: function () {\r\n\t var owner = this,\r\n\t pps = owner.properties;\r\n\r\n\t pps.onValueChanged.call(owner, {\r\n\t target: {\r\n\t value: pps.result,\r\n\t rawValue: owner.getRawValue()\r\n\t }\r\n\t });\r\n\t },\r\n\r\n\t setPhoneRegionCode: function (phoneRegionCode) {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t pps.phoneRegionCode = phoneRegionCode;\r\n\t owner.initPhoneFormatter();\r\n\t owner.onChange();\r\n\t },\r\n\r\n\t setRawValue: function (value) {\r\n\t var owner = this, pps = owner.properties;\r\n\r\n\t value = value !== undefined && value !== null ? value.toString() : '';\r\n\r\n\t if (pps.numeral) {\r\n\t value = value.replace('.', pps.numeralDecimalMark);\r\n\t }\r\n\r\n\t pps.postDelimiterBackspace = false;\r\n\r\n\t owner.element.value = value;\r\n\t owner.onInput(value);\r\n\t },\r\n\r\n\t getRawValue: function () {\r\n\t var owner = this,\r\n\t pps = owner.properties,\r\n\t Util = Cleave.Util,\r\n\t rawValue = owner.element.value;\r\n\r\n\t if (pps.rawValueTrimPrefix) {\r\n\t rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters);\r\n\t }\r\n\r\n\t if (pps.numeral) {\r\n\t rawValue = pps.numeralFormatter.getRawValue(rawValue);\r\n\t } else {\r\n\t rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters);\r\n\t }\r\n\r\n\t return rawValue;\r\n\t },\r\n\r\n\t getISOFormatDate: function () {\r\n\t var owner = this,\r\n\t pps = owner.properties;\r\n\r\n\t return pps.date ? pps.dateFormatter.getISOFormatDate() : '';\r\n\t },\r\n\r\n\t getISOFormatTime: function () {\r\n\t var owner = this,\r\n\t pps = owner.properties;\r\n\r\n\t return pps.time ? pps.timeFormatter.getISOFormatTime() : '';\r\n\t },\r\n\r\n\t getFormattedValue: function () {\r\n\t return this.element.value;\r\n\t },\r\n\r\n\t destroy: function () {\r\n\t var owner = this;\r\n\r\n\t owner.element.removeEventListener('input', owner.onChangeListener);\r\n\t owner.element.removeEventListener('keydown', owner.onKeyDownListener);\r\n\t owner.element.removeEventListener('focus', owner.onFocusListener);\r\n\t owner.element.removeEventListener('cut', owner.onCutListener);\r\n\t owner.element.removeEventListener('copy', owner.onCopyListener);\r\n\t },\r\n\r\n\t toString: function () {\r\n\t return '[Cleave Object]';\r\n\t }\r\n\t};\r\n\r\n\tCleave.NumeralFormatter = __webpack_require__(1);\r\n\tCleave.DateFormatter = __webpack_require__(2);\r\n\tCleave.TimeFormatter = __webpack_require__(3);\r\n\tCleave.PhoneFormatter = __webpack_require__(4);\r\n\tCleave.CreditCardDetector = __webpack_require__(5);\r\n\tCleave.Util = __webpack_require__(6);\r\n\tCleave.DefaultProperties = __webpack_require__(7);\r\n\r\n\t// for angular directive\r\n\t((typeof global === 'object' && global) ? global : window)['Cleave'] = Cleave;\r\n\r\n\t// CommonJS\r\n\tmodule.exports = Cleave;\r\n\r\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\r\n\r\n/***/ }),\r\n/* 1 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\tvar NumeralFormatter = function (numeralDecimalMark,\r\n\t numeralIntegerScale,\r\n\t numeralDecimalScale,\r\n\t numeralThousandsGroupStyle,\r\n\t numeralPositiveOnly,\r\n\t stripLeadingZeroes,\r\n\t delimiter) {\r\n\t var owner = this;\r\n\r\n\t owner.numeralDecimalMark = numeralDecimalMark || '.';\r\n\t owner.numeralIntegerScale = numeralIntegerScale > 0 ? numeralIntegerScale : 0;\r\n\t owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2;\r\n\t owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand;\r\n\t owner.numeralPositiveOnly = !!numeralPositiveOnly;\r\n\t owner.stripLeadingZeroes = stripLeadingZeroes !== false;\r\n\t owner.delimiter = (delimiter || delimiter === '') ? delimiter : ',';\r\n\t owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\r\n\t};\r\n\r\n\tNumeralFormatter.groupStyle = {\r\n\t thousand: 'thousand',\r\n\t lakh: 'lakh',\r\n\t wan: 'wan',\r\n\t none: 'none' \r\n\t};\r\n\r\n\tNumeralFormatter.prototype = {\r\n\t getRawValue: function (value) {\r\n\t return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.');\r\n\t },\r\n\r\n\t format: function (value) {\r\n\t var owner = this, parts, partInteger, partDecimal = '';\r\n\r\n\t // strip alphabet letters\r\n\t value = value.replace(/[A-Za-z]/g, '')\r\n\t // replace the first decimal mark with reserved placeholder\r\n\t .replace(owner.numeralDecimalMark, 'M')\r\n\r\n\t // strip non numeric letters except minus and \"M\"\r\n\t // this is to ensure prefix has been stripped\r\n\t .replace(/[^\\dM-]/g, '')\r\n\r\n\t // replace the leading minus with reserved placeholder\r\n\t .replace(/^\\-/, 'N')\r\n\r\n\t // strip the other minus sign (if present)\r\n\t .replace(/\\-/g, '')\r\n\r\n\t // replace the minus sign (if present)\r\n\t .replace('N', owner.numeralPositiveOnly ? '' : '-')\r\n\r\n\t // replace decimal mark\r\n\t .replace('M', owner.numeralDecimalMark);\r\n\r\n\t // strip any leading zeros\r\n\t if (owner.stripLeadingZeroes) {\r\n\t value = value.replace(/^(-)?0+(?=\\d)/, '$1');\r\n\t }\r\n\r\n\t partInteger = value;\r\n\r\n\t if (value.indexOf(owner.numeralDecimalMark) >= 0) {\r\n\t parts = value.split(owner.numeralDecimalMark);\r\n\t partInteger = parts[0];\r\n\t partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale);\r\n\t }\r\n\r\n\t if (owner.numeralIntegerScale > 0) {\r\n\t partInteger = partInteger.slice(0, owner.numeralIntegerScale + (value.slice(0, 1) === '-' ? 1 : 0));\r\n\t }\r\n\r\n\t switch (owner.numeralThousandsGroupStyle) {\r\n\t case NumeralFormatter.groupStyle.lakh:\r\n\t partInteger = partInteger.replace(/(\\d)(?=(\\d\\d)+\\d$)/g, '$1' + owner.delimiter);\r\n\r\n\t break;\r\n\r\n\t case NumeralFormatter.groupStyle.wan:\r\n\t partInteger = partInteger.replace(/(\\d)(?=(\\d{4})+$)/g, '$1' + owner.delimiter);\r\n\r\n\t break;\r\n\r\n\t case NumeralFormatter.groupStyle.thousand:\r\n\t partInteger = partInteger.replace(/(\\d)(?=(\\d{3})+$)/g, '$1' + owner.delimiter);\r\n\r\n\t break;\r\n\t }\r\n\r\n\t return partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '');\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = NumeralFormatter;\r\n\r\n\r\n/***/ }),\r\n/* 2 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\tvar DateFormatter = function (datePattern) {\r\n\t var owner = this;\r\n\r\n\t owner.date = [];\r\n\t owner.blocks = [];\r\n\t owner.datePattern = datePattern;\r\n\t owner.initBlocks();\r\n\t};\r\n\r\n\tDateFormatter.prototype = {\r\n\t initBlocks: function () {\r\n\t var owner = this;\r\n\t owner.datePattern.forEach(function (value) {\r\n\t if (value === 'Y') {\r\n\t owner.blocks.push(4);\r\n\t } else {\r\n\t owner.blocks.push(2);\r\n\t }\r\n\t });\r\n\t },\r\n\r\n\t getISOFormatDate: function () {\r\n\t var owner = this,\r\n\t date = owner.date;\r\n\r\n\t return date[2] ? (\r\n\t date[2] + '-' + owner.addLeadingZero(date[1]) + '-' + owner.addLeadingZero(date[0])\r\n\t ) : '';\r\n\t },\r\n\r\n\t getBlocks: function () {\r\n\t return this.blocks;\r\n\t },\r\n\r\n\t getValidatedDate: function (value) {\r\n\t var owner = this, result = '';\r\n\r\n\t value = value.replace(/[^\\d]/g, '');\r\n\r\n\t owner.blocks.forEach(function (length, index) {\r\n\t if (value.length > 0) {\r\n\t var sub = value.slice(0, length),\r\n\t sub0 = sub.slice(0, 1),\r\n\t rest = value.slice(length);\r\n\r\n\t switch (owner.datePattern[index]) {\r\n\t case 'd':\r\n\t if (sub === '00') {\r\n\t sub = '01';\r\n\t } else if (parseInt(sub0, 10) > 3) {\r\n\t sub = '0' + sub0;\r\n\t } else if (parseInt(sub, 10) > 31) {\r\n\t sub = '31';\r\n\t }\r\n\r\n\t break;\r\n\r\n\t case 'm':\r\n\t if (sub === '00') {\r\n\t sub = '01';\r\n\t } else if (parseInt(sub0, 10) > 1) {\r\n\t sub = '0' + sub0;\r\n\t } else if (parseInt(sub, 10) > 12) {\r\n\t sub = '12';\r\n\t }\r\n\r\n\t break;\r\n\t }\r\n\r\n\t result += sub;\r\n\r\n\t // update remaining string\r\n\t value = rest;\r\n\t }\r\n\t });\r\n\r\n\t return this.getFixedDateString(result);\r\n\t },\r\n\r\n\t getFixedDateString: function (value) {\r\n\t var owner = this, datePattern = owner.datePattern, date = [],\r\n\t dayIndex = 0, monthIndex = 0, yearIndex = 0,\r\n\t dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0,\r\n\t day, month, year, fullYearDone = false;\r\n\r\n\t // mm-dd || dd-mm\r\n\t if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') {\r\n\t dayStartIndex = datePattern[0] === 'd' ? 0 : 2;\r\n\t monthStartIndex = 2 - dayStartIndex;\r\n\t day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\r\n\t month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\r\n\r\n\t date = this.getFixedDate(day, month, 0);\r\n\t }\r\n\r\n\t // yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd\r\n\t if (value.length === 8) {\r\n\t datePattern.forEach(function (type, index) {\r\n\t switch (type) {\r\n\t case 'd':\r\n\t dayIndex = index;\r\n\t break;\r\n\t case 'm':\r\n\t monthIndex = index;\r\n\t break;\r\n\t default:\r\n\t yearIndex = index;\r\n\t break;\r\n\t }\r\n\t });\r\n\r\n\t yearStartIndex = yearIndex * 2;\r\n\t dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2);\r\n\t monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2);\r\n\r\n\t day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\r\n\t month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\r\n\t year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\r\n\r\n\t fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\r\n\r\n\t date = this.getFixedDate(day, month, year);\r\n\t }\r\n\r\n\t owner.date = date;\r\n\r\n\t return date.length === 0 ? value : datePattern.reduce(function (previous, current) {\r\n\t switch (current) {\r\n\t case 'd':\r\n\t return previous + owner.addLeadingZero(date[0]);\r\n\t case 'm':\r\n\t return previous + owner.addLeadingZero(date[1]);\r\n\t default:\r\n\t return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2]) : '');\r\n\t }\r\n\t }, '');\r\n\t },\r\n\r\n\t getFixedDate: function (day, month, year) {\r\n\t day = Math.min(day, 31);\r\n\t month = Math.min(month, 12);\r\n\t year = parseInt((year || 0), 10);\r\n\r\n\t if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) {\r\n\t day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30);\r\n\t }\r\n\r\n\t return [day, month, year];\r\n\t },\r\n\r\n\t isLeapYear: function (year) {\r\n\t return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\r\n\t },\r\n\r\n\t addLeadingZero: function (number) {\r\n\t return (number < 10 ? '0' : '') + number;\r\n\t },\r\n\r\n\t addLeadingZeroForYear: function (number) {\r\n\t return (number < 10 ? '000' : (number < 100 ? '00' : (number < 1000 ? '0' : ''))) + number;\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = DateFormatter;\r\n\r\n\r\n\r\n/***/ }),\r\n/* 3 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\tvar TimeFormatter = function (timePattern, timeFormat) {\r\n\t var owner = this;\r\n\r\n\t owner.time = [];\r\n\t owner.blocks = [];\r\n\t owner.timePattern = timePattern;\r\n\t owner.timeFormat = timeFormat;\r\n\t owner.initBlocks();\r\n\t};\r\n\r\n\tTimeFormatter.prototype = {\r\n\t initBlocks: function () {\r\n\t var owner = this;\r\n\t owner.timePattern.forEach(function () {\r\n\t owner.blocks.push(2);\r\n\t });\r\n\t },\r\n\r\n\t getISOFormatTime: function () {\r\n\t var owner = this,\r\n\t time = owner.time;\r\n\r\n\t return time[2] ? (\r\n\t owner.addLeadingZero(time[0]) + ':' + owner.addLeadingZero(time[1]) + ':' + owner.addLeadingZero(time[2])\r\n\t ) : '';\r\n\t },\r\n\r\n\t getBlocks: function () {\r\n\t return this.blocks;\r\n\t },\r\n\r\n\t getTimeFormatOptions: function () {\r\n\t var owner = this;\r\n\t if (String(owner.timeFormat) === '12') {\r\n\t return {\r\n\t maxHourFirstDigit: 1,\r\n\t maxHours: 12,\r\n\t maxMinutesFirstDigit: 5,\r\n\t maxMinutes: 60\r\n\t };\r\n\t }\r\n\r\n\t return {\r\n\t maxHourFirstDigit: 2,\r\n\t maxHours: 23,\r\n\t maxMinutesFirstDigit: 5,\r\n\t maxMinutes: 60\r\n\t };\r\n\t },\r\n\r\n\t getValidatedTime: function (value) {\r\n\t var owner = this, result = '';\r\n\r\n\t value = value.replace(/[^\\d]/g, '');\r\n\r\n\t var timeFormatOptions = owner.getTimeFormatOptions();\r\n\r\n\t owner.blocks.forEach(function (length, index) {\r\n\t if (value.length > 0) {\r\n\t var sub = value.slice(0, length),\r\n\t sub0 = sub.slice(0, 1),\r\n\t rest = value.slice(length);\r\n\r\n\t switch (owner.timePattern[index]) {\r\n\r\n\t case 'h':\r\n\t if (parseInt(sub0, 10) > timeFormatOptions.maxHourFirstDigit) {\r\n\t sub = '0' + sub0;\r\n\t } else if (parseInt(sub, 10) > timeFormatOptions.maxHours) {\r\n\t sub = timeFormatOptions.maxHours + '';\r\n\t }\r\n\r\n\t break;\r\n\r\n\t case 'm':\r\n\t case 's':\r\n\t if (parseInt(sub0, 10) > timeFormatOptions.maxMinutesFirstDigit) {\r\n\t sub = '0' + sub0;\r\n\t } else if (parseInt(sub, 10) > timeFormatOptions.maxMinutes) {\r\n\t sub = timeFormatOptions.maxMinutes + '';\r\n\t }\r\n\t break;\r\n\t }\r\n\r\n\t result += sub;\r\n\r\n\t // update remaining string\r\n\t value = rest;\r\n\t }\r\n\t });\r\n\r\n\t return this.getFixedTimeString(result);\r\n\t },\r\n\r\n\t getFixedTimeString: function (value) {\r\n\t var owner = this, timePattern = owner.timePattern, time = [],\r\n\t secondIndex = 0, minuteIndex = 0, hourIndex = 0,\r\n\t secondStartIndex = 0, minuteStartIndex = 0, hourStartIndex = 0,\r\n\t second, minute, hour;\r\n\r\n\t if (value.length === 6) {\r\n\t timePattern.forEach(function (type, index) {\r\n\t switch (type) {\r\n\t case 's':\r\n\t secondIndex = index * 2;\r\n\t break;\r\n\t case 'm':\r\n\t minuteIndex = index * 2;\r\n\t break;\r\n\t case 'h':\r\n\t hourIndex = index * 2;\r\n\t break;\r\n\t }\r\n\t });\r\n\r\n\t hourStartIndex = hourIndex;\r\n\t minuteStartIndex = minuteIndex;\r\n\t secondStartIndex = secondIndex;\r\n\r\n\t second = parseInt(value.slice(secondStartIndex, secondStartIndex + 2), 10);\r\n\t minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\r\n\t hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\r\n\r\n\t time = this.getFixedTime(hour, minute, second);\r\n\t }\r\n\r\n\t if (value.length === 4 && owner.timePattern.indexOf('s') < 0) {\r\n\t timePattern.forEach(function (type, index) {\r\n\t switch (type) {\r\n\t case 'm':\r\n\t minuteIndex = index * 2;\r\n\t break;\r\n\t case 'h':\r\n\t hourIndex = index * 2;\r\n\t break;\r\n\t }\r\n\t });\r\n\r\n\t hourStartIndex = hourIndex;\r\n\t minuteStartIndex = minuteIndex;\r\n\r\n\t second = 0;\r\n\t minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\r\n\t hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\r\n\r\n\t time = this.getFixedTime(hour, minute, second);\r\n\t }\r\n\r\n\t owner.time = time;\r\n\r\n\t return time.length === 0 ? value : timePattern.reduce(function (previous, current) {\r\n\t switch (current) {\r\n\t case 's':\r\n\t return previous + owner.addLeadingZero(time[2]);\r\n\t case 'm':\r\n\t return previous + owner.addLeadingZero(time[1]);\r\n\t case 'h':\r\n\t return previous + owner.addLeadingZero(time[0]);\r\n\t }\r\n\t }, '');\r\n\t },\r\n\r\n\t getFixedTime: function (hour, minute, second) {\r\n\t second = Math.min(parseInt(second || 0, 10), 60);\r\n\t minute = Math.min(minute, 60);\r\n\t hour = Math.min(hour, 60);\r\n\r\n\t return [hour, minute, second];\r\n\t },\r\n\r\n\t addLeadingZero: function (number) {\r\n\t return (number < 10 ? '0' : '') + number;\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = TimeFormatter;\r\n\r\n\r\n/***/ }),\r\n/* 4 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\tvar PhoneFormatter = function (formatter, delimiter) {\r\n\t var owner = this;\r\n\r\n\t owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' ';\r\n\t owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\r\n\r\n\t owner.formatter = formatter;\r\n\t};\r\n\r\n\tPhoneFormatter.prototype = {\r\n\t setFormatter: function (formatter) {\r\n\t this.formatter = formatter;\r\n\t },\r\n\r\n\t format: function (phoneNumber) {\r\n\t var owner = this;\r\n\r\n\t owner.formatter.clear();\r\n\r\n\t // only keep number and +\r\n\t phoneNumber = phoneNumber.replace(/[^\\d+]/g, '');\r\n\r\n\t // strip non-leading +\r\n\t phoneNumber = phoneNumber.replace(/^\\+/, 'B').replace(/\\+/g, '').replace('B', '+');\r\n\r\n\t // strip delimiter\r\n\t phoneNumber = phoneNumber.replace(owner.delimiterRE, '');\r\n\r\n\t var result = '', current, validated = false;\r\n\r\n\t for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) {\r\n\t current = owner.formatter.inputDigit(phoneNumber.charAt(i));\r\n\r\n\t // has ()- or space inside\r\n\t if (/[\\s()-]/g.test(current)) {\r\n\t result = current;\r\n\r\n\t validated = true;\r\n\t } else {\r\n\t if (!validated) {\r\n\t result = current;\r\n\t }\r\n\t // else: over length input\r\n\t // it turns to invalid number again\r\n\t }\r\n\t }\r\n\r\n\t // strip ()\r\n\t // e.g. US: 7161234567 returns (716) 123-4567\r\n\t result = result.replace(/[()]/g, '');\r\n\t // replace library delimiter with user customized delimiter\r\n\t result = result.replace(/[\\s-]/g, owner.delimiter);\r\n\r\n\t return result;\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = PhoneFormatter;\r\n\r\n\r\n/***/ }),\r\n/* 5 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\tvar CreditCardDetector = {\r\n\t blocks: {\r\n\t uatp: [4, 5, 6],\r\n\t amex: [4, 6, 5],\r\n\t diners: [4, 6, 4],\r\n\t discover: [4, 4, 4, 4],\r\n\t mastercard: [4, 4, 4, 4],\r\n\t dankort: [4, 4, 4, 4],\r\n\t instapayment: [4, 4, 4, 4],\r\n\t jcb15: [4, 6, 5],\r\n\t jcb: [4, 4, 4, 4],\r\n\t maestro: [4, 4, 4, 4],\r\n\t visa: [4, 4, 4, 4],\r\n\t mir: [4, 4, 4, 4],\r\n\t unionPay: [4, 4, 4, 4],\r\n\t general: [4, 4, 4, 4],\r\n\t generalStrict: [4, 4, 4, 7]\r\n\t },\r\n\r\n\t re: {\r\n\t // starts with 1; 15 digits, not starts with 1800 (jcb card)\r\n\t uatp: /^(?!1800)1\\d{0,14}/,\r\n\r\n\t // starts with 34/37; 15 digits\r\n\t amex: /^3[47]\\d{0,13}/,\r\n\r\n\t // starts with 6011/65/644-649; 16 digits\r\n\t discover: /^(?:6011|65\\d{0,2}|64[4-9]\\d?)\\d{0,12}/,\r\n\r\n\t // starts with 300-305/309 or 36/38/39; 14 digits\r\n\t diners: /^3(?:0([0-5]|9)|[689]\\d?)\\d{0,11}/,\r\n\r\n\t // starts with 51-55/2221–2720; 16 digits\r\n\t mastercard: /^(5[1-5]\\d{0,2}|22[2-9]\\d{0,1}|2[3-7]\\d{0,2})\\d{0,12}/,\r\n\r\n\t // starts with 5019/4175/4571; 16 digits\r\n\t dankort: /^(5019|4175|4571)\\d{0,12}/,\r\n\r\n\t // starts with 637-639; 16 digits\r\n\t instapayment: /^63[7-9]\\d{0,13}/,\r\n\r\n\t // starts with 2131/1800; 15 digits\r\n\t jcb15: /^(?:2131|1800)\\d{0,11}/,\r\n\r\n\t // starts with 2131/1800/35; 16 digits\r\n\t jcb: /^(?:35\\d{0,2})\\d{0,12}/,\r\n\r\n\t // starts with 50/56-58/6304/67; 16 digits\r\n\t maestro: /^(?:5[0678]\\d{0,2}|6304|67\\d{0,2})\\d{0,12}/,\r\n\r\n\t // starts with 22; 16 digits\r\n\t mir: /^220[0-4]\\d{0,12}/,\r\n\r\n\t // starts with 4; 16 digits\r\n\t visa: /^4\\d{0,15}/,\r\n\r\n\t // starts with 62; 16 digits\r\n\t unionPay: /^62\\d{0,14}/\r\n\t },\r\n\r\n\t getInfo: function (value, strictMode) {\r\n\t var blocks = CreditCardDetector.blocks,\r\n\t re = CreditCardDetector.re;\r\n\r\n\t // Some credit card can have up to 19 digits number.\r\n\t // Set strictMode to true will remove the 16 max-length restrain,\r\n\t // however, I never found any website validate card number like\r\n\t // this, hence probably you don't want to enable this option.\r\n\t strictMode = !!strictMode;\r\n\r\n\t for (var key in re) {\r\n\t if (re[key].test(value)) {\r\n\t var block;\r\n\r\n\t if (strictMode) {\r\n\t block = blocks.generalStrict;\r\n\t } else {\r\n\t block = blocks[key];\r\n\t }\r\n\r\n\t return {\r\n\t type: key,\r\n\t blocks: block\r\n\t };\r\n\t }\r\n\t }\r\n\r\n\t return {\r\n\t type: 'unknown',\r\n\t blocks: strictMode ? blocks.generalStrict : blocks.general\r\n\t };\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = CreditCardDetector;\r\n\r\n\r\n/***/ }),\r\n/* 6 */\r\n/***/ (function(module, exports) {\r\n\r\n\t'use strict';\r\n\r\n\tvar Util = {\r\n\t noop: function () {\r\n\t },\r\n\r\n\t strip: function (value, re) {\r\n\t return value.replace(re, '');\r\n\t },\r\n\r\n\t getPostDelimiter: function (value, delimiter, delimiters) {\r\n\t // single delimiter\r\n\t if (delimiters.length === 0) {\r\n\t return value.slice(-delimiter.length) === delimiter ? delimiter : '';\r\n\t }\r\n\r\n\t // multiple delimiters\r\n\t var matchedDelimiter = '';\r\n\t delimiters.forEach(function (current) {\r\n\t if (value.slice(-current.length) === current) {\r\n\t matchedDelimiter = current;\r\n\t }\r\n\t });\r\n\r\n\t return matchedDelimiter;\r\n\t },\r\n\r\n\t getDelimiterREByDelimiter: function (delimiter) {\r\n\t return new RegExp(delimiter.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'), 'g');\r\n\t },\r\n\r\n\t getNextCursorPosition: function (prevPos, oldValue, newValue, delimiter, delimiters) {\r\n\t // If cursor was at the end of value, just place it back.\r\n\t // Because new value could contain additional chars.\r\n\t if (oldValue.length === prevPos) {\r\n\t return newValue.length;\r\n\t }\r\n\r\n\t return prevPos + this.getPositionOffset(prevPos, oldValue, newValue, delimiter ,delimiters);\r\n\t },\r\n\r\n\t getPositionOffset: function (prevPos, oldValue, newValue, delimiter, delimiters) {\r\n\t var oldRawValue, newRawValue, lengthOffset;\r\n\r\n\t oldRawValue = this.stripDelimiters(oldValue.slice(0, prevPos), delimiter, delimiters);\r\n\t newRawValue = this.stripDelimiters(newValue.slice(0, prevPos), delimiter, delimiters);\r\n\t lengthOffset = oldRawValue.length - newRawValue.length;\r\n\r\n\t return (lengthOffset !== 0) ? (lengthOffset / Math.abs(lengthOffset)) : 0;\r\n\t },\r\n\r\n\t stripDelimiters: function (value, delimiter, delimiters) {\r\n\t var owner = this;\r\n\r\n\t // single delimiter\r\n\t if (delimiters.length === 0) {\r\n\t var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : '';\r\n\r\n\t return value.replace(delimiterRE, '');\r\n\t }\r\n\r\n\t // multiple delimiters\r\n\t delimiters.forEach(function (current) {\r\n\t current.split('').forEach(function (letter) {\r\n\t value = value.replace(owner.getDelimiterREByDelimiter(letter), '');\r\n\t });\r\n\t });\r\n\r\n\t return value;\r\n\t },\r\n\r\n\t headStr: function (str, length) {\r\n\t return str.slice(0, length);\r\n\t },\r\n\r\n\t getMaxLength: function (blocks) {\r\n\t return blocks.reduce(function (previous, current) {\r\n\t return previous + current;\r\n\t }, 0);\r\n\t },\r\n\r\n\t // strip prefix\r\n\t // Before type | After type | Return value\r\n\t // PEFIX-... | PEFIX-... | ''\r\n\t // PREFIX-123 | PEFIX-123 | 123\r\n\t // PREFIX-123 | PREFIX-23 | 23\r\n\t // PREFIX-123 | PREFIX-1234 | 1234\r\n\t getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters) {\r\n\t // No prefix\r\n\t if (prefixLength === 0) {\r\n\t return value;\r\n\t }\r\n\r\n\t // Pre result has issue\r\n\t // Revert to raw prefix\r\n\t if (prevResult.slice(0, prefixLength) !== prefix) {\r\n\t return '';\r\n\t }\r\n\r\n\t var prevValue = this.stripDelimiters(prevResult, delimiter, delimiters);\r\n\r\n\t // New value has issue, someone typed in between prefix letters\r\n\t // Revert to pre value\r\n\t if (value.slice(0, prefixLength) !== prefix) {\r\n\t return prevValue.slice(prefixLength);\r\n\t }\r\n\r\n\t // No issue, strip prefix for new value\r\n\t return value.slice(prefixLength);\r\n\t },\r\n\r\n\t getFirstDiffIndex: function (prev, current) {\r\n\t var index = 0;\r\n\r\n\t while (prev.charAt(index) === current.charAt(index)) {\r\n\t if (prev.charAt(index++) === '') {\r\n\t return -1;\r\n\t }\r\n\t }\r\n\r\n\t return index;\r\n\t },\r\n\r\n\t getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters, delimiterLazyShow) {\r\n\t var result = '',\r\n\t multipleDelimiters = delimiters.length > 0,\r\n\t currentDelimiter;\r\n\r\n\t // no options, normal input\r\n\t if (blocksLength === 0) {\r\n\t return value;\r\n\t }\r\n\r\n\t blocks.forEach(function (length, index) {\r\n\t if (value.length > 0) {\r\n\t var sub = value.slice(0, length),\r\n\t rest = value.slice(length);\r\n\r\n\t if (multipleDelimiters) {\r\n\t currentDelimiter = delimiters[delimiterLazyShow ? (index - 1) : index] || currentDelimiter;\r\n\t } else {\r\n\t currentDelimiter = delimiter;\r\n\t }\r\n\r\n\t if (delimiterLazyShow) {\r\n\t if (index > 0) {\r\n\t result += currentDelimiter;\r\n\t }\r\n\r\n\t result += sub;\r\n\t } else {\r\n\t result += sub;\r\n\r\n\t if (sub.length === length && index < blocksLength - 1) {\r\n\t result += currentDelimiter;\r\n\t }\r\n\t }\r\n\r\n\t // update remaining string\r\n\t value = rest;\r\n\t }\r\n\t });\r\n\r\n\t return result;\r\n\t },\r\n\r\n\t // move cursor to the end\r\n\t // the first time user focuses on an input with prefix\r\n\t fixPrefixCursor: function (el, prefix, delimiter, delimiters) {\r\n\t if (!el) {\r\n\t return;\r\n\t }\r\n\r\n\t var val = el.value,\r\n\t appendix = delimiter || (delimiters[0] || ' ');\r\n\r\n\t if (!el.setSelectionRange || !prefix || (prefix.length + appendix.length) < val.length) {\r\n\t return;\r\n\t }\r\n\r\n\t var len = val.length * 2;\r\n\r\n\t // set timeout to avoid blink\r\n\t setTimeout(function () {\r\n\t el.setSelectionRange(len, len);\r\n\t }, 1);\r\n\t },\r\n\r\n\t setSelection: function (element, position, doc) {\r\n\t if (element !== this.getActiveElement(doc)) {\r\n\t return;\r\n\t }\r\n\r\n\t // cursor is already in the end\r\n\t if (element && element.value.length <= position) {\r\n\t return;\r\n\t }\r\n\r\n\t if (element.createTextRange) {\r\n\t var range = element.createTextRange();\r\n\r\n\t range.move('character', position);\r\n\t range.select();\r\n\t } else {\r\n\t try {\r\n\t element.setSelectionRange(position, position);\r\n\t } catch (e) {\r\n\t // eslint-disable-next-line\r\n\t console.warn('The input element type does not support selection');\r\n\t }\r\n\t }\r\n\t },\r\n\r\n\t getActiveElement: function(parent) {\r\n\t var activeElement = parent.activeElement;\r\n\t if (activeElement && activeElement.shadowRoot) {\r\n\t return this.getActiveElement(activeElement.shadowRoot);\r\n\t }\r\n\t return activeElement;\r\n\t },\r\n\r\n\t isAndroid: function () {\r\n\t return navigator && /android/i.test(navigator.userAgent);\r\n\t },\r\n\r\n\t // On Android chrome, the keyup and keydown events\r\n\t // always return key code 229 as a composition that\r\n\t // buffers the user’s keystrokes\r\n\t // see https://github.com/nosir/cleave.js/issues/147\r\n\t isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) {\r\n\t if (!this.isAndroid() || !lastInputValue || !currentInputValue) {\r\n\t return false;\r\n\t }\r\n\r\n\t return currentInputValue === lastInputValue.slice(0, -1);\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = Util;\r\n\r\n\r\n/***/ }),\r\n/* 7 */\r\n/***/ (function(module, exports) {\r\n\r\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\r\n\r\n\t/**\r\n\t * Props Assignment\r\n\t *\r\n\t * Separate this, so react module can share the usage\r\n\t */\r\n\tvar DefaultProperties = {\r\n\t // Maybe change to object-assign\r\n\t // for now just keep it as simple\r\n\t assign: function (target, opts) {\r\n\t target = target || {};\r\n\t opts = opts || {};\r\n\r\n\t // credit card\r\n\t target.creditCard = !!opts.creditCard;\r\n\t target.creditCardStrictMode = !!opts.creditCardStrictMode;\r\n\t target.creditCardType = '';\r\n\t target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () {});\r\n\r\n\t // phone\r\n\t target.phone = !!opts.phone;\r\n\t target.phoneRegionCode = opts.phoneRegionCode || 'AU';\r\n\t target.phoneFormatter = {};\r\n\r\n\t // time\r\n\t target.time = !!opts.time;\r\n\t target.timePattern = opts.timePattern || ['h', 'm', 's'];\r\n\t target.timeFormat = opts.timeFormat || '24';\r\n\t target.timeFormatter = {};\r\n\r\n\t // date\r\n\t target.date = !!opts.date;\r\n\t target.datePattern = opts.datePattern || ['d', 'm', 'Y'];\r\n\t target.dateFormatter = {};\r\n\r\n\t // numeral\r\n\t target.numeral = !!opts.numeral;\r\n\t target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0;\r\n\t target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;\r\n\t target.numeralDecimalMark = opts.numeralDecimalMark || '.';\r\n\t target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';\r\n\t target.numeralPositiveOnly = !!opts.numeralPositiveOnly;\r\n\t target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;\r\n\r\n\t // others\r\n\t target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;\r\n\r\n\t target.uppercase = !!opts.uppercase;\r\n\t target.lowercase = !!opts.lowercase;\r\n\r\n\t target.prefix = (target.creditCard || target.date) ? '' : (opts.prefix || '');\r\n\t target.noImmediatePrefix = !!opts.noImmediatePrefix;\r\n\t target.prefixLength = target.prefix.length;\r\n\t target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix;\r\n\t target.copyDelimiter = !!opts.copyDelimiter;\r\n\r\n\t target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : '';\r\n\r\n\t target.delimiter =\r\n\t (opts.delimiter || opts.delimiter === '') ? opts.delimiter :\r\n\t (opts.date ? '/' :\r\n\t (opts.time ? ':' :\r\n\t (opts.numeral ? ',' :\r\n\t (opts.phone ? ' ' :\r\n\t ' '))));\r\n\t target.delimiterLength = target.delimiter.length;\r\n\t target.delimiterLazyShow = !!opts.delimiterLazyShow;\r\n\t target.delimiters = opts.delimiters || [];\r\n\r\n\t target.blocks = opts.blocks || [];\r\n\t target.blocksLength = target.blocks.length;\r\n\r\n\t target.root = (typeof global === 'object' && global) ? global : window;\r\n\t target.document = opts.document || target.root.document;\r\n\r\n\t target.maxLength = 0;\r\n\r\n\t target.backspace = false;\r\n\t target.result = '';\r\n\r\n\t target.onValueChanged = opts.onValueChanged || (function () {});\r\n\r\n\t return target;\r\n\t }\r\n\t};\r\n\r\n\tmodule.exports = DefaultProperties;\r\n\r\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\r\n\r\n/***/ })\r\n/******/ ])\r\n});\r\n;\n/* flatpickr v4.4.6,, @license MIT */\r\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.flatpickr=t()}(this,function(){\"use strict\";var Z=function(e){return(\"0\"+e).slice(-2)},Q=function(e){return!0===e?1:0};function X(n,a,i){var o;return void 0===i&&(i=!1),function(){var e=this,t=arguments;null!==o&&clearTimeout(o),o=window.setTimeout(function(){o=null,i||n.apply(e,t)},a),i&&!o&&n.apply(e,t)}}var ee=function(e){return e instanceof Array?e:[e]},e=function(){},te=function(e,t,n){return n.months[t?\"shorthand\":\"longhand\"][e]},D={D:e,F:function(e,t,n){e.setMonth(n.months.longhand.indexOf(t))},G:function(e,t){e.setHours(parseFloat(t))},H:function(e,t){e.setHours(parseFloat(t))},J:function(e,t){e.setDate(parseFloat(t))},K:function(e,t,n){e.setHours(e.getHours()%12+12*Q(new RegExp(n.amPM[1],\"i\").test(t)))},M:function(e,t,n){e.setMonth(n.months.shorthand.indexOf(t))},S:function(e,t){e.setSeconds(parseFloat(t))},U:function(e,t){return new Date(1e3*parseFloat(t))},W:function(e,t){var n=parseInt(t);return new Date(e.getFullYear(),0,2+7*(n-1),0,0,0,0)},Y:function(e,t){e.setFullYear(parseFloat(t))},Z:function(e,t){return new Date(t)},d:function(e,t){e.setDate(parseFloat(t))},h:function(e,t){e.setHours(parseFloat(t))},i:function(e,t){e.setMinutes(parseFloat(t))},j:function(e,t){e.setDate(parseFloat(t))},l:e,m:function(e,t){e.setMonth(parseFloat(t)-1)},n:function(e,t){e.setMonth(parseFloat(t)-1)},s:function(e,t){e.setSeconds(parseFloat(t))},w:e,y:function(e,t){e.setFullYear(2e3+parseFloat(t))}},ne={D:\"(\\\\w+)\",F:\"(\\\\w+)\",G:\"(\\\\d\\\\d|\\\\d)\",H:\"(\\\\d\\\\d|\\\\d)\",J:\"(\\\\d\\\\d|\\\\d)\\\\w+\",K:\"\",M:\"(\\\\w+)\",S:\"(\\\\d\\\\d|\\\\d)\",U:\"(.+)\",W:\"(\\\\d\\\\d|\\\\d)\",Y:\"(\\\\d{4})\",Z:\"(.+)\",d:\"(\\\\d\\\\d|\\\\d)\",h:\"(\\\\d\\\\d|\\\\d)\",i:\"(\\\\d\\\\d|\\\\d)\",j:\"(\\\\d\\\\d|\\\\d)\",l:\"(\\\\w+)\",m:\"(\\\\d\\\\d|\\\\d)\",n:\"(\\\\d\\\\d|\\\\d)\",s:\"(\\\\d\\\\d|\\\\d)\",w:\"(\\\\d\\\\d|\\\\d)\",y:\"(\\\\d{2})\"},c={Z:function(e){return e.toISOString()},D:function(e,t,n){return t.weekdays.shorthand[c.w(e,t,n)]},F:function(e,t,n){return te(c.n(e,t,n)-1,!1,t)},G:function(e,t,n){return Z(c.h(e,t,n))},H:function(e){return Z(e.getHours())},J:function(e,t){return void 0!==t.ordinal?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:function(e,t){return t.amPM[Q(11Math.min(t,n)&&e\",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:\"auto\",positionElement:void 0,prevArrow:\"\",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1};function de(e,t,n){if(!0===n)return e.classList.add(t);e.classList.remove(t)}function se(e,t,n){var a=window.document.createElement(e);return t=t||\"\",n=n||\"\",a.className=t,void 0!==n&&(a.textContent=n),a}function ue(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function fe(e,t){var n=se(\"div\",\"numInputWrapper\"),a=se(\"input\",\"numInput \"+e),i=se(\"span\",\"arrowUp\"),o=se(\"span\",\"arrowDown\");if(a.type=\"text\",a.pattern=\"\\\\d*\",void 0!==t)for(var r in t)a.setAttribute(r,t[r]);return n.appendChild(a),n.appendChild(i),n.appendChild(o),n}if(\"function\"!=typeof Object.assign&&(Object.assign=function(n){if(!n)throw TypeError(\"Cannot convert undefined or null to object\");for(var e=arguments.length,a=new Array(1o)&&(p.amPM.textContent=p.l10n.amPM[Q(p.amPM.textContent===p.l10n.amPM[0])]),n.value=Z(l)}}(e),\"input\"!==e.type?(s(),G()):setTimeout(function(){s(),G()},me))}function s(){if(void 0!==p.hourElement&&void 0!==p.minuteElement){var e,t,n=(parseInt(p.hourElement.value.slice(-2),10)||0)%24,a=(parseInt(p.minuteElement.value,10)||0)%60,i=void 0!==p.secondElement?(parseInt(p.secondElement.value,10)||0)%60:0;void 0!==p.amPM&&(e=n,t=p.amPM.textContent,n=e%12+12*Q(t===p.l10n.amPM[1]));var o=void 0!==p.config.minTime||p.config.minDate&&p.minDateHasTime&&p.latestSelectedDateObj&&0===re(p.latestSelectedDateObj,p.config.minDate,!0);if(void 0!==p.config.maxTime||p.config.maxDate&&p.maxDateHasTime&&p.latestSelectedDateObj&&0===re(p.latestSelectedDateObj,p.config.maxDate,!0)){var r=void 0!==p.config.maxTime?p.config.maxTime:p.config.maxDate;(n=Math.min(n,r.getHours()))===r.getHours()&&(a=Math.min(a,r.getMinutes())),a===r.getMinutes()&&(i=Math.min(i,r.getSeconds()))}if(o){var c=void 0!==p.config.minTime?p.config.minTime:p.config.minDate;(n=Math.max(n,c.getHours()))===c.getHours()&&(a=Math.max(a,c.getMinutes())),a===c.getMinutes()&&(i=Math.max(i,c.getSeconds()))}l(n,a,i)}}function g(e){var t=e||p.latestSelectedDateObj;t&&l(t.getHours(),t.getMinutes(),t.getSeconds())}function l(e,t,n){void 0!==p.latestSelectedDateObj&&p.latestSelectedDateObj.setHours(e%24,t,n||0,0),p.hourElement&&p.minuteElement&&!p.isMobile&&(p.hourElement.value=Z(p.config.time_24hr?e:(12+e)%12+12*Q(e%12==0)),p.minuteElement.value=Z(t),void 0!==p.amPM&&(p.amPM.textContent=p.l10n.amPM[Q(12<=e)]),void 0!==p.secondElement&&(p.secondElement.value=Z(n)))}function n(e){var t=parseInt(e.target.value)+(e.delta||0);(1p.now?p.config.minDate:p.config.maxDate&&p.config.maxDate\"+p.config.getWeek(t)+\"\"),B(\"onDayCreate\",r),r}function w(e){e.focus(),\"range\"===p.config.mode&&P(e)}function b(e){for(var t=0=Math.abs(t))return w(s)}p.changeMonth(i),M(b(i),0)}(a,t):w(a)}function c(e,t){for(var n=(new Date(e,t,1).getDay()-p.l10n.firstDayOfWeek+7)%7,a=p.utils.getDaysInMonth((t-1+12)%12),i=p.utils.getDaysInMonth(t),o=window.document.createDocumentFragment(),r=1\\n \"+t.join(\"\")+\"\\n \\n \"}function k(e,t){void 0===t&&(t=!0);var n=t?e:e-p.currentMonth;n<0&&!0===p._hidePrevMonthArrow||0p.config.maxDate.getFullYear())){var t=e,n=p.currentYear!==t;p.currentYear=t||p.currentYear,p.config.maxDate&&p.currentYear===p.config.maxDate.getFullYear()?p.currentMonth=Math.min(p.config.maxDate.getMonth(),p.currentMonth):p.config.minDate&&p.currentYear===p.config.minDate.getFullYear()&&(p.currentMonth=Math.max(p.config.minDate.getMonth(),p.currentMonth)),n&&(p.redraw(),B(\"onYearChange\"))}}function F(e,t){void 0===t&&(t=!0);var n=p.parseDate(e,void 0,t);if(p.config.minDate&&n&&re(n,p.config.minDate,void 0!==t?t:!p.minDateHasTime)<0||p.config.maxDate&&n&&0=a.from.getTime()&&n.getTime()<=a.to.getTime())return i}return!i}function A(e){return void 0!==p.daysContainer&&(-1===e.className.indexOf(\"hidden\")&&p.daysContainer.contains(e))}function _(e){var t=e.target===p._input,n=I(e.target),a=p.config.allowInput,i=p.isOpen&&(!a||!t),o=p.config.inline&&t&&!a;if(13===e.keyCode&&t){if(a)return p.setDate(p._input.value,!0,e.target===p.altInput?p.config.altFormat:p.config.dateFormat),e.target.blur();p.open()}else if(n||i||o){var r=!!p.timeContainer&&p.timeContainer.contains(e.target);switch(e.keyCode){case 13:r?G():R(e);break;case 27:e.preventDefault(),W();break;case 8:case 46:t&&!p.config.allowInput&&(e.preventDefault(),p.clear());break;case 37:case 39:if(r)p.hourElement&&p.hourElement.focus();else if(e.preventDefault(),void 0!==p.daysContainer&&(!1===a||A(document.activeElement))){var c=39===e.keyCode?1:-1;e.ctrlKey?(k(c),M(b(1),0)):M(void 0,c)}break;case 38:case 40:e.preventDefault();var l=40===e.keyCode?1:-1;p.daysContainer?e.ctrlKey?(S(p.currentYear-l),M(b(1),0)):r||M(void 0,7*l):p.config.enableTime&&(!r&&p.hourElement&&p.hourElement.focus(),d(e),p._debouncedChange());break;case 9:if(!r)break;e.target===p.hourElement?(e.preventDefault(),p.minuteElement.select()):e.target===p.minuteElement&&(p.secondElement||p.amPM)?(e.preventDefault(),void 0!==p.secondElement?p.secondElement.focus():void 0!==p.amPM&&(e.preventDefault(),p.amPM.focus())):e.target===p.secondElement&&p.amPM&&(e.preventDefault(),p.amPM.focus())}}if(void 0!==p.amPM&&e.target===p.amPM)switch(e.key){case p.l10n.amPM[0].charAt(0):case p.l10n.amPM[0].charAt(0).toLowerCase():p.amPM.textContent=p.l10n.amPM[0],s(),G();break;case p.l10n.amPM[1].charAt(0):case p.l10n.amPM[1].charAt(0).toLowerCase():p.amPM.textContent=p.l10n.amPM[1],s(),G()}B(\"onKeyDown\",e)}function P(o){if(1===p.selectedDates.length&&o.classList.contains(\"flatpickr-day\")&&!o.classList.contains(\"disabled\")){for(var r=o.dateObj.getTime(),c=p.parseDate(p.selectedDates[0],void 0,!0).getTime(),e=Math.min(r,p.selectedDates[0].getTime()),t=Math.max(r,p.selectedDates[0].getTime()),l=!1,d=0,s=0,n=e;n=a||(cn,s=window.pageYOffset+c.top+(d?-n-2:t.offsetHeight+2);if(de(p.calendarContainer,\"arrowTop\",!d),de(p.calendarContainer,\"arrowBottom\",d),!p.config.inline){var u=window.pageXOffset+c.left-(null!=r&&\"center\"===r?(a-c.width)/2:0),f=window.document.body.offsetWidth-c.right,m=u+a>window.document.body.offsetWidth;de(p.calendarContainer,\"rightMost\",m),p.config.static||(p.calendarContainer.style.top=s+\"px\",m?(p.calendarContainer.style.left=\"auto\",p.calendarContainer.style.right=f+\"px\"):(p.calendarContainer.style.left=u+\"px\",p.calendarContainer.style.right=\"auto\"))}}}function L(){p.config.noCalendar||p.isMobile||($(),y())}function W(){p._input.focus(),-1!==window.navigator.userAgent.indexOf(\"MSIE\")||void 0!==navigator.msMaxTouchPoints?setTimeout(p.close,0):p.close()}function R(e){e.preventDefault(),e.stopPropagation();var t=function e(t,n){return n(t)?t:t.parentNode?e(t.parentNode,n):void 0}(e.target,function(e){return e.classList&&e.classList.contains(\"flatpickr-day\")&&!e.classList.contains(\"disabled\")&&!e.classList.contains(\"notAllowed\")});if(void 0!==t){var n=t,a=p.latestSelectedDateObj=new Date(n.dateObj.getTime()),i=(a.getMonth()p.currentMonth+p.config.showMonths-1)&&\"range\"!==p.config.mode;if(p.selectedDateElem=n,\"single\"===p.config.mode)p.selectedDates=[a];else if(\"multiple\"===p.config.mode){var o=z(a);o?p.selectedDates.splice(parseInt(o),1):p.selectedDates.push(a)}else\"range\"===p.config.mode&&(2===p.selectedDates.length&&p.clear(!1),p.selectedDates.push(a),0!==re(a,p.selectedDates[0],!0)&&p.selectedDates.sort(function(e,t){return e.getTime()-t.getTime()}));if(s(),i){var r=p.currentYear!==a.getFullYear();p.currentYear=a.getFullYear(),p.currentMonth=a.getMonth(),r&&B(\"onYearChange\"),B(\"onMonthChange\")}if($(),y(),p.config.minDate&&p.minDateHasTime&&p.config.enableTime&&0===re(a,p.config.minDate)&&g(p.config.minDate),G(),p.config.enableTime&&setTimeout(function(){return p.showTimeInput=!0},50),\"range\"===p.config.mode&&(1===p.selectedDates.length?P(n):$()),i||\"range\"===p.config.mode||1!==p.config.showMonths?p.selectedDateElem&&p.selectedDateElem.focus():w(n),void 0!==p.hourElement&&setTimeout(function(){return void 0!==p.hourElement&&p.hourElement.select()},451),p.config.closeOnSelect){var c=\"single\"===p.config.mode&&!p.config.enableTime,l=\"range\"===p.config.mode&&2===p.selectedDates.length&&!p.config.enableTime;(c||l)&&W()}h()}}p.parseDate=oe({config:p.config,l10n:p.l10n}),p._handlers=[],p._bind=o,p._setHoursFromDate=g,p.changeMonth=k,p.changeYear=S,p.clear=function(e){void 0===e&&(e=!0);p.input.value=\"\",void 0!==p.altInput&&(p.altInput.value=\"\");void 0!==p.mobileInput&&(p.mobileInput.value=\"\");p.selectedDates=[],p.latestSelectedDateObj=void 0,!(p.showTimeInput=!1)===p.config.enableTime&&(void 0!==p.config.minDate?g(p.config.minDate):l(p.config.defaultHour,p.config.defaultMinute,p.config.defaultSeconds));p.redraw(),e&&B(\"onChange\")},p.close=function(){p.isOpen=!1,p.isMobile||(p.calendarContainer.classList.remove(\"open\"),p._input.classList.remove(\"active\"));B(\"onClose\")},p._createElement=se,p.destroy=function(){void 0!==p.config&&B(\"onDestroy\");for(var e=p._handlers.length;e--;){var t=p._handlers[e];t.element.removeEventListener(t.event,t.handler,t.options)}p._handlers=[],p.mobileInput?(p.mobileInput.parentNode&&p.mobileInput.parentNode.removeChild(p.mobileInput),p.mobileInput=void 0):p.calendarContainer&&p.calendarContainer.parentNode&&p.calendarContainer.parentNode.removeChild(p.calendarContainer);p.altInput&&(p.input.type=\"text\",p.altInput.parentNode&&p.altInput.parentNode.removeChild(p.altInput),delete p.altInput);p.input&&(p.input.type=p.input._type,p.input.classList.remove(\"flatpickr-input\"),p.input.removeAttribute(\"readonly\"),p.input.value=\"\");[\"_showTimeInput\",\"latestSelectedDateObj\",\"_hideNextMonthArrow\",\"_hidePrevMonthArrow\",\"__hideNextMonthArrow\",\"__hidePrevMonthArrow\",\"isMobile\",\"isOpen\",\"selectedDateElem\",\"minDateHasTime\",\"maxDateHasTime\",\"days\",\"daysContainer\",\"_input\",\"_positionElement\",\"innerContainer\",\"rContainer\",\"monthNav\",\"todayDateElem\",\"calendarContainer\",\"weekdayContainer\",\"prevMonthNav\",\"nextMonthNav\",\"currentMonthElement\",\"currentYearElement\",\"navigationCurrentMonth\",\"selectedDateElem\",\"config\"].forEach(function(e){try{delete p[e]}catch(e){}})},p.isEnabled=F,p.jumpToDate=i,p.open=function(e,t){void 0===t&&(t=p._input);if(!0===p.isMobile)return e&&(e.preventDefault(),e.target&&e.target.blur()),setTimeout(function(){void 0!==p.mobileInput&&p.mobileInput.focus()},0),void B(\"onOpen\");if(p._input.disabled||p.config.inline)return;var n=p.isOpen;p.isOpen=!0,n||(p.calendarContainer.classList.add(\"open\"),p._input.classList.add(\"active\"),B(\"onOpen\"),H(t));!0===p.config.enableTime&&!0===p.config.noCalendar&&(0===p.selectedDates.length&&(p.setDate(void 0!==p.config.minDate?new Date(p.config.minDate.getTime()):(new Date).setHours(p.config.defaultHour,p.config.defaultMinute,p.config.defaultSeconds,0),!1),s(),G()),!1!==p.config.allowInput||void 0!==e&&p.timeContainer.contains(e.relatedTarget)||setTimeout(function(){return p.hourElement.select()},50))},p.redraw=L,p.set=function(e,t){null!==e&&\"object\"==typeof e?Object.assign(p.config,e):(p.config[e]=t,void 0!==q[e]&&q[e].forEach(function(e){return e()}));p.redraw(),i()},p.setDate=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=p.config.dateFormat);if(0!==e&&!e)return p.clear(t);J(e,n),p.showTimeInput=0p.config.maxDate.getMonth():p.currentYear>p.config.maxDate.getFullYear()))}function G(e){if(void 0===e&&(e=!0),0===p.selectedDates.length)return p.clear(e);void 0!==p.mobileInput&&p.mobileFormatStr&&(p.mobileInput.value=void 0!==p.latestSelectedDateObj?p.formatDate(p.latestSelectedDateObj,p.mobileFormatStr):\"\");var t=\"range\"!==p.config.mode?p.config.conjunction:p.l10n.rangeSeparator;p.input.value=p.selectedDates.map(function(e){return p.formatDate(e,p.config.dateFormat)}).join(t),void 0!==p.altInput&&(p.altInput.value=p.selectedDates.map(function(e){return p.formatDate(e,p.config.altFormat)}).join(t)),!1!==e&&B(\"onValueUpdate\")}function V(e){e.preventDefault();var t=p.prevMonthNav.contains(e.target),n=p.nextMonthNav.contains(e.target);t||n?k(t?-1:1):0<=p.yearElements.indexOf(e.target)?e.target.select():e.target.classList.contains(\"arrowUp\")?p.changeYear(p.currentYear+1):e.target.classList.contains(\"arrowDown\")&&p.changeYear(p.currentYear-1)}return function(){p.element=p.input=u,p.isOpen=!1,function(){var e=[\"wrap\",\"weekNumbers\",\"allowInput\",\"clickOpens\",\"time_24hr\",\"enableTime\",\"noCalendar\",\"altInput\",\"shorthandCurrentMonth\",\"inline\",\"static\",\"enableSeconds\",\"disableMobile\"],t=[\"onChange\",\"onClose\",\"onDayCreate\",\"onDestroy\",\"onKeyDown\",\"onMonthChange\",\"onOpen\",\"onParseConfig\",\"onReady\",\"onValueUpdate\",\"onYearChange\",\"onPreCalendarPosition\"],n=Object.assign({},f,JSON.parse(JSON.stringify(u.dataset||{}))),a={};p.config.parseDate=n.parseDate,p.config.formatDate=n.formatDate,Object.defineProperty(p.config,\"enable\",{get:function(){return p.config._enable},set:function(e){p.config._enable=K(e)}}),Object.defineProperty(p.config,\"disable\",{get:function(){return p.config._disable},set:function(e){p.config._disable=K(e)}});var i=\"time\"===n.mode;n.dateFormat||!n.enableTime&&!i||(a.dateFormat=n.noCalendar||i?\"H:i\"+(n.enableSeconds?\":S\":\"\"):ge.defaultConfig.dateFormat+\" H:i\"+(n.enableSeconds?\":S\":\"\")),n.altInput&&(n.enableTime||i)&&!n.altFormat&&(a.altFormat=n.noCalendar||i?\"h:i\"+(n.enableSeconds?\":S K\":\" K\"):ge.defaultConfig.altFormat+\" h:i\"+(n.enableSeconds?\":S\":\"\")+\" K\"),Object.defineProperty(p.config,\"minDate\",{get:function(){return p.config._minDate},set:Y(\"min\")}),Object.defineProperty(p.config,\"maxDate\",{get:function(){return p.config._maxDate},set:Y(\"max\")});var o=function(t){return function(e){p.config[\"min\"===t?\"_minTime\":\"_maxTime\"]=p.parseDate(e,\"H:i\")}};Object.defineProperty(p.config,\"minTime\",{get:function(){return p.config._minTime},set:o(\"min\")}),Object.defineProperty(p.config,\"maxTime\",{get:function(){return p.config._maxTime},set:o(\"max\")}),\"time\"===n.mode&&(p.config.noCalendar=!0,p.config.enableTime=!0),Object.assign(p.config,a,n);for(var r=0;rp.now.getTime()?p.config.minDate:p.config.maxDate&&p.config.maxDate.getTime()>> 0; // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n\r\n if (typeof predicate !== 'function') {\r\n throw new TypeError('predicate must be a function');\r\n } // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n\r\n var thisArg = arguments[1]; // 5. Let k be 0.\r\n\r\n var k = 0; // 6. Repeat, while k < len\r\n\r\n while (k < len) {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return kValue.\r\n var kValue = o[k];\r\n\r\n if (predicate.call(thisArg, kValue, k, o)) {\r\n return kValue;\r\n } // e. Increase k by 1.\r\n\r\n k++;\r\n } // 7. Return undefined.\r\n\r\n return undefined;\r\n }\r\n });\r\n }\r\n\r\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\r\n if (!Array.prototype.findIndex) {\r\n Object.defineProperty(Array.prototype, 'findIndex', {\r\n value: function value(predicate) {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n var o = Object(this); // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n\r\n var len = o.length >>> 0; // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n\r\n if (typeof predicate !== 'function') {\r\n throw new TypeError('predicate must be a function');\r\n } // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n\r\n var thisArg = arguments[1]; // 5. Let k be 0.\r\n\r\n var k = 0; // 6. Repeat, while k < len\r\n\r\n while (k < len) {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return k.\r\n var kValue = o[k];\r\n\r\n if (predicate.call(thisArg, kValue, k, o)) {\r\n return k;\r\n } // e. Increase k by 1.\r\n\r\n k++;\r\n } // 7. Return -1.\r\n\r\n return -1;\r\n }\r\n });\r\n }\r\n\r\n // Production steps of ECMA-262, Edition 6, 22.1.2.1\r\n if (!Array.from) {\r\n Array.from = (function() {\r\n var toStr = Object.prototype.toString;\r\n\r\n var isCallable = function isCallable(fn) {\r\n return (\r\n typeof fn === 'function' || toStr.call(fn) === '[object Function]'\r\n );\r\n };\r\n\r\n var toInteger = function toInteger(value) {\r\n var number = Number(value);\r\n\r\n if (isNaN(number)) {\r\n return 0;\r\n }\r\n\r\n if (number === 0 || !isFinite(number)) {\r\n return number;\r\n }\r\n\r\n return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\r\n };\r\n\r\n var maxSafeInteger = Math.pow(2, 53) - 1;\r\n\r\n var toLength = function toLength(value) {\r\n var len = toInteger(value);\r\n return Math.min(Math.max(len, 0), maxSafeInteger);\r\n }; // The length property of the from method is 1.\r\n\r\n return function from(\r\n arrayLike\r\n /*, mapFn, thisArg */\r\n ) {\r\n // 1. Let C be the this value.\r\n var C = this; // 2. Let items be ToObject(arrayLike).\r\n\r\n var items = Object(arrayLike); // 3. ReturnIfAbrupt(items).\r\n\r\n if (arrayLike == null) {\r\n throw new TypeError(\r\n 'Array.from requires an array-like object - not null or undefined'\r\n );\r\n } // 4. If mapfn is undefined, then let mapping be false.\r\n\r\n var mapFn = arguments.length > 1 ? arguments[1] : void undefined;\r\n var T;\r\n\r\n if (typeof mapFn !== 'undefined') {\r\n // 5. else\r\n // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\r\n if (!isCallable(mapFn)) {\r\n throw new TypeError(\r\n 'Array.from: when provided, the second argument must be a function'\r\n );\r\n } // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n\r\n if (arguments.length > 2) {\r\n T = arguments[2];\r\n }\r\n } // 10. Let lenValue be Get(items, \"length\").\r\n // 11. Let len be ToLength(lenValue).\r\n\r\n var len = toLength(items.length); // 13. If IsConstructor(C) is true, then\r\n // 13. a. Let A be the result of calling the [[Construct]] internal method\r\n // of C with an argument list containing the single item len.\r\n // 14. a. Else, Let A be ArrayCreate(len).\r\n\r\n var A = isCallable(C) ? Object(new C(len)) : new Array(len); // 16. Let k be 0.\r\n\r\n var k = 0; // 17. Repeat, while k < len… (also steps a - h)\r\n\r\n var kValue;\r\n\r\n while (k < len) {\r\n kValue = items[k];\r\n\r\n if (mapFn) {\r\n A[k] =\r\n typeof T === 'undefined'\r\n ? mapFn(kValue, k)\r\n : mapFn.call(T, kValue, k);\r\n } else {\r\n A[k] = kValue;\r\n }\r\n\r\n k += 1;\r\n } // 18. Let putStatus be Put(A, \"length\", len, true).\r\n\r\n A.length = len; // 20. Return A.\r\n\r\n return A;\r\n };\r\n })();\r\n }\r\n\r\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\r\n if (!Array.prototype.includes) {\r\n Object.defineProperty(Array.prototype, 'includes', {\r\n value: function value(searchElement, fromIndex) {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n var o = Object(this); // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n\r\n var len = o.length >>> 0; // 3. If len is 0, return false.\r\n\r\n if (len === 0) {\r\n return false;\r\n } // 4. Let n be ? ToInteger(fromIndex).\r\n // (If fromIndex is undefined, this step produces the value 0.)\r\n\r\n var n = fromIndex | 0; // 5. If n ≥ 0, then\r\n // a. Let k be n.\r\n // 6. Else n < 0,\r\n // a. Let k be len + n.\r\n // b. If k < 0, let k be 0.\r\n\r\n var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\r\n\r\n function sameValueZero(x, y) {\r\n return (\r\n x === y ||\r\n (typeof x === 'number' &&\r\n typeof y === 'number' &&\r\n isNaN(x) &&\r\n isNaN(y))\r\n );\r\n } // 7. Repeat, while k < len\r\n\r\n while (k < len) {\r\n // a. Let elementK be the result of ? Get(O, ! ToString(k)).\r\n // b. If SameValueZero(searchElement, elementK) is true, return true.\r\n // c. Increase k by 1.\r\n if (sameValueZero(o[k], searchElement)) {\r\n return true;\r\n }\r\n\r\n k++;\r\n } // 8. Return false\r\n\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n // Production steps of ECMA-262, Edition 5, 15.4.4.17\r\n // Reference: http://es5.github.io/#x15.4.4.17\r\n if (!Array.prototype.some) {\r\n Array.prototype.some = function(\r\n fun\r\n /*, thisArg*/\r\n ) {\r\n if (this == null) {\r\n throw new TypeError('Array.prototype.some called on null or undefined');\r\n }\r\n\r\n if (typeof fun !== 'function') {\r\n throw new TypeError();\r\n }\r\n\r\n var t = Object(this);\r\n var len = t.length >>> 0;\r\n var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\r\n\r\n for (var i = 0; i < len; i++) {\r\n if (i in t && fun.call(thisArg, t[i], i, t)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n\r\n if (!Array.prototype.every) {\r\n Array.prototype.every = function(callbackfn, thisArg) {\r\n var T, k;\r\n\r\n if (this == null) {\r\n throw new TypeError('this is null or not defined');\r\n } // 1. Let O be the result of calling ToObject passing the this\r\n // value as the argument.\r\n\r\n var O = Object(this); // 2. Let lenValue be the result of calling the Get internal method\r\n // of O with the argument \"length\".\r\n // 3. Let len be ToUint32(lenValue).\r\n\r\n var len = O.length >>> 0; // 4. If IsCallable(callbackfn) is false, throw a TypeError exception.\r\n\r\n if (typeof callbackfn !== 'function') {\r\n throw new TypeError();\r\n } // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n\r\n if (arguments.length > 1) {\r\n T = thisArg;\r\n } // 6. Let k be 0.\r\n\r\n k = 0; // 7. Repeat, while k < len\r\n\r\n while (k < len) {\r\n var kValue; // a. Let Pk be ToString(k).\r\n // This is implicit for LHS operands of the in operator\r\n // b. Let kPresent be the result of calling the HasProperty internal\r\n // method of O with argument Pk.\r\n // This step can be combined with c\r\n // c. If kPresent is true, then\r\n\r\n if (k in O) {\r\n // i. Let kValue be the result of calling the Get internal method\r\n // of O with argument Pk.\r\n kValue = O[k]; // ii. Let testResult be the result of calling the Call internal method\r\n // of callbackfn with T as the this value and argument list\r\n // containing kValue, k, and O.\r\n\r\n var testResult = callbackfn.call(T, kValue, k, O); // iii. If ToBoolean(testResult) is false, return false.\r\n\r\n if (!testResult) {\r\n return false;\r\n }\r\n }\r\n\r\n k++;\r\n }\r\n\r\n return true;\r\n };\r\n }\r\n\r\n if (typeof Object.assign != 'function') {\r\n // Must be writable: true, enumerable: false, configurable: true\r\n Object.defineProperty(Object, 'assign', {\r\n value: function assign(target, varArgs) {\r\n if (target == null) {\r\n // TypeError if undefined or null\r\n throw new TypeError('Cannot convert undefined or null to object');\r\n }\r\n\r\n var to = Object(target);\r\n\r\n for (var index = 1; index < arguments.length; index++) {\r\n var nextSource = arguments[index];\r\n\r\n if (nextSource != null) {\r\n // Skip over if undefined or null\r\n for (var nextKey in nextSource) {\r\n // Avoid bugs when hasOwnProperty is shadowed\r\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n\r\n return to;\r\n },\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\r\n (function() {\r\n if (\r\n typeof window === 'undefined' ||\r\n typeof window.CustomEvent === 'function'\r\n )\r\n return false;\r\n\r\n function CustomEvent(event, params) {\r\n params = params || {\r\n bubbles: false,\r\n cancelable: false,\r\n detail: undefined\r\n };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(\r\n event,\r\n params.bubbles,\r\n params.cancelable,\r\n params.detail\r\n );\r\n return evt;\r\n }\r\n\r\n CustomEvent.prototype = window.Event.prototype;\r\n window.CustomEvent = CustomEvent;\r\n })();\r\n});\n/*!\r\n * FilePondPluginImageExifOrientation 1.0.9\r\n * Licensed under MIT, https://opensource.org/licenses/MIT/\r\n * Please visit https://pqina.nl/filepond/ for details.\r\n */\r\n\r\n/* eslint-disable */\r\n\r\n(function(global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n ? (module.exports = factory())\r\n : typeof define === 'function' && define.amd\r\n ? define(factory)\r\n : ((global = global || self),\r\n (global.FilePondPluginImageExifOrientation = factory()));\r\n})(this, function() {\r\n 'use strict';\r\n\r\n // test if file is of type image\r\n var isJPEG = function isJPEG(file) {\r\n return /^image\\/jpeg/.test(file.type);\r\n };\r\n\r\n var Marker = {\r\n JPEG: 0xffd8,\r\n APP1: 0xffe1,\r\n EXIF: 0x45786966,\r\n TIFF: 0x4949,\r\n Orientation: 0x0112,\r\n Unknown: 0xff00\r\n };\r\n\r\n var getUint16 = function getUint16(view, offset) {\r\n var little =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n return view.getUint16(offset, little);\r\n };\r\n var getUint32 = function getUint32(view, offset) {\r\n var little =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n return view.getUint32(offset, little);\r\n };\r\n\r\n var getImageOrientation = function getImageOrientation(file) {\r\n return new Promise(function(resolve, reject) {\r\n var reader = new FileReader();\r\n reader.onload = function(e) {\r\n var view = new DataView(e.target.result);\r\n\r\n // Every JPEG file starts from binary value '0xFFD8'\r\n if (getUint16(view, 0) !== Marker.JPEG) {\r\n // This aint no JPEG\r\n resolve(-1);\r\n return;\r\n }\r\n\r\n var length = view.byteLength;\r\n var offset = 2;\r\n\r\n while (offset < length) {\r\n var marker = getUint16(view, offset);\r\n offset += 2;\r\n\r\n // There's our APP1 Marker\r\n if (marker === Marker.APP1) {\r\n if (getUint32(view, (offset += 2)) !== Marker.EXIF) {\r\n // no EXIF info defined\r\n break;\r\n }\r\n\r\n // Get TIFF Header\r\n var little = getUint16(view, (offset += 6)) === Marker.TIFF;\r\n offset += getUint32(view, offset + 4, little);\r\n\r\n var tags = getUint16(view, offset, little);\r\n offset += 2;\r\n\r\n for (var i = 0; i < tags; i++) {\r\n // found the orientation tag\r\n if (\r\n getUint16(view, offset + i * 12, little) === Marker.Orientation\r\n ) {\r\n resolve(getUint16(view, offset + i * 12 + 8, little));\r\n\r\n return;\r\n }\r\n }\r\n } else if ((marker & Marker.Unknown) !== Marker.Unknown) {\r\n // Invalid\r\n break;\r\n } else {\r\n offset += getUint16(view, offset);\r\n }\r\n }\r\n\r\n // Nothing found\r\n resolve(-1);\r\n };\r\n\r\n // we don't need to read the entire file to get the orientation\r\n reader.readAsArrayBuffer(file.slice(0, 64 * 1024));\r\n });\r\n };\r\n\r\n var IS_BROWSER = (function() {\r\n return (\r\n typeof window !== 'undefined' && typeof window.document !== 'undefined'\r\n );\r\n })();\r\n var isBrowser = function isBrowser() {\r\n return IS_BROWSER;\r\n };\r\n\r\n // 2x1 pixel image 90CW rotated with orientation header\r\n var testSrc =\r\n 'data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QA6RXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAYAAAEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAD/2wBDAP//////////////////////////////////////////////////////////////////////////////////////wAALCAABAAIBASIA/8QAJgABAAAAAAAAAAAAAAAAAAAAAxABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAAPwBH/9k=';\r\n\r\n // should correct orientation if is presented in landscape, in which case the browser doesn't autocorrect\r\n var shouldCorrect = undefined;\r\n var testImage = isBrowser() ? new Image() : {};\r\n testImage.onload = function() {\r\n return (shouldCorrect = testImage.naturalWidth > testImage.naturalHeight);\r\n };\r\n testImage.src = testSrc;\r\n\r\n var shouldCorrectImageExifOrientation = function shouldCorrectImageExifOrientation() {\r\n return shouldCorrect;\r\n };\r\n\r\n /**\r\n * Read Image Orientation Plugin\r\n */\r\n var plugin = function plugin(_ref) {\r\n var addFilter = _ref.addFilter,\r\n utils = _ref.utils;\r\n var Type = utils.Type,\r\n isFile = utils.isFile;\r\n\r\n // subscribe to file load and append required info\r\n addFilter('DID_LOAD_ITEM', function(item, _ref2) {\r\n var query = _ref2.query;\r\n return new Promise(function(resolve, reject) {\r\n // get file reference\r\n var file = item.file;\r\n\r\n // if this is not a jpeg image we are not interested\r\n if (\r\n !isFile(file) ||\r\n !isJPEG(file) ||\r\n !query('GET_ALLOW_IMAGE_EXIF_ORIENTATION') ||\r\n !shouldCorrectImageExifOrientation()\r\n ) {\r\n // continue with the unaltered dataset\r\n return resolve(item);\r\n }\r\n\r\n // get orientation from exif data\r\n getImageOrientation(file).then(function(orientation) {\r\n item.setMetadata('exif', { orientation: orientation });\r\n resolve(item);\r\n });\r\n });\r\n });\r\n\r\n // Expose plugin options\r\n return {\r\n options: {\r\n // Enable or disable image orientation reading\r\n allowImageExifOrientation: [true, Type.BOOLEAN]\r\n }\r\n };\r\n };\r\n\r\n // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\r\n var isBrowser$1 =\r\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\r\n if (isBrowser$1) {\r\n document.dispatchEvent(\r\n new CustomEvent('FilePond:pluginloaded', { detail: plugin })\r\n );\r\n }\r\n\r\n return plugin;\r\n});\n/*!\r\n * FilePondPluginImageResize 2.0.4\r\n * Licensed under MIT, https://opensource.org/licenses/MIT/\r\n * Please visit https://pqina.nl/filepond/ for details.\r\n */\r\n\r\n/* eslint-disable */\r\n\r\n(function(global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n ? (module.exports = factory())\r\n : typeof define === 'function' && define.amd\r\n ? define(factory)\r\n : ((global = global || self),\r\n (global.FilePondPluginImageResize = factory()));\r\n})(this, function() {\r\n 'use strict';\r\n\r\n // test if file is of type image\r\n var isImage = function isImage(file) {\r\n return /^image/.test(file.type);\r\n };\r\n\r\n var getImageSize = function getImageSize(url, cb) {\r\n var image = new Image();\r\n image.onload = function() {\r\n var width = image.naturalWidth;\r\n var height = image.naturalHeight;\r\n image = null;\r\n cb(width, height);\r\n };\r\n image.src = url;\r\n };\r\n\r\n /**\r\n * Image Auto Resize Plugin\r\n */\r\n var plugin = function plugin(_ref) {\r\n var addFilter = _ref.addFilter,\r\n utils = _ref.utils;\r\n var Type = utils.Type;\r\n\r\n // subscribe to file load and append required transformations\r\n addFilter('DID_LOAD_ITEM', function(item, _ref2) {\r\n var query = _ref2.query;\r\n return new Promise(function(resolve, reject) {\r\n // get file reference\r\n var file = item.file;\r\n\r\n // if this is not an image we do not have any business cropping it\r\n if (!isImage(file) || !query('GET_ALLOW_IMAGE_RESIZE')) {\r\n // continue with the unaltered dataset\r\n return resolve(item);\r\n }\r\n\r\n var mode = query('GET_IMAGE_RESIZE_MODE');\r\n var width = query('GET_IMAGE_RESIZE_TARGET_WIDTH');\r\n var height = query('GET_IMAGE_RESIZE_TARGET_HEIGHT');\r\n var upscale = query('GET_IMAGE_RESIZE_UPSCALE');\r\n\r\n // no resizing to be done\r\n if (width === null && height === null) {\r\n return resolve(item);\r\n }\r\n\r\n var targetWidth = width === null ? height : width;\r\n var targetHeight = height === null ? targetWidth : height;\r\n\r\n // if should not upscale, we need to determine the size of the file\r\n var fileURL = URL.createObjectURL(file);\r\n getImageSize(fileURL, function(imageWidth, imageHeight) {\r\n URL.revokeObjectURL(fileURL);\r\n\r\n // get exif orientation\r\n var orientation = (item.getMetadata('exif') || {}).orientation || -1;\r\n\r\n // swap width and height if orientation needs correcting\r\n if (orientation >= 5 && orientation <= 8) {\r\n var _ref3 = [imageHeight, imageWidth];\r\n imageWidth = _ref3[0];\r\n imageHeight = _ref3[1];\r\n }\r\n\r\n // image is already perfect size, no transformations required\r\n if (imageWidth === targetWidth && imageHeight === targetHeight) {\r\n return resolve(item);\r\n }\r\n\r\n // image is smaller than target size but no upscaling is allowed\r\n if (\r\n imageWidth <= targetWidth &&\r\n imageHeight <= targetHeight &&\r\n !upscale\r\n ) {\r\n return resolve(item);\r\n }\r\n\r\n // the image needs to be resized\r\n item.setMetadata('resize', {\r\n mode: mode,\r\n upscale: upscale,\r\n size: {\r\n width: targetWidth,\r\n height: targetHeight\r\n }\r\n });\r\n\r\n resolve(item);\r\n });\r\n });\r\n });\r\n\r\n // Expose plugin options\r\n return {\r\n options: {\r\n // Enable or disable image resizing\r\n allowImageResize: [true, Type.BOOLEAN],\r\n\r\n // the method of rescaling\r\n // - force => force set size\r\n // - cover => pick biggest dimension\r\n // - contain => pick smaller dimension\r\n imageResizeMode: ['cover', Type.STRING],\r\n\r\n // set to false to disable upscaling of image smaller than the target width / height\r\n imageResizeUpscale: [true, Type.BOOLEAN],\r\n\r\n // target width\r\n imageResizeTargetWidth: [null, Type.INT],\r\n\r\n // target height\r\n imageResizeTargetHeight: [null, Type.INT]\r\n }\r\n };\r\n };\r\n\r\n // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\r\n var isBrowser =\r\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\r\n if (isBrowser) {\r\n document.dispatchEvent(\r\n new CustomEvent('FilePond:pluginloaded', { detail: plugin })\r\n );\r\n }\r\n\r\n return plugin;\r\n});\n/*!\r\n * FilePondPluginImageTransform 3.3.3\r\n * Licensed under MIT, https://opensource.org/licenses/MIT/\r\n * Please visit https://pqina.nl/filepond/ for details.\r\n */\r\n\r\n/* eslint-disable */\r\n\r\n(function(global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n ? (module.exports = factory())\r\n : typeof define === 'function' && define.amd\r\n ? define(factory)\r\n : ((global = global || self),\r\n (global.FilePondPluginImageTransform = factory()));\r\n})(this, function() {\r\n 'use strict';\r\n\r\n // test if file is of type image\r\n var isImage = function isImage(file) {\r\n return /^image/.test(file.type);\r\n };\r\n\r\n var getFilenameWithoutExtension = function getFilenameWithoutExtension(name) {\r\n return name.substr(0, name.lastIndexOf('.')) || name;\r\n };\r\n\r\n // only handles image/jpg, image/jpeg, image/png, and image/svg+xml for now\r\n var ExtensionMap = {\r\n jpeg: 'jpg',\r\n 'svg+xml': 'svg'\r\n };\r\n\r\n var renameFileToMatchMimeType = function renameFileToMatchMimeType(\r\n filename,\r\n mimeType\r\n ) {\r\n var name = getFilenameWithoutExtension(filename);\r\n var type = mimeType.split('/')[1];\r\n var extension = ExtensionMap[type] || type;\r\n return ''.concat(name, '.').concat(extension);\r\n };\r\n\r\n // returns all the valid output formats we can encode towards\r\n var getValidOutputMimeType = function getValidOutputMimeType(type) {\r\n return /jpeg|png|svg\\+xml/.test(type) ? type : 'image/jpeg';\r\n };\r\n\r\n // test if file is of type image\r\n var isImage$1 = function isImage(file) {\r\n return /^image/.test(file.type);\r\n };\r\n\r\n var MATRICES = {\r\n 1: function _() {\r\n return [1, 0, 0, 1, 0, 0];\r\n },\r\n 2: function _(width) {\r\n return [-1, 0, 0, 1, width, 0];\r\n },\r\n 3: function _(width, height) {\r\n return [-1, 0, 0, -1, width, height];\r\n },\r\n 4: function _(width, height) {\r\n return [1, 0, 0, -1, 0, height];\r\n },\r\n 5: function _() {\r\n return [0, 1, 1, 0, 0, 0];\r\n },\r\n 6: function _(width, height) {\r\n return [0, 1, -1, 0, height, 0];\r\n },\r\n 7: function _(width, height) {\r\n return [0, -1, -1, 0, height, width];\r\n },\r\n 8: function _(width) {\r\n return [0, -1, 1, 0, 0, width];\r\n }\r\n };\r\n\r\n var getImageOrientationMatrix = function getImageOrientationMatrix(\r\n width,\r\n height,\r\n orientation\r\n ) {\r\n if (orientation === -1) {\r\n orientation = 1;\r\n }\r\n return MATRICES[orientation](width, height);\r\n };\r\n\r\n var createVector = function createVector(x, y) {\r\n return { x: x, y: y };\r\n };\r\n\r\n var vectorDot = function vectorDot(a, b) {\r\n return a.x * b.x + a.y * b.y;\r\n };\r\n\r\n var vectorSubtract = function vectorSubtract(a, b) {\r\n return createVector(a.x - b.x, a.y - b.y);\r\n };\r\n\r\n var vectorDistanceSquared = function vectorDistanceSquared(a, b) {\r\n return vectorDot(vectorSubtract(a, b), vectorSubtract(a, b));\r\n };\r\n\r\n var vectorDistance = function vectorDistance(a, b) {\r\n return Math.sqrt(vectorDistanceSquared(a, b));\r\n };\r\n\r\n var getOffsetPointOnEdge = function getOffsetPointOnEdge(length, rotation) {\r\n var a = length;\r\n\r\n var A = 1.5707963267948966;\r\n var B = rotation;\r\n var C = 1.5707963267948966 - rotation;\r\n\r\n var sinA = Math.sin(A);\r\n var sinB = Math.sin(B);\r\n var sinC = Math.sin(C);\r\n var cosC = Math.cos(C);\r\n var ratio = a / sinA;\r\n var b = ratio * sinB;\r\n var c = ratio * sinC;\r\n\r\n return createVector(cosC * b, cosC * c);\r\n };\r\n\r\n var getRotatedRectSize = function getRotatedRectSize(rect, rotation) {\r\n var w = rect.width;\r\n var h = rect.height;\r\n\r\n var hor = getOffsetPointOnEdge(w, rotation);\r\n var ver = getOffsetPointOnEdge(h, rotation);\r\n\r\n var tl = createVector(rect.x + Math.abs(hor.x), rect.y - Math.abs(hor.y));\r\n\r\n var tr = createVector(\r\n rect.x + rect.width + Math.abs(ver.y),\r\n rect.y + Math.abs(ver.x)\r\n );\r\n\r\n var bl = createVector(\r\n rect.x - Math.abs(ver.y),\r\n rect.y + rect.height - Math.abs(ver.x)\r\n );\r\n\r\n return {\r\n width: vectorDistance(tl, tr),\r\n height: vectorDistance(tl, bl)\r\n };\r\n };\r\n\r\n var getImageRectZoomFactor = function getImageRectZoomFactor(\r\n imageRect,\r\n cropRect\r\n ) {\r\n var rotation =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\r\n var center =\r\n arguments.length > 3 && arguments[3] !== undefined\r\n ? arguments[3]\r\n : { x: 0.5, y: 0.5 };\r\n\r\n // calculate available space round image center position\r\n var cx = center.x > 0.5 ? 1 - center.x : center.x;\r\n var cy = center.y > 0.5 ? 1 - center.y : center.y;\r\n var imageWidth = cx * 2 * imageRect.width;\r\n var imageHeight = cy * 2 * imageRect.height;\r\n\r\n // calculate rotated crop rectangle size\r\n var rotatedCropSize = getRotatedRectSize(cropRect, rotation);\r\n\r\n // calculate scalar required to fit image\r\n return Math.max(\r\n rotatedCropSize.width / imageWidth,\r\n rotatedCropSize.height / imageHeight\r\n );\r\n };\r\n\r\n var getCenteredCropRect = function getCenteredCropRect(\r\n container,\r\n aspectRatio\r\n ) {\r\n var width = container.width;\r\n var height = width * aspectRatio;\r\n if (height > container.height) {\r\n height = container.height;\r\n width = height / aspectRatio;\r\n }\r\n var x = (container.width - width) * 0.5;\r\n var y = (container.height - height) * 0.5;\r\n\r\n return {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n };\r\n };\r\n\r\n var calculateCanvasSize = function calculateCanvasSize(\r\n image,\r\n canvasAspectRatio\r\n ) {\r\n var zoom =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\r\n\r\n var imageAspectRatio = image.height / image.width;\r\n\r\n // determine actual pixels on x and y axis\r\n var canvasWidth = 1;\r\n var canvasHeight = canvasAspectRatio;\r\n var imgWidth = 1;\r\n var imgHeight = imageAspectRatio;\r\n if (imgHeight > canvasHeight) {\r\n imgHeight = canvasHeight;\r\n imgWidth = imgHeight / imageAspectRatio;\r\n }\r\n\r\n var scalar = Math.max(canvasWidth / imgWidth, canvasHeight / imgHeight);\r\n var width = image.width / (zoom * scalar * imgWidth);\r\n var height = width * canvasAspectRatio;\r\n\r\n return {\r\n width: width,\r\n height: height\r\n };\r\n };\r\n\r\n var isFlipped = function isFlipped(flip) {\r\n return flip && (flip.horizontal || flip.vertical);\r\n };\r\n\r\n var getBitmap = function getBitmap(image, orientation, flip) {\r\n if (!orientation && !isFlipped(flip)) {\r\n image.width = image.naturalWidth;\r\n image.height = image.naturalHeight;\r\n return image;\r\n }\r\n\r\n var canvas = document.createElement('canvas');\r\n var width = image.naturalWidth;\r\n var height = image.naturalHeight;\r\n\r\n // if is rotated incorrectly swap width and height\r\n var swapped = orientation >= 5 && orientation <= 8;\r\n if (swapped) {\r\n canvas.width = height;\r\n canvas.height = width;\r\n } else {\r\n canvas.width = width;\r\n canvas.height = height;\r\n }\r\n\r\n // draw the image but first fix orientation and set correct flip\r\n var ctx = canvas.getContext('2d');\r\n\r\n // get base transformation matrix\r\n if (orientation) {\r\n ctx.transform.apply(\r\n ctx,\r\n getImageOrientationMatrix(width, height, orientation)\r\n );\r\n }\r\n\r\n if (isFlipped(flip)) {\r\n // flip horizontal\r\n // [-1, 0, 0, 1, width, 0]\r\n var matrix = [1, 0, 0, 1, 0, 0];\r\n if ((!swapped && flip.horizontal) || swapped & flip.vertical) {\r\n matrix[0] = -1;\r\n matrix[4] = width;\r\n }\r\n\r\n // flip vertical\r\n // [1, 0, 0, -1, 0, height]\r\n if ((!swapped && flip.vertical) || (swapped && flip.horizontal)) {\r\n matrix[3] = -1;\r\n matrix[5] = height;\r\n }\r\n\r\n ctx.transform.apply(ctx, matrix);\r\n }\r\n\r\n ctx.drawImage(image, 0, 0, width, height);\r\n\r\n return canvas;\r\n };\r\n\r\n var imageToImageData = function imageToImageData(imageElement, orientation) {\r\n var crop =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n\r\n var zoom = crop.zoom || 1;\r\n\r\n // fixes possible image orientation problems by drawing the image on the correct canvas\r\n var bitmap = getBitmap(imageElement, orientation, crop.flip);\r\n var imageSize = {\r\n width: bitmap.width,\r\n height: bitmap.height\r\n };\r\n\r\n var canvas = document.createElement('canvas');\r\n var aspectRatio = crop.aspectRatio || imageSize.height / imageSize.width;\r\n\r\n var canvasSize = calculateCanvasSize(imageSize, aspectRatio, zoom);\r\n\r\n var canvasCenter = {\r\n x: canvasSize.width * 0.5,\r\n y: canvasSize.height * 0.5\r\n };\r\n\r\n var stage = {\r\n x: 0,\r\n y: 0,\r\n width: canvasSize.width,\r\n height: canvasSize.height,\r\n center: canvasCenter\r\n };\r\n\r\n var stageZoomFactor = getImageRectZoomFactor(\r\n imageSize,\r\n getCenteredCropRect(stage, aspectRatio),\r\n crop.rotation,\r\n crop.center\r\n );\r\n\r\n var scale = zoom * stageZoomFactor;\r\n\r\n // start drawing\r\n canvas.width = Math.round(canvasSize.width / scale);\r\n canvas.height = Math.round(canvasSize.height / scale);\r\n\r\n canvasCenter.x /= scale;\r\n canvasCenter.y /= scale;\r\n\r\n var imageOffset = {\r\n x: canvasCenter.x - imageSize.width * (crop.center ? crop.center.x : 0.5),\r\n y: canvasCenter.y - imageSize.height * (crop.center ? crop.center.y : 0.5)\r\n };\r\n\r\n var ctx = canvas.getContext('2d');\r\n\r\n // move to draw offset\r\n ctx.translate(canvasCenter.x, canvasCenter.y);\r\n ctx.rotate(crop.rotation || 0);\r\n\r\n // draw the image\r\n ctx.drawImage(\r\n bitmap,\r\n imageOffset.x - canvasCenter.x,\r\n imageOffset.y - canvasCenter.y,\r\n imageSize.width,\r\n imageSize.height\r\n );\r\n\r\n // get data from canvas\r\n return ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n };\r\n\r\n /**\r\n * Polyfill toBlob for Edge\r\n */\r\n var IS_BROWSER = (function() {\r\n return (\r\n typeof window !== 'undefined' && typeof window.document !== 'undefined'\r\n );\r\n })();\r\n if (IS_BROWSER) {\r\n if (!HTMLCanvasElement.prototype.toBlob) {\r\n Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {\r\n value: function value(callback, type, quality) {\r\n var dataURL = this.toDataURL(type, quality).split(',')[1];\r\n setTimeout(function() {\r\n var binStr = atob(dataURL);\r\n var len = binStr.length;\r\n var arr = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n arr[i] = binStr.charCodeAt(i);\r\n }\r\n callback(new Blob([arr], { type: type || 'image/png' }));\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n var imageDataToBlob = function imageDataToBlob(imageData, options) {\r\n var beforeCreateBlob =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\r\n return new Promise(function(resolve) {\r\n var image = document.createElement('canvas');\r\n image.width = imageData.width;\r\n image.height = imageData.height;\r\n var ctx = image.getContext('2d');\r\n ctx.putImageData(imageData, 0, 0);\r\n var promisedImage = beforeCreateBlob ? beforeCreateBlob(image) : image;\r\n Promise.resolve(promisedImage).then(function(image) {\r\n image.toBlob(resolve, options.type, options.quality);\r\n });\r\n });\r\n };\r\n\r\n var cropSVG = function cropSVG(blob) {\r\n var crop =\r\n arguments.length > 1 && arguments[1] !== undefined\r\n ? arguments[1]\r\n : {\r\n center: { x: 0.5, y: 0.5 },\r\n zoom: 1,\r\n rotation: 0,\r\n flip: { horizontal: false, vertical: false, aspectRatio: null }\r\n };\r\n return new Promise(function(resolve) {\r\n // load blob contents and wrap in crop svg\r\n var fr = new FileReader();\r\n fr.onloadend = function() {\r\n // get svg text\r\n var text = fr.result;\r\n\r\n // create element with svg and get size\r\n var original = document.createElement('div');\r\n original.style.cssText =\r\n 'position:absolute;pointer-events:none;width:0;height:0;visibility:hidden;';\r\n original.innerHTML = text;\r\n var originalNode = original.querySelector('svg');\r\n document.body.appendChild(original);\r\n\r\n // request bounding box dimensions\r\n var bBox = originalNode.getBBox();\r\n original.parentNode.removeChild(original);\r\n\r\n // get title\r\n var titleNode = original.querySelector('title');\r\n\r\n // calculate new heights and widths\r\n var viewBoxAttribute = originalNode.getAttribute('viewBox') || '';\r\n var widthAttribute = originalNode.getAttribute('width') || '';\r\n var heightAttribute = originalNode.getAttribute('height') || '';\r\n var width = parseFloat(widthAttribute) || null;\r\n var height = parseFloat(heightAttribute) || null;\r\n var widthUnits = (widthAttribute.match(/[a-z]+/) || [])[0] || '';\r\n var heightUnits = (heightAttribute.match(/[a-z]+/) || [])[0] || '';\r\n\r\n // create new size\r\n var viewBoxList = viewBoxAttribute.split(' ').map(parseFloat);\r\n var viewBox = viewBoxList.length\r\n ? {\r\n x: viewBoxList[0],\r\n y: viewBoxList[1],\r\n width: viewBoxList[2],\r\n height: viewBoxList[3]\r\n }\r\n : bBox;\r\n\r\n var imageWidth = width != null ? width : viewBox.width;\r\n var imageHeight = height != null ? height : viewBox.height;\r\n\r\n originalNode.style.overflow = 'visible';\r\n originalNode.setAttribute('width', imageWidth);\r\n originalNode.setAttribute('height', imageHeight);\r\n\r\n var aspectRatio = crop.aspectRatio || imageHeight / imageWidth;\r\n\r\n var canvasWidth = imageWidth;\r\n var canvasHeight = canvasWidth * aspectRatio;\r\n\r\n var canvasZoomFactor = getImageRectZoomFactor(\r\n {\r\n width: imageWidth,\r\n height: imageHeight\r\n },\r\n\r\n getCenteredCropRect(\r\n {\r\n width: canvasWidth,\r\n height: canvasHeight\r\n },\r\n\r\n aspectRatio\r\n ),\r\n\r\n crop.rotation,\r\n crop.center\r\n );\r\n\r\n var scale = crop.zoom * canvasZoomFactor;\r\n\r\n var rotation = crop.rotation * (180 / Math.PI);\r\n\r\n var canvasCenter = {\r\n x: canvasWidth * 0.5,\r\n y: canvasHeight * 0.5\r\n };\r\n\r\n var imageOffset = {\r\n x: canvasCenter.x - imageWidth * crop.center.x,\r\n y: canvasCenter.y - imageHeight * crop.center.y\r\n };\r\n\r\n var cropTransforms = [\r\n // rotate\r\n 'rotate('\r\n .concat(rotation, ' ')\r\n .concat(canvasCenter.x, ' ')\r\n .concat(canvasCenter.y, ')'),\r\n\r\n // scale\r\n 'translate('.concat(canvasCenter.x, ' ').concat(canvasCenter.y, ')'),\r\n 'scale('.concat(scale, ')'),\r\n 'translate('\r\n .concat(-canvasCenter.x, ' ')\r\n .concat(-canvasCenter.y, ')'),\r\n\r\n // offset\r\n 'translate('.concat(imageOffset.x, ' ').concat(imageOffset.y, ')')\r\n ];\r\n\r\n var flipTransforms = [\r\n 'scale('\r\n .concat(crop.flip.horizontal ? -1 : 1, ' ')\r\n .concat(crop.flip.vertical ? -1 : 1, ')'),\r\n 'translate('\r\n .concat(crop.flip.horizontal ? -imageWidth : 0, ' ')\r\n .concat(crop.flip.vertical ? -imageHeight : 0, ')')\r\n ];\r\n\r\n // crop\r\n var transformed = '\\n\\n\\n'\r\n )\r\n .concat(\r\n titleNode ? titleNode.textContent : '',\r\n '\\nCropped with FilePond.\\n\\n\\n')\r\n .concat(originalNode.outerHTML, '\\n\\n\\n');\r\n\r\n // create new svg file\r\n resolve(transformed);\r\n };\r\n\r\n fr.readAsText(blob);\r\n });\r\n };\r\n\r\n var objectToImageData = function objectToImageData(obj) {\r\n var imageData;\r\n try {\r\n imageData = new ImageData(obj.width, obj.height);\r\n } catch (e) {\r\n // IE + Old EDGE (tested on 12)\r\n var canvas = document.createElement('canvas');\r\n imageData = canvas\r\n .getContext('2d')\r\n .createImageData(obj.width, obj.height);\r\n }\r\n imageData.data.set(obj.data);\r\n return imageData;\r\n };\r\n\r\n /* javascript-obfuscator:disable */\r\n var TransformWorker = function TransformWorker() {\r\n // maps transform types to transform functions\r\n var TRANSFORMS = { resize: resize, filter: filter };\r\n\r\n // applies all image transforms to the image data array\r\n var applyTransforms = function applyTransforms(transforms, imageData) {\r\n transforms.forEach(function(transform) {\r\n imageData = TRANSFORMS[transform.type](imageData, transform.data);\r\n });\r\n return imageData;\r\n };\r\n\r\n // transform image hub\r\n var transform = function transform(data, cb) {\r\n var transforms = data.transforms;\r\n\r\n // if has filter and has resize, move filter to resize operation\r\n var filterTransform = null;\r\n transforms.forEach(function(transform) {\r\n if (transform.type === 'filter') {\r\n filterTransform = transform;\r\n }\r\n });\r\n if (filterTransform) {\r\n // find resize\r\n var resizeTransform = null;\r\n transforms.forEach(function(transform) {\r\n if (transform.type === 'resize') {\r\n resizeTransform = transform;\r\n }\r\n });\r\n\r\n if (resizeTransform) {\r\n // update resize operation\r\n resizeTransform.data.matrix = filterTransform.data;\r\n\r\n // remove filter\r\n transforms = transforms.filter(function(transform) {\r\n return transform.type !== 'filter';\r\n });\r\n }\r\n }\r\n\r\n cb(applyTransforms(transforms, data.imageData));\r\n };\r\n\r\n // eslint-disable-next-line no-restricted-globals\r\n self.onmessage = function(e) {\r\n transform(e.data.message, function(response) {\r\n // eslint-disable-next-line no-restricted-globals\r\n self.postMessage({ id: e.data.id, message: response }, [\r\n response.data.buffer\r\n ]);\r\n });\r\n };\r\n\r\n function applyFilterMatrix(index, data, matrix) {\r\n var i = 0,\r\n row = 0,\r\n c = 0.0,\r\n r = data[index] / 255,\r\n g = data[index + 1] / 255,\r\n b = data[index + 2] / 255,\r\n a = data[index + 3] / 255;\r\n for (; i < 4; i++) {\r\n row = 5 * i;\r\n c =\r\n (r * matrix[row] +\r\n g * matrix[row + 1] +\r\n b * matrix[row + 2] +\r\n a * matrix[row + 3] +\r\n matrix[row + 4]) *\r\n 255;\r\n data[index + i] = Math.max(0, Math.min(c, 255));\r\n }\r\n }\r\n\r\n var identityMatrix = JSON.stringify([\r\n 1,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 1,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 1,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 1,\r\n 0\r\n ]);\r\n function isIdentityMatrix(filter) {\r\n return JSON.stringify(filter || []) === identityMatrix;\r\n }\r\n\r\n function filter(imageData, matrix) {\r\n if (!matrix || isIdentityMatrix(matrix)) return imageData;\r\n\r\n var data = imageData.data;\r\n var l = data.length;\r\n\r\n var m11 = matrix[0];\r\n var m12 = matrix[1];\r\n var m13 = matrix[2];\r\n var m14 = matrix[3];\r\n var m15 = matrix[4];\r\n\r\n var m21 = matrix[5];\r\n var m22 = matrix[6];\r\n var m23 = matrix[7];\r\n var m24 = matrix[8];\r\n var m25 = matrix[9];\r\n\r\n var m31 = matrix[10];\r\n var m32 = matrix[11];\r\n var m33 = matrix[12];\r\n var m34 = matrix[13];\r\n var m35 = matrix[14];\r\n\r\n var m41 = matrix[15];\r\n var m42 = matrix[16];\r\n var m43 = matrix[17];\r\n var m44 = matrix[18];\r\n var m45 = matrix[19];\r\n\r\n var index = 0,\r\n r = 0.0,\r\n g = 0.0,\r\n b = 0.0,\r\n a = 0.0;\r\n\r\n for (; index < l; index += 4) {\r\n r = data[index] / 255;\r\n g = data[index + 1] / 255;\r\n b = data[index + 2] / 255;\r\n a = data[index + 3] / 255;\r\n data[index] = Math.max(\r\n 0,\r\n Math.min((r * m11 + g * m12 + b * m13 + a * m14 + m15) * 255, 255)\r\n );\r\n data[index + 1] = Math.max(\r\n 0,\r\n Math.min((r * m21 + g * m22 + b * m23 + a * m24 + m25) * 255, 255)\r\n );\r\n data[index + 2] = Math.max(\r\n 0,\r\n Math.min((r * m31 + g * m32 + b * m33 + a * m34 + m35) * 255, 255)\r\n );\r\n data[index + 3] = Math.max(\r\n 0,\r\n Math.min((r * m41 + g * m42 + b * m43 + a * m44 + m45) * 255, 255)\r\n );\r\n }\r\n\r\n return imageData;\r\n }\r\n\r\n function resize(imageData, data) {\r\n var _data$mode = data.mode,\r\n mode = _data$mode === void 0 ? 'contain' : _data$mode,\r\n _data$upscale = data.upscale,\r\n upscale = _data$upscale === void 0 ? false : _data$upscale,\r\n width = data.width,\r\n height = data.height,\r\n matrix = data.matrix;\r\n\r\n // test if is identity matrix\r\n matrix = !matrix || isIdentityMatrix(matrix) ? null : matrix;\r\n\r\n // need at least a width or a height\r\n // also 0 is not a valid width or height\r\n if (!width && !height) {\r\n return filter(imageData, matrix);\r\n }\r\n\r\n // make sure all bounds are set\r\n if (width === null) {\r\n width = height;\r\n } else if (height === null) {\r\n height = width;\r\n }\r\n\r\n if (mode !== 'force') {\r\n var scalarWidth = width / imageData.width;\r\n var scalarHeight = height / imageData.height;\r\n var scalar = 1;\r\n\r\n if (mode === 'cover') {\r\n scalar = Math.max(scalarWidth, scalarHeight);\r\n } else if (mode === 'contain') {\r\n scalar = Math.min(scalarWidth, scalarHeight);\r\n }\r\n\r\n // if image is too small, exit here with original image\r\n if (scalar > 1 && upscale === false) {\r\n return filter(imageData, matrix);\r\n }\r\n\r\n width = imageData.width * scalar;\r\n height = imageData.height * scalar;\r\n }\r\n\r\n var originWidth = imageData.width;\r\n var originHeight = imageData.height;\r\n var targetWidth = Math.round(width);\r\n var targetHeight = Math.round(height);\r\n var inputData = imageData.data;\r\n var outputData = new Uint8ClampedArray(targetWidth * targetHeight * 4);\r\n var ratioWidth = originWidth / targetWidth;\r\n var ratioHeight = originHeight / targetHeight;\r\n var ratioWidthHalf = Math.ceil(ratioWidth * 0.5);\r\n var ratioHeightHalf = Math.ceil(ratioHeight * 0.5);\r\n\r\n for (var j = 0; j < targetHeight; j++) {\r\n for (var i = 0; i < targetWidth; i++) {\r\n var x2 = (i + j * targetWidth) * 4;\r\n var weight = 0;\r\n var weights = 0;\r\n var weightsAlpha = 0;\r\n var r = 0;\r\n var g = 0;\r\n var b = 0;\r\n var a = 0;\r\n var centerY = (j + 0.5) * ratioHeight;\r\n\r\n for (\r\n var yy = Math.floor(j * ratioHeight);\r\n yy < (j + 1) * ratioHeight;\r\n yy++\r\n ) {\r\n var dy = Math.abs(centerY - (yy + 0.5)) / ratioHeightHalf;\r\n var centerX = (i + 0.5) * ratioWidth;\r\n var w0 = dy * dy;\r\n\r\n for (\r\n var xx = Math.floor(i * ratioWidth);\r\n xx < (i + 1) * ratioWidth;\r\n xx++\r\n ) {\r\n var dx = Math.abs(centerX - (xx + 0.5)) / ratioWidthHalf;\r\n var w = Math.sqrt(w0 + dx * dx);\r\n\r\n if (w >= -1 && w <= 1) {\r\n weight = 2 * w * w * w - 3 * w * w + 1;\r\n\r\n if (weight > 0) {\r\n dx = 4 * (xx + yy * originWidth);\r\n\r\n var ref = inputData[dx + 3];\r\n a += weight * ref;\r\n weightsAlpha += weight;\r\n\r\n if (ref < 255) {\r\n weight = (weight * ref) / 250;\r\n }\r\n\r\n r += weight * inputData[dx];\r\n g += weight * inputData[dx + 1];\r\n b += weight * inputData[dx + 2];\r\n weights += weight;\r\n }\r\n }\r\n }\r\n }\r\n\r\n outputData[x2] = r / weights;\r\n outputData[x2 + 1] = g / weights;\r\n outputData[x2 + 2] = b / weights;\r\n outputData[x2 + 3] = a / weightsAlpha;\r\n\r\n matrix && applyFilterMatrix(x2, outputData, matrix);\r\n }\r\n }\r\n\r\n return {\r\n data: outputData,\r\n width: targetWidth,\r\n height: targetHeight\r\n };\r\n }\r\n };\r\n /* javascript-obfuscator:enable */\r\n\r\n var correctOrientation = function correctOrientation(view, offset, length) {\r\n // Missing 0x45786966 Marker? No Exif Header, stop here\r\n if (view.getUint32(offset + 4, false) !== 0x45786966) return;\r\n\r\n // next byte!\r\n offset += 4;\r\n\r\n // First 2bytes defines byte align of TIFF data.\r\n // If it is 0x4949=\"I I\", it means \"Intel\" type byte align\r\n var intelByteAligned = view.getUint16((offset += 6), false) === 0x4949;\r\n offset += view.getUint32(offset + 4, intelByteAligned);\r\n\r\n var tags = view.getUint16(offset, intelByteAligned);\r\n offset += 2;\r\n\r\n // find Orientation tag\r\n for (var i = 0; i < tags; i++) {\r\n if (view.getUint16(offset + i * 12, intelByteAligned) === 0x0112) {\r\n view.setUint16(offset + i * 12 + 8, 1, intelByteAligned);\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n var readData = function readData(data) {\r\n var view = new DataView(data);\r\n\r\n // Every JPEG file starts from binary value '0xFFD8'\r\n // If it's not present, exit here\r\n if (view.getUint16(0) !== 0xffd8) return null;\r\n\r\n var offset = 2; // Start at 2 as we skipped two bytes (FFD8)\r\n var marker;\r\n var markerLength;\r\n var orientationCorrected = false;\r\n\r\n while (offset < view.byteLength) {\r\n marker = view.getUint16(offset, false);\r\n markerLength = view.getUint16(offset + 2, false) + 2;\r\n\r\n // Test if is APP and COM markers\r\n var isData = (marker >= 0xffe0 && marker <= 0xffef) || marker === 0xfffe;\r\n if (!isData) {\r\n break;\r\n }\r\n\r\n if (!orientationCorrected) {\r\n orientationCorrected = correctOrientation(view, offset, markerLength);\r\n }\r\n\r\n if (offset + markerLength > view.byteLength) {\r\n break;\r\n }\r\n\r\n offset += markerLength;\r\n }\r\n return data.slice(0, offset);\r\n };\r\n\r\n var getImageHead = function getImageHead(file) {\r\n return new Promise(function(resolve, reject) {\r\n var reader = new FileReader();\r\n reader.onload = function() {\r\n return resolve(readData(reader.result) || null);\r\n };\r\n reader.readAsArrayBuffer(file.slice(0, 256 * 1024));\r\n });\r\n };\r\n\r\n var getBlobBuilder = function getBlobBuilder() {\r\n return (window.BlobBuilder =\r\n window.BlobBuilder ||\r\n window.WebKitBlobBuilder ||\r\n window.MozBlobBuilder ||\r\n window.MSBlobBuilder);\r\n };\r\n\r\n var createBlob = function createBlob(arrayBuffer, mimeType) {\r\n var BB = getBlobBuilder();\r\n\r\n if (BB) {\r\n var bb = new BB();\r\n bb.append(arrayBuffer);\r\n return bb.getBlob(mimeType);\r\n }\r\n\r\n return new Blob([arrayBuffer], {\r\n type: mimeType\r\n });\r\n };\r\n\r\n var getUniqueId = function getUniqueId() {\r\n return Math.random()\r\n .toString(36)\r\n .substr(2, 9);\r\n };\r\n\r\n var createWorker = function createWorker(fn) {\r\n var workerBlob = new Blob(['(', fn.toString(), ')()'], {\r\n type: 'application/javascript'\r\n });\r\n\r\n var workerURL = URL.createObjectURL(workerBlob);\r\n var worker = new Worker(workerURL);\r\n\r\n return {\r\n transfer: function transfer(message, cb) {},\r\n post: function post(message, cb, transferList) {\r\n var id = getUniqueId();\r\n\r\n worker.onmessage = function(e) {\r\n if (e.data.id === id) {\r\n cb(e.data.message);\r\n }\r\n };\r\n\r\n worker.postMessage(\r\n {\r\n id: id,\r\n message: message\r\n },\r\n\r\n transferList\r\n );\r\n },\r\n terminate: function terminate() {\r\n worker.terminate();\r\n URL.revokeObjectURL(workerURL);\r\n }\r\n };\r\n };\r\n\r\n var loadImage = function loadImage(url) {\r\n return new Promise(function(resolve, reject) {\r\n var img = new Image();\r\n img.onload = function() {\r\n resolve(img);\r\n };\r\n img.onerror = function(e) {\r\n reject(e);\r\n };\r\n img.src = url;\r\n });\r\n };\r\n\r\n var transformImage = function transformImage(file, instructions) {\r\n var options =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n return new Promise(function(resolve, reject) {\r\n // if the file is not an image we do not have any business transforming it\r\n if (!file || !isImage$1(file)) return reject();\r\n\r\n // get separate options for easier use\r\n var stripImageHead = options.stripImageHead,\r\n beforeCreateBlob = options.beforeCreateBlob,\r\n afterCreateBlob = options.afterCreateBlob;\r\n\r\n // get crop\r\n var crop = instructions.crop,\r\n size = instructions.size,\r\n filter = instructions.filter,\r\n output = instructions.output;\r\n\r\n // get exif orientation\r\n var orientation =\r\n instructions.image && instructions.image.orientation\r\n ? Math.max(1, Math.min(8, instructions.image.orientation))\r\n : null;\r\n\r\n // compression quality 0 => 100\r\n var qualityAsPercentage = output && output.quality;\r\n var quality =\r\n qualityAsPercentage === null ? null : qualityAsPercentage / 100;\r\n\r\n // output format\r\n var type = (output && output.type) || null;\r\n\r\n // get transforms\r\n var transforms = [];\r\n\r\n // add resize transforms if set\r\n if (\r\n size &&\r\n (typeof size.width === 'number' || typeof size.height === 'number')\r\n ) {\r\n transforms.push({ type: 'resize', data: size });\r\n }\r\n\r\n // add filters\r\n if (filter && filter.length === 20) {\r\n transforms.push({ type: 'filter', data: filter });\r\n }\r\n\r\n // resolves with supplied blob\r\n var resolveWithBlob = function resolveWithBlob(blob) {\r\n var promisedBlob = afterCreateBlob ? afterCreateBlob(blob) : blob;\r\n Promise.resolve(promisedBlob).then(resolve);\r\n };\r\n\r\n // done\r\n var toBlob = function toBlob(imageData, options) {\r\n return imageDataToBlob(imageData, options, beforeCreateBlob)\r\n .then(function(blob) {\r\n // remove image head (default)\r\n if (stripImageHead) return resolveWithBlob(blob);\r\n\r\n // try to copy image head\r\n getImageHead(file).then(function(imageHead) {\r\n // re-inject image head EXIF info in case of JPEG, as the image head is removed by canvas export\r\n if (imageHead !== null) {\r\n blob = new Blob([imageHead, blob.slice(20)], {\r\n type: blob.type\r\n });\r\n }\r\n\r\n // done!\r\n resolveWithBlob(blob);\r\n });\r\n })\r\n .catch(reject);\r\n };\r\n\r\n // if this is an svg and we want it to stay an svg\r\n if (/svg/.test(file.type) && type === null) {\r\n return cropSVG(file, crop).then(function(text) {\r\n resolve(createBlob(text, 'image/svg+xml'));\r\n });\r\n }\r\n\r\n // get file url\r\n var url = URL.createObjectURL(file);\r\n\r\n // turn the file into an image\r\n loadImage(url).then(function(image) {\r\n // url is no longer needed\r\n URL.revokeObjectURL(url);\r\n\r\n // draw to canvas and start transform chain\r\n var imageData = imageToImageData(image, orientation, crop);\r\n\r\n // determine the format of the blob that we will output\r\n var outputFormat = {\r\n quality: quality,\r\n type: type || file.type\r\n };\r\n\r\n // no transforms necessary, we done!\r\n if (!transforms.length) {\r\n return toBlob(imageData, outputFormat);\r\n }\r\n\r\n // send to the transform worker to transform the blob on a separate thread\r\n var worker = createWorker(TransformWorker);\r\n worker.post(\r\n {\r\n transforms: transforms,\r\n imageData: imageData\r\n },\r\n\r\n function(response) {\r\n // finish up\r\n toBlob(objectToImageData(response), outputFormat);\r\n\r\n // stop worker\r\n worker.terminate();\r\n },\r\n [imageData.data.buffer]\r\n );\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Polyfill Edge and IE when in Browser\r\n */\r\n if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\r\n if (!HTMLCanvasElement.prototype.toBlob) {\r\n Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {\r\n value: function value(cb, type, quality) {\r\n var canvas = this;\r\n setTimeout(function() {\r\n var dataURL = canvas.toDataURL(type, quality).split(',')[1];\r\n var binStr = atob(dataURL);\r\n var index = binStr.length;\r\n var data = new Uint8Array(index);\r\n while (index--) {\r\n data[index] = binStr.charCodeAt(index);\r\n }\r\n cb(new Blob([data], { type: type || 'image/png' }));\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Image Transform Plugin\r\n */\r\n var plugin = function plugin(_ref) {\r\n var addFilter = _ref.addFilter,\r\n utils = _ref.utils;\r\n var Type = utils.Type,\r\n forin = utils.forin,\r\n getFileFromBlob = utils.getFileFromBlob,\r\n isFile = utils.isFile;\r\n\r\n /**\r\n * Helper functions\r\n */\r\n\r\n // valid transforms (in correct order)\r\n var TRANSFORM_LIST = ['crop', 'resize', 'filter', 'output'];\r\n\r\n var createVariantCreator = function createVariantCreator(updateMetadata) {\r\n return function(transform, file, metadata) {\r\n return transform(\r\n file,\r\n updateMetadata ? updateMetadata(metadata) : metadata\r\n );\r\n };\r\n };\r\n\r\n var isDefaultCrop = function isDefaultCrop(crop) {\r\n return (\r\n crop.aspectRatio === null &&\r\n crop.rotation === 0 &&\r\n crop.zoom === 1 &&\r\n crop.center &&\r\n crop.center.x === 0.5 &&\r\n crop.center.y === 0.5 &&\r\n crop.flip &&\r\n crop.flip.horizontal === false &&\r\n crop.flip.vertical === false\r\n );\r\n };\r\n\r\n /**\r\n * Filters\r\n */\r\n addFilter('SHOULD_PREPARE_OUTPUT', function(shouldPrepareOutput, _ref2) {\r\n var query = _ref2.query;\r\n return new Promise(function(resolve) {\r\n // If is not async should prepare now\r\n resolve(!query('IS_ASYNC'));\r\n });\r\n });\r\n\r\n // subscribe to file transformations\r\n addFilter('PREPARE_OUTPUT', function(file, _ref3) {\r\n var query = _ref3.query,\r\n item = _ref3.item;\r\n return new Promise(function(resolve) {\r\n // if the file is not an image we do not have any business transforming it\r\n if (\r\n !isFile(file) ||\r\n !isImage(file) ||\r\n !query('GET_ALLOW_IMAGE_TRANSFORM') ||\r\n item.archived\r\n ) {\r\n return resolve(file);\r\n }\r\n\r\n // get variants\r\n var variants = [];\r\n\r\n // add original file\r\n if (query('GET_IMAGE_TRANSFORM_VARIANTS_INCLUDE_ORIGINAL')) {\r\n variants.push(function() {\r\n return new Promise(function(resolve) {\r\n resolve({\r\n name: query('GET_IMAGE_TRANSFORM_VARIANTS_ORIGINAL_NAME'),\r\n file: file\r\n });\r\n });\r\n });\r\n }\r\n\r\n // add default output version if output default set to true or if no variants defined\r\n if (query('GET_IMAGE_TRANSFORM_VARIANTS_INCLUDE_DEFAULT')) {\r\n variants.push(function(transform, file, metadata) {\r\n return new Promise(function(resolve) {\r\n transform(file, metadata).then(function(file) {\r\n return resolve({\r\n name: query('GET_IMAGE_TRANSFORM_VARIANTS_DEFAULT_NAME'),\r\n file: file\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n // get other variants\r\n var variantsDefinition = query('GET_IMAGE_TRANSFORM_VARIANTS') || {};\r\n forin(variantsDefinition, function(key, fn) {\r\n var createVariant = createVariantCreator(fn);\r\n variants.push(function(transform, file, metadata) {\r\n return new Promise(function(resolve) {\r\n createVariant(transform, file, metadata).then(function(file) {\r\n return resolve({ name: key, file: file });\r\n });\r\n });\r\n });\r\n });\r\n\r\n // output format (quality 0 => 100)\r\n var qualityAsPercentage = query('GET_IMAGE_TRANSFORM_OUTPUT_QUALITY');\r\n var qualityMode = query('GET_IMAGE_TRANSFORM_OUTPUT_QUALITY_MODE');\r\n var quality =\r\n qualityAsPercentage === null ? null : qualityAsPercentage / 100;\r\n var type = query('GET_IMAGE_TRANSFORM_OUTPUT_MIME_TYPE');\r\n var clientTransforms =\r\n query('GET_IMAGE_TRANSFORM_CLIENT_TRANSFORMS') || TRANSFORM_LIST;\r\n\r\n // update transform metadata object\r\n item.setMetadata(\r\n 'output',\r\n {\r\n type: type,\r\n quality: quality,\r\n client: clientTransforms\r\n },\r\n true\r\n );\r\n\r\n // the function that is used to apply the file transformations\r\n var transform = function transform(file, metadata) {\r\n return new Promise(function(resolve, reject) {\r\n var filteredMetadata = Object.assign({}, metadata);\r\n\r\n Object.keys(filteredMetadata)\r\n .filter(function(instruction) {\r\n return instruction !== 'exif';\r\n })\r\n .forEach(function(instruction) {\r\n // if not in list, remove from object, the instruction will be handled by the server\r\n if (clientTransforms.indexOf(instruction) === -1) {\r\n delete filteredMetadata[instruction];\r\n }\r\n });\r\n var resize = filteredMetadata.resize,\r\n exif = filteredMetadata.exif,\r\n output = filteredMetadata.output,\r\n crop = filteredMetadata.crop,\r\n filter = filteredMetadata.filter;\r\n\r\n var instructions = {\r\n image: {\r\n orientation: exif ? exif.orientation : null\r\n },\r\n\r\n output: output\r\n ? {\r\n type: output.type,\r\n quality: output.quality ? output.quality * 100 : null\r\n }\r\n : undefined,\r\n size:\r\n resize && (resize.size.width || resize.size.height)\r\n ? Object.assign(\r\n {\r\n mode: resize.mode,\r\n upscale: resize.upscale\r\n },\r\n resize.size\r\n )\r\n : undefined,\r\n crop:\r\n crop && !isDefaultCrop(crop)\r\n ? Object.assign({}, crop)\r\n : undefined,\r\n filter: filter\r\n };\r\n\r\n if (instructions.output) {\r\n // determine if file type will change\r\n var willChangeType = output.type && output.type !== file.type;\r\n\r\n // determine if file data will be modified\r\n var willModifyImageData = !!(\r\n instructions.size ||\r\n instructions.crop ||\r\n instructions.filter ||\r\n willChangeType\r\n );\r\n\r\n // if quality has been set, and quality is optional, and we're not modifying the image data then we don't have to modify the output\r\n if (\r\n output.quality &&\r\n qualityMode === 'optional' &&\r\n !willModifyImageData\r\n ) {\r\n return resolve(file);\r\n }\r\n }\r\n\r\n var options = {\r\n stripImageHead: query(\r\n 'GET_IMAGE_TRANSFORM_OUTPUT_STRIP_IMAGE_HEAD'\r\n )\r\n };\r\n\r\n transformImage(file, instructions, options)\r\n .then(function(blob) {\r\n // set file object\r\n var out = getFileFromBlob(\r\n blob,\r\n // rename the original filename to match the mime type of the output image\r\n renameFileToMatchMimeType(\r\n file.name,\r\n getValidOutputMimeType(blob.type)\r\n )\r\n );\r\n\r\n resolve(out);\r\n })\r\n .catch(reject);\r\n });\r\n };\r\n\r\n // start creating variants\r\n var variantPromises = variants.map(function(create) {\r\n return create(transform, file, item.getMetadata());\r\n });\r\n\r\n // wait for results\r\n Promise.all(variantPromises).then(function(files) {\r\n // if single file object in array, return the single file object else, return array of\r\n resolve(\r\n files.length === 1 && files[0].name === null\r\n ? // return the File object\r\n files[0].file\r\n : // return an array of files { name:'name', file:File }\r\n files\r\n );\r\n });\r\n });\r\n });\r\n\r\n // Expose plugin options\r\n return {\r\n options: {\r\n allowImageTransform: [true, Type.BOOLEAN],\r\n\r\n // null, 'image/jpeg', 'image/png'\r\n imageTransformOutputMimeType: [null, Type.STRING],\r\n\r\n // null, 0 - 100\r\n imageTransformOutputQuality: [null, Type.INT],\r\n\r\n // set to false to copy image exif data to output\r\n imageTransformOutputStripImageHead: [true, Type.BOOLEAN],\r\n\r\n // only apply transforms in this list\r\n imageTransformClientTransforms: [null, Type.ARRAY],\r\n\r\n // only apply output quality when a transform is required\r\n imageTransformOutputQualityMode: ['always', Type.STRING],\r\n // 'always'\r\n // 'optional'\r\n // 'mismatch' (future feature, only applied if quality differs from input)\r\n\r\n // get image transform variants\r\n imageTransformVariants: [null, Type.OBJECT],\r\n\r\n // should we post the default transformed file\r\n imageTransformVariantsIncludeDefault: [true, Type.BOOLEAN],\r\n\r\n // which name to prefix the default transformed file with\r\n imageTransformVariantsDefaultName: [null, Type.STRING],\r\n\r\n // should we post the original file\r\n imageTransformVariantsIncludeOriginal: [false, Type.BOOLEAN],\r\n\r\n // which name to prefix the original file with\r\n imageTransformVariantsOriginalName: ['original_', Type.STRING]\r\n }\r\n };\r\n };\r\n\r\n // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\r\n var isBrowser =\r\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\r\n if (isBrowser) {\r\n document.dispatchEvent(\r\n new CustomEvent('FilePond:pluginloaded', { detail: plugin })\r\n );\r\n }\r\n\r\n return plugin;\r\n});\n/*!\r\n * FilePondPluginImagePreview 4.2.1\r\n * Licensed under MIT, https://opensource.org/licenses/MIT/\r\n * Please visit https://pqina.nl/filepond/ for details.\r\n */\r\n\r\n/* eslint-disable */\r\n\r\n(function(global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n ? (module.exports = factory())\r\n : typeof define === 'function' && define.amd\r\n ? define(factory)\r\n : ((global = global || self),\r\n (global.FilePondPluginImagePreview = factory()));\r\n})(this, function() {\r\n 'use strict';\r\n\r\n // test if file is of type image and can be viewed in canvas\r\n var isPreviewableImage = function isPreviewableImage(file) {\r\n return /^image/.test(file.type);\r\n };\r\n\r\n var IMAGE_SCALE_SPRING_PROPS = {\r\n type: 'spring',\r\n stiffness: 0.5,\r\n damping: 0.45,\r\n mass: 10\r\n };\r\n\r\n var createVector = function createVector(x, y) {\r\n return { x: x, y: y };\r\n };\r\n\r\n var vectorDot = function vectorDot(a, b) {\r\n return a.x * b.x + a.y * b.y;\r\n };\r\n\r\n var vectorSubtract = function vectorSubtract(a, b) {\r\n return createVector(a.x - b.x, a.y - b.y);\r\n };\r\n\r\n var vectorDistanceSquared = function vectorDistanceSquared(a, b) {\r\n return vectorDot(vectorSubtract(a, b), vectorSubtract(a, b));\r\n };\r\n\r\n var vectorDistance = function vectorDistance(a, b) {\r\n return Math.sqrt(vectorDistanceSquared(a, b));\r\n };\r\n\r\n var getOffsetPointOnEdge = function getOffsetPointOnEdge(length, rotation) {\r\n var a = length;\r\n\r\n var A = 1.5707963267948966;\r\n var B = rotation;\r\n var C = 1.5707963267948966 - rotation;\r\n\r\n var sinA = Math.sin(A);\r\n var sinB = Math.sin(B);\r\n var sinC = Math.sin(C);\r\n var cosC = Math.cos(C);\r\n var ratio = a / sinA;\r\n var b = ratio * sinB;\r\n var c = ratio * sinC;\r\n\r\n return createVector(cosC * b, cosC * c);\r\n };\r\n\r\n var getRotatedRectSize = function getRotatedRectSize(rect, rotation) {\r\n var w = rect.width;\r\n var h = rect.height;\r\n\r\n var hor = getOffsetPointOnEdge(w, rotation);\r\n var ver = getOffsetPointOnEdge(h, rotation);\r\n\r\n var tl = createVector(rect.x + Math.abs(hor.x), rect.y - Math.abs(hor.y));\r\n\r\n var tr = createVector(\r\n rect.x + rect.width + Math.abs(ver.y),\r\n rect.y + Math.abs(ver.x)\r\n );\r\n\r\n var bl = createVector(\r\n rect.x - Math.abs(ver.y),\r\n rect.y + rect.height - Math.abs(ver.x)\r\n );\r\n\r\n return {\r\n width: vectorDistance(tl, tr),\r\n height: vectorDistance(tl, bl)\r\n };\r\n };\r\n\r\n var getImageRectZoomFactor = function getImageRectZoomFactor(\r\n imageRect,\r\n cropRect,\r\n rotation,\r\n center\r\n ) {\r\n // calculate available space round image center position\r\n var cx = center.x > 0.5 ? 1 - center.x : center.x;\r\n var cy = center.y > 0.5 ? 1 - center.y : center.y;\r\n var imageWidth = cx * 2 * imageRect.width;\r\n var imageHeight = cy * 2 * imageRect.height;\r\n\r\n // calculate rotated crop rectangle size\r\n var rotatedCropSize = getRotatedRectSize(cropRect, rotation);\r\n\r\n // calculate scalar required to fit image\r\n return Math.max(\r\n rotatedCropSize.width / imageWidth,\r\n rotatedCropSize.height / imageHeight\r\n );\r\n };\r\n\r\n var getCenteredCropRect = function getCenteredCropRect(\r\n container,\r\n aspectRatio\r\n ) {\r\n var width = container.width;\r\n var height = width * aspectRatio;\r\n if (height > container.height) {\r\n height = container.height;\r\n width = height / aspectRatio;\r\n }\r\n var x = (container.width - width) * 0.5;\r\n var y = (container.height - height) * 0.5;\r\n\r\n return {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n };\r\n };\r\n\r\n // does horizontal and vertical flipping\r\n var createBitmapView = function createBitmapView(_) {\r\n return _.utils.createView({\r\n name: 'image-bitmap',\r\n ignoreRect: true,\r\n mixins: { styles: ['scaleX', 'scaleY'] },\r\n create: function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n root.appendChild(props.image);\r\n }\r\n });\r\n };\r\n\r\n // shifts and rotates image\r\n var createImageCanvasWrapper = function createImageCanvasWrapper(_) {\r\n return _.utils.createView({\r\n name: 'image-canvas-wrapper',\r\n tag: 'div',\r\n ignoreRect: true,\r\n mixins: {\r\n apis: ['crop', 'width', 'height'],\r\n\r\n styles: [\r\n 'originX',\r\n 'originY',\r\n 'translateX',\r\n 'translateY',\r\n 'scaleX',\r\n 'scaleY',\r\n 'rotateZ'\r\n ],\r\n\r\n animations: {\r\n originX: IMAGE_SCALE_SPRING_PROPS,\r\n originY: IMAGE_SCALE_SPRING_PROPS,\r\n scaleX: IMAGE_SCALE_SPRING_PROPS,\r\n scaleY: IMAGE_SCALE_SPRING_PROPS,\r\n translateX: IMAGE_SCALE_SPRING_PROPS,\r\n translateY: IMAGE_SCALE_SPRING_PROPS,\r\n rotateZ: IMAGE_SCALE_SPRING_PROPS\r\n }\r\n },\r\n\r\n create: function create(_ref2) {\r\n var root = _ref2.root,\r\n props = _ref2.props;\r\n props.width = props.image.width;\r\n props.height = props.image.height;\r\n root.ref.bitmap = root.appendChildView(\r\n root.createChildView(createBitmapView(_), { image: props.image })\r\n );\r\n },\r\n write: function write(_ref3) {\r\n var root = _ref3.root,\r\n props = _ref3.props;\r\n var flip = props.crop.flip;\r\n var bitmap = root.ref.bitmap;\r\n bitmap.scaleX = flip.horizontal ? -1 : 1;\r\n bitmap.scaleY = flip.vertical ? -1 : 1;\r\n }\r\n });\r\n };\r\n\r\n // clips canvas to correct aspect ratio\r\n var createClipView = function createClipView(_) {\r\n return _.utils.createView({\r\n name: 'image-clip',\r\n tag: 'div',\r\n ignoreRect: true,\r\n mixins: {\r\n apis: ['crop', 'width', 'height'],\r\n styles: ['width', 'height', 'opacity'],\r\n animations: {\r\n opacity: { type: 'tween', duration: 250 }\r\n }\r\n },\r\n\r\n create: function create(_ref4) {\r\n var root = _ref4.root,\r\n props = _ref4.props;\r\n\r\n root.ref.image = root.appendChildView(\r\n root.createChildView(\r\n createImageCanvasWrapper(_),\r\n Object.assign({}, props)\r\n )\r\n );\r\n\r\n // set up transparency grid\r\n var transparencyIndicator = root.query(\r\n 'GET_IMAGE_PREVIEW_TRANSPARENCY_INDICATOR'\r\n );\r\n if (transparencyIndicator === null) {\r\n return;\r\n }\r\n\r\n // grid pattern\r\n if (transparencyIndicator === 'grid') {\r\n root.element.dataset.transparencyIndicator = transparencyIndicator;\r\n }\r\n // basic color\r\n else {\r\n root.element.dataset.transparencyIndicator = 'color';\r\n }\r\n },\r\n write: function write(_ref5) {\r\n var root = _ref5.root,\r\n props = _ref5.props,\r\n shouldOptimize = _ref5.shouldOptimize;\r\n var crop = props.crop,\r\n width = props.width,\r\n height = props.height;\r\n\r\n root.ref.image.crop = crop;\r\n\r\n var stage = {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height,\r\n center: {\r\n x: width * 0.5,\r\n y: height * 0.5\r\n }\r\n };\r\n\r\n var image = {\r\n width: root.ref.image.width,\r\n height: root.ref.image.height\r\n };\r\n\r\n var origin = {\r\n x: crop.center.x * image.width,\r\n y: crop.center.y * image.height\r\n };\r\n\r\n var translation = {\r\n x: stage.center.x - image.width * crop.center.x,\r\n y: stage.center.y - image.height * crop.center.y\r\n };\r\n\r\n var rotation = Math.PI * 2 + (crop.rotation % (Math.PI * 2));\r\n\r\n var cropAspectRatio = crop.aspectRatio || image.height / image.width;\r\n\r\n var stageZoomFactor = getImageRectZoomFactor(\r\n image,\r\n getCenteredCropRect(stage, cropAspectRatio),\r\n\r\n rotation,\r\n crop.center\r\n );\r\n\r\n var scale = crop.zoom * stageZoomFactor;\r\n\r\n var imageView = root.ref.image;\r\n\r\n // don't update clip layout\r\n if (shouldOptimize) {\r\n imageView.originX = null;\r\n imageView.originY = null;\r\n imageView.translateX = null;\r\n imageView.translateY = null;\r\n imageView.rotateZ = null;\r\n imageView.scaleX = null;\r\n imageView.scaleY = null;\r\n return;\r\n }\r\n\r\n imageView.originX = origin.x;\r\n imageView.originY = origin.y;\r\n imageView.translateX = translation.x;\r\n imageView.translateY = translation.y;\r\n imageView.rotateZ = rotation;\r\n imageView.scaleX = scale;\r\n imageView.scaleY = scale;\r\n }\r\n });\r\n };\r\n\r\n var createImageView = function createImageView(_) {\r\n return _.utils.createView({\r\n name: 'image-preview',\r\n tag: 'div',\r\n ignoreRect: true,\r\n mixins: {\r\n apis: ['crop', 'image'],\r\n\r\n styles: ['translateY', 'scaleX', 'scaleY', 'opacity'],\r\n\r\n animations: {\r\n scaleX: IMAGE_SCALE_SPRING_PROPS,\r\n scaleY: IMAGE_SCALE_SPRING_PROPS,\r\n translateY: IMAGE_SCALE_SPRING_PROPS,\r\n opacity: { type: 'tween', duration: 400 }\r\n }\r\n },\r\n\r\n create: function create(_ref6) {\r\n var root = _ref6.root,\r\n props = _ref6.props;\r\n root.ref.clip = root.appendChildView(\r\n root.createChildView(createClipView(_), {\r\n image: props.image,\r\n crop: props.crop\r\n })\r\n );\r\n },\r\n write: function write(_ref7) {\r\n var root = _ref7.root,\r\n props = _ref7.props,\r\n shouldOptimize = _ref7.shouldOptimize;\r\n var clip = root.ref.clip;\r\n var crop = props.crop,\r\n image = props.image;\r\n\r\n clip.crop = crop;\r\n\r\n // don't update clip layout\r\n clip.opacity = shouldOptimize ? 0 : 1;\r\n\r\n // don't re-render if optimizing or hidden (width will be zero resulting in weird animations)\r\n if (shouldOptimize || root.rect.element.hidden) return;\r\n\r\n // calculate scaled preview image size\r\n var imageAspectRatio = image.height / image.width;\r\n var aspectRatio = crop.aspectRatio || imageAspectRatio;\r\n\r\n // calculate container size\r\n var containerWidth = root.rect.inner.width;\r\n var containerHeight = root.rect.inner.height;\r\n\r\n var fixedPreviewHeight = root.query('GET_IMAGE_PREVIEW_HEIGHT');\r\n var minPreviewHeight = root.query('GET_IMAGE_PREVIEW_MIN_HEIGHT');\r\n var maxPreviewHeight = root.query('GET_IMAGE_PREVIEW_MAX_HEIGHT');\r\n\r\n var panelAspectRatio = root.query('GET_PANEL_ASPECT_RATIO');\r\n var allowMultiple = root.query('GET_ALLOW_MULTIPLE');\r\n\r\n if (panelAspectRatio && !allowMultiple) {\r\n fixedPreviewHeight = containerWidth * panelAspectRatio;\r\n aspectRatio = panelAspectRatio;\r\n }\r\n\r\n // determine clip width and height\r\n var clipHeight =\r\n fixedPreviewHeight !== null\r\n ? fixedPreviewHeight\r\n : Math.max(\r\n minPreviewHeight,\r\n Math.min(containerWidth * aspectRatio, maxPreviewHeight)\r\n );\r\n\r\n var clipWidth = clipHeight / aspectRatio;\r\n if (clipWidth > containerWidth) {\r\n clipWidth = containerWidth;\r\n clipHeight = clipWidth * aspectRatio;\r\n }\r\n\r\n if (clipHeight > containerHeight) {\r\n clipHeight = containerHeight;\r\n clipWidth = containerHeight / aspectRatio;\r\n }\r\n\r\n clip.width = clipWidth;\r\n clip.height = clipHeight;\r\n }\r\n });\r\n };\r\n\r\n var SVG_MASK =\r\n '\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n';\r\n\r\n var checkedMyBases = false;\r\n var SVGMaskUniqueId = 0;\r\n\r\n var createImageOverlayView = function createImageOverlayView(fpAPI) {\r\n return fpAPI.utils.createView({\r\n name: 'image-preview-overlay',\r\n tag: 'div',\r\n ignoreRect: true,\r\n create: function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n\r\n if (!checkedMyBases && document.querySelector('base')) {\r\n SVG_MASK = SVG_MASK.replace(\r\n /url\\(\\#/g,\r\n 'url(' +\r\n window.location.href.replace(window.location.hash, '') +\r\n '#'\r\n );\r\n checkedMyBases = true;\r\n }\r\n\r\n SVGMaskUniqueId++;\r\n root.element.classList.add(\r\n 'filepond--image-preview-overlay-'.concat(props.status)\r\n );\r\n root.element.innerHTML = SVG_MASK.replace(/__UID__/g, SVGMaskUniqueId);\r\n },\r\n mixins: {\r\n styles: ['opacity'],\r\n animations: {\r\n opacity: { type: 'spring', mass: 25 }\r\n }\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Bitmap Worker\r\n */\r\n var BitmapWorker = function BitmapWorker() {\r\n self.onmessage = function(e) {\r\n createImageBitmap(e.data.message.file).then(function(bitmap) {\r\n self.postMessage({ id: e.data.id, message: bitmap }, [bitmap]);\r\n });\r\n };\r\n };\r\n\r\n /**\r\n * ColorMatrix Worker\r\n */\r\n var ColorMatrixWorker = function ColorMatrixWorker() {\r\n self.onmessage = function(e) {\r\n var imageData = e.data.message.imageData;\r\n var matrix = e.data.message.colorMatrix;\r\n\r\n var data = imageData.data;\r\n var l = data.length;\r\n\r\n var m11 = matrix[0];\r\n var m12 = matrix[1];\r\n var m13 = matrix[2];\r\n var m14 = matrix[3];\r\n var m15 = matrix[4];\r\n\r\n var m21 = matrix[5];\r\n var m22 = matrix[6];\r\n var m23 = matrix[7];\r\n var m24 = matrix[8];\r\n var m25 = matrix[9];\r\n\r\n var m31 = matrix[10];\r\n var m32 = matrix[11];\r\n var m33 = matrix[12];\r\n var m34 = matrix[13];\r\n var m35 = matrix[14];\r\n\r\n var m41 = matrix[15];\r\n var m42 = matrix[16];\r\n var m43 = matrix[17];\r\n var m44 = matrix[18];\r\n var m45 = matrix[19];\r\n\r\n var index = 0,\r\n r = 0.0,\r\n g = 0.0,\r\n b = 0.0,\r\n a = 0.0;\r\n\r\n for (; index < l; index += 4) {\r\n r = data[index] / 255;\r\n g = data[index + 1] / 255;\r\n b = data[index + 2] / 255;\r\n a = data[index + 3] / 255;\r\n data[index] = Math.max(\r\n 0,\r\n Math.min((r * m11 + g * m12 + b * m13 + a * m14 + m15) * 255, 255)\r\n );\r\n data[index + 1] = Math.max(\r\n 0,\r\n Math.min((r * m21 + g * m22 + b * m23 + a * m24 + m25) * 255, 255)\r\n );\r\n data[index + 2] = Math.max(\r\n 0,\r\n Math.min((r * m31 + g * m32 + b * m33 + a * m34 + m35) * 255, 255)\r\n );\r\n data[index + 3] = Math.max(\r\n 0,\r\n Math.min((r * m41 + g * m42 + b * m43 + a * m44 + m45) * 255, 255)\r\n );\r\n }\r\n\r\n self.postMessage({ id: e.data.id, message: imageData }, [\r\n imageData.data.buffer\r\n ]);\r\n };\r\n };\r\n\r\n var getImageSize = function getImageSize(url, cb) {\r\n var image = new Image();\r\n image.onload = function() {\r\n var width = image.naturalWidth;\r\n var height = image.naturalHeight;\r\n image = null;\r\n cb(width, height);\r\n };\r\n image.src = url;\r\n };\r\n\r\n var transforms = {\r\n 1: function _() {\r\n return [1, 0, 0, 1, 0, 0];\r\n },\r\n 2: function _(width) {\r\n return [-1, 0, 0, 1, width, 0];\r\n },\r\n 3: function _(width, height) {\r\n return [-1, 0, 0, -1, width, height];\r\n },\r\n 4: function _(width, height) {\r\n return [1, 0, 0, -1, 0, height];\r\n },\r\n 5: function _() {\r\n return [0, 1, 1, 0, 0, 0];\r\n },\r\n 6: function _(width, height) {\r\n return [0, 1, -1, 0, height, 0];\r\n },\r\n 7: function _(width, height) {\r\n return [0, -1, -1, 0, height, width];\r\n },\r\n 8: function _(width) {\r\n return [0, -1, 1, 0, 0, width];\r\n }\r\n };\r\n\r\n var fixImageOrientation = function fixImageOrientation(\r\n ctx,\r\n width,\r\n height,\r\n orientation\r\n ) {\r\n // no orientation supplied\r\n if (orientation === -1) {\r\n return;\r\n }\r\n\r\n ctx.transform.apply(ctx, transforms[orientation](width, height));\r\n };\r\n\r\n // draws the preview image to canvas\r\n var createPreviewImage = function createPreviewImage(\r\n data,\r\n width,\r\n height,\r\n orientation\r\n ) {\r\n // can't draw on half pixels\r\n width = Math.round(width);\r\n height = Math.round(height);\r\n\r\n // draw image\r\n var canvas = document.createElement('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n var ctx = canvas.getContext('2d');\r\n\r\n // if is rotated incorrectly swap width and height\r\n if (orientation >= 5 && orientation <= 8) {\r\n var _ref = [height, width];\r\n width = _ref[0];\r\n height = _ref[1];\r\n }\r\n\r\n // correct image orientation\r\n fixImageOrientation(ctx, width, height, orientation);\r\n\r\n // draw the image\r\n ctx.drawImage(data, 0, 0, width, height);\r\n\r\n return canvas;\r\n };\r\n\r\n var isBitmap = function isBitmap(file) {\r\n return /^image/.test(file.type) && !/svg/.test(file.type);\r\n };\r\n\r\n var MAX_WIDTH = 10;\r\n var MAX_HEIGHT = 10;\r\n\r\n var calculateAverageColor = function calculateAverageColor(image) {\r\n var scalar = Math.min(MAX_WIDTH / image.width, MAX_HEIGHT / image.height);\r\n\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n var width = (canvas.width = Math.ceil(image.width * scalar));\r\n var height = (canvas.height = Math.ceil(image.height * scalar));\r\n ctx.drawImage(image, 0, 0, width, height);\r\n var data = null;\r\n try {\r\n data = ctx.getImageData(0, 0, width, height).data;\r\n } catch (e) {\r\n return null;\r\n }\r\n var l = data.length;\r\n\r\n var r = 0;\r\n var g = 0;\r\n var b = 0;\r\n var i = 0;\r\n\r\n for (; i < l; i += 4) {\r\n r += data[i] * data[i];\r\n g += data[i + 1] * data[i + 1];\r\n b += data[i + 2] * data[i + 2];\r\n }\r\n\r\n r = averageColor(r, l);\r\n g = averageColor(g, l);\r\n b = averageColor(b, l);\r\n\r\n return { r: r, g: g, b: b };\r\n };\r\n\r\n var averageColor = function averageColor(c, l) {\r\n return Math.floor(Math.sqrt(c / (l / 4)));\r\n };\r\n\r\n var cloneCanvas = function cloneCanvas(origin, target) {\r\n target = target || document.createElement('canvas');\r\n target.width = origin.width;\r\n target.height = origin.height;\r\n var ctx = target.getContext('2d');\r\n ctx.drawImage(origin, 0, 0);\r\n return target;\r\n };\r\n\r\n var cloneImageData = function cloneImageData(imageData) {\r\n var id;\r\n try {\r\n id = new ImageData(imageData.width, imageData.height);\r\n } catch (e) {\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n id = ctx.createImageData(imageData.width, imageData.height);\r\n }\r\n id.data.set(new Uint8ClampedArray(imageData.data));\r\n return id;\r\n };\r\n\r\n var loadImage = function loadImage(url) {\r\n return new Promise(function(resolve, reject) {\r\n var img = new Image();\r\n img.crossOrigin = 'Anonymous';\r\n img.onload = function() {\r\n resolve(img);\r\n };\r\n img.onerror = function(e) {\r\n reject(e);\r\n };\r\n img.src = url;\r\n });\r\n };\r\n\r\n var createImageWrapperView = function createImageWrapperView(_) {\r\n // create overlay view\r\n var OverlayView = createImageOverlayView(_);\r\n\r\n var ImageView = createImageView(_);\r\n var createWorker = _.utils.createWorker;\r\n\r\n var applyFilter = function applyFilter(root, filter, target) {\r\n return new Promise(function(resolve) {\r\n // will store image data for future filter updates\r\n if (!root.ref.imageData) {\r\n root.ref.imageData = target\r\n .getContext('2d')\r\n .getImageData(0, 0, target.width, target.height);\r\n }\r\n\r\n // get image data reference\r\n var imageData = cloneImageData(root.ref.imageData);\r\n\r\n if (!filter || filter.length !== 20) {\r\n target.getContext('2d').putImageData(imageData, 0, 0);\r\n return resolve();\r\n }\r\n\r\n var worker = createWorker(ColorMatrixWorker);\r\n worker.post(\r\n {\r\n imageData: imageData,\r\n colorMatrix: filter\r\n },\r\n\r\n function(response) {\r\n // apply filtered colors\r\n target.getContext('2d').putImageData(response, 0, 0);\r\n\r\n // stop worker\r\n worker.terminate();\r\n\r\n // done!\r\n resolve();\r\n },\r\n [imageData.data.buffer]\r\n );\r\n });\r\n };\r\n\r\n var removeImageView = function removeImageView(root, imageView) {\r\n root.removeChildView(imageView);\r\n imageView.image.width = 1;\r\n imageView.image.height = 1;\r\n imageView._destroy();\r\n };\r\n\r\n // remove an image\r\n var shiftImage = function shiftImage(_ref) {\r\n var root = _ref.root;\r\n var imageView = root.ref.images.shift();\r\n imageView.opacity = 0;\r\n imageView.translateY = -15;\r\n root.ref.imageViewBin.push(imageView);\r\n return imageView;\r\n };\r\n\r\n // add new image\r\n var pushImage = function pushImage(_ref2) {\r\n var root = _ref2.root,\r\n props = _ref2.props,\r\n image = _ref2.image;\r\n\r\n var id = props.id;\r\n var item = root.query('GET_ITEM', { id: id });\r\n if (!item) return;\r\n\r\n var crop = item.getMetadata('crop') || {\r\n center: {\r\n x: 0.5,\r\n y: 0.5\r\n },\r\n\r\n flip: {\r\n horizontal: false,\r\n vertical: false\r\n },\r\n\r\n zoom: 1,\r\n rotation: 0,\r\n aspectRatio: null\r\n };\r\n\r\n // append image presenter\r\n var imageView = root.appendChildView(\r\n root.createChildView(ImageView, {\r\n image: image,\r\n crop: crop,\r\n opacity: 0,\r\n scaleX: 1.15,\r\n scaleY: 1.15,\r\n translateY: 15\r\n }),\r\n\r\n root.childViews.length\r\n );\r\n\r\n root.ref.images.push(imageView);\r\n\r\n // reveal the preview image\r\n imageView.opacity = 1;\r\n imageView.scaleX = 1;\r\n imageView.scaleY = 1;\r\n imageView.translateY = 0;\r\n\r\n // the preview is now ready to be drawn\r\n setTimeout(function() {\r\n root.dispatch('DID_IMAGE_PREVIEW_SHOW', { id: id });\r\n }, 250);\r\n };\r\n\r\n var updateImage = function updateImage(_ref3) {\r\n var root = _ref3.root,\r\n props = _ref3.props;\r\n var item = root.query('GET_ITEM', { id: props.id });\r\n if (!item) return;\r\n var imageView = root.ref.images[root.ref.images.length - 1];\r\n imageView.crop = item.getMetadata('crop');\r\n };\r\n\r\n // replace image preview\r\n var didUpdateItemMetadata = function didUpdateItemMetadata(_ref4) {\r\n var root = _ref4.root,\r\n props = _ref4.props,\r\n action = _ref4.action;\r\n\r\n // only filter and crop trigger redraw\r\n if (!/crop|filter/.test(action.change.key)) return;\r\n\r\n // no images to update, exit\r\n if (!root.ref.images.length) return;\r\n\r\n // no item found, exit\r\n var item = root.query('GET_ITEM', { id: props.id });\r\n if (!item) return;\r\n\r\n // for now, update existing image when filtering\r\n if (/filter/.test(action.change.key)) {\r\n var imageView = root.ref.images[root.ref.images.length - 1];\r\n applyFilter(root, action.change.value, imageView.image);\r\n return;\r\n }\r\n\r\n if (/crop/.test(action.change.key)) {\r\n var crop = item.getMetadata('crop');\r\n var image = root.ref.images[root.ref.images.length - 1];\r\n\r\n // if aspect ratio has changed, we need to create a new image\r\n if (Math.abs(crop.aspectRatio - image.crop.aspectRatio) > 0.00001) {\r\n var _imageView = shiftImage({ root: root });\r\n pushImage({\r\n root: root,\r\n props: props,\r\n image: cloneCanvas(_imageView.image)\r\n });\r\n }\r\n // if not, we can update the current image\r\n else {\r\n updateImage({ root: root, props: props });\r\n }\r\n }\r\n };\r\n\r\n var canCreateImageBitmap = function canCreateImageBitmap(file) {\r\n return 'createImageBitmap' in window && isBitmap(file);\r\n };\r\n\r\n /**\r\n * Write handler for when preview container has been created\r\n */\r\n var didCreatePreviewContainer = function didCreatePreviewContainer(_ref5) {\r\n var root = _ref5.root,\r\n props = _ref5.props;\r\n var id = props.id;\r\n\r\n // we need to get the file data to determine the eventual image size\r\n var item = root.query('GET_ITEM', id);\r\n if (!item) return;\r\n\r\n // get url to file (we'll revoke it later on when done)\r\n var fileURL = URL.createObjectURL(item.file);\r\n\r\n // determine image size of this item\r\n getImageSize(fileURL, function(width, height) {\r\n // we can now scale the panel to the final size\r\n root.dispatch('DID_IMAGE_PREVIEW_CALCULATE_SIZE', {\r\n id: id,\r\n width: width,\r\n height: height\r\n });\r\n });\r\n };\r\n\r\n var drawPreview = function drawPreview(_ref6) {\r\n var root = _ref6.root,\r\n props = _ref6.props;\r\n var id = props.id;\r\n\r\n // we need to get the file data to determine the eventual image size\r\n var item = root.query('GET_ITEM', id);\r\n if (!item) return;\r\n\r\n // get url to file (we'll revoke it later on when done)\r\n var fileURL = URL.createObjectURL(item.file);\r\n\r\n // fallback\r\n var loadPreviewFallback = function loadPreviewFallback() {\r\n // let's scale the image in the main thread :(\r\n loadImage(fileURL).then(previewImageLoaded);\r\n };\r\n\r\n // image is now ready\r\n var previewImageLoaded = function previewImageLoaded(imageData) {\r\n // the file url is no longer needed\r\n URL.revokeObjectURL(fileURL);\r\n\r\n // draw the scaled down version here and use that as source so bitmapdata can be closed\r\n // orientation info\r\n var exif = item.getMetadata('exif') || {};\r\n var orientation = exif.orientation || -1;\r\n\r\n // get width and height from action, and swap if orientation is incorrect\r\n var width = imageData.width,\r\n height = imageData.height;\r\n if (orientation >= 5 && orientation <= 8) {\r\n var _ref7 = [height, width];\r\n width = _ref7[0];\r\n height = _ref7[1];\r\n }\r\n\r\n // scale canvas based on pixel density\r\n // we multiply by .75 as that creates smaller but still clear images on screens with high res displays\r\n var pixelDensityFactor = Math.max(1, window.devicePixelRatio * 0.75);\r\n\r\n // we want as much pixels to work with as possible,\r\n // this multiplies the minimum image resolution,\r\n // so when zooming in it doesn't get too blurry\r\n var zoomFactor = root.query('GET_IMAGE_PREVIEW_ZOOM_FACTOR');\r\n\r\n // imaeg scale factor\r\n var scaleFactor = zoomFactor * pixelDensityFactor;\r\n\r\n // calculate scaled preview image size\r\n var previewImageRatio = height / width;\r\n\r\n // calculate image preview height and width\r\n var previewContainerWidth = root.rect.element.width;\r\n var previewContainerHeight = root.rect.element.height;\r\n\r\n var imageWidth = previewContainerWidth;\r\n var imageHeight = imageWidth * previewImageRatio;\r\n\r\n if (previewImageRatio > 1) {\r\n imageWidth = Math.min(width, previewContainerWidth * scaleFactor);\r\n imageHeight = imageWidth * previewImageRatio;\r\n } else {\r\n imageHeight = Math.min(height, previewContainerHeight * scaleFactor);\r\n imageWidth = imageHeight / previewImageRatio;\r\n }\r\n\r\n // transfer to image tag so no canvas memory wasted on iOS\r\n var previewImage = createPreviewImage(\r\n imageData,\r\n imageWidth,\r\n imageHeight,\r\n orientation\r\n );\r\n\r\n // done\r\n var done = function done() {\r\n // calculate average image color, disabled for now\r\n var averageColor = root.query(\r\n 'GET_IMAGE_PREVIEW_CALCULATE_AVERAGE_IMAGE_COLOR'\r\n )\r\n ? calculateAverageColor(data)\r\n : null;\r\n item.setMetadata('color', averageColor, true);\r\n\r\n // data has been transferred to canvas ( if was ImageBitmap )\r\n if ('close' in imageData) {\r\n imageData.close();\r\n }\r\n\r\n // show the overlay\r\n root.ref.overlayShadow.opacity = 1;\r\n\r\n // create the first image\r\n pushImage({ root: root, props: props, image: previewImage });\r\n };\r\n\r\n // apply filter\r\n var filter = item.getMetadata('filter');\r\n if (filter) {\r\n applyFilter(root, filter, previewImage).then(done);\r\n } else {\r\n done();\r\n }\r\n };\r\n\r\n // if we support scaling using createImageBitmap we use a worker\r\n if (canCreateImageBitmap(item.file)) {\r\n // let's scale the image in a worker\r\n var worker = createWorker(BitmapWorker);\r\n\r\n worker.post(\r\n {\r\n file: item.file\r\n },\r\n\r\n function(imageBitmap) {\r\n // destroy worker\r\n worker.terminate();\r\n\r\n // no bitmap returned, must be something wrong,\r\n // try the oldschool way\r\n if (!imageBitmap) {\r\n loadPreviewFallback();\r\n return;\r\n }\r\n\r\n // yay we got our bitmap, let's continue showing the preview\r\n previewImageLoaded(imageBitmap);\r\n }\r\n );\r\n } else {\r\n // create fallback preview\r\n loadPreviewFallback();\r\n }\r\n };\r\n\r\n /**\r\n * Write handler for when the preview image is ready to be animated\r\n */\r\n var didDrawPreview = function didDrawPreview(_ref8) {\r\n var root = _ref8.root;\r\n // get last added image\r\n var image = root.ref.images[root.ref.images.length - 1];\r\n image.translateY = 0;\r\n image.scaleX = 1.0;\r\n image.scaleY = 1.0;\r\n image.opacity = 1;\r\n };\r\n\r\n /**\r\n * Write handler for when the preview has been loaded\r\n */\r\n var restoreOverlay = function restoreOverlay(_ref9) {\r\n var root = _ref9.root;\r\n root.ref.overlayShadow.opacity = 1;\r\n root.ref.overlayError.opacity = 0;\r\n root.ref.overlaySuccess.opacity = 0;\r\n };\r\n\r\n var didThrowError = function didThrowError(_ref10) {\r\n var root = _ref10.root;\r\n root.ref.overlayShadow.opacity = 0.25;\r\n root.ref.overlayError.opacity = 1;\r\n };\r\n\r\n var didCompleteProcessing = function didCompleteProcessing(_ref11) {\r\n var root = _ref11.root;\r\n root.ref.overlayShadow.opacity = 0.25;\r\n root.ref.overlaySuccess.opacity = 1;\r\n };\r\n\r\n /**\r\n * Constructor\r\n */\r\n var create = function create(_ref12) {\r\n var root = _ref12.root;\r\n\r\n // image view\r\n root.ref.images = [];\r\n\r\n // the preview image data (we need this to filter the image)\r\n root.ref.imageData = null;\r\n\r\n // image bin\r\n root.ref.imageViewBin = [];\r\n\r\n // image overlays\r\n root.ref.overlayShadow = root.appendChildView(\r\n root.createChildView(OverlayView, {\r\n opacity: 0,\r\n status: 'idle'\r\n })\r\n );\r\n\r\n root.ref.overlaySuccess = root.appendChildView(\r\n root.createChildView(OverlayView, {\r\n opacity: 0,\r\n status: 'success'\r\n })\r\n );\r\n\r\n root.ref.overlayError = root.appendChildView(\r\n root.createChildView(OverlayView, {\r\n opacity: 0,\r\n status: 'failure'\r\n })\r\n );\r\n };\r\n\r\n return _.utils.createView({\r\n name: 'image-preview-wrapper',\r\n create: create,\r\n styles: ['height'],\r\n\r\n apis: ['height'],\r\n\r\n destroy: function destroy(_ref13) {\r\n var root = _ref13.root;\r\n // we resize the image so memory on iOS 12 is released more quickly (it seems)\r\n root.ref.images.forEach(function(imageView) {\r\n imageView.image.width = 1;\r\n imageView.image.height = 1;\r\n });\r\n },\r\n write: _.utils.createRoute(\r\n {\r\n // image preview stated\r\n DID_IMAGE_PREVIEW_DRAW: didDrawPreview,\r\n DID_IMAGE_PREVIEW_CONTAINER_CREATE: didCreatePreviewContainer,\r\n DID_FINISH_CALCULATE_PREVIEWSIZE: drawPreview,\r\n DID_UPDATE_ITEM_METADATA: didUpdateItemMetadata,\r\n\r\n // file states\r\n DID_THROW_ITEM_LOAD_ERROR: didThrowError,\r\n DID_THROW_ITEM_PROCESSING_ERROR: didThrowError,\r\n DID_THROW_ITEM_INVALID: didThrowError,\r\n DID_COMPLETE_ITEM_PROCESSING: didCompleteProcessing,\r\n DID_START_ITEM_PROCESSING: restoreOverlay,\r\n DID_REVERT_ITEM_PROCESSING: restoreOverlay\r\n },\r\n function(_ref14) {\r\n var root = _ref14.root;\r\n\r\n // views on death row\r\n var viewsToRemove = root.ref.imageViewBin.filter(function(imageView) {\r\n return imageView.opacity === 0;\r\n });\r\n\r\n // views to retain\r\n root.ref.imageViewBin = root.ref.imageViewBin.filter(function(\r\n imageView\r\n ) {\r\n return imageView.opacity > 0;\r\n });\r\n\r\n // remove these views\r\n viewsToRemove.forEach(function(imageView) {\r\n return removeImageView(root, imageView);\r\n });\r\n viewsToRemove.length = 0;\r\n }\r\n )\r\n });\r\n };\r\n\r\n /**\r\n * Image Preview Plugin\r\n */\r\n\r\n var plugin = function plugin(fpAPI) {\r\n var addFilter = fpAPI.addFilter,\r\n utils = fpAPI.utils;\r\n var Type = utils.Type,\r\n createRoute = utils.createRoute,\r\n isFile = utils.isFile;\r\n\r\n // imagePreviewView\r\n var imagePreviewView = createImageWrapperView(fpAPI);\r\n\r\n // called for each view that is created right after the 'create' method\r\n addFilter('CREATE_VIEW', function(viewAPI) {\r\n // get reference to created view\r\n var is = viewAPI.is,\r\n view = viewAPI.view,\r\n query = viewAPI.query;\r\n\r\n // only hook up to item view and only if is enabled for this cropper\r\n if (!is('file') || !query('GET_ALLOW_IMAGE_PREVIEW')) {\r\n return;\r\n }\r\n\r\n // create the image preview plugin, but only do so if the item is an image\r\n var didLoadItem = function didLoadItem(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n var id = props.id;\r\n var item = query('GET_ITEM', id);\r\n\r\n // item could theoretically have been removed in the mean time\r\n if (!item || !isFile(item.file) || item.archived) return;\r\n\r\n // get the file object\r\n var file = item.file;\r\n\r\n // exit if this is not an image\r\n if (!isPreviewableImage(file)) return;\r\n\r\n // exit if image size is too high and no createImageBitmap support\r\n // this would simply bring the browser to its knees and that is not what we want\r\n var supportsCreateImageBitmap = 'createImageBitmap' in (window || {});\r\n var maxPreviewFileSize = query('GET_IMAGE_PREVIEW_MAX_FILE_SIZE');\r\n if (\r\n !supportsCreateImageBitmap &&\r\n maxPreviewFileSize &&\r\n file.size > maxPreviewFileSize\r\n )\r\n return;\r\n\r\n // set preview view\r\n root.ref.imagePreview = view.appendChildView(\r\n view.createChildView(imagePreviewView, { id: id })\r\n );\r\n\r\n // update height if is fixed\r\n var fixedPreviewHeight = root.query('GET_IMAGE_PREVIEW_HEIGHT');\r\n if (fixedPreviewHeight) {\r\n root.dispatch('DID_UPDATE_PANEL_HEIGHT', {\r\n id: item.id,\r\n height: fixedPreviewHeight\r\n });\r\n }\r\n\r\n // now ready\r\n var queue =\r\n !supportsCreateImageBitmap &&\r\n file.size > query('GET_IMAGE_PREVIEW_MAX_INSTANT_PREVIEW_FILE_SIZE');\r\n root.dispatch('DID_IMAGE_PREVIEW_CONTAINER_CREATE', { id: id }, queue);\r\n };\r\n\r\n var rescaleItem = function rescaleItem(root, props) {\r\n if (!root.ref.imagePreview) return;\r\n var id = props.id;\r\n\r\n // get item\r\n var item = root.query('GET_ITEM', { id: id });\r\n if (!item) return;\r\n\r\n // if is fixed height or panel has aspect ratio, exit here, height has already been defined\r\n var panelAspectRatio = root.query('GET_PANEL_ASPECT_RATIO');\r\n var itemPanelAspectRatio = root.query('GET_ITEM_PANEL_ASPECT_RATIO');\r\n var fixedHeight = root.query('GET_IMAGE_PREVIEW_HEIGHT');\r\n if (panelAspectRatio || itemPanelAspectRatio || fixedHeight) return;\r\n\r\n // no data!\r\n var _root$ref = root.ref,\r\n imageWidth = _root$ref.imageWidth,\r\n imageHeight = _root$ref.imageHeight;\r\n if (!imageWidth || !imageHeight) return;\r\n\r\n // get height min and max\r\n var minPreviewHeight = root.query('GET_IMAGE_PREVIEW_MIN_HEIGHT');\r\n var maxPreviewHeight = root.query('GET_IMAGE_PREVIEW_MAX_HEIGHT');\r\n\r\n // orientation info\r\n var exif = item.getMetadata('exif') || {};\r\n var orientation = exif.orientation || -1;\r\n\r\n // get width and height from action, and swap of orientation is incorrect\r\n if (orientation >= 5 && orientation <= 8) {\r\n var _ref2 = [imageHeight, imageWidth];\r\n imageWidth = _ref2[0];\r\n imageHeight = _ref2[1];\r\n }\r\n\r\n // scale up width and height when we're dealing with an SVG\r\n if (!isBitmap(item.file) || root.query('GET_IMAGE_PREVIEW_UPSCALE')) {\r\n var scalar = 2048 / imageWidth;\r\n imageWidth *= scalar;\r\n imageHeight *= scalar;\r\n }\r\n\r\n // image aspect ratio\r\n var imageAspectRatio = imageHeight / imageWidth;\r\n\r\n // we need the item to get to the crop size\r\n var previewAspectRatio =\r\n (item.getMetadata('crop') || {}).aspectRatio || imageAspectRatio;\r\n\r\n // preview height range\r\n var previewHeightMax = Math.max(\r\n minPreviewHeight,\r\n Math.min(imageHeight, maxPreviewHeight)\r\n );\r\n var itemWidth = root.rect.element.width;\r\n var previewHeight = Math.min(\r\n itemWidth * previewAspectRatio,\r\n previewHeightMax\r\n );\r\n\r\n // request update to panel height\r\n root.dispatch('DID_UPDATE_PANEL_HEIGHT', {\r\n id: item.id,\r\n height: previewHeight\r\n });\r\n };\r\n\r\n var didResizeView = function didResizeView(_ref3) {\r\n var root = _ref3.root;\r\n // actions in next write operation\r\n root.ref.shouldRescale = true;\r\n };\r\n\r\n var didUpdateItemMetadata = function didUpdateItemMetadata(_ref4) {\r\n var root = _ref4.root,\r\n action = _ref4.action;\r\n\r\n if (action.change.key !== 'crop') return;\r\n\r\n // actions in next write operation\r\n root.ref.shouldRescale = true;\r\n };\r\n\r\n var didCalculatePreviewSize = function didCalculatePreviewSize(_ref5) {\r\n var root = _ref5.root,\r\n action = _ref5.action;\r\n\r\n // remember dimensions\r\n root.ref.imageWidth = action.width;\r\n root.ref.imageHeight = action.height;\r\n\r\n // actions in next write operation\r\n root.ref.shouldRescale = true;\r\n root.ref.shouldDrawPreview = true;\r\n\r\n // as image load could take a while and fire when draw loop is resting we need to give it a kick\r\n root.dispatch('KICK');\r\n };\r\n\r\n // start writing\r\n view.registerWriter(\r\n createRoute(\r\n {\r\n DID_RESIZE_ROOT: didResizeView,\r\n DID_STOP_RESIZE: didResizeView,\r\n DID_LOAD_ITEM: didLoadItem,\r\n DID_IMAGE_PREVIEW_CALCULATE_SIZE: didCalculatePreviewSize,\r\n DID_UPDATE_ITEM_METADATA: didUpdateItemMetadata\r\n },\r\n function(_ref6) {\r\n var root = _ref6.root,\r\n props = _ref6.props;\r\n\r\n // don't do anything while hidden\r\n if (root.rect.element.hidden) return;\r\n\r\n // resize the item panel\r\n if (root.ref.shouldRescale) {\r\n rescaleItem(root, props);\r\n root.ref.shouldRescale = false;\r\n }\r\n\r\n if (root.ref.shouldDrawPreview) {\r\n // queue till next frame so we're sure the height has been applied this forces the draw image call inside the wrapper view to use the correct height\r\n requestAnimationFrame(function() {\r\n root.dispatch('DID_FINISH_CALCULATE_PREVIEWSIZE', {\r\n id: props.id\r\n });\r\n });\r\n root.ref.shouldDrawPreview = false;\r\n }\r\n }\r\n )\r\n );\r\n });\r\n\r\n // expose plugin\r\n return {\r\n options: {\r\n // Enable or disable image preview\r\n allowImagePreview: [true, Type.BOOLEAN],\r\n\r\n // Fixed preview height\r\n imagePreviewHeight: [null, Type.INT],\r\n\r\n // Min image height\r\n imagePreviewMinHeight: [44, Type.INT],\r\n\r\n // Max image height\r\n imagePreviewMaxHeight: [256, Type.INT],\r\n\r\n // Max size of preview file for when createImageBitmap is not supported\r\n imagePreviewMaxFileSize: [null, Type.INT],\r\n\r\n // The amount of extra pixels added to the image preview to allow comfortable zooming\r\n imagePreviewZoomFactor: [2, Type.INT],\r\n\r\n // Should we upscale small images to fit the max bounding box of the preview area\r\n imagePreviewUpscale: [false, Type.BOOLEAN],\r\n\r\n // Max size of preview file that we allow to try to instant preview if createImageBitmap is not supported, else image is queued for loading\r\n imagePreviewMaxInstantPreviewFileSize: [1000000, Type.INT],\r\n\r\n // Style of the transparancy indicator used behind images\r\n imagePreviewTransparencyIndicator: [null, Type.STRING],\r\n\r\n // Enables or disables reading average image color\r\n imagePreviewCalculateAverageImageColor: [false, Type.BOOLEAN]\r\n }\r\n };\r\n };\r\n\r\n // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\r\n var isBrowser =\r\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\r\n if (isBrowser) {\r\n document.dispatchEvent(\r\n new CustomEvent('FilePond:pluginloaded', { detail: plugin })\r\n );\r\n }\r\n\r\n return plugin;\r\n});\n/*!\r\n * FilePondPluginFileValidateSize 2.2.0\r\n * Licensed under MIT, https://opensource.org/licenses/MIT/\r\n * Please visit https://pqina.nl/filepond/ for details.\r\n */\r\n\r\n/* eslint-disable */\r\n\r\n(function(global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n ? (module.exports = factory())\r\n : typeof define === 'function' && define.amd\r\n ? define(factory)\r\n : ((global = global || self),\r\n (global.FilePondPluginFileValidateSize = factory()));\r\n})(this, function() {\r\n 'use strict';\r\n\r\n var plugin = function plugin(_ref) {\r\n var addFilter = _ref.addFilter,\r\n utils = _ref.utils;\r\n // get quick reference to Type utils\r\n var Type = utils.Type,\r\n replaceInString = utils.replaceInString,\r\n toNaturalFileSize = utils.toNaturalFileSize;\r\n\r\n // filtering if an item is allowed in hopper\r\n addFilter('ALLOW_HOPPER_ITEM', function(file, _ref2) {\r\n var query = _ref2.query;\r\n if (!query('GET_ALLOW_FILE_SIZE_VALIDATION')) {\r\n return true;\r\n }\r\n\r\n var sizeMax = query('GET_MAX_FILE_SIZE');\r\n if (sizeMax !== null && file.size >= sizeMax) {\r\n return false;\r\n }\r\n\r\n var sizeMin = query('GET_MIN_FILE_SIZE');\r\n if (sizeMin !== null && file.size <= sizeMin) {\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n // called for each file that is loaded\r\n // right before it is set to the item state\r\n // should return a promise\r\n addFilter('LOAD_FILE', function(file, _ref3) {\r\n var query = _ref3.query;\r\n return new Promise(function(resolve, reject) {\r\n // if not allowed, all fine, exit\r\n if (!query('GET_ALLOW_FILE_SIZE_VALIDATION')) {\r\n return resolve(file);\r\n }\r\n\r\n // check if file should be filtered\r\n var fileFilter = query('GET_FILE_VALIDATE_SIZE_FILTER');\r\n if (fileFilter && !fileFilter(file)) {\r\n return resolve(file);\r\n }\r\n\r\n // reject or resolve based on file size\r\n var sizeMax = query('GET_MAX_FILE_SIZE');\r\n if (sizeMax !== null && file.size >= sizeMax) {\r\n reject({\r\n status: {\r\n main: query('GET_LABEL_MAX_FILE_SIZE_EXCEEDED'),\r\n sub: replaceInString(query('GET_LABEL_MAX_FILE_SIZE'), {\r\n filesize: toNaturalFileSize(sizeMax)\r\n })\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n // reject or resolve based on file size\r\n var sizeMin = query('GET_MIN_FILE_SIZE');\r\n if (sizeMin !== null && file.size <= sizeMin) {\r\n reject({\r\n status: {\r\n main: query('GET_LABEL_MIN_FILE_SIZE_EXCEEDED'),\r\n sub: replaceInString(query('GET_LABEL_MIN_FILE_SIZE'), {\r\n filesize: toNaturalFileSize(sizeMin)\r\n })\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n // returns the current option value\r\n var totalSizeMax = query('GET_MAX_TOTAL_FILE_SIZE');\r\n if (totalSizeMax !== null) {\r\n // get the current total file size\r\n var currentTotalSize = query('GET_ACTIVE_ITEMS').reduce(function(\r\n total,\r\n item\r\n ) {\r\n return total + item.fileSize;\r\n },\r\n 0);\r\n\r\n // get the size of the new file\r\n if (currentTotalSize > totalSizeMax) {\r\n reject({\r\n status: {\r\n main: query('GET_LABEL_MAX_TOTAL_FILE_SIZE_EXCEEDED'),\r\n\r\n sub: replaceInString(query('GET_LABEL_MAX_TOTAL_FILE_SIZE'), {\r\n filesize: toNaturalFileSize(totalSizeMax)\r\n })\r\n }\r\n });\r\n\r\n return;\r\n }\r\n }\r\n\r\n // file is fine, let's pass it back\r\n resolve(file);\r\n });\r\n });\r\n\r\n return {\r\n options: {\r\n // Enable or disable file type validation\r\n allowFileSizeValidation: [true, Type.BOOLEAN],\r\n\r\n // Max individual file size in bytes\r\n maxFileSize: [null, Type.INT],\r\n\r\n // Min individual file size in bytes\r\n minFileSize: [null, Type.INT],\r\n\r\n // Max total file size in bytes\r\n maxTotalFileSize: [null, Type.INT],\r\n\r\n // Filter the files that need to be validated for size\r\n fileValidateSizeFilter: [null, Type.FUNCTION],\r\n\r\n // error labels\r\n labelMinFileSizeExceeded: ['File is too small', Type.STRING],\r\n labelMinFileSize: ['Minimum file size is {filesize}', Type.STRING],\r\n\r\n labelMaxFileSizeExceeded: ['File is too large', Type.STRING],\r\n labelMaxFileSize: ['Maximum file size is {filesize}', Type.STRING],\r\n\r\n labelMaxTotalFileSizeExceeded: [\r\n 'Maximum total size exceeded',\r\n Type.STRING\r\n ],\r\n\r\n labelMaxTotalFileSize: [\r\n 'Maximum total file size is {filesize}',\r\n Type.STRING\r\n ]\r\n }\r\n };\r\n };\r\n\r\n // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\r\n var isBrowser =\r\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\r\n if (isBrowser) {\r\n document.dispatchEvent(\r\n new CustomEvent('FilePond:pluginloaded', { detail: plugin })\r\n );\r\n }\r\n\r\n return plugin;\r\n});\n/*!\r\n * FilePondPluginFileValidateType 1.2.4\r\n * Licensed under MIT, https://opensource.org/licenses/MIT/\r\n * Please visit https://pqina.nl/filepond/ for details.\r\n */\r\n\r\n/* eslint-disable */\r\n\r\n(function(global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n ? (module.exports = factory())\r\n : typeof define === 'function' && define.amd\r\n ? define(factory)\r\n : ((global = global || self),\r\n (global.FilePondPluginFileValidateType = factory()));\r\n})(this, function() {\r\n 'use strict';\r\n\r\n var plugin = function plugin(_ref) {\r\n var addFilter = _ref.addFilter,\r\n utils = _ref.utils;\r\n // get quick reference to Type utils\r\n var Type = utils.Type,\r\n isString = utils.isString,\r\n replaceInString = utils.replaceInString,\r\n guesstimateMimeType = utils.guesstimateMimeType,\r\n getExtensionFromFilename = utils.getExtensionFromFilename,\r\n getFilenameFromURL = utils.getFilenameFromURL;\r\n\r\n var mimeTypeMatchesWildCard = function mimeTypeMatchesWildCard(\r\n mimeType,\r\n wildcard\r\n ) {\r\n var mimeTypeGroup = (/^[^/]+/.exec(mimeType) || []).pop(); // image/png -> image\r\n var wildcardGroup = wildcard.slice(0, -2); // image/* -> image\r\n return mimeTypeGroup === wildcardGroup;\r\n };\r\n\r\n var isValidMimeType = function isValidMimeType(\r\n acceptedTypes,\r\n userInputType\r\n ) {\r\n return acceptedTypes.some(function(acceptedType) {\r\n // accepted is wildcard mime type\r\n if (/\\*$/.test(acceptedType)) {\r\n return mimeTypeMatchesWildCard(userInputType, acceptedType);\r\n }\r\n\r\n // is normal mime type\r\n return acceptedType === userInputType;\r\n });\r\n };\r\n\r\n var getItemType = function getItemType(item) {\r\n // if the item is a url we guess the mime type by the extension\r\n var type = '';\r\n if (isString(item)) {\r\n var filename = getFilenameFromURL(item);\r\n var extension = getExtensionFromFilename(filename);\r\n if (extension) {\r\n type = guesstimateMimeType(extension);\r\n }\r\n } else {\r\n type = item.type;\r\n }\r\n\r\n return type;\r\n };\r\n\r\n var validateFile = function validateFile(\r\n item,\r\n acceptedFileTypes,\r\n typeDetector\r\n ) {\r\n // no types defined, everything is allowed \\o/\r\n if (acceptedFileTypes.length === 0) {\r\n return true;\r\n }\r\n\r\n // gets the item type\r\n var type = getItemType(item);\r\n\r\n // no type detector, test now\r\n if (!typeDetector) {\r\n return isValidMimeType(acceptedFileTypes, type);\r\n }\r\n\r\n // use type detector\r\n return new Promise(function(resolve, reject) {\r\n typeDetector(item, type)\r\n .then(function(detectedType) {\r\n if (isValidMimeType(acceptedFileTypes, detectedType)) {\r\n resolve();\r\n } else {\r\n reject();\r\n }\r\n })\r\n .catch(reject);\r\n });\r\n };\r\n\r\n var applyMimeTypeMap = function applyMimeTypeMap(map) {\r\n return function(acceptedFileType) {\r\n return map[acceptedFileType] === null\r\n ? false\r\n : map[acceptedFileType] || acceptedFileType;\r\n };\r\n };\r\n\r\n // setup attribute mapping for accept\r\n addFilter('SET_ATTRIBUTE_TO_OPTION_MAP', function(map) {\r\n return Object.assign(map, {\r\n accept: 'acceptedFileTypes'\r\n });\r\n });\r\n\r\n // filtering if an item is allowed in hopper\r\n addFilter('ALLOW_HOPPER_ITEM', function(file, _ref2) {\r\n var query = _ref2.query;\r\n // if we are not doing file type validation exit\r\n if (!query('GET_ALLOW_FILE_TYPE_VALIDATION')) {\r\n return true;\r\n }\r\n\r\n // we validate the file against the accepted file types\r\n return validateFile(file, query('GET_ACCEPTED_FILE_TYPES'));\r\n });\r\n\r\n // called for each file that is loaded\r\n // right before it is set to the item state\r\n // should return a promise\r\n addFilter('LOAD_FILE', function(file, _ref3) {\r\n var query = _ref3.query;\r\n return new Promise(function(resolve, reject) {\r\n if (!query('GET_ALLOW_FILE_TYPE_VALIDATION')) {\r\n resolve(file);\r\n return;\r\n }\r\n\r\n var acceptedFileTypes = query('GET_ACCEPTED_FILE_TYPES');\r\n\r\n // custom type detector method\r\n var typeDetector = query('GET_FILE_VALIDATE_TYPE_DETECT_TYPE');\r\n\r\n // if invalid, exit here\r\n var validationResult = validateFile(\r\n file,\r\n acceptedFileTypes,\r\n typeDetector\r\n );\r\n\r\n var handleRejection = function handleRejection() {\r\n var acceptedFileTypesMapped = acceptedFileTypes\r\n .map(\r\n applyMimeTypeMap(\r\n query('GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES_MAP')\r\n )\r\n )\r\n .filter(function(label) {\r\n return label !== false;\r\n });\r\n\r\n reject({\r\n status: {\r\n main: query('GET_LABEL_FILE_TYPE_NOT_ALLOWED'),\r\n sub: replaceInString(\r\n query('GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES'),\r\n {\r\n allTypes: acceptedFileTypesMapped.join(', '),\r\n allButLastType: acceptedFileTypesMapped\r\n .slice(0, -1)\r\n .join(', '),\r\n lastType:\r\n acceptedFileTypesMapped[acceptedFileTypesMapped.length - 1]\r\n }\r\n )\r\n }\r\n });\r\n };\r\n\r\n // has returned new filename immidiately\r\n if (typeof validationResult === 'boolean') {\r\n if (!validationResult) {\r\n return handleRejection();\r\n }\r\n return resolve(file);\r\n }\r\n\r\n // is promise\r\n validationResult\r\n .then(function() {\r\n resolve(file);\r\n })\r\n .catch(handleRejection);\r\n });\r\n });\r\n\r\n // expose plugin\r\n return {\r\n // default options\r\n options: {\r\n // Enable or disable file type validation\r\n allowFileTypeValidation: [true, Type.BOOLEAN],\r\n\r\n // What file types to accept\r\n acceptedFileTypes: [[], Type.ARRAY],\r\n // - must be comma separated\r\n // - mime types: image/png, image/jpeg, image/gif\r\n // - extensions: .png, .jpg, .jpeg ( not enabled yet )\r\n // - wildcards: image/*\r\n\r\n // label to show when a type is not allowed\r\n labelFileTypeNotAllowed: ['File is of invalid type', Type.STRING],\r\n\r\n // nicer label\r\n fileValidateTypeLabelExpectedTypes: [\r\n 'Expects {allButLastType} or {lastType}',\r\n Type.STRING\r\n ],\r\n\r\n // map mime types to extensions\r\n fileValidateTypeLabelExpectedTypesMap: [{}, Type.OBJECT],\r\n\r\n // Custom function to detect type of file\r\n fileValidateTypeDetectType: [null, Type.FUNCTION]\r\n }\r\n };\r\n };\r\n\r\n // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\r\n var isBrowser =\r\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\r\n if (isBrowser) {\r\n document.dispatchEvent(\r\n new CustomEvent('FilePond:pluginloaded', { detail: plugin })\r\n );\r\n }\r\n\r\n return plugin;\r\n});\n/*!\r\n * FilePond 4.21.0\r\n * Licensed under MIT, https://opensource.org/licenses/MIT/\r\n * Please visit https://pqina.nl/filepond/ for details.\r\n */\r\n\r\n/* eslint-disable */\r\n\r\n(function(global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n ? factory(exports)\r\n : typeof define === 'function' && define.amd\r\n ? define(['exports'], factory)\r\n : ((global = global || self), factory((global.FilePond = {})));\r\n})(this, function(exports) {\r\n 'use strict';\r\n\r\n var isNode = function isNode(value) {\r\n return value instanceof HTMLElement;\r\n };\r\n\r\n var createStore = function createStore(initialState) {\r\n var queries =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\r\n var actions =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\r\n // internal state\r\n var state = Object.assign({}, initialState);\r\n\r\n // contains all actions for next frame, is clear when actions are requested\r\n var actionQueue = [];\r\n var dispatchQueue = [];\r\n\r\n // returns a duplicate of the current state\r\n var getState = function getState() {\r\n return Object.assign({}, state);\r\n };\r\n\r\n // returns a duplicate of the actions array and clears the actions array\r\n var processActionQueue = function processActionQueue() {\r\n // create copy of actions queue\r\n var queue = [].concat(actionQueue);\r\n\r\n // clear actions queue (we don't want no double actions)\r\n actionQueue.length = 0;\r\n\r\n return queue;\r\n };\r\n\r\n // processes actions that might block the main UI thread\r\n var processDispatchQueue = function processDispatchQueue() {\r\n // create copy of actions queue\r\n var queue = [].concat(dispatchQueue);\r\n\r\n // clear actions queue (we don't want no double actions)\r\n dispatchQueue.length = 0;\r\n\r\n // now dispatch these actions\r\n queue.forEach(function(_ref) {\r\n var type = _ref.type,\r\n data = _ref.data;\r\n dispatch(type, data);\r\n });\r\n };\r\n\r\n // adds a new action, calls its handler and\r\n var dispatch = function dispatch(type, data, isBlocking) {\r\n // is blocking action (should never block if document is hidden)\r\n if (isBlocking && !document.hidden) {\r\n dispatchQueue.push({ type: type, data: data });\r\n return;\r\n }\r\n\r\n // if this action has a handler, handle the action\r\n if (actionHandlers[type]) {\r\n actionHandlers[type](data);\r\n }\r\n\r\n // now add action\r\n actionQueue.push({\r\n type: type,\r\n data: data\r\n });\r\n };\r\n\r\n var query = function query(str) {\r\n var _queryHandles;\r\n for (\r\n var _len = arguments.length,\r\n args = new Array(_len > 1 ? _len - 1 : 0),\r\n _key = 1;\r\n _key < _len;\r\n _key++\r\n ) {\r\n args[_key - 1] = arguments[_key];\r\n }\r\n return queryHandles[str]\r\n ? (_queryHandles = queryHandles)[str].apply(_queryHandles, args)\r\n : null;\r\n };\r\n\r\n var api = {\r\n getState: getState,\r\n processActionQueue: processActionQueue,\r\n processDispatchQueue: processDispatchQueue,\r\n dispatch: dispatch,\r\n query: query\r\n };\r\n\r\n var queryHandles = {};\r\n queries.forEach(function(query) {\r\n queryHandles = Object.assign({}, query(state), {}, queryHandles);\r\n });\r\n\r\n var actionHandlers = {};\r\n actions.forEach(function(action) {\r\n actionHandlers = Object.assign(\r\n {},\r\n action(dispatch, query, state),\r\n {},\r\n actionHandlers\r\n );\r\n });\r\n\r\n return api;\r\n };\r\n\r\n var defineProperty = function defineProperty(obj, property, definition) {\r\n if (typeof definition === 'function') {\r\n obj[property] = definition;\r\n return;\r\n }\r\n Object.defineProperty(obj, property, Object.assign({}, definition));\r\n };\r\n\r\n var forin = function forin(obj, cb) {\r\n for (var key in obj) {\r\n if (!obj.hasOwnProperty(key)) {\r\n continue;\r\n }\r\n\r\n cb(key, obj[key]);\r\n }\r\n };\r\n\r\n var createObject = function createObject(definition) {\r\n var obj = {};\r\n forin(definition, function(property) {\r\n defineProperty(obj, property, definition[property]);\r\n });\r\n return obj;\r\n };\r\n\r\n var attr = function attr(node, name) {\r\n var value =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\r\n if (value === null) {\r\n return node.getAttribute(name) || node.hasAttribute(name);\r\n }\r\n node.setAttribute(name, value);\r\n };\r\n\r\n var ns = 'http://www.w3.org/2000/svg';\r\n var svgElements = ['svg', 'path']; // only svg elements used\r\n\r\n var isSVGElement = function isSVGElement(tag) {\r\n return svgElements.includes(tag);\r\n };\r\n\r\n var createElement = function createElement(tag, className) {\r\n var attributes =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n if (typeof className === 'object') {\r\n attributes = className;\r\n className = null;\r\n }\r\n var element = isSVGElement(tag)\r\n ? document.createElementNS(ns, tag)\r\n : document.createElement(tag);\r\n if (className) {\r\n if (isSVGElement(tag)) {\r\n attr(element, 'class', className);\r\n } else {\r\n element.className = className;\r\n }\r\n }\r\n forin(attributes, function(name, value) {\r\n attr(element, name, value);\r\n });\r\n return element;\r\n };\r\n\r\n var appendChild = function appendChild(parent) {\r\n return function(child, index) {\r\n if (typeof index !== 'undefined' && parent.children[index]) {\r\n parent.insertBefore(child, parent.children[index]);\r\n } else {\r\n parent.appendChild(child);\r\n }\r\n };\r\n };\r\n\r\n var appendChildView = function appendChildView(parent, childViews) {\r\n return function(view, index) {\r\n if (typeof index !== 'undefined') {\r\n childViews.splice(index, 0, view);\r\n } else {\r\n childViews.push(view);\r\n }\r\n\r\n return view;\r\n };\r\n };\r\n\r\n var removeChildView = function removeChildView(parent, childViews) {\r\n return function(view) {\r\n // remove from child views\r\n childViews.splice(childViews.indexOf(view), 1);\r\n\r\n // remove the element\r\n if (view.element.parentNode) {\r\n parent.removeChild(view.element);\r\n }\r\n\r\n return view;\r\n };\r\n };\r\n\r\n var IS_BROWSER = (function() {\r\n return (\r\n typeof window !== 'undefined' && typeof window.document !== 'undefined'\r\n );\r\n })();\r\n var isBrowser = function isBrowser() {\r\n return IS_BROWSER;\r\n };\r\n\r\n var testElement = isBrowser() ? createElement('svg') : {};\r\n var getChildCount =\r\n 'children' in testElement\r\n ? function(el) {\r\n return el.children.length;\r\n }\r\n : function(el) {\r\n return el.childNodes.length;\r\n };\r\n\r\n var getViewRect = function getViewRect(\r\n elementRect,\r\n childViews,\r\n offset,\r\n scale\r\n ) {\r\n var left = offset[0] || elementRect.left;\r\n var top = offset[1] || elementRect.top;\r\n var right = left + elementRect.width;\r\n var bottom = top + elementRect.height * (scale[1] || 1);\r\n\r\n var rect = {\r\n // the rectangle of the element itself\r\n element: Object.assign({}, elementRect),\r\n\r\n // the rectangle of the element expanded to contain its children, does not include any margins\r\n inner: {\r\n left: elementRect.left,\r\n top: elementRect.top,\r\n right: elementRect.right,\r\n bottom: elementRect.bottom\r\n },\r\n\r\n // the rectangle of the element expanded to contain its children including own margin and child margins\r\n // margins will be added after we've recalculated the size\r\n outer: {\r\n left: left,\r\n top: top,\r\n right: right,\r\n bottom: bottom\r\n }\r\n };\r\n\r\n // expand rect to fit all child rectangles\r\n childViews\r\n .filter(function(childView) {\r\n return !childView.isRectIgnored();\r\n })\r\n .map(function(childView) {\r\n return childView.rect;\r\n })\r\n .forEach(function(childViewRect) {\r\n expandRect(rect.inner, Object.assign({}, childViewRect.inner));\r\n expandRect(rect.outer, Object.assign({}, childViewRect.outer));\r\n });\r\n\r\n // calculate inner width and height\r\n calculateRectSize(rect.inner);\r\n\r\n // append additional margin (top and left margins are included in top and left automatically)\r\n rect.outer.bottom += rect.element.marginBottom;\r\n rect.outer.right += rect.element.marginRight;\r\n\r\n // calculate outer width and height\r\n calculateRectSize(rect.outer);\r\n\r\n return rect;\r\n };\r\n\r\n var expandRect = function expandRect(parent, child) {\r\n // adjust for parent offset\r\n child.top += parent.top;\r\n child.right += parent.left;\r\n child.bottom += parent.top;\r\n child.left += parent.left;\r\n\r\n if (child.bottom > parent.bottom) {\r\n parent.bottom = child.bottom;\r\n }\r\n\r\n if (child.right > parent.right) {\r\n parent.right = child.right;\r\n }\r\n };\r\n\r\n var calculateRectSize = function calculateRectSize(rect) {\r\n rect.width = rect.right - rect.left;\r\n rect.height = rect.bottom - rect.top;\r\n };\r\n\r\n var isNumber = function isNumber(value) {\r\n return typeof value === 'number';\r\n };\r\n\r\n /**\r\n * Determines if position is at destination\r\n * @param position\r\n * @param destination\r\n * @param velocity\r\n * @param errorMargin\r\n * @returns {boolean}\r\n */\r\n var thereYet = function thereYet(position, destination, velocity) {\r\n var errorMargin =\r\n arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.001;\r\n return (\r\n Math.abs(position - destination) < errorMargin &&\r\n Math.abs(velocity) < errorMargin\r\n );\r\n };\r\n\r\n /**\r\n * Spring animation\r\n */\r\n var spring =\r\n // default options\r\n function spring() // method definition\r\n {\r\n var _ref =\r\n arguments.length > 0 && arguments[0] !== undefined\r\n ? arguments[0]\r\n : {},\r\n _ref$stiffness = _ref.stiffness,\r\n stiffness = _ref$stiffness === void 0 ? 0.5 : _ref$stiffness,\r\n _ref$damping = _ref.damping,\r\n damping = _ref$damping === void 0 ? 0.75 : _ref$damping,\r\n _ref$mass = _ref.mass,\r\n mass = _ref$mass === void 0 ? 10 : _ref$mass;\r\n var target = null;\r\n var position = null;\r\n var velocity = 0;\r\n var resting = false;\r\n\r\n // updates spring state\r\n var interpolate = function interpolate(ts, skipToEndState) {\r\n // in rest, don't animate\r\n if (resting) return;\r\n\r\n // need at least a target or position to do springy things\r\n if (!(isNumber(target) && isNumber(position))) {\r\n resting = true;\r\n velocity = 0;\r\n return;\r\n }\r\n\r\n // calculate spring force\r\n var f = -(position - target) * stiffness;\r\n\r\n // update velocity by adding force based on mass\r\n velocity += f / mass;\r\n\r\n // update position by adding velocity\r\n position += velocity;\r\n\r\n // slow down based on amount of damping\r\n velocity *= damping;\r\n\r\n // we've arrived if we're near target and our velocity is near zero\r\n if (thereYet(position, target, velocity) || skipToEndState) {\r\n position = target;\r\n velocity = 0;\r\n resting = true;\r\n\r\n // we done\r\n api.onupdate(position);\r\n api.oncomplete(position);\r\n } else {\r\n // progress update\r\n api.onupdate(position);\r\n }\r\n };\r\n\r\n /**\r\n * Set new target value\r\n * @param value\r\n */\r\n var setTarget = function setTarget(value) {\r\n // if currently has no position, set target and position to this value\r\n if (isNumber(value) && !isNumber(position)) {\r\n position = value;\r\n }\r\n\r\n // next target value will not be animated to\r\n if (target === null) {\r\n target = value;\r\n position = value;\r\n }\r\n\r\n // let start moving to target\r\n target = value;\r\n\r\n // already at target\r\n if (position === target || typeof target === 'undefined') {\r\n // now resting as target is current position, stop moving\r\n resting = true;\r\n velocity = 0;\r\n\r\n // done!\r\n api.onupdate(position);\r\n api.oncomplete(position);\r\n\r\n return;\r\n }\r\n\r\n resting = false;\r\n };\r\n\r\n // need 'api' to call onupdate callback\r\n var api = createObject({\r\n interpolate: interpolate,\r\n target: {\r\n set: setTarget,\r\n get: function get() {\r\n return target;\r\n }\r\n },\r\n\r\n resting: {\r\n get: function get() {\r\n return resting;\r\n }\r\n },\r\n\r\n onupdate: function onupdate(value) {},\r\n oncomplete: function oncomplete(value) {}\r\n });\r\n\r\n return api;\r\n };\r\n\r\n var easeLinear = function easeLinear(t) {\r\n return t;\r\n };\r\n var easeInOutQuad = function easeInOutQuad(t) {\r\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\r\n };\r\n\r\n var tween =\r\n // default values\r\n function tween() // method definition\r\n {\r\n var _ref =\r\n arguments.length > 0 && arguments[0] !== undefined\r\n ? arguments[0]\r\n : {},\r\n _ref$duration = _ref.duration,\r\n duration = _ref$duration === void 0 ? 500 : _ref$duration,\r\n _ref$easing = _ref.easing,\r\n easing = _ref$easing === void 0 ? easeInOutQuad : _ref$easing,\r\n _ref$delay = _ref.delay,\r\n delay = _ref$delay === void 0 ? 0 : _ref$delay;\r\n var start = null;\r\n var t;\r\n var p;\r\n var resting = true;\r\n var reverse = false;\r\n var target = null;\r\n\r\n var interpolate = function interpolate(ts, skipToEndState) {\r\n if (resting || target === null) return;\r\n\r\n if (start === null) {\r\n start = ts;\r\n }\r\n\r\n if (ts - start < delay) return;\r\n\r\n t = ts - start - delay;\r\n\r\n if (t >= duration || skipToEndState) {\r\n t = 1;\r\n p = reverse ? 0 : 1;\r\n api.onupdate(p * target);\r\n api.oncomplete(p * target);\r\n resting = true;\r\n } else {\r\n p = t / duration;\r\n api.onupdate((t >= 0 ? easing(reverse ? 1 - p : p) : 0) * target);\r\n }\r\n };\r\n\r\n // need 'api' to call onupdate callback\r\n var api = createObject({\r\n interpolate: interpolate,\r\n target: {\r\n get: function get() {\r\n return reverse ? 0 : target;\r\n },\r\n set: function set(value) {\r\n // is initial value\r\n if (target === null) {\r\n target = value;\r\n api.onupdate(value);\r\n api.oncomplete(value);\r\n return;\r\n }\r\n\r\n // want to tween to a smaller value and have a current value\r\n if (value < target) {\r\n target = 1;\r\n reverse = true;\r\n } else {\r\n // not tweening to a smaller value\r\n reverse = false;\r\n target = value;\r\n }\r\n\r\n // let's go!\r\n resting = false;\r\n start = null;\r\n }\r\n },\r\n\r\n resting: {\r\n get: function get() {\r\n return resting;\r\n }\r\n },\r\n\r\n onupdate: function onupdate(value) {},\r\n oncomplete: function oncomplete(value) {}\r\n });\r\n\r\n return api;\r\n };\r\n\r\n var animator = {\r\n spring: spring,\r\n tween: tween\r\n };\r\n\r\n /*\r\n { type: 'spring', stiffness: .5, damping: .75, mass: 10 };\r\n { translation: { type: 'spring', ... }, ... }\r\n { translation: { x: { type: 'spring', ... } } }\r\n */\r\n var createAnimator = function createAnimator(definition, category, property) {\r\n // default is single definition\r\n // we check if transform is set, if so, we check if property is set\r\n var def =\r\n definition[category] && typeof definition[category][property] === 'object'\r\n ? definition[category][property]\r\n : definition[category] || definition;\r\n\r\n var type = typeof def === 'string' ? def : def.type;\r\n var props = typeof def === 'object' ? Object.assign({}, def) : {};\r\n\r\n return animator[type] ? animator[type](props) : null;\r\n };\r\n\r\n var addGetSet = function addGetSet(keys, obj, props) {\r\n var overwrite =\r\n arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\r\n obj = Array.isArray(obj) ? obj : [obj];\r\n obj.forEach(function(o) {\r\n keys.forEach(function(key) {\r\n var name = key;\r\n var getter = function getter() {\r\n return props[key];\r\n };\r\n var setter = function setter(value) {\r\n return (props[key] = value);\r\n };\r\n\r\n if (typeof key === 'object') {\r\n name = key.key;\r\n getter = key.getter || getter;\r\n setter = key.setter || setter;\r\n }\r\n\r\n if (o[name] && !overwrite) {\r\n return;\r\n }\r\n\r\n o[name] = {\r\n get: getter,\r\n set: setter\r\n };\r\n });\r\n });\r\n };\r\n\r\n // add to state,\r\n // add getters and setters to internal and external api (if not set)\r\n // setup animators\r\n\r\n var animations = function animations(_ref) {\r\n var mixinConfig = _ref.mixinConfig,\r\n viewProps = _ref.viewProps,\r\n viewInternalAPI = _ref.viewInternalAPI,\r\n viewExternalAPI = _ref.viewExternalAPI;\r\n // initial properties\r\n var initialProps = Object.assign({}, viewProps);\r\n\r\n // list of all active animations\r\n var animations = [];\r\n\r\n // setup animators\r\n forin(mixinConfig, function(property, animation) {\r\n var animator = createAnimator(animation);\r\n if (!animator) {\r\n return;\r\n }\r\n\r\n // when the animator updates, update the view state value\r\n animator.onupdate = function(value) {\r\n viewProps[property] = value;\r\n };\r\n\r\n // set animator target\r\n animator.target = initialProps[property];\r\n\r\n // when value is set, set the animator target value\r\n var prop = {\r\n key: property,\r\n setter: function setter(value) {\r\n // if already at target, we done!\r\n if (animator.target === value) {\r\n return;\r\n }\r\n\r\n animator.target = value;\r\n },\r\n getter: function getter() {\r\n return viewProps[property];\r\n }\r\n };\r\n\r\n // add getters and setters\r\n addGetSet([prop], [viewInternalAPI, viewExternalAPI], viewProps, true);\r\n\r\n // add it to the list for easy updating from the _write method\r\n animations.push(animator);\r\n });\r\n\r\n // expose internal write api\r\n return {\r\n write: function write(ts) {\r\n var skipToEndState = document.hidden;\r\n var resting = true;\r\n animations.forEach(function(animation) {\r\n if (!animation.resting) resting = false;\r\n animation.interpolate(ts, skipToEndState);\r\n });\r\n return resting;\r\n },\r\n destroy: function destroy() {}\r\n };\r\n };\r\n\r\n var addEvent = function addEvent(element) {\r\n return function(type, fn) {\r\n element.addEventListener(type, fn);\r\n };\r\n };\r\n\r\n var removeEvent = function removeEvent(element) {\r\n return function(type, fn) {\r\n element.removeEventListener(type, fn);\r\n };\r\n };\r\n\r\n // mixin\r\n var listeners = function listeners(_ref) {\r\n var mixinConfig = _ref.mixinConfig,\r\n viewProps = _ref.viewProps,\r\n viewInternalAPI = _ref.viewInternalAPI,\r\n viewExternalAPI = _ref.viewExternalAPI,\r\n viewState = _ref.viewState,\r\n view = _ref.view;\r\n var events = [];\r\n\r\n var add = addEvent(view.element);\r\n var remove = removeEvent(view.element);\r\n\r\n viewExternalAPI.on = function(type, fn) {\r\n events.push({\r\n type: type,\r\n fn: fn\r\n });\r\n\r\n add(type, fn);\r\n };\r\n\r\n viewExternalAPI.off = function(type, fn) {\r\n events.splice(\r\n events.findIndex(function(event) {\r\n return event.type === type && event.fn === fn;\r\n }),\r\n 1\r\n );\r\n\r\n remove(type, fn);\r\n };\r\n\r\n return {\r\n write: function write() {\r\n // not busy\r\n return true;\r\n },\r\n destroy: function destroy() {\r\n events.forEach(function(event) {\r\n remove(event.type, event.fn);\r\n });\r\n }\r\n };\r\n };\r\n\r\n // add to external api and link to props\r\n\r\n var apis = function apis(_ref) {\r\n var mixinConfig = _ref.mixinConfig,\r\n viewProps = _ref.viewProps,\r\n viewExternalAPI = _ref.viewExternalAPI;\r\n addGetSet(mixinConfig, viewExternalAPI, viewProps);\r\n };\r\n\r\n var isDefined = function isDefined(value) {\r\n return value != null;\r\n };\r\n\r\n // add to state,\r\n // add getters and setters to internal and external api (if not set)\r\n // set initial state based on props in viewProps\r\n // apply as transforms each frame\r\n\r\n var defaults = {\r\n opacity: 1,\r\n scaleX: 1,\r\n scaleY: 1,\r\n translateX: 0,\r\n translateY: 0,\r\n rotateX: 0,\r\n rotateY: 0,\r\n rotateZ: 0,\r\n originX: 0,\r\n originY: 0\r\n };\r\n\r\n var styles = function styles(_ref) {\r\n var mixinConfig = _ref.mixinConfig,\r\n viewProps = _ref.viewProps,\r\n viewInternalAPI = _ref.viewInternalAPI,\r\n viewExternalAPI = _ref.viewExternalAPI,\r\n view = _ref.view;\r\n // initial props\r\n var initialProps = Object.assign({}, viewProps);\r\n\r\n // current props\r\n var currentProps = {};\r\n\r\n // we will add those properties to the external API and link them to the viewState\r\n addGetSet(mixinConfig, [viewInternalAPI, viewExternalAPI], viewProps);\r\n\r\n // override rect on internal and external rect getter so it takes in account transforms\r\n var getOffset = function getOffset() {\r\n return [viewProps['translateX'] || 0, viewProps['translateY'] || 0];\r\n };\r\n\r\n var getScale = function getScale() {\r\n return [viewProps['scaleX'] || 0, viewProps['scaleY'] || 0];\r\n };\r\n var getRect = function getRect() {\r\n return view.rect\r\n ? getViewRect(view.rect, view.childViews, getOffset(), getScale())\r\n : null;\r\n };\r\n viewInternalAPI.rect = { get: getRect };\r\n viewExternalAPI.rect = { get: getRect };\r\n\r\n // apply view props\r\n mixinConfig.forEach(function(key) {\r\n viewProps[key] =\r\n typeof initialProps[key] === 'undefined'\r\n ? defaults[key]\r\n : initialProps[key];\r\n });\r\n\r\n // expose api\r\n return {\r\n write: function write() {\r\n // see if props have changed\r\n if (!propsHaveChanged(currentProps, viewProps)) {\r\n return;\r\n }\r\n\r\n // moves element to correct position on screen\r\n applyStyles(view.element, viewProps);\r\n\r\n // store new transforms\r\n Object.assign(currentProps, Object.assign({}, viewProps));\r\n\r\n // no longer busy\r\n return true;\r\n },\r\n destroy: function destroy() {}\r\n };\r\n };\r\n\r\n var propsHaveChanged = function propsHaveChanged(currentProps, newProps) {\r\n // different amount of keys\r\n if (Object.keys(currentProps).length !== Object.keys(newProps).length) {\r\n return true;\r\n }\r\n\r\n // lets analyze the individual props\r\n for (var prop in newProps) {\r\n if (newProps[prop] !== currentProps[prop]) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n var applyStyles = function applyStyles(element, _ref2) {\r\n var opacity = _ref2.opacity,\r\n perspective = _ref2.perspective,\r\n translateX = _ref2.translateX,\r\n translateY = _ref2.translateY,\r\n scaleX = _ref2.scaleX,\r\n scaleY = _ref2.scaleY,\r\n rotateX = _ref2.rotateX,\r\n rotateY = _ref2.rotateY,\r\n rotateZ = _ref2.rotateZ,\r\n originX = _ref2.originX,\r\n originY = _ref2.originY,\r\n width = _ref2.width,\r\n height = _ref2.height;\r\n\r\n var transforms = '';\r\n var styles = '';\r\n\r\n // handle transform origin\r\n if (isDefined(originX) || isDefined(originY)) {\r\n styles +=\r\n 'transform-origin: ' + (originX || 0) + 'px ' + (originY || 0) + 'px;';\r\n }\r\n\r\n // transform order is relevant\r\n // 0. perspective\r\n if (isDefined(perspective)) {\r\n transforms += 'perspective(' + perspective + 'px) ';\r\n }\r\n\r\n // 1. translate\r\n if (isDefined(translateX) || isDefined(translateY)) {\r\n transforms +=\r\n 'translate3d(' +\r\n (translateX || 0) +\r\n 'px, ' +\r\n (translateY || 0) +\r\n 'px, 0) ';\r\n }\r\n\r\n // 2. scale\r\n if (isDefined(scaleX) || isDefined(scaleY)) {\r\n transforms +=\r\n 'scale3d(' +\r\n (isDefined(scaleX) ? scaleX : 1) +\r\n ', ' +\r\n (isDefined(scaleY) ? scaleY : 1) +\r\n ', 1) ';\r\n }\r\n\r\n // 3. rotate\r\n if (isDefined(rotateZ)) {\r\n transforms += 'rotateZ(' + rotateZ + 'rad) ';\r\n }\r\n\r\n if (isDefined(rotateX)) {\r\n transforms += 'rotateX(' + rotateX + 'rad) ';\r\n }\r\n\r\n if (isDefined(rotateY)) {\r\n transforms += 'rotateY(' + rotateY + 'rad) ';\r\n }\r\n\r\n // add transforms\r\n if (transforms.length) {\r\n styles += 'transform:' + transforms + ';';\r\n }\r\n\r\n // add opacity\r\n if (isDefined(opacity)) {\r\n styles += 'opacity:' + opacity + ';';\r\n\r\n // if we reach zero, we make the element inaccessible\r\n if (opacity === 0) {\r\n styles += 'visibility:hidden;';\r\n }\r\n\r\n // if we're below 100% opacity this element can't be clicked\r\n if (opacity < 1) {\r\n styles += 'pointer-events:none;';\r\n }\r\n }\r\n\r\n // add height\r\n if (isDefined(height)) {\r\n styles += 'height:' + height + 'px;';\r\n }\r\n\r\n // add width\r\n if (isDefined(width)) {\r\n styles += 'width:' + width + 'px;';\r\n }\r\n\r\n // apply styles\r\n var elementCurrentStyle = element.elementCurrentStyle || '';\r\n\r\n // if new styles does not match current styles, lets update!\r\n if (\r\n styles.length !== elementCurrentStyle.length ||\r\n styles !== elementCurrentStyle\r\n ) {\r\n element.style.cssText = styles;\r\n // store current styles so we can compare them to new styles later on\r\n // _not_ getting the style value is faster\r\n element.elementCurrentStyle = styles;\r\n }\r\n };\r\n\r\n var Mixins = {\r\n styles: styles,\r\n listeners: listeners,\r\n animations: animations,\r\n apis: apis\r\n };\r\n\r\n var updateRect = function updateRect() {\r\n var rect =\r\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n var element =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var style =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n\r\n if (!element.layoutCalculated) {\r\n rect.paddingTop = parseInt(style.paddingTop, 10) || 0;\r\n rect.marginTop = parseInt(style.marginTop, 10) || 0;\r\n rect.marginRight = parseInt(style.marginRight, 10) || 0;\r\n rect.marginBottom = parseInt(style.marginBottom, 10) || 0;\r\n rect.marginLeft = parseInt(style.marginLeft, 10) || 0;\r\n element.layoutCalculated = true;\r\n }\r\n\r\n rect.left = element.offsetLeft || 0;\r\n rect.top = element.offsetTop || 0;\r\n rect.width = element.offsetWidth || 0;\r\n rect.height = element.offsetHeight || 0;\r\n\r\n rect.right = rect.left + rect.width;\r\n rect.bottom = rect.top + rect.height;\r\n\r\n rect.scrollTop = element.scrollTop;\r\n\r\n rect.hidden = element.offsetParent === null;\r\n\r\n return rect;\r\n };\r\n\r\n var createView =\r\n // default view definition\r\n function createView() {\r\n var _ref =\r\n arguments.length > 0 && arguments[0] !== undefined\r\n ? arguments[0]\r\n : {},\r\n _ref$tag = _ref.tag,\r\n tag = _ref$tag === void 0 ? 'div' : _ref$tag,\r\n _ref$name = _ref.name,\r\n name = _ref$name === void 0 ? null : _ref$name,\r\n _ref$attributes = _ref.attributes,\r\n attributes = _ref$attributes === void 0 ? {} : _ref$attributes,\r\n _ref$read = _ref.read,\r\n read = _ref$read === void 0 ? function() {} : _ref$read,\r\n _ref$write = _ref.write,\r\n write = _ref$write === void 0 ? function() {} : _ref$write,\r\n _ref$create = _ref.create,\r\n create = _ref$create === void 0 ? function() {} : _ref$create,\r\n _ref$destroy = _ref.destroy,\r\n destroy = _ref$destroy === void 0 ? function() {} : _ref$destroy,\r\n _ref$filterFrameActio = _ref.filterFrameActionsForChild,\r\n filterFrameActionsForChild =\r\n _ref$filterFrameActio === void 0\r\n ? function(child, actions) {\r\n return actions;\r\n }\r\n : _ref$filterFrameActio,\r\n _ref$didCreateView = _ref.didCreateView,\r\n didCreateView =\r\n _ref$didCreateView === void 0 ? function() {} : _ref$didCreateView,\r\n _ref$didWriteView = _ref.didWriteView,\r\n didWriteView =\r\n _ref$didWriteView === void 0 ? function() {} : _ref$didWriteView,\r\n _ref$ignoreRect = _ref.ignoreRect,\r\n ignoreRect = _ref$ignoreRect === void 0 ? false : _ref$ignoreRect,\r\n _ref$ignoreRectUpdate = _ref.ignoreRectUpdate,\r\n ignoreRectUpdate =\r\n _ref$ignoreRectUpdate === void 0 ? false : _ref$ignoreRectUpdate,\r\n _ref$mixins = _ref.mixins,\r\n mixins = _ref$mixins === void 0 ? [] : _ref$mixins;\r\n return function(\r\n // each view requires reference to store\r\n store\r\n ) {\r\n var props =\r\n arguments.length > 1 && arguments[1] !== undefined\r\n ? arguments[1]\r\n : {};\r\n // root element should not be changed\r\n var element = createElement(tag, 'filepond--' + name, attributes);\r\n\r\n // style reference should also not be changed\r\n var style = window.getComputedStyle(element, null);\r\n\r\n // element rectangle\r\n var rect = updateRect();\r\n var frameRect = null;\r\n\r\n // rest state\r\n var isResting = false;\r\n\r\n // pretty self explanatory\r\n var childViews = [];\r\n\r\n // loaded mixins\r\n var activeMixins = [];\r\n\r\n // references to created children\r\n var ref = {};\r\n\r\n // state used for each instance\r\n var state = {};\r\n\r\n // list of writers that will be called to update this view\r\n var writers = [\r\n write // default writer\r\n ];\r\n\r\n var readers = [\r\n read // default reader\r\n ];\r\n\r\n var destroyers = [\r\n destroy // default destroy\r\n ];\r\n\r\n // core view methods\r\n var getElement = function getElement() {\r\n return element;\r\n };\r\n var getChildViews = function getChildViews() {\r\n return childViews.concat();\r\n };\r\n var getReference = function getReference() {\r\n return ref;\r\n };\r\n var createChildView = function createChildView(store) {\r\n return function(view, props) {\r\n return view(store, props);\r\n };\r\n };\r\n var getRect = function getRect() {\r\n if (frameRect) {\r\n return frameRect;\r\n }\r\n frameRect = getViewRect(rect, childViews, [0, 0], [1, 1]);\r\n return frameRect;\r\n };\r\n var getStyle = function getStyle() {\r\n return style;\r\n };\r\n\r\n /**\r\n * Read data from DOM\r\n * @private\r\n */\r\n var _read = function _read() {\r\n frameRect = null;\r\n\r\n // read child views\r\n childViews.forEach(function(child) {\r\n return child._read();\r\n });\r\n\r\n var shouldUpdate = !(ignoreRectUpdate && rect.width && rect.height);\r\n if (shouldUpdate) {\r\n updateRect(rect, element, style);\r\n }\r\n\r\n // readers\r\n var api = { root: internalAPI, props: props, rect: rect };\r\n readers.forEach(function(reader) {\r\n return reader(api);\r\n });\r\n };\r\n\r\n /**\r\n * Write data to DOM\r\n * @private\r\n */\r\n var _write = function _write(ts, frameActions, shouldOptimize) {\r\n // if no actions, we assume that the view is resting\r\n var resting = frameActions.length === 0;\r\n\r\n // writers\r\n writers.forEach(function(writer) {\r\n var writerResting = writer({\r\n props: props,\r\n root: internalAPI,\r\n actions: frameActions,\r\n timestamp: ts,\r\n shouldOptimize: shouldOptimize\r\n });\r\n\r\n if (writerResting === false) {\r\n resting = false;\r\n }\r\n });\r\n\r\n // run mixins\r\n activeMixins.forEach(function(mixin) {\r\n // if one of the mixins is still busy after write operation, we are not resting\r\n var mixinResting = mixin.write(ts);\r\n if (mixinResting === false) {\r\n resting = false;\r\n }\r\n });\r\n\r\n // updates child views that are currently attached to the DOM\r\n childViews\r\n .filter(function(child) {\r\n return !!child.element.parentNode;\r\n })\r\n .forEach(function(child) {\r\n // if a child view is not resting, we are not resting\r\n var childResting = child._write(\r\n ts,\r\n filterFrameActionsForChild(child, frameActions),\r\n shouldOptimize\r\n );\r\n\r\n if (!childResting) {\r\n resting = false;\r\n }\r\n });\r\n\r\n // append new elements to DOM and update those\r\n childViews\r\n //.filter(child => !child.element.parentNode)\r\n .forEach(function(child, index) {\r\n // skip\r\n if (child.element.parentNode) {\r\n return;\r\n }\r\n\r\n // append to DOM\r\n internalAPI.appendChild(child.element, index);\r\n\r\n // call read (need to know the size of these elements)\r\n child._read();\r\n\r\n // re-call write\r\n child._write(\r\n ts,\r\n filterFrameActionsForChild(child, frameActions),\r\n shouldOptimize\r\n );\r\n\r\n // we just added somthing to the dom, no rest\r\n resting = false;\r\n });\r\n\r\n // update resting state\r\n isResting = resting;\r\n\r\n didWriteView({\r\n props: props,\r\n root: internalAPI,\r\n actions: frameActions,\r\n timestamp: ts\r\n });\r\n\r\n // let parent know if we are resting\r\n return resting;\r\n };\r\n\r\n var _destroy = function _destroy() {\r\n activeMixins.forEach(function(mixin) {\r\n return mixin.destroy();\r\n });\r\n destroyers.forEach(function(destroyer) {\r\n destroyer({ root: internalAPI, props: props });\r\n });\r\n childViews.forEach(function(child) {\r\n return child._destroy();\r\n });\r\n };\r\n\r\n // sharedAPI\r\n var sharedAPIDefinition = {\r\n element: {\r\n get: getElement\r\n },\r\n\r\n style: {\r\n get: getStyle\r\n },\r\n\r\n childViews: {\r\n get: getChildViews\r\n }\r\n };\r\n\r\n // private API definition\r\n var internalAPIDefinition = Object.assign({}, sharedAPIDefinition, {\r\n rect: {\r\n get: getRect\r\n },\r\n\r\n // access to custom children references\r\n ref: {\r\n get: getReference\r\n },\r\n\r\n // dom modifiers\r\n is: function is(needle) {\r\n return name === needle;\r\n },\r\n appendChild: appendChild(element),\r\n createChildView: createChildView(store),\r\n linkView: function linkView(view) {\r\n childViews.push(view);\r\n return view;\r\n },\r\n unlinkView: function unlinkView(view) {\r\n childViews.splice(childViews.indexOf(view), 1);\r\n },\r\n appendChildView: appendChildView(element, childViews),\r\n removeChildView: removeChildView(element, childViews),\r\n registerWriter: function registerWriter(writer) {\r\n return writers.push(writer);\r\n },\r\n registerReader: function registerReader(reader) {\r\n return readers.push(reader);\r\n },\r\n registerDestroyer: function registerDestroyer(destroyer) {\r\n return destroyers.push(destroyer);\r\n },\r\n invalidateLayout: function invalidateLayout() {\r\n return (element.layoutCalculated = false);\r\n },\r\n\r\n // access to data store\r\n dispatch: store.dispatch,\r\n query: store.query\r\n });\r\n\r\n // public view API methods\r\n var externalAPIDefinition = {\r\n element: {\r\n get: getElement\r\n },\r\n\r\n childViews: {\r\n get: getChildViews\r\n },\r\n\r\n rect: {\r\n get: getRect\r\n },\r\n\r\n resting: {\r\n get: function get() {\r\n return isResting;\r\n }\r\n },\r\n\r\n isRectIgnored: function isRectIgnored() {\r\n return ignoreRect;\r\n },\r\n _read: _read,\r\n _write: _write,\r\n _destroy: _destroy\r\n };\r\n\r\n // mixin API methods\r\n var mixinAPIDefinition = Object.assign({}, sharedAPIDefinition, {\r\n rect: {\r\n get: function get() {\r\n return rect;\r\n }\r\n }\r\n });\r\n\r\n // add mixin functionality\r\n Object.keys(mixins)\r\n .sort(function(a, b) {\r\n // move styles to the back of the mixin list (so adjustments of other mixins are applied to the props correctly)\r\n if (a === 'styles') {\r\n return 1;\r\n } else if (b === 'styles') {\r\n return -1;\r\n }\r\n return 0;\r\n })\r\n .forEach(function(key) {\r\n var mixinAPI = Mixins[key]({\r\n mixinConfig: mixins[key],\r\n viewProps: props,\r\n viewState: state,\r\n viewInternalAPI: internalAPIDefinition,\r\n viewExternalAPI: externalAPIDefinition,\r\n view: createObject(mixinAPIDefinition)\r\n });\r\n\r\n if (mixinAPI) {\r\n activeMixins.push(mixinAPI);\r\n }\r\n });\r\n\r\n // construct private api\r\n var internalAPI = createObject(internalAPIDefinition);\r\n\r\n // create the view\r\n create({\r\n root: internalAPI,\r\n props: props\r\n });\r\n\r\n // append created child views to root node\r\n var childCount = getChildCount(element); // need to know the current child count so appending happens in correct order\r\n childViews.forEach(function(child, index) {\r\n internalAPI.appendChild(child.element, childCount + index);\r\n });\r\n\r\n // call did create\r\n didCreateView(internalAPI);\r\n\r\n // expose public api\r\n return createObject(externalAPIDefinition);\r\n };\r\n };\r\n\r\n var createPainter = function createPainter(read, write) {\r\n var fps =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60;\r\n\r\n var name = '__framePainter';\r\n\r\n // set global painter\r\n if (window[name]) {\r\n window[name].readers.push(read);\r\n window[name].writers.push(write);\r\n return;\r\n }\r\n\r\n window[name] = {\r\n readers: [read],\r\n writers: [write]\r\n };\r\n\r\n var painter = window[name];\r\n\r\n var interval = 1000 / fps;\r\n var last = null;\r\n var id = null;\r\n var requestTick = null;\r\n var cancelTick = null;\r\n\r\n var setTimerType = function setTimerType() {\r\n if (document.hidden) {\r\n requestTick = function requestTick() {\r\n return window.setTimeout(function() {\r\n return tick(performance.now());\r\n }, interval);\r\n };\r\n cancelTick = function cancelTick() {\r\n return window.clearTimeout(id);\r\n };\r\n } else {\r\n requestTick = function requestTick() {\r\n return window.requestAnimationFrame(tick);\r\n };\r\n cancelTick = function cancelTick() {\r\n return window.cancelAnimationFrame(id);\r\n };\r\n }\r\n };\r\n\r\n document.addEventListener('visibilitychange', function() {\r\n if (cancelTick) cancelTick();\r\n setTimerType();\r\n tick(performance.now());\r\n });\r\n\r\n var tick = function tick(ts) {\r\n // queue next tick\r\n id = requestTick(tick);\r\n\r\n // limit fps\r\n if (!last) {\r\n last = ts;\r\n }\r\n\r\n var delta = ts - last;\r\n\r\n if (delta <= interval) {\r\n // skip frame\r\n return;\r\n }\r\n\r\n // align next frame\r\n last = ts - (delta % interval);\r\n\r\n // update view\r\n painter.readers.forEach(function(read) {\r\n return read();\r\n });\r\n painter.writers.forEach(function(write) {\r\n return write(ts);\r\n });\r\n };\r\n\r\n setTimerType();\r\n tick(performance.now());\r\n\r\n return {\r\n pause: function pause() {\r\n cancelTick(id);\r\n }\r\n };\r\n };\r\n\r\n var createRoute = function createRoute(routes, fn) {\r\n return function(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props,\r\n _ref$actions = _ref.actions,\r\n actions = _ref$actions === void 0 ? [] : _ref$actions,\r\n timestamp = _ref.timestamp,\r\n shouldOptimize = _ref.shouldOptimize;\r\n actions\r\n .filter(function(action) {\r\n return routes[action.type];\r\n })\r\n .forEach(function(action) {\r\n return routes[action.type]({\r\n root: root,\r\n props: props,\r\n action: action.data,\r\n timestamp: timestamp,\r\n shouldOptimize: shouldOptimize\r\n });\r\n });\r\n\r\n if (fn) {\r\n fn({\r\n root: root,\r\n props: props,\r\n actions: actions,\r\n timestamp: timestamp,\r\n shouldOptimize: shouldOptimize\r\n });\r\n }\r\n };\r\n };\r\n\r\n var insertBefore = function insertBefore(newNode, referenceNode) {\r\n return referenceNode.parentNode.insertBefore(newNode, referenceNode);\r\n };\r\n\r\n var insertAfter = function insertAfter(newNode, referenceNode) {\r\n return referenceNode.parentNode.insertBefore(\r\n newNode,\r\n referenceNode.nextSibling\r\n );\r\n };\r\n\r\n var isArray = function isArray(value) {\r\n return Array.isArray(value);\r\n };\r\n\r\n var isEmpty = function isEmpty(value) {\r\n return value == null;\r\n };\r\n\r\n var trim = function trim(str) {\r\n return str.trim();\r\n };\r\n\r\n var toString = function toString(value) {\r\n return '' + value;\r\n };\r\n\r\n var toArray = function toArray(value) {\r\n var splitter =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';\r\n if (isEmpty(value)) {\r\n return [];\r\n }\r\n if (isArray(value)) {\r\n return value;\r\n }\r\n return toString(value)\r\n .split(splitter)\r\n .map(trim)\r\n .filter(function(str) {\r\n return str.length;\r\n });\r\n };\r\n\r\n var isBoolean = function isBoolean(value) {\r\n return typeof value === 'boolean';\r\n };\r\n\r\n var toBoolean = function toBoolean(value) {\r\n return isBoolean(value) ? value : value === 'true';\r\n };\r\n\r\n var isString = function isString(value) {\r\n return typeof value === 'string';\r\n };\r\n\r\n var toNumber = function toNumber(value) {\r\n return isNumber(value)\r\n ? value\r\n : isString(value)\r\n ? toString(value).replace(/[a-z]+/gi, '')\r\n : 0;\r\n };\r\n\r\n var toInt = function toInt(value) {\r\n return parseInt(toNumber(value), 10);\r\n };\r\n\r\n var toFloat = function toFloat(value) {\r\n return parseFloat(toNumber(value));\r\n };\r\n\r\n var isInt = function isInt(value) {\r\n return isNumber(value) && isFinite(value) && Math.floor(value) === value;\r\n };\r\n\r\n var toBytes = function toBytes(value) {\r\n var base =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\r\n // is in bytes\r\n if (isInt(value)) {\r\n return value;\r\n }\r\n\r\n // is natural file size\r\n var naturalFileSize = toString(value).trim();\r\n\r\n // if is value in megabytes\r\n if (/MB$/i.test(naturalFileSize)) {\r\n naturalFileSize = naturalFileSize.replace(/MB$i/, '').trim();\r\n return toInt(naturalFileSize) * base * 1000;\r\n }\r\n\r\n // if is value in kilobytes\r\n if (/KB/i.test(naturalFileSize)) {\r\n naturalFileSize = naturalFileSize.replace(/KB$i/, '').trim();\r\n return toInt(naturalFileSize) * base;\r\n }\r\n\r\n return toInt(naturalFileSize);\r\n };\r\n\r\n var isFunction = function isFunction(value) {\r\n return typeof value === 'function';\r\n };\r\n\r\n var toFunctionReference = function toFunctionReference(string) {\r\n var ref = self;\r\n var levels = string.split('.');\r\n var level = null;\r\n while ((level = levels.shift())) {\r\n ref = ref[level];\r\n if (!ref) {\r\n return null;\r\n }\r\n }\r\n return ref;\r\n };\r\n\r\n var methods = {\r\n process: 'POST',\r\n patch: 'PATCH',\r\n revert: 'DELETE',\r\n fetch: 'GET',\r\n restore: 'GET',\r\n load: 'GET'\r\n };\r\n\r\n var createServerAPI = function createServerAPI(outline) {\r\n var api = {};\r\n\r\n api.url = isString(outline) ? outline : outline.url || '';\r\n api.timeout = outline.timeout ? parseInt(outline.timeout, 10) : 0;\r\n api.headers = outline.headers ? outline.headers : {};\r\n\r\n forin(methods, function(key) {\r\n api[key] = createAction(\r\n key,\r\n outline[key],\r\n methods[key],\r\n api.timeout,\r\n api.headers\r\n );\r\n });\r\n\r\n // special treatment for remove\r\n api.remove = outline.remove || null;\r\n\r\n // remove generic headers from api object\r\n delete api.headers;\r\n\r\n return api;\r\n };\r\n\r\n var createAction = function createAction(\r\n name,\r\n outline,\r\n method,\r\n timeout,\r\n headers\r\n ) {\r\n // is explicitely set to null so disable\r\n if (outline === null) {\r\n return null;\r\n }\r\n\r\n // if is custom function, done! Dev handles everything.\r\n if (typeof outline === 'function') {\r\n return outline;\r\n }\r\n\r\n // build action object\r\n var action = {\r\n url: method === 'GET' || method === 'PATCH' ? '?' + name + '=' : '',\r\n method: method,\r\n headers: headers,\r\n withCredentials: false,\r\n timeout: timeout,\r\n onload: null,\r\n ondata: null,\r\n onerror: null\r\n };\r\n\r\n // is a single url\r\n if (isString(outline)) {\r\n action.url = outline;\r\n return action;\r\n }\r\n\r\n // overwrite\r\n Object.assign(action, outline);\r\n\r\n // see if should reformat headers;\r\n if (isString(action.headers)) {\r\n var parts = action.headers.split(/:(.+)/);\r\n action.headers = {\r\n header: parts[0],\r\n value: parts[1]\r\n };\r\n }\r\n\r\n // if is bool withCredentials\r\n action.withCredentials = toBoolean(action.withCredentials);\r\n\r\n return action;\r\n };\r\n\r\n var toServerAPI = function toServerAPI(value) {\r\n return createServerAPI(value);\r\n };\r\n\r\n var isNull = function isNull(value) {\r\n return value === null;\r\n };\r\n\r\n var isObject = function isObject(value) {\r\n return typeof value === 'object' && value !== null;\r\n };\r\n\r\n var isAPI = function isAPI(value) {\r\n return (\r\n isObject(value) &&\r\n isString(value.url) &&\r\n isObject(value.process) &&\r\n isObject(value.revert) &&\r\n isObject(value.restore) &&\r\n isObject(value.fetch)\r\n );\r\n };\r\n\r\n var getType = function getType(value) {\r\n if (isArray(value)) {\r\n return 'array';\r\n }\r\n\r\n if (isNull(value)) {\r\n return 'null';\r\n }\r\n\r\n if (isInt(value)) {\r\n return 'int';\r\n }\r\n\r\n if (/^[0-9]+ ?(?:GB|MB|KB)$/gi.test(value)) {\r\n return 'bytes';\r\n }\r\n\r\n if (isAPI(value)) {\r\n return 'api';\r\n }\r\n\r\n return typeof value;\r\n };\r\n\r\n var replaceSingleQuotes = function replaceSingleQuotes(str) {\r\n return str\r\n .replace(/{\\s*'/g, '{\"')\r\n .replace(/'\\s*}/g, '\"}')\r\n .replace(/'\\s*:/g, '\":')\r\n .replace(/:\\s*'/g, ':\"')\r\n .replace(/,\\s*'/g, ',\"')\r\n .replace(/'\\s*,/g, '\",');\r\n };\r\n\r\n var conversionTable = {\r\n array: toArray,\r\n boolean: toBoolean,\r\n int: function int(value) {\r\n return getType(value) === 'bytes' ? toBytes(value) : toInt(value);\r\n },\r\n number: toFloat,\r\n float: toFloat,\r\n bytes: toBytes,\r\n string: function string(value) {\r\n return isFunction(value) ? value : toString(value);\r\n },\r\n function: function _function(value) {\r\n return toFunctionReference(value);\r\n },\r\n serverapi: toServerAPI,\r\n object: function object(value) {\r\n try {\r\n return JSON.parse(replaceSingleQuotes(value));\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n };\r\n\r\n var convertTo = function convertTo(value, type) {\r\n return conversionTable[type](value);\r\n };\r\n\r\n var getValueByType = function getValueByType(\r\n newValue,\r\n defaultValue,\r\n valueType\r\n ) {\r\n // can always assign default value\r\n if (newValue === defaultValue) {\r\n return newValue;\r\n }\r\n\r\n // get the type of the new value\r\n var newValueType = getType(newValue);\r\n\r\n // is valid type?\r\n if (newValueType !== valueType) {\r\n // is string input, let's attempt to convert\r\n var convertedValue = convertTo(newValue, valueType);\r\n\r\n // what is the type now\r\n newValueType = getType(convertedValue);\r\n\r\n // no valid conversions found\r\n if (convertedValue === null) {\r\n throw 'Trying to assign value with incorrect type to \"' +\r\n option +\r\n '\", allowed type: \"' +\r\n valueType +\r\n '\"';\r\n } else {\r\n newValue = convertedValue;\r\n }\r\n }\r\n\r\n // assign new value\r\n return newValue;\r\n };\r\n\r\n var createOption = function createOption(defaultValue, valueType) {\r\n var currentValue = defaultValue;\r\n return {\r\n enumerable: true,\r\n get: function get() {\r\n return currentValue;\r\n },\r\n set: function set(newValue) {\r\n currentValue = getValueByType(newValue, defaultValue, valueType);\r\n }\r\n };\r\n };\r\n\r\n var createOptions = function createOptions(options) {\r\n var obj = {};\r\n forin(options, function(prop) {\r\n var optionDefinition = options[prop];\r\n obj[prop] = createOption(optionDefinition[0], optionDefinition[1]);\r\n });\r\n return createObject(obj);\r\n };\r\n\r\n var createInitialState = function createInitialState(options) {\r\n return {\r\n // model\r\n items: [],\r\n\r\n // timeout used for calling update items\r\n listUpdateTimeout: null,\r\n\r\n // timeout used for stacking metadata updates\r\n itemUpdateTimeout: null,\r\n\r\n // queue of items waiting to be processed\r\n processingQueue: [],\r\n\r\n // options\r\n options: createOptions(options)\r\n };\r\n };\r\n\r\n var fromCamels = function fromCamels(string) {\r\n var separator =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '-';\r\n return string\r\n .split(/(?=[A-Z])/)\r\n .map(function(part) {\r\n return part.toLowerCase();\r\n })\r\n .join(separator);\r\n };\r\n\r\n var createOptionAPI = function createOptionAPI(store, options) {\r\n var obj = {};\r\n forin(options, function(key) {\r\n obj[key] = {\r\n get: function get() {\r\n return store.getState().options[key];\r\n },\r\n set: function set(value) {\r\n store.dispatch('SET_' + fromCamels(key, '_').toUpperCase(), {\r\n value: value\r\n });\r\n }\r\n };\r\n });\r\n return obj;\r\n };\r\n\r\n var createOptionActions = function createOptionActions(options) {\r\n return function(dispatch, query, state) {\r\n var obj = {};\r\n forin(options, function(key) {\r\n var name = fromCamels(key, '_').toUpperCase();\r\n\r\n obj['SET_' + name] = function(action) {\r\n try {\r\n state.options[key] = action.value;\r\n } catch (e) {} // nope, failed\r\n\r\n // we successfully set the value of this option\r\n dispatch('DID_SET_' + name, { value: state.options[key] });\r\n };\r\n });\r\n return obj;\r\n };\r\n };\r\n\r\n var createOptionQueries = function createOptionQueries(options) {\r\n return function(state) {\r\n var obj = {};\r\n forin(options, function(key) {\r\n obj['GET_' + fromCamels(key, '_').toUpperCase()] = function(action) {\r\n return state.options[key];\r\n };\r\n });\r\n return obj;\r\n };\r\n };\r\n\r\n var InteractionMethod = {\r\n API: 1,\r\n DROP: 2,\r\n BROWSE: 3,\r\n PASTE: 4,\r\n NONE: 5\r\n };\r\n\r\n var getUniqueId = function getUniqueId() {\r\n return Math.random()\r\n .toString(36)\r\n .substr(2, 9);\r\n };\r\n\r\n function _typeof(obj) {\r\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\r\n _typeof = function(obj) {\r\n return typeof obj;\r\n };\r\n } else {\r\n _typeof = function(obj) {\r\n return obj &&\r\n typeof Symbol === 'function' &&\r\n obj.constructor === Symbol &&\r\n obj !== Symbol.prototype\r\n ? 'symbol'\r\n : typeof obj;\r\n };\r\n }\r\n\r\n return _typeof(obj);\r\n }\r\n\r\n var REACT_ELEMENT_TYPE;\r\n\r\n function _jsx(type, props, key, children) {\r\n if (!REACT_ELEMENT_TYPE) {\r\n REACT_ELEMENT_TYPE =\r\n (typeof Symbol === 'function' &&\r\n Symbol['for'] &&\r\n Symbol['for']('react.element')) ||\r\n 0xeac7;\r\n }\r\n\r\n var defaultProps = type && type.defaultProps;\r\n var childrenLength = arguments.length - 3;\r\n\r\n if (!props && childrenLength !== 0) {\r\n props = {\r\n children: void 0\r\n };\r\n }\r\n\r\n if (props && defaultProps) {\r\n for (var propName in defaultProps) {\r\n if (props[propName] === void 0) {\r\n props[propName] = defaultProps[propName];\r\n }\r\n }\r\n } else if (!props) {\r\n props = defaultProps || {};\r\n }\r\n\r\n if (childrenLength === 1) {\r\n props.children = children;\r\n } else if (childrenLength > 1) {\r\n var childArray = new Array(childrenLength);\r\n\r\n for (var i = 0; i < childrenLength; i++) {\r\n childArray[i] = arguments[i + 3];\r\n }\r\n\r\n props.children = childArray;\r\n }\r\n\r\n return {\r\n $$typeof: REACT_ELEMENT_TYPE,\r\n type: type,\r\n key: key === undefined ? null : '' + key,\r\n ref: null,\r\n props: props,\r\n _owner: null\r\n };\r\n }\r\n\r\n function _asyncIterator(iterable) {\r\n var method;\r\n\r\n if (typeof Symbol !== 'undefined') {\r\n if (Symbol.asyncIterator) {\r\n method = iterable[Symbol.asyncIterator];\r\n if (method != null) return method.call(iterable);\r\n }\r\n\r\n if (Symbol.iterator) {\r\n method = iterable[Symbol.iterator];\r\n if (method != null) return method.call(iterable);\r\n }\r\n }\r\n\r\n throw new TypeError('Object is not async iterable');\r\n }\r\n\r\n function _AwaitValue(value) {\r\n this.wrapped = value;\r\n }\r\n\r\n function _AsyncGenerator(gen) {\r\n var front, back;\r\n\r\n function send(key, arg) {\r\n return new Promise(function(resolve, reject) {\r\n var request = {\r\n key: key,\r\n arg: arg,\r\n resolve: resolve,\r\n reject: reject,\r\n next: null\r\n };\r\n\r\n if (back) {\r\n back = back.next = request;\r\n } else {\r\n front = back = request;\r\n resume(key, arg);\r\n }\r\n });\r\n }\r\n\r\n function resume(key, arg) {\r\n try {\r\n var result = gen[key](arg);\r\n var value = result.value;\r\n var wrappedAwait = value instanceof _AwaitValue;\r\n Promise.resolve(wrappedAwait ? value.wrapped : value).then(\r\n function(arg) {\r\n if (wrappedAwait) {\r\n resume('next', arg);\r\n return;\r\n }\r\n\r\n settle(result.done ? 'return' : 'normal', arg);\r\n },\r\n function(err) {\r\n resume('throw', err);\r\n }\r\n );\r\n } catch (err) {\r\n settle('throw', err);\r\n }\r\n }\r\n\r\n function settle(type, value) {\r\n switch (type) {\r\n case 'return':\r\n front.resolve({\r\n value: value,\r\n done: true\r\n });\r\n break;\r\n\r\n case 'throw':\r\n front.reject(value);\r\n break;\r\n\r\n default:\r\n front.resolve({\r\n value: value,\r\n done: false\r\n });\r\n break;\r\n }\r\n\r\n front = front.next;\r\n\r\n if (front) {\r\n resume(front.key, front.arg);\r\n } else {\r\n back = null;\r\n }\r\n }\r\n\r\n this._invoke = send;\r\n\r\n if (typeof gen.return !== 'function') {\r\n this.return = undefined;\r\n }\r\n }\r\n\r\n if (typeof Symbol === 'function' && Symbol.asyncIterator) {\r\n _AsyncGenerator.prototype[Symbol.asyncIterator] = function() {\r\n return this;\r\n };\r\n }\r\n\r\n _AsyncGenerator.prototype.next = function(arg) {\r\n return this._invoke('next', arg);\r\n };\r\n\r\n _AsyncGenerator.prototype.throw = function(arg) {\r\n return this._invoke('throw', arg);\r\n };\r\n\r\n _AsyncGenerator.prototype.return = function(arg) {\r\n return this._invoke('return', arg);\r\n };\r\n\r\n function _wrapAsyncGenerator(fn) {\r\n return function() {\r\n return new _AsyncGenerator(fn.apply(this, arguments));\r\n };\r\n }\r\n\r\n function _awaitAsyncGenerator(value) {\r\n return new _AwaitValue(value);\r\n }\r\n\r\n function _asyncGeneratorDelegate(inner, awaitWrap) {\r\n var iter = {},\r\n waiting = false;\r\n\r\n function pump(key, value) {\r\n waiting = true;\r\n value = new Promise(function(resolve) {\r\n resolve(inner[key](value));\r\n });\r\n return {\r\n done: false,\r\n value: awaitWrap(value)\r\n };\r\n }\r\n\r\n if (typeof Symbol === 'function' && Symbol.iterator) {\r\n iter[Symbol.iterator] = function() {\r\n return this;\r\n };\r\n }\r\n\r\n iter.next = function(value) {\r\n if (waiting) {\r\n waiting = false;\r\n return value;\r\n }\r\n\r\n return pump('next', value);\r\n };\r\n\r\n if (typeof inner.throw === 'function') {\r\n iter.throw = function(value) {\r\n if (waiting) {\r\n waiting = false;\r\n throw value;\r\n }\r\n\r\n return pump('throw', value);\r\n };\r\n }\r\n\r\n if (typeof inner.return === 'function') {\r\n iter.return = function(value) {\r\n return pump('return', value);\r\n };\r\n }\r\n\r\n return iter;\r\n }\r\n\r\n function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\r\n try {\r\n var info = gen[key](arg);\r\n var value = info.value;\r\n } catch (error) {\r\n reject(error);\r\n return;\r\n }\r\n\r\n if (info.done) {\r\n resolve(value);\r\n } else {\r\n Promise.resolve(value).then(_next, _throw);\r\n }\r\n }\r\n\r\n function _asyncToGenerator(fn) {\r\n return function() {\r\n var self = this,\r\n args = arguments;\r\n return new Promise(function(resolve, reject) {\r\n var gen = fn.apply(self, args);\r\n\r\n function _next(value) {\r\n asyncGeneratorStep(\r\n gen,\r\n resolve,\r\n reject,\r\n _next,\r\n _throw,\r\n 'next',\r\n value\r\n );\r\n }\r\n\r\n function _throw(err) {\r\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, 'throw', err);\r\n }\r\n\r\n _next(undefined);\r\n });\r\n };\r\n }\r\n\r\n function _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError('Cannot call a class as a function');\r\n }\r\n }\r\n\r\n function _defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if ('value' in descriptor) descriptor.writable = true;\r\n Object.defineProperty(target, descriptor.key, descriptor);\r\n }\r\n }\r\n\r\n function _createClass(Constructor, protoProps, staticProps) {\r\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\r\n if (staticProps) _defineProperties(Constructor, staticProps);\r\n return Constructor;\r\n }\r\n\r\n function _defineEnumerableProperties(obj, descs) {\r\n for (var key in descs) {\r\n var desc = descs[key];\r\n desc.configurable = desc.enumerable = true;\r\n if ('value' in desc) desc.writable = true;\r\n Object.defineProperty(obj, key, desc);\r\n }\r\n\r\n if (Object.getOwnPropertySymbols) {\r\n var objectSymbols = Object.getOwnPropertySymbols(descs);\r\n\r\n for (var i = 0; i < objectSymbols.length; i++) {\r\n var sym = objectSymbols[i];\r\n var desc = descs[sym];\r\n desc.configurable = desc.enumerable = true;\r\n if ('value' in desc) desc.writable = true;\r\n Object.defineProperty(obj, sym, desc);\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n function _defaults(obj, defaults) {\r\n var keys = Object.getOwnPropertyNames(defaults);\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n var value = Object.getOwnPropertyDescriptor(defaults, key);\r\n\r\n if (value && value.configurable && obj[key] === undefined) {\r\n Object.defineProperty(obj, key, value);\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n function _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n });\r\n } else {\r\n obj[key] = value;\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n function _extends() {\r\n _extends =\r\n Object.assign ||\r\n function(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n\r\n for (var key in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n };\r\n\r\n return _extends.apply(this, arguments);\r\n }\r\n\r\n function _objectSpread(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = arguments[i] != null ? arguments[i] : {};\r\n var ownKeys = Object.keys(source);\r\n\r\n if (typeof Object.getOwnPropertySymbols === 'function') {\r\n ownKeys = ownKeys.concat(\r\n Object.getOwnPropertySymbols(source).filter(function(sym) {\r\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\r\n })\r\n );\r\n }\r\n\r\n ownKeys.forEach(function(key) {\r\n _defineProperty(target, key, source[key]);\r\n });\r\n }\r\n\r\n return target;\r\n }\r\n\r\n function ownKeys(object, enumerableOnly) {\r\n var keys = Object.keys(object);\r\n\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(object);\r\n if (enumerableOnly)\r\n symbols = symbols.filter(function(sym) {\r\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\r\n });\r\n keys.push.apply(keys, symbols);\r\n }\r\n\r\n return keys;\r\n }\r\n\r\n function _objectSpread2(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = arguments[i] != null ? arguments[i] : {};\r\n\r\n if (i % 2) {\r\n ownKeys(source, true).forEach(function(key) {\r\n _defineProperty(target, key, source[key]);\r\n });\r\n } else if (Object.getOwnPropertyDescriptors) {\r\n Object.defineProperties(\r\n target,\r\n Object.getOwnPropertyDescriptors(source)\r\n );\r\n } else {\r\n ownKeys(source).forEach(function(key) {\r\n Object.defineProperty(\r\n target,\r\n key,\r\n Object.getOwnPropertyDescriptor(source, key)\r\n );\r\n });\r\n }\r\n }\r\n\r\n return target;\r\n }\r\n\r\n function _inherits(subClass, superClass) {\r\n if (typeof superClass !== 'function' && superClass !== null) {\r\n throw new TypeError('Super expression must either be null or a function');\r\n }\r\n\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n if (superClass) _setPrototypeOf(subClass, superClass);\r\n }\r\n\r\n function _inheritsLoose(subClass, superClass) {\r\n subClass.prototype = Object.create(superClass.prototype);\r\n subClass.prototype.constructor = subClass;\r\n subClass.__proto__ = superClass;\r\n }\r\n\r\n function _getPrototypeOf(o) {\r\n _getPrototypeOf = Object.setPrototypeOf\r\n ? Object.getPrototypeOf\r\n : function _getPrototypeOf(o) {\r\n return o.__proto__ || Object.getPrototypeOf(o);\r\n };\r\n return _getPrototypeOf(o);\r\n }\r\n\r\n function _setPrototypeOf(o, p) {\r\n _setPrototypeOf =\r\n Object.setPrototypeOf ||\r\n function _setPrototypeOf(o, p) {\r\n o.__proto__ = p;\r\n return o;\r\n };\r\n\r\n return _setPrototypeOf(o, p);\r\n }\r\n\r\n function isNativeReflectConstruct() {\r\n if (typeof Reflect === 'undefined' || !Reflect.construct) return false;\r\n if (Reflect.construct.sham) return false;\r\n if (typeof Proxy === 'function') return true;\r\n\r\n try {\r\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n function _construct(Parent, args, Class) {\r\n if (isNativeReflectConstruct()) {\r\n _construct = Reflect.construct;\r\n } else {\r\n _construct = function _construct(Parent, args, Class) {\r\n var a = [null];\r\n a.push.apply(a, args);\r\n var Constructor = Function.bind.apply(Parent, a);\r\n var instance = new Constructor();\r\n if (Class) _setPrototypeOf(instance, Class.prototype);\r\n return instance;\r\n };\r\n }\r\n\r\n return _construct.apply(null, arguments);\r\n }\r\n\r\n function _isNativeFunction(fn) {\r\n return Function.toString.call(fn).indexOf('[native code]') !== -1;\r\n }\r\n\r\n function _wrapNativeSuper(Class) {\r\n var _cache = typeof Map === 'function' ? new Map() : undefined;\r\n\r\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\r\n if (Class === null || !_isNativeFunction(Class)) return Class;\r\n\r\n if (typeof Class !== 'function') {\r\n throw new TypeError(\r\n 'Super expression must either be null or a function'\r\n );\r\n }\r\n\r\n if (typeof _cache !== 'undefined') {\r\n if (_cache.has(Class)) return _cache.get(Class);\r\n\r\n _cache.set(Class, Wrapper);\r\n }\r\n\r\n function Wrapper() {\r\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\r\n }\r\n\r\n Wrapper.prototype = Object.create(Class.prototype, {\r\n constructor: {\r\n value: Wrapper,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n return _setPrototypeOf(Wrapper, Class);\r\n };\r\n\r\n return _wrapNativeSuper(Class);\r\n }\r\n\r\n function _instanceof(left, right) {\r\n if (\r\n right != null &&\r\n typeof Symbol !== 'undefined' &&\r\n right[Symbol.hasInstance]\r\n ) {\r\n return !!right[Symbol.hasInstance](left);\r\n } else {\r\n return left instanceof right;\r\n }\r\n }\r\n\r\n function _interopRequireDefault(obj) {\r\n return obj && obj.__esModule\r\n ? obj\r\n : {\r\n default: obj\r\n };\r\n }\r\n\r\n function _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj;\r\n } else {\r\n var newObj = {};\r\n\r\n if (obj != null) {\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc =\r\n Object.defineProperty && Object.getOwnPropertyDescriptor\r\n ? Object.getOwnPropertyDescriptor(obj, key)\r\n : {};\r\n\r\n if (desc.get || desc.set) {\r\n Object.defineProperty(newObj, key, desc);\r\n } else {\r\n newObj[key] = obj[key];\r\n }\r\n }\r\n }\r\n }\r\n\r\n newObj.default = obj;\r\n return newObj;\r\n }\r\n }\r\n\r\n function _newArrowCheck(innerThis, boundThis) {\r\n if (innerThis !== boundThis) {\r\n throw new TypeError('Cannot instantiate an arrow function');\r\n }\r\n }\r\n\r\n function _objectDestructuringEmpty(obj) {\r\n if (obj == null) throw new TypeError('Cannot destructure undefined');\r\n }\r\n\r\n function _objectWithoutPropertiesLoose(source, excluded) {\r\n if (source == null) return {};\r\n var target = {};\r\n var sourceKeys = Object.keys(source);\r\n var key, i;\r\n\r\n for (i = 0; i < sourceKeys.length; i++) {\r\n key = sourceKeys[i];\r\n if (excluded.indexOf(key) >= 0) continue;\r\n target[key] = source[key];\r\n }\r\n\r\n return target;\r\n }\r\n\r\n function _objectWithoutProperties(source, excluded) {\r\n if (source == null) return {};\r\n\r\n var target = _objectWithoutPropertiesLoose(source, excluded);\r\n\r\n var key, i;\r\n\r\n if (Object.getOwnPropertySymbols) {\r\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\r\n\r\n for (i = 0; i < sourceSymbolKeys.length; i++) {\r\n key = sourceSymbolKeys[i];\r\n if (excluded.indexOf(key) >= 0) continue;\r\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\r\n target[key] = source[key];\r\n }\r\n }\r\n\r\n return target;\r\n }\r\n\r\n function _assertThisInitialized(self) {\r\n if (self === void 0) {\r\n throw new ReferenceError(\r\n \"this hasn't been initialised - super() hasn't been called\"\r\n );\r\n }\r\n\r\n return self;\r\n }\r\n\r\n function _possibleConstructorReturn(self, call) {\r\n if (call && (typeof call === 'object' || typeof call === 'function')) {\r\n return call;\r\n }\r\n\r\n return _assertThisInitialized(self);\r\n }\r\n\r\n function _superPropBase(object, property) {\r\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\r\n object = _getPrototypeOf(object);\r\n if (object === null) break;\r\n }\r\n\r\n return object;\r\n }\r\n\r\n function _get(target, property, receiver) {\r\n if (typeof Reflect !== 'undefined' && Reflect.get) {\r\n _get = Reflect.get;\r\n } else {\r\n _get = function _get(target, property, receiver) {\r\n var base = _superPropBase(target, property);\r\n\r\n if (!base) return;\r\n var desc = Object.getOwnPropertyDescriptor(base, property);\r\n\r\n if (desc.get) {\r\n return desc.get.call(receiver);\r\n }\r\n\r\n return desc.value;\r\n };\r\n }\r\n\r\n return _get(target, property, receiver || target);\r\n }\r\n\r\n function set(target, property, value, receiver) {\r\n if (typeof Reflect !== 'undefined' && Reflect.set) {\r\n set = Reflect.set;\r\n } else {\r\n set = function set(target, property, value, receiver) {\r\n var base = _superPropBase(target, property);\r\n\r\n var desc;\r\n\r\n if (base) {\r\n desc = Object.getOwnPropertyDescriptor(base, property);\r\n\r\n if (desc.set) {\r\n desc.set.call(receiver, value);\r\n return true;\r\n } else if (!desc.writable) {\r\n return false;\r\n }\r\n }\r\n\r\n desc = Object.getOwnPropertyDescriptor(receiver, property);\r\n\r\n if (desc) {\r\n if (!desc.writable) {\r\n return false;\r\n }\r\n\r\n desc.value = value;\r\n Object.defineProperty(receiver, property, desc);\r\n } else {\r\n _defineProperty(receiver, property, value);\r\n }\r\n\r\n return true;\r\n };\r\n }\r\n\r\n return set(target, property, value, receiver);\r\n }\r\n\r\n function _set(target, property, value, receiver, isStrict) {\r\n var s = set(target, property, value, receiver || target);\r\n\r\n if (!s && isStrict) {\r\n throw new Error('failed to set property');\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function _taggedTemplateLiteral(strings, raw) {\r\n if (!raw) {\r\n raw = strings.slice(0);\r\n }\r\n\r\n return Object.freeze(\r\n Object.defineProperties(strings, {\r\n raw: {\r\n value: Object.freeze(raw)\r\n }\r\n })\r\n );\r\n }\r\n\r\n function _taggedTemplateLiteralLoose(strings, raw) {\r\n if (!raw) {\r\n raw = strings.slice(0);\r\n }\r\n\r\n strings.raw = raw;\r\n return strings;\r\n }\r\n\r\n function _temporalRef(val, name) {\r\n if (val === _temporalUndefined) {\r\n throw new ReferenceError(name + ' is not defined - temporal dead zone');\r\n } else {\r\n return val;\r\n }\r\n }\r\n\r\n function _readOnlyError(name) {\r\n throw new Error('\"' + name + '\" is read-only');\r\n }\r\n\r\n function _classNameTDZError(name) {\r\n throw new Error(\r\n 'Class \"' + name + '\" cannot be referenced in computed property keys.'\r\n );\r\n }\r\n\r\n var _temporalUndefined = {};\r\n\r\n function _slicedToArray(arr, i) {\r\n return (\r\n _arrayWithHoles(arr) ||\r\n _iterableToArrayLimit(arr, i) ||\r\n _nonIterableRest()\r\n );\r\n }\r\n\r\n function _slicedToArrayLoose(arr, i) {\r\n return (\r\n _arrayWithHoles(arr) ||\r\n _iterableToArrayLimitLoose(arr, i) ||\r\n _nonIterableRest()\r\n );\r\n }\r\n\r\n function _toArray(arr) {\r\n return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest();\r\n }\r\n\r\n function _toConsumableArray(arr) {\r\n return (\r\n _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread()\r\n );\r\n }\r\n\r\n function _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++)\r\n arr2[i] = arr[i];\r\n\r\n return arr2;\r\n }\r\n }\r\n\r\n function _arrayWithHoles(arr) {\r\n if (Array.isArray(arr)) return arr;\r\n }\r\n\r\n function _iterableToArray(iter) {\r\n if (\r\n Symbol.iterator in Object(iter) ||\r\n Object.prototype.toString.call(iter) === '[object Arguments]'\r\n )\r\n return Array.from(iter);\r\n }\r\n\r\n function _iterableToArrayLimit(arr, i) {\r\n var _arr = [];\r\n var _n = true;\r\n var _d = false;\r\n var _e = undefined;\r\n\r\n try {\r\n for (\r\n var _i = arr[Symbol.iterator](), _s;\r\n !(_n = (_s = _i.next()).done);\r\n _n = true\r\n ) {\r\n _arr.push(_s.value);\r\n\r\n if (i && _arr.length === i) break;\r\n }\r\n } catch (err) {\r\n _d = true;\r\n _e = err;\r\n } finally {\r\n try {\r\n if (!_n && _i['return'] != null) _i['return']();\r\n } finally {\r\n if (_d) throw _e;\r\n }\r\n }\r\n\r\n return _arr;\r\n }\r\n\r\n function _iterableToArrayLimitLoose(arr, i) {\r\n var _arr = [];\r\n\r\n for (\r\n var _iterator = arr[Symbol.iterator](), _step;\r\n !(_step = _iterator.next()).done;\r\n\r\n ) {\r\n _arr.push(_step.value);\r\n\r\n if (i && _arr.length === i) break;\r\n }\r\n\r\n return _arr;\r\n }\r\n\r\n function _nonIterableSpread() {\r\n throw new TypeError('Invalid attempt to spread non-iterable instance');\r\n }\r\n\r\n function _nonIterableRest() {\r\n throw new TypeError('Invalid attempt to destructure non-iterable instance');\r\n }\r\n\r\n function _skipFirstGeneratorNext(fn) {\r\n return function() {\r\n var it = fn.apply(this, arguments);\r\n it.next();\r\n return it;\r\n };\r\n }\r\n\r\n function _toPrimitive(input, hint) {\r\n if (typeof input !== 'object' || input === null) return input;\r\n var prim = input[Symbol.toPrimitive];\r\n\r\n if (prim !== undefined) {\r\n var res = prim.call(input, hint || 'default');\r\n if (typeof res !== 'object') return res;\r\n throw new TypeError('@@toPrimitive must return a primitive value.');\r\n }\r\n\r\n return (hint === 'string' ? String : Number)(input);\r\n }\r\n\r\n function _toPropertyKey(arg) {\r\n var key = _toPrimitive(arg, 'string');\r\n\r\n return typeof key === 'symbol' ? key : String(key);\r\n }\r\n\r\n function _initializerWarningHelper(descriptor, context) {\r\n throw new Error(\r\n 'Decorating class property failed. Please ensure that ' +\r\n 'proposal-class-properties is enabled and set to use loose mode. ' +\r\n 'To use proposal-class-properties in spec mode with decorators, wait for ' +\r\n 'the next major version of decorators in stage 2.'\r\n );\r\n }\r\n\r\n function _initializerDefineProperty(target, property, descriptor, context) {\r\n if (!descriptor) return;\r\n Object.defineProperty(target, property, {\r\n enumerable: descriptor.enumerable,\r\n configurable: descriptor.configurable,\r\n writable: descriptor.writable,\r\n value: descriptor.initializer\r\n ? descriptor.initializer.call(context)\r\n : void 0\r\n });\r\n }\r\n\r\n function _applyDecoratedDescriptor(\r\n target,\r\n property,\r\n decorators,\r\n descriptor,\r\n context\r\n ) {\r\n var desc = {};\r\n Object.keys(descriptor).forEach(function(key) {\r\n desc[key] = descriptor[key];\r\n });\r\n desc.enumerable = !!desc.enumerable;\r\n desc.configurable = !!desc.configurable;\r\n\r\n if ('value' in desc || desc.initializer) {\r\n desc.writable = true;\r\n }\r\n\r\n desc = decorators\r\n .slice()\r\n .reverse()\r\n .reduce(function(desc, decorator) {\r\n return decorator(target, property, desc) || desc;\r\n }, desc);\r\n\r\n if (context && desc.initializer !== void 0) {\r\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\r\n desc.initializer = undefined;\r\n }\r\n\r\n if (desc.initializer === void 0) {\r\n Object.defineProperty(target, property, desc);\r\n desc = null;\r\n }\r\n\r\n return desc;\r\n }\r\n\r\n var id = 0;\r\n\r\n function _classPrivateFieldLooseKey(name) {\r\n return '__private_' + id++ + '_' + name;\r\n }\r\n\r\n function _classPrivateFieldLooseBase(receiver, privateKey) {\r\n if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\r\n throw new TypeError('attempted to use private field on non-instance');\r\n }\r\n\r\n return receiver;\r\n }\r\n\r\n function _classPrivateFieldGet(receiver, privateMap) {\r\n var descriptor = privateMap.get(receiver);\r\n\r\n if (!descriptor) {\r\n throw new TypeError('attempted to get private field on non-instance');\r\n }\r\n\r\n if (descriptor.get) {\r\n return descriptor.get.call(receiver);\r\n }\r\n\r\n return descriptor.value;\r\n }\r\n\r\n function _classPrivateFieldSet(receiver, privateMap, value) {\r\n var descriptor = privateMap.get(receiver);\r\n\r\n if (!descriptor) {\r\n throw new TypeError('attempted to set private field on non-instance');\r\n }\r\n\r\n if (descriptor.set) {\r\n descriptor.set.call(receiver, value);\r\n } else {\r\n if (!descriptor.writable) {\r\n throw new TypeError('attempted to set read only private field');\r\n }\r\n\r\n descriptor.value = value;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function _classPrivateFieldDestructureSet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError('attempted to set private field on non-instance');\r\n }\r\n\r\n var descriptor = privateMap.get(receiver);\r\n\r\n if (descriptor.set) {\r\n if (!('__destrObj' in descriptor)) {\r\n descriptor.__destrObj = {\r\n set value(v) {\r\n descriptor.set.call(receiver, v);\r\n }\r\n };\r\n }\r\n\r\n return descriptor.__destrObj;\r\n } else {\r\n if (!descriptor.writable) {\r\n throw new TypeError('attempted to set read only private field');\r\n }\r\n\r\n return descriptor;\r\n }\r\n }\r\n\r\n function _classStaticPrivateFieldSpecGet(\r\n receiver,\r\n classConstructor,\r\n descriptor\r\n ) {\r\n if (receiver !== classConstructor) {\r\n throw new TypeError('Private static access of wrong provenance');\r\n }\r\n\r\n return descriptor.value;\r\n }\r\n\r\n function _classStaticPrivateFieldSpecSet(\r\n receiver,\r\n classConstructor,\r\n descriptor,\r\n value\r\n ) {\r\n if (receiver !== classConstructor) {\r\n throw new TypeError('Private static access of wrong provenance');\r\n }\r\n\r\n if (!descriptor.writable) {\r\n throw new TypeError('attempted to set read only private field');\r\n }\r\n\r\n descriptor.value = value;\r\n return value;\r\n }\r\n\r\n function _classStaticPrivateMethodGet(receiver, classConstructor, method) {\r\n if (receiver !== classConstructor) {\r\n throw new TypeError('Private static access of wrong provenance');\r\n }\r\n\r\n return method;\r\n }\r\n\r\n function _classStaticPrivateMethodSet() {\r\n throw new TypeError('attempted to set read only static private field');\r\n }\r\n\r\n function _decorate(decorators, factory, superClass, mixins) {\r\n var api = _getDecoratorsApi();\r\n\r\n if (mixins) {\r\n for (var i = 0; i < mixins.length; i++) {\r\n api = mixins[i](api);\r\n }\r\n }\r\n\r\n var r = factory(function initialize(O) {\r\n api.initializeInstanceElements(O, decorated.elements);\r\n }, superClass);\r\n var decorated = api.decorateClass(\r\n _coalesceClassElements(r.d.map(_createElementDescriptor)),\r\n decorators\r\n );\r\n api.initializeClassElements(r.F, decorated.elements);\r\n return api.runClassFinishers(r.F, decorated.finishers);\r\n }\r\n\r\n function _getDecoratorsApi() {\r\n _getDecoratorsApi = function() {\r\n return api;\r\n };\r\n\r\n var api = {\r\n elementsDefinitionOrder: [['method'], ['field']],\r\n initializeInstanceElements: function(O, elements) {\r\n ['method', 'field'].forEach(function(kind) {\r\n elements.forEach(function(element) {\r\n if (element.kind === kind && element.placement === 'own') {\r\n this.defineClassElement(O, element);\r\n }\r\n }, this);\r\n }, this);\r\n },\r\n initializeClassElements: function(F, elements) {\r\n var proto = F.prototype;\r\n ['method', 'field'].forEach(function(kind) {\r\n elements.forEach(function(element) {\r\n var placement = element.placement;\r\n\r\n if (\r\n element.kind === kind &&\r\n (placement === 'static' || placement === 'prototype')\r\n ) {\r\n var receiver = placement === 'static' ? F : proto;\r\n this.defineClassElement(receiver, element);\r\n }\r\n }, this);\r\n }, this);\r\n },\r\n defineClassElement: function(receiver, element) {\r\n var descriptor = element.descriptor;\r\n\r\n if (element.kind === 'field') {\r\n var initializer = element.initializer;\r\n descriptor = {\r\n enumerable: descriptor.enumerable,\r\n writable: descriptor.writable,\r\n configurable: descriptor.configurable,\r\n value: initializer === void 0 ? void 0 : initializer.call(receiver)\r\n };\r\n }\r\n\r\n Object.defineProperty(receiver, element.key, descriptor);\r\n },\r\n decorateClass: function(elements, decorators) {\r\n var newElements = [];\r\n var finishers = [];\r\n var placements = {\r\n static: [],\r\n prototype: [],\r\n own: []\r\n };\r\n elements.forEach(function(element) {\r\n this.addElementPlacement(element, placements);\r\n }, this);\r\n elements.forEach(function(element) {\r\n if (!_hasDecorators(element)) return newElements.push(element);\r\n var elementFinishersExtras = this.decorateElement(\r\n element,\r\n placements\r\n );\r\n newElements.push(elementFinishersExtras.element);\r\n newElements.push.apply(newElements, elementFinishersExtras.extras);\r\n finishers.push.apply(finishers, elementFinishersExtras.finishers);\r\n }, this);\r\n\r\n if (!decorators) {\r\n return {\r\n elements: newElements,\r\n finishers: finishers\r\n };\r\n }\r\n\r\n var result = this.decorateConstructor(newElements, decorators);\r\n finishers.push.apply(finishers, result.finishers);\r\n result.finishers = finishers;\r\n return result;\r\n },\r\n addElementPlacement: function(element, placements, silent) {\r\n var keys = placements[element.placement];\r\n\r\n if (!silent && keys.indexOf(element.key) !== -1) {\r\n throw new TypeError('Duplicated element (' + element.key + ')');\r\n }\r\n\r\n keys.push(element.key);\r\n },\r\n decorateElement: function(element, placements) {\r\n var extras = [];\r\n var finishers = [];\r\n\r\n for (\r\n var decorators = element.decorators, i = decorators.length - 1;\r\n i >= 0;\r\n i--\r\n ) {\r\n var keys = placements[element.placement];\r\n keys.splice(keys.indexOf(element.key), 1);\r\n var elementObject = this.fromElementDescriptor(element);\r\n var elementFinisherExtras = this.toElementFinisherExtras(\r\n (0, decorators[i])(elementObject) || elementObject\r\n );\r\n element = elementFinisherExtras.element;\r\n this.addElementPlacement(element, placements);\r\n\r\n if (elementFinisherExtras.finisher) {\r\n finishers.push(elementFinisherExtras.finisher);\r\n }\r\n\r\n var newExtras = elementFinisherExtras.extras;\r\n\r\n if (newExtras) {\r\n for (var j = 0; j < newExtras.length; j++) {\r\n this.addElementPlacement(newExtras[j], placements);\r\n }\r\n\r\n extras.push.apply(extras, newExtras);\r\n }\r\n }\r\n\r\n return {\r\n element: element,\r\n finishers: finishers,\r\n extras: extras\r\n };\r\n },\r\n decorateConstructor: function(elements, decorators) {\r\n var finishers = [];\r\n\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var obj = this.fromClassDescriptor(elements);\r\n var elementsAndFinisher = this.toClassDescriptor(\r\n (0, decorators[i])(obj) || obj\r\n );\r\n\r\n if (elementsAndFinisher.finisher !== undefined) {\r\n finishers.push(elementsAndFinisher.finisher);\r\n }\r\n\r\n if (elementsAndFinisher.elements !== undefined) {\r\n elements = elementsAndFinisher.elements;\r\n\r\n for (var j = 0; j < elements.length - 1; j++) {\r\n for (var k = j + 1; k < elements.length; k++) {\r\n if (\r\n elements[j].key === elements[k].key &&\r\n elements[j].placement === elements[k].placement\r\n ) {\r\n throw new TypeError(\r\n 'Duplicated element (' + elements[j].key + ')'\r\n );\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return {\r\n elements: elements,\r\n finishers: finishers\r\n };\r\n },\r\n fromElementDescriptor: function(element) {\r\n var obj = {\r\n kind: element.kind,\r\n key: element.key,\r\n placement: element.placement,\r\n descriptor: element.descriptor\r\n };\r\n var desc = {\r\n value: 'Descriptor',\r\n configurable: true\r\n };\r\n Object.defineProperty(obj, Symbol.toStringTag, desc);\r\n if (element.kind === 'field') obj.initializer = element.initializer;\r\n return obj;\r\n },\r\n toElementDescriptors: function(elementObjects) {\r\n if (elementObjects === undefined) return;\r\n return _toArray(elementObjects).map(function(elementObject) {\r\n var element = this.toElementDescriptor(elementObject);\r\n this.disallowProperty(\r\n elementObject,\r\n 'finisher',\r\n 'An element descriptor'\r\n );\r\n this.disallowProperty(\r\n elementObject,\r\n 'extras',\r\n 'An element descriptor'\r\n );\r\n return element;\r\n }, this);\r\n },\r\n toElementDescriptor: function(elementObject) {\r\n var kind = String(elementObject.kind);\r\n\r\n if (kind !== 'method' && kind !== 'field') {\r\n throw new TypeError(\r\n 'An element descriptor\\'s .kind property must be either \"method\" or' +\r\n ' \"field\", but a decorator created an element descriptor with' +\r\n ' .kind \"' +\r\n kind +\r\n '\"'\r\n );\r\n }\r\n\r\n var key = _toPropertyKey(elementObject.key);\r\n\r\n var placement = String(elementObject.placement);\r\n\r\n if (\r\n placement !== 'static' &&\r\n placement !== 'prototype' &&\r\n placement !== 'own'\r\n ) {\r\n throw new TypeError(\r\n 'An element descriptor\\'s .placement property must be one of \"static\",' +\r\n ' \"prototype\" or \"own\", but a decorator created an element descriptor' +\r\n ' with .placement \"' +\r\n placement +\r\n '\"'\r\n );\r\n }\r\n\r\n var descriptor = elementObject.descriptor;\r\n this.disallowProperty(\r\n elementObject,\r\n 'elements',\r\n 'An element descriptor'\r\n );\r\n var element = {\r\n kind: kind,\r\n key: key,\r\n placement: placement,\r\n descriptor: Object.assign({}, descriptor)\r\n };\r\n\r\n if (kind !== 'field') {\r\n this.disallowProperty(\r\n elementObject,\r\n 'initializer',\r\n 'A method descriptor'\r\n );\r\n } else {\r\n this.disallowProperty(\r\n descriptor,\r\n 'get',\r\n 'The property descriptor of a field descriptor'\r\n );\r\n this.disallowProperty(\r\n descriptor,\r\n 'set',\r\n 'The property descriptor of a field descriptor'\r\n );\r\n this.disallowProperty(\r\n descriptor,\r\n 'value',\r\n 'The property descriptor of a field descriptor'\r\n );\r\n element.initializer = elementObject.initializer;\r\n }\r\n\r\n return element;\r\n },\r\n toElementFinisherExtras: function(elementObject) {\r\n var element = this.toElementDescriptor(elementObject);\r\n\r\n var finisher = _optionalCallableProperty(elementObject, 'finisher');\r\n\r\n var extras = this.toElementDescriptors(elementObject.extras);\r\n return {\r\n element: element,\r\n finisher: finisher,\r\n extras: extras\r\n };\r\n },\r\n fromClassDescriptor: function(elements) {\r\n var obj = {\r\n kind: 'class',\r\n elements: elements.map(this.fromElementDescriptor, this)\r\n };\r\n var desc = {\r\n value: 'Descriptor',\r\n configurable: true\r\n };\r\n Object.defineProperty(obj, Symbol.toStringTag, desc);\r\n return obj;\r\n },\r\n toClassDescriptor: function(obj) {\r\n var kind = String(obj.kind);\r\n\r\n if (kind !== 'class') {\r\n throw new TypeError(\r\n 'A class descriptor\\'s .kind property must be \"class\", but a decorator' +\r\n ' created a class descriptor with .kind \"' +\r\n kind +\r\n '\"'\r\n );\r\n }\r\n\r\n this.disallowProperty(obj, 'key', 'A class descriptor');\r\n this.disallowProperty(obj, 'placement', 'A class descriptor');\r\n this.disallowProperty(obj, 'descriptor', 'A class descriptor');\r\n this.disallowProperty(obj, 'initializer', 'A class descriptor');\r\n this.disallowProperty(obj, 'extras', 'A class descriptor');\r\n\r\n var finisher = _optionalCallableProperty(obj, 'finisher');\r\n\r\n var elements = this.toElementDescriptors(obj.elements);\r\n return {\r\n elements: elements,\r\n finisher: finisher\r\n };\r\n },\r\n runClassFinishers: function(constructor, finishers) {\r\n for (var i = 0; i < finishers.length; i++) {\r\n var newConstructor = (0, finishers[i])(constructor);\r\n\r\n if (newConstructor !== undefined) {\r\n if (typeof newConstructor !== 'function') {\r\n throw new TypeError('Finishers must return a constructor.');\r\n }\r\n\r\n constructor = newConstructor;\r\n }\r\n }\r\n\r\n return constructor;\r\n },\r\n disallowProperty: function(obj, name, objectType) {\r\n if (obj[name] !== undefined) {\r\n throw new TypeError(\r\n objectType + \" can't have a .\" + name + ' property.'\r\n );\r\n }\r\n }\r\n };\r\n return api;\r\n }\r\n\r\n function _createElementDescriptor(def) {\r\n var key = _toPropertyKey(def.key);\r\n\r\n var descriptor;\r\n\r\n if (def.kind === 'method') {\r\n descriptor = {\r\n value: def.value,\r\n writable: true,\r\n configurable: true,\r\n enumerable: false\r\n };\r\n } else if (def.kind === 'get') {\r\n descriptor = {\r\n get: def.value,\r\n configurable: true,\r\n enumerable: false\r\n };\r\n } else if (def.kind === 'set') {\r\n descriptor = {\r\n set: def.value,\r\n configurable: true,\r\n enumerable: false\r\n };\r\n } else if (def.kind === 'field') {\r\n descriptor = {\r\n configurable: true,\r\n writable: true,\r\n enumerable: true\r\n };\r\n }\r\n\r\n var element = {\r\n kind: def.kind === 'field' ? 'field' : 'method',\r\n key: key,\r\n placement: def.static\r\n ? 'static'\r\n : def.kind === 'field'\r\n ? 'own'\r\n : 'prototype',\r\n descriptor: descriptor\r\n };\r\n if (def.decorators) element.decorators = def.decorators;\r\n if (def.kind === 'field') element.initializer = def.value;\r\n return element;\r\n }\r\n\r\n function _coalesceGetterSetter(element, other) {\r\n if (element.descriptor.get !== undefined) {\r\n other.descriptor.get = element.descriptor.get;\r\n } else {\r\n other.descriptor.set = element.descriptor.set;\r\n }\r\n }\r\n\r\n function _coalesceClassElements(elements) {\r\n var newElements = [];\r\n\r\n var isSameElement = function(other) {\r\n return (\r\n other.kind === 'method' &&\r\n other.key === element.key &&\r\n other.placement === element.placement\r\n );\r\n };\r\n\r\n for (var i = 0; i < elements.length; i++) {\r\n var element = elements[i];\r\n var other;\r\n\r\n if (\r\n element.kind === 'method' &&\r\n (other = newElements.find(isSameElement))\r\n ) {\r\n if (\r\n _isDataDescriptor(element.descriptor) ||\r\n _isDataDescriptor(other.descriptor)\r\n ) {\r\n if (_hasDecorators(element) || _hasDecorators(other)) {\r\n throw new ReferenceError(\r\n 'Duplicated methods (' + element.key + \") can't be decorated.\"\r\n );\r\n }\r\n\r\n other.descriptor = element.descriptor;\r\n } else {\r\n if (_hasDecorators(element)) {\r\n if (_hasDecorators(other)) {\r\n throw new ReferenceError(\r\n \"Decorators can't be placed on different accessors with for \" +\r\n 'the same property (' +\r\n element.key +\r\n ').'\r\n );\r\n }\r\n\r\n other.decorators = element.decorators;\r\n }\r\n\r\n _coalesceGetterSetter(element, other);\r\n }\r\n } else {\r\n newElements.push(element);\r\n }\r\n }\r\n\r\n return newElements;\r\n }\r\n\r\n function _hasDecorators(element) {\r\n return element.decorators && element.decorators.length;\r\n }\r\n\r\n function _isDataDescriptor(desc) {\r\n return (\r\n desc !== undefined &&\r\n !(desc.value === undefined && desc.writable === undefined)\r\n );\r\n }\r\n\r\n function _optionalCallableProperty(obj, name) {\r\n var value = obj[name];\r\n\r\n if (value !== undefined && typeof value !== 'function') {\r\n throw new TypeError(\"Expected '\" + name + \"' to be a function\");\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function _classPrivateMethodGet(receiver, privateSet, fn) {\r\n if (!privateSet.has(receiver)) {\r\n throw new TypeError('attempted to get private field on non-instance');\r\n }\r\n\r\n return fn;\r\n }\r\n\r\n function _classPrivateMethodSet() {\r\n throw new TypeError('attempted to reassign private method');\r\n }\r\n\r\n function _wrapRegExp(re, groups) {\r\n _wrapRegExp = function(re, groups) {\r\n return new BabelRegExp(re, groups);\r\n };\r\n\r\n var _RegExp = _wrapNativeSuper(RegExp);\r\n\r\n var _super = RegExp.prototype;\r\n\r\n var _groups = new WeakMap();\r\n\r\n function BabelRegExp(re, groups) {\r\n var _this = _RegExp.call(this, re);\r\n\r\n _groups.set(_this, groups);\r\n\r\n return _this;\r\n }\r\n\r\n _inherits(BabelRegExp, _RegExp);\r\n\r\n BabelRegExp.prototype.exec = function(str) {\r\n var result = _super.exec.call(this, str);\r\n\r\n if (result) result.groups = buildGroups(result, this);\r\n return result;\r\n };\r\n\r\n BabelRegExp.prototype[Symbol.replace] = function(str, substitution) {\r\n if (typeof substitution === 'string') {\r\n var groups = _groups.get(this);\r\n\r\n return _super[Symbol.replace].call(\r\n this,\r\n str,\r\n substitution.replace(/\\$<([^>]+)>/g, function(_, name) {\r\n return '$' + groups[name];\r\n })\r\n );\r\n } else if (typeof substitution === 'function') {\r\n var _this = this;\r\n\r\n return _super[Symbol.replace].call(this, str, function() {\r\n var args = [];\r\n args.push.apply(args, arguments);\r\n\r\n if (typeof args[args.length - 1] !== 'object') {\r\n args.push(buildGroups(args, _this));\r\n }\r\n\r\n return substitution.apply(this, args);\r\n });\r\n } else {\r\n return _super[Symbol.replace].call(this, str, substitution);\r\n }\r\n };\r\n\r\n function buildGroups(result, re) {\r\n var g = _groups.get(re);\r\n\r\n return Object.keys(g).reduce(function(groups, name) {\r\n groups[name] = result[g[name]];\r\n return groups;\r\n }, Object.create(null));\r\n }\r\n\r\n return _wrapRegExp.apply(this, arguments);\r\n }\r\n\r\n var arrayRemove = function arrayRemove(arr, index) {\r\n return arr.splice(index, 1);\r\n };\r\n\r\n var run = function run(cb, sync) {\r\n if (sync) {\r\n cb();\r\n } else if (document.hidden) {\r\n Promise.resolve(1).then(cb);\r\n } else {\r\n setTimeout(cb, 0);\r\n }\r\n };\r\n\r\n var on = function on() {\r\n var listeners = [];\r\n var off = function off(event, cb) {\r\n arrayRemove(\r\n listeners,\r\n listeners.findIndex(function(listener) {\r\n return listener.event === event && (listener.cb === cb || !cb);\r\n })\r\n );\r\n };\r\n var _fire = function fire(event, args, sync) {\r\n listeners\r\n .filter(function(listener) {\r\n return listener.event === event;\r\n })\r\n .map(function(listener) {\r\n return listener.cb;\r\n })\r\n .forEach(function(cb) {\r\n return run(function() {\r\n return cb.apply(void 0, _toConsumableArray(args));\r\n }, sync);\r\n });\r\n };\r\n return {\r\n fireSync: function fireSync(event) {\r\n for (\r\n var _len = arguments.length,\r\n args = new Array(_len > 1 ? _len - 1 : 0),\r\n _key = 1;\r\n _key < _len;\r\n _key++\r\n ) {\r\n args[_key - 1] = arguments[_key];\r\n }\r\n _fire(event, args, true);\r\n },\r\n fire: function fire(event) {\r\n for (\r\n var _len2 = arguments.length,\r\n args = new Array(_len2 > 1 ? _len2 - 1 : 0),\r\n _key2 = 1;\r\n _key2 < _len2;\r\n _key2++\r\n ) {\r\n args[_key2 - 1] = arguments[_key2];\r\n }\r\n _fire(event, args, false);\r\n },\r\n on: function on(event, cb) {\r\n listeners.push({ event: event, cb: cb });\r\n },\r\n onOnce: function onOnce(event, _cb) {\r\n listeners.push({\r\n event: event,\r\n cb: function cb() {\r\n off(event, _cb);\r\n _cb.apply(void 0, arguments);\r\n }\r\n });\r\n },\r\n off: off\r\n };\r\n };\r\n\r\n var copyObjectPropertiesToObject = function copyObjectPropertiesToObject(\r\n src,\r\n target,\r\n excluded\r\n ) {\r\n Object.getOwnPropertyNames(src)\r\n .filter(function(property) {\r\n return !excluded.includes(property);\r\n })\r\n .forEach(function(key) {\r\n return Object.defineProperty(\r\n target,\r\n key,\r\n Object.getOwnPropertyDescriptor(src, key)\r\n );\r\n });\r\n };\r\n\r\n var PRIVATE = [\r\n 'fire',\r\n 'process',\r\n 'revert',\r\n 'load',\r\n 'on',\r\n 'off',\r\n 'onOnce',\r\n 'retryLoad',\r\n 'extend',\r\n 'archive',\r\n 'archived',\r\n 'release',\r\n 'released',\r\n 'requestProcessing',\r\n 'freeze'\r\n ];\r\n\r\n var createItemAPI = function createItemAPI(item) {\r\n var api = {};\r\n copyObjectPropertiesToObject(item, api, PRIVATE);\r\n return api;\r\n };\r\n\r\n var removeReleasedItems = function removeReleasedItems(items) {\r\n items.forEach(function(item, index) {\r\n if (item.released) {\r\n arrayRemove(items, index);\r\n }\r\n });\r\n };\r\n\r\n var ItemStatus = {\r\n INIT: 1,\r\n IDLE: 2,\r\n PROCESSING_QUEUED: 9,\r\n PROCESSING: 3,\r\n PROCESSING_COMPLETE: 5,\r\n PROCESSING_ERROR: 6,\r\n PROCESSING_REVERT_ERROR: 10,\r\n LOADING: 7,\r\n LOAD_ERROR: 8\r\n };\r\n\r\n var FileOrigin = {\r\n INPUT: 1,\r\n LIMBO: 2,\r\n LOCAL: 3\r\n };\r\n\r\n var getNonNumeric = function getNonNumeric(str) {\r\n return /[^0-9]+/.exec(str);\r\n };\r\n\r\n var getDecimalSeparator = function getDecimalSeparator() {\r\n return getNonNumeric((1.1).toLocaleString())[0];\r\n };\r\n\r\n var getThousandsSeparator = function getThousandsSeparator() {\r\n // Added for browsers that do not return the thousands separator (happend on native browser Android 4.4.4)\r\n // We check against the normal toString output and if they're the same return a comma when decimal separator is a dot\r\n var decimalSeparator = getDecimalSeparator();\r\n var thousandsStringWithSeparator = (1000.0).toLocaleString();\r\n var thousandsStringWithoutSeparator = (1000.0).toString();\r\n if (thousandsStringWithSeparator !== thousandsStringWithoutSeparator) {\r\n return getNonNumeric(thousandsStringWithSeparator)[0];\r\n }\r\n return decimalSeparator === '.' ? ',' : '.';\r\n };\r\n\r\n var Type = {\r\n BOOLEAN: 'boolean',\r\n INT: 'int',\r\n NUMBER: 'number',\r\n STRING: 'string',\r\n ARRAY: 'array',\r\n OBJECT: 'object',\r\n FUNCTION: 'function',\r\n ACTION: 'action',\r\n SERVER_API: 'serverapi',\r\n REGEX: 'regex'\r\n };\r\n\r\n // all registered filters\r\n var filters = [];\r\n\r\n // loops over matching filters and passes options to each filter, returning the mapped results\r\n var applyFilterChain = function applyFilterChain(key, value, utils) {\r\n return new Promise(function(resolve, reject) {\r\n // find matching filters for this key\r\n var matchingFilters = filters\r\n .filter(function(f) {\r\n return f.key === key;\r\n })\r\n .map(function(f) {\r\n return f.cb;\r\n });\r\n\r\n // resolve now\r\n if (matchingFilters.length === 0) {\r\n resolve(value);\r\n return;\r\n }\r\n\r\n // first filter to kick things of\r\n var initialFilter = matchingFilters.shift();\r\n\r\n // chain filters\r\n matchingFilters\r\n .reduce(\r\n // loop over promises passing value to next promise\r\n function(current, next) {\r\n return current.then(function(value) {\r\n return next(value, utils);\r\n });\r\n },\r\n\r\n // call initial filter, will return a promise\r\n initialFilter(value, utils)\r\n\r\n // all executed\r\n )\r\n .then(function(value) {\r\n return resolve(value);\r\n })\r\n .catch(function(error) {\r\n return reject(error);\r\n });\r\n });\r\n };\r\n\r\n var applyFilters = function applyFilters(key, value, utils) {\r\n return filters\r\n .filter(function(f) {\r\n return f.key === key;\r\n })\r\n .map(function(f) {\r\n return f.cb(value, utils);\r\n });\r\n };\r\n\r\n // adds a new filter to the list\r\n var addFilter = function addFilter(key, cb) {\r\n return filters.push({ key: key, cb: cb });\r\n };\r\n\r\n var extendDefaultOptions = function extendDefaultOptions(additionalOptions) {\r\n return Object.assign(defaultOptions, additionalOptions);\r\n };\r\n\r\n var getOptions = function getOptions() {\r\n return Object.assign({}, defaultOptions);\r\n };\r\n\r\n var setOptions = function setOptions(opts) {\r\n forin(opts, function(key, value) {\r\n // key does not exist, so this option cannot be set\r\n if (!defaultOptions[key]) {\r\n return;\r\n }\r\n defaultOptions[key][0] = getValueByType(\r\n value,\r\n defaultOptions[key][0],\r\n defaultOptions[key][1]\r\n );\r\n });\r\n };\r\n\r\n // default options on app\r\n var defaultOptions = {\r\n // the id to add to the root element\r\n id: [null, Type.STRING],\r\n\r\n // input field name to use\r\n name: ['filepond', Type.STRING],\r\n\r\n // disable the field\r\n disabled: [false, Type.BOOLEAN],\r\n\r\n // classname to put on wrapper\r\n className: [null, Type.STRING],\r\n\r\n // is the field required\r\n required: [false, Type.BOOLEAN],\r\n\r\n // Allow media capture when value is set\r\n captureMethod: [null, Type.STRING],\r\n // - \"camera\", \"microphone\" or \"camcorder\",\r\n // - Does not work with multiple on apple devices\r\n // - If set, acceptedFileTypes must be made to match with media wildcard \"image/*\", \"audio/*\" or \"video/*\"\r\n\r\n // sync `acceptedFileTypes` property with `accept` attribute\r\n allowSyncAcceptAttribute: [true, Type.BOOLEAN],\r\n\r\n // Feature toggles\r\n allowDrop: [true, Type.BOOLEAN], // Allow dropping of files\r\n allowBrowse: [true, Type.BOOLEAN], // Allow browsing the file system\r\n allowPaste: [true, Type.BOOLEAN], // Allow pasting files\r\n allowMultiple: [false, Type.BOOLEAN], // Allow multiple files (disabled by default, as multiple attribute is also required on input to allow multiple)\r\n allowReplace: [true, Type.BOOLEAN], // Allow dropping a file on other file to replace it (only works when multiple is set to false)\r\n allowRevert: [true, Type.BOOLEAN], // Allows user to revert file upload\r\n allowRemove: [true, Type.BOOLEAN], // Allow user to remove a file\r\n allowProcess: [true, Type.BOOLEAN], // Allows user to process a file, when set to false, this removes the file upload button\r\n allowReorder: [false, Type.BOOLEAN], // Allow reordering of files\r\n allowDirectoriesOnly: [false, Type.BOOLEAN], // Allow only selecting directories with browse (no support for filtering dnd at this point)\r\n\r\n // Revert mode\r\n forceRevert: [false, Type.BOOLEAN], // Set to 'force' to require the file to be reverted before removal\r\n\r\n // Input requirements\r\n maxFiles: [null, Type.INT], // Max number of files\r\n checkValidity: [false, Type.BOOLEAN], // Enables custom validity messages\r\n\r\n // Where to put file\r\n itemInsertLocationFreedom: [true, Type.BOOLEAN], // Set to false to always add items to begin or end of list\r\n itemInsertLocation: ['before', Type.STRING], // Default index in list to add items that have been dropped at the top of the list\r\n itemInsertInterval: [75, Type.INT],\r\n\r\n // Drag 'n Drop related\r\n dropOnPage: [false, Type.BOOLEAN], // Allow dropping of files anywhere on page (prevents browser from opening file if dropped outside of Up)\r\n dropOnElement: [true, Type.BOOLEAN], // Drop needs to happen on element (set to false to also load drops outside of Up)\r\n dropValidation: [false, Type.BOOLEAN], // Enable or disable validating files on drop\r\n ignoredFiles: [['.ds_store', 'thumbs.db', 'desktop.ini'], Type.ARRAY],\r\n\r\n // Upload related\r\n instantUpload: [true, Type.BOOLEAN], // Should upload files immediately on drop\r\n maxParallelUploads: [2, Type.INT], // Maximum files to upload in parallel\r\n\r\n // Chunks\r\n chunkUploads: [false, Type.BOOLEAN], // Enable chunked uploads\r\n chunkForce: [false, Type.BOOLEAN], // Force use of chunk uploads even for files smaller than chunk size\r\n chunkSize: [5000000, Type.INT], // Size of chunks (5MB default)\r\n chunkRetryDelays: [[500, 1000, 3000], Type.Array], // Amount of times to retry upload of a chunk when it fails\r\n\r\n // The server api end points to use for uploading (see docs)\r\n server: [null, Type.SERVER_API],\r\n\r\n // File size calculations, can set to 1024, this is only used for display, properties use file size base 1000\r\n fileSizeBase: [1000, Type.INT],\r\n\r\n // Labels and status messages\r\n labelDecimalSeparator: [getDecimalSeparator(), Type.STRING], // Default is locale separator\r\n labelThousandsSeparator: [getThousandsSeparator(), Type.STRING], // Default is locale separator\r\n\r\n labelIdle: [\r\n 'Drag & Drop your files or Browse',\r\n Type.STRING\r\n ],\r\n labelInvalidField: ['Field contains invalid files', Type.STRING],\r\n labelFileWaitingForSize: ['Waiting for size', Type.STRING],\r\n labelFileSizeNotAvailable: ['Size not available', Type.STRING],\r\n labelFileCountSingular: ['file in list', Type.STRING],\r\n labelFileCountPlural: ['files in list', Type.STRING],\r\n labelFileLoading: ['Loading', Type.STRING],\r\n labelFileAdded: ['Added', Type.STRING], // assistive only\r\n labelFileLoadError: ['Error during load', Type.STRING],\r\n labelFileRemoved: ['Removed', Type.STRING], // assistive only\r\n labelFileRemoveError: ['Error during remove', Type.STRING],\r\n labelFileProcessing: ['Uploading', Type.STRING],\r\n labelFileProcessingComplete: ['Upload complete', Type.STRING],\r\n labelFileProcessingAborted: ['Upload cancelled', Type.STRING],\r\n labelFileProcessingError: ['Error during upload', Type.STRING],\r\n labelFileProcessingRevertError: ['Error during revert', Type.STRING],\r\n\r\n labelTapToCancel: ['tap to cancel', Type.STRING],\r\n labelTapToRetry: ['tap to retry', Type.STRING],\r\n labelTapToUndo: ['tap to undo', Type.STRING],\r\n\r\n labelButtonRemoveItem: ['Remove', Type.STRING],\r\n labelButtonAbortItemLoad: ['Abort', Type.STRING],\r\n labelButtonRetryItemLoad: ['Retry', Type.STRING],\r\n labelButtonAbortItemProcessing: ['Cancel', Type.STRING],\r\n labelButtonUndoItemProcessing: ['Undo', Type.STRING],\r\n labelButtonRetryItemProcessing: ['Retry', Type.STRING],\r\n labelButtonProcessItem: ['Upload', Type.STRING],\r\n\r\n // make sure width and height plus viewpox are even numbers so icons are nicely centered\r\n iconRemove: [\r\n '',\r\n Type.STRING\r\n ],\r\n\r\n iconProcess: [\r\n '',\r\n Type.STRING\r\n ],\r\n\r\n iconRetry: [\r\n '',\r\n Type.STRING\r\n ],\r\n\r\n iconUndo: [\r\n '',\r\n Type.STRING\r\n ],\r\n\r\n iconDone: [\r\n '',\r\n Type.STRING\r\n ],\r\n\r\n // event handlers\r\n oninit: [null, Type.FUNCTION],\r\n onwarning: [null, Type.FUNCTION],\r\n onerror: [null, Type.FUNCTION],\r\n onactivatefile: [null, Type.FUNCTION],\r\n oninitfile: [null, Type.FUNCTION],\r\n onaddfilestart: [null, Type.FUNCTION],\r\n onaddfileprogress: [null, Type.FUNCTION],\r\n onaddfile: [null, Type.FUNCTION],\r\n onprocessfilestart: [null, Type.FUNCTION],\r\n onprocessfileprogress: [null, Type.FUNCTION],\r\n onprocessfileabort: [null, Type.FUNCTION],\r\n onprocessfilerevert: [null, Type.FUNCTION],\r\n onprocessfile: [null, Type.FUNCTION],\r\n onprocessfiles: [null, Type.FUNCTION],\r\n onremovefile: [null, Type.FUNCTION],\r\n onpreparefile: [null, Type.FUNCTION],\r\n onupdatefiles: [null, Type.FUNCTION],\r\n onreorderfiles: [null, Type.FUNCTION],\r\n\r\n // hooks\r\n beforeDropFile: [null, Type.FUNCTION],\r\n beforeAddFile: [null, Type.FUNCTION],\r\n beforeRemoveFile: [null, Type.FUNCTION],\r\n\r\n // styles\r\n stylePanelLayout: [null, Type.STRING], // null 'integrated', 'compact', 'circle'\r\n stylePanelAspectRatio: [null, Type.STRING], // null or '3:2' or 1\r\n styleItemPanelAspectRatio: [null, Type.STRING],\r\n styleButtonRemoveItemPosition: ['left', Type.STRING],\r\n styleButtonProcessItemPosition: ['right', Type.STRING],\r\n styleLoadIndicatorPosition: ['right', Type.STRING],\r\n styleProgressIndicatorPosition: ['right', Type.STRING],\r\n styleButtonRemoveItemAlign: [false, Type.BOOLEAN],\r\n\r\n // custom initial files array\r\n files: [[], Type.ARRAY]\r\n };\r\n\r\n var getItemByQuery = function getItemByQuery(items, query) {\r\n // just return first index\r\n if (isEmpty(query)) {\r\n return items[0] || null;\r\n }\r\n\r\n // query is index\r\n if (isInt(query)) {\r\n return items[query] || null;\r\n }\r\n\r\n // if query is item, get the id\r\n if (typeof query === 'object') {\r\n query = query.id;\r\n }\r\n\r\n // assume query is a string and return item by id\r\n return (\r\n items.find(function(item) {\r\n return item.id === query;\r\n }) || null\r\n );\r\n };\r\n\r\n var getNumericAspectRatioFromString = function getNumericAspectRatioFromString(\r\n aspectRatio\r\n ) {\r\n if (isEmpty(aspectRatio)) {\r\n return aspectRatio;\r\n }\r\n if (/:/.test(aspectRatio)) {\r\n var parts = aspectRatio.split(':');\r\n return parts[1] / parts[0];\r\n }\r\n return parseFloat(aspectRatio);\r\n };\r\n\r\n var getActiveItems = function getActiveItems(items) {\r\n return items.filter(function(item) {\r\n return !item.archived;\r\n });\r\n };\r\n\r\n var Status = {\r\n EMPTY: 0,\r\n IDLE: 1, // waiting\r\n ERROR: 2, // a file is in error state\r\n BUSY: 3, // busy processing or loading\r\n READY: 4 // all files uploaded\r\n };\r\n\r\n var ITEM_ERROR = [\r\n ItemStatus.LOAD_ERROR,\r\n ItemStatus.PROCESSING_ERROR,\r\n ItemStatus.PROCESSING_REVERT_ERROR\r\n ];\r\n var ITEM_BUSY = [\r\n ItemStatus.LOADING,\r\n ItemStatus.PROCESSING,\r\n ItemStatus.PROCESSING_QUEUED,\r\n ItemStatus.INIT\r\n ];\r\n var ITEM_READY = [ItemStatus.PROCESSING_COMPLETE];\r\n\r\n var isItemInErrorState = function isItemInErrorState(item) {\r\n return ITEM_ERROR.includes(item.status);\r\n };\r\n var isItemInBusyState = function isItemInBusyState(item) {\r\n return ITEM_BUSY.includes(item.status);\r\n };\r\n var isItemInReadyState = function isItemInReadyState(item) {\r\n return ITEM_READY.includes(item.status);\r\n };\r\n\r\n var queries = function queries(state) {\r\n return {\r\n GET_STATUS: function GET_STATUS() {\r\n var items = getActiveItems(state.items);\r\n var EMPTY = Status.EMPTY,\r\n ERROR = Status.ERROR,\r\n BUSY = Status.BUSY,\r\n IDLE = Status.IDLE,\r\n READY = Status.READY;\r\n\r\n if (items.length === 0) return EMPTY;\r\n\r\n if (items.some(isItemInErrorState)) return ERROR;\r\n\r\n if (items.some(isItemInBusyState)) return BUSY;\r\n\r\n if (items.some(isItemInReadyState)) return READY;\r\n\r\n return IDLE;\r\n },\r\n\r\n GET_ITEM: function GET_ITEM(query) {\r\n return getItemByQuery(state.items, query);\r\n },\r\n\r\n GET_ACTIVE_ITEM: function GET_ACTIVE_ITEM(query) {\r\n return getItemByQuery(getActiveItems(state.items), query);\r\n },\r\n\r\n GET_ACTIVE_ITEMS: function GET_ACTIVE_ITEMS() {\r\n return getActiveItems(state.items);\r\n },\r\n\r\n GET_ITEMS: function GET_ITEMS() {\r\n return state.items;\r\n },\r\n\r\n GET_ITEM_NAME: function GET_ITEM_NAME(query) {\r\n var item = getItemByQuery(state.items, query);\r\n return item ? item.filename : null;\r\n },\r\n\r\n GET_ITEM_SIZE: function GET_ITEM_SIZE(query) {\r\n var item = getItemByQuery(state.items, query);\r\n return item ? item.fileSize : null;\r\n },\r\n\r\n GET_STYLES: function GET_STYLES() {\r\n return Object.keys(state.options)\r\n .filter(function(key) {\r\n return /^style/.test(key);\r\n })\r\n .map(function(option) {\r\n return {\r\n name: option,\r\n value: state.options[option]\r\n };\r\n });\r\n },\r\n\r\n GET_PANEL_ASPECT_RATIO: function GET_PANEL_ASPECT_RATIO() {\r\n var isShapeCircle = /circle/.test(state.options.stylePanelLayout);\r\n var aspectRatio = isShapeCircle\r\n ? 1\r\n : getNumericAspectRatioFromString(\r\n state.options.stylePanelAspectRatio\r\n );\r\n return aspectRatio;\r\n },\r\n\r\n GET_ITEM_PANEL_ASPECT_RATIO: function GET_ITEM_PANEL_ASPECT_RATIO() {\r\n return state.options.styleItemPanelAspectRatio;\r\n },\r\n\r\n GET_ITEMS_BY_STATUS: function GET_ITEMS_BY_STATUS(status) {\r\n return getActiveItems(state.items).filter(function(item) {\r\n return item.status === status;\r\n });\r\n },\r\n\r\n GET_TOTAL_ITEMS: function GET_TOTAL_ITEMS() {\r\n return getActiveItems(state.items).length;\r\n },\r\n\r\n IS_ASYNC: function IS_ASYNC() {\r\n return (\r\n isObject(state.options.server) &&\r\n (isObject(state.options.server.process) ||\r\n isFunction(state.options.server.process))\r\n );\r\n }\r\n };\r\n };\r\n\r\n var hasRoomForItem = function hasRoomForItem(state) {\r\n var count = getActiveItems(state.items).length;\r\n\r\n // if cannot have multiple items, to add one item it should currently not contain items\r\n if (!state.options.allowMultiple) {\r\n return count === 0;\r\n }\r\n\r\n // if allows multiple items, we check if a max item count has been set, if not, there's no limit\r\n var maxFileCount = state.options.maxFiles;\r\n if (maxFileCount === null) {\r\n return true;\r\n }\r\n\r\n // we check if the current count is smaller than the max count, if so, another file can still be added\r\n if (count < maxFileCount) {\r\n return true;\r\n }\r\n\r\n // no more room for another file\r\n return false;\r\n };\r\n\r\n var limit = function limit(value, min, max) {\r\n return Math.max(Math.min(max, value), min);\r\n };\r\n\r\n var arrayInsert = function arrayInsert(arr, index, item) {\r\n return arr.splice(index, 0, item);\r\n };\r\n\r\n var insertItem = function insertItem(items, item, index) {\r\n if (isEmpty(item)) {\r\n return null;\r\n }\r\n\r\n // if index is undefined, append\r\n if (typeof index === 'undefined') {\r\n items.push(item);\r\n return item;\r\n }\r\n\r\n // limit the index to the size of the items array\r\n index = limit(index, 0, items.length);\r\n\r\n // add item to array\r\n arrayInsert(items, index, item);\r\n\r\n // expose\r\n return item;\r\n };\r\n\r\n var isBase64DataURI = function isBase64DataURI(str) {\r\n return /^\\s*data:([a-z]+\\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s]*)\\s*$/i.test(\r\n str\r\n );\r\n };\r\n\r\n var getFilenameFromURL = function getFilenameFromURL(url) {\r\n return url\r\n .split('/')\r\n .pop()\r\n .split('?')\r\n .shift();\r\n };\r\n\r\n var getExtensionFromFilename = function getExtensionFromFilename(name) {\r\n return name.split('.').pop();\r\n };\r\n\r\n var guesstimateExtension = function guesstimateExtension(type) {\r\n // if no extension supplied, exit here\r\n if (typeof type !== 'string') {\r\n return '';\r\n }\r\n\r\n // get subtype\r\n var subtype = type.split('/').pop();\r\n\r\n // is svg subtype\r\n if (/svg/.test(subtype)) {\r\n return 'svg';\r\n }\r\n\r\n if (/zip|compressed/.test(subtype)) {\r\n return 'zip';\r\n }\r\n\r\n if (/plain/.test(subtype)) {\r\n return 'txt';\r\n }\r\n\r\n if (/msword/.test(subtype)) {\r\n return 'doc';\r\n }\r\n\r\n // if is valid subtype\r\n if (/[a-z]+/.test(subtype)) {\r\n // always use jpg extension\r\n if (subtype === 'jpeg') {\r\n return 'jpg';\r\n }\r\n\r\n // return subtype\r\n return subtype;\r\n }\r\n\r\n return '';\r\n };\r\n\r\n var leftPad = function leftPad(value) {\r\n var padding =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\r\n return (padding + value).slice(-padding.length);\r\n };\r\n\r\n var getDateString = function getDateString() {\r\n var date =\r\n arguments.length > 0 && arguments[0] !== undefined\r\n ? arguments[0]\r\n : new Date();\r\n return (\r\n date.getFullYear() +\r\n '-' +\r\n leftPad(date.getMonth() + 1, '00') +\r\n '-' +\r\n leftPad(date.getDate(), '00') +\r\n '_' +\r\n leftPad(date.getHours(), '00') +\r\n '-' +\r\n leftPad(date.getMinutes(), '00') +\r\n '-' +\r\n leftPad(date.getSeconds(), '00')\r\n );\r\n };\r\n\r\n var getFileFromBlob = function getFileFromBlob(blob, filename) {\r\n var type =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\r\n var extension =\r\n arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\r\n var file =\r\n typeof type === 'string'\r\n ? blob.slice(0, blob.size, type)\r\n : blob.slice(0, blob.size, blob.type);\r\n file.lastModifiedDate = new Date();\r\n\r\n // copy relative path\r\n if (blob._relativePath) file._relativePath = blob._relativePath;\r\n\r\n // if blob has name property, use as filename if no filename supplied\r\n if (!isString(filename)) {\r\n filename = getDateString();\r\n }\r\n\r\n // if filename supplied but no extension and filename has extension\r\n if (filename && extension === null && getExtensionFromFilename(filename)) {\r\n file.name = filename;\r\n } else {\r\n extension = extension || guesstimateExtension(file.type);\r\n file.name = filename + (extension ? '.' + extension : '');\r\n }\r\n\r\n return file;\r\n };\r\n\r\n var getBlobBuilder = function getBlobBuilder() {\r\n return (window.BlobBuilder =\r\n window.BlobBuilder ||\r\n window.WebKitBlobBuilder ||\r\n window.MozBlobBuilder ||\r\n window.MSBlobBuilder);\r\n };\r\n\r\n var createBlob = function createBlob(arrayBuffer, mimeType) {\r\n var BB = getBlobBuilder();\r\n\r\n if (BB) {\r\n var bb = new BB();\r\n bb.append(arrayBuffer);\r\n return bb.getBlob(mimeType);\r\n }\r\n\r\n return new Blob([arrayBuffer], {\r\n type: mimeType\r\n });\r\n };\r\n\r\n var getBlobFromByteStringWithMimeType = function getBlobFromByteStringWithMimeType(\r\n byteString,\r\n mimeType\r\n ) {\r\n var ab = new ArrayBuffer(byteString.length);\r\n var ia = new Uint8Array(ab);\r\n\r\n for (var i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n return createBlob(ab, mimeType);\r\n };\r\n\r\n var getMimeTypeFromBase64DataURI = function getMimeTypeFromBase64DataURI(\r\n dataURI\r\n ) {\r\n return (/^data:(.+);/.exec(dataURI) || [])[1] || null;\r\n };\r\n\r\n var getBase64DataFromBase64DataURI = function getBase64DataFromBase64DataURI(\r\n dataURI\r\n ) {\r\n // get data part of string (remove data:image/jpeg...,)\r\n var data = dataURI.split(',')[1];\r\n\r\n // remove any whitespace as that causes InvalidCharacterError in IE\r\n return data.replace(/\\s/g, '');\r\n };\r\n\r\n var getByteStringFromBase64DataURI = function getByteStringFromBase64DataURI(\r\n dataURI\r\n ) {\r\n return atob(getBase64DataFromBase64DataURI(dataURI));\r\n };\r\n\r\n var getBlobFromBase64DataURI = function getBlobFromBase64DataURI(dataURI) {\r\n var mimeType = getMimeTypeFromBase64DataURI(dataURI);\r\n var byteString = getByteStringFromBase64DataURI(dataURI);\r\n\r\n return getBlobFromByteStringWithMimeType(byteString, mimeType);\r\n };\r\n\r\n var getFileFromBase64DataURI = function getFileFromBase64DataURI(\r\n dataURI,\r\n filename,\r\n extension\r\n ) {\r\n return getFileFromBlob(\r\n getBlobFromBase64DataURI(dataURI),\r\n filename,\r\n null,\r\n extension\r\n );\r\n };\r\n\r\n var getFileNameFromHeader = function getFileNameFromHeader(header) {\r\n // test if is content disposition header, if not exit\r\n if (!/^content-disposition:/i.test(header)) return null;\r\n\r\n // get filename parts\r\n var matches = header\r\n .split(/filename=|filename\\*=.+''/)\r\n .splice(1)\r\n .map(function(name) {\r\n return name.trim().replace(/^[\"']|[;\"']{0,2}$/g, '');\r\n })\r\n .filter(function(name) {\r\n return name.length;\r\n });\r\n\r\n return matches.length ? decodeURI(matches[matches.length - 1]) : null;\r\n };\r\n\r\n var getFileSizeFromHeader = function getFileSizeFromHeader(header) {\r\n if (/content-length:/i.test(header)) {\r\n var size = header.match(/[0-9]+/)[0];\r\n return size ? parseInt(size, 10) : null;\r\n }\r\n return null;\r\n };\r\n\r\n var getTranfserIdFromHeader = function getTranfserIdFromHeader(header) {\r\n if (/x-content-transfer-id:/i.test(header)) {\r\n var id = (header.split(':')[1] || '').trim();\r\n return id || null;\r\n }\r\n return null;\r\n };\r\n\r\n var getFileInfoFromHeaders = function getFileInfoFromHeaders(headers) {\r\n var info = {\r\n source: null,\r\n name: null,\r\n size: null\r\n };\r\n\r\n var rows = headers.split('\\n');\r\n var _iteratorNormalCompletion = true;\r\n var _didIteratorError = false;\r\n var _iteratorError = undefined;\r\n try {\r\n for (\r\n var _iterator = rows[Symbol.iterator](), _step;\r\n !(_iteratorNormalCompletion = (_step = _iterator.next()).done);\r\n _iteratorNormalCompletion = true\r\n ) {\r\n var header = _step.value;\r\n\r\n var name = getFileNameFromHeader(header);\r\n if (name) {\r\n info.name = name;\r\n continue;\r\n }\r\n\r\n var size = getFileSizeFromHeader(header);\r\n if (size) {\r\n info.size = size;\r\n continue;\r\n }\r\n\r\n var source = getTranfserIdFromHeader(header);\r\n if (source) {\r\n info.source = source;\r\n continue;\r\n }\r\n }\r\n } catch (err) {\r\n _didIteratorError = true;\r\n _iteratorError = err;\r\n } finally {\r\n try {\r\n if (!_iteratorNormalCompletion && _iterator.return != null) {\r\n _iterator.return();\r\n }\r\n } finally {\r\n if (_didIteratorError) {\r\n throw _iteratorError;\r\n }\r\n }\r\n }\r\n\r\n return info;\r\n };\r\n\r\n var createFileLoader = function createFileLoader(fetchFn) {\r\n var state = {\r\n source: null,\r\n complete: false,\r\n progress: 0,\r\n size: null,\r\n timestamp: null,\r\n duration: 0,\r\n request: null\r\n };\r\n\r\n var getProgress = function getProgress() {\r\n return state.progress;\r\n };\r\n var abort = function abort() {\r\n if (state.request && state.request.abort) {\r\n state.request.abort();\r\n }\r\n };\r\n\r\n // load source\r\n var load = function load() {\r\n // get quick reference\r\n var source = state.source;\r\n\r\n api.fire('init', source);\r\n\r\n // Load Files\r\n if (source instanceof File) {\r\n api.fire('load', source);\r\n } else if (source instanceof Blob) {\r\n // Load blobs, set default name to current date\r\n api.fire('load', getFileFromBlob(source, source.name));\r\n } else if (isBase64DataURI(source)) {\r\n // Load base 64, set default name to current date\r\n api.fire('load', getFileFromBase64DataURI(source));\r\n } else {\r\n // Deal as if is external URL, let's load it!\r\n loadURL(source);\r\n }\r\n };\r\n\r\n // loads a url\r\n var loadURL = function loadURL(url) {\r\n // is remote url and no fetch method supplied\r\n if (!fetchFn) {\r\n api.fire('error', {\r\n type: 'error',\r\n body: \"Can't load URL\",\r\n code: 400\r\n });\r\n\r\n return;\r\n }\r\n\r\n // set request start\r\n state.timestamp = Date.now();\r\n\r\n // load file\r\n state.request = fetchFn(\r\n url,\r\n function(response) {\r\n // update duration\r\n state.duration = Date.now() - state.timestamp;\r\n\r\n // done!\r\n state.complete = true;\r\n\r\n // turn blob response into a file\r\n if (response instanceof Blob) {\r\n response = getFileFromBlob(\r\n response,\r\n response.name || getFilenameFromURL(url)\r\n );\r\n }\r\n\r\n api.fire(\r\n 'load',\r\n // if has received blob, we go with blob, if no response, we return null\r\n response instanceof Blob\r\n ? response\r\n : response\r\n ? response.body\r\n : null\r\n );\r\n },\r\n function(error) {\r\n api.fire(\r\n 'error',\r\n typeof error === 'string'\r\n ? {\r\n type: 'error',\r\n code: 0,\r\n body: error\r\n }\r\n : error\r\n );\r\n },\r\n function(computable, current, total) {\r\n // collected some meta data already\r\n if (total) {\r\n state.size = total;\r\n }\r\n\r\n // update duration\r\n state.duration = Date.now() - state.timestamp;\r\n\r\n // if we can't compute progress, we're not going to fire progress events\r\n if (!computable) {\r\n state.progress = null;\r\n return;\r\n }\r\n\r\n // update progress percentage\r\n state.progress = current / total;\r\n\r\n // expose\r\n api.fire('progress', state.progress);\r\n },\r\n function() {\r\n api.fire('abort');\r\n },\r\n function(response) {\r\n var fileinfo = getFileInfoFromHeaders(\r\n typeof response === 'string' ? response : response.headers\r\n );\r\n api.fire('meta', {\r\n size: state.size || fileinfo.size,\r\n filename: fileinfo.name,\r\n source: fileinfo.source\r\n });\r\n }\r\n );\r\n };\r\n\r\n var api = Object.assign({}, on(), {\r\n setSource: function setSource(source) {\r\n return (state.source = source);\r\n },\r\n getProgress: getProgress, // file load progress\r\n abort: abort, // abort file load\r\n load: load // start load\r\n });\r\n\r\n return api;\r\n };\r\n\r\n var isGet = function isGet(method) {\r\n return /GET|HEAD/.test(method);\r\n };\r\n\r\n var sendRequest = function sendRequest(data, url, options) {\r\n var api = {\r\n onheaders: function onheaders() {},\r\n onprogress: function onprogress() {},\r\n onload: function onload() {},\r\n ontimeout: function ontimeout() {},\r\n onerror: function onerror() {},\r\n onabort: function onabort() {},\r\n abort: function abort() {\r\n aborted = true;\r\n xhr.abort();\r\n }\r\n };\r\n\r\n // timeout identifier, only used when timeout is defined\r\n var aborted = false;\r\n var headersReceived = false;\r\n\r\n // set default options\r\n options = Object.assign(\r\n {\r\n method: 'POST',\r\n headers: {},\r\n withCredentials: false\r\n },\r\n options\r\n );\r\n\r\n // encode url\r\n url = encodeURI(url);\r\n\r\n // if method is GET, add any received data to url\r\n\r\n if (isGet(options.method) && data) {\r\n url =\r\n '' +\r\n url +\r\n encodeURIComponent(\r\n typeof data === 'string' ? data : JSON.stringify(data)\r\n );\r\n }\r\n\r\n // create request\r\n var xhr = new XMLHttpRequest();\r\n\r\n // progress of load\r\n var process = isGet(options.method) ? xhr : xhr.upload;\r\n process.onprogress = function(e) {\r\n // no progress event when aborted ( onprogress is called once after abort() )\r\n if (aborted) {\r\n return;\r\n }\r\n\r\n api.onprogress(e.lengthComputable, e.loaded, e.total);\r\n };\r\n\r\n // tries to get header info to the app as fast as possible\r\n xhr.onreadystatechange = function() {\r\n // not interesting in these states ('unsent' and 'openend' as they don't give us any additional info)\r\n if (xhr.readyState < 2) {\r\n return;\r\n }\r\n\r\n // no server response\r\n if (xhr.readyState === 4 && xhr.status === 0) {\r\n return;\r\n }\r\n\r\n if (headersReceived) {\r\n return;\r\n }\r\n\r\n headersReceived = true;\r\n\r\n // we've probably received some useful data in response headers\r\n api.onheaders(xhr);\r\n };\r\n\r\n // load successful\r\n xhr.onload = function() {\r\n // is classified as valid response\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n api.onload(xhr);\r\n } else {\r\n api.onerror(xhr);\r\n }\r\n };\r\n\r\n // error during load\r\n xhr.onerror = function() {\r\n return api.onerror(xhr);\r\n };\r\n\r\n // request aborted\r\n xhr.onabort = function() {\r\n aborted = true;\r\n api.onabort();\r\n };\r\n\r\n // request timeout\r\n xhr.ontimeout = function() {\r\n return api.ontimeout(xhr);\r\n };\r\n\r\n // open up open up!\r\n xhr.open(options.method, url, true);\r\n\r\n // set timeout if defined (do it after open so IE11 plays ball)\r\n if (isInt(options.timeout)) {\r\n xhr.timeout = options.timeout;\r\n }\r\n\r\n // add headers\r\n Object.keys(options.headers).forEach(function(key) {\r\n var value = unescape(encodeURIComponent(options.headers[key]));\r\n xhr.setRequestHeader(key, value);\r\n });\r\n\r\n // set type of response\r\n if (options.responseType) {\r\n xhr.responseType = options.responseType;\r\n }\r\n\r\n // set credentials\r\n if (options.withCredentials) {\r\n xhr.withCredentials = true;\r\n }\r\n\r\n // let's send our data\r\n xhr.send(data);\r\n\r\n return api;\r\n };\r\n\r\n var createResponse = function createResponse(type, code, body, headers) {\r\n return {\r\n type: type,\r\n code: code,\r\n body: body,\r\n headers: headers\r\n };\r\n };\r\n\r\n var createTimeoutResponse = function createTimeoutResponse(cb) {\r\n return function(xhr) {\r\n cb(createResponse('error', 0, 'Timeout', xhr.getAllResponseHeaders()));\r\n };\r\n };\r\n\r\n var hasQS = function hasQS(str) {\r\n return /\\?/.test(str);\r\n };\r\n var buildURL = function buildURL() {\r\n var url = '';\r\n for (\r\n var _len = arguments.length, parts = new Array(_len), _key = 0;\r\n _key < _len;\r\n _key++\r\n ) {\r\n parts[_key] = arguments[_key];\r\n }\r\n parts.forEach(function(part) {\r\n url += hasQS(url) && hasQS(part) ? part.replace(/\\?/, '&') : part;\r\n });\r\n return url;\r\n };\r\n\r\n var createFetchFunction = function createFetchFunction() {\r\n var apiUrl =\r\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\r\n var action = arguments.length > 1 ? arguments[1] : undefined;\r\n // custom handler (should also handle file, load, error, progress and abort)\r\n if (typeof action === 'function') {\r\n return action;\r\n }\r\n\r\n // no action supplied\r\n if (!action || !isString(action.url)) {\r\n return null;\r\n }\r\n\r\n // set onload hanlder\r\n var onload =\r\n action.onload ||\r\n function(res) {\r\n return res;\r\n };\r\n var onerror =\r\n action.onerror ||\r\n function(res) {\r\n return null;\r\n };\r\n\r\n // internal handler\r\n return function(url, load, error, progress, abort, headers) {\r\n // do local or remote request based on if the url is external\r\n var request = sendRequest(\r\n url,\r\n buildURL(apiUrl, action.url),\r\n Object.assign({}, action, {\r\n responseType: 'blob'\r\n })\r\n );\r\n\r\n request.onload = function(xhr) {\r\n // get headers\r\n var headers = xhr.getAllResponseHeaders();\r\n\r\n // get filename\r\n var filename =\r\n getFileInfoFromHeaders(headers).name || getFilenameFromURL(url);\r\n\r\n // create response\r\n load(\r\n createResponse(\r\n 'load',\r\n xhr.status,\r\n action.method === 'HEAD'\r\n ? null\r\n : getFileFromBlob(onload(xhr.response), filename),\r\n headers\r\n )\r\n );\r\n };\r\n\r\n request.onerror = function(xhr) {\r\n error(\r\n createResponse(\r\n 'error',\r\n xhr.status,\r\n onerror(xhr.response) || xhr.statusText,\r\n xhr.getAllResponseHeaders()\r\n )\r\n );\r\n };\r\n\r\n request.onheaders = function(xhr) {\r\n headers(\r\n createResponse(\r\n 'headers',\r\n xhr.status,\r\n null,\r\n xhr.getAllResponseHeaders()\r\n )\r\n );\r\n };\r\n\r\n request.ontimeout = createTimeoutResponse(error);\r\n request.onprogress = progress;\r\n request.onabort = abort;\r\n\r\n // should return request\r\n return request;\r\n };\r\n };\r\n\r\n var ChunkStatus = {\r\n QUEUED: 0,\r\n COMPLETE: 1,\r\n PROCESSING: 2,\r\n ERROR: 3,\r\n WAITING: 4\r\n };\r\n\r\n /*\r\n function signature:\r\n (file, metadata, load, error, progress, abort, transfer, options) => {\r\n return {\r\n abort:() => {}\r\n }\r\n }\r\n */\r\n\r\n // apiUrl, action, name, file, metadata, load, error, progress, abort, transfer, options\r\n var processFileChunked = function processFileChunked(\r\n apiUrl,\r\n action,\r\n name,\r\n file,\r\n metadata,\r\n load,\r\n error,\r\n progress,\r\n abort,\r\n transfer,\r\n options\r\n ) {\r\n // all chunks\r\n var chunks = [];\r\n var chunkTransferId = options.chunkTransferId,\r\n chunkServer = options.chunkServer,\r\n chunkSize = options.chunkSize,\r\n chunkRetryDelays = options.chunkRetryDelays;\r\n\r\n // default state\r\n var state = {\r\n serverId: chunkTransferId,\r\n aborted: false\r\n };\r\n\r\n // set onload handlers\r\n var ondata =\r\n action.ondata ||\r\n function(fd) {\r\n return fd;\r\n };\r\n var onload =\r\n action.onload ||\r\n function(xhr, method) {\r\n return method === 'HEAD'\r\n ? xhr.getResponseHeader('Upload-Offset')\r\n : xhr.response;\r\n };\r\n var onerror =\r\n action.onerror ||\r\n function(res) {\r\n return null;\r\n };\r\n\r\n // create server hook\r\n var requestTransferId = function requestTransferId(cb) {\r\n var formData = new FormData();\r\n\r\n // add metadata under same name\r\n if (isObject(metadata)) formData.append(name, JSON.stringify(metadata));\r\n\r\n var headers =\r\n typeof action.headers === 'function'\r\n ? action.headers(file, metadata)\r\n : Object.assign({}, action.headers, {\r\n 'Upload-Length': file.size\r\n });\r\n\r\n var requestParams = Object.assign({}, action, {\r\n headers: headers\r\n });\r\n\r\n // send request object\r\n var request = sendRequest(\r\n ondata(formData),\r\n buildURL(apiUrl, action.url),\r\n requestParams\r\n );\r\n\r\n request.onload = function(xhr) {\r\n return cb(onload(xhr, requestParams.method));\r\n };\r\n\r\n request.onerror = function(xhr) {\r\n return error(\r\n createResponse(\r\n 'error',\r\n xhr.status,\r\n onerror(xhr.response) || xhr.statusText,\r\n xhr.getAllResponseHeaders()\r\n )\r\n );\r\n };\r\n\r\n request.ontimeout = createTimeoutResponse(error);\r\n };\r\n\r\n var requestTransferOffset = function requestTransferOffset(cb) {\r\n var requestUrl = buildURL(apiUrl, chunkServer.url, state.serverId);\r\n\r\n var headers =\r\n typeof action.headers === 'function'\r\n ? action.headers(state.serverId)\r\n : Object.assign({}, action.headers);\r\n\r\n var requestParams = {\r\n headers: headers,\r\n method: 'HEAD'\r\n };\r\n\r\n var request = sendRequest(null, requestUrl, requestParams);\r\n\r\n request.onload = function(xhr) {\r\n return cb(onload(xhr, requestParams.method));\r\n };\r\n\r\n request.onerror = function(xhr) {\r\n return error(\r\n createResponse(\r\n 'error',\r\n xhr.status,\r\n onerror(xhr.response) || xhr.statusText,\r\n xhr.getAllResponseHeaders()\r\n )\r\n );\r\n };\r\n\r\n request.ontimeout = createTimeoutResponse(error);\r\n };\r\n\r\n // create chunks\r\n var lastChunkIndex = Math.floor(file.size / chunkSize);\r\n for (var i = 0; i <= lastChunkIndex; i++) {\r\n var offset = i * chunkSize;\r\n var data = file.slice(\r\n offset,\r\n offset + chunkSize,\r\n 'application/offset+octet-stream'\r\n );\r\n chunks[i] = {\r\n index: i,\r\n size: data.size,\r\n offset: offset,\r\n data: data,\r\n file: file,\r\n progress: 0,\r\n retries: _toConsumableArray(chunkRetryDelays),\r\n status: ChunkStatus.QUEUED,\r\n error: null,\r\n request: null,\r\n timeout: null\r\n };\r\n }\r\n\r\n var completeProcessingChunks = function completeProcessingChunks() {\r\n return load(state.serverId);\r\n };\r\n\r\n var canProcessChunk = function canProcessChunk(chunk) {\r\n return (\r\n chunk.status === ChunkStatus.QUEUED ||\r\n chunk.status === ChunkStatus.ERROR\r\n );\r\n };\r\n\r\n var processChunk = function processChunk(chunk) {\r\n // processing is paused, wait here\r\n if (state.aborted) return;\r\n\r\n // get next chunk to process\r\n chunk = chunk || chunks.find(canProcessChunk);\r\n\r\n // no more chunks to process\r\n if (!chunk) {\r\n // all done?\r\n if (\r\n chunks.every(function(chunk) {\r\n return chunk.status === ChunkStatus.COMPLETE;\r\n })\r\n ) {\r\n completeProcessingChunks();\r\n }\r\n\r\n // no chunk to handle\r\n return;\r\n }\r\n\r\n // now processing this chunk\r\n chunk.status = ChunkStatus.PROCESSING;\r\n chunk.progress = null;\r\n\r\n // allow parsing of formdata\r\n var ondata =\r\n chunkServer.ondata ||\r\n function(fd) {\r\n return fd;\r\n };\r\n var onerror =\r\n chunkServer.onerror ||\r\n function(res) {\r\n return null;\r\n };\r\n\r\n // send request object\r\n var requestUrl = buildURL(apiUrl, chunkServer.url, state.serverId);\r\n\r\n var headers =\r\n typeof chunkServer.headers === 'function'\r\n ? chunkServer.headers(chunk)\r\n : Object.assign({}, chunkServer.headers, {\r\n 'Content-Type': 'application/offset+octet-stream',\r\n 'Upload-Offset': chunk.offset,\r\n 'Upload-Length': file.size,\r\n 'Upload-Name': file.name\r\n });\r\n\r\n var request = (chunk.request = sendRequest(\r\n ondata(chunk.data),\r\n requestUrl,\r\n Object.assign({}, chunkServer, {\r\n headers: headers\r\n })\r\n ));\r\n\r\n request.onload = function() {\r\n // done!\r\n chunk.status = ChunkStatus.COMPLETE;\r\n\r\n // remove request reference\r\n chunk.request = null;\r\n\r\n // start processing more chunks\r\n processChunks();\r\n };\r\n\r\n request.onprogress = function(lengthComputable, loaded, total) {\r\n chunk.progress = lengthComputable ? loaded : null;\r\n updateTotalProgress();\r\n };\r\n\r\n request.onerror = function(xhr) {\r\n chunk.status = ChunkStatus.ERROR;\r\n chunk.request = null;\r\n chunk.error = onerror(xhr.response) || xhr.statusText;\r\n if (!retryProcessChunk(chunk)) {\r\n error(\r\n createResponse(\r\n 'error',\r\n xhr.status,\r\n onerror(xhr.response) || xhr.statusText,\r\n xhr.getAllResponseHeaders()\r\n )\r\n );\r\n }\r\n };\r\n\r\n request.ontimeout = function(xhr) {\r\n chunk.status = ChunkStatus.ERROR;\r\n chunk.request = null;\r\n if (!retryProcessChunk(chunk)) {\r\n createTimeoutResponse(error)(xhr);\r\n }\r\n };\r\n\r\n request.onabort = function() {\r\n chunk.status = ChunkStatus.QUEUED;\r\n chunk.request = null;\r\n abort();\r\n };\r\n };\r\n\r\n var retryProcessChunk = function retryProcessChunk(chunk) {\r\n // no more retries left\r\n if (chunk.retries.length === 0) return false;\r\n\r\n // new retry\r\n chunk.status = ChunkStatus.WAITING;\r\n clearTimeout(chunk.timeout);\r\n chunk.timeout = setTimeout(function() {\r\n processChunk(chunk);\r\n }, chunk.retries.shift());\r\n\r\n // we're going to retry\r\n return true;\r\n };\r\n\r\n var updateTotalProgress = function updateTotalProgress() {\r\n // calculate total progress fraction\r\n var totalBytesTransfered = chunks.reduce(function(p, chunk) {\r\n if (p === null || chunk.progress === null) return null;\r\n return p + chunk.progress;\r\n }, 0);\r\n\r\n // can't compute progress\r\n if (totalBytesTransfered === null) return progress(false, 0, 0);\r\n\r\n // calculate progress values\r\n var totalSize = chunks.reduce(function(total, chunk) {\r\n return total + chunk.size;\r\n }, 0);\r\n\r\n // can update progress indicator\r\n progress(true, totalBytesTransfered, totalSize);\r\n };\r\n\r\n // process new chunks\r\n var processChunks = function processChunks() {\r\n var totalProcessing = chunks.filter(function(chunk) {\r\n return chunk.status === ChunkStatus.PROCESSING;\r\n }).length;\r\n if (totalProcessing >= 1) return;\r\n processChunk();\r\n };\r\n\r\n var abortChunks = function abortChunks() {\r\n chunks.forEach(function(chunk) {\r\n clearTimeout(chunk.timeout);\r\n if (chunk.request) {\r\n chunk.request.abort();\r\n }\r\n });\r\n };\r\n\r\n // let's go!\r\n if (!state.serverId) {\r\n requestTransferId(function(serverId) {\r\n // stop here if aborted, might have happened in between request and callback\r\n if (state.aborted) return;\r\n\r\n // pass back to item so we can use it if something goes wrong\r\n transfer(serverId);\r\n\r\n // store internally\r\n state.serverId = serverId;\r\n processChunks();\r\n });\r\n } else {\r\n requestTransferOffset(function(offset) {\r\n // stop here if aborted, might have happened in between request and callback\r\n if (state.aborted) return;\r\n\r\n // mark chunks with lower offset as complete\r\n chunks\r\n .filter(function(chunk) {\r\n return chunk.offset < offset;\r\n })\r\n .forEach(function(chunk) {\r\n chunk.status = ChunkStatus.COMPLETE;\r\n chunk.progress = chunk.size;\r\n });\r\n\r\n // continue processing\r\n processChunks();\r\n });\r\n }\r\n\r\n return {\r\n abort: function abort() {\r\n state.aborted = true;\r\n abortChunks();\r\n }\r\n };\r\n };\r\n\r\n /*\r\n function signature:\r\n (file, metadata, load, error, progress, abort) => {\r\n return {\r\n abort:() => {}\r\n }\r\n }\r\n */\r\n var createFileProcessorFunction = function createFileProcessorFunction(\r\n apiUrl,\r\n action,\r\n name,\r\n options\r\n ) {\r\n return function(file, metadata, load, error, progress, abort, transfer) {\r\n // no file received\r\n if (!file) return;\r\n\r\n // if was passed a file, and we can chunk it, exit here\r\n var canChunkUpload = options.chunkUploads;\r\n var shouldChunkUpload = canChunkUpload && file.size > options.chunkSize;\r\n var willChunkUpload =\r\n canChunkUpload && (shouldChunkUpload || options.chunkForce);\r\n if (file instanceof Blob && willChunkUpload)\r\n return processFileChunked(\r\n apiUrl,\r\n action,\r\n name,\r\n file,\r\n metadata,\r\n load,\r\n error,\r\n progress,\r\n abort,\r\n transfer,\r\n options\r\n );\r\n\r\n // set handlers\r\n var ondata =\r\n action.ondata ||\r\n function(fd) {\r\n return fd;\r\n };\r\n var onload =\r\n action.onload ||\r\n function(res) {\r\n return res;\r\n };\r\n var onerror =\r\n action.onerror ||\r\n function(res) {\r\n return null;\r\n };\r\n\r\n // create formdata object\r\n var formData = new FormData();\r\n\r\n // add metadata under same name\r\n if (isObject(metadata)) {\r\n formData.append(name, JSON.stringify(metadata));\r\n }\r\n\r\n // Turn into an array of objects so no matter what the input, we can handle it the same way\r\n (file instanceof Blob ? [{ name: null, file: file }] : file).forEach(\r\n function(item) {\r\n formData.append(\r\n name,\r\n item.file,\r\n item.name === null\r\n ? item.file.name\r\n : '' + item.name + item.file.name\r\n );\r\n }\r\n );\r\n\r\n // send request object\r\n var request = sendRequest(\r\n ondata(formData),\r\n buildURL(apiUrl, action.url),\r\n action\r\n );\r\n request.onload = function(xhr) {\r\n load(\r\n createResponse(\r\n 'load',\r\n xhr.status,\r\n onload(xhr.response),\r\n xhr.getAllResponseHeaders()\r\n )\r\n );\r\n };\r\n\r\n request.onerror = function(xhr) {\r\n error(\r\n createResponse(\r\n 'error',\r\n xhr.status,\r\n onerror(xhr.response) || xhr.statusText,\r\n xhr.getAllResponseHeaders()\r\n )\r\n );\r\n };\r\n\r\n request.ontimeout = createTimeoutResponse(error);\r\n request.onprogress = progress;\r\n request.onabort = abort;\r\n\r\n // should return request\r\n return request;\r\n };\r\n };\r\n\r\n var createProcessorFunction = function createProcessorFunction() {\r\n var apiUrl =\r\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\r\n var action = arguments.length > 1 ? arguments[1] : undefined;\r\n var name = arguments.length > 2 ? arguments[2] : undefined;\r\n var options = arguments.length > 3 ? arguments[3] : undefined;\r\n\r\n // custom handler (should also handle file, load, error, progress and abort)\r\n if (typeof action === 'function')\r\n return function() {\r\n for (\r\n var _len = arguments.length, params = new Array(_len), _key = 0;\r\n _key < _len;\r\n _key++\r\n ) {\r\n params[_key] = arguments[_key];\r\n }\r\n return action.apply(void 0, [name].concat(params, [options]));\r\n };\r\n\r\n // no action supplied\r\n if (!action || !isString(action.url)) return null;\r\n\r\n // internal handler\r\n return createFileProcessorFunction(apiUrl, action, name, options);\r\n };\r\n\r\n /*\r\n function signature:\r\n (uniqueFileId, load, error) => { }\r\n */\r\n var createRevertFunction = function createRevertFunction() {\r\n var apiUrl =\r\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\r\n var action = arguments.length > 1 ? arguments[1] : undefined;\r\n // is custom implementation\r\n if (typeof action === 'function') {\r\n return action;\r\n }\r\n\r\n // no action supplied, return stub function, interface will work, but file won't be removed\r\n if (!action || !isString(action.url)) {\r\n return function(uniqueFileId, load) {\r\n return load();\r\n };\r\n }\r\n\r\n // set onload hanlder\r\n var onload =\r\n action.onload ||\r\n function(res) {\r\n return res;\r\n };\r\n var onerror =\r\n action.onerror ||\r\n function(res) {\r\n return null;\r\n };\r\n\r\n // internal implementation\r\n return function(uniqueFileId, load, error) {\r\n var request = sendRequest(\r\n uniqueFileId,\r\n apiUrl + action.url,\r\n action // contains method, headers and withCredentials properties\r\n );\r\n request.onload = function(xhr) {\r\n load(\r\n createResponse(\r\n 'load',\r\n xhr.status,\r\n onload(xhr.response),\r\n xhr.getAllResponseHeaders()\r\n )\r\n );\r\n };\r\n\r\n request.onerror = function(xhr) {\r\n error(\r\n createResponse(\r\n 'error',\r\n xhr.status,\r\n onerror(xhr.response) || xhr.statusText,\r\n xhr.getAllResponseHeaders()\r\n )\r\n );\r\n };\r\n\r\n request.ontimeout = createTimeoutResponse(error);\r\n\r\n return request;\r\n };\r\n };\r\n\r\n var getRandomNumber = function getRandomNumber() {\r\n var min =\r\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\r\n var max =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\r\n return min + Math.random() * (max - min);\r\n };\r\n\r\n var createPerceivedPerformanceUpdater = function createPerceivedPerformanceUpdater(\r\n cb\r\n ) {\r\n var duration =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\r\n var offset =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\r\n var tickMin =\r\n arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 25;\r\n var tickMax =\r\n arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 250;\r\n var timeout = null;\r\n var start = Date.now();\r\n\r\n var tick = function tick() {\r\n var runtime = Date.now() - start;\r\n var delay = getRandomNumber(tickMin, tickMax);\r\n\r\n if (runtime + delay > duration) {\r\n delay = runtime + delay - duration;\r\n }\r\n\r\n var progress = runtime / duration;\r\n if (progress >= 1 || document.hidden) {\r\n cb(1);\r\n return;\r\n }\r\n\r\n cb(progress);\r\n\r\n timeout = setTimeout(tick, delay);\r\n };\r\n\r\n tick();\r\n\r\n return {\r\n clear: function clear() {\r\n clearTimeout(timeout);\r\n }\r\n };\r\n };\r\n\r\n var createFileProcessor = function createFileProcessor(processFn) {\r\n var state = {\r\n complete: false,\r\n perceivedProgress: 0,\r\n perceivedPerformanceUpdater: null,\r\n progress: null,\r\n timestamp: null,\r\n perceivedDuration: 0,\r\n duration: 0,\r\n request: null,\r\n response: null\r\n };\r\n\r\n var process = function process(file, metadata) {\r\n var progressFn = function progressFn() {\r\n // we've not yet started the real download, stop here\r\n // the request might not go through, for instance, there might be some server trouble\r\n // if state.progress is null, the server does not allow computing progress and we show the spinner instead\r\n if (state.duration === 0 || state.progress === null) return;\r\n\r\n // as we're now processing, fire the progress event\r\n api.fire('progress', api.getProgress());\r\n };\r\n\r\n var completeFn = function completeFn() {\r\n state.complete = true;\r\n api.fire('load-perceived', state.response.body);\r\n };\r\n\r\n // let's start processing\r\n api.fire('start');\r\n\r\n // set request start\r\n state.timestamp = Date.now();\r\n\r\n // create perceived performance progress indicator\r\n state.perceivedPerformanceUpdater = createPerceivedPerformanceUpdater(\r\n function(progress) {\r\n state.perceivedProgress = progress;\r\n state.perceivedDuration = Date.now() - state.timestamp;\r\n\r\n progressFn();\r\n\r\n // if fake progress is done, and a response has been received,\r\n // and we've not yet called the complete method\r\n if (\r\n state.response &&\r\n state.perceivedProgress === 1 &&\r\n !state.complete\r\n ) {\r\n // we done!\r\n completeFn();\r\n }\r\n },\r\n // random delay as in a list of files you start noticing\r\n // files uploading at the exact same speed\r\n getRandomNumber(750, 1500)\r\n );\r\n\r\n // remember request so we can abort it later\r\n state.request = processFn(\r\n // the file to process\r\n file,\r\n\r\n // the metadata to send along\r\n metadata,\r\n\r\n // callbacks (load, error, progress, abort, transfer)\r\n // load expects the body to be a server id if\r\n // you want to make use of revert\r\n function(response) {\r\n // we put the response in state so we can access\r\n // it outside of this method\r\n state.response = isObject(response)\r\n ? response\r\n : {\r\n type: 'load',\r\n code: 200,\r\n body: '' + response,\r\n headers: {}\r\n };\r\n\r\n // update duration\r\n state.duration = Date.now() - state.timestamp;\r\n\r\n // force progress to 1 as we're now done\r\n state.progress = 1;\r\n\r\n // actual load is done let's share results\r\n api.fire('load', state.response.body);\r\n\r\n // we are really done\r\n // if perceived progress is 1 ( wait for perceived progress to complete )\r\n // or if server does not support progress ( null )\r\n if (state.perceivedProgress === 1) {\r\n completeFn();\r\n }\r\n },\r\n\r\n // error is expected to be an object with type, code, body\r\n function(error) {\r\n // cancel updater\r\n state.perceivedPerformanceUpdater.clear();\r\n\r\n // update others about this error\r\n api.fire(\r\n 'error',\r\n isObject(error)\r\n ? error\r\n : {\r\n type: 'error',\r\n code: 0,\r\n body: '' + error\r\n }\r\n );\r\n },\r\n\r\n // actual processing progress\r\n function(computable, current, total) {\r\n // update actual duration\r\n state.duration = Date.now() - state.timestamp;\r\n\r\n // update actual progress\r\n state.progress = computable ? current / total : null;\r\n\r\n progressFn();\r\n },\r\n\r\n // abort does not expect a value\r\n function() {\r\n // stop updater\r\n state.perceivedPerformanceUpdater.clear();\r\n\r\n // fire the abort event so we can switch visuals\r\n api.fire('abort', state.response ? state.response.body : null);\r\n },\r\n\r\n // register the id for this transfer\r\n function(transferId) {\r\n api.fire('transfer', transferId);\r\n }\r\n );\r\n };\r\n\r\n var abort = function abort() {\r\n // no request running, can't abort\r\n if (!state.request) return;\r\n\r\n // stop updater\r\n state.perceivedPerformanceUpdater.clear();\r\n\r\n // abort actual request\r\n if (state.request.abort) state.request.abort();\r\n\r\n // if has response object, we've completed the request\r\n state.complete = true;\r\n };\r\n\r\n var reset = function reset() {\r\n abort();\r\n state.complete = false;\r\n state.perceivedProgress = 0;\r\n state.progress = 0;\r\n state.timestamp = null;\r\n state.perceivedDuration = 0;\r\n state.duration = 0;\r\n state.request = null;\r\n state.response = null;\r\n };\r\n\r\n var getProgress = function getProgress() {\r\n return state.progress\r\n ? Math.min(state.progress, state.perceivedProgress)\r\n : null;\r\n };\r\n var getDuration = function getDuration() {\r\n return Math.min(state.duration, state.perceivedDuration);\r\n };\r\n\r\n var api = Object.assign({}, on(), {\r\n process: process, // start processing file\r\n abort: abort, // abort active process request\r\n getProgress: getProgress,\r\n getDuration: getDuration,\r\n reset: reset\r\n });\r\n\r\n return api;\r\n };\r\n\r\n var getFilenameWithoutExtension = function getFilenameWithoutExtension(name) {\r\n return name.substr(0, name.lastIndexOf('.')) || name;\r\n };\r\n\r\n var createFileStub = function createFileStub(source) {\r\n var data = [source.name, source.size, source.type];\r\n\r\n // is blob or base64, then we need to set the name\r\n if (source instanceof Blob || isBase64DataURI(source)) {\r\n data[0] = source.name || getDateString();\r\n } else if (isBase64DataURI(source)) {\r\n // if is base64 data uri we need to determine the average size and type\r\n data[1] = source.length;\r\n data[2] = getMimeTypeFromBase64DataURI(source);\r\n } else if (isString(source)) {\r\n // url\r\n data[0] = getFilenameFromURL(source);\r\n data[1] = 0;\r\n data[2] = 'application/octet-stream';\r\n }\r\n\r\n return {\r\n name: data[0],\r\n size: data[1],\r\n type: data[2]\r\n };\r\n };\r\n\r\n var isFile = function isFile(value) {\r\n return !!(value instanceof File || (value instanceof Blob && value.name));\r\n };\r\n\r\n var deepCloneObject = function deepCloneObject(src) {\r\n if (!isObject(src)) return src;\r\n var target = isArray(src) ? [] : {};\r\n for (var key in src) {\r\n if (!src.hasOwnProperty(key)) continue;\r\n var v = src[key];\r\n target[key] = v && isObject(v) ? deepCloneObject(v) : v;\r\n }\r\n return target;\r\n };\r\n\r\n var createItem = function createItem() {\r\n var origin =\r\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\r\n var serverFileReference =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\r\n var file =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\r\n // unique id for this item, is used to identify the item across views\r\n var id = getUniqueId();\r\n\r\n /**\r\n * Internal item state\r\n */\r\n var state = {\r\n // is archived\r\n archived: false,\r\n\r\n // if is frozen, no longer fires events\r\n frozen: false,\r\n\r\n // removed from view\r\n released: false,\r\n\r\n // original source\r\n source: null,\r\n\r\n // file model reference\r\n file: file,\r\n\r\n // id of file on server\r\n serverFileReference: serverFileReference,\r\n\r\n // id of file transfer on server\r\n transferId: null,\r\n\r\n // is aborted\r\n processingAborted: false,\r\n\r\n // current item status\r\n status: serverFileReference\r\n ? ItemStatus.PROCESSING_COMPLETE\r\n : ItemStatus.INIT,\r\n\r\n // active processes\r\n activeLoader: null,\r\n activeProcessor: null\r\n };\r\n\r\n // callback used when abort processing is called to link back to the resolve method\r\n var abortProcessingRequestComplete = null;\r\n\r\n /**\r\n * Externally added item metadata\r\n */\r\n var metadata = {};\r\n\r\n // item data\r\n var setStatus = function setStatus(status) {\r\n return (state.status = status);\r\n };\r\n\r\n // fire event unless the item has been archived\r\n var fire = function fire(event) {\r\n if (state.released || state.frozen) return;\r\n for (\r\n var _len = arguments.length,\r\n params = new Array(_len > 1 ? _len - 1 : 0),\r\n _key = 1;\r\n _key < _len;\r\n _key++\r\n ) {\r\n params[_key - 1] = arguments[_key];\r\n }\r\n api.fire.apply(api, [event].concat(params));\r\n };\r\n\r\n // file data\r\n var getFileExtension = function getFileExtension() {\r\n return getExtensionFromFilename(state.file.name);\r\n };\r\n var getFileType = function getFileType() {\r\n return state.file.type;\r\n };\r\n var getFileSize = function getFileSize() {\r\n return state.file.size;\r\n };\r\n var getFile = function getFile() {\r\n return state.file;\r\n };\r\n\r\n //\r\n // logic to load a file\r\n //\r\n var load = function load(source, loader, onload) {\r\n // remember the original item source\r\n state.source = source;\r\n\r\n // source is known\r\n api.fireSync('init');\r\n\r\n // file stub is already there\r\n if (state.file) {\r\n api.fireSync('load-skip');\r\n return;\r\n }\r\n\r\n // set a stub file object while loading the actual data\r\n state.file = createFileStub(source);\r\n\r\n // starts loading\r\n loader.on('init', function() {\r\n fire('load-init');\r\n });\r\n\r\n // we'eve received a size indication, let's update the stub\r\n loader.on('meta', function(meta) {\r\n // set size of file stub\r\n state.file.size = meta.size;\r\n\r\n // set name of file stub\r\n state.file.filename = meta.filename;\r\n\r\n // if has received source, we done\r\n if (meta.source) {\r\n origin = FileOrigin.LIMBO;\r\n state.serverFileReference = meta.source;\r\n state.status = ItemStatus.PROCESSING_COMPLETE;\r\n }\r\n\r\n // size has been updated\r\n fire('load-meta');\r\n });\r\n\r\n // the file is now loading we need to update the progress indicators\r\n loader.on('progress', function(progress) {\r\n setStatus(ItemStatus.LOADING);\r\n\r\n fire('load-progress', progress);\r\n });\r\n\r\n // an error was thrown while loading the file, we need to switch to error state\r\n loader.on('error', function(error) {\r\n setStatus(ItemStatus.LOAD_ERROR);\r\n\r\n fire('load-request-error', error);\r\n });\r\n\r\n // user or another process aborted the file load (cannot retry)\r\n loader.on('abort', function() {\r\n setStatus(ItemStatus.INIT);\r\n fire('load-abort');\r\n });\r\n\r\n // done loading\r\n loader.on('load', function(file) {\r\n // as we've now loaded the file the loader is no longer required\r\n state.activeLoader = null;\r\n\r\n // called when file has loaded succesfully\r\n var success = function success(result) {\r\n // set (possibly) transformed file\r\n state.file = isFile(result) ? result : state.file;\r\n\r\n // file received\r\n if (origin === FileOrigin.LIMBO && state.serverFileReference) {\r\n setStatus(ItemStatus.PROCESSING_COMPLETE);\r\n } else {\r\n setStatus(ItemStatus.IDLE);\r\n }\r\n\r\n fire('load');\r\n };\r\n\r\n var error = function error(result) {\r\n // set original file\r\n state.file = file;\r\n fire('load-meta');\r\n\r\n setStatus(ItemStatus.LOAD_ERROR);\r\n fire('load-file-error', result);\r\n };\r\n\r\n // if we already have a server file reference, we don't need to call the onload method\r\n if (state.serverFileReference) {\r\n success(file);\r\n return;\r\n }\r\n\r\n // no server id, let's give this file the full treatment\r\n onload(file, success, error);\r\n });\r\n\r\n // set loader source data\r\n loader.setSource(source);\r\n\r\n // set as active loader\r\n state.activeLoader = loader;\r\n\r\n // load the source data\r\n loader.load();\r\n };\r\n\r\n var retryLoad = function retryLoad() {\r\n if (!state.activeLoader) {\r\n return;\r\n }\r\n state.activeLoader.load();\r\n };\r\n\r\n var abortLoad = function abortLoad() {\r\n if (state.activeLoader) {\r\n state.activeLoader.abort();\r\n return;\r\n }\r\n setStatus(ItemStatus.INIT);\r\n fire('load-abort');\r\n };\r\n\r\n //\r\n // logic to process a file\r\n //\r\n var process = function process(processor, onprocess) {\r\n // processing was aborted\r\n if (state.processingAborted) {\r\n state.processingAborted = false;\r\n return;\r\n }\r\n\r\n // now processing\r\n setStatus(ItemStatus.PROCESSING);\r\n\r\n // reset abort callback\r\n abortProcessingRequestComplete = null;\r\n\r\n // if no file loaded we'll wait for the load event\r\n if (!(state.file instanceof Blob)) {\r\n api.on('load', function() {\r\n process(processor, onprocess);\r\n });\r\n return;\r\n }\r\n\r\n // setup processor\r\n processor.on('load', function(serverFileReference) {\r\n // need this id to be able to revert the upload\r\n state.transferId = null;\r\n state.serverFileReference = serverFileReference;\r\n });\r\n\r\n // register transfer id\r\n processor.on('transfer', function(transferId) {\r\n // need this id to be able to revert the upload\r\n state.transferId = transferId;\r\n });\r\n\r\n processor.on('load-perceived', function(serverFileReference) {\r\n // no longer required\r\n state.activeProcessor = null;\r\n\r\n // need this id to be able to rever the upload\r\n state.transferId = null;\r\n state.serverFileReference = serverFileReference;\r\n\r\n setStatus(ItemStatus.PROCESSING_COMPLETE);\r\n fire('process-complete', serverFileReference);\r\n });\r\n\r\n processor.on('start', function() {\r\n fire('process-start');\r\n });\r\n\r\n processor.on('error', function(error) {\r\n state.activeProcessor = null;\r\n setStatus(ItemStatus.PROCESSING_ERROR);\r\n fire('process-error', error);\r\n });\r\n\r\n processor.on('abort', function(serverFileReference) {\r\n state.activeProcessor = null;\r\n\r\n // if file was uploaded but processing was cancelled during perceived processor time store file reference\r\n state.transferId = null;\r\n state.serverFileReference = serverFileReference;\r\n\r\n setStatus(ItemStatus.IDLE);\r\n fire('process-abort');\r\n\r\n // has timeout so doesn't interfere with remove action\r\n if (abortProcessingRequestComplete) {\r\n abortProcessingRequestComplete();\r\n }\r\n });\r\n\r\n processor.on('progress', function(progress) {\r\n fire('process-progress', progress);\r\n });\r\n\r\n // when successfully transformed\r\n var success = function success(file) {\r\n // if was archived in the mean time, don't process\r\n if (state.archived) return;\r\n\r\n // process file!\r\n processor.process(file, Object.assign({}, metadata));\r\n };\r\n\r\n // something went wrong during transform phase\r\n var error = console.error;\r\n\r\n // start processing the file\r\n onprocess(state.file, success, error);\r\n\r\n // set as active processor\r\n state.activeProcessor = processor;\r\n };\r\n\r\n var requestProcessing = function requestProcessing() {\r\n state.processingAborted = false;\r\n setStatus(ItemStatus.PROCESSING_QUEUED);\r\n };\r\n\r\n var abortProcessing = function abortProcessing() {\r\n return new Promise(function(resolve) {\r\n if (!state.activeProcessor) {\r\n state.processingAborted = true;\r\n\r\n setStatus(ItemStatus.IDLE);\r\n fire('process-abort');\r\n\r\n resolve();\r\n return;\r\n }\r\n\r\n abortProcessingRequestComplete = function abortProcessingRequestComplete() {\r\n resolve();\r\n };\r\n\r\n state.activeProcessor.abort();\r\n });\r\n };\r\n\r\n //\r\n // logic to revert a processed file\r\n //\r\n var revert = function revert(revertFileUpload, forceRevert) {\r\n return new Promise(function(resolve, reject) {\r\n // cannot revert without a server id for this process\r\n if (state.serverFileReference === null) {\r\n resolve();\r\n return;\r\n }\r\n\r\n // revert the upload (fire and forget)\r\n revertFileUpload(\r\n state.serverFileReference,\r\n function() {\r\n // reset file server id as now it's no available on the server\r\n state.serverFileReference = null;\r\n resolve();\r\n },\r\n function(error) {\r\n // don't set error state when reverting is optional, it will always resolve\r\n if (!forceRevert) {\r\n resolve();\r\n return;\r\n }\r\n\r\n // oh no errors\r\n setStatus(ItemStatus.PROCESSING_REVERT_ERROR);\r\n fire('process-revert-error');\r\n reject(error);\r\n }\r\n );\r\n\r\n // fire event\r\n setStatus(ItemStatus.IDLE);\r\n fire('process-revert');\r\n });\r\n };\r\n\r\n // exposed methods\r\n var _setMetadata = function setMetadata(key, value, silent) {\r\n var keys = key.split('.');\r\n var root = keys[0];\r\n var last = keys.pop();\r\n var data = metadata;\r\n keys.forEach(function(key) {\r\n return (data = data[key]);\r\n });\r\n\r\n // compare old value against new value, if they're the same, we're not updating\r\n if (JSON.stringify(data[last]) === JSON.stringify(value)) return;\r\n\r\n // update value\r\n data[last] = value;\r\n\r\n // don't fire update\r\n if (silent) return;\r\n\r\n // fire update\r\n fire('metadata-update', {\r\n key: root,\r\n value: metadata[root]\r\n });\r\n };\r\n\r\n var getMetadata = function getMetadata(key) {\r\n return deepCloneObject(key ? metadata[key] : metadata);\r\n };\r\n\r\n var api = Object.assign(\r\n {\r\n id: {\r\n get: function get() {\r\n return id;\r\n }\r\n },\r\n origin: {\r\n get: function get() {\r\n return origin;\r\n }\r\n },\r\n serverId: {\r\n get: function get() {\r\n return state.serverFileReference;\r\n }\r\n },\r\n transferId: {\r\n get: function get() {\r\n return state.transferId;\r\n }\r\n },\r\n status: {\r\n get: function get() {\r\n return state.status;\r\n }\r\n },\r\n filename: {\r\n get: function get() {\r\n return state.file.name;\r\n }\r\n },\r\n filenameWithoutExtension: {\r\n get: function get() {\r\n return getFilenameWithoutExtension(state.file.name);\r\n }\r\n },\r\n fileExtension: { get: getFileExtension },\r\n fileType: { get: getFileType },\r\n fileSize: { get: getFileSize },\r\n file: { get: getFile },\r\n relativePath: {\r\n get: function get() {\r\n return state.file._relativePath;\r\n }\r\n },\r\n\r\n source: {\r\n get: function get() {\r\n return state.source;\r\n }\r\n },\r\n\r\n getMetadata: getMetadata,\r\n setMetadata: function setMetadata(key, value, silent) {\r\n if (isObject(key)) {\r\n var data = key;\r\n Object.keys(data).forEach(function(key) {\r\n _setMetadata(key, data[key], value);\r\n });\r\n return key;\r\n }\r\n _setMetadata(key, value, silent);\r\n return value;\r\n },\r\n\r\n extend: function extend(name, handler) {\r\n return (itemAPI[name] = handler);\r\n },\r\n\r\n abortLoad: abortLoad,\r\n retryLoad: retryLoad,\r\n requestProcessing: requestProcessing,\r\n abortProcessing: abortProcessing,\r\n\r\n load: load,\r\n process: process,\r\n revert: revert\r\n },\r\n\r\n on(),\r\n {\r\n freeze: function freeze() {\r\n return (state.frozen = true);\r\n },\r\n\r\n release: function release() {\r\n return (state.released = true);\r\n },\r\n released: {\r\n get: function get() {\r\n return state.released;\r\n }\r\n },\r\n\r\n archive: function archive() {\r\n return (state.archived = true);\r\n },\r\n archived: {\r\n get: function get() {\r\n return state.archived;\r\n }\r\n }\r\n }\r\n );\r\n\r\n // create it here instead of returning it instantly so we can extend it later\r\n var itemAPI = createObject(api);\r\n\r\n return itemAPI;\r\n };\r\n\r\n var getItemIndexByQuery = function getItemIndexByQuery(items, query) {\r\n // just return first index\r\n if (isEmpty(query)) {\r\n return 0;\r\n }\r\n\r\n // invalid queries\r\n if (!isString(query)) {\r\n return -1;\r\n }\r\n\r\n // return item by id (or -1 if not found)\r\n return items.findIndex(function(item) {\r\n return item.id === query;\r\n });\r\n };\r\n\r\n var getItemById = function getItemById(items, itemId) {\r\n var index = getItemIndexByQuery(items, itemId);\r\n if (index < 0) {\r\n return;\r\n }\r\n return items[index] || null;\r\n };\r\n\r\n var fetchBlob = function fetchBlob(\r\n url,\r\n load,\r\n error,\r\n progress,\r\n abort,\r\n headers\r\n ) {\r\n var request = sendRequest(null, url, {\r\n method: 'GET',\r\n responseType: 'blob'\r\n });\r\n\r\n request.onload = function(xhr) {\r\n // get headers\r\n var headers = xhr.getAllResponseHeaders();\r\n\r\n // get filename\r\n var filename =\r\n getFileInfoFromHeaders(headers).name || getFilenameFromURL(url);\r\n\r\n // create response\r\n load(\r\n createResponse(\r\n 'load',\r\n xhr.status,\r\n getFileFromBlob(xhr.response, filename),\r\n headers\r\n )\r\n );\r\n };\r\n\r\n request.onerror = function(xhr) {\r\n error(\r\n createResponse(\r\n 'error',\r\n xhr.status,\r\n xhr.statusText,\r\n xhr.getAllResponseHeaders()\r\n )\r\n );\r\n };\r\n\r\n request.onheaders = function(xhr) {\r\n headers(\r\n createResponse('headers', xhr.status, null, xhr.getAllResponseHeaders())\r\n );\r\n };\r\n\r\n request.ontimeout = createTimeoutResponse(error);\r\n request.onprogress = progress;\r\n request.onabort = abort;\r\n\r\n // should return request\r\n return request;\r\n };\r\n\r\n var getDomainFromURL = function getDomainFromURL(url) {\r\n if (url.indexOf('//') === 0) {\r\n url = location.protocol + url;\r\n }\r\n return url\r\n .toLowerCase()\r\n .replace('blob:', '')\r\n .replace(/([a-z])?:\\/\\//, '$1')\r\n .split('/')[0];\r\n };\r\n\r\n var isExternalURL = function isExternalURL(url) {\r\n return (\r\n (url.indexOf(':') > -1 || url.indexOf('//') > -1) &&\r\n getDomainFromURL(location.href) !== getDomainFromURL(url)\r\n );\r\n };\r\n\r\n var dynamicLabel = function dynamicLabel(label) {\r\n return function() {\r\n return isFunction(label) ? label.apply(void 0, arguments) : label;\r\n };\r\n };\r\n\r\n var isMockItem = function isMockItem(item) {\r\n return !isFile(item.file);\r\n };\r\n\r\n var listUpdated = function listUpdated(dispatch, state) {\r\n clearTimeout(state.listUpdateTimeout);\r\n state.listUpdateTimeout = setTimeout(function() {\r\n dispatch('DID_UPDATE_ITEMS', { items: getActiveItems(state.items) });\r\n }, 0);\r\n };\r\n\r\n var optionalPromise = function optionalPromise(fn) {\r\n for (\r\n var _len = arguments.length,\r\n params = new Array(_len > 1 ? _len - 1 : 0),\r\n _key = 1;\r\n _key < _len;\r\n _key++\r\n ) {\r\n params[_key - 1] = arguments[_key];\r\n }\r\n return new Promise(function(resolve) {\r\n if (!fn) {\r\n return resolve(true);\r\n }\r\n\r\n var result = fn.apply(void 0, params);\r\n\r\n if (result == null) {\r\n return resolve(true);\r\n }\r\n\r\n if (typeof result === 'boolean') {\r\n return resolve(result);\r\n }\r\n\r\n if (typeof result.then === 'function') {\r\n result.then(resolve);\r\n }\r\n });\r\n };\r\n\r\n var sortItems = function sortItems(state, compare) {\r\n state.items.sort(function(a, b) {\r\n return compare(createItemAPI(a), createItemAPI(b));\r\n });\r\n };\r\n\r\n // returns item based on state\r\n var getItemByQueryFromState = function getItemByQueryFromState(\r\n state,\r\n itemHandler\r\n ) {\r\n return function() {\r\n var _ref =\r\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n var query = _ref.query,\r\n _ref$success = _ref.success,\r\n success = _ref$success === void 0 ? function() {} : _ref$success,\r\n _ref$failure = _ref.failure,\r\n failure = _ref$failure === void 0 ? function() {} : _ref$failure,\r\n options = _objectWithoutProperties(_ref, [\r\n 'query',\r\n 'success',\r\n 'failure'\r\n ]);\r\n var item = getItemByQuery(state.items, query);\r\n if (!item) {\r\n failure({\r\n error: createResponse('error', 0, 'Item not found'),\r\n\r\n file: null\r\n });\r\n\r\n return;\r\n }\r\n itemHandler(item, success, failure, options || {});\r\n };\r\n };\r\n\r\n var actions = function actions(dispatch, query, state) {\r\n return {\r\n /**\r\n * Aborts all ongoing processes\r\n */\r\n ABORT_ALL: function ABORT_ALL() {\r\n getActiveItems(state.items).forEach(function(item) {\r\n item.freeze();\r\n item.abortLoad();\r\n item.abortProcessing();\r\n });\r\n },\r\n\r\n /**\r\n * Sets initial files\r\n */\r\n DID_SET_FILES: function DID_SET_FILES(_ref2) {\r\n var _ref2$value = _ref2.value,\r\n value = _ref2$value === void 0 ? [] : _ref2$value;\r\n\r\n // map values to file objects\r\n var files = value.map(function(file) {\r\n return {\r\n source: file.source ? file.source : file,\r\n options: file.options\r\n };\r\n });\r\n\r\n // loop over files, if file is in list, leave it be, if not, remove\r\n // test if items should be moved\r\n var activeItems = getActiveItems(state.items);\r\n\r\n activeItems.forEach(function(item) {\r\n // if item not is in new value, remove\r\n if (\r\n !files.find(function(file) {\r\n return file.source === item.source || file.source === item.file;\r\n })\r\n ) {\r\n dispatch('REMOVE_ITEM', { query: item, remove: false });\r\n }\r\n });\r\n\r\n // add new files\r\n activeItems = getActiveItems(state.items);\r\n files.forEach(function(file, index) {\r\n // if file is already in list\r\n if (\r\n activeItems.find(function(item) {\r\n return item.source === file.source || item.file === file.source;\r\n })\r\n )\r\n return;\r\n\r\n // not in list, add\r\n dispatch(\r\n 'ADD_ITEM',\r\n Object.assign({}, file, {\r\n interactionMethod: InteractionMethod.NONE,\r\n index: index\r\n })\r\n );\r\n });\r\n },\r\n\r\n DID_UPDATE_ITEM_METADATA: function DID_UPDATE_ITEM_METADATA(_ref3) {\r\n var id = _ref3.id;\r\n\r\n // if is called multiple times in close succession we combined all calls together to save resources\r\n clearTimeout(state.itemUpdateTimeout);\r\n state.itemUpdateTimeout = setTimeout(function() {\r\n var item = getItemById(state.items, id);\r\n\r\n // only revert and attempt to upload when we're uploading to a server\r\n if (!query('IS_ASYNC')) {\r\n // should we update the output data\r\n applyFilterChain('SHOULD_PREPARE_OUTPUT', false, {\r\n item: item,\r\n query: query\r\n }).then(function(shouldPrepareOutput) {\r\n if (!shouldPrepareOutput) {\r\n return;\r\n }\r\n dispatch(\r\n 'REQUEST_PREPARE_OUTPUT',\r\n {\r\n query: id,\r\n item: item,\r\n success: function success(file) {\r\n dispatch('DID_PREPARE_OUTPUT', { id: id, file: file });\r\n }\r\n },\r\n true\r\n );\r\n });\r\n\r\n return;\r\n }\r\n\r\n // for async scenarios\r\n var upload = function upload() {\r\n // we push this forward a bit so the interface is updated correctly\r\n setTimeout(function() {\r\n dispatch('REQUEST_ITEM_PROCESSING', { query: id });\r\n }, 32);\r\n };\r\n\r\n var revert = function revert(doUpload) {\r\n item\r\n .revert(\r\n createRevertFunction(\r\n state.options.server.url,\r\n state.options.server.revert\r\n ),\r\n query('GET_FORCE_REVERT')\r\n )\r\n .then(doUpload ? upload : function() {})\r\n .catch(function() {});\r\n };\r\n\r\n var abort = function abort(doUpload) {\r\n item.abortProcessing().then(doUpload ? upload : function() {});\r\n };\r\n\r\n // if we should re-upload the file immediately\r\n if (item.status === ItemStatus.PROCESSING_COMPLETE) {\r\n return revert(state.options.instantUpload);\r\n }\r\n\r\n // if currently uploading, cancel upload\r\n if (item.status === ItemStatus.PROCESSING) {\r\n return abort(state.options.instantUpload);\r\n }\r\n\r\n if (state.options.instantUpload) {\r\n upload();\r\n }\r\n }, 0);\r\n },\r\n\r\n MOVE_ITEM: function MOVE_ITEM(_ref4) {\r\n var query = _ref4.query,\r\n index = _ref4.index;\r\n var item = getItemByQuery(state.items, query);\r\n if (!item) return;\r\n var currentIndex = state.items.indexOf(item);\r\n index = limit(index, 0, state.items.length - 1);\r\n if (currentIndex === index) return;\r\n state.items.splice(index, 0, state.items.splice(currentIndex, 1)[0]);\r\n },\r\n\r\n SORT: function SORT(_ref5) {\r\n var compare = _ref5.compare;\r\n sortItems(state, compare);\r\n dispatch('DID_SORT_ITEMS', {\r\n items: query('GET_ACTIVE_ITEMS')\r\n });\r\n },\r\n\r\n ADD_ITEMS: function ADD_ITEMS(_ref6) {\r\n var items = _ref6.items,\r\n index = _ref6.index,\r\n interactionMethod = _ref6.interactionMethod,\r\n _ref6$success = _ref6.success,\r\n success = _ref6$success === void 0 ? function() {} : _ref6$success,\r\n _ref6$failure = _ref6.failure,\r\n failure = _ref6$failure === void 0 ? function() {} : _ref6$failure;\r\n\r\n var currentIndex = index;\r\n\r\n if (index === -1 || typeof index === 'undefined') {\r\n var insertLocation = query('GET_ITEM_INSERT_LOCATION');\r\n var totalItems = query('GET_TOTAL_ITEMS');\r\n currentIndex = insertLocation === 'before' ? 0 : totalItems;\r\n }\r\n\r\n var ignoredFiles = query('GET_IGNORED_FILES');\r\n var isValidFile = function isValidFile(source) {\r\n return isFile(source)\r\n ? !ignoredFiles.includes(source.name.toLowerCase())\r\n : !isEmpty(source);\r\n };\r\n var validItems = items.filter(isValidFile);\r\n\r\n var promises = validItems.map(function(source) {\r\n return new Promise(function(resolve, reject) {\r\n dispatch('ADD_ITEM', {\r\n interactionMethod: interactionMethod,\r\n source: source.source || source,\r\n success: resolve,\r\n failure: reject,\r\n index: currentIndex++,\r\n options: source.options || {}\r\n });\r\n });\r\n });\r\n\r\n Promise.all(promises)\r\n .then(success)\r\n .catch(failure);\r\n },\r\n\r\n /**\r\n * @param source\r\n * @param index\r\n * @param interactionMethod\r\n */\r\n ADD_ITEM: function ADD_ITEM(_ref7) {\r\n var source = _ref7.source,\r\n _ref7$index = _ref7.index,\r\n index = _ref7$index === void 0 ? -1 : _ref7$index,\r\n interactionMethod = _ref7.interactionMethod,\r\n _ref7$success = _ref7.success,\r\n success = _ref7$success === void 0 ? function() {} : _ref7$success,\r\n _ref7$failure = _ref7.failure,\r\n failure = _ref7$failure === void 0 ? function() {} : _ref7$failure,\r\n _ref7$options = _ref7.options,\r\n options = _ref7$options === void 0 ? {} : _ref7$options;\r\n\r\n // if no source supplied\r\n if (isEmpty(source)) {\r\n failure({\r\n error: createResponse('error', 0, 'No source'),\r\n\r\n file: null\r\n });\r\n\r\n return;\r\n }\r\n\r\n // filter out invalid file items, used to filter dropped directory contents\r\n if (\r\n isFile(source) &&\r\n state.options.ignoredFiles.includes(source.name.toLowerCase())\r\n ) {\r\n // fail silently\r\n return;\r\n }\r\n\r\n // test if there's still room in the list of files\r\n if (!hasRoomForItem(state)) {\r\n // if multiple allowed, we can't replace\r\n // or if only a single item is allowed but we're not allowed to replace it we exit\r\n if (\r\n state.options.allowMultiple ||\r\n (!state.options.allowMultiple && !state.options.allowReplace)\r\n ) {\r\n var error = createResponse('warning', 0, 'Max files');\r\n\r\n dispatch('DID_THROW_MAX_FILES', {\r\n source: source,\r\n error: error\r\n });\r\n\r\n failure({ error: error, file: null });\r\n\r\n return;\r\n }\r\n\r\n // let's replace the item\r\n // id of first item we're about to remove\r\n var _item = getActiveItems(state.items)[0];\r\n\r\n // if has been processed remove it from the server as well\r\n if (\r\n _item.status === ItemStatus.PROCESSING_COMPLETE ||\r\n _item.status === ItemStatus.PROCESSING_REVERT_ERROR\r\n ) {\r\n var forceRevert = query('GET_FORCE_REVERT');\r\n _item\r\n .revert(\r\n createRevertFunction(\r\n state.options.server.url,\r\n state.options.server.revert\r\n ),\r\n forceRevert\r\n )\r\n .then(function() {\r\n if (!forceRevert) return;\r\n\r\n // try to add now\r\n dispatch('ADD_ITEM', {\r\n source: source,\r\n index: index,\r\n interactionMethod: interactionMethod,\r\n success: success,\r\n failure: failure,\r\n options: options\r\n });\r\n })\r\n .catch(function() {}); // no need to handle this catch state for now\r\n\r\n if (forceRevert) return;\r\n }\r\n\r\n // remove first item as it will be replaced by this item\r\n dispatch('REMOVE_ITEM', { query: _item.id });\r\n }\r\n\r\n // where did the file originate\r\n var origin =\r\n options.type === 'local'\r\n ? FileOrigin.LOCAL\r\n : options.type === 'limbo'\r\n ? FileOrigin.LIMBO\r\n : FileOrigin.INPUT;\r\n\r\n // create a new blank item\r\n var item = createItem(\r\n // where did this file come from\r\n origin,\r\n\r\n // an input file never has a server file reference\r\n origin === FileOrigin.INPUT ? null : source,\r\n\r\n // file mock data, if defined\r\n options.file\r\n );\r\n\r\n // set initial meta data\r\n Object.keys(options.metadata || {}).forEach(function(key) {\r\n item.setMetadata(key, options.metadata[key]);\r\n });\r\n\r\n // created the item, let plugins add methods\r\n applyFilters('DID_CREATE_ITEM', item, {\r\n query: query,\r\n dispatch: dispatch\r\n });\r\n\r\n // where to insert new items\r\n var itemInsertLocation = query('GET_ITEM_INSERT_LOCATION');\r\n\r\n // adjust index if is not allowed to pick location\r\n if (!state.options.itemInsertLocationFreedom) {\r\n index = itemInsertLocation === 'before' ? -1 : state.items.length;\r\n }\r\n\r\n // add item to list\r\n insertItem(state.items, item, index);\r\n\r\n // sort items in list\r\n if (isFunction(itemInsertLocation) && source) {\r\n sortItems(state, itemInsertLocation);\r\n }\r\n\r\n // get a quick reference to the item id\r\n var id = item.id;\r\n\r\n // observe item events\r\n item.on('init', function() {\r\n dispatch('DID_INIT_ITEM', { id: id });\r\n });\r\n\r\n item.on('load-init', function() {\r\n dispatch('DID_START_ITEM_LOAD', { id: id });\r\n });\r\n\r\n item.on('load-meta', function() {\r\n dispatch('DID_UPDATE_ITEM_META', { id: id });\r\n });\r\n\r\n item.on('load-progress', function(progress) {\r\n dispatch('DID_UPDATE_ITEM_LOAD_PROGRESS', {\r\n id: id,\r\n progress: progress\r\n });\r\n });\r\n\r\n item.on('load-request-error', function(error) {\r\n var mainStatus = dynamicLabel(state.options.labelFileLoadError)(\r\n error\r\n );\r\n\r\n // is client error, no way to recover\r\n if (error.code >= 400 && error.code < 500) {\r\n dispatch('DID_THROW_ITEM_INVALID', {\r\n id: id,\r\n error: error,\r\n status: {\r\n main: mainStatus,\r\n sub: error.code + ' (' + error.body + ')'\r\n }\r\n });\r\n\r\n // reject the file so can be dealt with through API\r\n failure({ error: error, file: createItemAPI(item) });\r\n return;\r\n }\r\n\r\n // is possible server error, so might be possible to retry\r\n dispatch('DID_THROW_ITEM_LOAD_ERROR', {\r\n id: id,\r\n error: error,\r\n status: {\r\n main: mainStatus,\r\n sub: state.options.labelTapToRetry\r\n }\r\n });\r\n });\r\n\r\n item.on('load-file-error', function(error) {\r\n dispatch('DID_THROW_ITEM_INVALID', {\r\n id: id,\r\n error: error.status,\r\n status: error.status\r\n });\r\n\r\n failure({ error: error.status, file: createItemAPI(item) });\r\n });\r\n\r\n item.on('load-abort', function() {\r\n dispatch('REMOVE_ITEM', { query: id });\r\n });\r\n\r\n item.on('load-skip', function() {\r\n dispatch('COMPLETE_LOAD_ITEM', {\r\n query: id,\r\n item: item,\r\n data: {\r\n source: source,\r\n success: success\r\n }\r\n });\r\n });\r\n\r\n item.on('load', function() {\r\n var handleAdd = function handleAdd(shouldAdd) {\r\n // no should not add this file\r\n if (!shouldAdd) {\r\n dispatch('REMOVE_ITEM', {\r\n query: id\r\n });\r\n\r\n return;\r\n }\r\n\r\n // now interested in metadata updates\r\n item.on('metadata-update', function(change) {\r\n dispatch('DID_UPDATE_ITEM_METADATA', { id: id, change: change });\r\n });\r\n\r\n // let plugins decide if the output data should be prepared at this point\r\n // means we'll do this and wait for idle state\r\n applyFilterChain('SHOULD_PREPARE_OUTPUT', false, {\r\n item: item,\r\n query: query\r\n }).then(function(shouldPrepareOutput) {\r\n var loadComplete = function loadComplete() {\r\n dispatch('COMPLETE_LOAD_ITEM', {\r\n query: id,\r\n item: item,\r\n data: {\r\n source: source,\r\n success: success\r\n }\r\n });\r\n\r\n listUpdated(dispatch, state);\r\n };\r\n\r\n // exit\r\n if (shouldPrepareOutput) {\r\n // wait for idle state and then run PREPARE_OUTPUT\r\n dispatch(\r\n 'REQUEST_PREPARE_OUTPUT',\r\n {\r\n query: id,\r\n item: item,\r\n success: function success(file) {\r\n dispatch('DID_PREPARE_OUTPUT', { id: id, file: file });\r\n loadComplete();\r\n }\r\n },\r\n true\r\n );\r\n\r\n return;\r\n }\r\n\r\n loadComplete();\r\n });\r\n };\r\n\r\n // item loaded, allow plugins to\r\n // - read data (quickly)\r\n // - add metadata\r\n applyFilterChain('DID_LOAD_ITEM', item, {\r\n query: query,\r\n dispatch: dispatch\r\n })\r\n .then(function() {\r\n optionalPromise(\r\n query('GET_BEFORE_ADD_FILE'),\r\n createItemAPI(item)\r\n ).then(handleAdd);\r\n })\r\n .catch(function() {\r\n handleAdd(false);\r\n });\r\n });\r\n\r\n item.on('process-start', function() {\r\n dispatch('DID_START_ITEM_PROCESSING', { id: id });\r\n });\r\n\r\n item.on('process-progress', function(progress) {\r\n dispatch('DID_UPDATE_ITEM_PROCESS_PROGRESS', {\r\n id: id,\r\n progress: progress\r\n });\r\n });\r\n\r\n item.on('process-error', function(error) {\r\n dispatch('DID_THROW_ITEM_PROCESSING_ERROR', {\r\n id: id,\r\n error: error,\r\n status: {\r\n main: dynamicLabel(state.options.labelFileProcessingError)(error),\r\n sub: state.options.labelTapToRetry\r\n }\r\n });\r\n });\r\n\r\n item.on('process-revert-error', function(error) {\r\n dispatch('DID_THROW_ITEM_PROCESSING_REVERT_ERROR', {\r\n id: id,\r\n error: error,\r\n status: {\r\n main: dynamicLabel(state.options.labelFileProcessingRevertError)(\r\n error\r\n ),\r\n sub: state.options.labelTapToRetry\r\n }\r\n });\r\n });\r\n\r\n item.on('process-complete', function(serverFileReference) {\r\n dispatch('DID_COMPLETE_ITEM_PROCESSING', {\r\n id: id,\r\n error: null,\r\n serverFileReference: serverFileReference\r\n });\r\n\r\n dispatch('DID_DEFINE_VALUE', { id: id, value: serverFileReference });\r\n });\r\n\r\n item.on('process-abort', function() {\r\n dispatch('DID_ABORT_ITEM_PROCESSING', { id: id });\r\n });\r\n\r\n item.on('process-revert', function() {\r\n dispatch('DID_REVERT_ITEM_PROCESSING', { id: id });\r\n dispatch('DID_DEFINE_VALUE', { id: id, value: null });\r\n });\r\n\r\n // let view know the item has been inserted\r\n dispatch('DID_ADD_ITEM', {\r\n id: id,\r\n index: index,\r\n interactionMethod: interactionMethod\r\n });\r\n\r\n listUpdated(dispatch, state);\r\n\r\n // start loading the source\r\n var _ref8 = state.options.server || {},\r\n url = _ref8.url,\r\n load = _ref8.load,\r\n restore = _ref8.restore,\r\n fetch = _ref8.fetch;\r\n\r\n item.load(\r\n source,\r\n\r\n // this creates a function that loads the file based on the type of file (string, base64, blob, file) and location of file (local, remote, limbo)\r\n createFileLoader(\r\n origin === FileOrigin.INPUT\r\n ? // input, if is remote, see if should use custom fetch, else use default fetchBlob\r\n isString(source) && isExternalURL(source)\r\n ? fetch\r\n ? createFetchFunction(url, fetch)\r\n : fetchBlob // remote url\r\n : fetchBlob // try to fetch url\r\n : // limbo or local\r\n origin === FileOrigin.LIMBO\r\n ? createFetchFunction(url, restore) // limbo\r\n : createFetchFunction(url, load) // local\r\n ),\r\n\r\n // called when the file is loaded so it can be piped through the filters\r\n function(file, success, error) {\r\n // let's process the file\r\n applyFilterChain('LOAD_FILE', file, { query: query })\r\n .then(success)\r\n .catch(error);\r\n }\r\n );\r\n },\r\n\r\n REQUEST_PREPARE_OUTPUT: function REQUEST_PREPARE_OUTPUT(_ref9) {\r\n var item = _ref9.item,\r\n success = _ref9.success,\r\n _ref9$failure = _ref9.failure,\r\n failure = _ref9$failure === void 0 ? function() {} : _ref9$failure;\r\n\r\n // error response if item archived\r\n var err = {\r\n error: createResponse('error', 0, 'Item not found'),\r\n\r\n file: null\r\n };\r\n\r\n // don't handle archived items, an item could have been archived (load aborted) while waiting to be prepared\r\n if (item.archived) return failure(err);\r\n\r\n // allow plugins to alter the file data\r\n applyFilterChain('PREPARE_OUTPUT', item.file, {\r\n query: query,\r\n item: item\r\n }).then(function(result) {\r\n applyFilterChain('COMPLETE_PREPARE_OUTPUT', result, {\r\n query: query,\r\n item: item\r\n }).then(function(result) {\r\n // don't handle archived items, an item could have been archived (load aborted) while being prepared\r\n if (item.archived) return failure(err);\r\n\r\n // we done!\r\n success(result);\r\n });\r\n });\r\n },\r\n\r\n COMPLETE_LOAD_ITEM: function COMPLETE_LOAD_ITEM(_ref10) {\r\n var item = _ref10.item,\r\n data = _ref10.data;\r\n var success = data.success,\r\n source = data.source;\r\n\r\n // sort items in list\r\n var itemInsertLocation = query('GET_ITEM_INSERT_LOCATION');\r\n if (isFunction(itemInsertLocation) && source) {\r\n sortItems(state, itemInsertLocation);\r\n }\r\n\r\n // let interface know the item has loaded\r\n dispatch('DID_LOAD_ITEM', {\r\n id: item.id,\r\n error: null,\r\n serverFileReference: item.origin === FileOrigin.INPUT ? null : source\r\n });\r\n\r\n // item has been successfully loaded and added to the\r\n // list of items so can now be safely returned for use\r\n success(createItemAPI(item));\r\n\r\n // if this is a local server file we need to show a different state\r\n if (item.origin === FileOrigin.LOCAL) {\r\n dispatch('DID_LOAD_LOCAL_ITEM', { id: item.id });\r\n return;\r\n }\r\n\r\n // if is a temp server file we prevent async upload call here (as the file is already on the server)\r\n if (item.origin === FileOrigin.LIMBO) {\r\n dispatch('DID_COMPLETE_ITEM_PROCESSING', {\r\n id: item.id,\r\n error: null,\r\n serverFileReference: source\r\n });\r\n\r\n dispatch('DID_DEFINE_VALUE', {\r\n id: item.id,\r\n value: source\r\n });\r\n\r\n return;\r\n }\r\n\r\n // id we are allowed to upload the file immediately, lets do it\r\n if (query('IS_ASYNC') && state.options.instantUpload) {\r\n dispatch('REQUEST_ITEM_PROCESSING', { query: item.id });\r\n }\r\n },\r\n\r\n RETRY_ITEM_LOAD: getItemByQueryFromState(state, function(item) {\r\n // try loading the source one more time\r\n item.retryLoad();\r\n }),\r\n\r\n REQUEST_ITEM_PREPARE: getItemByQueryFromState(state, function(\r\n item,\r\n _success,\r\n failure\r\n ) {\r\n dispatch(\r\n 'REQUEST_PREPARE_OUTPUT',\r\n {\r\n query: item.id,\r\n item: item,\r\n success: function success(file) {\r\n dispatch('DID_PREPARE_OUTPUT', { id: item.id, file: file });\r\n _success({\r\n file: item,\r\n output: file\r\n });\r\n },\r\n failure: failure\r\n },\r\n true\r\n );\r\n }),\r\n\r\n REQUEST_ITEM_PROCESSING: getItemByQueryFromState(state, function(\r\n item,\r\n success,\r\n failure\r\n ) {\r\n // cannot be queued (or is already queued)\r\n var itemCanBeQueuedForProcessing =\r\n // waiting for something\r\n item.status === ItemStatus.IDLE ||\r\n // processing went wrong earlier\r\n item.status === ItemStatus.PROCESSING_ERROR;\r\n\r\n // not ready to be processed\r\n if (!itemCanBeQueuedForProcessing) {\r\n var processNow = function processNow() {\r\n return dispatch('REQUEST_ITEM_PROCESSING', {\r\n query: item,\r\n success: success,\r\n failure: failure\r\n });\r\n };\r\n\r\n var process = function process() {\r\n return document.hidden ? processNow() : setTimeout(processNow, 32);\r\n };\r\n\r\n // if already done processing or tried to revert but didn't work, try again\r\n if (\r\n item.status === ItemStatus.PROCESSING_COMPLETE ||\r\n item.status === ItemStatus.PROCESSING_REVERT_ERROR\r\n ) {\r\n item\r\n .revert(\r\n createRevertFunction(\r\n state.options.server.url,\r\n state.options.server.revert\r\n ),\r\n query('GET_FORCE_REVERT')\r\n )\r\n .then(process)\r\n .catch(function() {}); // don't continue with processing if something went wrong\r\n } else if (item.status === ItemStatus.PROCESSING) {\r\n item.abortProcessing().then(process);\r\n }\r\n\r\n return;\r\n }\r\n\r\n // already queued for processing\r\n if (item.status === ItemStatus.PROCESSING_QUEUED) return;\r\n\r\n item.requestProcessing();\r\n\r\n dispatch('DID_REQUEST_ITEM_PROCESSING', { id: item.id });\r\n\r\n dispatch(\r\n 'PROCESS_ITEM',\r\n { query: item, success: success, failure: failure },\r\n true\r\n );\r\n }),\r\n\r\n PROCESS_ITEM: getItemByQueryFromState(state, function(\r\n item,\r\n success,\r\n failure\r\n ) {\r\n var maxParallelUploads = query('GET_MAX_PARALLEL_UPLOADS');\r\n var totalCurrentUploads = query(\r\n 'GET_ITEMS_BY_STATUS',\r\n ItemStatus.PROCESSING\r\n ).length;\r\n\r\n // queue and wait till queue is freed up\r\n if (totalCurrentUploads === maxParallelUploads) {\r\n // queue for later processing\r\n state.processingQueue.push({\r\n id: item.id,\r\n success: success,\r\n failure: failure\r\n });\r\n\r\n // stop it!\r\n return;\r\n }\r\n\r\n // if was not queued or is already processing exit here\r\n if (item.status === ItemStatus.PROCESSING) return;\r\n\r\n var processNext = function processNext() {\r\n // process queueud items\r\n var queueEntry = state.processingQueue.shift();\r\n\r\n // no items left\r\n if (!queueEntry) return;\r\n\r\n // get item reference\r\n var id = queueEntry.id,\r\n success = queueEntry.success,\r\n failure = queueEntry.failure;\r\n var itemReference = getItemByQuery(state.items, id);\r\n\r\n // if item was archived while in queue, jump to next\r\n if (!itemReference || itemReference.archived) {\r\n processNext();\r\n return;\r\n }\r\n\r\n // process queued item\r\n dispatch(\r\n 'PROCESS_ITEM',\r\n { query: id, success: success, failure: failure },\r\n true\r\n );\r\n };\r\n\r\n // we done function\r\n item.onOnce('process-complete', function() {\r\n success(createItemAPI(item));\r\n processNext();\r\n\r\n // All items processed? No errors?\r\n var allItemsProcessed =\r\n query('GET_ITEMS_BY_STATUS', ItemStatus.PROCESSING_COMPLETE)\r\n .length === state.items.length;\r\n if (allItemsProcessed) {\r\n dispatch('DID_COMPLETE_ITEM_PROCESSING_ALL');\r\n }\r\n });\r\n\r\n // we error function\r\n item.onOnce('process-error', function(error) {\r\n failure({ error: error, file: createItemAPI(item) });\r\n processNext();\r\n });\r\n\r\n // start file processing\r\n var options = state.options;\r\n item.process(\r\n createFileProcessor(\r\n createProcessorFunction(\r\n options.server.url,\r\n options.server.process,\r\n options.name,\r\n {\r\n chunkTransferId: item.transferId,\r\n chunkServer: options.server.patch,\r\n chunkUploads: options.chunkUploads,\r\n chunkForce: options.chunkForce,\r\n chunkSize: options.chunkSize,\r\n chunkRetryDelays: options.chunkRetryDelays\r\n }\r\n )\r\n ),\r\n\r\n // called when the file is about to be processed so it can be piped through the transform filters\r\n function(file, success, error) {\r\n // allow plugins to alter the file data\r\n applyFilterChain('PREPARE_OUTPUT', file, {\r\n query: query,\r\n item: item\r\n })\r\n .then(function(file) {\r\n dispatch('DID_PREPARE_OUTPUT', { id: item.id, file: file });\r\n\r\n success(file);\r\n })\r\n .catch(error);\r\n }\r\n );\r\n }),\r\n\r\n RETRY_ITEM_PROCESSING: getItemByQueryFromState(state, function(item) {\r\n dispatch('REQUEST_ITEM_PROCESSING', { query: item });\r\n }),\r\n\r\n REQUEST_REMOVE_ITEM: getItemByQueryFromState(state, function(item) {\r\n optionalPromise(\r\n query('GET_BEFORE_REMOVE_FILE'),\r\n createItemAPI(item)\r\n ).then(function(shouldRemove) {\r\n if (!shouldRemove) {\r\n return;\r\n }\r\n dispatch('REMOVE_ITEM', { query: item });\r\n });\r\n }),\r\n\r\n RELEASE_ITEM: getItemByQueryFromState(state, function(item) {\r\n item.release();\r\n }),\r\n\r\n REMOVE_ITEM: getItemByQueryFromState(state, function(\r\n item,\r\n success,\r\n failure,\r\n options\r\n ) {\r\n var removeFromView = function removeFromView() {\r\n // get id reference\r\n var id = item.id;\r\n\r\n // archive the item, this does not remove it from the list\r\n getItemById(state.items, id).archive();\r\n\r\n // tell the view the item has been removed\r\n dispatch('DID_REMOVE_ITEM', { error: null, id: id, item: item });\r\n\r\n // now the list has been modified\r\n listUpdated(dispatch, state);\r\n\r\n // correctly removed\r\n success(createItemAPI(item));\r\n };\r\n\r\n // if this is a local file and the server.remove function has been configured, send source there so dev can remove file from server\r\n var server = state.options.server;\r\n if (\r\n item.origin === FileOrigin.LOCAL &&\r\n server &&\r\n isFunction(server.remove) &&\r\n options.remove !== false\r\n ) {\r\n dispatch('DID_START_ITEM_REMOVE', { id: item.id });\r\n\r\n server.remove(\r\n item.source,\r\n function() {\r\n return removeFromView();\r\n },\r\n function(status) {\r\n dispatch('DID_THROW_ITEM_REMOVE_ERROR', {\r\n id: item.id,\r\n error: createResponse('error', 0, status, null),\r\n status: {\r\n main: dynamicLabel(state.options.labelFileRemoveError)(\r\n status\r\n ),\r\n sub: state.options.labelTapToRetry\r\n }\r\n });\r\n }\r\n );\r\n } else {\r\n // if is requesting revert and can revert need to call revert handler (not calling request_ because that would also trigger beforeRemoveHook)\r\n if (\r\n options.revert &&\r\n item.origin !== FileOrigin.LOCAL &&\r\n item.serverId !== null\r\n ) {\r\n item.revert(\r\n createRevertFunction(\r\n state.options.server.url,\r\n state.options.server.revert\r\n ),\r\n query('GET_FORCE_REVERT')\r\n );\r\n }\r\n\r\n // can now safely remove from view\r\n removeFromView();\r\n }\r\n }),\r\n\r\n ABORT_ITEM_LOAD: getItemByQueryFromState(state, function(item) {\r\n item.abortLoad();\r\n }),\r\n\r\n ABORT_ITEM_PROCESSING: getItemByQueryFromState(state, function(item) {\r\n // test if is already processed\r\n if (item.serverId) {\r\n dispatch('REVERT_ITEM_PROCESSING', { id: item.id });\r\n return;\r\n }\r\n\r\n // abort\r\n item.abortProcessing().then(function() {\r\n var shouldRemove = state.options.instantUpload;\r\n if (shouldRemove) {\r\n dispatch('REMOVE_ITEM', { query: item.id });\r\n }\r\n });\r\n }),\r\n\r\n REQUEST_REVERT_ITEM_PROCESSING: getItemByQueryFromState(state, function(\r\n item\r\n ) {\r\n // not instant uploading, revert immediately\r\n if (!state.options.instantUpload) {\r\n dispatch('REVERT_ITEM_PROCESSING', { query: item });\r\n return;\r\n }\r\n\r\n // if we're instant uploading the file will also be removed if we revert,\r\n // so if a before remove file hook is defined we need to run it now\r\n var handleRevert = function handleRevert(shouldRevert) {\r\n if (!shouldRevert) return;\r\n dispatch('REVERT_ITEM_PROCESSING', { query: item });\r\n };\r\n\r\n var fn = query('GET_BEFORE_REMOVE_FILE');\r\n if (!fn) {\r\n return handleRevert(true);\r\n }\r\n\r\n var requestRemoveResult = fn(createItemAPI(item));\r\n if (requestRemoveResult == null) {\r\n // undefined or null\r\n return handleRevert(true);\r\n }\r\n\r\n if (typeof requestRemoveResult === 'boolean') {\r\n return handleRevert(requestRemoveResult);\r\n }\r\n\r\n if (typeof requestRemoveResult.then === 'function') {\r\n requestRemoveResult.then(handleRevert);\r\n }\r\n }),\r\n\r\n REVERT_ITEM_PROCESSING: getItemByQueryFromState(state, function(item) {\r\n item\r\n .revert(\r\n createRevertFunction(\r\n state.options.server.url,\r\n state.options.server.revert\r\n ),\r\n query('GET_FORCE_REVERT')\r\n )\r\n .then(function() {\r\n var shouldRemove = state.options.instantUpload || isMockItem(item);\r\n if (shouldRemove) {\r\n dispatch('REMOVE_ITEM', { query: item.id });\r\n }\r\n })\r\n .catch(function() {});\r\n }),\r\n\r\n SET_OPTIONS: function SET_OPTIONS(_ref11) {\r\n var options = _ref11.options;\r\n forin(options, function(key, value) {\r\n dispatch('SET_' + fromCamels(key, '_').toUpperCase(), {\r\n value: value\r\n });\r\n });\r\n }\r\n };\r\n };\r\n\r\n var formatFilename = function formatFilename(name) {\r\n return name;\r\n };\r\n\r\n var createElement$1 = function createElement(tagName) {\r\n return document.createElement(tagName);\r\n };\r\n\r\n var text = function text(node, value) {\r\n var textNode = node.childNodes[0];\r\n if (!textNode) {\r\n textNode = document.createTextNode(value);\r\n node.appendChild(textNode);\r\n } else if (value !== textNode.nodeValue) {\r\n textNode.nodeValue = value;\r\n }\r\n };\r\n\r\n var polarToCartesian = function polarToCartesian(\r\n centerX,\r\n centerY,\r\n radius,\r\n angleInDegrees\r\n ) {\r\n var angleInRadians = (((angleInDegrees % 360) - 90) * Math.PI) / 180.0;\r\n return {\r\n x: centerX + radius * Math.cos(angleInRadians),\r\n y: centerY + radius * Math.sin(angleInRadians)\r\n };\r\n };\r\n\r\n var describeArc = function describeArc(\r\n x,\r\n y,\r\n radius,\r\n startAngle,\r\n endAngle,\r\n arcSweep\r\n ) {\r\n var start = polarToCartesian(x, y, radius, endAngle);\r\n var end = polarToCartesian(x, y, radius, startAngle);\r\n return [\r\n 'M',\r\n start.x,\r\n start.y,\r\n 'A',\r\n radius,\r\n radius,\r\n 0,\r\n arcSweep,\r\n 0,\r\n end.x,\r\n end.y\r\n ].join(' ');\r\n };\r\n\r\n var percentageArc = function percentageArc(x, y, radius, from, to) {\r\n var arcSweep = 1;\r\n if (to > from && to - from <= 0.5) {\r\n arcSweep = 0;\r\n }\r\n if (from > to && from - to >= 0.5) {\r\n arcSweep = 0;\r\n }\r\n return describeArc(\r\n x,\r\n y,\r\n radius,\r\n Math.min(0.9999, from) * 360,\r\n Math.min(0.9999, to) * 360,\r\n arcSweep\r\n );\r\n };\r\n\r\n var create = function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n // start at 0\r\n props.spin = false;\r\n props.progress = 0;\r\n props.opacity = 0;\r\n\r\n // svg\r\n var svg = createElement('svg');\r\n root.ref.path = createElement('path', {\r\n 'stroke-width': 2,\r\n 'stroke-linecap': 'round'\r\n });\r\n\r\n svg.appendChild(root.ref.path);\r\n\r\n root.ref.svg = svg;\r\n\r\n root.appendChild(svg);\r\n };\r\n\r\n var write = function write(_ref2) {\r\n var root = _ref2.root,\r\n props = _ref2.props;\r\n\r\n if (props.opacity === 0) {\r\n return;\r\n }\r\n\r\n if (props.align) {\r\n root.element.dataset.align = props.align;\r\n }\r\n\r\n // get width of stroke\r\n var ringStrokeWidth = parseInt(attr(root.ref.path, 'stroke-width'), 10);\r\n\r\n // calculate size of ring\r\n var size = root.rect.element.width * 0.5;\r\n\r\n // ring state\r\n var ringFrom = 0;\r\n var ringTo = 0;\r\n\r\n // now in busy mode\r\n if (props.spin) {\r\n ringFrom = 0;\r\n ringTo = 0.5;\r\n } else {\r\n ringFrom = 0;\r\n ringTo = props.progress;\r\n }\r\n\r\n // get arc path\r\n var coordinates = percentageArc(\r\n size,\r\n size,\r\n size - ringStrokeWidth,\r\n ringFrom,\r\n ringTo\r\n );\r\n\r\n // update progress bar\r\n attr(root.ref.path, 'd', coordinates);\r\n\r\n // hide while contains 0 value\r\n attr(\r\n root.ref.path,\r\n 'stroke-opacity',\r\n props.spin || props.progress > 0 ? 1 : 0\r\n );\r\n };\r\n\r\n var progressIndicator = createView({\r\n tag: 'div',\r\n name: 'progress-indicator',\r\n ignoreRectUpdate: true,\r\n ignoreRect: true,\r\n create: create,\r\n write: write,\r\n mixins: {\r\n apis: ['progress', 'spin', 'align'],\r\n styles: ['opacity'],\r\n animations: {\r\n opacity: { type: 'tween', duration: 500 },\r\n progress: {\r\n type: 'spring',\r\n stiffness: 0.95,\r\n damping: 0.65,\r\n mass: 10\r\n }\r\n }\r\n }\r\n });\r\n\r\n var create$1 = function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n root.element.innerHTML =\r\n (props.icon || '') + ('' + props.label + '');\r\n\r\n props.isDisabled = false;\r\n };\r\n\r\n var write$1 = function write(_ref2) {\r\n var root = _ref2.root,\r\n props = _ref2.props;\r\n var isDisabled = props.isDisabled;\r\n var shouldDisable = root.query('GET_DISABLED') || props.opacity === 0;\r\n\r\n if (shouldDisable && !isDisabled) {\r\n props.isDisabled = true;\r\n attr(root.element, 'disabled', 'disabled');\r\n } else if (!shouldDisable && isDisabled) {\r\n props.isDisabled = false;\r\n root.element.removeAttribute('disabled');\r\n }\r\n };\r\n\r\n var fileActionButton = createView({\r\n tag: 'button',\r\n attributes: {\r\n type: 'button'\r\n },\r\n\r\n ignoreRect: true,\r\n ignoreRectUpdate: true,\r\n name: 'file-action-button',\r\n mixins: {\r\n apis: ['label'],\r\n styles: ['translateX', 'translateY', 'scaleX', 'scaleY', 'opacity'],\r\n animations: {\r\n scaleX: 'spring',\r\n scaleY: 'spring',\r\n translateX: 'spring',\r\n translateY: 'spring',\r\n opacity: { type: 'tween', duration: 250 }\r\n },\r\n\r\n listeners: true\r\n },\r\n\r\n create: create$1,\r\n write: write$1\r\n });\r\n\r\n var toNaturalFileSize = function toNaturalFileSize(bytes) {\r\n var decimalSeparator =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.';\r\n var base =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\r\n // no negative byte sizes\r\n bytes = Math.round(Math.abs(bytes));\r\n\r\n var KB = base;\r\n var MB = base * 1000;\r\n var GB = base * 1000000;\r\n\r\n // just bytes\r\n if (bytes < KB) {\r\n return bytes + ' bytes';\r\n }\r\n\r\n // kilobytes\r\n if (bytes < MB) {\r\n return Math.floor(bytes / KB) + ' KB';\r\n }\r\n\r\n // megabytes\r\n if (bytes < GB) {\r\n return removeDecimalsWhenZero(bytes / MB, 1, decimalSeparator) + ' MB';\r\n }\r\n\r\n // gigabytes\r\n return removeDecimalsWhenZero(bytes / GB, 2, decimalSeparator) + ' GB';\r\n };\r\n\r\n var removeDecimalsWhenZero = function removeDecimalsWhenZero(\r\n value,\r\n decimalCount,\r\n separator\r\n ) {\r\n return value\r\n .toFixed(decimalCount)\r\n .split('.')\r\n .filter(function(part) {\r\n return part !== '0';\r\n })\r\n .join(separator);\r\n };\r\n\r\n var create$2 = function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n // filename\r\n var fileName = createElement$1('span');\r\n fileName.className = 'filepond--file-info-main';\r\n // hide for screenreaders\r\n // the file is contained in a fieldset with legend that contains the filename\r\n // no need to read it twice\r\n attr(fileName, 'aria-hidden', 'true');\r\n root.appendChild(fileName);\r\n root.ref.fileName = fileName;\r\n\r\n // filesize\r\n var fileSize = createElement$1('span');\r\n fileSize.className = 'filepond--file-info-sub';\r\n root.appendChild(fileSize);\r\n root.ref.fileSize = fileSize;\r\n\r\n // set initial values\r\n text(fileSize, root.query('GET_LABEL_FILE_WAITING_FOR_SIZE'));\r\n text(fileName, formatFilename(root.query('GET_ITEM_NAME', props.id)));\r\n };\r\n\r\n var updateFile = function updateFile(_ref2) {\r\n var root = _ref2.root,\r\n props = _ref2.props;\r\n text(\r\n root.ref.fileSize,\r\n toNaturalFileSize(\r\n root.query('GET_ITEM_SIZE', props.id),\r\n '.',\r\n root.query('GET_FILE_SIZE_BASE')\r\n )\r\n );\r\n\r\n text(\r\n root.ref.fileName,\r\n formatFilename(root.query('GET_ITEM_NAME', props.id))\r\n );\r\n };\r\n\r\n var updateFileSizeOnError = function updateFileSizeOnError(_ref3) {\r\n var root = _ref3.root,\r\n props = _ref3.props;\r\n // if size is available don't fallback to unknown size message\r\n if (isInt(root.query('GET_ITEM_SIZE', props.id))) {\r\n return;\r\n }\r\n\r\n text(root.ref.fileSize, root.query('GET_LABEL_FILE_SIZE_NOT_AVAILABLE'));\r\n };\r\n\r\n var fileInfo = createView({\r\n name: 'file-info',\r\n ignoreRect: true,\r\n ignoreRectUpdate: true,\r\n write: createRoute({\r\n DID_LOAD_ITEM: updateFile,\r\n DID_UPDATE_ITEM_META: updateFile,\r\n DID_THROW_ITEM_LOAD_ERROR: updateFileSizeOnError,\r\n DID_THROW_ITEM_INVALID: updateFileSizeOnError\r\n }),\r\n\r\n didCreateView: function didCreateView(root) {\r\n applyFilters('CREATE_VIEW', Object.assign({}, root, { view: root }));\r\n },\r\n create: create$2,\r\n mixins: {\r\n styles: ['translateX', 'translateY'],\r\n animations: {\r\n translateX: 'spring',\r\n translateY: 'spring'\r\n }\r\n }\r\n });\r\n\r\n var toPercentage = function toPercentage(value) {\r\n return Math.round(value * 100);\r\n };\r\n\r\n var create$3 = function create(_ref) {\r\n var root = _ref.root;\r\n\r\n // main status\r\n var main = createElement$1('span');\r\n main.className = 'filepond--file-status-main';\r\n root.appendChild(main);\r\n root.ref.main = main;\r\n\r\n // sub status\r\n var sub = createElement$1('span');\r\n sub.className = 'filepond--file-status-sub';\r\n root.appendChild(sub);\r\n root.ref.sub = sub;\r\n\r\n didSetItemLoadProgress({ root: root, action: { progress: null } });\r\n };\r\n\r\n var didSetItemLoadProgress = function didSetItemLoadProgress(_ref2) {\r\n var root = _ref2.root,\r\n action = _ref2.action;\r\n var title =\r\n action.progress === null\r\n ? root.query('GET_LABEL_FILE_LOADING')\r\n : root.query('GET_LABEL_FILE_LOADING') +\r\n ' ' +\r\n toPercentage(action.progress) +\r\n '%';\r\n\r\n text(root.ref.main, title);\r\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_CANCEL'));\r\n };\r\n\r\n var didSetItemProcessProgress = function didSetItemProcessProgress(_ref3) {\r\n var root = _ref3.root,\r\n action = _ref3.action;\r\n var title =\r\n action.progress === null\r\n ? root.query('GET_LABEL_FILE_PROCESSING')\r\n : root.query('GET_LABEL_FILE_PROCESSING') +\r\n ' ' +\r\n toPercentage(action.progress) +\r\n '%';\r\n\r\n text(root.ref.main, title);\r\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_CANCEL'));\r\n };\r\n\r\n var didRequestItemProcessing = function didRequestItemProcessing(_ref4) {\r\n var root = _ref4.root;\r\n text(root.ref.main, root.query('GET_LABEL_FILE_PROCESSING'));\r\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_CANCEL'));\r\n };\r\n\r\n var didAbortItemProcessing = function didAbortItemProcessing(_ref5) {\r\n var root = _ref5.root;\r\n text(root.ref.main, root.query('GET_LABEL_FILE_PROCESSING_ABORTED'));\r\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_RETRY'));\r\n };\r\n\r\n var didCompleteItemProcessing = function didCompleteItemProcessing(_ref6) {\r\n var root = _ref6.root;\r\n text(root.ref.main, root.query('GET_LABEL_FILE_PROCESSING_COMPLETE'));\r\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_UNDO'));\r\n };\r\n\r\n var clear = function clear(_ref7) {\r\n var root = _ref7.root;\r\n text(root.ref.main, '');\r\n text(root.ref.sub, '');\r\n };\r\n\r\n var error = function error(_ref8) {\r\n var root = _ref8.root,\r\n action = _ref8.action;\r\n text(root.ref.main, action.status.main);\r\n text(root.ref.sub, action.status.sub);\r\n };\r\n\r\n var fileStatus = createView({\r\n name: 'file-status',\r\n ignoreRect: true,\r\n ignoreRectUpdate: true,\r\n write: createRoute({\r\n DID_LOAD_ITEM: clear,\r\n DID_REVERT_ITEM_PROCESSING: clear,\r\n DID_REQUEST_ITEM_PROCESSING: didRequestItemProcessing,\r\n DID_ABORT_ITEM_PROCESSING: didAbortItemProcessing,\r\n DID_COMPLETE_ITEM_PROCESSING: didCompleteItemProcessing,\r\n DID_UPDATE_ITEM_PROCESS_PROGRESS: didSetItemProcessProgress,\r\n DID_UPDATE_ITEM_LOAD_PROGRESS: didSetItemLoadProgress,\r\n DID_THROW_ITEM_LOAD_ERROR: error,\r\n DID_THROW_ITEM_INVALID: error,\r\n DID_THROW_ITEM_PROCESSING_ERROR: error,\r\n DID_THROW_ITEM_PROCESSING_REVERT_ERROR: error,\r\n DID_THROW_ITEM_REMOVE_ERROR: error\r\n }),\r\n\r\n didCreateView: function didCreateView(root) {\r\n applyFilters('CREATE_VIEW', Object.assign({}, root, { view: root }));\r\n },\r\n create: create$3,\r\n mixins: {\r\n styles: ['translateX', 'translateY', 'opacity'],\r\n animations: {\r\n opacity: { type: 'tween', duration: 250 },\r\n translateX: 'spring',\r\n translateY: 'spring'\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Button definitions for the file view\r\n */\r\n\r\n var Buttons = {\r\n AbortItemLoad: {\r\n label: 'GET_LABEL_BUTTON_ABORT_ITEM_LOAD',\r\n action: 'ABORT_ITEM_LOAD',\r\n className: 'filepond--action-abort-item-load',\r\n align: 'LOAD_INDICATOR_POSITION' // right\r\n },\r\n RetryItemLoad: {\r\n label: 'GET_LABEL_BUTTON_RETRY_ITEM_LOAD',\r\n action: 'RETRY_ITEM_LOAD',\r\n icon: 'GET_ICON_RETRY',\r\n className: 'filepond--action-retry-item-load',\r\n align: 'BUTTON_PROCESS_ITEM_POSITION' // right\r\n },\r\n RemoveItem: {\r\n label: 'GET_LABEL_BUTTON_REMOVE_ITEM',\r\n action: 'REQUEST_REMOVE_ITEM',\r\n icon: 'GET_ICON_REMOVE',\r\n className: 'filepond--action-remove-item',\r\n align: 'BUTTON_REMOVE_ITEM_POSITION' // left\r\n },\r\n ProcessItem: {\r\n label: 'GET_LABEL_BUTTON_PROCESS_ITEM',\r\n action: 'REQUEST_ITEM_PROCESSING',\r\n icon: 'GET_ICON_PROCESS',\r\n className: 'filepond--action-process-item',\r\n align: 'BUTTON_PROCESS_ITEM_POSITION' // right\r\n },\r\n AbortItemProcessing: {\r\n label: 'GET_LABEL_BUTTON_ABORT_ITEM_PROCESSING',\r\n action: 'ABORT_ITEM_PROCESSING',\r\n className: 'filepond--action-abort-item-processing',\r\n align: 'BUTTON_PROCESS_ITEM_POSITION' // right\r\n },\r\n RetryItemProcessing: {\r\n label: 'GET_LABEL_BUTTON_RETRY_ITEM_PROCESSING',\r\n action: 'RETRY_ITEM_PROCESSING',\r\n icon: 'GET_ICON_RETRY',\r\n className: 'filepond--action-retry-item-processing',\r\n align: 'BUTTON_PROCESS_ITEM_POSITION' // right\r\n },\r\n RevertItemProcessing: {\r\n label: 'GET_LABEL_BUTTON_UNDO_ITEM_PROCESSING',\r\n action: 'REQUEST_REVERT_ITEM_PROCESSING',\r\n icon: 'GET_ICON_UNDO',\r\n className: 'filepond--action-revert-item-processing',\r\n align: 'BUTTON_PROCESS_ITEM_POSITION' // right\r\n }\r\n };\r\n\r\n // make a list of buttons, we can then remove buttons from this list if they're disabled\r\n var ButtonKeys = [];\r\n forin(Buttons, function(key) {\r\n ButtonKeys.push(key);\r\n });\r\n\r\n var calculateFileInfoOffset = function calculateFileInfoOffset(root) {\r\n var buttonRect = root.ref.buttonRemoveItem.rect.element;\r\n return buttonRect.hidden ? null : buttonRect.width + buttonRect.left;\r\n };\r\n\r\n var calculateButtonWidth = function calculateButtonWidth(root) {\r\n var buttonRect = root.ref.buttonAbortItemLoad.rect.element;\r\n return buttonRect.width;\r\n };\r\n\r\n // Force on full pixels so text stays crips\r\n var calculateFileVerticalCenterOffset = function calculateFileVerticalCenterOffset(\r\n root\r\n ) {\r\n return Math.floor(root.ref.buttonRemoveItem.rect.element.height / 4);\r\n };\r\n var calculateFileHorizontalCenterOffset = function calculateFileHorizontalCenterOffset(\r\n root\r\n ) {\r\n return Math.floor(root.ref.buttonRemoveItem.rect.element.left / 2);\r\n };\r\n\r\n var getLoadIndicatorAlignment = function getLoadIndicatorAlignment(root) {\r\n return root.query('GET_STYLE_LOAD_INDICATOR_POSITION');\r\n };\r\n var getProcessIndicatorAlignment = function getProcessIndicatorAlignment(\r\n root\r\n ) {\r\n return root.query('GET_STYLE_PROGRESS_INDICATOR_POSITION');\r\n };\r\n var getRemoveIndicatorAligment = function getRemoveIndicatorAligment(root) {\r\n return root.query('GET_STYLE_BUTTON_REMOVE_ITEM_POSITION');\r\n };\r\n\r\n var DefaultStyle = {\r\n buttonAbortItemLoad: { opacity: 0 },\r\n buttonRetryItemLoad: { opacity: 0 },\r\n buttonRemoveItem: { opacity: 0 },\r\n buttonProcessItem: { opacity: 0 },\r\n buttonAbortItemProcessing: { opacity: 0 },\r\n buttonRetryItemProcessing: { opacity: 0 },\r\n buttonRevertItemProcessing: { opacity: 0 },\r\n loadProgressIndicator: { opacity: 0, align: getLoadIndicatorAlignment },\r\n processProgressIndicator: {\r\n opacity: 0,\r\n align: getProcessIndicatorAlignment\r\n },\r\n processingCompleteIndicator: { opacity: 0, scaleX: 0.75, scaleY: 0.75 },\r\n info: { translateX: 0, translateY: 0, opacity: 0 },\r\n status: { translateX: 0, translateY: 0, opacity: 0 }\r\n };\r\n\r\n var IdleStyle = {\r\n buttonRemoveItem: { opacity: 1 },\r\n buttonProcessItem: { opacity: 1 },\r\n info: { translateX: calculateFileInfoOffset },\r\n status: { translateX: calculateFileInfoOffset }\r\n };\r\n\r\n var ProcessingStyle = {\r\n buttonAbortItemProcessing: { opacity: 1 },\r\n processProgressIndicator: { opacity: 1 },\r\n status: { opacity: 1 }\r\n };\r\n\r\n var StyleMap = {\r\n DID_THROW_ITEM_INVALID: {\r\n buttonRemoveItem: { opacity: 1 },\r\n info: { translateX: calculateFileInfoOffset },\r\n status: { translateX: calculateFileInfoOffset, opacity: 1 }\r\n },\r\n\r\n DID_START_ITEM_LOAD: {\r\n buttonAbortItemLoad: { opacity: 1 },\r\n loadProgressIndicator: { opacity: 1 },\r\n status: { opacity: 1 }\r\n },\r\n\r\n DID_THROW_ITEM_LOAD_ERROR: {\r\n buttonRetryItemLoad: { opacity: 1 },\r\n buttonRemoveItem: { opacity: 1 },\r\n info: { translateX: calculateFileInfoOffset },\r\n status: { opacity: 1 }\r\n },\r\n\r\n DID_START_ITEM_REMOVE: {\r\n processProgressIndicator: {\r\n opacity: 1,\r\n align: getRemoveIndicatorAligment\r\n },\r\n info: { translateX: calculateFileInfoOffset },\r\n status: { opacity: 0 }\r\n },\r\n\r\n DID_THROW_ITEM_REMOVE_ERROR: {\r\n processProgressIndicator: {\r\n opacity: 0,\r\n align: getRemoveIndicatorAligment\r\n },\r\n buttonRemoveItem: { opacity: 1 },\r\n info: { translateX: calculateFileInfoOffset },\r\n status: { opacity: 1, translateX: calculateFileInfoOffset }\r\n },\r\n\r\n DID_LOAD_ITEM: IdleStyle,\r\n DID_LOAD_LOCAL_ITEM: {\r\n buttonRemoveItem: { opacity: 1 },\r\n info: { translateX: calculateFileInfoOffset },\r\n status: { translateX: calculateFileInfoOffset }\r\n },\r\n\r\n DID_START_ITEM_PROCESSING: ProcessingStyle,\r\n DID_REQUEST_ITEM_PROCESSING: ProcessingStyle,\r\n DID_UPDATE_ITEM_PROCESS_PROGRESS: ProcessingStyle,\r\n DID_COMPLETE_ITEM_PROCESSING: {\r\n buttonRevertItemProcessing: { opacity: 1 },\r\n info: { opacity: 1 },\r\n status: { opacity: 1 }\r\n },\r\n\r\n DID_THROW_ITEM_PROCESSING_ERROR: {\r\n buttonRemoveItem: { opacity: 1 },\r\n buttonRetryItemProcessing: { opacity: 1 },\r\n status: { opacity: 1 },\r\n info: { translateX: calculateFileInfoOffset }\r\n },\r\n\r\n DID_THROW_ITEM_PROCESSING_REVERT_ERROR: {\r\n buttonRevertItemProcessing: { opacity: 1 },\r\n status: { opacity: 1 },\r\n info: { opacity: 1 }\r\n },\r\n\r\n DID_ABORT_ITEM_PROCESSING: {\r\n buttonRemoveItem: { opacity: 1 },\r\n buttonProcessItem: { opacity: 1 },\r\n info: { translateX: calculateFileInfoOffset },\r\n status: { opacity: 1 }\r\n },\r\n\r\n DID_REVERT_ITEM_PROCESSING: IdleStyle\r\n };\r\n\r\n // complete indicator view\r\n var processingCompleteIndicatorView = createView({\r\n create: function create(_ref) {\r\n var root = _ref.root;\r\n root.element.innerHTML = root.query('GET_ICON_DONE');\r\n },\r\n name: 'processing-complete-indicator',\r\n ignoreRect: true,\r\n mixins: {\r\n styles: ['scaleX', 'scaleY', 'opacity'],\r\n animations: {\r\n scaleX: 'spring',\r\n scaleY: 'spring',\r\n opacity: { type: 'tween', duration: 250 }\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Creates the file view\r\n */\r\n var create$4 = function create(_ref2) {\r\n var root = _ref2.root,\r\n props = _ref2.props;\r\n var id = props.id;\r\n\r\n // allow reverting upload\r\n var allowRevert = root.query('GET_ALLOW_REVERT');\r\n\r\n // allow remove file\r\n var allowRemove = root.query('GET_ALLOW_REMOVE');\r\n\r\n // allow processing upload\r\n var allowProcess = root.query('GET_ALLOW_PROCESS');\r\n\r\n // is instant uploading, need this to determine the icon of the undo button\r\n var instantUpload = root.query('GET_INSTANT_UPLOAD');\r\n\r\n // is async set up\r\n var isAsync = root.query('IS_ASYNC');\r\n\r\n // should align remove item buttons\r\n var alignRemoveItemButton = root.query(\r\n 'GET_STYLE_BUTTON_REMOVE_ITEM_ALIGN'\r\n );\r\n\r\n // enabled buttons array\r\n var buttonFilter;\r\n if (isAsync) {\r\n if (allowProcess && !allowRevert) {\r\n // only remove revert button\r\n buttonFilter = function buttonFilter(key) {\r\n return !/RevertItemProcessing/.test(key);\r\n };\r\n } else if (!allowProcess && allowRevert) {\r\n // only remove process button\r\n buttonFilter = function buttonFilter(key) {\r\n return !/ProcessItem|RetryItemProcessing|AbortItemProcessing/.test(\r\n key\r\n );\r\n };\r\n } else if (!allowProcess && !allowRevert) {\r\n // remove all process buttons\r\n buttonFilter = function buttonFilter(key) {\r\n return !/Process/.test(key);\r\n };\r\n }\r\n } else {\r\n // no process controls available\r\n buttonFilter = function buttonFilter(key) {\r\n return !/Process/.test(key);\r\n };\r\n }\r\n\r\n var enabledButtons = buttonFilter\r\n ? ButtonKeys.filter(buttonFilter)\r\n : ButtonKeys.concat();\r\n\r\n // update icon and label for revert button when instant uploading\r\n if (instantUpload && allowRevert) {\r\n Buttons['RevertItemProcessing'].label = 'GET_LABEL_BUTTON_REMOVE_ITEM';\r\n Buttons['RevertItemProcessing'].icon = 'GET_ICON_REMOVE';\r\n }\r\n\r\n // remove last button (revert) if not allowed\r\n if (isAsync && !allowRevert) {\r\n var map = StyleMap['DID_COMPLETE_ITEM_PROCESSING'];\r\n map.info.translateX = calculateFileHorizontalCenterOffset;\r\n map.info.translateY = calculateFileVerticalCenterOffset;\r\n map.status.translateY = calculateFileVerticalCenterOffset;\r\n map.processingCompleteIndicator = { opacity: 1, scaleX: 1, scaleY: 1 };\r\n }\r\n\r\n // should align center\r\n if (isAsync && !allowProcess) {\r\n [\r\n 'DID_START_ITEM_PROCESSING',\r\n 'DID_REQUEST_ITEM_PROCESSING',\r\n 'DID_UPDATE_ITEM_PROCESS_PROGRESS',\r\n 'DID_THROW_ITEM_PROCESSING_ERROR'\r\n ].forEach(function(key) {\r\n StyleMap[key].status.translateY = calculateFileVerticalCenterOffset;\r\n });\r\n StyleMap[\r\n 'DID_THROW_ITEM_PROCESSING_ERROR'\r\n ].status.translateX = calculateButtonWidth;\r\n }\r\n\r\n // move remove button to right\r\n if (alignRemoveItemButton && allowRevert) {\r\n Buttons['RevertItemProcessing'].align = 'BUTTON_REMOVE_ITEM_POSITION';\r\n var _map = StyleMap['DID_COMPLETE_ITEM_PROCESSING'];\r\n _map.info.translateX = calculateFileInfoOffset;\r\n _map.status.translateY = calculateFileVerticalCenterOffset;\r\n _map.processingCompleteIndicator = { opacity: 1, scaleX: 1, scaleY: 1 };\r\n }\r\n\r\n if (!allowRemove) {\r\n Buttons['RemoveItem'].disabled = true;\r\n }\r\n\r\n // create the button views\r\n forin(Buttons, function(key, definition) {\r\n // create button\r\n var buttonView = root.createChildView(fileActionButton, {\r\n label: root.query(definition.label),\r\n icon: root.query(definition.icon),\r\n opacity: 0\r\n });\r\n\r\n // should be appended?\r\n if (enabledButtons.includes(key)) {\r\n root.appendChildView(buttonView);\r\n }\r\n\r\n // toggle\r\n if (definition.disabled) {\r\n buttonView.element.setAttribute('disabled', 'disabled');\r\n buttonView.element.setAttribute('hidden', 'hidden');\r\n }\r\n\r\n // add position attribute\r\n buttonView.element.dataset.align = root.query(\r\n 'GET_STYLE_' + definition.align\r\n );\r\n\r\n // add class\r\n buttonView.element.classList.add(definition.className);\r\n\r\n // handle interactions\r\n buttonView.on('click', function(e) {\r\n e.stopPropagation();\r\n if (definition.disabled) return;\r\n root.dispatch(definition.action, { query: id });\r\n });\r\n\r\n // set reference\r\n root.ref['button' + key] = buttonView;\r\n });\r\n\r\n // checkmark\r\n root.ref.processingCompleteIndicator = root.appendChildView(\r\n root.createChildView(processingCompleteIndicatorView)\r\n );\r\n root.ref.processingCompleteIndicator.element.dataset.align = root.query(\r\n 'GET_STYLE_BUTTON_PROCESS_ITEM_POSITION'\r\n );\r\n\r\n // create file info view\r\n root.ref.info = root.appendChildView(\r\n root.createChildView(fileInfo, { id: id })\r\n );\r\n\r\n // create file status view\r\n root.ref.status = root.appendChildView(\r\n root.createChildView(fileStatus, { id: id })\r\n );\r\n\r\n // add progress indicators\r\n var loadIndicatorView = root.appendChildView(\r\n root.createChildView(progressIndicator, {\r\n opacity: 0,\r\n align: root.query('GET_STYLE_LOAD_INDICATOR_POSITION')\r\n })\r\n );\r\n\r\n loadIndicatorView.element.classList.add('filepond--load-indicator');\r\n root.ref.loadProgressIndicator = loadIndicatorView;\r\n\r\n var progressIndicatorView = root.appendChildView(\r\n root.createChildView(progressIndicator, {\r\n opacity: 0,\r\n align: root.query('GET_STYLE_PROGRESS_INDICATOR_POSITION')\r\n })\r\n );\r\n\r\n progressIndicatorView.element.classList.add('filepond--process-indicator');\r\n root.ref.processProgressIndicator = progressIndicatorView;\r\n\r\n // current active styles\r\n root.ref.activeStyles = [];\r\n };\r\n\r\n var write$2 = function write(_ref3) {\r\n var root = _ref3.root,\r\n actions = _ref3.actions,\r\n props = _ref3.props;\r\n\r\n // route actions\r\n route({ root: root, actions: actions, props: props });\r\n\r\n // select last state change action\r\n var action = actions\r\n .concat()\r\n .filter(function(action) {\r\n return /^DID_/.test(action.type);\r\n })\r\n .reverse()\r\n .find(function(action) {\r\n return StyleMap[action.type];\r\n });\r\n\r\n // a new action happened, let's get the matching styles\r\n if (action) {\r\n // define new active styles\r\n root.ref.activeStyles = [];\r\n\r\n var stylesToApply = StyleMap[action.type];\r\n forin(DefaultStyle, function(name, defaultStyles) {\r\n // get reference to control\r\n var control = root.ref[name];\r\n\r\n // loop over all styles for this control\r\n forin(defaultStyles, function(key, defaultValue) {\r\n var value =\r\n stylesToApply[name] &&\r\n typeof stylesToApply[name][key] !== 'undefined'\r\n ? stylesToApply[name][key]\r\n : defaultValue;\r\n root.ref.activeStyles.push({\r\n control: control,\r\n key: key,\r\n value: value\r\n });\r\n });\r\n });\r\n }\r\n\r\n // apply active styles to element\r\n root.ref.activeStyles.forEach(function(_ref4) {\r\n var control = _ref4.control,\r\n key = _ref4.key,\r\n value = _ref4.value;\r\n control[key] = typeof value === 'function' ? value(root) : value;\r\n });\r\n };\r\n\r\n var route = createRoute({\r\n DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING: function DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING(\r\n _ref5\r\n ) {\r\n var root = _ref5.root,\r\n action = _ref5.action;\r\n root.ref.buttonAbortItemProcessing.label = action.value;\r\n },\r\n DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD: function DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD(\r\n _ref6\r\n ) {\r\n var root = _ref6.root,\r\n action = _ref6.action;\r\n root.ref.buttonAbortItemLoad.label = action.value;\r\n },\r\n DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL: function DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL(\r\n _ref7\r\n ) {\r\n var root = _ref7.root,\r\n action = _ref7.action;\r\n root.ref.buttonAbortItemRemoval.label = action.value;\r\n },\r\n DID_REQUEST_ITEM_PROCESSING: function DID_REQUEST_ITEM_PROCESSING(_ref8) {\r\n var root = _ref8.root;\r\n root.ref.processProgressIndicator.spin = true;\r\n root.ref.processProgressIndicator.progress = 0;\r\n },\r\n DID_START_ITEM_LOAD: function DID_START_ITEM_LOAD(_ref9) {\r\n var root = _ref9.root;\r\n root.ref.loadProgressIndicator.spin = true;\r\n root.ref.loadProgressIndicator.progress = 0;\r\n },\r\n DID_START_ITEM_REMOVE: function DID_START_ITEM_REMOVE(_ref10) {\r\n var root = _ref10.root;\r\n root.ref.processProgressIndicator.spin = true;\r\n root.ref.processProgressIndicator.progress = 0;\r\n },\r\n DID_UPDATE_ITEM_LOAD_PROGRESS: function DID_UPDATE_ITEM_LOAD_PROGRESS(\r\n _ref11\r\n ) {\r\n var root = _ref11.root,\r\n action = _ref11.action;\r\n root.ref.loadProgressIndicator.spin = false;\r\n root.ref.loadProgressIndicator.progress = action.progress;\r\n },\r\n DID_UPDATE_ITEM_PROCESS_PROGRESS: function DID_UPDATE_ITEM_PROCESS_PROGRESS(\r\n _ref12\r\n ) {\r\n var root = _ref12.root,\r\n action = _ref12.action;\r\n root.ref.processProgressIndicator.spin = false;\r\n root.ref.processProgressIndicator.progress = action.progress;\r\n }\r\n });\r\n\r\n var file = createView({\r\n create: create$4,\r\n write: write$2,\r\n didCreateView: function didCreateView(root) {\r\n applyFilters('CREATE_VIEW', Object.assign({}, root, { view: root }));\r\n },\r\n name: 'file'\r\n });\r\n\r\n /**\r\n * Creates the file view\r\n */\r\n var create$5 = function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n\r\n // filename\r\n root.ref.fileName = createElement$1('legend');\r\n root.appendChild(root.ref.fileName);\r\n\r\n // file appended\r\n root.ref.file = root.appendChildView(\r\n root.createChildView(file, { id: props.id })\r\n );\r\n\r\n // data has moved to data.js\r\n root.ref.data = false;\r\n };\r\n\r\n /**\r\n * Data storage\r\n */\r\n var didLoadItem = function didLoadItem(_ref2) {\r\n var root = _ref2.root,\r\n props = _ref2.props;\r\n // updates the legend of the fieldset so screenreaders can better group buttons\r\n text(\r\n root.ref.fileName,\r\n formatFilename(root.query('GET_ITEM_NAME', props.id))\r\n );\r\n };\r\n\r\n var fileWrapper = createView({\r\n create: create$5,\r\n ignoreRect: true,\r\n write: createRoute({\r\n DID_LOAD_ITEM: didLoadItem\r\n }),\r\n\r\n didCreateView: function didCreateView(root) {\r\n applyFilters('CREATE_VIEW', Object.assign({}, root, { view: root }));\r\n },\r\n tag: 'fieldset',\r\n name: 'file-wrapper'\r\n });\r\n\r\n var PANEL_SPRING_PROPS = { type: 'spring', damping: 0.6, mass: 7 };\r\n\r\n var create$6 = function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n [\r\n {\r\n name: 'top'\r\n },\r\n\r\n {\r\n name: 'center',\r\n props: {\r\n translateY: null,\r\n scaleY: null\r\n },\r\n\r\n mixins: {\r\n animations: {\r\n scaleY: PANEL_SPRING_PROPS\r\n },\r\n\r\n styles: ['translateY', 'scaleY']\r\n }\r\n },\r\n\r\n {\r\n name: 'bottom',\r\n props: {\r\n translateY: null\r\n },\r\n\r\n mixins: {\r\n animations: {\r\n translateY: PANEL_SPRING_PROPS\r\n },\r\n\r\n styles: ['translateY']\r\n }\r\n }\r\n ].forEach(function(section) {\r\n createSection(root, section, props.name);\r\n });\r\n\r\n root.element.classList.add('filepond--' + props.name);\r\n\r\n root.ref.scalable = null;\r\n };\r\n\r\n var createSection = function createSection(root, section, className) {\r\n var viewConstructor = createView({\r\n name: 'panel-' + section.name + ' filepond--' + className,\r\n mixins: section.mixins,\r\n ignoreRectUpdate: true\r\n });\r\n\r\n var view = root.createChildView(viewConstructor, section.props);\r\n\r\n root.ref[section.name] = root.appendChildView(view);\r\n };\r\n\r\n var write$3 = function write(_ref2) {\r\n var root = _ref2.root,\r\n props = _ref2.props;\r\n\r\n // update scalable state\r\n if (root.ref.scalable === null || props.scalable !== root.ref.scalable) {\r\n root.ref.scalable = isBoolean(props.scalable) ? props.scalable : true;\r\n root.element.dataset.scalable = root.ref.scalable;\r\n }\r\n\r\n // no height, can't set\r\n if (!props.height) return;\r\n\r\n // get child rects\r\n var topRect = root.ref.top.rect.element;\r\n var bottomRect = root.ref.bottom.rect.element;\r\n\r\n // make sure height never is smaller than bottom and top seciton heights combined (will probably never happen, but who knows)\r\n var height = Math.max(topRect.height + bottomRect.height, props.height);\r\n\r\n // offset center part\r\n root.ref.center.translateY = topRect.height;\r\n\r\n // scale center part\r\n // use math ceil to prevent transparent lines because of rounding errors\r\n root.ref.center.scaleY =\r\n (height - topRect.height - bottomRect.height) / 100;\r\n\r\n // offset bottom part\r\n root.ref.bottom.translateY = height - bottomRect.height;\r\n };\r\n\r\n var panel = createView({\r\n name: 'panel',\r\n write: write$3,\r\n create: create$6,\r\n ignoreRect: true,\r\n mixins: {\r\n apis: ['height', 'scalable']\r\n }\r\n });\r\n\r\n var createDragHelper = function createDragHelper(items) {\r\n var itemIds = items.map(function(item) {\r\n return item.id;\r\n });\r\n var prevIndex = undefined;\r\n return {\r\n setIndex: function setIndex(index) {\r\n prevIndex = index;\r\n },\r\n getIndex: function getIndex() {\r\n return prevIndex;\r\n },\r\n getItemIndex: function getItemIndex(item) {\r\n return itemIds.indexOf(item.id);\r\n }\r\n };\r\n };\r\n\r\n var ITEM_TRANSLATE_SPRING = {\r\n type: 'spring',\r\n stiffness: 0.75,\r\n damping: 0.45,\r\n mass: 10\r\n };\r\n\r\n var ITEM_SCALE_SPRING = 'spring';\r\n\r\n var StateMap = {\r\n DID_START_ITEM_LOAD: 'busy',\r\n DID_UPDATE_ITEM_LOAD_PROGRESS: 'loading',\r\n DID_THROW_ITEM_INVALID: 'load-invalid',\r\n DID_THROW_ITEM_LOAD_ERROR: 'load-error',\r\n DID_LOAD_ITEM: 'idle',\r\n DID_THROW_ITEM_REMOVE_ERROR: 'remove-error',\r\n DID_START_ITEM_REMOVE: 'busy',\r\n DID_START_ITEM_PROCESSING: 'busy processing',\r\n DID_REQUEST_ITEM_PROCESSING: 'busy processing',\r\n DID_UPDATE_ITEM_PROCESS_PROGRESS: 'processing',\r\n DID_COMPLETE_ITEM_PROCESSING: 'processing-complete',\r\n DID_THROW_ITEM_PROCESSING_ERROR: 'processing-error',\r\n DID_THROW_ITEM_PROCESSING_REVERT_ERROR: 'processing-revert-error',\r\n DID_ABORT_ITEM_PROCESSING: 'cancelled',\r\n DID_REVERT_ITEM_PROCESSING: 'idle'\r\n };\r\n\r\n /**\r\n * Creates the file view\r\n */\r\n var create$7 = function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n\r\n // select\r\n root.ref.handleClick = function(e) {\r\n return root.dispatch('DID_ACTIVATE_ITEM', { id: props.id });\r\n };\r\n\r\n // set id\r\n root.element.id = 'filepond--item-' + props.id;\r\n root.element.addEventListener('click', root.ref.handleClick);\r\n\r\n // file view\r\n root.ref.container = root.appendChildView(\r\n root.createChildView(fileWrapper, { id: props.id })\r\n );\r\n\r\n // file panel\r\n root.ref.panel = root.appendChildView(\r\n root.createChildView(panel, { name: 'item-panel' })\r\n );\r\n\r\n // default start height\r\n root.ref.panel.height = null;\r\n\r\n // by default not marked for removal\r\n props.markedForRemoval = false;\r\n\r\n // if not allowed to reorder file items, exit here\r\n if (!root.query('GET_ALLOW_REORDER')) return;\r\n\r\n // set to idle so shows grab cursor\r\n root.element.dataset.dragState = 'idle';\r\n\r\n var grab = function grab(e) {\r\n if (!e.isPrimary) return;\r\n\r\n var removedActivateListener = false;\r\n\r\n var origin = {\r\n x: e.pageX,\r\n y: e.pageY\r\n };\r\n\r\n props.dragOrigin = {\r\n x: root.translateX,\r\n y: root.translateY\r\n };\r\n\r\n props.dragCenter = {\r\n x: e.offsetX,\r\n y: e.offsetY\r\n };\r\n\r\n var dragState = createDragHelper(root.query('GET_ACTIVE_ITEMS'));\r\n\r\n root.dispatch('DID_GRAB_ITEM', { id: props.id, dragState: dragState });\r\n\r\n var drag = function drag(e) {\r\n if (!e.isPrimary) return;\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n props.dragOffset = {\r\n x: e.pageX - origin.x,\r\n y: e.pageY - origin.y\r\n };\r\n\r\n // if dragged stop listening to clicks, will re-add when done dragging\r\n var dist =\r\n props.dragOffset.x * props.dragOffset.x +\r\n props.dragOffset.y * props.dragOffset.y;\r\n if (dist > 16 && !removedActivateListener) {\r\n removedActivateListener = true;\r\n root.element.removeEventListener('click', root.ref.handleClick);\r\n }\r\n\r\n root.dispatch('DID_DRAG_ITEM', { id: props.id, dragState: dragState });\r\n };\r\n\r\n var drop = function drop(e) {\r\n if (!e.isPrimary) return;\r\n\r\n document.removeEventListener('pointermove', drag);\r\n document.removeEventListener('pointerup', drop);\r\n\r\n props.dragOffset = {\r\n x: e.pageX - origin.x,\r\n y: e.pageY - origin.y\r\n };\r\n\r\n root.dispatch('DID_DROP_ITEM', { id: props.id, dragState: dragState });\r\n\r\n // start listening to clicks again\r\n if (removedActivateListener) {\r\n setTimeout(function() {\r\n return root.element.addEventListener('click', root.ref.handleClick);\r\n }, 0);\r\n }\r\n };\r\n\r\n document.addEventListener('pointermove', drag);\r\n document.addEventListener('pointerup', drop);\r\n };\r\n\r\n root.element.addEventListener('pointerdown', grab);\r\n };\r\n\r\n var route$1 = createRoute({\r\n DID_UPDATE_PANEL_HEIGHT: function DID_UPDATE_PANEL_HEIGHT(_ref2) {\r\n var root = _ref2.root,\r\n action = _ref2.action;\r\n root.height = action.height;\r\n }\r\n });\r\n\r\n var write$4 = createRoute(\r\n {\r\n DID_GRAB_ITEM: function DID_GRAB_ITEM(_ref3) {\r\n var root = _ref3.root,\r\n props = _ref3.props;\r\n props.dragOrigin = {\r\n x: root.translateX,\r\n y: root.translateY\r\n };\r\n },\r\n DID_DRAG_ITEM: function DID_DRAG_ITEM(_ref4) {\r\n var root = _ref4.root;\r\n root.element.dataset.dragState = 'drag';\r\n },\r\n DID_DROP_ITEM: function DID_DROP_ITEM(_ref5) {\r\n var root = _ref5.root,\r\n props = _ref5.props;\r\n props.dragOffset = null;\r\n props.dragOrigin = null;\r\n root.element.dataset.dragState = 'drop';\r\n }\r\n },\r\n function(_ref6) {\r\n var root = _ref6.root,\r\n actions = _ref6.actions,\r\n props = _ref6.props,\r\n shouldOptimize = _ref6.shouldOptimize;\r\n\r\n if (root.element.dataset.dragState === 'drop') {\r\n if (root.scaleX <= 1) {\r\n root.element.dataset.dragState = 'idle';\r\n }\r\n }\r\n\r\n // select last state change action\r\n var action = actions\r\n .concat()\r\n .filter(function(action) {\r\n return /^DID_/.test(action.type);\r\n })\r\n .reverse()\r\n .find(function(action) {\r\n return StateMap[action.type];\r\n });\r\n\r\n // no need to set same state twice\r\n if (action && action.type !== props.currentState) {\r\n // set current state\r\n props.currentState = action.type;\r\n\r\n // set state\r\n root.element.dataset.filepondItemState =\r\n StateMap[props.currentState] || '';\r\n }\r\n\r\n // route actions\r\n var aspectRatio =\r\n root.query('GET_ITEM_PANEL_ASPECT_RATIO') ||\r\n root.query('GET_PANEL_ASPECT_RATIO');\r\n if (!aspectRatio) {\r\n route$1({ root: root, actions: actions, props: props });\r\n if (!root.height && root.ref.container.rect.element.height > 0) {\r\n root.height = root.ref.container.rect.element.height;\r\n }\r\n } else if (!shouldOptimize) {\r\n root.height = root.rect.element.width * aspectRatio;\r\n }\r\n\r\n // sync panel height with item height\r\n if (shouldOptimize) {\r\n root.ref.panel.height = null;\r\n }\r\n\r\n root.ref.panel.height = root.height;\r\n }\r\n );\r\n\r\n var item = createView({\r\n create: create$7,\r\n write: write$4,\r\n destroy: function destroy(_ref7) {\r\n var root = _ref7.root,\r\n props = _ref7.props;\r\n root.element.removeEventListener('click', root.ref.handleClick);\r\n root.dispatch('RELEASE_ITEM', { query: props.id });\r\n },\r\n tag: 'li',\r\n name: 'item',\r\n mixins: {\r\n apis: [\r\n 'id',\r\n 'interactionMethod',\r\n 'markedForRemoval',\r\n 'spawnDate',\r\n 'dragCenter',\r\n 'dragOrigin',\r\n 'dragOffset'\r\n ],\r\n styles: [\r\n 'translateX',\r\n 'translateY',\r\n 'scaleX',\r\n 'scaleY',\r\n 'opacity',\r\n 'height'\r\n ],\r\n\r\n animations: {\r\n scaleX: ITEM_SCALE_SPRING,\r\n scaleY: ITEM_SCALE_SPRING,\r\n translateX: ITEM_TRANSLATE_SPRING,\r\n translateY: ITEM_TRANSLATE_SPRING,\r\n opacity: { type: 'tween', duration: 150 }\r\n }\r\n }\r\n });\r\n\r\n var getItemIndexByPosition = function getItemIndexByPosition(\r\n view,\r\n children,\r\n positionInView\r\n ) {\r\n if (!positionInView) return;\r\n\r\n var horizontalSpace = view.rect.element.width;\r\n // const children = view.childViews;\r\n var l = children.length;\r\n var last = null;\r\n\r\n // -1, don't move items to accomodate (either add to top or bottom)\r\n if (l === 0 || positionInView.top < children[0].rect.element.top) return -1;\r\n\r\n // let's get the item width\r\n var item = children[0];\r\n var itemRect = item.rect.element;\r\n var itemHorizontalMargin = itemRect.marginLeft + itemRect.marginRight;\r\n var itemWidth = itemRect.width + itemHorizontalMargin;\r\n var itemsPerRow = Math.round(horizontalSpace / itemWidth);\r\n\r\n // stack\r\n if (itemsPerRow === 1) {\r\n for (var index = 0; index < l; index++) {\r\n var child = children[index];\r\n var childMid = child.rect.outer.top + child.rect.element.height * 0.5;\r\n if (positionInView.top < childMid) {\r\n return index;\r\n }\r\n }\r\n return l;\r\n }\r\n\r\n // grid\r\n var itemVerticalMargin = itemRect.marginTop + itemRect.marginBottom;\r\n var itemHeight = itemRect.height + itemVerticalMargin;\r\n for (var _index = 0; _index < l; _index++) {\r\n var indexX = _index % itemsPerRow;\r\n var indexY = Math.floor(_index / itemsPerRow);\r\n\r\n var offsetX = indexX * itemWidth;\r\n var offsetY = indexY * itemHeight;\r\n\r\n var itemTop = offsetY - itemRect.marginTop;\r\n var itemRight = offsetX + itemWidth;\r\n var itemBottom = offsetY + itemHeight + itemRect.marginBottom;\r\n\r\n if (positionInView.top < itemBottom && positionInView.top > itemTop) {\r\n if (positionInView.left < itemRight) {\r\n return _index;\r\n } else if (_index !== l - 1) {\r\n last = _index;\r\n } else {\r\n last = null;\r\n }\r\n }\r\n }\r\n\r\n if (last !== null) {\r\n return last;\r\n }\r\n\r\n return l;\r\n };\r\n\r\n var dropAreaDimensions = {\r\n height: 0,\r\n width: 0,\r\n get getHeight() {\r\n return this.height;\r\n },\r\n set setHeight(val) {\r\n if (this.height === 0 || val === 0) this.height = val;\r\n },\r\n get getWidth() {\r\n return this.width;\r\n },\r\n set setWidth(val) {\r\n if (this.width === 0 || val === 0) this.width = val;\r\n },\r\n setDimensions: function setDimensions(height, width) {\r\n if (this.height === 0 || height === 0) this.height = height;\r\n if (this.width === 0 || width === 0) this.width = width;\r\n }\r\n };\r\n\r\n var create$8 = function create(_ref) {\r\n var root = _ref.root;\r\n // need to set role to list as otherwise it won't be read as a list by VoiceOver\r\n attr(root.element, 'role', 'list');\r\n\r\n root.ref.lastItemSpanwDate = Date.now();\r\n };\r\n\r\n /**\r\n * Inserts a new item\r\n * @param root\r\n * @param action\r\n */\r\n var addItemView = function addItemView(_ref2) {\r\n var root = _ref2.root,\r\n action = _ref2.action;\r\n var id = action.id,\r\n index = action.index,\r\n interactionMethod = action.interactionMethod;\r\n\r\n root.ref.addIndex = index;\r\n\r\n var now = Date.now();\r\n var spawnDate = now;\r\n var opacity = 1;\r\n\r\n if (interactionMethod !== InteractionMethod.NONE) {\r\n opacity = 0;\r\n var cooldown = root.query('GET_ITEM_INSERT_INTERVAL');\r\n var dist = now - root.ref.lastItemSpanwDate;\r\n spawnDate = dist < cooldown ? now + (cooldown - dist) : now;\r\n }\r\n\r\n root.ref.lastItemSpanwDate = spawnDate;\r\n\r\n root.appendChildView(\r\n root.createChildView(\r\n // view type\r\n item,\r\n\r\n // props\r\n {\r\n spawnDate: spawnDate,\r\n id: id,\r\n opacity: opacity,\r\n interactionMethod: interactionMethod\r\n }\r\n ),\r\n\r\n index\r\n );\r\n };\r\n\r\n var moveItem = function moveItem(item, x, y) {\r\n var vx =\r\n arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\r\n var vy =\r\n arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n\r\n // set to null to remove animation while dragging\r\n if (item.dragOffset) {\r\n item.translateX = null;\r\n item.translateY = null;\r\n item.translateX = item.dragOrigin.x + item.dragOffset.x;\r\n item.translateY = item.dragOrigin.y + item.dragOffset.y;\r\n item.scaleX = 1.025;\r\n item.scaleY = 1.025;\r\n } else {\r\n item.translateX = x;\r\n item.translateY = y;\r\n\r\n if (Date.now() > item.spawnDate) {\r\n // reveal element\r\n if (item.opacity === 0) {\r\n introItemView(item, x, y, vx, vy);\r\n }\r\n\r\n // make sure is default scale every frame\r\n item.scaleX = 1;\r\n item.scaleY = 1;\r\n item.opacity = 1;\r\n }\r\n }\r\n };\r\n\r\n var introItemView = function introItemView(item, x, y, vx, vy) {\r\n if (item.interactionMethod === InteractionMethod.NONE) {\r\n item.translateX = null;\r\n item.translateX = x;\r\n item.translateY = null;\r\n item.translateY = y;\r\n } else if (item.interactionMethod === InteractionMethod.DROP) {\r\n item.translateX = null;\r\n item.translateX = x - vx * 20;\r\n\r\n item.translateY = null;\r\n item.translateY = y - vy * 10;\r\n\r\n item.scaleX = 0.8;\r\n item.scaleY = 0.8;\r\n } else if (item.interactionMethod === InteractionMethod.BROWSE) {\r\n item.translateY = null;\r\n item.translateY = y - 30;\r\n } else if (item.interactionMethod === InteractionMethod.API) {\r\n item.translateX = null;\r\n item.translateX = x - 30;\r\n item.translateY = null;\r\n }\r\n };\r\n\r\n /**\r\n * Removes an existing item\r\n * @param root\r\n * @param action\r\n */\r\n var removeItemView = function removeItemView(_ref3) {\r\n var root = _ref3.root,\r\n action = _ref3.action;\r\n var id = action.id;\r\n\r\n // get the view matching the given id\r\n var view = root.childViews.find(function(child) {\r\n return child.id === id;\r\n });\r\n\r\n // if no view found, exit\r\n if (!view) {\r\n return;\r\n }\r\n\r\n // animate view out of view\r\n view.scaleX = 0.9;\r\n view.scaleY = 0.9;\r\n view.opacity = 0;\r\n\r\n // mark for removal\r\n view.markedForRemoval = true;\r\n };\r\n\r\n var getItemHeight = function getItemHeight(child) {\r\n return (\r\n child.rect.element.height +\r\n child.rect.element.marginBottom * 0.5 +\r\n child.rect.element.marginTop * 0.5\r\n );\r\n };\r\n var getItemWidth = function getItemWidth(child) {\r\n return (\r\n child.rect.element.width +\r\n child.rect.element.marginLeft * 0.5 +\r\n child.rect.element.marginRight * 0.5\r\n );\r\n };\r\n\r\n var dragItem = function dragItem(_ref4) {\r\n var root = _ref4.root,\r\n action = _ref4.action;\r\n var id = action.id,\r\n dragState = action.dragState;\r\n\r\n // reference to item\r\n var item = root.query('GET_ITEM', { id: id });\r\n\r\n // get the view matching the given id\r\n var view = root.childViews.find(function(child) {\r\n return child.id === id;\r\n });\r\n\r\n var numItems = root.childViews.length;\r\n var oldIndex = dragState.getItemIndex(item);\r\n\r\n // if no view found, exit\r\n if (!view) return;\r\n\r\n var dragPosition = {\r\n x: view.dragOrigin.x + view.dragOffset.x + view.dragCenter.x,\r\n y: view.dragOrigin.y + view.dragOffset.y + view.dragCenter.y\r\n\r\n // get drag area dimensions\r\n };\r\n var dragHeight = getItemHeight(view);\r\n var dragWidth = getItemWidth(view);\r\n\r\n // get rows and columns (There will always be at least one row and one column if a file is present)\r\n var cols = Math.floor(root.rect.outer.width / dragWidth);\r\n if (cols > numItems) cols = numItems;\r\n\r\n // rows are used to find when we have left the preview area bounding box\r\n var rows = Math.floor(numItems / cols + 1);\r\n\r\n dropAreaDimensions.setHeight = dragHeight * rows;\r\n dropAreaDimensions.setWidth = dragWidth * cols;\r\n\r\n // get new index of dragged item\r\n var location = {\r\n y: Math.floor(dragPosition.y / dragHeight),\r\n x: Math.floor(dragPosition.x / dragWidth),\r\n getGridIndex: function getGridIndex() {\r\n if (\r\n dragPosition.y > dropAreaDimensions.getHeight ||\r\n dragPosition.y < 0 ||\r\n dragPosition.x > dropAreaDimensions.getWidth ||\r\n dragPosition.x < 0\r\n )\r\n return oldIndex;\r\n return this.y * cols + this.x;\r\n },\r\n getColIndex: function getColIndex() {\r\n var items = root.query('GET_ACTIVE_ITEMS');\r\n var visibleChildren = root.childViews.filter(function(child) {\r\n return child.rect.element.height;\r\n });\r\n var children = items.map(function(item) {\r\n return visibleChildren.find(function(childView) {\r\n return childView.id === item.id;\r\n });\r\n });\r\n var currentIndex = children.findIndex(function(child) {\r\n return child === view;\r\n });\r\n var dragHeight = getItemHeight(view);\r\n var l = children.length;\r\n var idx = l;\r\n var childHeight = 0;\r\n var childBottom = 0;\r\n var childTop = 0;\r\n for (var i = 0; i < l; i++) {\r\n childHeight = getItemHeight(children[i]);\r\n childTop = childBottom;\r\n childBottom = childTop + childHeight;\r\n if (dragPosition.y < childBottom) {\r\n if (currentIndex > i) {\r\n if (dragPosition.y < childTop + dragHeight) {\r\n idx = i;\r\n break;\r\n }\r\n continue;\r\n }\r\n idx = i;\r\n break;\r\n }\r\n }\r\n return idx;\r\n }\r\n\r\n // get new index\r\n };\r\n var index = cols > 1 ? location.getGridIndex() : location.getColIndex();\r\n root.dispatch('MOVE_ITEM', { query: view, index: index });\r\n\r\n // if the index of the item changed, dispatch reorder action\r\n var currentIndex = dragState.getIndex();\r\n\r\n if (currentIndex === undefined || currentIndex !== index) {\r\n dragState.setIndex(index);\r\n\r\n if (currentIndex === undefined) return;\r\n\r\n root.dispatch('DID_REORDER_ITEMS', {\r\n items: root.query('GET_ACTIVE_ITEMS'),\r\n origin: oldIndex,\r\n target: index\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Setup action routes\r\n */\r\n var route$2 = createRoute({\r\n DID_ADD_ITEM: addItemView,\r\n DID_REMOVE_ITEM: removeItemView,\r\n DID_DRAG_ITEM: dragItem\r\n });\r\n\r\n /**\r\n * Write to view\r\n * @param root\r\n * @param actions\r\n * @param props\r\n */\r\n var write$5 = function write(_ref5) {\r\n var root = _ref5.root,\r\n props = _ref5.props,\r\n actions = _ref5.actions,\r\n shouldOptimize = _ref5.shouldOptimize;\r\n\r\n // route actions\r\n route$2({ root: root, props: props, actions: actions });\r\n var dragCoordinates = props.dragCoordinates;\r\n\r\n // available space on horizontal axis\r\n var horizontalSpace = root.rect.element.width;\r\n\r\n // only draw children that have dimensions\r\n var visibleChildren = root.childViews.filter(function(child) {\r\n return child.rect.element.height;\r\n });\r\n\r\n // sort based on current active items\r\n var children = root\r\n .query('GET_ACTIVE_ITEMS')\r\n .map(function(item) {\r\n return visibleChildren.find(function(child) {\r\n return child.id === item.id;\r\n });\r\n })\r\n .filter(function(item) {\r\n return item;\r\n });\r\n\r\n // get index\r\n var dragIndex = dragCoordinates\r\n ? getItemIndexByPosition(root, children, dragCoordinates)\r\n : null;\r\n\r\n // add index is used to reserve the dropped/added item index till the actual item is rendered\r\n var addIndex = root.ref.addIndex || null;\r\n\r\n // add index no longer needed till possibly next draw\r\n root.ref.addIndex = null;\r\n\r\n var dragIndexOffset = 0;\r\n var removeIndexOffset = 0;\r\n var addIndexOffset = 0;\r\n\r\n if (children.length === 0) return;\r\n\r\n var childRect = children[0].rect.element;\r\n var itemVerticalMargin = childRect.marginTop + childRect.marginBottom;\r\n var itemHorizontalMargin = childRect.marginLeft + childRect.marginRight;\r\n var itemWidth = childRect.width + itemHorizontalMargin;\r\n var itemHeight = childRect.height + itemVerticalMargin;\r\n var itemsPerRow = Math.round(horizontalSpace / itemWidth);\r\n\r\n // stack\r\n if (itemsPerRow === 1) {\r\n var offsetY = 0;\r\n var dragOffset = 0;\r\n\r\n children.forEach(function(child, index) {\r\n if (dragIndex) {\r\n var dist = index - dragIndex;\r\n if (dist === -2) {\r\n dragOffset = -itemVerticalMargin * 0.25;\r\n } else if (dist === -1) {\r\n dragOffset = -itemVerticalMargin * 0.75;\r\n } else if (dist === 0) {\r\n dragOffset = itemVerticalMargin * 0.75;\r\n } else if (dist === 1) {\r\n dragOffset = itemVerticalMargin * 0.25;\r\n } else {\r\n dragOffset = 0;\r\n }\r\n }\r\n\r\n if (shouldOptimize) {\r\n child.translateX = null;\r\n child.translateY = null;\r\n }\r\n\r\n if (!child.markedForRemoval) {\r\n moveItem(child, 0, offsetY + dragOffset);\r\n }\r\n\r\n var itemHeight = child.rect.element.height + itemVerticalMargin;\r\n\r\n var visualHeight =\r\n itemHeight * (child.markedForRemoval ? child.opacity : 1);\r\n\r\n offsetY += visualHeight;\r\n });\r\n }\r\n // grid\r\n else {\r\n var prevX = 0;\r\n var prevY = 0;\r\n\r\n children.forEach(function(child, index) {\r\n if (index === dragIndex) {\r\n dragIndexOffset = 1;\r\n }\r\n\r\n if (index === addIndex) {\r\n addIndexOffset += 1;\r\n }\r\n\r\n if (child.markedForRemoval && child.opacity < 0.5) {\r\n removeIndexOffset -= 1;\r\n }\r\n\r\n var visualIndex =\r\n index + addIndexOffset + dragIndexOffset + removeIndexOffset;\r\n\r\n var indexX = visualIndex % itemsPerRow;\r\n var indexY = Math.floor(visualIndex / itemsPerRow);\r\n\r\n var offsetX = indexX * itemWidth;\r\n var offsetY = indexY * itemHeight;\r\n\r\n var vectorX = Math.sign(offsetX - prevX);\r\n var vectorY = Math.sign(offsetY - prevY);\r\n\r\n prevX = offsetX;\r\n prevY = offsetY;\r\n\r\n if (child.markedForRemoval) return;\r\n\r\n if (shouldOptimize) {\r\n child.translateX = null;\r\n child.translateY = null;\r\n }\r\n\r\n moveItem(child, offsetX, offsetY, vectorX, vectorY);\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Filters actions that are meant specifically for a certain child of the list\r\n * @param child\r\n * @param actions\r\n */\r\n var filterSetItemActions = function filterSetItemActions(child, actions) {\r\n return actions.filter(function(action) {\r\n // if action has an id, filter out actions that don't have this child id\r\n if (action.data && action.data.id) {\r\n return child.id === action.data.id;\r\n }\r\n\r\n // allow all other actions\r\n return true;\r\n });\r\n };\r\n\r\n var list = createView({\r\n create: create$8,\r\n write: write$5,\r\n tag: 'ul',\r\n name: 'list',\r\n didWriteView: function didWriteView(_ref6) {\r\n var root = _ref6.root;\r\n root.childViews\r\n .filter(function(view) {\r\n return view.markedForRemoval && view.opacity === 0 && view.resting;\r\n })\r\n .forEach(function(view) {\r\n view._destroy();\r\n root.removeChildView(view);\r\n });\r\n },\r\n filterFrameActionsForChild: filterSetItemActions,\r\n mixins: {\r\n apis: ['dragCoordinates']\r\n }\r\n });\r\n\r\n var create$9 = function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n root.ref.list = root.appendChildView(root.createChildView(list));\r\n props.dragCoordinates = null;\r\n props.overflowing = false;\r\n };\r\n\r\n var storeDragCoordinates = function storeDragCoordinates(_ref2) {\r\n var root = _ref2.root,\r\n props = _ref2.props,\r\n action = _ref2.action;\r\n if (!root.query('GET_ITEM_INSERT_LOCATION_FREEDOM')) return;\r\n props.dragCoordinates = {\r\n left: action.position.scopeLeft - root.ref.list.rect.element.left,\r\n top:\r\n action.position.scopeTop -\r\n (root.rect.outer.top +\r\n root.rect.element.marginTop +\r\n root.rect.element.scrollTop)\r\n };\r\n };\r\n\r\n var clearDragCoordinates = function clearDragCoordinates(_ref3) {\r\n var props = _ref3.props;\r\n props.dragCoordinates = null;\r\n };\r\n\r\n var route$3 = createRoute({\r\n DID_DRAG: storeDragCoordinates,\r\n DID_END_DRAG: clearDragCoordinates\r\n });\r\n\r\n var write$6 = function write(_ref4) {\r\n var root = _ref4.root,\r\n props = _ref4.props,\r\n actions = _ref4.actions;\r\n\r\n // route actions\r\n route$3({ root: root, props: props, actions: actions });\r\n\r\n // current drag position\r\n root.ref.list.dragCoordinates = props.dragCoordinates;\r\n\r\n // if currently overflowing but no longer received overflow\r\n if (props.overflowing && !props.overflow) {\r\n props.overflowing = false;\r\n\r\n // reset overflow state\r\n root.element.dataset.state = '';\r\n root.height = null;\r\n }\r\n\r\n // if is not overflowing currently but does receive overflow value\r\n if (props.overflow) {\r\n var newHeight = Math.round(props.overflow);\r\n if (newHeight !== root.height) {\r\n props.overflowing = true;\r\n root.element.dataset.state = 'overflow';\r\n root.height = newHeight;\r\n }\r\n }\r\n };\r\n\r\n var listScroller = createView({\r\n create: create$9,\r\n write: write$6,\r\n name: 'list-scroller',\r\n mixins: {\r\n apis: ['overflow', 'dragCoordinates'],\r\n styles: ['height', 'translateY'],\r\n animations: {\r\n translateY: 'spring'\r\n }\r\n }\r\n });\r\n\r\n var attrToggle = function attrToggle(element, name, state) {\r\n var enabledValue =\r\n arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\r\n if (state) {\r\n attr(element, name, enabledValue);\r\n } else {\r\n element.removeAttribute(name);\r\n }\r\n };\r\n\r\n var resetFileInput = function resetFileInput(input) {\r\n // no value, no need to reset\r\n if (!input || input.value === '') {\r\n return;\r\n }\r\n\r\n try {\r\n // for modern browsers\r\n input.value = '';\r\n } catch (err) {}\r\n\r\n // for IE10\r\n if (input.value) {\r\n // quickly append input to temp form and reset form\r\n var form = createElement$1('form');\r\n var parentNode = input.parentNode;\r\n var ref = input.nextSibling;\r\n form.appendChild(input);\r\n form.reset();\r\n\r\n // re-inject input where it originally was\r\n if (ref) {\r\n parentNode.insertBefore(input, ref);\r\n } else {\r\n parentNode.appendChild(input);\r\n }\r\n }\r\n };\r\n\r\n var create$a = function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n\r\n // set id so can be referenced from outside labels\r\n root.element.id = 'filepond--browser-' + props.id;\r\n\r\n // set name of element (is removed when a value is set)\r\n attr(root.element, 'name', root.query('GET_NAME'));\r\n\r\n // we have to link this element to the status element\r\n attr(root.element, 'aria-controls', 'filepond--assistant-' + props.id);\r\n\r\n // set label, we use labelled by as otherwise the screenreader does not read the \"browse\" text in the label (as it has tabindex: 0)\r\n attr(root.element, 'aria-labelledby', 'filepond--drop-label-' + props.id);\r\n\r\n // set configurable props\r\n setAcceptedFileTypes({\r\n root: root,\r\n action: { value: root.query('GET_ACCEPTED_FILE_TYPES') }\r\n });\r\n toggleAllowMultiple({\r\n root: root,\r\n action: { value: root.query('GET_ALLOW_MULTIPLE') }\r\n });\r\n toggleDirectoryFilter({\r\n root: root,\r\n action: { value: root.query('GET_ALLOW_DIRECTORIES_ONLY') }\r\n });\r\n toggleDisabled({ root: root });\r\n toggleRequired({\r\n root: root,\r\n action: { value: root.query('GET_REQUIRED') }\r\n });\r\n setCaptureMethod({\r\n root: root,\r\n action: { value: root.query('GET_CAPTURE_METHOD') }\r\n });\r\n\r\n // handle changes to the input field\r\n root.ref.handleChange = function(e) {\r\n if (!root.element.value) {\r\n return;\r\n }\r\n\r\n // extract files and move value of webkitRelativePath path to _relativePath\r\n var files = Array.from(root.element.files).map(function(file) {\r\n file._relativePath = file.webkitRelativePath;\r\n return file;\r\n });\r\n\r\n // we add a little delay so the OS file select window can move out of the way before we add our file\r\n setTimeout(function() {\r\n // load files\r\n props.onload(files);\r\n\r\n // reset input, it's just for exposing a method to drop files, should not retain any state\r\n resetFileInput(root.element);\r\n }, 250);\r\n };\r\n\r\n root.element.addEventListener('change', root.ref.handleChange);\r\n };\r\n\r\n var setAcceptedFileTypes = function setAcceptedFileTypes(_ref2) {\r\n var root = _ref2.root,\r\n action = _ref2.action;\r\n if (!root.query('GET_ALLOW_SYNC_ACCEPT_ATTRIBUTE')) return;\r\n attrToggle(\r\n root.element,\r\n 'accept',\r\n !!action.value,\r\n action.value ? action.value.join(',') : ''\r\n );\r\n };\r\n\r\n var toggleAllowMultiple = function toggleAllowMultiple(_ref3) {\r\n var root = _ref3.root,\r\n action = _ref3.action;\r\n attrToggle(root.element, 'multiple', action.value);\r\n };\r\n\r\n var toggleDirectoryFilter = function toggleDirectoryFilter(_ref4) {\r\n var root = _ref4.root,\r\n action = _ref4.action;\r\n attrToggle(root.element, 'webkitdirectory', action.value);\r\n };\r\n\r\n var toggleDisabled = function toggleDisabled(_ref5) {\r\n var root = _ref5.root;\r\n var isDisabled = root.query('GET_DISABLED');\r\n var doesAllowBrowse = root.query('GET_ALLOW_BROWSE');\r\n var disableField = isDisabled || !doesAllowBrowse;\r\n attrToggle(root.element, 'disabled', disableField);\r\n };\r\n\r\n var toggleRequired = function toggleRequired(_ref6) {\r\n var root = _ref6.root,\r\n action = _ref6.action;\r\n // want to remove required, always possible\r\n if (!action.value) {\r\n attrToggle(root.element, 'required', false);\r\n }\r\n // if want to make required, only possible when zero items\r\n else if (root.query('GET_TOTAL_ITEMS') === 0) {\r\n attrToggle(root.element, 'required', true);\r\n }\r\n };\r\n\r\n var setCaptureMethod = function setCaptureMethod(_ref7) {\r\n var root = _ref7.root,\r\n action = _ref7.action;\r\n attrToggle(\r\n root.element,\r\n 'capture',\r\n !!action.value,\r\n action.value === true ? '' : action.value\r\n );\r\n };\r\n\r\n var updateRequiredStatus = function updateRequiredStatus(_ref8) {\r\n var root = _ref8.root;\r\n var element = root.element;\r\n // always remove the required attribute when more than zero items\r\n if (root.query('GET_TOTAL_ITEMS') > 0) {\r\n attrToggle(element, 'required', false);\r\n attrToggle(element, 'name', false);\r\n } else {\r\n // add name attribute\r\n attrToggle(element, 'name', true, root.query('GET_NAME'));\r\n\r\n // remove any validation messages\r\n var shouldCheckValidity = root.query('GET_CHECK_VALIDITY');\r\n if (shouldCheckValidity) {\r\n element.setCustomValidity('');\r\n }\r\n\r\n // we only add required if the field has been deemed required\r\n if (root.query('GET_REQUIRED')) {\r\n attrToggle(element, 'required', true);\r\n }\r\n }\r\n };\r\n\r\n var updateFieldValidityStatus = function updateFieldValidityStatus(_ref9) {\r\n var root = _ref9.root;\r\n var shouldCheckValidity = root.query('GET_CHECK_VALIDITY');\r\n if (!shouldCheckValidity) return;\r\n root.element.setCustomValidity(root.query('GET_LABEL_INVALID_FIELD'));\r\n };\r\n\r\n var browser = createView({\r\n tag: 'input',\r\n name: 'browser',\r\n ignoreRect: true,\r\n ignoreRectUpdate: true,\r\n attributes: {\r\n type: 'file'\r\n },\r\n\r\n create: create$a,\r\n destroy: function destroy(_ref10) {\r\n var root = _ref10.root;\r\n root.element.removeEventListener('change', root.ref.handleChange);\r\n },\r\n write: createRoute({\r\n DID_LOAD_ITEM: updateRequiredStatus,\r\n DID_REMOVE_ITEM: updateRequiredStatus,\r\n DID_THROW_ITEM_INVALID: updateFieldValidityStatus,\r\n\r\n DID_SET_DISABLED: toggleDisabled,\r\n DID_SET_ALLOW_BROWSE: toggleDisabled,\r\n DID_SET_ALLOW_DIRECTORIES_ONLY: toggleDirectoryFilter,\r\n DID_SET_ALLOW_MULTIPLE: toggleAllowMultiple,\r\n DID_SET_ACCEPTED_FILE_TYPES: setAcceptedFileTypes,\r\n DID_SET_CAPTURE_METHOD: setCaptureMethod,\r\n DID_SET_REQUIRED: toggleRequired\r\n })\r\n });\r\n\r\n var Key = {\r\n ENTER: 13,\r\n SPACE: 32\r\n };\r\n\r\n var create$b = function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n\r\n // create the label and link it to the file browser\r\n var label = createElement$1('label');\r\n attr(label, 'for', 'filepond--browser-' + props.id);\r\n\r\n // use for labeling file input (aria-labelledby on file input)\r\n attr(label, 'id', 'filepond--drop-label-' + props.id);\r\n\r\n // hide the label for screenreaders, the input element will read the contents of the label when it's focussed. If we don't set aria-hidden the screenreader will also navigate the contents of the label separately from the input.\r\n attr(label, 'aria-hidden', 'true');\r\n\r\n // handle keys\r\n root.ref.handleKeyDown = function(e) {\r\n var isActivationKey = e.keyCode === Key.ENTER || e.keyCode === Key.SPACE;\r\n if (!isActivationKey) return;\r\n // stops from triggering the element a second time\r\n e.preventDefault();\r\n\r\n // click link (will then in turn activate file input)\r\n root.ref.label.click();\r\n };\r\n\r\n root.ref.handleClick = function(e) {\r\n var isLabelClick = e.target === label || label.contains(e.target);\r\n\r\n // don't want to click twice\r\n if (isLabelClick) return;\r\n\r\n // click link (will then in turn activate file input)\r\n root.ref.label.click();\r\n };\r\n\r\n // attach events\r\n label.addEventListener('keydown', root.ref.handleKeyDown);\r\n root.element.addEventListener('click', root.ref.handleClick);\r\n\r\n // update\r\n updateLabelValue(label, props.caption);\r\n\r\n // add!\r\n root.appendChild(label);\r\n root.ref.label = label;\r\n };\r\n\r\n var updateLabelValue = function updateLabelValue(label, value) {\r\n label.innerHTML = value;\r\n var clickable = label.querySelector('.filepond--label-action');\r\n if (clickable) {\r\n attr(clickable, 'tabindex', '0');\r\n }\r\n return value;\r\n };\r\n\r\n var dropLabel = createView({\r\n name: 'drop-label',\r\n ignoreRect: true,\r\n create: create$b,\r\n destroy: function destroy(_ref2) {\r\n var root = _ref2.root;\r\n root.ref.label.addEventListener('keydown', root.ref.handleKeyDown);\r\n root.element.removeEventListener('click', root.ref.handleClick);\r\n },\r\n write: createRoute({\r\n DID_SET_LABEL_IDLE: function DID_SET_LABEL_IDLE(_ref3) {\r\n var root = _ref3.root,\r\n action = _ref3.action;\r\n updateLabelValue(root.ref.label, action.value);\r\n }\r\n }),\r\n\r\n mixins: {\r\n styles: ['opacity', 'translateX', 'translateY'],\r\n animations: {\r\n opacity: { type: 'tween', duration: 150 },\r\n translateX: 'spring',\r\n translateY: 'spring'\r\n }\r\n }\r\n });\r\n\r\n var blob = createView({\r\n name: 'drip-blob',\r\n ignoreRect: true,\r\n mixins: {\r\n styles: ['translateX', 'translateY', 'scaleX', 'scaleY', 'opacity'],\r\n animations: {\r\n scaleX: 'spring',\r\n scaleY: 'spring',\r\n translateX: 'spring',\r\n translateY: 'spring',\r\n opacity: { type: 'tween', duration: 250 }\r\n }\r\n }\r\n });\r\n\r\n var addBlob = function addBlob(_ref) {\r\n var root = _ref.root;\r\n var centerX = root.rect.element.width * 0.5;\r\n var centerY = root.rect.element.height * 0.5;\r\n\r\n root.ref.blob = root.appendChildView(\r\n root.createChildView(blob, {\r\n opacity: 0,\r\n scaleX: 2.5,\r\n scaleY: 2.5,\r\n translateX: centerX,\r\n translateY: centerY\r\n })\r\n );\r\n };\r\n\r\n var moveBlob = function moveBlob(_ref2) {\r\n var root = _ref2.root,\r\n action = _ref2.action;\r\n if (!root.ref.blob) {\r\n addBlob({ root: root });\r\n return;\r\n }\r\n\r\n root.ref.blob.translateX = action.position.scopeLeft;\r\n root.ref.blob.translateY = action.position.scopeTop;\r\n root.ref.blob.scaleX = 1;\r\n root.ref.blob.scaleY = 1;\r\n root.ref.blob.opacity = 1;\r\n };\r\n\r\n var hideBlob = function hideBlob(_ref3) {\r\n var root = _ref3.root;\r\n if (!root.ref.blob) {\r\n return;\r\n }\r\n root.ref.blob.opacity = 0;\r\n };\r\n\r\n var explodeBlob = function explodeBlob(_ref4) {\r\n var root = _ref4.root;\r\n if (!root.ref.blob) {\r\n return;\r\n }\r\n root.ref.blob.scaleX = 2.5;\r\n root.ref.blob.scaleY = 2.5;\r\n root.ref.blob.opacity = 0;\r\n };\r\n\r\n var write$7 = function write(_ref5) {\r\n var root = _ref5.root,\r\n props = _ref5.props,\r\n actions = _ref5.actions;\r\n route$4({ root: root, props: props, actions: actions });\r\n var blob = root.ref.blob;\r\n\r\n if (actions.length === 0 && blob && blob.opacity === 0) {\r\n root.removeChildView(blob);\r\n root.ref.blob = null;\r\n }\r\n };\r\n\r\n var route$4 = createRoute({\r\n DID_DRAG: moveBlob,\r\n DID_DROP: explodeBlob,\r\n DID_END_DRAG: hideBlob\r\n });\r\n\r\n var drip = createView({\r\n ignoreRect: true,\r\n ignoreRectUpdate: true,\r\n name: 'drip',\r\n write: write$7\r\n });\r\n\r\n var create$c = function create(_ref) {\r\n var root = _ref.root;\r\n return (root.ref.fields = {});\r\n };\r\n\r\n var getField = function getField(root, id) {\r\n return root.ref.fields[id];\r\n };\r\n\r\n var syncFieldPositionsWithItems = function syncFieldPositionsWithItems(root) {\r\n root.query('GET_ACTIVE_ITEMS').forEach(function(item) {\r\n if (!root.ref.fields[item.id]) return;\r\n root.element.appendChild(root.ref.fields[item.id]);\r\n });\r\n };\r\n\r\n var didReorderItems = function didReorderItems(_ref2) {\r\n var root = _ref2.root;\r\n return syncFieldPositionsWithItems(root);\r\n };\r\n\r\n var didAddItem = function didAddItem(_ref3) {\r\n var root = _ref3.root,\r\n action = _ref3.action;\r\n var dataContainer = createElement$1('input');\r\n dataContainer.type = 'hidden';\r\n dataContainer.name = root.query('GET_NAME');\r\n dataContainer.disabled = root.query('GET_DISABLED');\r\n root.ref.fields[action.id] = dataContainer;\r\n syncFieldPositionsWithItems(root);\r\n };\r\n\r\n var didLoadItem$1 = function didLoadItem(_ref4) {\r\n var root = _ref4.root,\r\n action = _ref4.action;\r\n var field = getField(root, action.id);\r\n if (!field || action.serverFileReference === null) return;\r\n field.value = action.serverFileReference;\r\n };\r\n\r\n var didSetDisabled = function didSetDisabled(_ref5) {\r\n var root = _ref5.root;\r\n root.element.disabled = root.query('GET_DISABLED');\r\n };\r\n\r\n var didRemoveItem = function didRemoveItem(_ref6) {\r\n var root = _ref6.root,\r\n action = _ref6.action;\r\n var field = getField(root, action.id);\r\n if (!field) return;\r\n field.parentNode.removeChild(field);\r\n delete root.ref.fields[action.id];\r\n };\r\n\r\n var didDefineValue = function didDefineValue(_ref7) {\r\n var root = _ref7.root,\r\n action = _ref7.action;\r\n var field = getField(root, action.id);\r\n if (!field) return;\r\n if (action.value === null) {\r\n field.removeAttribute('value');\r\n } else {\r\n field.value = action.value;\r\n }\r\n syncFieldPositionsWithItems(root);\r\n };\r\n\r\n var write$8 = createRoute({\r\n DID_SET_DISABLED: didSetDisabled,\r\n DID_ADD_ITEM: didAddItem,\r\n DID_LOAD_ITEM: didLoadItem$1,\r\n DID_REMOVE_ITEM: didRemoveItem,\r\n DID_DEFINE_VALUE: didDefineValue,\r\n DID_REORDER_ITEMS: didReorderItems,\r\n DID_SORT_ITEMS: didReorderItems\r\n });\r\n\r\n var data = createView({\r\n tag: 'fieldset',\r\n name: 'data',\r\n create: create$c,\r\n write: write$8,\r\n ignoreRect: true\r\n });\r\n\r\n var getRootNode = function getRootNode(element) {\r\n return 'getRootNode' in element ? element.getRootNode() : document;\r\n };\r\n\r\n var images = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg', 'tiff'];\r\n var text$1 = ['css', 'csv', 'html', 'txt'];\r\n var map = {\r\n zip: 'zip|compressed',\r\n epub: 'application/epub+zip'\r\n };\r\n\r\n var guesstimateMimeType = function guesstimateMimeType() {\r\n var extension =\r\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\r\n extension = extension.toLowerCase();\r\n if (images.includes(extension)) {\r\n return (\r\n 'image/' +\r\n (extension === 'jpg'\r\n ? 'jpeg'\r\n : extension === 'svg'\r\n ? 'svg+xml'\r\n : extension)\r\n );\r\n }\r\n if (text$1.includes(extension)) {\r\n return 'text/' + extension;\r\n }\r\n\r\n return map[extension] || '';\r\n };\r\n\r\n var requestDataTransferItems = function requestDataTransferItems(\r\n dataTransfer\r\n ) {\r\n return new Promise(function(resolve, reject) {\r\n // try to get links from transfer, if found we'll exit immediately (unless a file is in the dataTransfer as well, this is because Firefox could represent the file as a URL and a file object at the same time)\r\n var links = getLinks(dataTransfer);\r\n if (links.length && !hasFiles(dataTransfer)) {\r\n return resolve(links);\r\n }\r\n // try to get files from the transfer\r\n getFiles(dataTransfer).then(resolve);\r\n });\r\n };\r\n\r\n /**\r\n * Test if datatransfer has files\r\n */\r\n var hasFiles = function hasFiles(dataTransfer) {\r\n if (dataTransfer.files) return dataTransfer.files.length > 0;\r\n return false;\r\n };\r\n\r\n /**\r\n * Extracts files from a DataTransfer object\r\n */\r\n var getFiles = function getFiles(dataTransfer) {\r\n return new Promise(function(resolve, reject) {\r\n // get the transfer items as promises\r\n var promisedFiles = (dataTransfer.items\r\n ? Array.from(dataTransfer.items)\r\n : []\r\n )\r\n // only keep file system items (files and directories)\r\n .filter(function(item) {\r\n return isFileSystemItem(item);\r\n })\r\n\r\n // map each item to promise\r\n .map(function(item) {\r\n return getFilesFromItem(item);\r\n });\r\n\r\n // if is empty, see if we can extract some info from the files property as a fallback\r\n if (!promisedFiles.length) {\r\n // TODO: test for directories (should not be allowed)\r\n // Use FileReader, problem is that the files property gets lost in the process\r\n resolve(dataTransfer.files ? Array.from(dataTransfer.files) : []);\r\n return;\r\n }\r\n\r\n // done!\r\n Promise.all(promisedFiles)\r\n .then(function(returnedFileGroups) {\r\n // flatten groups\r\n var files = [];\r\n returnedFileGroups.forEach(function(group) {\r\n files.push.apply(files, group);\r\n });\r\n\r\n // done (filter out empty files)!\r\n resolve(\r\n files\r\n .filter(function(file) {\r\n return file;\r\n })\r\n .map(function(file) {\r\n if (!file._relativePath)\r\n file._relativePath = file.webkitRelativePath;\r\n return file;\r\n })\r\n );\r\n })\r\n .catch(console.error);\r\n });\r\n };\r\n\r\n var isFileSystemItem = function isFileSystemItem(item) {\r\n if (isEntry(item)) {\r\n var entry = getAsEntry(item);\r\n if (entry) {\r\n return entry.isFile || entry.isDirectory;\r\n }\r\n }\r\n return item.kind === 'file';\r\n };\r\n\r\n var getFilesFromItem = function getFilesFromItem(item) {\r\n return new Promise(function(resolve, reject) {\r\n if (isDirectoryEntry(item)) {\r\n getFilesInDirectory(getAsEntry(item))\r\n .then(resolve)\r\n .catch(reject);\r\n return;\r\n }\r\n\r\n resolve([item.getAsFile()]);\r\n });\r\n };\r\n\r\n var getFilesInDirectory = function getFilesInDirectory(entry) {\r\n return new Promise(function(resolve, reject) {\r\n var files = [];\r\n\r\n // the total entries to read\r\n var dirCounter = 0;\r\n var fileCounter = 0;\r\n\r\n var resolveIfDone = function resolveIfDone() {\r\n if (fileCounter === 0 && dirCounter === 0) {\r\n resolve(files);\r\n }\r\n };\r\n\r\n // the recursive function\r\n var readEntries = function readEntries(dirEntry) {\r\n dirCounter++;\r\n\r\n var directoryReader = dirEntry.createReader();\r\n\r\n // directories are returned in batches, we need to process all batches before we're done\r\n var readBatch = function readBatch() {\r\n directoryReader.readEntries(function(entries) {\r\n if (entries.length === 0) {\r\n dirCounter--;\r\n resolveIfDone();\r\n return;\r\n }\r\n\r\n entries.forEach(function(entry) {\r\n // recursively read more directories\r\n if (entry.isDirectory) {\r\n readEntries(entry);\r\n } else {\r\n // read as file\r\n fileCounter++;\r\n\r\n entry.file(function(file) {\r\n var correctedFile = correctMissingFileType(file);\r\n if (entry.fullPath)\r\n correctedFile._relativePath = entry.fullPath;\r\n files.push(correctedFile);\r\n fileCounter--;\r\n resolveIfDone();\r\n });\r\n }\r\n });\r\n\r\n // try to get next batch of files\r\n readBatch();\r\n }, reject);\r\n };\r\n\r\n // read first batch of files\r\n readBatch();\r\n };\r\n\r\n // go!\r\n readEntries(entry);\r\n });\r\n };\r\n\r\n var correctMissingFileType = function correctMissingFileType(file) {\r\n if (file.type.length) return file;\r\n var date = file.lastModifiedDate;\r\n var name = file.name;\r\n file = file.slice(\r\n 0,\r\n file.size,\r\n guesstimateMimeType(getExtensionFromFilename(file.name))\r\n );\r\n file.name = name;\r\n file.lastModifiedDate = date;\r\n return file;\r\n };\r\n\r\n var isDirectoryEntry = function isDirectoryEntry(item) {\r\n return isEntry(item) && (getAsEntry(item) || {}).isDirectory;\r\n };\r\n\r\n var isEntry = function isEntry(item) {\r\n return 'webkitGetAsEntry' in item;\r\n };\r\n\r\n var getAsEntry = function getAsEntry(item) {\r\n return item.webkitGetAsEntry();\r\n };\r\n\r\n /**\r\n * Extracts links from a DataTransfer object\r\n */\r\n var getLinks = function getLinks(dataTransfer) {\r\n var links = [];\r\n try {\r\n // look in meta data property\r\n links = getLinksFromTransferMetaData(dataTransfer);\r\n if (links.length) {\r\n return links;\r\n }\r\n links = getLinksFromTransferURLData(dataTransfer);\r\n } catch (e) {\r\n // nope nope nope (probably IE trouble)\r\n }\r\n return links;\r\n };\r\n\r\n var getLinksFromTransferURLData = function getLinksFromTransferURLData(\r\n dataTransfer\r\n ) {\r\n var data = dataTransfer.getData('url');\r\n if (typeof data === 'string' && data.length) {\r\n return [data];\r\n }\r\n return [];\r\n };\r\n\r\n var getLinksFromTransferMetaData = function getLinksFromTransferMetaData(\r\n dataTransfer\r\n ) {\r\n var data = dataTransfer.getData('text/html');\r\n if (typeof data === 'string' && data.length) {\r\n var matches = data.match(/src\\s*=\\s*\"(.+?)\"/);\r\n if (matches) {\r\n return [matches[1]];\r\n }\r\n }\r\n return [];\r\n };\r\n\r\n var dragNDropObservers = [];\r\n\r\n var eventPosition = function eventPosition(e) {\r\n return {\r\n pageLeft: e.pageX,\r\n pageTop: e.pageY,\r\n scopeLeft: e.offsetX || e.layerX,\r\n scopeTop: e.offsetY || e.layerY\r\n };\r\n };\r\n\r\n var createDragNDropClient = function createDragNDropClient(\r\n element,\r\n scopeToObserve,\r\n filterElement\r\n ) {\r\n var observer = getDragNDropObserver(scopeToObserve);\r\n\r\n var client = {\r\n element: element,\r\n filterElement: filterElement,\r\n state: null,\r\n ondrop: function ondrop() {},\r\n onenter: function onenter() {},\r\n ondrag: function ondrag() {},\r\n onexit: function onexit() {},\r\n onload: function onload() {},\r\n allowdrop: function allowdrop() {}\r\n };\r\n\r\n client.destroy = observer.addListener(client);\r\n\r\n return client;\r\n };\r\n\r\n var getDragNDropObserver = function getDragNDropObserver(element) {\r\n // see if already exists, if so, return\r\n var observer = dragNDropObservers.find(function(item) {\r\n return item.element === element;\r\n });\r\n if (observer) {\r\n return observer;\r\n }\r\n\r\n // create new observer, does not yet exist for this element\r\n var newObserver = createDragNDropObserver(element);\r\n dragNDropObservers.push(newObserver);\r\n return newObserver;\r\n };\r\n\r\n var createDragNDropObserver = function createDragNDropObserver(element) {\r\n var clients = [];\r\n\r\n var routes = {\r\n dragenter: dragenter,\r\n dragover: dragover,\r\n dragleave: dragleave,\r\n drop: drop\r\n };\r\n\r\n var handlers = {};\r\n\r\n forin(routes, function(event, createHandler) {\r\n handlers[event] = createHandler(element, clients);\r\n element.addEventListener(event, handlers[event], false);\r\n });\r\n\r\n var observer = {\r\n element: element,\r\n addListener: function addListener(client) {\r\n // add as client\r\n clients.push(client);\r\n\r\n // return removeListener function\r\n return function() {\r\n // remove client\r\n clients.splice(clients.indexOf(client), 1);\r\n\r\n // if no more clients, clean up observer\r\n if (clients.length === 0) {\r\n dragNDropObservers.splice(dragNDropObservers.indexOf(observer), 1);\r\n\r\n forin(routes, function(event) {\r\n element.removeEventListener(event, handlers[event], false);\r\n });\r\n }\r\n };\r\n }\r\n };\r\n\r\n return observer;\r\n };\r\n\r\n var elementFromPoint = function elementFromPoint(root, point) {\r\n if (!('elementFromPoint' in root)) {\r\n root = document;\r\n }\r\n return root.elementFromPoint(point.x, point.y);\r\n };\r\n\r\n var isEventTarget = function isEventTarget(e, target) {\r\n // get root\r\n var root = getRootNode(target);\r\n\r\n // get element at position\r\n // if root is not actual shadow DOM and does not have elementFromPoint method, use the one on document\r\n var elementAtPosition = elementFromPoint(root, {\r\n x: e.pageX - window.pageXOffset,\r\n y: e.pageY - window.pageYOffset\r\n });\r\n\r\n // test if target is the element or if one of its children is\r\n return elementAtPosition === target || target.contains(elementAtPosition);\r\n };\r\n\r\n var initialTarget = null;\r\n\r\n var setDropEffect = function setDropEffect(dataTransfer, effect) {\r\n // is in try catch as IE11 will throw error if not\r\n try {\r\n dataTransfer.dropEffect = effect;\r\n } catch (e) {}\r\n };\r\n\r\n var dragenter = function dragenter(root, clients) {\r\n return function(e) {\r\n e.preventDefault();\r\n\r\n initialTarget = e.target;\r\n\r\n clients.forEach(function(client) {\r\n var element = client.element,\r\n onenter = client.onenter;\r\n\r\n if (isEventTarget(e, element)) {\r\n client.state = 'enter';\r\n\r\n // fire enter event\r\n onenter(eventPosition(e));\r\n }\r\n });\r\n };\r\n };\r\n\r\n var dragover = function dragover(root, clients) {\r\n return function(e) {\r\n e.preventDefault();\r\n\r\n var dataTransfer = e.dataTransfer;\r\n\r\n requestDataTransferItems(dataTransfer).then(function(items) {\r\n var overDropTarget = false;\r\n\r\n clients.some(function(client) {\r\n var filterElement = client.filterElement,\r\n element = client.element,\r\n onenter = client.onenter,\r\n onexit = client.onexit,\r\n ondrag = client.ondrag,\r\n allowdrop = client.allowdrop;\r\n\r\n // by default we can drop\r\n setDropEffect(dataTransfer, 'copy');\r\n\r\n // allow transfer of these items\r\n var allowsTransfer = allowdrop(items);\r\n\r\n // only used when can be dropped on page\r\n if (!allowsTransfer) {\r\n setDropEffect(dataTransfer, 'none');\r\n return;\r\n }\r\n\r\n // targetting this client\r\n if (isEventTarget(e, element)) {\r\n overDropTarget = true;\r\n\r\n // had no previous state, means we are entering this client\r\n if (client.state === null) {\r\n client.state = 'enter';\r\n onenter(eventPosition(e));\r\n return;\r\n }\r\n\r\n // now over element (no matter if it allows the drop or not)\r\n client.state = 'over';\r\n\r\n // needs to allow transfer\r\n if (filterElement && !allowsTransfer) {\r\n setDropEffect(dataTransfer, 'none');\r\n return;\r\n }\r\n\r\n // dragging\r\n ondrag(eventPosition(e));\r\n } else {\r\n // should be over an element to drop\r\n if (filterElement && !overDropTarget) {\r\n setDropEffect(dataTransfer, 'none');\r\n }\r\n\r\n // might have just left this client?\r\n if (client.state) {\r\n client.state = null;\r\n onexit(eventPosition(e));\r\n }\r\n }\r\n });\r\n });\r\n };\r\n };\r\n\r\n var drop = function drop(root, clients) {\r\n return function(e) {\r\n e.preventDefault();\r\n\r\n var dataTransfer = e.dataTransfer;\r\n\r\n requestDataTransferItems(dataTransfer).then(function(items) {\r\n clients.forEach(function(client) {\r\n var filterElement = client.filterElement,\r\n element = client.element,\r\n ondrop = client.ondrop,\r\n onexit = client.onexit,\r\n allowdrop = client.allowdrop;\r\n\r\n client.state = null;\r\n\r\n // if we're filtering on element we need to be over the element to drop\r\n if (filterElement && !isEventTarget(e, element)) return;\r\n\r\n // no transfer for this client\r\n if (!allowdrop(items)) return onexit(eventPosition(e));\r\n\r\n // we can drop these items on this client\r\n ondrop(eventPosition(e), items);\r\n });\r\n });\r\n };\r\n };\r\n\r\n var dragleave = function dragleave(root, clients) {\r\n return function(e) {\r\n if (initialTarget !== e.target) {\r\n return;\r\n }\r\n\r\n clients.forEach(function(client) {\r\n var onexit = client.onexit;\r\n\r\n client.state = null;\r\n\r\n onexit(eventPosition(e));\r\n });\r\n };\r\n };\r\n\r\n var createHopper = function createHopper(scope, validateItems, options) {\r\n // is now hopper scope\r\n scope.classList.add('filepond--hopper');\r\n\r\n // shortcuts\r\n var catchesDropsOnPage = options.catchesDropsOnPage,\r\n requiresDropOnElement = options.requiresDropOnElement,\r\n _options$filterItems = options.filterItems,\r\n filterItems =\r\n _options$filterItems === void 0\r\n ? function(items) {\r\n return items;\r\n }\r\n : _options$filterItems;\r\n\r\n // create a dnd client\r\n var client = createDragNDropClient(\r\n scope,\r\n catchesDropsOnPage ? document.documentElement : scope,\r\n requiresDropOnElement\r\n );\r\n\r\n // current client state\r\n var lastState = '';\r\n var currentState = '';\r\n\r\n // determines if a file may be dropped\r\n client.allowdrop = function(items) {\r\n // TODO: if we can, throw error to indicate the items cannot by dropped\r\n\r\n return validateItems(filterItems(items));\r\n };\r\n\r\n client.ondrop = function(position, items) {\r\n var filteredItems = filterItems(items);\r\n\r\n if (!validateItems(filteredItems)) {\r\n api.ondragend(position);\r\n return;\r\n }\r\n\r\n currentState = 'drag-drop';\r\n\r\n api.onload(filteredItems, position);\r\n };\r\n\r\n client.ondrag = function(position) {\r\n api.ondrag(position);\r\n };\r\n\r\n client.onenter = function(position) {\r\n currentState = 'drag-over';\r\n\r\n api.ondragstart(position);\r\n };\r\n\r\n client.onexit = function(position) {\r\n currentState = 'drag-exit';\r\n\r\n api.ondragend(position);\r\n };\r\n\r\n var api = {\r\n updateHopperState: function updateHopperState() {\r\n if (lastState !== currentState) {\r\n scope.dataset.hopperState = currentState;\r\n lastState = currentState;\r\n }\r\n },\r\n onload: function onload() {},\r\n ondragstart: function ondragstart() {},\r\n ondrag: function ondrag() {},\r\n ondragend: function ondragend() {},\r\n destroy: function destroy() {\r\n // destroy client\r\n client.destroy();\r\n }\r\n };\r\n\r\n return api;\r\n };\r\n\r\n var listening = false;\r\n var listeners$1 = [];\r\n\r\n var handlePaste = function handlePaste(e) {\r\n // if is pasting in input or textarea and the target is outside of a filepond scope, ignore\r\n var activeEl = document.activeElement;\r\n if (activeEl && /textarea|input/i.test(activeEl.nodeName)) {\r\n // test textarea or input is contained in filepond root\r\n var inScope = false;\r\n var element = activeEl;\r\n while (element !== document.body) {\r\n if (element.classList.contains('filepond--root')) {\r\n inScope = true;\r\n break;\r\n }\r\n element = element.parentNode;\r\n }\r\n\r\n if (!inScope) return;\r\n }\r\n\r\n requestDataTransferItems(e.clipboardData).then(function(files) {\r\n // no files received\r\n if (!files.length) {\r\n return;\r\n }\r\n\r\n // notify listeners of received files\r\n listeners$1.forEach(function(listener) {\r\n return listener(files);\r\n });\r\n });\r\n };\r\n\r\n var listen = function listen(cb) {\r\n // can't add twice\r\n if (listeners$1.includes(cb)) {\r\n return;\r\n }\r\n\r\n // add initial listener\r\n listeners$1.push(cb);\r\n\r\n // setup paste listener for entire page\r\n if (listening) {\r\n return;\r\n }\r\n\r\n listening = true;\r\n document.addEventListener('paste', handlePaste);\r\n };\r\n\r\n var unlisten = function unlisten(listener) {\r\n arrayRemove(listeners$1, listeners$1.indexOf(listener));\r\n\r\n // clean up\r\n if (listeners$1.length === 0) {\r\n document.removeEventListener('paste', handlePaste);\r\n listening = false;\r\n }\r\n };\r\n\r\n var createPaster = function createPaster() {\r\n var cb = function cb(files) {\r\n api.onload(files);\r\n };\r\n\r\n var api = {\r\n destroy: function destroy() {\r\n unlisten(cb);\r\n },\r\n onload: function onload() {}\r\n };\r\n\r\n listen(cb);\r\n\r\n return api;\r\n };\r\n\r\n /**\r\n * Creates the file view\r\n */\r\n var create$d = function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n root.element.id = 'filepond--assistant-' + props.id;\r\n attr(root.element, 'role', 'status');\r\n attr(root.element, 'aria-live', 'polite');\r\n attr(root.element, 'aria-relevant', 'additions');\r\n };\r\n\r\n var addFilesNotificationTimeout = null;\r\n var notificationClearTimeout = null;\r\n\r\n var filenames = [];\r\n\r\n var assist = function assist(root, message) {\r\n root.element.textContent = message;\r\n };\r\n\r\n var clear$1 = function clear(root) {\r\n root.element.textContent = '';\r\n };\r\n\r\n var listModified = function listModified(root, filename, label) {\r\n var total = root.query('GET_TOTAL_ITEMS');\r\n assist(\r\n root,\r\n label +\r\n ' ' +\r\n filename +\r\n ', ' +\r\n total +\r\n ' ' +\r\n (total === 1\r\n ? root.query('GET_LABEL_FILE_COUNT_SINGULAR')\r\n : root.query('GET_LABEL_FILE_COUNT_PLURAL'))\r\n );\r\n\r\n // clear group after set amount of time so the status is not read twice\r\n clearTimeout(notificationClearTimeout);\r\n notificationClearTimeout = setTimeout(function() {\r\n clear$1(root);\r\n }, 1500);\r\n };\r\n\r\n var isUsingFilePond = function isUsingFilePond(root) {\r\n return root.element.parentNode.contains(document.activeElement);\r\n };\r\n\r\n var itemAdded = function itemAdded(_ref2) {\r\n var root = _ref2.root,\r\n action = _ref2.action;\r\n if (!isUsingFilePond(root)) {\r\n return;\r\n }\r\n\r\n root.element.textContent = '';\r\n var item = root.query('GET_ITEM', action.id);\r\n filenames.push(item.filename);\r\n\r\n clearTimeout(addFilesNotificationTimeout);\r\n addFilesNotificationTimeout = setTimeout(function() {\r\n listModified(\r\n root,\r\n filenames.join(', '),\r\n root.query('GET_LABEL_FILE_ADDED')\r\n );\r\n\r\n filenames.length = 0;\r\n }, 750);\r\n };\r\n\r\n var itemRemoved = function itemRemoved(_ref3) {\r\n var root = _ref3.root,\r\n action = _ref3.action;\r\n if (!isUsingFilePond(root)) {\r\n return;\r\n }\r\n\r\n var item = action.item;\r\n listModified(root, item.filename, root.query('GET_LABEL_FILE_REMOVED'));\r\n };\r\n\r\n var itemProcessed = function itemProcessed(_ref4) {\r\n var root = _ref4.root,\r\n action = _ref4.action;\r\n // will also notify the user when FilePond is not being used, as the user might be occupied with other activities while uploading a file\r\n\r\n var item = root.query('GET_ITEM', action.id);\r\n var filename = item.filename;\r\n var label = root.query('GET_LABEL_FILE_PROCESSING_COMPLETE');\r\n\r\n assist(root, filename + ' ' + label);\r\n };\r\n\r\n var itemProcessedUndo = function itemProcessedUndo(_ref5) {\r\n var root = _ref5.root,\r\n action = _ref5.action;\r\n var item = root.query('GET_ITEM', action.id);\r\n var filename = item.filename;\r\n var label = root.query('GET_LABEL_FILE_PROCESSING_ABORTED');\r\n\r\n assist(root, filename + ' ' + label);\r\n };\r\n\r\n var itemError = function itemError(_ref6) {\r\n var root = _ref6.root,\r\n action = _ref6.action;\r\n var item = root.query('GET_ITEM', action.id);\r\n var filename = item.filename;\r\n\r\n // will also notify the user when FilePond is not being used, as the user might be occupied with other activities while uploading a file\r\n\r\n assist(root, action.status.main + ' ' + filename + ' ' + action.status.sub);\r\n };\r\n\r\n var assistant = createView({\r\n create: create$d,\r\n ignoreRect: true,\r\n ignoreRectUpdate: true,\r\n write: createRoute({\r\n DID_LOAD_ITEM: itemAdded,\r\n DID_REMOVE_ITEM: itemRemoved,\r\n DID_COMPLETE_ITEM_PROCESSING: itemProcessed,\r\n\r\n DID_ABORT_ITEM_PROCESSING: itemProcessedUndo,\r\n DID_REVERT_ITEM_PROCESSING: itemProcessedUndo,\r\n\r\n DID_THROW_ITEM_REMOVE_ERROR: itemError,\r\n DID_THROW_ITEM_LOAD_ERROR: itemError,\r\n DID_THROW_ITEM_INVALID: itemError,\r\n DID_THROW_ITEM_PROCESSING_ERROR: itemError\r\n }),\r\n\r\n tag: 'span',\r\n name: 'assistant'\r\n });\r\n\r\n var toCamels = function toCamels(string) {\r\n var separator =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '-';\r\n return string.replace(new RegExp(separator + '.', 'g'), function(sub) {\r\n return sub.charAt(1).toUpperCase();\r\n });\r\n };\r\n\r\n var debounce = function debounce(func) {\r\n var interval =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16;\r\n var immidiateOnly =\r\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\r\n var last = Date.now();\r\n var timeout = null;\r\n\r\n return function() {\r\n for (\r\n var _len = arguments.length, args = new Array(_len), _key = 0;\r\n _key < _len;\r\n _key++\r\n ) {\r\n args[_key] = arguments[_key];\r\n }\r\n clearTimeout(timeout);\r\n\r\n var dist = Date.now() - last;\r\n\r\n var fn = function fn() {\r\n last = Date.now();\r\n func.apply(void 0, args);\r\n };\r\n\r\n if (dist < interval) {\r\n // we need to delay by the difference between interval and dist\r\n // for example: if distance is 10 ms and interval is 16 ms,\r\n // we need to wait an additional 6ms before calling the function)\r\n if (!immidiateOnly) {\r\n timeout = setTimeout(fn, interval - dist);\r\n }\r\n } else {\r\n // go!\r\n fn();\r\n }\r\n };\r\n };\r\n\r\n var MAX_FILES_LIMIT = 1000000;\r\n\r\n var prevent = function prevent(e) {\r\n return e.preventDefault();\r\n };\r\n\r\n var create$e = function create(_ref) {\r\n var root = _ref.root,\r\n props = _ref.props;\r\n\r\n // Add id\r\n var id = root.query('GET_ID');\r\n if (id) {\r\n root.element.id = id;\r\n }\r\n\r\n // Add className\r\n var className = root.query('GET_CLASS_NAME');\r\n if (className) {\r\n className\r\n .split(' ')\r\n .filter(function(name) {\r\n return name.length;\r\n })\r\n .forEach(function(name) {\r\n root.element.classList.add(name);\r\n });\r\n }\r\n\r\n // Field label\r\n root.ref.label = root.appendChildView(\r\n root.createChildView(\r\n dropLabel,\r\n Object.assign({}, props, {\r\n translateY: null,\r\n caption: root.query('GET_LABEL_IDLE')\r\n })\r\n )\r\n );\r\n\r\n // List of items\r\n root.ref.list = root.appendChildView(\r\n root.createChildView(listScroller, { translateY: null })\r\n );\r\n\r\n // Background panel\r\n root.ref.panel = root.appendChildView(\r\n root.createChildView(panel, { name: 'panel-root' })\r\n );\r\n\r\n // Assistant notifies assistive tech when content changes\r\n root.ref.assistant = root.appendChildView(\r\n root.createChildView(assistant, Object.assign({}, props))\r\n );\r\n\r\n // Data\r\n root.ref.data = root.appendChildView(\r\n root.createChildView(data, Object.assign({}, props))\r\n );\r\n\r\n // Measure (tests if fixed height was set)\r\n // DOCTYPE needs to be set for this to work\r\n root.ref.measure = createElement$1('div');\r\n root.ref.measure.style.height = '100%';\r\n root.element.appendChild(root.ref.measure);\r\n\r\n // information on the root height or fixed height status\r\n root.ref.bounds = null;\r\n\r\n // apply initial style properties\r\n root\r\n .query('GET_STYLES')\r\n .filter(function(style) {\r\n return !isEmpty(style.value);\r\n })\r\n .map(function(_ref2) {\r\n var name = _ref2.name,\r\n value = _ref2.value;\r\n root.element.dataset[name] = value;\r\n });\r\n\r\n // determine if width changed\r\n root.ref.widthPrevious = null;\r\n root.ref.widthUpdated = debounce(function() {\r\n root.ref.updateHistory = [];\r\n root.dispatch('DID_RESIZE_ROOT');\r\n }, 250);\r\n\r\n // history of updates\r\n root.ref.previousAspectRatio = null;\r\n root.ref.updateHistory = [];\r\n\r\n // prevent scrolling and zooming on iOS (only if supports pointer events, for then we can enable reorder)\r\n var canHover = window.matchMedia('(pointer: fine) and (hover: hover)')\r\n .matches;\r\n var hasPointerEvents = 'PointerEvent' in window;\r\n if (root.query('GET_ALLOW_REORDER') && hasPointerEvents && !canHover) {\r\n root.element.addEventListener('touchmove', prevent, { passive: false });\r\n root.element.addEventListener('gesturestart', prevent);\r\n }\r\n };\r\n\r\n var write$9 = function write(_ref3) {\r\n var root = _ref3.root,\r\n props = _ref3.props,\r\n actions = _ref3.actions;\r\n\r\n // route actions\r\n route$5({ root: root, props: props, actions: actions });\r\n\r\n // apply style properties\r\n actions\r\n .filter(function(action) {\r\n return /^DID_SET_STYLE_/.test(action.type);\r\n })\r\n .filter(function(action) {\r\n return !isEmpty(action.data.value);\r\n })\r\n .map(function(_ref4) {\r\n var type = _ref4.type,\r\n data = _ref4.data;\r\n var name = toCamels(type.substr(8).toLowerCase(), '_');\r\n root.element.dataset[name] = data.value;\r\n root.invalidateLayout();\r\n });\r\n\r\n if (root.rect.element.hidden) return;\r\n\r\n if (root.rect.element.width !== root.ref.widthPrevious) {\r\n root.ref.widthPrevious = root.rect.element.width;\r\n root.ref.widthUpdated();\r\n }\r\n\r\n // get box bounds, we do this only once\r\n var bounds = root.ref.bounds;\r\n if (!bounds) {\r\n bounds = root.ref.bounds = calculateRootBoundingBoxHeight(root);\r\n\r\n // destroy measure element\r\n root.element.removeChild(root.ref.measure);\r\n root.ref.measure = null;\r\n }\r\n\r\n // get quick references to various high level parts of the upload tool\r\n var _root$ref = root.ref,\r\n hopper = _root$ref.hopper,\r\n label = _root$ref.label,\r\n list = _root$ref.list,\r\n panel = _root$ref.panel;\r\n\r\n // sets correct state to hopper scope\r\n if (hopper) {\r\n hopper.updateHopperState();\r\n }\r\n\r\n // bool to indicate if we're full or not\r\n var aspectRatio = root.query('GET_PANEL_ASPECT_RATIO');\r\n var isMultiItem = root.query('GET_ALLOW_MULTIPLE');\r\n var totalItems = root.query('GET_TOTAL_ITEMS');\r\n var maxItems = isMultiItem\r\n ? root.query('GET_MAX_FILES') || MAX_FILES_LIMIT\r\n : 1;\r\n var atMaxCapacity = totalItems === maxItems;\r\n\r\n // action used to add item\r\n var addAction = actions.find(function(action) {\r\n return action.type === 'DID_ADD_ITEM';\r\n });\r\n\r\n // if reached max capacity and we've just reached it\r\n if (atMaxCapacity && addAction) {\r\n // get interaction type\r\n var interactionMethod = addAction.data.interactionMethod;\r\n\r\n // hide label\r\n label.opacity = 0;\r\n\r\n if (isMultiItem) {\r\n label.translateY = -40;\r\n } else {\r\n if (interactionMethod === InteractionMethod.API) {\r\n label.translateX = 40;\r\n } else if (interactionMethod === InteractionMethod.BROWSE) {\r\n label.translateY = 40;\r\n } else {\r\n label.translateY = 30;\r\n }\r\n }\r\n } else if (!atMaxCapacity) {\r\n label.opacity = 1;\r\n label.translateX = 0;\r\n label.translateY = 0;\r\n }\r\n\r\n var listItemMargin = calculateListItemMargin(root);\r\n\r\n var listHeight = calculateListHeight(root);\r\n\r\n var labelHeight = label.rect.element.height;\r\n var currentLabelHeight = !isMultiItem || atMaxCapacity ? 0 : labelHeight;\r\n\r\n var listMarginTop = atMaxCapacity ? list.rect.element.marginTop : 0;\r\n var listMarginBottom =\r\n totalItems === 0 ? 0 : list.rect.element.marginBottom;\r\n\r\n var visualHeight =\r\n currentLabelHeight + listMarginTop + listHeight.visual + listMarginBottom;\r\n var boundsHeight =\r\n currentLabelHeight + listMarginTop + listHeight.bounds + listMarginBottom;\r\n\r\n // link list to label bottom position\r\n list.translateY =\r\n Math.max(0, currentLabelHeight - list.rect.element.marginTop) -\r\n listItemMargin.top;\r\n\r\n if (aspectRatio) {\r\n // fixed aspect ratio\r\n\r\n // calculate height based on width\r\n var width = root.rect.element.width;\r\n var height = width * aspectRatio;\r\n\r\n // clear history if aspect ratio has changed\r\n if (aspectRatio !== root.ref.previousAspectRatio) {\r\n root.ref.previousAspectRatio = aspectRatio;\r\n root.ref.updateHistory = [];\r\n }\r\n\r\n // remember this width\r\n var history = root.ref.updateHistory;\r\n history.push(width);\r\n\r\n var MAX_BOUNCES = 2;\r\n if (history.length > MAX_BOUNCES * 2) {\r\n var l = history.length;\r\n var bottom = l - 10;\r\n var bounces = 0;\r\n for (var i = l; i >= bottom; i--) {\r\n if (history[i] === history[i - 2]) {\r\n bounces++;\r\n }\r\n\r\n if (bounces >= MAX_BOUNCES) {\r\n // dont adjust height\r\n return;\r\n }\r\n }\r\n }\r\n\r\n // fix height of panel so it adheres to aspect ratio\r\n panel.scalable = false;\r\n panel.height = height;\r\n\r\n // available height for list\r\n var listAvailableHeight =\r\n // the height of the panel minus the label height\r\n height -\r\n currentLabelHeight -\r\n // the room we leave open between the end of the list and the panel bottom\r\n (listMarginBottom - listItemMargin.bottom) -\r\n // if we're full we need to leave some room between the top of the panel and the list\r\n (atMaxCapacity ? listMarginTop : 0);\r\n\r\n if (listHeight.visual > listAvailableHeight) {\r\n list.overflow = listAvailableHeight;\r\n } else {\r\n list.overflow = null;\r\n }\r\n\r\n // set container bounds (so pushes siblings downwards)\r\n root.height = height;\r\n } else if (bounds.fixedHeight) {\r\n // fixed height\r\n\r\n // fix height of panel\r\n panel.scalable = false;\r\n\r\n // available height for list\r\n var _listAvailableHeight =\r\n // the height of the panel minus the label height\r\n bounds.fixedHeight -\r\n currentLabelHeight -\r\n // the room we leave open between the end of the list and the panel bottom\r\n (listMarginBottom - listItemMargin.bottom) -\r\n // if we're full we need to leave some room between the top of the panel and the list\r\n (atMaxCapacity ? listMarginTop : 0);\r\n\r\n // set list height\r\n if (listHeight.visual > _listAvailableHeight) {\r\n list.overflow = _listAvailableHeight;\r\n } else {\r\n list.overflow = null;\r\n }\r\n\r\n // no need to set container bounds as these are handles by CSS fixed height\r\n } else if (bounds.cappedHeight) {\r\n // max-height\r\n\r\n // not a fixed height panel\r\n var isCappedHeight = visualHeight >= bounds.cappedHeight;\r\n var panelHeight = Math.min(bounds.cappedHeight, visualHeight);\r\n panel.scalable = true;\r\n panel.height = isCappedHeight\r\n ? panelHeight\r\n : panelHeight - listItemMargin.top - listItemMargin.bottom;\r\n\r\n // available height for list\r\n var _listAvailableHeight2 =\r\n // the height of the panel minus the label height\r\n panelHeight -\r\n currentLabelHeight -\r\n // the room we leave open between the end of the list and the panel bottom\r\n (listMarginBottom - listItemMargin.bottom) -\r\n // if we're full we need to leave some room between the top of the panel and the list\r\n (atMaxCapacity ? listMarginTop : 0);\r\n\r\n // set list height (if is overflowing)\r\n if (\r\n visualHeight > bounds.cappedHeight &&\r\n listHeight.visual > _listAvailableHeight2\r\n ) {\r\n list.overflow = _listAvailableHeight2;\r\n } else {\r\n list.overflow = null;\r\n }\r\n\r\n // set container bounds (so pushes siblings downwards)\r\n root.height = Math.min(\r\n bounds.cappedHeight,\r\n boundsHeight - listItemMargin.top - listItemMargin.bottom\r\n );\r\n } else {\r\n // flexible height\r\n\r\n // not a fixed height panel\r\n var itemMargin =\r\n totalItems > 0 ? listItemMargin.top + listItemMargin.bottom : 0;\r\n panel.scalable = true;\r\n panel.height = Math.max(labelHeight, visualHeight - itemMargin);\r\n\r\n // set container bounds (so pushes siblings downwards)\r\n root.height = Math.max(labelHeight, boundsHeight - itemMargin);\r\n }\r\n };\r\n\r\n var calculateListItemMargin = function calculateListItemMargin(root) {\r\n var item = root.ref.list.childViews[0].childViews[0];\r\n return item\r\n ? {\r\n top: item.rect.element.marginTop,\r\n bottom: item.rect.element.marginBottom\r\n }\r\n : {\r\n top: 0,\r\n bottom: 0\r\n };\r\n };\r\n\r\n var calculateListHeight = function calculateListHeight(root) {\r\n var visual = 0;\r\n var bounds = 0;\r\n\r\n // get file list reference\r\n var scrollList = root.ref.list;\r\n var itemList = scrollList.childViews[0];\r\n var visibleChildren = itemList.childViews.filter(function(child) {\r\n return child.rect.element.height;\r\n });\r\n var children = root\r\n .query('GET_ACTIVE_ITEMS')\r\n .map(function(item) {\r\n return visibleChildren.find(function(child) {\r\n return child.id === item.id;\r\n });\r\n })\r\n .filter(function(item) {\r\n return item;\r\n });\r\n\r\n // no children, done!\r\n if (children.length === 0) return { visual: visual, bounds: bounds };\r\n\r\n var horizontalSpace = itemList.rect.element.width;\r\n var dragIndex = getItemIndexByPosition(\r\n itemList,\r\n children,\r\n scrollList.dragCoordinates\r\n );\r\n\r\n var childRect = children[0].rect.element;\r\n\r\n var itemVerticalMargin = childRect.marginTop + childRect.marginBottom;\r\n var itemHorizontalMargin = childRect.marginLeft + childRect.marginRight;\r\n\r\n var itemWidth = childRect.width + itemHorizontalMargin;\r\n var itemHeight = childRect.height + itemVerticalMargin;\r\n\r\n var newItem = typeof dragIndex !== 'undefined' && dragIndex >= 0 ? 1 : 0;\r\n var removedItem = children.find(function(child) {\r\n return child.markedForRemoval && child.opacity < 0.45;\r\n })\r\n ? -1\r\n : 0;\r\n var verticalItemCount = children.length + newItem + removedItem;\r\n var itemsPerRow = Math.round(horizontalSpace / itemWidth);\r\n\r\n // stack\r\n if (itemsPerRow === 1) {\r\n children.forEach(function(item) {\r\n var height = item.rect.element.height + itemVerticalMargin;\r\n bounds += height;\r\n visual += height * item.opacity;\r\n });\r\n }\r\n // grid\r\n else {\r\n bounds = Math.ceil(verticalItemCount / itemsPerRow) * itemHeight;\r\n visual = bounds;\r\n }\r\n\r\n return { visual: visual, bounds: bounds };\r\n };\r\n\r\n var calculateRootBoundingBoxHeight = function calculateRootBoundingBoxHeight(\r\n root\r\n ) {\r\n var height = root.ref.measureHeight || null;\r\n var cappedHeight = parseInt(root.style.maxHeight, 10) || null;\r\n var fixedHeight = height === 0 ? null : height;\r\n\r\n return {\r\n cappedHeight: cappedHeight,\r\n fixedHeight: fixedHeight\r\n };\r\n };\r\n\r\n var exceedsMaxFiles = function exceedsMaxFiles(root, items) {\r\n var allowReplace = root.query('GET_ALLOW_REPLACE');\r\n var allowMultiple = root.query('GET_ALLOW_MULTIPLE');\r\n var totalItems = root.query('GET_TOTAL_ITEMS');\r\n var maxItems = root.query('GET_MAX_FILES');\r\n\r\n // total amount of items being dragged\r\n var totalBrowseItems = items.length;\r\n\r\n // if does not allow multiple items and dragging more than one item\r\n if (!allowMultiple && totalBrowseItems > 1) {\r\n return true;\r\n }\r\n\r\n // limit max items to one if not allowed to drop multiple items\r\n maxItems = allowMultiple ? maxItems : allowReplace ? maxItems : 1;\r\n\r\n // no more room?\r\n var hasMaxItems = isInt(maxItems);\r\n if (hasMaxItems && totalItems + totalBrowseItems > maxItems) {\r\n root.dispatch('DID_THROW_MAX_FILES', {\r\n source: items,\r\n error: createResponse('warning', 0, 'Max files')\r\n });\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n var getDragIndex = function getDragIndex(list, children, position) {\r\n var itemList = list.childViews[0];\r\n return getItemIndexByPosition(itemList, children, {\r\n left: position.scopeLeft - itemList.rect.element.left,\r\n top:\r\n position.scopeTop -\r\n (list.rect.outer.top +\r\n list.rect.element.marginTop +\r\n list.rect.element.scrollTop)\r\n });\r\n };\r\n\r\n /**\r\n * Enable or disable file drop functionality\r\n */\r\n var toggleDrop = function toggleDrop(root) {\r\n var isAllowed = root.query('GET_ALLOW_DROP');\r\n var isDisabled = root.query('GET_DISABLED');\r\n var enabled = isAllowed && !isDisabled;\r\n if (enabled && !root.ref.hopper) {\r\n var hopper = createHopper(\r\n root.element,\r\n function(items) {\r\n // these files don't fit so stop here\r\n if (exceedsMaxFiles(root, items)) return false;\r\n\r\n // allow quick validation of dropped items\r\n var beforeDropFile =\r\n root.query('GET_BEFORE_DROP_FILE') ||\r\n function() {\r\n return true;\r\n };\r\n\r\n // all items should be validated by all filters as valid\r\n var dropValidation = root.query('GET_DROP_VALIDATION');\r\n return dropValidation\r\n ? items.every(function(item) {\r\n return (\r\n applyFilters('ALLOW_HOPPER_ITEM', item, {\r\n query: root.query\r\n }).every(function(result) {\r\n return result === true;\r\n }) && beforeDropFile(item)\r\n );\r\n })\r\n : true;\r\n },\r\n {\r\n filterItems: function filterItems(items) {\r\n var ignoredFiles = root.query('GET_IGNORED_FILES');\r\n return items.filter(function(item) {\r\n if (isFile(item)) {\r\n return !ignoredFiles.includes(item.name.toLowerCase());\r\n }\r\n return true;\r\n });\r\n },\r\n catchesDropsOnPage: root.query('GET_DROP_ON_PAGE'),\r\n requiresDropOnElement: root.query('GET_DROP_ON_ELEMENT')\r\n }\r\n );\r\n\r\n hopper.onload = function(items, position) {\r\n // get item children elements and sort based on list sort\r\n var list = root.ref.list.childViews[0];\r\n var visibleChildren = list.childViews.filter(function(child) {\r\n return child.rect.element.height;\r\n });\r\n var children = root\r\n .query('GET_ACTIVE_ITEMS')\r\n .map(function(item) {\r\n return visibleChildren.find(function(child) {\r\n return child.id === item.id;\r\n });\r\n })\r\n .filter(function(item) {\r\n return item;\r\n });\r\n\r\n // go\r\n root.dispatch('ADD_ITEMS', {\r\n items: items,\r\n index: getDragIndex(root.ref.list, children, position),\r\n interactionMethod: InteractionMethod.DROP\r\n });\r\n\r\n root.dispatch('DID_DROP', { position: position });\r\n\r\n root.dispatch('DID_END_DRAG', { position: position });\r\n };\r\n\r\n hopper.ondragstart = function(position) {\r\n root.dispatch('DID_START_DRAG', { position: position });\r\n };\r\n\r\n hopper.ondrag = debounce(function(position) {\r\n root.dispatch('DID_DRAG', { position: position });\r\n });\r\n\r\n hopper.ondragend = function(position) {\r\n root.dispatch('DID_END_DRAG', { position: position });\r\n };\r\n\r\n root.ref.hopper = hopper;\r\n\r\n root.ref.drip = root.appendChildView(root.createChildView(drip));\r\n } else if (!enabled && root.ref.hopper) {\r\n root.ref.hopper.destroy();\r\n root.ref.hopper = null;\r\n root.removeChildView(root.ref.drip);\r\n }\r\n };\r\n\r\n /**\r\n * Enable or disable browse functionality\r\n */\r\n var toggleBrowse = function toggleBrowse(root, props) {\r\n var isAllowed = root.query('GET_ALLOW_BROWSE');\r\n var isDisabled = root.query('GET_DISABLED');\r\n var enabled = isAllowed && !isDisabled;\r\n if (enabled && !root.ref.browser) {\r\n root.ref.browser = root.appendChildView(\r\n root.createChildView(\r\n browser,\r\n Object.assign({}, props, {\r\n onload: function onload(items) {\r\n // these files don't fit so stop here\r\n if (exceedsMaxFiles(root, items)) return false;\r\n\r\n // add items!\r\n root.dispatch('ADD_ITEMS', {\r\n items: items,\r\n index: -1,\r\n interactionMethod: InteractionMethod.BROWSE\r\n });\r\n }\r\n })\r\n ),\r\n\r\n 0\r\n );\r\n } else if (!enabled && root.ref.browser) {\r\n root.removeChildView(root.ref.browser);\r\n root.ref.browser = null;\r\n }\r\n };\r\n\r\n /**\r\n * Enable or disable paste functionality\r\n */\r\n var togglePaste = function togglePaste(root) {\r\n var isAllowed = root.query('GET_ALLOW_PASTE');\r\n var isDisabled = root.query('GET_DISABLED');\r\n var enabled = isAllowed && !isDisabled;\r\n if (enabled && !root.ref.paster) {\r\n root.ref.paster = createPaster();\r\n root.ref.paster.onload = function(items) {\r\n root.dispatch('ADD_ITEMS', {\r\n items: items,\r\n index: -1,\r\n interactionMethod: InteractionMethod.PASTE\r\n });\r\n };\r\n } else if (!enabled && root.ref.paster) {\r\n root.ref.paster.destroy();\r\n root.ref.paster = null;\r\n }\r\n };\r\n\r\n /**\r\n * Route actions\r\n */\r\n var route$5 = createRoute({\r\n DID_SET_ALLOW_BROWSE: function DID_SET_ALLOW_BROWSE(_ref5) {\r\n var root = _ref5.root,\r\n props = _ref5.props;\r\n toggleBrowse(root, props);\r\n },\r\n DID_SET_ALLOW_DROP: function DID_SET_ALLOW_DROP(_ref6) {\r\n var root = _ref6.root;\r\n toggleDrop(root);\r\n },\r\n DID_SET_ALLOW_PASTE: function DID_SET_ALLOW_PASTE(_ref7) {\r\n var root = _ref7.root;\r\n togglePaste(root);\r\n },\r\n DID_SET_DISABLED: function DID_SET_DISABLED(_ref8) {\r\n var root = _ref8.root,\r\n props = _ref8.props;\r\n toggleDrop(root);\r\n togglePaste(root);\r\n toggleBrowse(root, props);\r\n var isDisabled = root.query('GET_DISABLED');\r\n if (isDisabled) {\r\n root.element.dataset.disabled = 'disabled';\r\n } else {\r\n // delete root.element.dataset.disabled; <= this does not work on iOS 10\r\n root.element.removeAttribute('data-disabled');\r\n }\r\n }\r\n });\r\n\r\n var root = createView({\r\n name: 'root',\r\n read: function read(_ref9) {\r\n var root = _ref9.root;\r\n if (root.ref.measure) {\r\n root.ref.measureHeight = root.ref.measure.offsetHeight;\r\n }\r\n },\r\n create: create$e,\r\n write: write$9,\r\n destroy: function destroy(_ref10) {\r\n var root = _ref10.root;\r\n if (root.ref.paster) {\r\n root.ref.paster.destroy();\r\n }\r\n if (root.ref.hopper) {\r\n root.ref.hopper.destroy();\r\n }\r\n root.element.removeEventListener('touchmove', prevent);\r\n root.element.removeEventListener('gesturestart', prevent);\r\n },\r\n mixins: {\r\n styles: ['height']\r\n }\r\n });\r\n\r\n // creates the app\r\n var createApp = function createApp() {\r\n var initialOptions =\r\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n // let element\r\n var originalElement = null;\r\n\r\n // get default options\r\n var defaultOptions = getOptions();\r\n\r\n // create the data store, this will contain all our app info\r\n var store = createStore(\r\n // initial state (should be serializable)\r\n createInitialState(defaultOptions),\r\n\r\n // queries\r\n [queries, createOptionQueries(defaultOptions)],\r\n\r\n // action handlers\r\n [actions, createOptionActions(defaultOptions)]\r\n );\r\n\r\n // set initial options\r\n store.dispatch('SET_OPTIONS', { options: initialOptions });\r\n\r\n // kick thread if visibility changes\r\n var visibilityHandler = function visibilityHandler() {\r\n if (document.hidden) return;\r\n store.dispatch('KICK');\r\n };\r\n document.addEventListener('visibilitychange', visibilityHandler);\r\n\r\n // re-render on window resize start and finish\r\n var resizeDoneTimer = null;\r\n var isResizing = false;\r\n var isResizingHorizontally = false;\r\n var initialWindowWidth = null;\r\n var currentWindowWidth = null;\r\n var resizeHandler = function resizeHandler() {\r\n if (!isResizing) {\r\n isResizing = true;\r\n }\r\n clearTimeout(resizeDoneTimer);\r\n resizeDoneTimer = setTimeout(function() {\r\n isResizing = false;\r\n initialWindowWidth = null;\r\n currentWindowWidth = null;\r\n if (isResizingHorizontally) {\r\n isResizingHorizontally = false;\r\n store.dispatch('DID_STOP_RESIZE');\r\n }\r\n }, 500);\r\n };\r\n window.addEventListener('resize', resizeHandler);\r\n\r\n // render initial view\r\n var view = root(store, { id: getUniqueId() });\r\n\r\n //\r\n // PRIVATE API -------------------------------------------------------------------------------------\r\n //\r\n var isResting = false;\r\n var isHidden = false;\r\n\r\n var readWriteApi = {\r\n // necessary for update loop\r\n\r\n /**\r\n * Reads from dom (never call manually)\r\n * @private\r\n */\r\n _read: function _read() {\r\n // test if we're resizing horizontally\r\n // TODO: see if we can optimize this by measuring root rect\r\n if (isResizing) {\r\n currentWindowWidth = window.innerWidth;\r\n if (!initialWindowWidth) {\r\n initialWindowWidth = currentWindowWidth;\r\n }\r\n\r\n if (\r\n !isResizingHorizontally &&\r\n currentWindowWidth !== initialWindowWidth\r\n ) {\r\n store.dispatch('DID_START_RESIZE');\r\n isResizingHorizontally = true;\r\n }\r\n }\r\n\r\n if (isHidden && isResting) {\r\n // test if is no longer hidden\r\n isResting = view.element.offsetParent === null;\r\n }\r\n\r\n // if resting, no need to read as numbers will still all be correct\r\n if (isResting) return;\r\n\r\n // read view data\r\n view._read();\r\n\r\n // if is hidden we need to know so we exit rest mode when revealed\r\n isHidden = view.rect.element.hidden;\r\n },\r\n\r\n /**\r\n * Writes to dom (never call manually)\r\n * @private\r\n */\r\n _write: function _write(ts) {\r\n // get all actions from store\r\n var actions = store\r\n .processActionQueue()\r\n\r\n // filter out set actions (these will automatically trigger DID_SET)\r\n .filter(function(action) {\r\n return !/^SET_/.test(action.type);\r\n });\r\n\r\n // if was idling and no actions stop here\r\n if (isResting && !actions.length) return;\r\n\r\n // some actions might trigger events\r\n routeActionsToEvents(actions);\r\n\r\n // update the view\r\n isResting = view._write(ts, actions, isResizingHorizontally);\r\n\r\n // will clean up all archived items\r\n removeReleasedItems(store.query('GET_ITEMS'));\r\n\r\n // now idling\r\n if (isResting) {\r\n store.processDispatchQueue();\r\n }\r\n }\r\n };\r\n\r\n //\r\n // EXPOSE EVENTS -------------------------------------------------------------------------------------\r\n //\r\n var createEvent = function createEvent(name) {\r\n return function(data) {\r\n // create default event\r\n var event = {\r\n type: name\r\n };\r\n\r\n // no data to add\r\n if (!data) {\r\n return event;\r\n }\r\n\r\n // copy relevant props\r\n if (data.hasOwnProperty('error')) {\r\n event.error = data.error ? Object.assign({}, data.error) : null;\r\n }\r\n\r\n if (data.status) {\r\n event.status = Object.assign({}, data.status);\r\n }\r\n\r\n if (data.file) {\r\n event.output = data.file;\r\n }\r\n\r\n // only source is available, else add item if possible\r\n if (data.source) {\r\n event.file = data.source;\r\n } else if (data.item || data.id) {\r\n var item = data.item ? data.item : store.query('GET_ITEM', data.id);\r\n event.file = item ? createItemAPI(item) : null;\r\n }\r\n\r\n // map all items in a possible items array\r\n if (data.items) {\r\n event.items = data.items.map(createItemAPI);\r\n }\r\n\r\n // if this is a progress event add the progress amount\r\n if (/progress/.test(name)) {\r\n event.progress = data.progress;\r\n }\r\n\r\n // copy relevant props\r\n if (data.hasOwnProperty('origin') && data.hasOwnProperty('target')) {\r\n event.origin = data.origin;\r\n event.target = data.target;\r\n }\r\n\r\n return event;\r\n };\r\n };\r\n\r\n var eventRoutes = {\r\n DID_DESTROY: createEvent('destroy'),\r\n\r\n DID_INIT: createEvent('init'),\r\n\r\n DID_THROW_MAX_FILES: createEvent('warning'),\r\n\r\n DID_INIT_ITEM: createEvent('initfile'),\r\n DID_START_ITEM_LOAD: createEvent('addfilestart'),\r\n DID_UPDATE_ITEM_LOAD_PROGRESS: createEvent('addfileprogress'),\r\n DID_LOAD_ITEM: createEvent('addfile'),\r\n\r\n DID_THROW_ITEM_INVALID: [createEvent('error'), createEvent('addfile')],\r\n\r\n DID_THROW_ITEM_LOAD_ERROR: [createEvent('error'), createEvent('addfile')],\r\n\r\n DID_THROW_ITEM_REMOVE_ERROR: [\r\n createEvent('error'),\r\n createEvent('removefile')\r\n ],\r\n\r\n DID_PREPARE_OUTPUT: createEvent('preparefile'),\r\n\r\n DID_START_ITEM_PROCESSING: createEvent('processfilestart'),\r\n DID_UPDATE_ITEM_PROCESS_PROGRESS: createEvent('processfileprogress'),\r\n DID_ABORT_ITEM_PROCESSING: createEvent('processfileabort'),\r\n DID_COMPLETE_ITEM_PROCESSING: createEvent('processfile'),\r\n DID_COMPLETE_ITEM_PROCESSING_ALL: createEvent('processfiles'),\r\n DID_REVERT_ITEM_PROCESSING: createEvent('processfilerevert'),\r\n\r\n DID_THROW_ITEM_PROCESSING_ERROR: [\r\n createEvent('error'),\r\n createEvent('processfile')\r\n ],\r\n\r\n DID_REMOVE_ITEM: createEvent('removefile'),\r\n\r\n DID_UPDATE_ITEMS: createEvent('updatefiles'),\r\n\r\n DID_ACTIVATE_ITEM: createEvent('activatefile'),\r\n\r\n DID_REORDER_ITEMS: createEvent('reorderfiles')\r\n };\r\n\r\n var exposeEvent = function exposeEvent(event) {\r\n // create event object to be dispatched\r\n var detail = Object.assign({ pond: exports }, event);\r\n delete detail.type;\r\n view.element.dispatchEvent(\r\n new CustomEvent('FilePond:' + event.type, {\r\n // event info\r\n detail: detail,\r\n\r\n // event behaviour\r\n bubbles: true,\r\n cancelable: true,\r\n composed: true // triggers listeners outside of shadow root\r\n })\r\n );\r\n\r\n // event object to params used for `on()` event handlers and callbacks `oninit()`\r\n var params = [];\r\n\r\n // if is possible error event, make it the first param\r\n if (event.hasOwnProperty('error')) {\r\n params.push(event.error);\r\n }\r\n\r\n // file is always section\r\n if (event.hasOwnProperty('file')) {\r\n params.push(event.file);\r\n }\r\n\r\n // append other props\r\n var filtered = ['type', 'error', 'file'];\r\n Object.keys(event)\r\n .filter(function(key) {\r\n return !filtered.includes(key);\r\n })\r\n .forEach(function(key) {\r\n return params.push(event[key]);\r\n });\r\n\r\n // on(type, () => { })\r\n exports.fire.apply(exports, [event.type].concat(params));\r\n\r\n // oninit = () => {}\r\n var handler = store.query('GET_ON' + event.type.toUpperCase());\r\n if (handler) {\r\n handler.apply(void 0, params);\r\n }\r\n };\r\n\r\n var routeActionsToEvents = function routeActionsToEvents(actions) {\r\n if (!actions.length) return;\r\n actions\r\n .filter(function(action) {\r\n return eventRoutes[action.type];\r\n })\r\n .forEach(function(action) {\r\n var routes = eventRoutes[action.type];\r\n (Array.isArray(routes) ? routes : [routes]).forEach(function(route) {\r\n // this isn't fantastic, but because of the stacking of settimeouts plugins can handle the did_load before the did_init\r\n if (action.type === 'DID_INIT_ITEM') {\r\n exposeEvent(route(action.data));\r\n } else {\r\n setTimeout(function() {\r\n exposeEvent(route(action.data));\r\n }, 0);\r\n }\r\n });\r\n });\r\n };\r\n\r\n //\r\n // PUBLIC API -------------------------------------------------------------------------------------\r\n //\r\n var setOptions = function setOptions(options) {\r\n return store.dispatch('SET_OPTIONS', { options: options });\r\n };\r\n\r\n var getFile = function getFile(query) {\r\n return store.query('GET_ACTIVE_ITEM', query);\r\n };\r\n\r\n var prepareFile = function prepareFile(query) {\r\n return new Promise(function(resolve, reject) {\r\n store.dispatch('REQUEST_ITEM_PREPARE', {\r\n query: query,\r\n success: function success(item) {\r\n resolve(item);\r\n },\r\n failure: function failure(error) {\r\n reject(error);\r\n }\r\n });\r\n });\r\n };\r\n\r\n var addFile = function addFile(source) {\r\n var options =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n return new Promise(function(resolve, reject) {\r\n addFiles([{ source: source, options: options }], {\r\n index: options.index\r\n })\r\n .then(function(items) {\r\n return resolve(items && items[0]);\r\n })\r\n .catch(reject);\r\n });\r\n };\r\n\r\n var isFilePondFile = function isFilePondFile(obj) {\r\n return obj.file && obj.id;\r\n };\r\n\r\n var removeFile = function removeFile(query, options) {\r\n // if only passed options\r\n if (typeof query === 'object' && !isFilePondFile(query) && !options) {\r\n options = query;\r\n query = undefined;\r\n }\r\n\r\n // request item removal\r\n store.dispatch(\r\n 'REMOVE_ITEM',\r\n Object.assign({}, options, { query: query })\r\n );\r\n\r\n // see if item has been removed\r\n return store.query('GET_ACTIVE_ITEM', query) === null;\r\n };\r\n\r\n var addFiles = function addFiles() {\r\n for (\r\n var _len = arguments.length, args = new Array(_len), _key = 0;\r\n _key < _len;\r\n _key++\r\n ) {\r\n args[_key] = arguments[_key];\r\n }\r\n return new Promise(function(resolve, reject) {\r\n var sources = [];\r\n var options = {};\r\n\r\n // user passed a sources array\r\n if (isArray(args[0])) {\r\n sources.push.apply(sources, args[0]);\r\n Object.assign(options, args[1] || {});\r\n } else {\r\n // user passed sources as arguments, last one might be options object\r\n var lastArgument = args[args.length - 1];\r\n if (\r\n typeof lastArgument === 'object' &&\r\n !(lastArgument instanceof Blob)\r\n ) {\r\n Object.assign(options, args.pop());\r\n }\r\n\r\n // add rest to sources\r\n sources.push.apply(sources, args);\r\n }\r\n\r\n store.dispatch('ADD_ITEMS', {\r\n items: sources,\r\n index: options.index,\r\n interactionMethod: InteractionMethod.API,\r\n success: resolve,\r\n failure: reject\r\n });\r\n });\r\n };\r\n\r\n var getFiles = function getFiles() {\r\n return store.query('GET_ACTIVE_ITEMS');\r\n };\r\n\r\n var processFile = function processFile(query) {\r\n return new Promise(function(resolve, reject) {\r\n store.dispatch('REQUEST_ITEM_PROCESSING', {\r\n query: query,\r\n success: function success(item) {\r\n resolve(item);\r\n },\r\n failure: function failure(error) {\r\n reject(error);\r\n }\r\n });\r\n });\r\n };\r\n\r\n var prepareFiles = function prepareFiles() {\r\n for (\r\n var _len2 = arguments.length, args = new Array(_len2), _key2 = 0;\r\n _key2 < _len2;\r\n _key2++\r\n ) {\r\n args[_key2] = arguments[_key2];\r\n }\r\n var queries = Array.isArray(args[0]) ? args[0] : args;\r\n var items = queries.length ? queries : getFiles();\r\n return Promise.all(items.map(prepareFile));\r\n };\r\n\r\n var processFiles = function processFiles() {\r\n for (\r\n var _len3 = arguments.length, args = new Array(_len3), _key3 = 0;\r\n _key3 < _len3;\r\n _key3++\r\n ) {\r\n args[_key3] = arguments[_key3];\r\n }\r\n var queries = Array.isArray(args[0]) ? args[0] : args;\r\n if (!queries.length) {\r\n var files = getFiles().filter(function(item) {\r\n return (\r\n !(\r\n item.status === ItemStatus.IDLE &&\r\n item.origin === FileOrigin.LOCAL\r\n ) &&\r\n item.status !== ItemStatus.PROCESSING &&\r\n item.status !== ItemStatus.PROCESSING_COMPLETE &&\r\n item.status !== ItemStatus.PROCESSING_REVERT_ERROR\r\n );\r\n });\r\n\r\n return Promise.all(files.map(processFile));\r\n }\r\n return Promise.all(queries.map(processFile));\r\n };\r\n\r\n var removeFiles = function removeFiles() {\r\n for (\r\n var _len4 = arguments.length, args = new Array(_len4), _key4 = 0;\r\n _key4 < _len4;\r\n _key4++\r\n ) {\r\n args[_key4] = arguments[_key4];\r\n }\r\n\r\n var queries = Array.isArray(args[0]) ? args[0] : args;\r\n\r\n var options;\r\n if (typeof queries[queries.length - 1] === 'object') {\r\n options = queries.pop();\r\n } else if (Array.isArray(args[0])) {\r\n options = args[1];\r\n }\r\n\r\n var files = getFiles();\r\n\r\n if (!queries.length)\r\n return Promise.all(\r\n files.map(function(file) {\r\n return removeFile(file, options);\r\n })\r\n );\r\n\r\n // when removing by index the indexes shift after each file removal so we need to convert indexes to ids\r\n var mappedQueries = queries\r\n .map(function(query) {\r\n return isNumber(query)\r\n ? files[query]\r\n ? files[query].id\r\n : null\r\n : query;\r\n })\r\n .filter(function(query) {\r\n return query;\r\n });\r\n\r\n return mappedQueries.map(function(q) {\r\n return removeFile(q, options);\r\n });\r\n };\r\n\r\n var exports = Object.assign(\r\n {},\r\n\r\n on(),\r\n {},\r\n\r\n readWriteApi,\r\n {},\r\n\r\n createOptionAPI(store, defaultOptions),\r\n {\r\n /**\r\n * Override options defined in options object\r\n * @param options\r\n */\r\n setOptions: setOptions,\r\n\r\n /**\r\n * Load the given file\r\n * @param source - the source of the file (either a File, base64 data uri or url)\r\n * @param options - object, { index: 0 }\r\n */\r\n addFile: addFile,\r\n\r\n /**\r\n * Load the given files\r\n * @param sources - the sources of the files to load\r\n * @param options - object, { index: 0 }\r\n */\r\n addFiles: addFiles,\r\n\r\n /**\r\n * Returns the file objects matching the given query\r\n * @param query { string, number, null }\r\n */\r\n getFile: getFile,\r\n\r\n /**\r\n * Upload file with given name\r\n * @param query { string, number, null }\r\n */\r\n processFile: processFile,\r\n\r\n /**\r\n * Request prepare output for file with given name\r\n * @param query { string, number, null }\r\n */\r\n prepareFile: prepareFile,\r\n\r\n /**\r\n * Removes a file by its name\r\n * @param query { string, number, null }\r\n */\r\n removeFile: removeFile,\r\n\r\n /**\r\n * Moves a file to a new location in the files list\r\n */\r\n moveFile: function moveFile(query, index) {\r\n return store.dispatch('MOVE_ITEM', { query: query, index: index });\r\n },\r\n\r\n /**\r\n * Returns all files (wrapped in public api)\r\n */\r\n getFiles: getFiles,\r\n\r\n /**\r\n * Starts uploading all files\r\n */\r\n processFiles: processFiles,\r\n\r\n /**\r\n * Clears all files from the files list\r\n */\r\n removeFiles: removeFiles,\r\n\r\n /**\r\n * Starts preparing output of all files\r\n */\r\n prepareFiles: prepareFiles,\r\n\r\n /**\r\n * Sort list of files\r\n */\r\n sort: function sort(compare) {\r\n return store.dispatch('SORT', { compare: compare });\r\n },\r\n\r\n /**\r\n * Browse the file system for a file\r\n */\r\n browse: function browse() {\r\n // needs to be trigger directly as user action needs to be traceable (is not traceable in requestAnimationFrame)\r\n var input = view.element.querySelector('input[type=file]');\r\n if (input) {\r\n input.click();\r\n }\r\n },\r\n\r\n /**\r\n * Destroys the app\r\n */\r\n destroy: function destroy() {\r\n // request destruction\r\n exports.fire('destroy', view.element);\r\n\r\n // stop active processes (file uploads, fetches, stuff like that)\r\n // loop over items and depending on states call abort for ongoing processes\r\n store.dispatch('ABORT_ALL');\r\n\r\n // destroy view\r\n view._destroy();\r\n\r\n // stop listening to resize\r\n window.removeEventListener('resize', resizeHandler);\r\n\r\n // stop listening to the visiblitychange event\r\n document.removeEventListener('visibilitychange', visibilityHandler);\r\n\r\n // dispatch destroy\r\n store.dispatch('DID_DESTROY');\r\n },\r\n\r\n /**\r\n * Inserts the plugin before the target element\r\n */\r\n insertBefore: function insertBefore$1(element) {\r\n return insertBefore(view.element, element);\r\n },\r\n\r\n /**\r\n * Inserts the plugin after the target element\r\n */\r\n insertAfter: function insertAfter$1(element) {\r\n return insertAfter(view.element, element);\r\n },\r\n\r\n /**\r\n * Appends the plugin to the target element\r\n */\r\n appendTo: function appendTo(element) {\r\n return element.appendChild(view.element);\r\n },\r\n\r\n /**\r\n * Replaces an element with the app\r\n */\r\n replaceElement: function replaceElement(element) {\r\n // insert the app before the element\r\n insertBefore(view.element, element);\r\n\r\n // remove the original element\r\n element.parentNode.removeChild(element);\r\n\r\n // remember original element\r\n originalElement = element;\r\n },\r\n\r\n /**\r\n * Restores the original element\r\n */\r\n restoreElement: function restoreElement() {\r\n if (!originalElement) {\r\n return; // no element to restore\r\n }\r\n\r\n // restore original element\r\n insertAfter(originalElement, view.element);\r\n\r\n // remove our element\r\n view.element.parentNode.removeChild(view.element);\r\n\r\n // remove reference\r\n originalElement = null;\r\n },\r\n\r\n /**\r\n * Returns true if the app root is attached to given element\r\n * @param element\r\n */\r\n isAttachedTo: function isAttachedTo(element) {\r\n return view.element === element || originalElement === element;\r\n },\r\n\r\n /**\r\n * Returns the root element\r\n */\r\n element: {\r\n get: function get() {\r\n return view.element;\r\n }\r\n },\r\n\r\n /**\r\n * Returns the current pond status\r\n */\r\n status: {\r\n get: function get() {\r\n return store.query('GET_STATUS');\r\n }\r\n }\r\n }\r\n );\r\n\r\n // Done!\r\n store.dispatch('DID_INIT');\r\n\r\n // create actual api object\r\n return createObject(exports);\r\n };\r\n\r\n var createAppObject = function createAppObject() {\r\n var customOptions =\r\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n // default options\r\n var defaultOptions = {};\r\n forin(getOptions(), function(key, value) {\r\n defaultOptions[key] = value[0];\r\n });\r\n\r\n // set app options\r\n var app = createApp(\r\n Object.assign(\r\n {},\r\n\r\n defaultOptions,\r\n {},\r\n\r\n customOptions\r\n )\r\n );\r\n\r\n // return the plugin instance\r\n return app;\r\n };\r\n\r\n var lowerCaseFirstLetter = function lowerCaseFirstLetter(string) {\r\n return string.charAt(0).toLowerCase() + string.slice(1);\r\n };\r\n\r\n var attributeNameToPropertyName = function attributeNameToPropertyName(\r\n attributeName\r\n ) {\r\n return toCamels(attributeName.replace(/^data-/, ''));\r\n };\r\n\r\n var mapObject = function mapObject(object, propertyMap) {\r\n // remove unwanted\r\n forin(propertyMap, function(selector, mapping) {\r\n forin(object, function(property, value) {\r\n // create regexp shortcut\r\n var selectorRegExp = new RegExp(selector);\r\n\r\n // tests if\r\n var matches = selectorRegExp.test(property);\r\n\r\n // no match, skip\r\n if (!matches) {\r\n return;\r\n }\r\n\r\n // if there's a mapping, the original property is always removed\r\n delete object[property];\r\n\r\n // should only remove, we done!\r\n if (mapping === false) {\r\n return;\r\n }\r\n\r\n // move value to new property\r\n if (isString(mapping)) {\r\n object[mapping] = value;\r\n return;\r\n }\r\n\r\n // move to group\r\n var group = mapping.group;\r\n if (isObject(mapping) && !object[group]) {\r\n object[group] = {};\r\n }\r\n\r\n object[group][\r\n lowerCaseFirstLetter(property.replace(selectorRegExp, ''))\r\n ] = value;\r\n });\r\n\r\n // do submapping\r\n if (mapping.mapping) {\r\n mapObject(object[mapping.group], mapping.mapping);\r\n }\r\n });\r\n };\r\n\r\n var getAttributesAsObject = function getAttributesAsObject(node) {\r\n var attributeMapping =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n // turn attributes into object\r\n var attributes = [];\r\n forin(node.attributes, function(index) {\r\n attributes.push(node.attributes[index]);\r\n });\r\n\r\n var output = attributes\r\n .filter(function(attribute) {\r\n return attribute.name;\r\n })\r\n .reduce(function(obj, attribute) {\r\n var value = attr(node, attribute.name);\r\n\r\n obj[attributeNameToPropertyName(attribute.name)] =\r\n value === attribute.name ? true : value;\r\n return obj;\r\n }, {});\r\n\r\n // do mapping of object properties\r\n mapObject(output, attributeMapping);\r\n\r\n return output;\r\n };\r\n\r\n var createAppAtElement = function createAppAtElement(element) {\r\n var options =\r\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n\r\n // how attributes of the input element are mapped to the options for the plugin\r\n var attributeMapping = {\r\n // translate to other name\r\n '^class$': 'className',\r\n '^multiple$': 'allowMultiple',\r\n '^capture$': 'captureMethod',\r\n '^webkitdirectory$': 'allowDirectoriesOnly',\r\n\r\n // group under single property\r\n '^server': {\r\n group: 'server',\r\n mapping: {\r\n '^process': {\r\n group: 'process'\r\n },\r\n\r\n '^revert': {\r\n group: 'revert'\r\n },\r\n\r\n '^fetch': {\r\n group: 'fetch'\r\n },\r\n\r\n '^restore': {\r\n group: 'restore'\r\n },\r\n\r\n '^load': {\r\n group: 'load'\r\n }\r\n }\r\n },\r\n\r\n // don't include in object\r\n '^type$': false,\r\n '^files$': false\r\n };\r\n\r\n // add additional option translators\r\n applyFilters('SET_ATTRIBUTE_TO_OPTION_MAP', attributeMapping);\r\n\r\n // create final options object by setting options object and then overriding options supplied on element\r\n var mergedOptions = Object.assign({}, options);\r\n\r\n var attributeOptions = getAttributesAsObject(\r\n element.nodeName === 'FIELDSET'\r\n ? element.querySelector('input[type=file]')\r\n : element,\r\n attributeMapping\r\n );\r\n\r\n // merge with options object\r\n Object.keys(attributeOptions).forEach(function(key) {\r\n if (isObject(attributeOptions[key])) {\r\n if (!isObject(mergedOptions[key])) {\r\n mergedOptions[key] = {};\r\n }\r\n Object.assign(mergedOptions[key], attributeOptions[key]);\r\n } else {\r\n mergedOptions[key] = attributeOptions[key];\r\n }\r\n });\r\n\r\n // if parent is a fieldset, get files from parent by selecting all input fields that are not file upload fields\r\n // these will then be automatically set to the initial files\r\n mergedOptions.files = (options.files || []).concat(\r\n Array.from(element.querySelectorAll('input:not([type=file])')).map(\r\n function(input) {\r\n return {\r\n source: input.value,\r\n options: {\r\n type: input.dataset.type\r\n }\r\n };\r\n }\r\n )\r\n );\r\n\r\n // build plugin\r\n var app = createAppObject(mergedOptions);\r\n\r\n // add already selected files\r\n if (element.files) {\r\n Array.from(element.files).forEach(function(file) {\r\n app.addFile(file);\r\n });\r\n }\r\n\r\n // replace the target element\r\n app.replaceElement(element);\r\n\r\n // expose\r\n return app;\r\n };\r\n\r\n // if an element is passed, we create the instance at that element, if not, we just create an up object\r\n var createApp$1 = function createApp() {\r\n return isNode(arguments.length <= 0 ? undefined : arguments[0])\r\n ? createAppAtElement.apply(void 0, arguments)\r\n : createAppObject.apply(void 0, arguments);\r\n };\r\n\r\n var PRIVATE_METHODS = ['fire', '_read', '_write'];\r\n\r\n var createAppAPI = function createAppAPI(app) {\r\n var api = {};\r\n\r\n copyObjectPropertiesToObject(app, api, PRIVATE_METHODS);\r\n\r\n return api;\r\n };\r\n\r\n /**\r\n * Replaces placeholders in given string with replacements\r\n * @param string - \"Foo {bar}\"\"\r\n * @param replacements - { \"bar\": 10 }\r\n */\r\n var replaceInString = function replaceInString(string, replacements) {\r\n return string.replace(/(?:{([a-zA-Z]+)})/g, function(match, group) {\r\n return replacements[group];\r\n });\r\n };\r\n\r\n var createWorker = function createWorker(fn) {\r\n var workerBlob = new Blob(['(', fn.toString(), ')()'], {\r\n type: 'application/javascript'\r\n });\r\n\r\n var workerURL = URL.createObjectURL(workerBlob);\r\n var worker = new Worker(workerURL);\r\n\r\n return {\r\n transfer: function transfer(message, cb) {},\r\n post: function post(message, cb, transferList) {\r\n var id = getUniqueId();\r\n\r\n worker.onmessage = function(e) {\r\n if (e.data.id === id) {\r\n cb(e.data.message);\r\n }\r\n };\r\n\r\n worker.postMessage(\r\n {\r\n id: id,\r\n message: message\r\n },\r\n\r\n transferList\r\n );\r\n },\r\n terminate: function terminate() {\r\n worker.terminate();\r\n URL.revokeObjectURL(workerURL);\r\n }\r\n };\r\n };\r\n\r\n var loadImage = function loadImage(url) {\r\n return new Promise(function(resolve, reject) {\r\n var img = new Image();\r\n img.onload = function() {\r\n resolve(img);\r\n };\r\n img.onerror = function(e) {\r\n reject(e);\r\n };\r\n img.src = url;\r\n });\r\n };\r\n\r\n var renameFile = function renameFile(file, name) {\r\n var renamedFile = file.slice(0, file.size, file.type);\r\n renamedFile.lastModifiedDate = file.lastModifiedDate;\r\n renamedFile.name = name;\r\n return renamedFile;\r\n };\r\n\r\n var copyFile = function copyFile(file) {\r\n return renameFile(file, file.name);\r\n };\r\n\r\n // already registered plugins (can't register twice)\r\n var registeredPlugins = [];\r\n\r\n // pass utils to plugin\r\n var createAppPlugin = function createAppPlugin(plugin) {\r\n // already registered\r\n if (registeredPlugins.includes(plugin)) {\r\n return;\r\n }\r\n\r\n // remember this plugin\r\n registeredPlugins.push(plugin);\r\n\r\n // setup!\r\n var pluginOutline = plugin({\r\n addFilter: addFilter,\r\n utils: {\r\n Type: Type,\r\n forin: forin,\r\n isString: isString,\r\n isFile: isFile,\r\n toNaturalFileSize: toNaturalFileSize,\r\n replaceInString: replaceInString,\r\n getExtensionFromFilename: getExtensionFromFilename,\r\n getFilenameWithoutExtension: getFilenameWithoutExtension,\r\n guesstimateMimeType: guesstimateMimeType,\r\n getFileFromBlob: getFileFromBlob,\r\n getFilenameFromURL: getFilenameFromURL,\r\n createRoute: createRoute,\r\n createWorker: createWorker,\r\n createView: createView,\r\n createItemAPI: createItemAPI,\r\n loadImage: loadImage,\r\n copyFile: copyFile,\r\n renameFile: renameFile,\r\n createBlob: createBlob,\r\n applyFilterChain: applyFilterChain,\r\n text: text,\r\n getNumericAspectRatioFromString: getNumericAspectRatioFromString\r\n },\r\n\r\n views: {\r\n fileActionButton: fileActionButton\r\n }\r\n });\r\n\r\n // add plugin options to default options\r\n extendDefaultOptions(pluginOutline.options);\r\n };\r\n\r\n // feature detection used by supported() method\r\n var isOperaMini = function isOperaMini() {\r\n return (\r\n Object.prototype.toString.call(window.operamini) === '[object OperaMini]'\r\n );\r\n };\r\n var hasPromises = function hasPromises() {\r\n return 'Promise' in window;\r\n };\r\n var hasBlobSlice = function hasBlobSlice() {\r\n return 'slice' in Blob.prototype;\r\n };\r\n var hasCreateObjectURL = function hasCreateObjectURL() {\r\n return 'URL' in window && 'createObjectURL' in window.URL;\r\n };\r\n var hasVisibility = function hasVisibility() {\r\n return 'visibilityState' in document;\r\n };\r\n var hasTiming = function hasTiming() {\r\n return 'performance' in window;\r\n }; // iOS 8.x\r\n var hasCSSSupports = function hasCSSSupports() {\r\n return 'supports' in (window.CSS || {});\r\n }; // use to detect Safari 9+\r\n var isIE11 = function isIE11() {\r\n return /MSIE|Trident/.test(window.navigator.userAgent);\r\n };\r\n\r\n var supported = (function() {\r\n // Runs immediately and then remembers result for subsequent calls\r\n var isSupported =\r\n // Has to be a browser\r\n isBrowser() &&\r\n // Can't run on Opera Mini due to lack of everything\r\n !isOperaMini() &&\r\n // Require these APIs to feature detect a modern browser\r\n hasVisibility() &&\r\n hasPromises() &&\r\n hasBlobSlice() &&\r\n hasCreateObjectURL() &&\r\n hasTiming() &&\r\n // doesn't need CSSSupports but is a good way to detect Safari 9+ (we do want to support IE11 though)\r\n (hasCSSSupports() || isIE11());\r\n\r\n return function() {\r\n return isSupported;\r\n };\r\n })();\r\n\r\n /**\r\n * Plugin internal state (over all instances)\r\n */\r\n var state = {\r\n // active app instances, used to redraw the apps and to find the later\r\n apps: []\r\n };\r\n\r\n // plugin name\r\n var name = 'filepond';\r\n\r\n /**\r\n * Public Plugin methods\r\n */\r\n var fn = function fn() {};\r\n exports.Status = {};\r\n exports.FileStatus = {};\r\n exports.FileOrigin = {};\r\n exports.OptionTypes = {};\r\n exports.create = fn;\r\n exports.destroy = fn;\r\n exports.parse = fn;\r\n exports.find = fn;\r\n exports.registerPlugin = fn;\r\n exports.getOptions = fn;\r\n exports.setOptions = fn;\r\n\r\n // if not supported, no API\r\n if (supported()) {\r\n // start painter and fire load event\r\n createPainter(\r\n function() {\r\n state.apps.forEach(function(app) {\r\n return app._read();\r\n });\r\n },\r\n function(ts) {\r\n state.apps.forEach(function(app) {\r\n return app._write(ts);\r\n });\r\n }\r\n );\r\n\r\n // fire loaded event so we know when FilePond is available\r\n var dispatch = function dispatch() {\r\n // let others know we have area ready\r\n document.dispatchEvent(\r\n new CustomEvent('FilePond:loaded', {\r\n detail: {\r\n supported: supported,\r\n create: exports.create,\r\n destroy: exports.destroy,\r\n parse: exports.parse,\r\n find: exports.find,\r\n registerPlugin: exports.registerPlugin,\r\n setOptions: exports.setOptions\r\n }\r\n })\r\n );\r\n\r\n // clean up event\r\n document.removeEventListener('DOMContentLoaded', dispatch);\r\n };\r\n\r\n if (document.readyState !== 'loading') {\r\n // move to back of execution queue, FilePond should have been exported by then\r\n setTimeout(function() {\r\n return dispatch();\r\n }, 0);\r\n } else {\r\n document.addEventListener('DOMContentLoaded', dispatch);\r\n }\r\n\r\n // updates the OptionTypes object based on the current options\r\n var updateOptionTypes = function updateOptionTypes() {\r\n return forin(getOptions(), function(key, value) {\r\n exports.OptionTypes[key] = value[1];\r\n });\r\n };\r\n\r\n exports.Status = Object.assign({}, Status);\r\n exports.FileOrigin = Object.assign({}, FileOrigin);\r\n exports.FileStatus = Object.assign({}, ItemStatus);\r\n\r\n exports.OptionTypes = {};\r\n updateOptionTypes();\r\n\r\n // create method, creates apps and adds them to the app array\r\n exports.create = function create() {\r\n var app = createApp$1.apply(void 0, arguments);\r\n app.on('destroy', exports.destroy);\r\n state.apps.push(app);\r\n return createAppAPI(app);\r\n };\r\n\r\n // destroys apps and removes them from the app array\r\n exports.destroy = function destroy(hook) {\r\n // returns true if the app was destroyed successfully\r\n var indexToRemove = state.apps.findIndex(function(app) {\r\n return app.isAttachedTo(hook);\r\n });\r\n if (indexToRemove >= 0) {\r\n // remove from apps\r\n var app = state.apps.splice(indexToRemove, 1)[0];\r\n\r\n // restore original dom element\r\n app.restoreElement();\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n // parses the given context for plugins (does not include the context element itself)\r\n exports.parse = function parse(context) {\r\n // get all possible hooks\r\n var matchedHooks = Array.from(context.querySelectorAll('.' + name));\r\n\r\n // filter out already active hooks\r\n var newHooks = matchedHooks.filter(function(newHook) {\r\n return !state.apps.find(function(app) {\r\n return app.isAttachedTo(newHook);\r\n });\r\n });\r\n\r\n // create new instance for each hook\r\n return newHooks.map(function(hook) {\r\n return exports.create(hook);\r\n });\r\n };\r\n\r\n // returns an app based on the given element hook\r\n exports.find = function find(hook) {\r\n var app = state.apps.find(function(app) {\r\n return app.isAttachedTo(hook);\r\n });\r\n if (!app) {\r\n return null;\r\n }\r\n return createAppAPI(app);\r\n };\r\n\r\n // adds a plugin extension\r\n exports.registerPlugin = function registerPlugin() {\r\n for (\r\n var _len = arguments.length, plugins = new Array(_len), _key = 0;\r\n _key < _len;\r\n _key++\r\n ) {\r\n plugins[_key] = arguments[_key];\r\n }\r\n\r\n // register plugins\r\n plugins.forEach(createAppPlugin);\r\n\r\n // update OptionTypes, each plugin might have extended the default options\r\n updateOptionTypes();\r\n };\r\n\r\n exports.getOptions = function getOptions$1() {\r\n var opts = {};\r\n forin(getOptions(), function(key, value) {\r\n opts[key] = value[0];\r\n });\r\n return opts;\r\n };\r\n\r\n exports.setOptions = function setOptions$1(opts) {\r\n if (isObject(opts)) {\r\n // update existing plugins\r\n state.apps.forEach(function(app) {\r\n app.setOptions(opts);\r\n });\r\n\r\n // override defaults\r\n setOptions(opts);\r\n }\r\n\r\n // return new options\r\n return exports.getOptions();\r\n };\r\n }\r\n\r\n exports.supported = supported;\r\n\r\n Object.defineProperty(exports, '__esModule', { value: true });\r\n});\n/*\r\n * jQuery FilePond 1.0.0\r\n * Licensed under MIT, https://opensource.org/licenses/MIT\r\n * Please visit https://pqina.nl/filepond for details.\r\n */\r\n(function ($, FilePond) {\r\n 'use strict';\r\n\r\n // No jQuery No Go\r\n if (!$ || !FilePond) {\r\n return;\r\n }\r\n\r\n // Test if FilePond is supported\r\n if (!FilePond.supported()) {\r\n // add stub\r\n $.fn.filepond = function () { };\r\n return;\r\n }\r\n\r\n // Helpers\r\n function argsToArray(args) {\r\n return Array.prototype.slice.call(args);\r\n }\r\n\r\n function isFactory(args) {\r\n return !args.length || typeof args[0] === 'object';\r\n }\r\n\r\n function isGetter(obj, key) {\r\n var descriptor = Object.getOwnPropertyDescriptor(obj, key);\r\n return descriptor ? typeof descriptor.get !== 'undefined' : false;\r\n }\r\n\r\n function isSetter(obj, key) {\r\n var descriptor = Object.getOwnPropertyDescriptor(obj, key);\r\n return descriptor ? typeof descriptor.set !== 'undefined' : false;\r\n }\r\n\r\n function isMethod(obj, key) {\r\n return typeof obj[key] === 'function';\r\n }\r\n\r\n // Setup plugin\r\n $.fn.filepond = function () {\r\n\r\n // get arguments as array\r\n var args = argsToArray(arguments);\r\n\r\n // method results array\r\n var results = [];\r\n\r\n // Execute for every item in the list\r\n var items = this.each(function () {\r\n\r\n // test if is create call\r\n if (isFactory(args)) {\r\n FilePond.create(this, args[0])\r\n return;\r\n }\r\n\r\n // get a reference to the pond instance based on the element\r\n var pond = FilePond.find(this);\r\n\r\n // if no pond found, exit here\r\n if (!pond) {\r\n return;\r\n }\r\n\r\n // get property name or method name\r\n var key = args[0];\r\n\r\n // get params to pass\r\n var params = args.concat().slice(1);\r\n\r\n // run method\r\n if (isMethod(pond, key)) {\r\n results.push(pond[key].apply(pond, params));\r\n return;\r\n }\r\n\r\n // set setter\r\n if (isSetter(pond, key) && params.length) {\r\n pond[key] = params[0];\r\n return;\r\n }\r\n\r\n // get getter\r\n if (isGetter(pond, key)) {\r\n results.push(pond[key]);\r\n return;\r\n }\r\n\r\n console.warn('$().filepond(\"' + key + '\") is an unknown property or method.');\r\n });\r\n\r\n // returns a jQuery object if no results returned\r\n return results.length ? this.length === 1 ? results[0] : results : items;\r\n };\r\n\r\n // Static API\r\n Object.keys(FilePond).forEach(function (key) {\r\n $.fn.filepond[key] = FilePond[key];\r\n });\r\n\r\n // Redirect setDefaults to setOptions\r\n $.fn.filepond.setDefaults = FilePond.setOptions;\r\n\r\n}(jQuery, FilePond));\n// Ion.RangeSlider\r\n// version 2.3.0 Build: 381\r\n// © Denis Ineshin, 2018\r\n// https://github.com/IonDen\r\n//\r\n// Project page: http://ionden.com/a/plugins/ion.rangeSlider/en.html\r\n// GitHub page: https://github.com/IonDen/ion.rangeSlider\r\n//\r\n// Released under MIT licence:\r\n// http://ionden.com/a/plugins/licence-en.html\r\n// =====================================================================================================================\r\n\r\n;(function(factory) {\r\n if (!jQuery && typeof define === \"function\" && define.amd) {\r\n define([\"jquery\"], function (jQuery) {\r\n return factory(jQuery, document, window, navigator);\r\n });\r\n } else if (!jQuery && typeof exports === \"object\") {\r\n factory(require(\"jquery\"), document, window, navigator);\r\n } else {\r\n factory(jQuery, document, window, navigator);\r\n }\r\n} (function ($, document, window, navigator, undefined) {\r\n \"use strict\";\r\n\r\n // =================================================================================================================\r\n // Service\r\n\r\n var plugin_count = 0;\r\n\r\n // IE8 fix\r\n var is_old_ie = (function () {\r\n var n = navigator.userAgent,\r\n r = /msie\\s\\d+/i,\r\n v;\r\n if (n.search(r) > 0) {\r\n v = r.exec(n).toString();\r\n v = v.split(\" \")[1];\r\n if (v < 9) {\r\n $(\"html\").addClass(\"lt-ie9\");\r\n return true;\r\n }\r\n }\r\n return false;\r\n } ());\r\n if (!Function.prototype.bind) {\r\n Function.prototype.bind = function bind(that) {\r\n\r\n var target = this;\r\n var slice = [].slice;\r\n\r\n if (typeof target != \"function\") {\r\n throw new TypeError();\r\n }\r\n\r\n var args = slice.call(arguments, 1),\r\n bound = function () {\r\n\r\n if (this instanceof bound) {\r\n\r\n var F = function(){};\r\n F.prototype = target.prototype;\r\n var self = new F();\r\n\r\n var result = target.apply(\r\n self,\r\n args.concat(slice.call(arguments))\r\n );\r\n if (Object(result) === result) {\r\n return result;\r\n }\r\n return self;\r\n\r\n } else {\r\n\r\n return target.apply(\r\n that,\r\n args.concat(slice.call(arguments))\r\n );\r\n\r\n }\r\n\r\n };\r\n\r\n return bound;\r\n };\r\n }\r\n if (!Array.prototype.indexOf) {\r\n Array.prototype.indexOf = function(searchElement, fromIndex) {\r\n var k;\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n var O = Object(this);\r\n var len = O.length >>> 0;\r\n if (len === 0) {\r\n return -1;\r\n }\r\n var n = +fromIndex || 0;\r\n if (Math.abs(n) === Infinity) {\r\n n = 0;\r\n }\r\n if (n >= len) {\r\n return -1;\r\n }\r\n k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\r\n while (k < len) {\r\n if (k in O && O[k] === searchElement) {\r\n return k;\r\n }\r\n k++;\r\n }\r\n return -1;\r\n };\r\n }\r\n\r\n\r\n\r\n // =================================================================================================================\r\n // Template\r\n\r\n var base_html =\r\n '' +\r\n '' +\r\n '01' +\r\n '000' +\r\n '' +\r\n '';\r\n\r\n var single_html =\r\n '' +\r\n '' +\r\n '';\r\n\r\n var double_html =\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '';\r\n\r\n var disable_html =\r\n '';\r\n\r\n\r\n\r\n // =================================================================================================================\r\n // Core\r\n\r\n /**\r\n * Main plugin constructor\r\n *\r\n * @param input {Object} link to base input element\r\n * @param options {Object} slider config\r\n * @param plugin_count {Number}\r\n * @constructor\r\n */\r\n var IonRangeSlider = function (input, options, plugin_count) {\r\n this.VERSION = \"2.3.0\";\r\n this.input = input;\r\n this.plugin_count = plugin_count;\r\n this.current_plugin = 0;\r\n this.calc_count = 0;\r\n this.update_tm = 0;\r\n this.old_from = 0;\r\n this.old_to = 0;\r\n this.old_min_interval = null;\r\n this.raf_id = null;\r\n this.dragging = false;\r\n this.force_redraw = false;\r\n this.no_diapason = false;\r\n this.has_tab_index = true;\r\n this.is_key = false;\r\n this.is_update = false;\r\n this.is_start = true;\r\n this.is_finish = false;\r\n this.is_active = false;\r\n this.is_resize = false;\r\n this.is_click = false;\r\n\r\n options = options || {};\r\n\r\n // cache for links to all DOM elements\r\n this.$cache = {\r\n win: $(window),\r\n body: $(document.body),\r\n input: $(input),\r\n cont: null,\r\n rs: null,\r\n min: null,\r\n max: null,\r\n from: null,\r\n to: null,\r\n single: null,\r\n bar: null,\r\n line: null,\r\n s_single: null,\r\n s_from: null,\r\n s_to: null,\r\n shad_single: null,\r\n shad_from: null,\r\n shad_to: null,\r\n edge: null,\r\n grid: null,\r\n grid_labels: []\r\n };\r\n\r\n // storage for measure variables\r\n this.coords = {\r\n // left\r\n x_gap: 0,\r\n x_pointer: 0,\r\n\r\n // width\r\n w_rs: 0,\r\n w_rs_old: 0,\r\n w_handle: 0,\r\n\r\n // percents\r\n p_gap: 0,\r\n p_gap_left: 0,\r\n p_gap_right: 0,\r\n p_step: 0,\r\n p_pointer: 0,\r\n p_handle: 0,\r\n p_single_fake: 0,\r\n p_single_real: 0,\r\n p_from_fake: 0,\r\n p_from_real: 0,\r\n p_to_fake: 0,\r\n p_to_real: 0,\r\n p_bar_x: 0,\r\n p_bar_w: 0,\r\n\r\n // grid\r\n grid_gap: 0,\r\n big_num: 0,\r\n big: [],\r\n big_w: [],\r\n big_p: [],\r\n big_x: []\r\n };\r\n\r\n // storage for labels measure variables\r\n this.labels = {\r\n // width\r\n w_min: 0,\r\n w_max: 0,\r\n w_from: 0,\r\n w_to: 0,\r\n w_single: 0,\r\n\r\n // percents\r\n p_min: 0,\r\n p_max: 0,\r\n p_from_fake: 0,\r\n p_from_left: 0,\r\n p_to_fake: 0,\r\n p_to_left: 0,\r\n p_single_fake: 0,\r\n p_single_left: 0\r\n };\r\n\r\n\r\n\r\n /**\r\n * get and validate config\r\n */\r\n var $inp = this.$cache.input,\r\n val = $inp.prop(\"value\"),\r\n config, config_from_data, prop;\r\n\r\n // default config\r\n config = {\r\n skin: \"flat\",\r\n type: \"single\",\r\n\r\n min: 10,\r\n max: 100,\r\n from: null,\r\n to: null,\r\n step: 1,\r\n\r\n min_interval: 0,\r\n max_interval: 0,\r\n drag_interval: false,\r\n\r\n values: [],\r\n p_values: [],\r\n\r\n from_fixed: false,\r\n from_min: null,\r\n from_max: null,\r\n from_shadow: false,\r\n\r\n to_fixed: false,\r\n to_min: null,\r\n to_max: null,\r\n to_shadow: false,\r\n\r\n prettify_enabled: true,\r\n prettify_separator: \" \",\r\n prettify: null,\r\n\r\n force_edges: false,\r\n\r\n keyboard: true,\r\n\r\n grid: false,\r\n grid_margin: true,\r\n grid_num: 4,\r\n grid_snap: false,\r\n\r\n hide_min_max: false,\r\n hide_from_to: false,\r\n\r\n prefix: \"\",\r\n postfix: \"\",\r\n max_postfix: \"\",\r\n decorate_both: true,\r\n values_separator: \" — \",\r\n\r\n input_values_separator: \";\",\r\n\r\n disable: false,\r\n block: false,\r\n\r\n extra_classes: \"\",\r\n\r\n scope: null,\r\n onStart: null,\r\n onChange: null,\r\n onFinish: null,\r\n onUpdate: null\r\n };\r\n\r\n\r\n // check if base element is input\r\n if ($inp[0].nodeName !== \"INPUT\") {\r\n console && console.warn && console.warn(\"Base element should be !\", $inp[0]);\r\n }\r\n\r\n\r\n // config from data-attributes extends js config\r\n config_from_data = {\r\n skin: $inp.data(\"skin\"),\r\n type: $inp.data(\"type\"),\r\n\r\n min: $inp.data(\"min\"),\r\n max: $inp.data(\"max\"),\r\n from: $inp.data(\"from\"),\r\n to: $inp.data(\"to\"),\r\n step: $inp.data(\"step\"),\r\n\r\n min_interval: $inp.data(\"minInterval\"),\r\n max_interval: $inp.data(\"maxInterval\"),\r\n drag_interval: $inp.data(\"dragInterval\"),\r\n\r\n values: $inp.data(\"values\"),\r\n\r\n from_fixed: $inp.data(\"fromFixed\"),\r\n from_min: $inp.data(\"fromMin\"),\r\n from_max: $inp.data(\"fromMax\"),\r\n from_shadow: $inp.data(\"fromShadow\"),\r\n\r\n to_fixed: $inp.data(\"toFixed\"),\r\n to_min: $inp.data(\"toMin\"),\r\n to_max: $inp.data(\"toMax\"),\r\n to_shadow: $inp.data(\"toShadow\"),\r\n\r\n prettify_enabled: $inp.data(\"prettifyEnabled\"),\r\n prettify_separator: $inp.data(\"prettifySeparator\"),\r\n\r\n force_edges: $inp.data(\"forceEdges\"),\r\n\r\n keyboard: $inp.data(\"keyboard\"),\r\n\r\n grid: $inp.data(\"grid\"),\r\n grid_margin: $inp.data(\"gridMargin\"),\r\n grid_num: $inp.data(\"gridNum\"),\r\n grid_snap: $inp.data(\"gridSnap\"),\r\n\r\n hide_min_max: $inp.data(\"hideMinMax\"),\r\n hide_from_to: $inp.data(\"hideFromTo\"),\r\n\r\n prefix: $inp.data(\"prefix\"),\r\n postfix: $inp.data(\"postfix\"),\r\n max_postfix: $inp.data(\"maxPostfix\"),\r\n decorate_both: $inp.data(\"decorateBoth\"),\r\n values_separator: $inp.data(\"valuesSeparator\"),\r\n\r\n input_values_separator: $inp.data(\"inputValuesSeparator\"),\r\n\r\n disable: $inp.data(\"disable\"),\r\n block: $inp.data(\"block\"),\r\n\r\n extra_classes: $inp.data(\"extraClasses\"),\r\n };\r\n config_from_data.values = config_from_data.values && config_from_data.values.split(\",\");\r\n\r\n for (prop in config_from_data) {\r\n if (config_from_data.hasOwnProperty(prop)) {\r\n if (config_from_data[prop] === undefined || config_from_data[prop] === \"\") {\r\n delete config_from_data[prop];\r\n }\r\n }\r\n }\r\n\r\n\r\n // input value extends default config\r\n if (val !== undefined && val !== \"\") {\r\n val = val.split(config_from_data.input_values_separator || options.input_values_separator || \";\");\r\n\r\n if (val[0] && val[0] == +val[0]) {\r\n val[0] = +val[0];\r\n }\r\n if (val[1] && val[1] == +val[1]) {\r\n val[1] = +val[1];\r\n }\r\n\r\n if (options && options.values && options.values.length) {\r\n config.from = val[0] && options.values.indexOf(val[0]);\r\n config.to = val[1] && options.values.indexOf(val[1]);\r\n } else {\r\n config.from = val[0] && +val[0];\r\n config.to = val[1] && +val[1];\r\n }\r\n }\r\n\r\n\r\n\r\n // js config extends default config\r\n $.extend(config, options);\r\n\r\n\r\n // data config extends config\r\n $.extend(config, config_from_data);\r\n this.options = config;\r\n\r\n\r\n\r\n // validate config, to be sure that all data types are correct\r\n this.update_check = {};\r\n this.validate();\r\n\r\n\r\n\r\n // default result object, returned to callbacks\r\n this.result = {\r\n input: this.$cache.input,\r\n slider: null,\r\n\r\n min: this.options.min,\r\n max: this.options.max,\r\n\r\n from: this.options.from,\r\n from_percent: 0,\r\n from_value: null,\r\n\r\n to: this.options.to,\r\n to_percent: 0,\r\n to_value: null\r\n };\r\n\r\n\r\n\r\n this.init();\r\n };\r\n\r\n IonRangeSlider.prototype = {\r\n\r\n /**\r\n * Starts or updates the plugin instance\r\n *\r\n * @param [is_update] {boolean}\r\n */\r\n init: function (is_update) {\r\n this.no_diapason = false;\r\n this.coords.p_step = this.convertToPercent(this.options.step, true);\r\n\r\n this.target = \"base\";\r\n\r\n this.toggleInput();\r\n this.append();\r\n this.setMinMax();\r\n\r\n if (is_update) {\r\n this.force_redraw = true;\r\n this.calc(true);\r\n\r\n // callbacks called\r\n this.callOnUpdate();\r\n } else {\r\n this.force_redraw = true;\r\n this.calc(true);\r\n\r\n // callbacks called\r\n this.callOnStart();\r\n }\r\n\r\n this.updateScene();\r\n },\r\n\r\n /**\r\n * Appends slider template to a DOM\r\n */\r\n append: function () {\r\n var container_html = '';\r\n this.$cache.input.before(container_html);\r\n this.$cache.input.prop(\"readonly\", true);\r\n this.$cache.cont = this.$cache.input.prev();\r\n this.result.slider = this.$cache.cont;\r\n\r\n this.$cache.cont.html(base_html);\r\n this.$cache.rs = this.$cache.cont.find(\".irs\");\r\n this.$cache.min = this.$cache.cont.find(\".irs-min\");\r\n this.$cache.max = this.$cache.cont.find(\".irs-max\");\r\n this.$cache.from = this.$cache.cont.find(\".irs-from\");\r\n this.$cache.to = this.$cache.cont.find(\".irs-to\");\r\n this.$cache.single = this.$cache.cont.find(\".irs-single\");\r\n this.$cache.line = this.$cache.cont.find(\".irs-line\");\r\n this.$cache.grid = this.$cache.cont.find(\".irs-grid\");\r\n\r\n if (this.options.type === \"single\") {\r\n this.$cache.cont.append(single_html);\r\n this.$cache.bar = this.$cache.cont.find(\".irs-bar\");\r\n this.$cache.edge = this.$cache.cont.find(\".irs-bar-edge\");\r\n this.$cache.s_single = this.$cache.cont.find(\".single\");\r\n this.$cache.from[0].style.visibility = \"hidden\";\r\n this.$cache.to[0].style.visibility = \"hidden\";\r\n this.$cache.shad_single = this.$cache.cont.find(\".shadow-single\");\r\n } else {\r\n this.$cache.cont.append(double_html);\r\n this.$cache.bar = this.$cache.cont.find(\".irs-bar\");\r\n this.$cache.s_from = this.$cache.cont.find(\".from\");\r\n this.$cache.s_to = this.$cache.cont.find(\".to\");\r\n this.$cache.shad_from = this.$cache.cont.find(\".shadow-from\");\r\n this.$cache.shad_to = this.$cache.cont.find(\".shadow-to\");\r\n\r\n this.setTopHandler();\r\n }\r\n\r\n if (this.options.hide_from_to) {\r\n this.$cache.from[0].style.display = \"none\";\r\n this.$cache.to[0].style.display = \"none\";\r\n this.$cache.single[0].style.display = \"none\";\r\n }\r\n\r\n this.appendGrid();\r\n\r\n if (this.options.disable) {\r\n this.appendDisableMask();\r\n this.$cache.input[0].disabled = true;\r\n } else {\r\n this.$cache.input[0].disabled = false;\r\n this.removeDisableMask();\r\n this.bindEvents();\r\n }\r\n\r\n // block only if not disabled\r\n if (!this.options.disable) {\r\n if (this.options.block) {\r\n this.appendDisableMask();\r\n } else {\r\n this.removeDisableMask();\r\n }\r\n }\r\n\r\n if (this.options.drag_interval) {\r\n this.$cache.bar[0].style.cursor = \"ew-resize\";\r\n }\r\n },\r\n\r\n /**\r\n * Determine which handler has a priority\r\n * works only for double slider type\r\n */\r\n setTopHandler: function () {\r\n var min = this.options.min,\r\n max = this.options.max,\r\n from = this.options.from,\r\n to = this.options.to;\r\n\r\n if (from > min && to === max) {\r\n this.$cache.s_from.addClass(\"type_last\");\r\n } else if (to < max) {\r\n this.$cache.s_to.addClass(\"type_last\");\r\n }\r\n },\r\n\r\n /**\r\n * Determine which handles was clicked last\r\n * and which handler should have hover effect\r\n *\r\n * @param target {String}\r\n */\r\n changeLevel: function (target) {\r\n switch (target) {\r\n case \"single\":\r\n this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_single_fake);\r\n this.$cache.s_single.addClass(\"state_hover\");\r\n break;\r\n case \"from\":\r\n this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake);\r\n this.$cache.s_from.addClass(\"state_hover\");\r\n this.$cache.s_from.addClass(\"type_last\");\r\n this.$cache.s_to.removeClass(\"type_last\");\r\n break;\r\n case \"to\":\r\n this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_to_fake);\r\n this.$cache.s_to.addClass(\"state_hover\");\r\n this.$cache.s_to.addClass(\"type_last\");\r\n this.$cache.s_from.removeClass(\"type_last\");\r\n break;\r\n case \"both\":\r\n this.coords.p_gap_left = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake);\r\n this.coords.p_gap_right = this.toFixed(this.coords.p_to_fake - this.coords.p_pointer);\r\n this.$cache.s_to.removeClass(\"type_last\");\r\n this.$cache.s_from.removeClass(\"type_last\");\r\n break;\r\n }\r\n },\r\n\r\n /**\r\n * Then slider is disabled\r\n * appends extra layer with opacity\r\n */\r\n appendDisableMask: function () {\r\n this.$cache.cont.append(disable_html);\r\n this.$cache.cont.addClass(\"irs-disabled\");\r\n },\r\n\r\n /**\r\n * Then slider is not disabled\r\n * remove disable mask\r\n */\r\n removeDisableMask: function () {\r\n this.$cache.cont.remove(\".irs-disable-mask\");\r\n this.$cache.cont.removeClass(\"irs-disabled\");\r\n },\r\n\r\n /**\r\n * Remove slider instance\r\n * and unbind all events\r\n */\r\n remove: function () {\r\n this.$cache.cont.remove();\r\n this.$cache.cont = null;\r\n\r\n this.$cache.line.off(\"keydown.irs_\" + this.plugin_count);\r\n\r\n this.$cache.body.off(\"touchmove.irs_\" + this.plugin_count);\r\n this.$cache.body.off(\"mousemove.irs_\" + this.plugin_count);\r\n\r\n this.$cache.win.off(\"touchend.irs_\" + this.plugin_count);\r\n this.$cache.win.off(\"mouseup.irs_\" + this.plugin_count);\r\n\r\n if (is_old_ie) {\r\n this.$cache.body.off(\"mouseup.irs_\" + this.plugin_count);\r\n this.$cache.body.off(\"mouseleave.irs_\" + this.plugin_count);\r\n }\r\n\r\n this.$cache.grid_labels = [];\r\n this.coords.big = [];\r\n this.coords.big_w = [];\r\n this.coords.big_p = [];\r\n this.coords.big_x = [];\r\n\r\n cancelAnimationFrame(this.raf_id);\r\n },\r\n\r\n /**\r\n * bind all slider events\r\n */\r\n bindEvents: function () {\r\n if (this.no_diapason) {\r\n return;\r\n }\r\n\r\n this.$cache.body.on(\"touchmove.irs_\" + this.plugin_count, this.pointerMove.bind(this));\r\n this.$cache.body.on(\"mousemove.irs_\" + this.plugin_count, this.pointerMove.bind(this));\r\n\r\n this.$cache.win.on(\"touchend.irs_\" + this.plugin_count, this.pointerUp.bind(this));\r\n this.$cache.win.on(\"mouseup.irs_\" + this.plugin_count, this.pointerUp.bind(this));\r\n\r\n this.$cache.line.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\r\n this.$cache.line.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\r\n\r\n this.$cache.line.on(\"focus.irs_\" + this.plugin_count, this.pointerFocus.bind(this));\r\n\r\n if (this.options.drag_interval && this.options.type === \"double\") {\r\n this.$cache.bar.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"both\"));\r\n this.$cache.bar.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"both\"));\r\n } else {\r\n this.$cache.bar.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\r\n this.$cache.bar.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\r\n }\r\n\r\n if (this.options.type === \"single\") {\r\n this.$cache.single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\r\n this.$cache.s_single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\r\n this.$cache.shad_single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\r\n\r\n this.$cache.single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\r\n this.$cache.s_single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\r\n this.$cache.edge.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\r\n this.$cache.shad_single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\r\n } else {\r\n this.$cache.single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, null));\r\n this.$cache.single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, null));\r\n\r\n this.$cache.from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\r\n this.$cache.s_from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\r\n this.$cache.to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\r\n this.$cache.s_to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\r\n this.$cache.shad_from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\r\n this.$cache.shad_to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\r\n\r\n this.$cache.from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\r\n this.$cache.s_from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\r\n this.$cache.to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\r\n this.$cache.s_to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\r\n this.$cache.shad_from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\r\n this.$cache.shad_to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\r\n }\r\n\r\n if (this.options.keyboard) {\r\n this.$cache.line.on(\"keydown.irs_\" + this.plugin_count, this.key.bind(this, \"keyboard\"));\r\n }\r\n\r\n if (is_old_ie) {\r\n this.$cache.body.on(\"mouseup.irs_\" + this.plugin_count, this.pointerUp.bind(this));\r\n this.$cache.body.on(\"mouseleave.irs_\" + this.plugin_count, this.pointerUp.bind(this));\r\n }\r\n },\r\n\r\n /**\r\n * Focus with tabIndex\r\n *\r\n * @param e {Object} event object\r\n */\r\n pointerFocus: function (e) {\r\n if (!this.target) {\r\n var x;\r\n var $handle;\r\n\r\n if (this.options.type === \"single\") {\r\n $handle = this.$cache.single;\r\n } else {\r\n $handle = this.$cache.from;\r\n }\r\n\r\n x = $handle.offset().left;\r\n x += ($handle.width() / 2) - 1;\r\n\r\n this.pointerClick(\"single\", {preventDefault: function () {}, pageX: x});\r\n }\r\n },\r\n\r\n /**\r\n * Mousemove or touchmove\r\n * only for handlers\r\n *\r\n * @param e {Object} event object\r\n */\r\n pointerMove: function (e) {\r\n if (!this.dragging) {\r\n return;\r\n }\r\n\r\n var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;\r\n this.coords.x_pointer = x - this.coords.x_gap;\r\n\r\n this.calc();\r\n },\r\n\r\n /**\r\n * Mouseup or touchend\r\n * only for handlers\r\n *\r\n * @param e {Object} event object\r\n */\r\n pointerUp: function (e) {\r\n if (this.current_plugin !== this.plugin_count) {\r\n return;\r\n }\r\n\r\n if (this.is_active) {\r\n this.is_active = false;\r\n } else {\r\n return;\r\n }\r\n\r\n this.$cache.cont.find(\".state_hover\").removeClass(\"state_hover\");\r\n\r\n this.force_redraw = true;\r\n\r\n if (is_old_ie) {\r\n $(\"*\").prop(\"unselectable\", false);\r\n }\r\n\r\n this.updateScene();\r\n this.restoreOriginalMinInterval();\r\n\r\n // callbacks call\r\n if ($.contains(this.$cache.cont[0], e.target) || this.dragging) {\r\n this.callOnFinish();\r\n }\r\n \r\n this.dragging = false;\r\n },\r\n\r\n /**\r\n * Mousedown or touchstart\r\n * only for handlers\r\n *\r\n * @param target {String|null}\r\n * @param e {Object} event object\r\n */\r\n pointerDown: function (target, e) {\r\n e.preventDefault();\r\n var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;\r\n if (e.button === 2) {\r\n return;\r\n }\r\n\r\n if (target === \"both\") {\r\n this.setTempMinInterval();\r\n }\r\n\r\n if (!target) {\r\n target = this.target || \"from\";\r\n }\r\n\r\n this.current_plugin = this.plugin_count;\r\n this.target = target;\r\n\r\n this.is_active = true;\r\n this.dragging = true;\r\n\r\n this.coords.x_gap = this.$cache.rs.offset().left;\r\n this.coords.x_pointer = x - this.coords.x_gap;\r\n\r\n this.calcPointerPercent();\r\n this.changeLevel(target);\r\n\r\n if (is_old_ie) {\r\n $(\"*\").prop(\"unselectable\", true);\r\n }\r\n\r\n this.$cache.line.trigger(\"focus\");\r\n\r\n this.updateScene();\r\n },\r\n\r\n /**\r\n * Mousedown or touchstart\r\n * for other slider elements, like diapason line\r\n *\r\n * @param target {String}\r\n * @param e {Object} event object\r\n */\r\n pointerClick: function (target, e) {\r\n e.preventDefault();\r\n var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;\r\n if (e.button === 2) {\r\n return;\r\n }\r\n\r\n this.current_plugin = this.plugin_count;\r\n this.target = target;\r\n\r\n this.is_click = true;\r\n this.coords.x_gap = this.$cache.rs.offset().left;\r\n this.coords.x_pointer = +(x - this.coords.x_gap).toFixed();\r\n\r\n this.force_redraw = true;\r\n this.calc();\r\n\r\n this.$cache.line.trigger(\"focus\");\r\n },\r\n\r\n /**\r\n * Keyborard controls for focused slider\r\n *\r\n * @param target {String}\r\n * @param e {Object} event object\r\n * @returns {boolean|undefined}\r\n */\r\n key: function (target, e) {\r\n if (this.current_plugin !== this.plugin_count || e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {\r\n return;\r\n }\r\n\r\n switch (e.which) {\r\n case 83: // W\r\n case 65: // A\r\n case 40: // DOWN\r\n case 37: // LEFT\r\n e.preventDefault();\r\n this.moveByKey(false);\r\n break;\r\n\r\n case 87: // S\r\n case 68: // D\r\n case 38: // UP\r\n case 39: // RIGHT\r\n e.preventDefault();\r\n this.moveByKey(true);\r\n break;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n /**\r\n * Move by key\r\n *\r\n * @param right {boolean} direction to move\r\n */\r\n moveByKey: function (right) {\r\n var p = this.coords.p_pointer;\r\n var p_step = (this.options.max - this.options.min) / 100;\r\n p_step = this.options.step / p_step;\r\n\r\n if (right) {\r\n p += p_step;\r\n } else {\r\n p -= p_step;\r\n }\r\n\r\n this.coords.x_pointer = this.toFixed(this.coords.w_rs / 100 * p);\r\n this.is_key = true;\r\n this.calc();\r\n },\r\n\r\n /**\r\n * Set visibility and content\r\n * of Min and Max labels\r\n */\r\n setMinMax: function () {\r\n if (!this.options) {\r\n return;\r\n }\r\n\r\n if (this.options.hide_min_max) {\r\n this.$cache.min[0].style.display = \"none\";\r\n this.$cache.max[0].style.display = \"none\";\r\n return;\r\n }\r\n\r\n if (this.options.values.length) {\r\n this.$cache.min.html(this.decorate(this.options.p_values[this.options.min]));\r\n this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]));\r\n } else {\r\n var min_pretty = this._prettify(this.options.min);\r\n var max_pretty = this._prettify(this.options.max);\r\n\r\n this.result.min_pretty = min_pretty;\r\n this.result.max_pretty = max_pretty;\r\n\r\n this.$cache.min.html(this.decorate(min_pretty, this.options.min));\r\n this.$cache.max.html(this.decorate(max_pretty, this.options.max));\r\n }\r\n\r\n this.labels.w_min = this.$cache.min.outerWidth(false);\r\n this.labels.w_max = this.$cache.max.outerWidth(false);\r\n },\r\n\r\n /**\r\n * Then dragging interval, prevent interval collapsing\r\n * using min_interval option\r\n */\r\n setTempMinInterval: function () {\r\n var interval = this.result.to - this.result.from;\r\n\r\n if (this.old_min_interval === null) {\r\n this.old_min_interval = this.options.min_interval;\r\n }\r\n\r\n this.options.min_interval = interval;\r\n },\r\n\r\n /**\r\n * Restore min_interval option to original\r\n */\r\n restoreOriginalMinInterval: function () {\r\n if (this.old_min_interval !== null) {\r\n this.options.min_interval = this.old_min_interval;\r\n this.old_min_interval = null;\r\n }\r\n },\r\n\r\n\r\n\r\n // =============================================================================================================\r\n // Calculations\r\n\r\n /**\r\n * All calculations and measures start here\r\n *\r\n * @param update {boolean=}\r\n */\r\n calc: function (update) {\r\n if (!this.options) {\r\n return;\r\n }\r\n\r\n this.calc_count++;\r\n\r\n if (this.calc_count === 10 || update) {\r\n this.calc_count = 0;\r\n this.coords.w_rs = this.$cache.rs.outerWidth(false);\r\n\r\n this.calcHandlePercent();\r\n }\r\n\r\n if (!this.coords.w_rs) {\r\n return;\r\n }\r\n\r\n this.calcPointerPercent();\r\n var handle_x = this.getHandleX();\r\n\r\n\r\n if (this.target === \"both\") {\r\n this.coords.p_gap = 0;\r\n handle_x = this.getHandleX();\r\n }\r\n\r\n if (this.target === \"click\") {\r\n this.coords.p_gap = this.coords.p_handle / 2;\r\n handle_x = this.getHandleX();\r\n\r\n if (this.options.drag_interval) {\r\n this.target = \"both_one\";\r\n } else {\r\n this.target = this.chooseHandle(handle_x);\r\n }\r\n }\r\n\r\n switch (this.target) {\r\n case \"base\":\r\n var w = (this.options.max - this.options.min) / 100,\r\n f = (this.result.from - this.options.min) / w,\r\n t = (this.result.to - this.options.min) / w;\r\n\r\n this.coords.p_single_real = this.toFixed(f);\r\n this.coords.p_from_real = this.toFixed(f);\r\n this.coords.p_to_real = this.toFixed(t);\r\n\r\n this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);\r\n this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\r\n this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\r\n\r\n this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);\r\n this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\r\n this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\r\n\r\n this.target = null;\r\n\r\n break;\r\n\r\n case \"single\":\r\n if (this.options.from_fixed) {\r\n break;\r\n }\r\n\r\n this.coords.p_single_real = this.convertToRealPercent(handle_x);\r\n this.coords.p_single_real = this.calcWithStep(this.coords.p_single_real);\r\n this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);\r\n\r\n this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);\r\n\r\n break;\r\n\r\n case \"from\":\r\n if (this.options.from_fixed) {\r\n break;\r\n }\r\n\r\n this.coords.p_from_real = this.convertToRealPercent(handle_x);\r\n this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);\r\n if (this.coords.p_from_real > this.coords.p_to_real) {\r\n this.coords.p_from_real = this.coords.p_to_real;\r\n }\r\n this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\r\n this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\");\r\n this.coords.p_from_real = this.checkMaxInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\");\r\n\r\n this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\r\n\r\n break;\r\n\r\n case \"to\":\r\n if (this.options.to_fixed) {\r\n break;\r\n }\r\n\r\n this.coords.p_to_real = this.convertToRealPercent(handle_x);\r\n this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);\r\n if (this.coords.p_to_real < this.coords.p_from_real) {\r\n this.coords.p_to_real = this.coords.p_from_real;\r\n }\r\n this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\r\n this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\");\r\n this.coords.p_to_real = this.checkMaxInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\");\r\n\r\n this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\r\n\r\n break;\r\n\r\n case \"both\":\r\n if (this.options.from_fixed || this.options.to_fixed) {\r\n break;\r\n }\r\n\r\n handle_x = this.toFixed(handle_x + (this.coords.p_handle * 0.001));\r\n\r\n this.coords.p_from_real = this.convertToRealPercent(handle_x) - this.coords.p_gap_left;\r\n this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);\r\n this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\r\n this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\");\r\n this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\r\n\r\n this.coords.p_to_real = this.convertToRealPercent(handle_x) + this.coords.p_gap_right;\r\n this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);\r\n this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\r\n this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\");\r\n this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\r\n\r\n break;\r\n\r\n case \"both_one\":\r\n if (this.options.from_fixed || this.options.to_fixed) {\r\n break;\r\n }\r\n\r\n var real_x = this.convertToRealPercent(handle_x),\r\n from = this.result.from_percent,\r\n to = this.result.to_percent,\r\n full = to - from,\r\n half = full / 2,\r\n new_from = real_x - half,\r\n new_to = real_x + half;\r\n\r\n if (new_from < 0) {\r\n new_from = 0;\r\n new_to = new_from + full;\r\n }\r\n\r\n if (new_to > 100) {\r\n new_to = 100;\r\n new_from = new_to - full;\r\n }\r\n\r\n this.coords.p_from_real = this.calcWithStep(new_from);\r\n this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\r\n this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\r\n\r\n this.coords.p_to_real = this.calcWithStep(new_to);\r\n this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\r\n this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\r\n\r\n break;\r\n }\r\n\r\n if (this.options.type === \"single\") {\r\n this.coords.p_bar_x = (this.coords.p_handle / 2);\r\n this.coords.p_bar_w = this.coords.p_single_fake;\r\n\r\n this.result.from_percent = this.coords.p_single_real;\r\n this.result.from = this.convertToValue(this.coords.p_single_real);\r\n this.result.from_pretty = this._prettify(this.result.from);\r\n\r\n if (this.options.values.length) {\r\n this.result.from_value = this.options.values[this.result.from];\r\n }\r\n } else {\r\n this.coords.p_bar_x = this.toFixed(this.coords.p_from_fake + (this.coords.p_handle / 2));\r\n this.coords.p_bar_w = this.toFixed(this.coords.p_to_fake - this.coords.p_from_fake);\r\n\r\n this.result.from_percent = this.coords.p_from_real;\r\n this.result.from = this.convertToValue(this.coords.p_from_real);\r\n this.result.from_pretty = this._prettify(this.result.from);\r\n this.result.to_percent = this.coords.p_to_real;\r\n this.result.to = this.convertToValue(this.coords.p_to_real);\r\n this.result.to_pretty = this._prettify(this.result.to);\r\n\r\n if (this.options.values.length) {\r\n this.result.from_value = this.options.values[this.result.from];\r\n this.result.to_value = this.options.values[this.result.to];\r\n }\r\n }\r\n\r\n this.calcMinMax();\r\n this.calcLabels();\r\n },\r\n\r\n\r\n /**\r\n * calculates pointer X in percent\r\n */\r\n calcPointerPercent: function () {\r\n if (!this.coords.w_rs) {\r\n this.coords.p_pointer = 0;\r\n return;\r\n }\r\n\r\n if (this.coords.x_pointer < 0 || isNaN(this.coords.x_pointer) ) {\r\n this.coords.x_pointer = 0;\r\n } else if (this.coords.x_pointer > this.coords.w_rs) {\r\n this.coords.x_pointer = this.coords.w_rs;\r\n }\r\n\r\n this.coords.p_pointer = this.toFixed(this.coords.x_pointer / this.coords.w_rs * 100);\r\n },\r\n\r\n convertToRealPercent: function (fake) {\r\n var full = 100 - this.coords.p_handle;\r\n return fake / full * 100;\r\n },\r\n\r\n convertToFakePercent: function (real) {\r\n var full = 100 - this.coords.p_handle;\r\n return real / 100 * full;\r\n },\r\n\r\n getHandleX: function () {\r\n var max = 100 - this.coords.p_handle,\r\n x = this.toFixed(this.coords.p_pointer - this.coords.p_gap);\r\n\r\n if (x < 0) {\r\n x = 0;\r\n } else if (x > max) {\r\n x = max;\r\n }\r\n\r\n return x;\r\n },\r\n\r\n calcHandlePercent: function () {\r\n if (this.options.type === \"single\") {\r\n this.coords.w_handle = this.$cache.s_single.outerWidth(false);\r\n } else {\r\n this.coords.w_handle = this.$cache.s_from.outerWidth(false);\r\n }\r\n\r\n this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100);\r\n },\r\n\r\n /**\r\n * Find closest handle to pointer click\r\n *\r\n * @param real_x {Number}\r\n * @returns {String}\r\n */\r\n chooseHandle: function (real_x) {\r\n if (this.options.type === \"single\") {\r\n return \"single\";\r\n } else {\r\n var m_point = this.coords.p_from_real + ((this.coords.p_to_real - this.coords.p_from_real) / 2);\r\n if (real_x >= m_point) {\r\n return this.options.to_fixed ? \"from\" : \"to\";\r\n } else {\r\n return this.options.from_fixed ? \"to\" : \"from\";\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Measure Min and Max labels width in percent\r\n */\r\n calcMinMax: function () {\r\n if (!this.coords.w_rs) {\r\n return;\r\n }\r\n\r\n this.labels.p_min = this.labels.w_min / this.coords.w_rs * 100;\r\n this.labels.p_max = this.labels.w_max / this.coords.w_rs * 100;\r\n },\r\n\r\n /**\r\n * Measure labels width and X in percent\r\n */\r\n calcLabels: function () {\r\n if (!this.coords.w_rs || this.options.hide_from_to) {\r\n return;\r\n }\r\n\r\n if (this.options.type === \"single\") {\r\n\r\n this.labels.w_single = this.$cache.single.outerWidth(false);\r\n this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100;\r\n this.labels.p_single_left = this.coords.p_single_fake + (this.coords.p_handle / 2) - (this.labels.p_single_fake / 2);\r\n this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake);\r\n\r\n } else {\r\n\r\n this.labels.w_from = this.$cache.from.outerWidth(false);\r\n this.labels.p_from_fake = this.labels.w_from / this.coords.w_rs * 100;\r\n this.labels.p_from_left = this.coords.p_from_fake + (this.coords.p_handle / 2) - (this.labels.p_from_fake / 2);\r\n this.labels.p_from_left = this.toFixed(this.labels.p_from_left);\r\n this.labels.p_from_left = this.checkEdges(this.labels.p_from_left, this.labels.p_from_fake);\r\n\r\n this.labels.w_to = this.$cache.to.outerWidth(false);\r\n this.labels.p_to_fake = this.labels.w_to / this.coords.w_rs * 100;\r\n this.labels.p_to_left = this.coords.p_to_fake + (this.coords.p_handle / 2) - (this.labels.p_to_fake / 2);\r\n this.labels.p_to_left = this.toFixed(this.labels.p_to_left);\r\n this.labels.p_to_left = this.checkEdges(this.labels.p_to_left, this.labels.p_to_fake);\r\n\r\n this.labels.w_single = this.$cache.single.outerWidth(false);\r\n this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100;\r\n this.labels.p_single_left = ((this.labels.p_from_left + this.labels.p_to_left + this.labels.p_to_fake) / 2) - (this.labels.p_single_fake / 2);\r\n this.labels.p_single_left = this.toFixed(this.labels.p_single_left);\r\n this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake);\r\n\r\n }\r\n },\r\n\r\n\r\n\r\n // =============================================================================================================\r\n // Drawings\r\n\r\n /**\r\n * Main function called in request animation frame\r\n * to update everything\r\n */\r\n updateScene: function () {\r\n if (this.raf_id) {\r\n cancelAnimationFrame(this.raf_id);\r\n this.raf_id = null;\r\n }\r\n\r\n clearTimeout(this.update_tm);\r\n this.update_tm = null;\r\n\r\n if (!this.options) {\r\n return;\r\n }\r\n\r\n this.drawHandles();\r\n\r\n if (this.is_active) {\r\n this.raf_id = requestAnimationFrame(this.updateScene.bind(this));\r\n } else {\r\n this.update_tm = setTimeout(this.updateScene.bind(this), 300);\r\n }\r\n },\r\n\r\n /**\r\n * Draw handles\r\n */\r\n drawHandles: function () {\r\n this.coords.w_rs = this.$cache.rs.outerWidth(false);\r\n\r\n if (!this.coords.w_rs) {\r\n return;\r\n }\r\n\r\n if (this.coords.w_rs !== this.coords.w_rs_old) {\r\n this.target = \"base\";\r\n this.is_resize = true;\r\n }\r\n\r\n if (this.coords.w_rs !== this.coords.w_rs_old || this.force_redraw) {\r\n this.setMinMax();\r\n this.calc(true);\r\n this.drawLabels();\r\n if (this.options.grid) {\r\n this.calcGridMargin();\r\n this.calcGridLabels();\r\n }\r\n this.force_redraw = true;\r\n this.coords.w_rs_old = this.coords.w_rs;\r\n this.drawShadow();\r\n }\r\n\r\n if (!this.coords.w_rs) {\r\n return;\r\n }\r\n\r\n if (!this.dragging && !this.force_redraw && !this.is_key) {\r\n return;\r\n }\r\n\r\n if (this.old_from !== this.result.from || this.old_to !== this.result.to || this.force_redraw || this.is_key) {\r\n\r\n this.drawLabels();\r\n\r\n this.$cache.bar[0].style.left = this.coords.p_bar_x + \"%\";\r\n this.$cache.bar[0].style.width = this.coords.p_bar_w + \"%\";\r\n\r\n if (this.options.type === \"single\") {\r\n this.$cache.bar[0].style.left = 0;\r\n this.$cache.bar[0].style.width = this.coords.p_bar_w + this.coords.p_bar_x + \"%\";\r\n\r\n this.$cache.s_single[0].style.left = this.coords.p_single_fake + \"%\";\r\n\r\n this.$cache.single[0].style.left = this.labels.p_single_left + \"%\";\r\n } else {\r\n this.$cache.s_from[0].style.left = this.coords.p_from_fake + \"%\";\r\n this.$cache.s_to[0].style.left = this.coords.p_to_fake + \"%\";\r\n\r\n if (this.old_from !== this.result.from || this.force_redraw) {\r\n this.$cache.from[0].style.left = this.labels.p_from_left + \"%\";\r\n }\r\n if (this.old_to !== this.result.to || this.force_redraw) {\r\n this.$cache.to[0].style.left = this.labels.p_to_left + \"%\";\r\n }\r\n\r\n this.$cache.single[0].style.left = this.labels.p_single_left + \"%\";\r\n }\r\n\r\n this.writeToInput();\r\n\r\n if ((this.old_from !== this.result.from || this.old_to !== this.result.to) && !this.is_start) {\r\n this.$cache.input.trigger(\"change\");\r\n this.$cache.input.trigger(\"input\");\r\n }\r\n\r\n this.old_from = this.result.from;\r\n this.old_to = this.result.to;\r\n\r\n // callbacks call\r\n if (!this.is_resize && !this.is_update && !this.is_start && !this.is_finish) {\r\n this.callOnChange();\r\n }\r\n if (this.is_key || this.is_click) {\r\n this.is_key = false;\r\n this.is_click = false;\r\n this.callOnFinish();\r\n }\r\n\r\n this.is_update = false;\r\n this.is_resize = false;\r\n this.is_finish = false;\r\n }\r\n\r\n this.is_start = false;\r\n this.is_key = false;\r\n this.is_click = false;\r\n this.force_redraw = false;\r\n },\r\n\r\n /**\r\n * Draw labels\r\n * measure labels collisions\r\n * collapse close labels\r\n */\r\n drawLabels: function () {\r\n if (!this.options) {\r\n return;\r\n }\r\n\r\n var values_num = this.options.values.length;\r\n var p_values = this.options.p_values;\r\n var text_single;\r\n var text_from;\r\n var text_to;\r\n var from_pretty;\r\n var to_pretty;\r\n\r\n if (this.options.hide_from_to) {\r\n return;\r\n }\r\n\r\n if (this.options.type === \"single\") {\r\n\r\n if (values_num) {\r\n text_single = this.decorate(p_values[this.result.from]);\r\n this.$cache.single.html(text_single);\r\n } else {\r\n from_pretty = this._prettify(this.result.from);\r\n\r\n text_single = this.decorate(from_pretty, this.result.from);\r\n this.$cache.single.html(text_single);\r\n }\r\n\r\n this.calcLabels();\r\n\r\n if (this.labels.p_single_left < this.labels.p_min + 1) {\r\n this.$cache.min[0].style.visibility = \"hidden\";\r\n } else {\r\n this.$cache.min[0].style.visibility = \"visible\";\r\n }\r\n\r\n if (this.labels.p_single_left + this.labels.p_single_fake > 100 - this.labels.p_max - 1) {\r\n this.$cache.max[0].style.visibility = \"hidden\";\r\n } else {\r\n this.$cache.max[0].style.visibility = \"visible\";\r\n }\r\n\r\n } else {\r\n\r\n if (values_num) {\r\n\r\n if (this.options.decorate_both) {\r\n text_single = this.decorate(p_values[this.result.from]);\r\n text_single += this.options.values_separator;\r\n text_single += this.decorate(p_values[this.result.to]);\r\n } else {\r\n text_single = this.decorate(p_values[this.result.from] + this.options.values_separator + p_values[this.result.to]);\r\n }\r\n text_from = this.decorate(p_values[this.result.from]);\r\n text_to = this.decorate(p_values[this.result.to]);\r\n\r\n this.$cache.single.html(text_single);\r\n this.$cache.from.html(text_from);\r\n this.$cache.to.html(text_to);\r\n\r\n } else {\r\n from_pretty = this._prettify(this.result.from);\r\n to_pretty = this._prettify(this.result.to);\r\n\r\n if (this.options.decorate_both) {\r\n text_single = this.decorate(from_pretty, this.result.from);\r\n text_single += this.options.values_separator;\r\n text_single += this.decorate(to_pretty, this.result.to);\r\n } else {\r\n text_single = this.decorate(from_pretty + this.options.values_separator + to_pretty, this.result.to);\r\n }\r\n text_from = this.decorate(from_pretty, this.result.from);\r\n text_to = this.decorate(to_pretty, this.result.to);\r\n\r\n this.$cache.single.html(text_single);\r\n this.$cache.from.html(text_from);\r\n this.$cache.to.html(text_to);\r\n\r\n }\r\n\r\n this.calcLabels();\r\n\r\n var min = Math.min(this.labels.p_single_left, this.labels.p_from_left),\r\n single_left = this.labels.p_single_left + this.labels.p_single_fake,\r\n to_left = this.labels.p_to_left + this.labels.p_to_fake,\r\n max = Math.max(single_left, to_left);\r\n\r\n if (this.labels.p_from_left + this.labels.p_from_fake >= this.labels.p_to_left) {\r\n this.$cache.from[0].style.visibility = \"hidden\";\r\n this.$cache.to[0].style.visibility = \"hidden\";\r\n this.$cache.single[0].style.visibility = \"visible\";\r\n\r\n if (this.result.from === this.result.to) {\r\n if (this.target === \"from\") {\r\n this.$cache.from[0].style.visibility = \"visible\";\r\n } else if (this.target === \"to\") {\r\n this.$cache.to[0].style.visibility = \"visible\";\r\n } else if (!this.target) {\r\n this.$cache.from[0].style.visibility = \"visible\";\r\n }\r\n this.$cache.single[0].style.visibility = \"hidden\";\r\n max = to_left;\r\n } else {\r\n this.$cache.from[0].style.visibility = \"hidden\";\r\n this.$cache.to[0].style.visibility = \"hidden\";\r\n this.$cache.single[0].style.visibility = \"visible\";\r\n max = Math.max(single_left, to_left);\r\n }\r\n } else {\r\n this.$cache.from[0].style.visibility = \"visible\";\r\n this.$cache.to[0].style.visibility = \"visible\";\r\n this.$cache.single[0].style.visibility = \"hidden\";\r\n }\r\n\r\n if (min < this.labels.p_min + 1) {\r\n this.$cache.min[0].style.visibility = \"hidden\";\r\n } else {\r\n this.$cache.min[0].style.visibility = \"visible\";\r\n }\r\n\r\n if (max > 100 - this.labels.p_max - 1) {\r\n this.$cache.max[0].style.visibility = \"hidden\";\r\n } else {\r\n this.$cache.max[0].style.visibility = \"visible\";\r\n }\r\n\r\n }\r\n },\r\n\r\n /**\r\n * Draw shadow intervals\r\n */\r\n drawShadow: function () {\r\n var o = this.options,\r\n c = this.$cache,\r\n\r\n is_from_min = typeof o.from_min === \"number\" && !isNaN(o.from_min),\r\n is_from_max = typeof o.from_max === \"number\" && !isNaN(o.from_max),\r\n is_to_min = typeof o.to_min === \"number\" && !isNaN(o.to_min),\r\n is_to_max = typeof o.to_max === \"number\" && !isNaN(o.to_max),\r\n\r\n from_min,\r\n from_max,\r\n to_min,\r\n to_max;\r\n\r\n if (o.type === \"single\") {\r\n if (o.from_shadow && (is_from_min || is_from_max)) {\r\n from_min = this.convertToPercent(is_from_min ? o.from_min : o.min);\r\n from_max = this.convertToPercent(is_from_max ? o.from_max : o.max) - from_min;\r\n from_min = this.toFixed(from_min - (this.coords.p_handle / 100 * from_min));\r\n from_max = this.toFixed(from_max - (this.coords.p_handle / 100 * from_max));\r\n from_min = from_min + (this.coords.p_handle / 2);\r\n\r\n c.shad_single[0].style.display = \"block\";\r\n c.shad_single[0].style.left = from_min + \"%\";\r\n c.shad_single[0].style.width = from_max + \"%\";\r\n } else {\r\n c.shad_single[0].style.display = \"none\";\r\n }\r\n } else {\r\n if (o.from_shadow && (is_from_min || is_from_max)) {\r\n from_min = this.convertToPercent(is_from_min ? o.from_min : o.min);\r\n from_max = this.convertToPercent(is_from_max ? o.from_max : o.max) - from_min;\r\n from_min = this.toFixed(from_min - (this.coords.p_handle / 100 * from_min));\r\n from_max = this.toFixed(from_max - (this.coords.p_handle / 100 * from_max));\r\n from_min = from_min + (this.coords.p_handle / 2);\r\n\r\n c.shad_from[0].style.display = \"block\";\r\n c.shad_from[0].style.left = from_min + \"%\";\r\n c.shad_from[0].style.width = from_max + \"%\";\r\n } else {\r\n c.shad_from[0].style.display = \"none\";\r\n }\r\n\r\n if (o.to_shadow && (is_to_min || is_to_max)) {\r\n to_min = this.convertToPercent(is_to_min ? o.to_min : o.min);\r\n to_max = this.convertToPercent(is_to_max ? o.to_max : o.max) - to_min;\r\n to_min = this.toFixed(to_min - (this.coords.p_handle / 100 * to_min));\r\n to_max = this.toFixed(to_max - (this.coords.p_handle / 100 * to_max));\r\n to_min = to_min + (this.coords.p_handle / 2);\r\n\r\n c.shad_to[0].style.display = \"block\";\r\n c.shad_to[0].style.left = to_min + \"%\";\r\n c.shad_to[0].style.width = to_max + \"%\";\r\n } else {\r\n c.shad_to[0].style.display = \"none\";\r\n }\r\n }\r\n },\r\n\r\n\r\n\r\n /**\r\n * Write values to input element\r\n */\r\n writeToInput: function () {\r\n if (this.options.type === \"single\") {\r\n if (this.options.values.length) {\r\n this.$cache.input.prop(\"value\", this.result.from_value);\r\n } else {\r\n this.$cache.input.prop(\"value\", this.result.from);\r\n }\r\n this.$cache.input.data(\"from\", this.result.from);\r\n } else {\r\n if (this.options.values.length) {\r\n this.$cache.input.prop(\"value\", this.result.from_value + this.options.input_values_separator + this.result.to_value);\r\n } else {\r\n this.$cache.input.prop(\"value\", this.result.from + this.options.input_values_separator + this.result.to);\r\n }\r\n this.$cache.input.data(\"from\", this.result.from);\r\n this.$cache.input.data(\"to\", this.result.to);\r\n }\r\n },\r\n\r\n\r\n\r\n // =============================================================================================================\r\n // Callbacks\r\n\r\n callOnStart: function () {\r\n this.writeToInput();\r\n\r\n if (this.options.onStart && typeof this.options.onStart === \"function\") {\r\n if (this.options.scope) {\r\n this.options.onStart.call(this.options.scope, this.result);\r\n } else {\r\n this.options.onStart(this.result);\r\n }\r\n }\r\n },\r\n callOnChange: function () {\r\n this.writeToInput();\r\n\r\n if (this.options.onChange && typeof this.options.onChange === \"function\") {\r\n if (this.options.scope) {\r\n this.options.onChange.call(this.options.scope, this.result);\r\n } else {\r\n this.options.onChange(this.result);\r\n }\r\n }\r\n },\r\n callOnFinish: function () {\r\n this.writeToInput();\r\n\r\n if (this.options.onFinish && typeof this.options.onFinish === \"function\") {\r\n if (this.options.scope) {\r\n this.options.onFinish.call(this.options.scope, this.result);\r\n } else {\r\n this.options.onFinish(this.result);\r\n }\r\n }\r\n },\r\n callOnUpdate: function () {\r\n this.writeToInput();\r\n\r\n if (this.options.onUpdate && typeof this.options.onUpdate === \"function\") {\r\n if (this.options.scope) {\r\n this.options.onUpdate.call(this.options.scope, this.result);\r\n } else {\r\n this.options.onUpdate(this.result);\r\n }\r\n }\r\n },\r\n\r\n\r\n\r\n\r\n // =============================================================================================================\r\n // Service methods\r\n\r\n toggleInput: function () {\r\n this.$cache.input.toggleClass(\"irs-hidden-input\");\r\n\r\n if (this.has_tab_index) {\r\n this.$cache.input.prop(\"tabindex\", -1);\r\n } else {\r\n this.$cache.input.removeProp(\"tabindex\");\r\n }\r\n\r\n this.has_tab_index = !this.has_tab_index;\r\n },\r\n\r\n /**\r\n * Convert real value to percent\r\n *\r\n * @param value {Number} X in real\r\n * @param no_min {boolean=} don't use min value\r\n * @returns {Number} X in percent\r\n */\r\n convertToPercent: function (value, no_min) {\r\n var diapason = this.options.max - this.options.min,\r\n one_percent = diapason / 100,\r\n val, percent;\r\n\r\n if (!diapason) {\r\n this.no_diapason = true;\r\n return 0;\r\n }\r\n\r\n if (no_min) {\r\n val = value;\r\n } else {\r\n val = value - this.options.min;\r\n }\r\n\r\n percent = val / one_percent;\r\n\r\n return this.toFixed(percent);\r\n },\r\n\r\n /**\r\n * Convert percent to real values\r\n *\r\n * @param percent {Number} X in percent\r\n * @returns {Number} X in real\r\n */\r\n convertToValue: function (percent) {\r\n var min = this.options.min,\r\n max = this.options.max,\r\n min_decimals = min.toString().split(\".\")[1],\r\n max_decimals = max.toString().split(\".\")[1],\r\n min_length, max_length,\r\n avg_decimals = 0,\r\n abs = 0;\r\n\r\n if (percent === 0) {\r\n return this.options.min;\r\n }\r\n if (percent === 100) {\r\n return this.options.max;\r\n }\r\n\r\n\r\n if (min_decimals) {\r\n min_length = min_decimals.length;\r\n avg_decimals = min_length;\r\n }\r\n if (max_decimals) {\r\n max_length = max_decimals.length;\r\n avg_decimals = max_length;\r\n }\r\n if (min_length && max_length) {\r\n avg_decimals = (min_length >= max_length) ? min_length : max_length;\r\n }\r\n\r\n if (min < 0) {\r\n abs = Math.abs(min);\r\n min = +(min + abs).toFixed(avg_decimals);\r\n max = +(max + abs).toFixed(avg_decimals);\r\n }\r\n\r\n var number = ((max - min) / 100 * percent) + min,\r\n string = this.options.step.toString().split(\".\")[1],\r\n result;\r\n\r\n if (string) {\r\n number = +number.toFixed(string.length);\r\n } else {\r\n number = number / this.options.step;\r\n number = number * this.options.step;\r\n\r\n number = +number.toFixed(0);\r\n }\r\n\r\n if (abs) {\r\n number -= abs;\r\n }\r\n\r\n if (string) {\r\n result = +number.toFixed(string.length);\r\n } else {\r\n result = this.toFixed(number);\r\n }\r\n\r\n if (result < this.options.min) {\r\n result = this.options.min;\r\n } else if (result > this.options.max) {\r\n result = this.options.max;\r\n }\r\n\r\n return result;\r\n },\r\n\r\n /**\r\n * Round percent value with step\r\n *\r\n * @param percent {Number}\r\n * @returns percent {Number} rounded\r\n */\r\n calcWithStep: function (percent) {\r\n var rounded = Math.round(percent / this.coords.p_step) * this.coords.p_step;\r\n\r\n if (rounded > 100) {\r\n rounded = 100;\r\n }\r\n if (percent === 100) {\r\n rounded = 100;\r\n }\r\n\r\n return this.toFixed(rounded);\r\n },\r\n\r\n checkMinInterval: function (p_current, p_next, type) {\r\n var o = this.options,\r\n current,\r\n next;\r\n\r\n if (!o.min_interval) {\r\n return p_current;\r\n }\r\n\r\n current = this.convertToValue(p_current);\r\n next = this.convertToValue(p_next);\r\n\r\n if (type === \"from\") {\r\n\r\n if (next - current < o.min_interval) {\r\n current = next - o.min_interval;\r\n }\r\n\r\n } else {\r\n\r\n if (current - next < o.min_interval) {\r\n current = next + o.min_interval;\r\n }\r\n\r\n }\r\n\r\n return this.convertToPercent(current);\r\n },\r\n\r\n checkMaxInterval: function (p_current, p_next, type) {\r\n var o = this.options,\r\n current,\r\n next;\r\n\r\n if (!o.max_interval) {\r\n return p_current;\r\n }\r\n\r\n current = this.convertToValue(p_current);\r\n next = this.convertToValue(p_next);\r\n\r\n if (type === \"from\") {\r\n\r\n if (next - current > o.max_interval) {\r\n current = next - o.max_interval;\r\n }\r\n\r\n } else {\r\n\r\n if (current - next > o.max_interval) {\r\n current = next + o.max_interval;\r\n }\r\n\r\n }\r\n\r\n return this.convertToPercent(current);\r\n },\r\n\r\n checkDiapason: function (p_num, min, max) {\r\n var num = this.convertToValue(p_num),\r\n o = this.options;\r\n\r\n if (typeof min !== \"number\") {\r\n min = o.min;\r\n }\r\n\r\n if (typeof max !== \"number\") {\r\n max = o.max;\r\n }\r\n\r\n if (num < min) {\r\n num = min;\r\n }\r\n\r\n if (num > max) {\r\n num = max;\r\n }\r\n\r\n return this.convertToPercent(num);\r\n },\r\n\r\n toFixed: function (num) {\r\n num = num.toFixed(20);\r\n return +num;\r\n },\r\n\r\n _prettify: function (num) {\r\n if (!this.options.prettify_enabled) {\r\n return num;\r\n }\r\n\r\n if (this.options.prettify && typeof this.options.prettify === \"function\") {\r\n return this.options.prettify(num);\r\n } else {\r\n return this.prettify(num);\r\n }\r\n },\r\n\r\n prettify: function (num) {\r\n var n = num.toString();\r\n return n.replace(/(\\d{1,3}(?=(?:\\d\\d\\d)+(?!\\d)))/g, \"$1\" + this.options.prettify_separator);\r\n },\r\n\r\n checkEdges: function (left, width) {\r\n if (!this.options.force_edges) {\r\n return this.toFixed(left);\r\n }\r\n\r\n if (left < 0) {\r\n left = 0;\r\n } else if (left > 100 - width) {\r\n left = 100 - width;\r\n }\r\n\r\n return this.toFixed(left);\r\n },\r\n\r\n validate: function () {\r\n var o = this.options,\r\n r = this.result,\r\n v = o.values,\r\n vl = v.length,\r\n value,\r\n i;\r\n\r\n if (typeof o.min === \"string\") o.min = +o.min;\r\n if (typeof o.max === \"string\") o.max = +o.max;\r\n if (typeof o.from === \"string\") o.from = +o.from;\r\n if (typeof o.to === \"string\") o.to = +o.to;\r\n if (typeof o.step === \"string\") o.step = +o.step;\r\n\r\n if (typeof o.from_min === \"string\") o.from_min = +o.from_min;\r\n if (typeof o.from_max === \"string\") o.from_max = +o.from_max;\r\n if (typeof o.to_min === \"string\") o.to_min = +o.to_min;\r\n if (typeof o.to_max === \"string\") o.to_max = +o.to_max;\r\n\r\n if (typeof o.grid_num === \"string\") o.grid_num = +o.grid_num;\r\n\r\n if (o.max < o.min) {\r\n o.max = o.min;\r\n }\r\n\r\n if (vl) {\r\n o.p_values = [];\r\n o.min = 0;\r\n o.max = vl - 1;\r\n o.step = 1;\r\n o.grid_num = o.max;\r\n o.grid_snap = true;\r\n\r\n for (i = 0; i < vl; i++) {\r\n value = +v[i];\r\n\r\n if (!isNaN(value)) {\r\n v[i] = value;\r\n value = this._prettify(value);\r\n } else {\r\n value = v[i];\r\n }\r\n\r\n o.p_values.push(value);\r\n }\r\n }\r\n\r\n if (typeof o.from !== \"number\" || isNaN(o.from)) {\r\n o.from = o.min;\r\n }\r\n\r\n if (typeof o.to !== \"number\" || isNaN(o.to)) {\r\n o.to = o.max;\r\n }\r\n\r\n if (o.type === \"single\") {\r\n\r\n if (o.from < o.min) o.from = o.min;\r\n if (o.from > o.max) o.from = o.max;\r\n\r\n } else {\r\n\r\n if (o.from < o.min) o.from = o.min;\r\n if (o.from > o.max) o.from = o.max;\r\n\r\n if (o.to < o.min) o.to = o.min;\r\n if (o.to > o.max) o.to = o.max;\r\n\r\n if (this.update_check.from) {\r\n\r\n if (this.update_check.from !== o.from) {\r\n if (o.from > o.to) o.from = o.to;\r\n }\r\n if (this.update_check.to !== o.to) {\r\n if (o.to < o.from) o.to = o.from;\r\n }\r\n\r\n }\r\n\r\n if (o.from > o.to) o.from = o.to;\r\n if (o.to < o.from) o.to = o.from;\r\n\r\n }\r\n\r\n if (typeof o.step !== \"number\" || isNaN(o.step) || !o.step || o.step < 0) {\r\n o.step = 1;\r\n }\r\n\r\n if (typeof o.from_min === \"number\" && o.from < o.from_min) {\r\n o.from = o.from_min;\r\n }\r\n\r\n if (typeof o.from_max === \"number\" && o.from > o.from_max) {\r\n o.from = o.from_max;\r\n }\r\n\r\n if (typeof o.to_min === \"number\" && o.to < o.to_min) {\r\n o.to = o.to_min;\r\n }\r\n\r\n if (typeof o.to_max === \"number\" && o.from > o.to_max) {\r\n o.to = o.to_max;\r\n }\r\n\r\n if (r) {\r\n if (r.min !== o.min) {\r\n r.min = o.min;\r\n }\r\n\r\n if (r.max !== o.max) {\r\n r.max = o.max;\r\n }\r\n\r\n if (r.from < r.min || r.from > r.max) {\r\n r.from = o.from;\r\n }\r\n\r\n if (r.to < r.min || r.to > r.max) {\r\n r.to = o.to;\r\n }\r\n }\r\n\r\n if (typeof o.min_interval !== \"number\" || isNaN(o.min_interval) || !o.min_interval || o.min_interval < 0) {\r\n o.min_interval = 0;\r\n }\r\n\r\n if (typeof o.max_interval !== \"number\" || isNaN(o.max_interval) || !o.max_interval || o.max_interval < 0) {\r\n o.max_interval = 0;\r\n }\r\n\r\n if (o.min_interval && o.min_interval > o.max - o.min) {\r\n o.min_interval = o.max - o.min;\r\n }\r\n\r\n if (o.max_interval && o.max_interval > o.max - o.min) {\r\n o.max_interval = o.max - o.min;\r\n }\r\n },\r\n\r\n decorate: function (num, original) {\r\n var decorated = \"\",\r\n o = this.options;\r\n\r\n if (o.prefix) {\r\n decorated += o.prefix;\r\n }\r\n\r\n decorated += num;\r\n\r\n if (o.max_postfix) {\r\n if (o.values.length && num === o.p_values[o.max]) {\r\n decorated += o.max_postfix;\r\n if (o.postfix) {\r\n decorated += \" \";\r\n }\r\n } else if (original === o.max) {\r\n decorated += o.max_postfix;\r\n if (o.postfix) {\r\n decorated += \" \";\r\n }\r\n }\r\n }\r\n\r\n if (o.postfix) {\r\n decorated += o.postfix;\r\n }\r\n\r\n return decorated;\r\n },\r\n\r\n updateFrom: function () {\r\n this.result.from = this.options.from;\r\n this.result.from_percent = this.convertToPercent(this.result.from);\r\n this.result.from_pretty = this._prettify(this.result.from);\r\n if (this.options.values) {\r\n this.result.from_value = this.options.values[this.result.from];\r\n }\r\n },\r\n\r\n updateTo: function () {\r\n this.result.to = this.options.to;\r\n this.result.to_percent = this.convertToPercent(this.result.to);\r\n this.result.to_pretty = this._prettify(this.result.to);\r\n if (this.options.values) {\r\n this.result.to_value = this.options.values[this.result.to];\r\n }\r\n },\r\n\r\n updateResult: function () {\r\n this.result.min = this.options.min;\r\n this.result.max = this.options.max;\r\n this.updateFrom();\r\n this.updateTo();\r\n },\r\n\r\n\r\n // =============================================================================================================\r\n // Grid\r\n\r\n appendGrid: function () {\r\n if (!this.options.grid) {\r\n return;\r\n }\r\n\r\n var o = this.options,\r\n i, z,\r\n\r\n total = o.max - o.min,\r\n big_num = o.grid_num,\r\n big_p = 0,\r\n big_w = 0,\r\n\r\n small_max = 4,\r\n local_small_max,\r\n small_p,\r\n small_w = 0,\r\n\r\n result,\r\n html = '';\r\n\r\n\r\n\r\n this.calcGridMargin();\r\n\r\n if (o.grid_snap) {\r\n big_num = total / o.step;\r\n }\r\n\r\n if (big_num > 50) big_num = 50;\r\n big_p = this.toFixed(100 / big_num);\r\n\r\n if (big_num > 4) {\r\n small_max = 3;\r\n }\r\n if (big_num > 7) {\r\n small_max = 2;\r\n }\r\n if (big_num > 14) {\r\n small_max = 1;\r\n }\r\n if (big_num > 28) {\r\n small_max = 0;\r\n }\r\n\r\n for (i = 0; i < big_num + 1; i++) {\r\n local_small_max = small_max;\r\n\r\n big_w = this.toFixed(big_p * i);\r\n\r\n if (big_w > 100) {\r\n big_w = 100;\r\n }\r\n this.coords.big[i] = big_w;\r\n\r\n small_p = (big_w - (big_p * (i - 1))) / (local_small_max + 1);\r\n\r\n for (z = 1; z <= local_small_max; z++) {\r\n if (big_w === 0) {\r\n break;\r\n }\r\n\r\n small_w = this.toFixed(big_w - (small_p * z));\r\n\r\n html += '';\r\n }\r\n\r\n html += '';\r\n\r\n result = this.convertToValue(big_w);\r\n if (o.values.length) {\r\n result = o.p_values[result];\r\n } else {\r\n result = this._prettify(result);\r\n }\r\n\r\n html += '' + result + '';\r\n }\r\n this.coords.big_num = Math.ceil(big_num + 1);\r\n\r\n\r\n\r\n this.$cache.cont.addClass(\"irs-with-grid\");\r\n this.$cache.grid.html(html);\r\n this.cacheGridLabels();\r\n },\r\n\r\n cacheGridLabels: function () {\r\n var $label, i,\r\n num = this.coords.big_num;\r\n\r\n for (i = 0; i < num; i++) {\r\n $label = this.$cache.grid.find(\".js-grid-text-\" + i);\r\n this.$cache.grid_labels.push($label);\r\n }\r\n\r\n this.calcGridLabels();\r\n },\r\n\r\n calcGridLabels: function () {\r\n var i, label, start = [], finish = [],\r\n num = this.coords.big_num;\r\n\r\n for (i = 0; i < num; i++) {\r\n this.coords.big_w[i] = this.$cache.grid_labels[i].outerWidth(false);\r\n this.coords.big_p[i] = this.toFixed(this.coords.big_w[i] / this.coords.w_rs * 100);\r\n this.coords.big_x[i] = this.toFixed(this.coords.big_p[i] / 2);\r\n\r\n start[i] = this.toFixed(this.coords.big[i] - this.coords.big_x[i]);\r\n finish[i] = this.toFixed(start[i] + this.coords.big_p[i]);\r\n }\r\n\r\n if (this.options.force_edges) {\r\n if (start[0] < -this.coords.grid_gap) {\r\n start[0] = -this.coords.grid_gap;\r\n finish[0] = this.toFixed(start[0] + this.coords.big_p[0]);\r\n\r\n this.coords.big_x[0] = this.coords.grid_gap;\r\n }\r\n\r\n if (finish[num - 1] > 100 + this.coords.grid_gap) {\r\n finish[num - 1] = 100 + this.coords.grid_gap;\r\n start[num - 1] = this.toFixed(finish[num - 1] - this.coords.big_p[num - 1]);\r\n\r\n this.coords.big_x[num - 1] = this.toFixed(this.coords.big_p[num - 1] - this.coords.grid_gap);\r\n }\r\n }\r\n\r\n this.calcGridCollision(2, start, finish);\r\n this.calcGridCollision(4, start, finish);\r\n\r\n for (i = 0; i < num; i++) {\r\n label = this.$cache.grid_labels[i][0];\r\n\r\n if (this.coords.big_x[i] !== Number.POSITIVE_INFINITY) {\r\n label.style.marginLeft = -this.coords.big_x[i] + \"%\";\r\n }\r\n }\r\n },\r\n\r\n // Collisions Calc Beta\r\n // TODO: Refactor then have plenty of time\r\n calcGridCollision: function (step, start, finish) {\r\n var i, next_i, label,\r\n num = this.coords.big_num;\r\n\r\n for (i = 0; i < num; i += step) {\r\n next_i = i + (step / 2);\r\n if (next_i >= num) {\r\n break;\r\n }\r\n\r\n label = this.$cache.grid_labels[next_i][0];\r\n\r\n if (finish[i] <= start[next_i]) {\r\n label.style.visibility = \"visible\";\r\n } else {\r\n label.style.visibility = \"hidden\";\r\n }\r\n }\r\n },\r\n\r\n calcGridMargin: function () {\r\n if (!this.options.grid_margin) {\r\n return;\r\n }\r\n\r\n this.coords.w_rs = this.$cache.rs.outerWidth(false);\r\n if (!this.coords.w_rs) {\r\n return;\r\n }\r\n\r\n if (this.options.type === \"single\") {\r\n this.coords.w_handle = this.$cache.s_single.outerWidth(false);\r\n } else {\r\n this.coords.w_handle = this.$cache.s_from.outerWidth(false);\r\n }\r\n this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100);\r\n this.coords.grid_gap = this.toFixed((this.coords.p_handle / 2) - 0.1);\r\n\r\n this.$cache.grid[0].style.width = this.toFixed(100 - this.coords.p_handle) + \"%\";\r\n this.$cache.grid[0].style.left = this.coords.grid_gap + \"%\";\r\n },\r\n\r\n\r\n\r\n // =============================================================================================================\r\n // Public methods\r\n\r\n update: function (options) {\r\n if (!this.input) {\r\n return;\r\n }\r\n\r\n this.is_update = true;\r\n\r\n this.options.from = this.result.from;\r\n this.options.to = this.result.to;\r\n this.update_check.from = this.result.from;\r\n this.update_check.to = this.result.to;\r\n\r\n this.options = $.extend(this.options, options);\r\n this.validate();\r\n this.updateResult(options);\r\n\r\n this.toggleInput();\r\n this.remove();\r\n this.init(true);\r\n },\r\n\r\n reset: function () {\r\n if (!this.input) {\r\n return;\r\n }\r\n\r\n this.updateResult();\r\n this.update();\r\n },\r\n\r\n destroy: function () {\r\n if (!this.input) {\r\n return;\r\n }\r\n\r\n this.toggleInput();\r\n this.$cache.input.prop(\"readonly\", false);\r\n $.data(this.input, \"ionRangeSlider\", null);\r\n\r\n this.remove();\r\n this.input = null;\r\n this.options = null;\r\n }\r\n };\r\n\r\n $.fn.ionRangeSlider = function (options) {\r\n return this.each(function() {\r\n if (!$.data(this, \"ionRangeSlider\")) {\r\n $.data(this, \"ionRangeSlider\", new IonRangeSlider(this, options, plugin_count++));\r\n }\r\n });\r\n };\r\n\r\n\r\n\r\n // =================================================================================================================\r\n // http://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\r\n\r\n // requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\r\n\r\n // MIT license\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']\r\n || window[vendors[x]+'CancelRequestAnimationFrame'];\r\n }\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 = window.setTimeout(function() { callback(currTime + timeToCall); },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n\r\n if (!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function(id) {\r\n clearTimeout(id);\r\n };\r\n }());\r\n\r\n}));\r\n\n/*\r\n* iziModal | v1.6.0\r\n* http://izimodal.marcelodolce.com\r\n* by Marcelo Dolce.\r\n*/\r\n(function (factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n define(['jquery'], factory);\r\n } else if (typeof module === 'object' && module.exports) {\r\n module.exports = function( root, jQuery ) {\r\n if ( jQuery === undefined ) {\r\n if ( typeof window !== 'undefined' ) {\r\n jQuery = require('jquery');\r\n }\r\n else {\r\n jQuery = require('jquery')(root);\r\n }\r\n }\r\n factory(jQuery);\r\n return jQuery;\r\n };\r\n } else {\r\n factory(jQuery);\r\n }\r\n}(function ($) {\r\n\r\n\tvar $window = $(window),\r\n \t$document = $(document),\r\n\t\tPLUGIN_NAME = 'iziModal',\r\n\t\tSTATES = {\r\n\t\tCLOSING: 'closing',\r\n\t\tCLOSED: 'closed',\r\n\t\tOPENING: 'opening',\r\n\t\tOPENED: 'opened',\r\n\t\tDESTROYED: 'destroyed'\r\n\t};\r\n\r\n\tfunction whichAnimationEvent(){\r\n\t\tvar t,\r\n\t\t\tel = document.createElement('fakeelement'),\r\n\t\t\tanimations = {\r\n\t\t\t'animation' : 'animationend',\r\n\t\t\t'OAnimation' : 'oAnimationEnd',\r\n\t\t\t'MozAnimation' : 'animationend',\r\n\t\t\t'WebkitAnimation': 'webkitAnimationEnd'\r\n\t\t};\r\n\t\tfor (t in animations){\r\n\t\t\tif (el.style[t] !== undefined){\r\n\t\t\t\treturn animations[t];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction isIE(version) {\r\n\t\tif(version === 9){\r\n\t\t\treturn navigator.appVersion.indexOf('MSIE 9.') !== -1;\r\n\t\t} else {\r\n\t\t\tuserAgent = navigator.userAgent;\r\n\t\t\treturn userAgent.indexOf('MSIE ') > -1 || userAgent.indexOf('Trident/') > -1;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction clearValue(value){\r\n\t\tvar separators = /%|px|em|cm|vh|vw/;\r\n\t\treturn parseInt(String(value).split(separators)[0]);\r\n\t}\r\n\r\n\tfunction changeHashWithoutScrolling(hash) {\r\n\t\tvar id = hash.replace(/^.*#/, ''),\r\n\t\t\t$elem = $(hash);\r\n\t\t$elem.attr('id', id+'-tmp');\r\n\t\twindow.location.hash = hash;\r\n\t\t$elem.attr('id', id);\r\n\t}\r\n\r\n\tvar animationEvent = whichAnimationEvent(),\r\n\t\tisMobile = (/Mobi/.test(navigator.userAgent)) ? true : false;\r\n\r\n\twindow.$iziModal = {};\r\n\twindow.$iziModal.autoOpen = 0;\r\n\twindow.$iziModal.history = false;\r\n\r\n\tvar iziModal = function (element, options) {\r\n\t\tthis.init(element, options);\r\n\t};\r\n\r\n\tiziModal.prototype = {\r\n\r\n\t\tconstructor: iziModal,\r\n\r\n\t\tinit: function (element, options) {\r\n\r\n\t\t\tvar that = this;\r\n\t\t\tthis.$element = $(element);\r\n\r\n\t\t\tif(this.$element[0].id !== undefined && this.$element[0].id !== ''){\r\n\t\t\t\tthis.id = this.$element[0].id;\r\n\t\t\t} else {\r\n\t\t\t\tthis.id = PLUGIN_NAME+Math.floor((Math.random() * 10000000) + 1);\r\n\t\t\t\tthis.$element.attr('id', this.id);\r\n\t\t\t}\r\n\t\t\tthis.classes = ( this.$element.attr('class') !== undefined ) ? this.$element.attr('class') : '';\r\n\t\t\tthis.content = this.$element.html();\r\n\t\t\tthis.state = STATES.CLOSED;\r\n\t\t\tthis.options = options;\r\n\t\t\tthis.width = 0;\r\n\t\t\tthis.timer = null;\r\n\t\t\tthis.timerTimeout = null;\r\n\t\t\tthis.progressBar = null;\r\n this.isPaused = false;\r\n\t\t\tthis.isFullscreen = false;\r\n this.headerHeight = 0;\r\n this.modalHeight = 0;\r\n this.$overlay = $('
');\r\n\t\t\tthis.$navigate = $('
Use
');\r\n this.group = {\r\n \tname: this.$element.attr('data-'+PLUGIN_NAME+'-group'),\r\n \tindex: null,\r\n \tids: []\r\n };\r\n\t\t\tthis.$element.attr('aria-hidden', 'true');\r\n\t\t\tthis.$element.attr('aria-labelledby', this.id);\r\n\t\t\tthis.$element.attr('role', 'dialog');\r\n\r\n\t\t\tif( !this.$element.hasClass('iziModal') ){\r\n\t\t\t\tthis.$element.addClass('iziModal');\r\n\t\t\t}\r\n\r\n if(this.group.name === undefined && options.group !== ''){\r\n \tthis.group.name = options.group;\r\n \tthis.$element.attr('data-'+PLUGIN_NAME+'-group', options.group);\r\n }\r\n if(this.options.loop === true){\r\n \tthis.$element.attr('data-'+PLUGIN_NAME+'-loop', true);\r\n }\r\n\r\n $.each( this.options , function(index, val) {\r\n\t\t\t\tvar attr = that.$element.attr('data-'+PLUGIN_NAME+'-'+index);\r\n \ttry {\r\n\t\t if(typeof attr !== typeof undefined){\r\n\r\n\t\t\t\t\t\tif(attr === ''|| attr == 'true'){\r\n\t\t\t\t\t\t\toptions[index] = true;\r\n\t\t\t\t\t\t} else if (attr == 'false') {\r\n\t\t\t\t\t\t\toptions[index] = false;\r\n\t\t\t\t\t\t} else if (typeof val == 'function') {\r\n\t\t\t\t\t\t\toptions[index] = new Function(attr);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\toptions[index] = attr;\r\n\t\t\t\t\t\t}\r\n\t\t }\r\n \t} catch(exc){}\r\n });\r\n\r\n if(options.appendTo !== false){\r\n\t\t\t\tthis.$element.appendTo(options.appendTo);\r\n }\r\n\r\n if (options.iframe === true) {\r\n this.$element.html('
' + this.content + \"
\");\r\n\r\n\t if (options.iframeHeight !== null) {\r\n\t this.$element.find('.'+PLUGIN_NAME+'-iframe').css('height', options.iframeHeight);\r\n\t }\r\n } else {\r\n \tthis.$element.html('
' + this.content + '
');\r\n }\r\n\r\n\t\t\tif (this.options.background !== null) {\r\n\t\t\t\tthis.$element.css('background', this.options.background);\r\n\t\t\t}\r\n\r\n this.$wrap = this.$element.find('.'+PLUGIN_NAME+'-wrap');\r\n\r\n\t\t\tif(options.zindex !== null && !isNaN(parseInt(options.zindex)) ){\r\n\t\t\t \tthis.$element.css('z-index', options.zindex);\r\n\t\t\t \tthis.$navigate.css('z-index', options.zindex-1);\r\n\t\t\t \tthis.$overlay.css('z-index', options.zindex-2);\r\n\t\t\t}\r\n\r\n\t\t\tif(options.radius !== ''){\r\n this.$element.css('border-radius', options.radius);\r\n }\r\n\r\n if(options.padding !== ''){\r\n this.$element.find('.'+PLUGIN_NAME+'-content').css('padding', options.padding);\r\n }\r\n\r\n if(options.theme !== ''){\r\n\t\t\t\tif(options.theme === 'light'){\r\n\t\t\t\t\tthis.$element.addClass(PLUGIN_NAME+'-light');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.$element.addClass(options.theme);\r\n\t\t\t\t}\r\n }\r\n\r\n\t\t\tif(options.rtl === true) {\r\n\t\t\t\tthis.$element.addClass(PLUGIN_NAME+'-rtl');\r\n\t\t\t}\r\n\r\n\t\t\tif(options.openFullscreen === true){\r\n\t\t\t this.isFullscreen = true;\r\n\t\t\t this.$element.addClass('isFullscreen');\r\n\t\t\t}\r\n\r\n\t\t\tthis.createHeader();\r\n\t\t\tthis.recalcWidth();\r\n\t\t\tthis.recalcVerticalPos();\r\n\r\n\t\t\tif (that.options.afterRender && ( typeof(that.options.afterRender) === 'function' || typeof(that.options.afterRender) === 'object' ) ) {\r\n\t\t that.options.afterRender(that);\r\n\t\t }\r\n\r\n\t\t},\r\n\r\n\t\tcreateHeader: function(){\r\n\r\n\t\t\tthis.$header = $('

' + this.options.title + '

' + this.options.subtitle + '

');\r\n\r\n\t\t\tif (this.options.closeButton === true) {\r\n\t\t\t\tthis.$header.find('.'+PLUGIN_NAME+'-header-buttons').append('');\r\n\t\t\t}\r\n\r\n if (this.options.fullscreen === true) {\r\n \tthis.$header.find('.'+PLUGIN_NAME+'-header-buttons').append('');\r\n }\r\n\r\n //if (this.options.timeoutProgressbar === true && !isNaN(parseInt(this.options.timeout)) && this.options.timeout !== false && this.options.timeout !== 0) {\r\n\t\t\tif (this.options.timeoutProgressbar === true) {\r\n\t\t\t\tthis.$header.prepend('
');\r\n }\r\n\r\n if (this.options.subtitle === '') {\r\n \t\tthis.$header.addClass(PLUGIN_NAME+'-noSubtitle');\r\n }\r\n\r\n if (this.options.title !== '') {\r\n\r\n if (this.options.headerColor !== null) {\r\n \tif(this.options.borderBottom === true){\r\n \tthis.$element.css('border-bottom', '3px solid ' + this.options.headerColor + '');\r\n \t}\r\n this.$header.css('background', this.options.headerColor);\r\n }\r\n\t\t\t\tif (this.options.icon !== null || this.options.iconText !== null){\r\n\r\n this.$header.prepend('');\r\n\r\n\t if (this.options.icon !== null) {\r\n\t this.$header.find('.'+PLUGIN_NAME+'-header-icon').addClass(this.options.icon).css('color', this.options.iconColor);\r\n\t\t\t\t\t}\r\n\t if (this.options.iconText !== null){\r\n\t \tthis.$header.find('.'+PLUGIN_NAME+'-header-icon').html(this.options.iconText);\r\n\t }\r\n\t\t\t\t}\r\n this.$element.css('overflow', 'hidden').prepend(this.$header);\r\n }\r\n\t\t},\r\n\r\n\t\tsetGroup: function(groupName){\r\n\r\n\t\t\tvar that = this,\r\n\t\t\t\tgroup = this.group.name || groupName;\r\n\t\t\t\tthis.group.ids = [];\r\n\r\n\t\t\tif( groupName !== undefined && groupName !== this.group.name){\r\n\t\t\t\tgroup = groupName;\r\n\t\t\t\tthis.group.name = group;\r\n\t\t\t\tthis.$element.attr('data-'+PLUGIN_NAME+'-group', group);\r\n\t\t\t}\r\n\t\t\tif(group !== undefined && group !== ''){\r\n\r\n \tvar count = 0;\r\n \t$.each( $('.'+PLUGIN_NAME+'[data-'+PLUGIN_NAME+'-group='+group+']') , function(index, val) {\r\n\r\n\t\t\t\t\tthat.group.ids.push($(this)[0].id);\r\n\r\n\t\t\t\t\tif(that.id == $(this)[0].id){\r\n\t\t\t\t\t\tthat.group.index = count;\r\n\t\t\t\t\t}\r\n \t\t\tcount++;\r\n \t});\r\n }\r\n\t\t},\r\n\r\n\t\ttoggle: function () {\r\n\r\n\t\t\tif(this.state == STATES.OPENED){\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t\tif(this.state == STATES.CLOSED){\r\n\t\t\t\tthis.open();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tstartProgress: function(param) {\r\n\r\n\t\t\tvar that = this;\r\n\r\n\t\t\tthis.isPaused = false;\r\n\r\n\t\t\tclearTimeout(this.timerTimeout);\r\n\r\n\t\t\tif (this.options.timeoutProgressbar === true) {\r\n\r\n\t\t\t\tthis.progressBar = {\r\n hideEta: null,\r\n maxHideTime: null,\r\n currentTime: new Date().getTime(),\r\n el: this.$element.find('.'+PLUGIN_NAME+'-progressbar > div'),\r\n updateProgress: function()\r\n {\r\n\t\t\t\t\t\tif(!that.isPaused){\r\n\r\n\t\t\t\t\t\t\tthat.progressBar.currentTime = that.progressBar.currentTime+10;\r\n\r\n\t\t var percentage = ((that.progressBar.hideEta - (that.progressBar.currentTime)) / that.progressBar.maxHideTime) * 100;\r\n\t\t that.progressBar.el.width(percentage + '%');\r\n\t\t if(percentage < 0){\r\n\t\t \tthat.close();\r\n\t\t }\r\n\t\t\t\t\t\t}\r\n }\r\n };\r\n\t\t\t\tif (param > 0) {\r\n this.progressBar.maxHideTime = parseFloat(param);\r\n this.progressBar.hideEta = new Date().getTime() + this.progressBar.maxHideTime;\r\n this.timerTimeout = setInterval(this.progressBar.updateProgress, 10);\r\n }\r\n\r\n\t\t\t} else {\r\n\t\t\t\tthis.timerTimeout = setTimeout(function(){\r\n\t\t\t\t\tthat.close();\r\n\t\t\t\t}, that.options.timeout);\r\n\t\t\t}\r\n\t\r\n\t\t}, \r\n\r\n\t\tpauseProgress: function(){\r\n\r\n\t\t\tthis.isPaused = true;\r\n\t\t},\r\n\r\n\t\tresumeProgress: function(){\r\n\r\n\t\t\tthis.isPaused = false;\r\n\t\t},\r\n\r\n\t\tresetProgress: function(param){\r\n\r\n \tclearTimeout(this.timerTimeout);\r\n \tthis.progressBar = {};\r\n this.$element.find('.'+PLUGIN_NAME+'-progressbar > div').width('100%');\r\n\t\t},\r\n\r\n\t\topen: function (param) {\r\n\r\n\t\t\tvar that = this;\r\n\r\n\t\t\ttry {\r\n\t\t\t\tif(param !== undefined && param.preventClose === false){\r\n\t\t\t\t\t$.each( $('.'+PLUGIN_NAME) , function(index, modal) {\r\n\t\t\t\t\t\tif( $(modal).data().iziModal !== undefined ){\r\n\t\t\t\t\t\t\tvar state = $(modal).iziModal('getState');\r\n\r\n\t\t\t\t\t\t\tif(state == 'opened' || state == 'opening'){\r\n\t\t\t\t\t\t\t\t$(modal).iziModal('close');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t} catch(e) { /*console.warn(exc);*/ }\r\n\r\n (function urlHash(){\r\n\t\t\t\tif(that.options.history){\r\n\r\n\t \tvar oldTitle = document.title;\r\n\t\t document.title = oldTitle + \" - \" + that.options.title;\r\n\t\t\t\t\tchangeHashWithoutScrolling('#'+that.id);\r\n\t\t\t\t\tdocument.title = oldTitle;\r\n\t\t\t\t\t//history.pushState({}, that.options.title, \"#\"+that.id);\r\n\r\n\t\t\t\t\twindow.$iziModal.history = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\twindow.$iziModal.history = false;\r\n\t\t\t\t}\r\n })();\r\n\r\n\t\t\tfunction opened(){\r\n\r\n\t\t\t // console.info('[ '+PLUGIN_NAME+' | '+that.id+' ] Opened.');\r\n\r\n\t\t\t\tthat.state = STATES.OPENED;\r\n\t\t \tthat.$element.trigger(STATES.OPENED);\r\n\r\n\t\t\t\tif (that.options.onOpened && ( typeof(that.options.onOpened) === \"function\" || typeof(that.options.onOpened) === \"object\" ) ) {\r\n\t\t\t that.options.onOpened(that);\r\n\t\t\t }\r\n\t\t\t}\r\n\r\n\t\t\tfunction bindEvents(){\r\n\r\n\t // Close when button pressed\r\n\t that.$element.off('click', '[data-'+PLUGIN_NAME+'-close]').on('click', '[data-'+PLUGIN_NAME+'-close]', function (e) {\r\n\t e.preventDefault();\r\n\r\n\t var transition = $(e.currentTarget).attr('data-'+PLUGIN_NAME+'-transitionOut');\r\n\r\n\t if(transition !== undefined){\r\n\t \tthat.close({transition:transition});\r\n\t } else {\r\n\t \tthat.close();\r\n\t }\r\n\t });\r\n\r\n\t // Expand when button pressed\r\n\t that.$element.off('click', '[data-'+PLUGIN_NAME+'-fullscreen]').on('click', '[data-'+PLUGIN_NAME+'-fullscreen]', function (e) {\r\n\t e.preventDefault();\r\n\t if(that.isFullscreen === true){\r\n\t\t\t\t\t\tthat.isFullscreen = false;\r\n\t\t that.$element.removeClass('isFullscreen');\r\n\t } else {\r\n\t\t that.isFullscreen = true;\r\n\t\t that.$element.addClass('isFullscreen');\r\n\t }\r\n\t\t\t\t\tif (that.options.onFullscreen && typeof(that.options.onFullscreen) === \"function\") {\r\n\t\t\t\t that.options.onFullscreen(that);\r\n\t\t\t\t }\r\n\t\t\t\t that.$element.trigger('fullscreen', that);\r\n\t });\r\n\r\n\t // Next modal\r\n\t that.$navigate.off('click', '.'+PLUGIN_NAME+'-navigate-next').on('click', '.'+PLUGIN_NAME+'-navigate-next', function (e) {\r\n\t \tthat.next(e);\r\n\t });\r\n\t that.$element.off('click', '[data-'+PLUGIN_NAME+'-next]').on('click', '[data-'+PLUGIN_NAME+'-next]', function (e) {\r\n\t \tthat.next(e);\r\n\t });\r\n\r\n\t // Previous modal\r\n\t that.$navigate.off('click', '.'+PLUGIN_NAME+'-navigate-prev').on('click', '.'+PLUGIN_NAME+'-navigate-prev', function (e) {\r\n\t \tthat.prev(e);\r\n\t });\r\n\t\t\t\tthat.$element.off('click', '[data-'+PLUGIN_NAME+'-prev]').on('click', '[data-'+PLUGIN_NAME+'-prev]', function (e) {\r\n\t \tthat.prev(e);\r\n\t });\r\n\t\t\t}\r\n\r\n\t\t if(this.state == STATES.CLOSED){\r\n\r\n\t\t \tbindEvents();\r\n\r\n\t\t\t\tthis.setGroup();\r\n\t\t\t\tthis.state = STATES.OPENING;\r\n\t this.$element.trigger(STATES.OPENING);\r\n\t\t\t\tthis.$element.attr('aria-hidden', 'false');\r\n\r\n\t\t\t\t// console.info('[ '+PLUGIN_NAME+' | '+this.id+' ] Opening...');\r\n\r\n\t\t\t\tif (this.options.timeoutProgressbar === true) {\r\n\t\t\t\t\tthis.$element.find('.'+PLUGIN_NAME+'-progressbar > div').width('100%');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(this.options.iframe === true){\r\n\r\n\t\t\t\t\tthis.$element.find('.'+PLUGIN_NAME+'-content').addClass(PLUGIN_NAME+'-content-loader');\r\n\r\n\t\t\t\t\tthis.$element.find('.'+PLUGIN_NAME+'-iframe').on('load', function(){\r\n\t\t\t\t\t\t$(this).parent().removeClass(PLUGIN_NAME+'-content-loader');\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tvar href = null;\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\thref = $(param.currentTarget).attr('href') !== '' ? $(param.currentTarget).attr('href') : null;\r\n\t\t\t\t\t} catch(e) { /* console.warn(exc); */ }\r\n\r\n\t\t\t\t\tif( (this.options.iframeURL !== null) && (href === null || href === undefined)){\r\n\t\t\t\t\t\thref = this.options.iframeURL;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(href === null || href === undefined){\r\n\t\t\t\t\t\tthrow new Error('Failed to find iframe URL');\r\n\t\t\t\t\t}\r\n\t\t\t\t this.$element.find('.'+PLUGIN_NAME+'-iframe').attr('src', href);\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tif (this.options.bodyOverflow || isMobile){\r\n\t\t\t\t\t$('html').addClass(PLUGIN_NAME+'-isOverflow');\r\n\t\t\t\t\tif(isMobile){\r\n\t\t\t\t\t\t$('body').css('overflow', 'hidden');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.options.onOpening && typeof(this.options.onOpening) === 'function') {\r\n\t\t\t this.options.onOpening(this);\r\n\t\t\t }\r\n\t\t\t\t(function open(){\r\n\r\n\t\t\t \tif(that.group.ids.length > 1 ){\r\n\r\n\t\t\t \t\tthat.$navigate.appendTo('body');\r\n\t\t\t \t\tthat.$navigate.addClass('fadeIn');\r\n\r\n\t\t\t \t\tif(that.options.navigateCaption === true){\r\n\t\t\t \t\t\tthat.$navigate.find('.'+PLUGIN_NAME+'-navigate-caption').show();\r\n\t\t\t \t\t}\r\n\r\n\t\t\t \t\tvar modalWidth = that.$element.outerWidth();\r\n\t\t\t \t\tif(that.options.navigateArrows !== false){\r\n\t\t\t\t\t \tif (that.options.navigateArrows === 'closeScreenEdge'){\r\n\t\t\t\t \t\t\tthat.$navigate.find('.'+PLUGIN_NAME+'-navigate-prev').css('left', 0).show();\r\n\t\t\t\t \t\t\tthat.$navigate.find('.'+PLUGIN_NAME+'-navigate-next').css('right', 0).show();\r\n\t\t\t\t\t \t} else {\r\n\t\t\t\t\t\t \tthat.$navigate.find('.'+PLUGIN_NAME+'-navigate-prev').css('margin-left', -((modalWidth/2)+84)).show();\r\n\t\t\t\t\t\t \tthat.$navigate.find('.'+PLUGIN_NAME+'-navigate-next').css('margin-right', -((modalWidth/2)+84)).show();\r\n\t\t\t\t\t \t}\r\n\t\t\t \t\t} else {\r\n\t\t\t \t\t\tthat.$navigate.find('.'+PLUGIN_NAME+'-navigate-prev').hide();\r\n\t\t\t \t\t\tthat.$navigate.find('.'+PLUGIN_NAME+'-navigate-next').hide();\r\n\t\t\t \t\t}\r\n\r\n\t\t\t \t\tvar loop;\r\n\t\t\t\t\t\tif(that.group.index === 0){\r\n\r\n\t\t\t\t\t\t\tloop = $('.'+PLUGIN_NAME+'[data-'+PLUGIN_NAME+'-group=\"'+that.group.name+'\"][data-'+PLUGIN_NAME+'-loop]').length;\r\n\r\n\t\t\t\t\t\t\tif(loop === 0 && that.options.loop === false)\r\n\t\t\t\t\t\t\t\tthat.$navigate.find('.'+PLUGIN_NAME+'-navigate-prev').hide();\r\n\t\t\t\t \t}\r\n\t\t\t\t \tif(that.group.index+1 === that.group.ids.length){\r\n\r\n\t\t\t\t \t\tloop = $('.'+PLUGIN_NAME+'[data-'+PLUGIN_NAME+'-group=\"'+that.group.name+'\"][data-'+PLUGIN_NAME+'-loop]').length;\r\n\r\n\t\t\t\t\t\t\tif(loop === 0 && that.options.loop === false)\r\n\t\t\t\t\t\t\t\tthat.$navigate.find('.'+PLUGIN_NAME+'-navigate-next').hide();\r\n\t\t\t\t \t}\r\n\t\t\t \t}\r\n\r\n\t\t\t\t\tif(that.options.overlay === true) {\r\n\r\n\t\t\t\t\t\tif(that.options.appendToOverlay === false){\r\n\t\t\t\t\t\t\tthat.$overlay.appendTo('body');\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthat.$overlay.appendTo( that.options.appendToOverlay );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (that.options.transitionInOverlay) {\r\n\t\t\t\t\t\tthat.$overlay.addClass(that.options.transitionInOverlay);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar transitionIn = that.options.transitionIn;\r\n\r\n\t\t\t\t\tif( typeof param == 'object' ){\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif(param.transition !== undefined || param.transitionIn !== undefined){\r\n\t\t\t\t\t\t\ttransitionIn = param.transition || param.transitionIn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(param.zindex !== undefined){\r\n\t\t\t\t\t\t\tthat.setZindex(param.zindex);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (transitionIn !== '' && animationEvent !== undefined) {\r\n\r\n\t\t\t\t\t\tthat.$element.addClass('transitionIn '+transitionIn).show();\r\n\t\t\t\t\t\tthat.$wrap.one(animationEvent, function () {\r\n\r\n\t\t\t\t\t\t that.$element.removeClass(transitionIn + ' transitionIn');\r\n\t\t\t\t\t\t that.$overlay.removeClass(that.options.transitionInOverlay);\r\n\t\t\t\t\t\t that.$navigate.removeClass('fadeIn');\r\n\r\n\t\t\t\t\t\t\topened();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\tthat.$element.show();\r\n\t\t\t\t\t\topened();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(that.options.pauseOnHover === true && that.options.pauseOnHover === true && that.options.timeout !== false && !isNaN(parseInt(that.options.timeout)) && that.options.timeout !== false && that.options.timeout !== 0){\r\n\r\n\t\t\t\t\t\tthat.$element.off('mouseenter').on('mouseenter', function(event) {\r\n\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\tthat.isPaused = true;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthat.$element.off('mouseleave').on('mouseleave', function(event) {\r\n\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\tthat.isPaused = false;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t})();\r\n\r\n\t\t\t\tif (this.options.timeout !== false && !isNaN(parseInt(this.options.timeout)) && this.options.timeout !== false && this.options.timeout !== 0) {\r\n\r\n\t\t\t\t\tthat.startProgress(this.options.timeout);\r\n\t\t\t\t}\r\n\r\n\t // Close on overlay click\r\n\t if (this.options.overlayClose && !this.$element.hasClass(this.options.transitionOut)) {\r\n\t \tthis.$overlay.click(function () {\r\n\t that.close();\r\n\t \t});\r\n\t }\r\n\r\n\t\t\t\tif (this.options.focusInput){\r\n\t\t\t \tthis.$element.find(':input:not(button):enabled:visible:first').focus(); // Focus on the first field\r\n\t\t\t\t}\r\n\r\n\t\t\t\t(function updateTimer(){\r\n\t\t\t \tthat.recalcLayout();\r\n\t\t\t\t that.timer = setTimeout(updateTimer, 300);\r\n\t\t\t\t})();\r\n\r\n\t // Close when the Escape key is pressed\r\n\t $document.on('keydown.'+PLUGIN_NAME, function (e) {\r\n\t if (that.options.closeOnEscape && e.keyCode === 27) {\r\n\t that.close();\r\n\t }\r\n\t });\r\n\r\n\t\t }\r\n\r\n\t\t},\r\n\r\n\t\tclose: function (param) {\r\n\r\n\t\t\tvar that = this;\r\n\r\n\t\t\tfunction closed(){\r\n\r\n // console.info('[ '+PLUGIN_NAME+' | '+that.id+' ] Closed.');\r\n\r\n that.state = STATES.CLOSED;\r\n that.$element.trigger(STATES.CLOSED);\r\n\r\n if (that.options.iframe === true) {\r\n that.$element.find('.'+PLUGIN_NAME+'-iframe').attr('src', '');\r\n }\r\n\r\n\t\t\t\tif (that.options.bodyOverflow || isMobile){\r\n\t\t\t\t\t$('html').removeClass(PLUGIN_NAME+'-isOverflow');\r\n\t\t\t\t\tif(isMobile){\r\n\t\t\t\t\t\t$('body').css('overflow','auto');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (that.options.onClosed && typeof(that.options.onClosed) === 'function') {\r\n\t\t\t\t\tthat.options.onClosed(that);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(that.options.restoreDefaultContent === true){\r\n\t\t\t\t that.$element.find('.'+PLUGIN_NAME+'-content').html( that.content );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif( $('.'+PLUGIN_NAME+':visible').length === 0 ){\r\n\t\t\t\t\t$('html').removeClass(PLUGIN_NAME+'-isAttached');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n if(this.state == STATES.OPENED || this.state == STATES.OPENING){\r\n\r\n \t$document.off('keydown.'+PLUGIN_NAME);\r\n\r\n\t\t\t\tthis.state = STATES.CLOSING;\r\n\t\t\t\tthis.$element.trigger(STATES.CLOSING);\r\n\t\t\t\tthis.$element.attr('aria-hidden', 'true');\r\n\r\n\t\t\t\t// console.info('[ '+PLUGIN_NAME+' | '+this.id+' ] Closing...');\r\n\r\n\t clearTimeout(this.timer);\r\n\t clearTimeout(this.timerTimeout);\r\n\r\n\t\t\t\tif (that.options.onClosing && typeof(that.options.onClosing) === \"function\") {\r\n\t\t\t that.options.onClosing(this);\r\n\t\t\t }\r\n\r\n\t\t\t\tvar transitionOut = this.options.transitionOut;\r\n\r\n\t\t\t\tif( typeof param == 'object' ){\r\n\t\t\t\t\tif(param.transition !== undefined || param.transitionOut !== undefined){\r\n\t\t\t\t\t\ttransitionOut = param.transition || param.transitionOut;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif( (transitionOut === false || transitionOut === '' ) || animationEvent === undefined){\r\n\r\n\t this.$element.hide();\r\n\t this.$overlay.remove();\r\n \tthis.$navigate.remove();\r\n\t closed();\r\n\r\n\t\t\t\t} else {\r\n\r\n\t this.$element.attr('class', [\r\n\t\t\t\t\t\tthis.classes,\r\n\t\t\t\t\t\tPLUGIN_NAME,\r\n\t\t\t\t\t\ttransitionOut,\r\n\t\t\t\t\t\tthis.options.theme == 'light' ? PLUGIN_NAME+'-light' : this.options.theme,\r\n\t\t\t\t\t\tthis.isFullscreen === true ? 'isFullscreen' : '',\r\n\t\t\t\t\t\tthis.options.rtl ? PLUGIN_NAME+'-rtl' : ''\r\n\t\t\t\t\t].join(' '));\r\n\r\n\t\t\t\t\tthis.$overlay.attr('class', PLUGIN_NAME + '-overlay ' + this.options.transitionOutOverlay);\r\n\r\n\t\t\t\t\tif(that.options.navigateArrows !== false && !isMobile){\r\n\t\t\t\t\t\tthis.$navigate.attr('class', PLUGIN_NAME + '-navigate fadeOut');\r\n\t\t\t\t\t}\r\n\r\n\t this.$element.one(animationEvent, function () {\r\n\r\n\t if( that.$element.hasClass(transitionOut) ){\r\n\t that.$element.removeClass(transitionOut + ' transitionOut').hide();\r\n\t }\r\n that.$overlay.removeClass(that.options.transitionOutOverlay).remove();\r\n\t\t\t\t\t\tthat.$navigate.removeClass('fadeOut').remove();\r\n\t\t\t\t\t\tclosed();\r\n\t });\r\n\r\n\t\t\t\t}\r\n\r\n }\r\n\t\t},\r\n\r\n\t\tnext: function(e){\r\n\r\n var that = this;\r\n var transitionIn = 'fadeInRight';\r\n var transitionOut = 'fadeOutLeft';\r\n\t\t\tvar modal = $('.'+PLUGIN_NAME+':visible');\r\n var modals = {};\r\n\t\t\t\tmodals.out = this;\r\n\r\n\t\t\tif(e !== undefined && typeof e !== 'object'){\r\n \te.preventDefault();\r\n \tmodal = $(e.currentTarget);\r\n \ttransitionIn = modal.attr('data-'+PLUGIN_NAME+'-transitionIn');\r\n \ttransitionOut = modal.attr('data-'+PLUGIN_NAME+'-transitionOut');\r\n\t\t\t} else if(e !== undefined){\r\n\t\t\t\tif(e.transitionIn !== undefined){\r\n\t\t\t\t\ttransitionIn = e.transitionIn;\r\n\t\t\t\t}\r\n\t\t\t\tif(e.transitionOut !== undefined){\r\n\t\t\t\t\ttransitionOut = e.transitionOut;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n \tthis.close({transition:transitionOut});\r\n\r\n\t\t\tsetTimeout(function(){\r\n\r\n\t\t\t\tvar loop = $('.'+PLUGIN_NAME+'[data-'+PLUGIN_NAME+'-group=\"'+that.group.name+'\"][data-'+PLUGIN_NAME+'-loop]').length;\r\n\t\t\t\tfor (var i = that.group.index+1; i <= that.group.ids.length; i++) {\r\n\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tmodals.in = $(\"#\"+that.group.ids[i]).data().iziModal;\r\n\t\t\t\t\t} catch(log) {\r\n\t\t\t\t\t\t// console.info('[ '+PLUGIN_NAME+' ] No next modal.');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof modals.in !== 'undefined'){\r\n\r\n\t\t\t\t\t\t$('#'+that.group.ids[i]).iziModal('open', { transition: transitionIn });\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\tif(i == that.group.ids.length && loop > 0 || that.options.loop === true){\r\n\r\n\t\t\t\t\t\t\tfor (var index = 0; index <= that.group.ids.length; index++) {\r\n\r\n\t\t\t\t\t\t\t\tmodals.in = $('#'+that.group.ids[index]).data().iziModal;\r\n\t\t\t\t\t\t\t\tif(typeof modals.in !== 'undefined'){\r\n\r\n \t\t\t\t\t$('#'+that.group.ids[index]).iziModal('open', { transition: transitionIn });\r\n \r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}, 200);\r\n\r\n\t\t\t$(document).trigger( PLUGIN_NAME + '-group-change', modals );\r\n\t\t},\r\n\r\n\t\tprev: function(e){\r\n var that = this;\r\n var transitionIn = 'fadeInLeft';\r\n var transitionOut = 'fadeOutRight';\r\n\t\t\tvar modal = $('.'+PLUGIN_NAME+':visible');\r\n var modals = {};\r\n\t\t\t\tmodals.out = this;\r\n\r\n\t\t\tif(e !== undefined && typeof e !== 'object'){\r\n \te.preventDefault();\r\n \tmodal = $(e.currentTarget);\r\n \ttransitionIn = modal.attr('data-'+PLUGIN_NAME+'-transitionIn');\r\n \ttransitionOut = modal.attr('data-'+PLUGIN_NAME+'-transitionOut');\r\n\r\n\t\t\t} else if(e !== undefined){\r\n\r\n\t\t\t\tif(e.transitionIn !== undefined){\r\n\t\t\t\t\ttransitionIn = e.transitionIn;\r\n\t\t\t\t}\r\n\t\t\t\tif(e.transitionOut !== undefined){\r\n\t\t\t\t\ttransitionOut = e.transitionOut;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.close({transition:transitionOut});\r\n\r\n\t\t\tsetTimeout(function(){\r\n\r\n\t\t\t\tvar loop = $('.'+PLUGIN_NAME+'[data-'+PLUGIN_NAME+'-group=\"'+that.group.name+'\"][data-'+PLUGIN_NAME+'-loop]').length;\r\n\r\n\t\t\t\tfor (var i = that.group.index; i >= 0; i--) {\r\n\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tmodals.in = $('#'+that.group.ids[i-1]).data().iziModal;\r\n\t\t\t\t\t} catch(log) {\r\n\t\t\t\t\t\t// console.info('[ '+PLUGIN_NAME+' ] No previous modal.');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof modals.in !== 'undefined'){\r\n\r\n\t\t\t\t\t\t$('#'+that.group.ids[i-1]).iziModal('open', { transition: transitionIn });\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\tif(i === 0 && loop > 0 || that.options.loop === true){\r\n\r\n\t\t\t\t\t\t\tfor (var index = that.group.ids.length-1; index >= 0; index--) {\r\n\r\n\t\t\t\t\t\t\t\tmodals.in = $('#'+that.group.ids[index]).data().iziModal;\r\n\t\t\t\t\t\t\t\tif(typeof modals.in !== 'undefined'){\r\n\r\n\t\t\t\t\t\t\t\t\t$('#'+that.group.ids[index]).iziModal('open', { transition: transitionIn });\r\n\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}, 200);\r\n\r\n\t\t\t$(document).trigger( PLUGIN_NAME + '-group-change', modals );\r\n\t\t},\r\n\r\n\t\tdestroy: function() {\r\n\t\t\tvar e = $.Event('destroy');\r\n\r\n\t\t\tthis.$element.trigger(e);\r\n\r\n $document.off('keydown.'+PLUGIN_NAME);\r\n\r\n\t\t\tclearTimeout(this.timer);\r\n\t\t\tclearTimeout(this.timerTimeout);\r\n\r\n\t\t\tif (this.options.iframe === true) {\r\n\t\t\t\tthis.$element.find('.'+PLUGIN_NAME+'-iframe').remove();\r\n\t\t\t}\r\n\t\t\tthis.$element.html(this.$element.find('.'+PLUGIN_NAME+'-content').html());\r\n\r\n\t\t\tthis.$element.off('click', '[data-'+PLUGIN_NAME+'-close]');\r\n\t\t\tthis.$element.off('click', '[data-'+PLUGIN_NAME+'-fullscreen]');\r\n\r\n\t\t\tthis.$element\r\n\t\t\t\t.off('.'+PLUGIN_NAME)\r\n\t\t\t\t.removeData(PLUGIN_NAME)\r\n\t\t\t\t.attr('style', '');\r\n\r\n\t\t\tthis.$overlay.remove();\r\n\t\t\tthis.$navigate.remove();\r\n\t\t\tthis.$element.trigger(STATES.DESTROYED);\r\n\t\t\tthis.$element = null;\r\n\t\t},\r\n\r\n\t\tgetState: function(){\r\n\r\n\t\t\treturn this.state;\r\n\t\t},\r\n\r\n\t\tgetGroup: function(){\r\n\r\n\t\t\treturn this.group;\r\n\t\t},\r\n\r\n\t\tsetWidth: function(width){\r\n\r\n\t\t\tthis.options.width = width;\r\n\r\n\t\t\tthis.recalcWidth();\r\n\r\n\t\t\tvar modalWidth = this.$element.outerWidth();\r\n \t\tif(this.options.navigateArrows === true || this.options.navigateArrows == 'closeToModal'){\r\n\t\t \tthis.$navigate.find('.'+PLUGIN_NAME+'-navigate-prev').css('margin-left', -((modalWidth/2)+84)).show();\r\n\t\t \tthis.$navigate.find('.'+PLUGIN_NAME+'-navigate-next').css('margin-right', -((modalWidth/2)+84)).show();\r\n \t\t}\r\n\r\n\t\t},\r\n\r\n\t\tsetTop: function(top){\r\n\r\n\t\t\tthis.options.top = top;\r\n\r\n\t\t\tthis.recalcVerticalPos(false);\r\n\t\t},\r\n\r\n\t\tsetBottom: function(bottom){\r\n\r\n\t\t\tthis.options.bottom = bottom;\r\n\r\n\t\t\tthis.recalcVerticalPos(false);\r\n\r\n\t\t},\r\n\r\n\t\tsetHeader: function(status){\r\n\r\n\t\t\tif(status){\r\n\t\t\t\tthis.$element.find('.'+PLUGIN_NAME+'-header').show();\r\n\t\t\t} else {\r\n\t\t\t\tthis.headerHeight = 0;\r\n\t\t\t\tthis.$element.find('.'+PLUGIN_NAME+'-header').hide();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsetTitle: function(title){\r\n\r\n\t\t\tthis.options.title = title;\r\n\r\n\t\t\tif(this.headerHeight === 0){\r\n\t\t\t\tthis.createHeader();\r\n\t\t\t}\r\n\r\n\t\t\tif( this.$header.find('.'+PLUGIN_NAME+'-header-title').length === 0 ){\r\n\t\t\t\tthis.$header.append('

');\r\n\t\t\t}\r\n\r\n\t\t\tthis.$header.find('.'+PLUGIN_NAME+'-header-title').html(title);\r\n\t\t},\r\n\r\n\t\tsetSubtitle: function(subtitle){\r\n\r\n\t\t\tif(subtitle === ''){\r\n\r\n\t\t\t\tthis.$header.find('.'+PLUGIN_NAME+'-header-subtitle').remove();\r\n\t\t\t\tthis.$header.addClass(PLUGIN_NAME+'-noSubtitle');\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tif( this.$header.find('.'+PLUGIN_NAME+'-header-subtitle').length === 0 ){\r\n\t\t\t\t\tthis.$header.append('

');\r\n\t\t\t\t}\r\n\t\t\t\tthis.$header.removeClass(PLUGIN_NAME+'-noSubtitle');\r\n\r\n\t\t\t}\r\n\r\n\t\t\tthis.$header.find('.'+PLUGIN_NAME+'-header-subtitle').html(subtitle);\r\n\t\t\tthis.options.subtitle = subtitle;\r\n\t\t},\r\n\r\n\t\tsetIcon: function(icon){\r\n\r\n\t\t\tif( this.$header.find('.'+PLUGIN_NAME+'-header-icon').length === 0 ){\r\n\t\t\t\tthis.$header.prepend('');\r\n\t\t\t}\r\n\t\t\tthis.$header.find('.'+PLUGIN_NAME+'-header-icon').attr('class', PLUGIN_NAME+'-header-icon ' + icon);\r\n\t\t\tthis.options.icon = icon;\r\n\t\t},\r\n\r\n\t\tsetIconText: function(iconText){\r\n\r\n\t\t\tthis.$header.find('.'+PLUGIN_NAME+'-header-icon').html(iconText);\r\n\t\t\tthis.options.iconText = iconText;\r\n\t\t},\r\n\r\n\t\tsetHeaderColor: function(headerColor){\r\n\t\t\tif(this.options.borderBottom === true){\r\n \tthis.$element.css('border-bottom', '3px solid ' + headerColor + '');\r\n \t}\r\n this.$header.css('background', headerColor);\r\n this.options.headerColor = headerColor;\r\n\t\t},\r\n\r\n\t\tsetBackground: function(background){\r\n\t\t\tif(background === false){\r\n\t\t\t\tthis.options.background = null;\r\n\t\t\t\tthis.$element.css('background', '');\r\n\t\t\t} else{\r\n \tthis.$element.css('background', background);\r\n \tthis.options.background = background;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsetZindex: function(zindex){\r\n\r\n\t if (!isNaN(parseInt(this.options.zindex))) {\r\n\t \tthis.options.zindex = zindex;\r\n\t\t\t \tthis.$element.css('z-index', zindex);\r\n\t\t\t \tthis.$navigate.css('z-index', zindex-1);\r\n\t\t\t \tthis.$overlay.css('z-index', zindex-2);\r\n\t }\r\n\t\t},\r\n\r\n\t\tsetFullscreen: function(value){\r\n\r\n\t\t\tif(value){\r\n\t\t\t this.isFullscreen = true;\r\n\t\t\t this.$element.addClass('isFullscreen');\r\n\t\t\t} else {\r\n\t\t\t\tthis.isFullscreen = false;\r\n\t\t\t this.$element.removeClass('isFullscreen');\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\tsetContent: function(content){\r\n\r\n\t\t\tif( typeof content == 'object' ){\r\n\t\t\t\tvar replace = content.default || false;\r\n\t\t\t\tif(replace === true){\r\n\t\t\t\t\tthis.content = content.content;\r\n\t\t\t\t}\r\n\t\t\t\tcontent = content.content;\r\n\t\t\t}\r\n if (this.options.iframe === false) {\r\n \t\tthis.$element.find('.'+PLUGIN_NAME+'-content').html(content);\r\n }\r\n\r\n\t\t},\r\n\r\n\t\tsetTransitionIn: function(transition){\r\n\r\n\t\t\tthis.options.transitionIn = transition;\r\n\t\t},\r\n\r\n\t\tsetTransitionOut: function(transition){\r\n\r\n\t\t\tthis.options.transitionOut = transition;\r\n\t\t},\r\n\r\n\t\tsetTimeout: function(timeout){\r\n\r\n\t\t\tthis.options.timeout = timeout;\r\n\t\t},\r\n\r\n\t\tresetContent: function(){\r\n\r\n\t\t\tthis.$element.find('.'+PLUGIN_NAME+'-content').html(this.content);\r\n\t\t},\r\n\r\n\t\tstartLoading: function(){\r\n\r\n\t\t\tif( !this.$element.find('.'+PLUGIN_NAME+'-loader').length ){\r\n\t\t\t\tthis.$element.append('
');\r\n\t\t\t}\r\n\t\t\tthis.$element.find('.'+PLUGIN_NAME+'-loader').css({\r\n\t\t\t\ttop: this.headerHeight,\r\n \t\t\tborderRadius: this.options.radius\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tstopLoading: function(){\r\n\r\n\t\t\tvar $loader = this.$element.find('.'+PLUGIN_NAME+'-loader');\r\n\r\n\t\t\tif( !$loader.length ){\r\n\t\t\t\tthis.$element.prepend('
');\r\n\t\t\t\t$loader = this.$element.find('.'+PLUGIN_NAME+'-loader').css('border-radius', this.options.radius);\r\n\t\t\t}\r\n\t\t\t$loader.removeClass('fadeIn').addClass('fadeOut');\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\t$loader.remove();\r\n\t\t\t},600);\r\n\t\t},\r\n\r\n\t\trecalcWidth: function(){\r\n\r\n\t\t\tvar that = this;\r\n\r\n this.$element.css('max-width', this.options.width);\r\n\r\n if(isIE()){\r\n \tvar modalWidth = that.options.width;\r\n\r\n \tif(modalWidth.toString().split('%').length > 1){\r\n\t\t\t\t\tmodalWidth = that.$element.outerWidth();\r\n \t}\r\n \tthat.$element.css({\r\n \t\tleft: '50%',\r\n \t\tmarginLeft: -(modalWidth/2)\r\n \t});\r\n }\r\n\t\t},\r\n\r\n\t\trecalcVerticalPos: function(first){\r\n\r\n\t\t\tif(this.options.top !== null && this.options.top !== false){\r\n \tthis.$element.css('margin-top', this.options.top);\r\n \tif(this.options.top === 0){\r\n \t\tthis.$element.css({\r\n \t\t\tborderTopRightRadius: 0,\r\n \t\t\tborderTopLeftRadius: 0\r\n \t\t});\r\n \t}\r\n\t\t\t} else {\r\n\t\t\t\tif(first === false){\r\n\t\t\t\t\tthis.$element.css({\r\n\t\t\t\t\t\tmarginTop: '',\r\n \t\t\tborderRadius: this.options.radius\r\n \t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.options.bottom !== null && this.options.bottom !== false){\r\n \tthis.$element.css('margin-bottom', this.options.bottom);\r\n \tif(this.options.bottom === 0){\r\n \t\tthis.$element.css({\r\n \t\t\tborderBottomRightRadius: 0,\r\n \t\t\tborderBottomLeftRadius: 0\r\n \t\t});\r\n \t}\r\n\t\t\t} else {\r\n\t\t\t\tif(first === false){\r\n\t\t\t\t\tthis.$element.css({\r\n\t\t\t\t\t\tmarginBottom: '',\r\n \t\t\tborderRadius: this.options.radius\r\n \t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\trecalcLayout: function(){\r\n\r\n\t\t\tvar that = this,\r\n \t\twindowHeight = $window.height(),\r\n modalHeight = this.$element.outerHeight(),\r\n modalWidth = this.$element.outerWidth(),\r\n contentHeight = this.$element.find('.'+PLUGIN_NAME+'-content')[0].scrollHeight,\r\n \touterHeight = contentHeight + this.headerHeight,\r\n \twrapperHeight = this.$element.innerHeight() - this.headerHeight,\r\n modalMargin = parseInt(-((this.$element.innerHeight() + 1) / 2)) + 'px',\r\n \tscrollTop = this.$wrap.scrollTop(),\r\n \tborderSize = 0;\r\n\r\n\t\t\tif(isIE()){\r\n\t\t\t\tif( modalWidth >= $window.width() || this.isFullscreen === true ){\r\n\t\t\t\t\tthis.$element.css({\r\n\t\t\t\t\t\tleft: '0',\r\n\t\t\t\t\t\tmarginLeft: ''\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t \tthis.$element.css({\r\n\t \t\tleft: '50%',\r\n\t \t\tmarginLeft: -(modalWidth/2)\r\n\t \t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(this.options.borderBottom === true && this.options.title !== ''){\r\n\t\t\t\tborderSize = 3;\r\n\t\t\t}\r\n\r\n if(this.$element.find('.'+PLUGIN_NAME+'-header').length && this.$element.find('.'+PLUGIN_NAME+'-header').is(':visible') ){\r\n \tthis.headerHeight = parseInt(this.$element.find('.'+PLUGIN_NAME+'-header').innerHeight());\r\n \tthis.$element.css('overflow', 'hidden');\r\n } else {\r\n \tthis.headerHeight = 0;\r\n \tthis.$element.css('overflow', '');\r\n }\r\n\r\n\t\t\tif(this.$element.find('.'+PLUGIN_NAME+'-loader').length){\r\n\t\t\t\tthis.$element.find('.'+PLUGIN_NAME+'-loader').css('top', this.headerHeight);\r\n\t\t\t}\r\n\r\n\t\t\tif(modalHeight !== this.modalHeight){\r\n\t\t\t\tthis.modalHeight = modalHeight;\r\n\r\n\t\t\t\tif (this.options.onResize && typeof(this.options.onResize) === \"function\") {\r\n\t\t\t this.options.onResize(this);\r\n\t\t\t }\r\n\t\t\t}\r\n\r\n if(this.state == STATES.OPENED || this.state == STATES.OPENING){\r\n\r\n\t\t\t\tif (this.options.iframe === true) {\r\n\r\n\t\t\t\t\t// If the height of the window is smaller than the modal with iframe\r\n\t\t\t\t\tif(windowHeight < (this.options.iframeHeight + this.headerHeight+borderSize) || this.isFullscreen === true){\r\n\t\t\t\t\t\tthis.$element.find('.'+PLUGIN_NAME+'-iframe').css( 'height', windowHeight - (this.headerHeight+borderSize));\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.$element.find('.'+PLUGIN_NAME+'-iframe').css( 'height', this.options.iframeHeight);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(modalHeight == windowHeight){\r\n\t\t\t\t\tthis.$element.addClass('isAttached');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.$element.removeClass('isAttached');\r\n\t\t\t\t}\r\n\r\n \t\tif(this.isFullscreen === false && this.$element.width() >= $window.width() ){\r\n \t\t\tthis.$element.find('.'+PLUGIN_NAME+'-button-fullscreen').hide();\r\n \t\t} else {\r\n \t\t\tthis.$element.find('.'+PLUGIN_NAME+'-button-fullscreen').show();\r\n \t\t}\r\n\t\t\t\tthis.recalcButtons();\r\n\r\n\t\t\t\tif(this.isFullscreen === false){\r\n\t \twindowHeight = windowHeight - (clearValue(this.options.top) || 0) - (clearValue(this.options.bottom) || 0);\r\n\t\t\t\t}\r\n // If the modal is larger than the height of the window..\r\n if (outerHeight > windowHeight) {\r\n\t\t\t\t\tif(this.options.top > 0 && this.options.bottom === null && contentHeight < $window.height()){\r\n\t\t\t\t \tthis.$element.addClass('isAttachedBottom');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(this.options.bottom > 0 && this.options.top === null && contentHeight < $window.height()){\r\n\t\t\t\t \tthis.$element.addClass('isAttachedTop');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif( $('.'+PLUGIN_NAME+':visible').length === 1 ){\r\n\t\t\t\t\t\t$('html').addClass(PLUGIN_NAME+'-isAttached');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.$element.css( 'height', windowHeight );\r\n\r\n } else {\r\n \tthis.$element.css('height', contentHeight + (this.headerHeight+borderSize));\r\n\t\t \t\tthis.$element.removeClass('isAttachedTop isAttachedBottom');\r\n\t\t \t\tif( $('.'+PLUGIN_NAME+':visible').length === 1 ){\r\n\t\t \t\t\t$('html').removeClass(PLUGIN_NAME+'-isAttached');\r\n\t\t \t\t}\r\n }\r\n\r\n (function applyScroll(){\r\n \tif(contentHeight > wrapperHeight && outerHeight > windowHeight){\r\n \t\tthat.$element.addClass('hasScroll');\r\n \t\tthat.$wrap.css('height', modalHeight - (that.headerHeight+borderSize));\r\n \t} else {\r\n \t\tthat.$element.removeClass('hasScroll');\r\n \t\tthat.$wrap.css('height', 'auto');\r\n \t}\r\n \t})();\r\n\r\n\t (function applyShadow(){\r\n\t if (wrapperHeight + scrollTop < (contentHeight - 30)) {\r\n\t that.$element.addClass('hasShadow');\r\n\t } else {\r\n\t that.$element.removeClass('hasShadow');\r\n\t }\r\n\t\t\t\t})();\r\n\r\n \t}\r\n\t\t},\r\n\r\n\t\trecalcButtons: function(){\r\n\t\t\tvar widthButtons = this.$header.find('.'+PLUGIN_NAME+'-header-buttons').innerWidth()+10;\r\n\t\t\tif(this.options.rtl === true){\r\n\t\t\t\tthis.$header.css('padding-left', widthButtons);\r\n\t\t\t} else {\r\n\t\t\t\tthis.$header.css('padding-right', widthButtons);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t};\r\n\r\n\r\n\t$window.off('load.'+PLUGIN_NAME).on('load.'+PLUGIN_NAME, function(e) {\r\n\r\n\t\tvar modalHash = document.location.hash;\r\n\r\n\t\tif(window.$iziModal.autoOpen === 0 && !$('.'+PLUGIN_NAME).is(':visible')){\r\n\r\n\t\t\ttry {\r\n\t\t\t\tvar data = $(modalHash).data();\r\n\t\t\t\tif(typeof data !== 'undefined'){\r\n\t\t\t\t\tif(data.iziModal.options.autoOpen !== false){\r\n\t\t\t\t\t\t$(modalHash).iziModal('open');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} catch(exc) { /* console.warn(exc); */ }\r\n\t\t}\r\n\r\n\t});\r\n\r\n\t$window.off('hashchange.'+PLUGIN_NAME).on('hashchange.'+PLUGIN_NAME, function(e) {\r\n\r\n\t\tvar modalHash = document.location.hash;\r\n\r\n\t\tif(modalHash !== ''){\r\n\t\t\ttry {\r\n \t\t\tvar data = $(modalHash).data();\r\n\r\n\t\t\t\tif(typeof data !== 'undefined' && $(modalHash).iziModal('getState') !== 'opening'){\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$(modalHash).iziModal('open', { preventClose: false });\r\n\t\t\t\t\t},200);\r\n\t\t\t\t}\r\n\t\t\t} catch(exc) { /* console.warn(exc); */ }\r\n\r\n\t\t} else {\r\n\r\n\t\t\tif(window.$iziModal.history){\r\n\t\t\t\t$.each( $('.'+PLUGIN_NAME) , function(index, modal) {\r\n\t\t\t\t\tif( $(modal).data().iziModal !== undefined ){\r\n\t\t\t\t\t\tvar state = $(modal).iziModal('getState');\r\n\t\t\t\t\t\tif(state == 'opened' || state == 'opening'){\r\n\t\t\t\t\t\t\t$(modal).iziModal('close');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t});\r\n\r\n\t$document.off('click', '[data-'+PLUGIN_NAME+'-open]').on('click', '[data-'+PLUGIN_NAME+'-open]', function(e) {\r\n\t\te.preventDefault();\r\n\r\n\t\tvar modal = $('.'+PLUGIN_NAME+':visible');\r\n\t\tvar openModal = $(e.currentTarget).attr('data-'+PLUGIN_NAME+'-open');\r\n\t\tvar preventClose = $(e.currentTarget).attr('data-'+PLUGIN_NAME+'-preventClose');\r\n\t\tvar transitionIn = $(e.currentTarget).attr('data-'+PLUGIN_NAME+'-transitionIn');\r\n\t\tvar transitionOut = $(e.currentTarget).attr('data-'+PLUGIN_NAME+'-transitionOut');\r\n\t\tvar zindex = $(e.currentTarget).attr('data-'+PLUGIN_NAME+'-zindex');\r\n\r\n\t\tif(zindex !== undefined)\r\n\t\t\t$(openModal).iziModal('setZindex', zindex);\r\n\r\n\t\tif(preventClose === undefined){\r\n\t\t\tif(transitionOut !== undefined){\r\n\t\t\t\tmodal.iziModal('close', {\r\n\t\t\t\t\ttransition: transitionOut\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tmodal.iziModal('close');\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tsetTimeout(function(){\r\n\t\t\tif(transitionIn !== undefined){\r\n\t\t\t\t$(openModal).iziModal('open', {\r\n\t\t\t\t\ttransition: transitionIn\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t$(openModal).iziModal('open');\r\n\t\t\t}\r\n\t\t}, 200);\r\n\t});\r\n\r\n\t$document.off('keyup.'+PLUGIN_NAME).on('keyup.'+PLUGIN_NAME, function(event) {\r\n\r\n\t\tif( $('.'+PLUGIN_NAME+':visible').length ){\r\n\t\t\tvar modal = $('.'+PLUGIN_NAME+':visible')[0].id,\r\n\t\t\t\tarrowKeys = $('#'+modal).data().iziModal.options.arrowKeys,\r\n\t\t\t\tgroup = $('#'+modal).iziModal('getGroup'),\r\n\t\t\t\te = event || window.event,\r\n\t\t\t\ttarget = e.target || e.srcElement,\r\n\t\t\t\tmodals = {};\r\n\r\n\t\t\tif(modal !== undefined && arrowKeys && group.name !== undefined && !e.ctrlKey && !e.metaKey && !e.altKey && target.tagName.toUpperCase() !== 'INPUT' && target.tagName.toUpperCase() != 'TEXTAREA'){ //&& $(e.target).is('body')\r\n\r\n\t\t\t\tif(e.keyCode === 37) { // left\r\n\t\t\t\t\t$('#'+modal).iziModal('prev', e);\r\n\t\t\t\t}\r\n\t\t\t\telse if(e.keyCode === 39 ) { // right\r\n\t\t\t\t\t$('#'+modal).iziModal('next', e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t$.fn[PLUGIN_NAME] = function(option, args) {\r\n\r\n\r\n\t\tif( !$(this).length && typeof option == 'object'){\r\n\r\n\t\t\tvar newEL = {\r\n\t\t\t\t$el: document.createElement('div'),\r\n\t\t\t\tid: this.selector.split('#'),\r\n\t\t\t\tclass: this.selector.split('.')\r\n\t\t\t};\r\n\r\n\t\t\tif(newEL.id.length > 1){\r\n\t\t\t\ttry{\r\n\t\t\t\t\tnewEL.$el = document.createElement(id[0]);\r\n\t\t\t\t} catch(exc){ }\r\n\r\n\t\t\t\tnewEL.$el.id = this.selector.split('#')[1].trim();\r\n\r\n\t\t\t} else if(newEL.class.length > 1){\r\n\t\t\t\ttry{\r\n\t\t\t\t\tnewEL.$el = document.createElement(newEL.class[0]);\r\n\t\t\t\t} catch(exc){ }\r\n\r\n\t\t\t\tfor (var x=1; x= 9\r\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill\r\n */\r\n if(typeof window.CustomEvent !== 'function') {\r\n var CustomEventPolyfill = function (event, params) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n };\r\n\r\n CustomEventPolyfill.prototype = window.Event.prototype;\r\n\r\n window.CustomEvent = CustomEventPolyfill;\r\n }\r\n\r\n\t/**\r\n\t * A simple forEach() implementation for Arrays, Objects and NodeLists\r\n\t * @private\r\n\t * @param {Array|Object|NodeList} collection Collection of items to iterate\r\n\t * @param {Function} callback Callback function for each iteration\r\n\t * @param {Array|Object|NodeList} scope Object/NodeList/Array that forEach is iterating over (aka `this`)\r\n\t */\r\n\tvar forEach = function (collection, callback, scope) {\r\n\t\tif(Object.prototype.toString.call(collection) === '[object Object]') {\r\n\t\t\tfor (var prop in collection) {\r\n\t\t\t\tif(Object.prototype.hasOwnProperty.call(collection, prop)) {\r\n\t\t\t\t\tcallback.call(scope, collection[prop], prop, collection);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif(collection){\r\n\t\t\t\tfor (var i = 0, len = collection.length; i < len; i++) {\r\n\t\t\t\t\tcallback.call(scope, collection[i], i, collection);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Merge defaults with user options\r\n\t * @private\r\n\t * @param {Object} defaults Default settings\r\n\t * @param {Object} options User options\r\n\t * @returns {Object} Merged values of defaults and options\r\n\t */\r\n\tvar extend = function (defaults, options) {\r\n\t\tvar extended = {};\r\n\t\tforEach(defaults, function (value, prop) {\r\n\t\t\textended[prop] = defaults[prop];\r\n\t\t});\r\n\t\tforEach(options, function (value, prop) {\r\n\t\t\textended[prop] = options[prop];\r\n\t\t});\r\n\t\treturn extended;\r\n\t};\r\n\r\n\t/**\r\n\t * Create inputs\r\n\t * @private\r\n\t */\r\n\tvar createInput = function(inputObj) {\r\n\t\tvar allowedAttributes = ['type', 'id', 'class', 'name', 'style', 'placeholder', 'min', 'max', 'minlength', 'maxlength', 'min', 'disabled', 'readonly', 'required', 'size', 'multiple', 'value'],\r\n\t\t\t\tallowedInputs = ['select', 'checkbox', 'color', 'date', 'datetime-local', 'email', 'file', 'hidden', 'image', 'month', 'number', 'password', 'radio', 'range', 'search', 'tel', 'text', 'time', 'url', 'week'],\r\n\t\t\t\twrap = document.createElement('div'),\r\n\t\t\t\tinput;\r\n\r\n\t\tif(inputObj.type && allowedInputs.indexOf(inputObj.type) !== -1){\r\n\r\n\t\t\tvar type = inputObj.type === 'select' ? 'select' : 'input'\r\n\t\t\tinput = document.createElement(type);\r\n\t\t\tObject.keys(inputObj).forEach( function(key) {\r\n\t\t\t\tif(allowedAttributes.indexOf(key) !== -1){\r\n\t\t\t\t\tinput.setAttribute(key, inputObj[key])\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif(inputObj.options && inputObj.options.length > 0 && inputObj.type === 'select'){\r\n\r\n\t\t\t\tinputObj.options.forEach( function(item) {\r\n\t\t\t\t\tvar option = document.createElement('option');\r\n\t\t\t\t\toption.textContent = item.text;\r\n\t\t\t\t\toption.value = item.value\r\n\t\t\t\t\t\r\n\t\t\t\t\tinput.appendChild(option);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\twrap.appendChild(input);\r\n\r\n\t\tif(inputObj.label){\r\n\t\t\tvar label = document.createElement('label');\r\n\t\t\tif(inputObj.for){\r\n\t\t\t\tlabel.setAttribute('for', inputObj.for);\r\n\t\t\t\tlabel.textContent = inputObj.label;\r\n\t\t\t}\r\n\t\t\tinput.parentNode.insertBefore(label, input.nextSibling);\r\n\t\t}\r\n\t\treturn wrap\r\n\t};\r\n\r\n\t/**\r\n\t * Generates new ID\r\n\t * @private\r\n\t */\r\n\tvar generateId = function(params) {\r\n\t\tvar newId = btoa(encodeURIComponent(params));\r\n\t\treturn newId.replace(/=/g, \"\");\r\n\t};\r\n\r\n\t/**\r\n\t * Checks if is a color\r\n\t * @private\r\n\t */\r\n\tvar isColor = function(color){\r\n\t\tif( color.substring(0,1) == '#' || color.substring(0,3) == 'rgb' || color.substring(0,3) == 'hsl' ){\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Checks if is a Base64 string\r\n\t * @private\r\n\t */\r\n\tvar isBase64 = function(str) {\r\n\t\ttry {\r\n\t\t\treturn btoa(atob(str)) == str;\r\n\t\t} catch (err) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t};\r\n\r\n\t\t/**\r\n\t * Displays a log message\r\n\t * @private\r\n\t */\r\n\tvar Log = function(str) {\r\n\t\treturn console.warn('['+PLUGIN_NAME+']', str);\r\n\t};\r\n\r\n\t/**\r\n\t * Drag method of toasts\r\n\t * @private\r\n\t */\r\n\tvar drag = function() {\r\n\r\n\t\treturn {\r\n\t\t\tmove: function(toast, instance, settings, xpos) {\r\n\r\n\t\t\t\tvar opacity,\r\n\t\t\t\t\topacityRange = 0.3,\r\n\t\t\t\t\tdistance = 180;\r\n\t\t\t\t\t\r\n\t\t\t\tif(xpos !== 0){\r\n\t\t\t\t\t\r\n\t\t\t\t\ttoast.classList.add(PLUGIN_NAME+'-dragged');\r\n\r\n\t\t\t\t\ttoast.style.transform = 'translateX('+xpos + 'px)';\r\n\r\n\t\t\t\t\tif(xpos > 0){\r\n\t\t\t\t\t\topacity = (distance-xpos) / distance;\r\n\t\t\t\t\t\tif(opacity < opacityRange){\r\n\t\t\t\t\t\t\tinstance.hide(extend(settings, { transitionOut: 'fadeOutRight', transitionOutMobile: 'fadeOutRight' }), toast, 'drag');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\topacity = (distance+xpos) / distance;\r\n\t\t\t\t\t\tif(opacity < opacityRange){\r\n\t\t\t\t\t\t\tinstance.hide(extend(settings, { transitionOut: 'fadeOutLeft', transitionOutMobile: 'fadeOutLeft' }), toast, 'drag');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttoast.style.opacity = opacity;\r\n\r\n\t\t\t\t\tif(opacity < opacityRange){\r\n\r\n\t\t\t\t\t\tif(ISCHROME || ISFIREFOX) toast.style.left = xpos+'px';\r\n\r\n\t\t\t\t\t\ttoast.parentNode.style.opacity = opacityRange;\r\n\r\n\t\t\t\t\t\tthis.stopMoving(toast, null);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tstartMoving: function(toast, instance, settings, e) {\r\n\r\n\t\t\t\te = e || window.event;\r\n\t\t\t\tvar posX = ((ACCEPTSTOUCH) ? e.touches[0].clientX : e.clientX),\r\n\t\t\t\t\t\ttoastLeft = toast.style.transform.replace('px)', '');\r\n\t\t\t\t\t\ttoastLeft = toastLeft.replace('translateX(', '');\r\n\t\t\t\tvar offsetX = posX - toastLeft;\r\n\r\n\t\t\t\tif(settings.transitionIn){\r\n\t\t\t\t\ttoast.classList.remove(settings.transitionIn);\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.transitionInMobile){\r\n\t\t\t\t\ttoast.classList.remove(settings.transitionInMobile);\r\n\t\t\t\t}\r\n\t\t\t\ttoast.style.transition = '';\r\n\r\n\t\t\t\tif(ACCEPTSTOUCH) {\r\n\t\t\t\t\tdocument.ontouchmove = function(e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\te = e || window.event;\r\n\t\t\t\t\t\tvar posX = e.touches[0].clientX,\r\n\t\t\t\t\t\t\t\tfinalX = posX - offsetX;\r\n\t\t\t\t\t\tdrag.move(toast, instance, settings, finalX);\r\n\t\t\t\t\t};\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdocument.onmousemove = function(e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\te = e || window.event;\r\n\t\t\t\t\t\tvar posX = e.clientX,\r\n\t\t\t\t\t\t\t\tfinalX = posX - offsetX;\r\n\t\t\t\t\t\t\tdrag.move(toast, instance, settings, finalX);\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t},\r\n\t\t\tstopMoving: function(toast, e) {\r\n\r\n\t\t\t\tif(ACCEPTSTOUCH) {\r\n\t\t\t\t\t\tdocument.ontouchmove = function() {};\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdocument.onmousemove = function() {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttoast.style.opacity = '';\r\n\t\t\t\ttoast.style.transform = '';\r\n\r\n\t\t\t\tif(toast.classList.contains(PLUGIN_NAME+'-dragged')){\r\n\t\t\t\t\t\r\n\t\t\t\t\ttoast.classList.remove(PLUGIN_NAME+'-dragged');\r\n\r\n\t\t\t\t\ttoast.style.transition = 'transform 0.4s ease, opacity 0.4s ease';\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\ttoast.style.transition = '';\r\n\t\t\t\t\t}, 400);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t}();\r\n\r\n\r\n\t/**\r\n\t * Set settings\r\n\t * @public\r\n\t */\r\n\t$iziToast.setSetting = function (ref, option, value) {\r\n\r\n\t\t$iziToast.children[ref][option] = value;\r\n\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Get settings\r\n\t * @public\r\n\t */\r\n\t$iziToast.getSettings = function (ref, option) {\r\n\r\n\t\tif(option){\r\n\t\t\ttry {\r\n\t\t\t\treturn $iziToast.children[ref][option];\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.warn(error)\r\n\t\t\t\tLog('invalid option.')\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn $iziToast.children[ref];\r\n\t\t}\r\n\r\n\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Destroy the current initialization.\r\n\t * @public\r\n\t */\r\n\t$iziToast.destroy = function () {\r\n\r\n\t\tforEach(document.querySelectorAll('.'+PLUGIN_NAME+'-overlay'), function(element, index) {\r\n\t\t\telement.remove();\r\n\t\t});\r\n\r\n\t\tforEach(document.querySelectorAll('.'+PLUGIN_NAME+'-wrapper'), function(element, index) {\r\n\t\t\telement.remove();\r\n\t\t});\r\n\r\n\t\tforEach(document.querySelectorAll('.'+PLUGIN_NAME), function(element, index) {\r\n\t\t\telement.remove();\r\n\t\t});\r\n\r\n\t\tthis.children = {};\r\n\r\n\t\t// Remove event listeners\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-opened', {}, false);\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-opening', {}, false);\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-closing', {}, false);\r\n\t\tdocument.removeEventListener(PLUGIN_NAME+'-closed', {}, false);\r\n\t\tdocument.removeEventListener('keyup', {}, false);\r\n\r\n\t\t// Reset variables\r\n\t\tCONFIG = {};\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Initialize Plugin\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\t$iziToast.settings = function (options) {\r\n\r\n\t\t// Destroy any existing initializations\r\n\t\t$iziToast.destroy();\r\n\r\n\t\tCONFIG = options;\r\n\t\tdefaults = extend(defaults, options || {});\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Building themes functions.\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\tforEach(THEMES, function (theme, name) {\r\n\r\n\t\t$iziToast[name] = function (options) {\r\n\r\n\t\t\tvar settings = extend(CONFIG, options || {});\r\n\t\t\tsettings = extend(theme, settings || {});\r\n\r\n\t\t\tthis.show(settings);\r\n\t\t};\r\n\r\n\t});\r\n\r\n\r\n\t/**\r\n\t * Do the calculation to move the progress bar\r\n\t * @private\r\n\t */\r\n\t$iziToast.progress = function (options, $toast, callback) {\r\n\r\n\t\tvar that = this,\r\n\t\t\tref = $toast.getAttribute('data-iziToast-ref'),\r\n\t\t\tsettings = extend(this.children[ref], options || {}),\r\n\t\t\t$elem = $toast.querySelector('.'+PLUGIN_NAME+'-progressbar div');\r\n\r\n\t\treturn {\r\n\t\t\tstart: function() {\r\n\r\n\t\t\t\tif(typeof settings.time.REMAINING == 'undefined'){\r\n\r\n\t\t\t\t\t$toast.classList.remove(PLUGIN_NAME+'-reseted');\r\n\r\n\t\t\t\t\tif($elem !== null){\r\n\t\t\t\t\t\t$elem.style.transition = 'width '+ settings.timeout +'ms '+settings.progressBarEasing;\r\n\t\t\t\t\t\t$elem.style.width = '0%';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsettings.time.START = new Date().getTime();\r\n\t\t\t\t\tsettings.time.END = settings.time.START + settings.timeout;\r\n\t\t\t\t\tsettings.time.TIMER = setTimeout(function() {\r\n\r\n\t\t\t\t\t\tclearTimeout(settings.time.TIMER);\r\n\r\n\t\t\t\t\t\tif(!$toast.classList.contains(PLUGIN_NAME+'-closing')){\r\n\t\t\t\t\t\t\tthat.hide(settings, $toast, 'timeout');\r\n\r\n\t\t\t\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\t\t\t\tcallback.apply(that);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, settings.timeout);\r\n\r\n\t\t\t\t\tthat.setSetting(ref, 'time', settings.time);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tpause: function() {\r\n\r\n\t\t\t\tif(typeof settings.time.START !== 'undefined' && !$toast.classList.contains(PLUGIN_NAME+'-paused') && !$toast.classList.contains(PLUGIN_NAME+'-reseted')){\r\n\r\n\t\t\t\t\t$toast.classList.add(PLUGIN_NAME+'-paused');\r\n\r\n\t\t\t\tsettings.time.REMAINING = settings.time.END - new Date().getTime();\r\n\r\n\t\t\t\tclearTimeout(settings.time.TIMER);\r\n\r\n\t\t\t\tthat.setSetting(ref, 'time', settings.time);\r\n\r\n\t\t\t\tif($elem !== null){\r\n\t\t\t\t\tvar computedStyle = window.getComputedStyle($elem),\r\n\t\t\t\t\t\tpropertyWidth = computedStyle.getPropertyValue('width');\r\n\r\n\t\t\t\t\t$elem.style.transition = 'none';\r\n\t\t\t\t\t$elem.style.width = propertyWidth;\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\tcallback.apply(that);\t\t\t\t\t\t\r\n\t\t\t\t\t}, 10);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t},\r\n\t\t\tresume: function() {\r\n\r\n\t\t\t\tif(typeof settings.time.REMAINING !== 'undefined'){\r\n\r\n\t\t\t\t\t$toast.classList.remove(PLUGIN_NAME+'-paused');\r\n\r\n\t\t\t\t\t\tif($elem !== null){\r\n\t\t\t\t\t\t\t$elem.style.transition = 'width '+ settings.time.REMAINING +'ms '+settings.progressBarEasing;\r\n\t\t\t\t\t\t\t$elem.style.width = '0%';\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tsettings.time.END = new Date().getTime() + settings.time.REMAINING;\r\n\t\t\t\t\t\tsettings.time.TIMER = setTimeout(function() {\r\n\r\n\t\t\t\t\t\tclearTimeout(settings.time.TIMER);\r\n\r\n\t\t\t\t\t\tif(!$toast.classList.contains(PLUGIN_NAME+'-closing')){\r\n\r\n\t\t\t\t\t\t\tthat.hide(settings, $toast, 'timeout');\r\n\r\n\t\t\t\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\t\t\t\tcallback.apply(that);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}, settings.time.REMAINING);\r\n\r\n\t\t\t\t\tthat.setSetting(ref, 'time', settings.time);\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.start();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\treset: function(){\r\n\r\n\t\t\t\tclearTimeout(settings.time.TIMER);\r\n\r\n\t\t\t\tdelete settings.time.REMAINING;\r\n\r\n\t\t\t\tthat.setSetting(ref, 'time', settings.time);\r\n\r\n\t\t\t\t$toast.classList.add(PLUGIN_NAME+'-reseted');\r\n\r\n\t\t\t\t$toast.classList.remove(PLUGIN_NAME+'-paused');\r\n\r\n\t\t\t\tif($elem !== null){\r\n\t\t\t\t\t$elem.style.transition = 'none';\r\n\t\t\t\t\t$elem.style.width = '100%';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof callback === 'function'){\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\tcallback.apply(that);\t\t\t\t\t\t\r\n\t\t\t\t\t}, 10);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Close the specific Toast\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\t$iziToast.hide = function (options, $toast, closedBy) {\r\n\r\n\t\tif(typeof $toast != 'object'){\r\n\t\t\t$toast = document.querySelector($toast);\r\n\t\t}\t\t\r\n\r\n\t\tvar that = this,\r\n\t\t\tsettings = extend(this.children[$toast.getAttribute('data-iziToast-ref')], options || {});\r\n\t\t\tsettings.closedBy = closedBy || null;\r\n\r\n\t\tdelete settings.time.REMAINING;\r\n\r\n\t\t$toast.classList.add(PLUGIN_NAME+'-closing');\r\n\r\n\t\t// Overlay\r\n\t\t(function(){\r\n\r\n\t\t\tvar $overlay = document.querySelector('.'+PLUGIN_NAME+'-overlay');\r\n\t\t\tif($overlay !== null){\r\n\t\t\t\tvar refs = $overlay.getAttribute('data-iziToast-ref');\t\t\r\n\t\t\t\t\trefs = refs.split(',');\r\n\t\t\t\tvar index = refs.indexOf(String(settings.ref));\r\n\r\n\t\t\t\tif(index !== -1){\r\n\t\t\t\t\trefs.splice(index, 1);\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t$overlay.setAttribute('data-iziToast-ref', refs.join());\r\n\r\n\t\t\t\tif(refs.length === 0){\r\n\t\t\t\t\t$overlay.classList.remove('fadeIn');\r\n\t\t\t\t\t$overlay.classList.add('fadeOut');\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t$overlay.remove();\r\n\t\t\t\t\t}, 700);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t})();\r\n\r\n\t\tif(settings.transitionIn){\r\n\t\t\t$toast.classList.remove(settings.transitionIn);\r\n\t\t} \r\n\r\n\t\tif(settings.transitionInMobile){\r\n\t\t\t$toast.classList.remove(settings.transitionInMobile);\r\n\t\t}\r\n\r\n\t\tif(ISMOBILE || window.innerWidth <= MOBILEWIDTH){\r\n\t\t\tif(settings.transitionOutMobile)\r\n\t\t\t\t$toast.classList.add(settings.transitionOutMobile);\r\n\t\t} else {\r\n\t\t\tif(settings.transitionOut)\r\n\t\t\t\t$toast.classList.add(settings.transitionOut);\r\n\t\t}\r\n\t\tvar H = $toast.parentNode.offsetHeight;\r\n\t\t\t\t$toast.parentNode.style.height = H+'px';\r\n\t\t\t\t$toast.style.pointerEvents = 'none';\r\n\t\t\r\n\t\tif(!ISMOBILE || window.innerWidth > MOBILEWIDTH){\r\n\t\t\t$toast.parentNode.style.transitionDelay = '0.2s';\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tvar event = new CustomEvent(PLUGIN_NAME+'-closing', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\tdocument.dispatchEvent(event);\r\n\t\t} catch(ex){\r\n\t\t\tconsole.warn(ex);\r\n\t\t}\r\n\r\n\t\tsetTimeout(function() {\r\n\t\t\t\r\n\t\t\t$toast.parentNode.style.height = '0px';\r\n\t\t\t$toast.parentNode.style.overflow = '';\r\n\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\t\r\n\t\t\t\tdelete that.children[settings.ref];\r\n\r\n\t\t\t\t$toast.parentNode.remove();\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tvar event = new CustomEvent(PLUGIN_NAME+'-closed', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\t\t\tdocument.dispatchEvent(event);\r\n\t\t\t\t} catch(ex){\r\n\t\t\t\t\tconsole.warn(ex);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(typeof settings.onClosed !== 'undefined' && typeof $iziToast.children[settings.ref] !== 'undefined'){\r\n\t\t\t\t\tsettings.onClosed.apply(null, [that, settings, $toast, closedBy]);\r\n\t\t\t\t}\r\n\r\n\t\t\t}, 1000);\r\n\t\t}, 200);\r\n\r\n\r\n\t\tif(typeof settings.onClosing !== 'undefined' && typeof $iziToast.children[settings.ref] !== 'undefined'){\r\n\t\t\tsettings.onClosing.apply(null, [that, settings, $toast, closedBy]);\r\n\t\t}\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Create and show the Toast\r\n\t * @public\r\n\t * @param {Object} options User settings\r\n\t */\r\n\t$iziToast.show = function (options) {\r\n\r\n\t\tvar that = this;\r\n\r\n\t\t// Merge user options with defaults\r\n\t\tvar settings = extend(CONFIG, options || {});\r\n\t\t\tsettings = extend(defaults, settings);\r\n\t\t\tsettings.time = {};\r\n\t\t\t\r\n\t\tif(settings.id === null){\r\n\t\t\tsettings.id = generateId(settings.title+settings.message+settings.color);\r\n\t\t}\r\n\r\n\t\tsettings.ref = new Date().getTime() + Math.floor((Math.random() * 10000000) + 1);\r\n\r\n\t\t$iziToast.children[settings.ref] = settings;\r\n\r\n\t\ttry {\r\n\t\t\tif(settings.displayMode === 1 || settings.displayMode == 'once'){\r\n\t\t\t\tif(document.querySelectorAll('.'+PLUGIN_NAME+'#'+settings.id).length > 0){\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(settings.displayMode === 2 || settings.displayMode == 'replace'){\r\n\t\t\t\tforEach(document.querySelectorAll('.'+PLUGIN_NAME+'#'+settings.id), function(element, index) {\r\n\t\t\t\t\tthat.hide(settings, element, 'replaced');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tLog('Could not find an element with this selector: '+'#'+settings.id+'. Try to set an valid id.')\r\n\t\t}\r\n\r\n\t\tvar $DOM = {\r\n\t\t\tbody: document.querySelector('body'),\r\n\t\t\toverlay: document.createElement('div'),\r\n\t\t\ttoast: document.createElement('div'),\r\n\t\t\ttoastBody: document.createElement('div'),\r\n\t\t\ttoastTexts: document.createElement('div'),\r\n\t\t\ttoastCapsule: document.createElement('div'),\r\n\t\t\tcover: document.createElement('div'),\r\n\t\t\tbuttons: document.createElement('div'),\r\n\t\t\tinputs: document.createElement('div'),\r\n\t\t\ticon: !settings.iconUrl ? document.createElement('i') : document.createElement('img'),\r\n\t\t\twrapper: null\r\n\t\t};\r\n\r\n\t\t$DOM.toast.setAttribute('data-iziToast-ref', settings.ref);\r\n\t\t$DOM.toast.setAttribute('role', 'alert');\r\n\t\t$DOM.toast.setAttribute('aria-live', 'assertive');\r\n\t\t$DOM.toast.setAttribute('aria-atomic', 'true');\r\n\t\t$DOM.toast.appendChild($DOM.toastBody);\r\n\t\t$DOM.toastCapsule.appendChild($DOM.toast);\r\n\r\n\t\t// CSS Settings\r\n\t\t(function(){\r\n\r\n\t\t\t$DOM.toast.classList.add(PLUGIN_NAME);\r\n\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-opening');\r\n\t\t\t$DOM.toastCapsule.classList.add(PLUGIN_NAME+'-capsule');\r\n\t\t\t$DOM.toastBody.classList.add(PLUGIN_NAME + '-body');\r\n\t\t\t$DOM.toastTexts.classList.add(PLUGIN_NAME + '-texts');\r\n\r\n\t\t\tif(ISMOBILE || window.innerWidth <= MOBILEWIDTH){\r\n\t\t\t\tif(settings.transitionInMobile)\r\n\t\t\t\t\t$DOM.toast.classList.add(settings.transitionInMobile);\r\n\t\t\t} else {\r\n\t\t\t\tif(settings.transitionIn)\r\n\t\t\t\t\t$DOM.toast.classList.add(settings.transitionIn);\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.class){\r\n\t\t\t\tvar classes = settings.class.split(' ');\r\n\t\t\t\tforEach(classes, function (value, index) {\r\n\t\t\t\t\t$DOM.toast.classList.add(value);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.id){ $DOM.toast.id = settings.id; }\r\n\r\n\t\t\tif(settings.rtl){\r\n\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME + '-rtl');\r\n\t\t\t\t$DOM.toast.setAttribute('dir', 'rtl');\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.layout > 1){ $DOM.toast.classList.add(PLUGIN_NAME+'-layout'+settings.layout); }\r\n\r\n\t\t\tif(settings.balloon){ $DOM.toast.classList.add(PLUGIN_NAME+'-balloon'); }\r\n\r\n\t\t\tif(settings.maxWidth){\r\n\t\t\t\tif( !isNaN(settings.maxWidth) ){\r\n\t\t\t\t\t$DOM.toast.style.maxWidth = settings.maxWidth+'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toast.style.maxWidth = settings.maxWidth;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.theme !== '' || settings.theme !== 'light') {\r\n\r\n\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-theme-'+settings.theme);\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.color) { //#, rgb, rgba, hsl\r\n\t\t\t\t\r\n\t\t\t\tif( isColor(settings.color) ){\r\n\t\t\t\t\t$DOM.toast.style.background = settings.color;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-color-'+settings.color);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.backgroundColor) {\r\n\t\t\t\t$DOM.toast.style.background = settings.backgroundColor;\r\n\t\t\t\tif(settings.balloon){\r\n\t\t\t\t\t$DOM.toast.style.borderColor = settings.backgroundColor;\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Cover image\r\n\t\t(function(){\r\n\t\t\tif(settings.image) {\r\n\t\t\t\t$DOM.cover.classList.add(PLUGIN_NAME + '-cover');\r\n\t\t\t\t$DOM.cover.style.width = settings.imageWidth + 'px';\r\n\r\n\t\t\t\tif(isBase64(settings.image.replace(/ /g,''))){\r\n\t\t\t\t\t$DOM.cover.style.backgroundImage = 'url(data:image/png;base64,' + settings.image.replace(/ /g,'') + ')';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.cover.style.backgroundImage = 'url(' + settings.image + ')';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toastBody.style.marginRight = (settings.imageWidth + 10) + 'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toastBody.style.marginLeft = (settings.imageWidth + 10) + 'px';\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t$DOM.toast.appendChild($DOM.cover);\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Button close\r\n\t\t(function(){\r\n\t\t\tif(settings.close){\r\n\t\t\t\t\r\n\t\t\t\t$DOM.buttonClose = document.createElement('button');\r\n\t\t\t\t$DOM.buttonClose.type = 'button';\r\n\t\t\t\t$DOM.buttonClose.classList.add(PLUGIN_NAME + '-close');\r\n\t\t\t\t$DOM.buttonClose.setAttribute('aria-label', 'Close');\r\n\t\t\t\t$DOM.buttonClose.addEventListener('click', function (e) {\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\tvar button = e.target;\r\n\t\t\t\t\tthat.hide(settings, $DOM.toast, 'button');\r\n\t\t\t\t});\r\n\t\t\t\t$DOM.toast.appendChild($DOM.buttonClose);\r\n\t\t\t} else {\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toast.style.paddingLeft = '18px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toast.style.paddingRight = '18px';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Progress Bar & Timeout\r\n\t\t(function(){\r\n\r\n\t\t\tif(settings.progressBar){\r\n\t\t\t\t$DOM.progressBar = document.createElement('div');\r\n\t\t\t\t$DOM.progressBarDiv = document.createElement('div');\r\n\t\t\t\t$DOM.progressBar.classList.add(PLUGIN_NAME + '-progressbar');\r\n\t\t\t\t$DOM.progressBarDiv.style.background = settings.progressBarColor;\r\n\t\t\t\t$DOM.progressBar.appendChild($DOM.progressBarDiv);\r\n\t\t\t\t$DOM.toast.appendChild($DOM.progressBar);\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.timeout) {\r\n\r\n\t\t\t\tif(settings.pauseOnHover && !settings.resetOnHover){\r\n\t\t\t\t\t\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseenter', function (e) {\r\n\t\t\t\t\t\tthat.progress(settings, $DOM.toast).pause();\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseleave', function (e) {\r\n\t\t\t\t\t\tthat.progress(settings, $DOM.toast).resume();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.resetOnHover){\r\n\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseenter', function (e) {\r\n\t\t\t\t\t\tthat.progress(settings, $DOM.toast).reset();\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$DOM.toast.addEventListener('mouseleave', function (e) {\r\n\t\t\t\t\t\tthat.progress(settings, $DOM.toast).start();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Icon\r\n\t\t(function(){\r\n\r\n\t\t\tif(settings.iconUrl) {\r\n\r\n\t\t\t\t$DOM.icon.setAttribute('class', PLUGIN_NAME + '-icon');\r\n\t\t\t\t$DOM.icon.setAttribute('src', settings.iconUrl);\r\n\r\n\t\t\t} else if(settings.icon) {\r\n\t\t\t\t$DOM.icon.setAttribute('class', PLUGIN_NAME + '-icon ' + settings.icon);\r\n\t\t\t\t\r\n\t\t\t\tif(settings.iconText){\r\n\t\t\t\t\t$DOM.icon.appendChild(document.createTextNode(settings.iconText));\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(settings.iconColor){\r\n\t\t\t\t\t$DOM.icon.style.color = settings.iconColor;\r\n\t\t\t\t}\t\t\t\t\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.icon || settings.iconUrl) {\r\n\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toastBody.style.paddingRight = '33px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toastBody.style.paddingLeft = '33px';\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$DOM.toastBody.appendChild($DOM.icon);\r\n\t\t\t}\r\n\r\n\t\t})();\r\n\r\n\t\t// Title & Message\r\n\t\t(function(){\r\n\t\t\tif(settings.title.length > 0) {\r\n\r\n\t\t\t\t$DOM.strong = document.createElement('strong');\r\n\t\t\t\t$DOM.strong.classList.add(PLUGIN_NAME + '-title');\r\n\t\t\t\t$DOM.strong.textContent = settings.title;\r\n\t\t\t\t$DOM.toastTexts.appendChild($DOM.strong);\r\n\r\n\t\t\t\tif(settings.titleColor) {\r\n\t\t\t\t\t$DOM.strong.style.color = settings.titleColor;\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.titleSize) {\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.strong.style.fontSize = settings.titleSize+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.strong.style.fontSize = settings.titleSize;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.titleLineHeight) {\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.strong.style.lineHeight = settings.titleLineHeight+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.strong.style.lineHeight = settings.titleLineHeight;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.message.length > 0) {\r\n\r\n\t\t\t\t$DOM.p = document.createElement('p');\r\n\t\t\t\t$DOM.p.classList.add(PLUGIN_NAME + '-message');\r\n\t\t\t\t$DOM.p.textContent = settings.message;\r\n\t\t\t\t$DOM.toastTexts.appendChild($DOM.p);\r\n\r\n\t\t\t\tif(settings.messageColor) {\r\n\t\t\t\t\t$DOM.p.style.color = settings.messageColor;\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.messageSize) {\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.p.style.fontSize = settings.messageSize+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.p.style.fontSize = settings.messageSize;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.messageLineHeight) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif( !isNaN(settings.titleSize) ){\r\n\t\t\t\t\t\t$DOM.p.style.lineHeight = settings.messageLineHeight+'px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.p.style.lineHeight = settings.messageLineHeight;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(settings.title.length > 0 && settings.message.length > 0) {\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.strong.style.marginLeft = '10px';\r\n\t\t\t\t} else if(settings.layout !== 2 && !settings.rtl) {\r\n\t\t\t\t\t$DOM.strong.style.marginRight = '10px';\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t$DOM.toastBody.appendChild($DOM.toastTexts);\r\n\r\n\t\t// Inputs\r\n\t\tvar $inputs;\r\n\t\t(function(){\r\n\t\t\tif(settings.inputs.length > 0) {\r\n\r\n\t\t\t\t$DOM.inputs.classList.add(PLUGIN_NAME + '-inputs');\r\n\r\n\t\t\t\tforEach(settings.inputs, function (value, index) {\r\n\r\n\t\t\t\t\t$DOM.inputs.appendChild(createInput(value[0]));\r\n\r\n\t\t\t\t\t$inputs = $DOM.inputs.childNodes;\r\n\r\n\t\t\t\t\t$inputs[index].classList.add(PLUGIN_NAME + '-inputs-child');\r\n\r\n\t\t\t\t\tif(value[3]){ // Check if 'focus' param is true\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t$inputs[index].focus();\r\n\t\t\t\t\t\t}, 300);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$inputs[index].addEventListener(value[1], function (e) {\r\n\t\t\t\t\t\tvar ts = value[2];\r\n\r\n\t\t\t\t\t\tvar elements = {\r\n\t\t\t\t\t\t\ttoast: $DOM.toast,\r\n\t\t\t\t\t\t\tcurrentInput: this,\r\n\t\t\t\t\t\t\tbuttons: $DOM.buttons,\r\n\t\t\t\t\t\t\tinputs: $inputs\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn ts(that, settings, elements, e);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\t$DOM.toastBody.appendChild($DOM.inputs);\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Buttons\r\n\t\t(function(){\r\n\t\t\tif(settings.buttons.length > 0) {\r\n\r\n\t\t\t\t$DOM.buttons.classList.add(PLUGIN_NAME + '-buttons');\r\n\r\n\t\t\t\tforEach(settings.buttons, function (value, index) {\r\n\r\n\t\t\t\t\tvar btn = document.createElement('button');\r\n\t\t\t\t\t\t\tbtn.setAttribute('type', 'button');\r\n\t\t\t\t\t\t\tbtn.textContent = value[0]\r\n\t\t\t\t\t$DOM.buttons.appendChild(btn);\r\n\r\n\t\t\t\t\tvar $btns = $DOM.buttons.childNodes;\r\n\r\n\t\t\t\t\t$btns[index].classList.add(PLUGIN_NAME + '-buttons-child');\r\n\r\n\t\t\t\t\tif(value[2]){ // Check if 'focus' param is true\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t$btns[index].focus();\r\n\t\t\t\t\t\t}, 300);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$btns[index].addEventListener('click', function (e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\tvar ts = value[1];\r\n\t\t\t\t\t\t// instance, settings, toast, e\r\n\t\t\t\t\t\tvar elements = {\r\n\t\t\t\t\t\t\ttoast: $DOM.toast,\r\n\t\t\t\t\t\t\tcurrentButton: this,\r\n\t\t\t\t\t\t\tbuttons: $DOM.buttons,\r\n\t\t\t\t\t\t\tinputs: $inputs\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn ts(that, settings, elements, e);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t$DOM.toastBody.appendChild($DOM.buttons);\r\n\t\t})();\r\n\r\n\t\t// Margin adjustments\r\n\t\t(function(){\r\n\t\t\tif(settings.message.length > 0 && (settings.inputs.length > 0 || settings.buttons.length > 0)) {\r\n\t\t\t\t$DOM.p.style.marginBottom = '0';\r\n\t\t\t}\r\n\t\r\n\t\t\tif(settings.inputs.length > 0 || settings.buttons.length > 0){\r\n\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t$DOM.toastTexts.style.marginLeft = '10px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.toastTexts.style.marginRight = '10px';\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.inputs.length > 0 && settings.buttons.length > 0){\r\n\t\t\t\t\tif(settings.rtl){\r\n\t\t\t\t\t\t$DOM.inputs.style.marginLeft = '8px';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$DOM.inputs.style.marginRight = '8px';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\r\n\t\t// Wrap\r\n\t\t(function(){\r\n\t\t\t$DOM.toastCapsule.style.visibility = 'hidden';\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tvar H = $DOM.toast.offsetHeight;\r\n\t\t\t\tvar style = $DOM.toast.currentStyle || window.getComputedStyle($DOM.toast);\r\n\t\t\t\tvar marginTop = style.marginTop;\r\n\t\t\t\t\tmarginTop = marginTop.split('px');\r\n\t\t\t\t\tmarginTop = parseInt(marginTop[0]);\r\n\t\t\t\tvar marginBottom = style.marginBottom;\r\n\t\t\t\t\tmarginBottom = marginBottom.split('px');\r\n\t\t\t\t\tmarginBottom = parseInt(marginBottom[0]);\r\n\r\n\t\t\t\t$DOM.toastCapsule.style.visibility = '';\r\n\t\t\t\t$DOM.toastCapsule.style.height = (H+marginBottom+marginTop)+'px';\r\n\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t$DOM.toastCapsule.style.height = 'auto';\r\n\t\t\t\t\tif(settings.target){\r\n\t\t\t\t\t\t$DOM.toastCapsule.style.overflow = 'visible';\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 500);\r\n\r\n\t\t\t\tif(settings.timeout) {\r\n\t\t\t\t\tthat.progress(settings, $DOM.toast).start();\r\n\t\t\t\t}\r\n\t\t\t}, 100);\r\n\t\t})();\r\n\r\n\t\t// Target\r\n\t\t(function(){\r\n\t\t\tvar position = settings.position;\r\n\r\n\t\t\tif(settings.target){\r\n\r\n\t\t\t\t$DOM.wrapper = document.querySelector(settings.target);\r\n\t\t\t\t$DOM.wrapper.classList.add(PLUGIN_NAME + '-target');\r\n\r\n\t\t\t\tif(settings.targetFirst) {\r\n\t\t\t\t\t$DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.wrapper.appendChild($DOM.toastCapsule);\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tif( POSITIONS.indexOf(settings.position) == -1 ){\r\n\t\t\t\t\tLog('Incorrect position.\\nIt can be › ' + POSITIONS)\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(ISMOBILE || window.innerWidth <= MOBILEWIDTH){\r\n\t\t\t\t\tif(settings.position == 'bottomLeft' || settings.position == 'bottomRight' || settings.position == 'bottomCenter'){\r\n\t\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-bottomCenter';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(settings.position == 'topLeft' || settings.position == 'topRight' || settings.position == 'topCenter'){\r\n\t\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-topCenter';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-center';\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tposition = PLUGIN_NAME+'-wrapper-'+position;\r\n\t\t\t\t}\r\n\t\t\t\t$DOM.wrapper = document.querySelector('.' + PLUGIN_NAME + '-wrapper.'+position);\r\n\r\n\t\t\t\tif(!$DOM.wrapper) {\r\n\t\t\t\t\t$DOM.wrapper = document.createElement('div');\r\n\t\t\t\t\t$DOM.wrapper.classList.add(PLUGIN_NAME + '-wrapper');\r\n\t\t\t\t\t$DOM.wrapper.classList.add(position);\r\n\t\t\t\t\tdocument.body.appendChild($DOM.wrapper);\r\n\t\t\t\t}\r\n\t\t\t\tif(settings.position == 'topLeft' || settings.position == 'topCenter' || settings.position == 'topRight'){\r\n\t\t\t\t\t$DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.wrapper.appendChild($DOM.toastCapsule);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(!isNaN(settings.zindex)) {\r\n\t\t\t\t$DOM.wrapper.style.zIndex = settings.zindex;\r\n\t\t\t} else {\r\n\t\t\t\tLog('Invalid zIndex value.')\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t// Overlay\r\n\t\t(function(){\r\n\r\n\t\t\tif(settings.overlay) {\r\n\r\n\t\t\t\tif( document.querySelector('.'+PLUGIN_NAME+'-overlay.fadeIn') !== null ){\r\n\r\n\t\t\t\t\t$DOM.overlay = document.querySelector('.'+PLUGIN_NAME+'-overlay');\r\n\t\t\t\t\t$DOM.overlay.setAttribute('data-iziToast-ref', $DOM.overlay.getAttribute('data-iziToast-ref') + ',' + settings.ref);\r\n\r\n\t\t\t\t\tif(!isNaN(settings.zindex) && settings.zindex !== null) {\r\n\t\t\t\t\t\t$DOM.overlay.style.zIndex = settings.zindex-1;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t$DOM.overlay.classList.add(PLUGIN_NAME+'-overlay');\r\n\t\t\t\t\t$DOM.overlay.classList.add('fadeIn');\r\n\t\t\t\t\t$DOM.overlay.style.background = settings.overlayColor;\r\n\t\t\t\t\t$DOM.overlay.setAttribute('data-iziToast-ref', settings.ref);\r\n\t\t\t\t\tif(!isNaN(settings.zindex) && settings.zindex !== null) {\r\n\t\t\t\t\t\t$DOM.overlay.style.zIndex = settings.zindex-1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$DOM.body.appendChild($DOM.overlay);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.overlayClose) {\r\n\r\n\t\t\t\t\t$DOM.overlay.removeEventListener('click', {});\r\n\t\t\t\t\t$DOM.overlay.addEventListener('click', function (e) {\r\n\t\t\t\t\t\tthat.hide(settings, $DOM.toast, 'overlay');\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$DOM.overlay.removeEventListener('click', {});\r\n\t\t\t\t}\r\n\t\t\t}\t\t\t\r\n\t\t})();\r\n\r\n\t\t// Inside animations\r\n\t\t(function(){\r\n\t\t\tif(settings.animateInside){\r\n\t\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-animateInside');\r\n\t\t\t\r\n\t\t\t\tvar animationTimes = [200, 100, 300];\r\n\t\t\t\tif(settings.transitionIn == 'bounceInLeft' || settings.transitionIn == 'bounceInRight'){\r\n\t\t\t\t\tanimationTimes = [400, 200, 400];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.title.length > 0) {\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$DOM.strong.classList.add('slideIn');\r\n\t\t\t\t\t}, animationTimes[0]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.message.length > 0) {\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$DOM.p.classList.add('slideIn');\r\n\t\t\t\t\t}, animationTimes[1]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.icon || settings.iconUrl) {\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t$DOM.icon.classList.add('revealIn');\r\n\t\t\t\t\t}, animationTimes[2]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar counter = 150;\r\n\t\t\t\tif(settings.buttons.length > 0 && $DOM.buttons) {\r\n\r\n\t\t\t\t\tsetTimeout(function(){\r\n\r\n\t\t\t\t\t\tforEach($DOM.buttons.childNodes, function(element, index) {\r\n\r\n\t\t\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t\t\telement.classList.add('revealIn');\r\n\t\t\t\t\t\t\t}, counter);\r\n\t\t\t\t\t\t\tcounter = counter + 150;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t}, settings.inputs.length > 0 ? 150 : 0);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(settings.inputs.length > 0 && $DOM.inputs) {\r\n\t\t\t\t\tcounter = 150;\r\n\t\t\t\t\tforEach($DOM.inputs.childNodes, function(element, index) {\r\n\r\n\t\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\t\telement.classList.add('revealIn');\r\n\t\t\t\t\t\t}, counter);\r\n\t\t\t\t\t\tcounter = counter + 150;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\tif(typeof settings.onClick === 'function' && settings.onClick.length !== 0){\r\n\t\t\t$DOM.toast.addEventListener('click', function (e) {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tsettings.onClick.apply(null, [that, settings, $DOM.toast, e]);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif(typeof settings.onOpening === 'function' && settings.onOpening.length !== 0){\r\n\t\t\tsettings.onOpening.apply(null, [that, settings, $DOM.toast]);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tvar event = new CustomEvent(PLUGIN_NAME + '-opening', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\tdocument.dispatchEvent(event);\r\n\t\t} catch(ex){\r\n\t\t\tconsole.warn(ex);\r\n\t\t}\r\n\r\n\t\tsetTimeout(function() {\r\n\r\n\t\t\t$DOM.toast.classList.remove(PLUGIN_NAME+'-opening');\r\n\t\t\t$DOM.toast.classList.add(PLUGIN_NAME+'-opened');\r\n\r\n\t\t\ttry {\r\n\t\t\t\tvar event = new CustomEvent(PLUGIN_NAME + '-opened', {detail: settings, bubbles: true, cancelable: true});\r\n\t\t\t\tdocument.dispatchEvent(event);\r\n\t\t\t} catch(ex){\r\n\t\t\t\tconsole.warn(ex);\r\n\t\t\t}\r\n\r\n\t\t\tif(typeof $iziToast.children[settings.ref] !== 'undefined'){\r\n\t\t\t\tsettings.onOpened.apply(null, [that, settings, $DOM.toast]);\r\n\t\t\t}\r\n\t\t}, 1000);\r\n\r\n\t\tif(settings.drag){\r\n\t\t\tif(ACCEPTSTOUCH) {\r\n\r\n\t\t\t\t$DOM.toast.addEventListener('touchstart', function(e) {\r\n\t\t\t\t\tdrag.startMoving(this, that, settings, e);\r\n\t\t\t\t}, false);\r\n\r\n\t\t\t\t$DOM.toast.addEventListener('touchend', function(e) {\r\n\t\t\t\t\tdrag.stopMoving(this, e);\r\n\t\t\t\t}, false);\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\t$DOM.toast.addEventListener('mousedown', function(e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tdrag.startMoving(this, that, settings, e);\r\n\t\t\t\t}, false);\r\n\r\n\t\t\t\t$DOM.toast.addEventListener('mouseup', function(e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tdrag.stopMoving(this, e);\r\n\t\t\t\t}, false);\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(settings.closeOnEscape) {\r\n\r\n\t\t\tdocument.addEventListener('keyup', function (evt) {\r\n\t\t\t\tevt = evt || window.event;\r\n\t\t\t\tif(evt.keyCode == 27) {\r\n\t\t\t\t\tthat.hide(settings, $DOM.toast, 'esc');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif(settings.closeOnClick) {\r\n\t\t\t$DOM.toast.addEventListener('click', function (evt) {\r\n\t\t\t\tthat.hide(settings, $DOM.toast, 'toast');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthat.toast = $DOM.toast;\t\t\r\n\t};\r\n\t\r\n\r\n\treturn $iziToast;\r\n});\n/**\r\n * Modules in this bundle\r\n * @license\r\n *\r\n * modal-video:\r\n * license: appleple\r\n * author: appleple\r\n * homepage: http://developer.a-blogcms.jp\r\n * version: 2.4.1\r\n *\r\n * custom-event-polyfill:\r\n * license: MIT (http://opensource.org/licenses/MIT)\r\n * maintainers: krambuhl \r\n * contributors: Frank Panetta, Mikhail Reenko , Joscha Feth \r\n * homepage: https://github.com/krambuhl/custom-event-polyfill#readme\r\n * version: 0.3.0\r\n *\r\n * es6-object-assign:\r\n * license: MIT (http://opensource.org/licenses/MIT)\r\n * author: Rubén Norte \r\n * homepage: https://github.com/rubennorte/es6-object-assign\r\n * version: 1.1.0\r\n *\r\n * This header is generated by licensify (https://github.com/twada/licensify)\r\n */\r\n(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o\\n
\\n
\\n
\\n \\n ').attr('src', this.getUrl());\r\n var self = this;\r\n $.each(this._defaults.iframeOptions, function (opt) {\r\n if (typeof self.options.iframeOptions[opt] !== 'undefined') {\r\n $iframe.attr(opt, self.options.iframeOptions[opt]);\r\n }\r\n });\r\n\r\n return $iframe;\r\n },\r\n getContent: function () {\r\n if (this.getUrl()) {\r\n switch (this.options.type) {\r\n case 'iframe':\r\n this.content = this.getIframe();\r\n break;\r\n case 'html':\r\n try {\r\n this.content = $(this.getUrl());\r\n if (!this.content.is(':visible')) {\r\n this.content.show();\r\n }\r\n } catch (error) {\r\n throw new Error('Unable to get popover content. Invalid selector specified.');\r\n }\r\n break;\r\n }\r\n } else if (!this.content) {\r\n var content = '';\r\n if ($.isFunction(this.options.content)) {\r\n content = this.options.content.apply(this.$element[0], [this]);\r\n } else {\r\n content = this.options.content;\r\n }\r\n this.content = this.$element.attr('data-content') || content;\r\n if (!this.content) {\r\n var $next = this.$element.next();\r\n\r\n if ($next && $next.hasClass(pluginClass + '-content')) {\r\n this.content = $next;\r\n }\r\n }\r\n }\r\n return this.content;\r\n },\r\n setContent: function (content) {\r\n var $target = this.getTarget();\r\n var $ct = this.getContentElement();\r\n if (typeof content === 'string') {\r\n $ct.html(content);\r\n } else if (content instanceof $) {\r\n $ct.html('');\r\n //Don't want to clone too many times.\r\n if (!this.options.cache) {\r\n content.clone(true, true).removeClass(pluginClass + '-content').appendTo($ct);\r\n } else {\r\n content.removeClass(pluginClass + '-content').appendTo($ct);\r\n }\r\n }\r\n this.$target = $target;\r\n },\r\n isAsync: function () {\r\n return this.options.type === 'async';\r\n },\r\n setContentASync: function (content) {\r\n var that = this;\r\n if (this.xhr) {\r\n return;\r\n }\r\n this.xhr = $.ajax({\r\n url: this.getUrl(),\r\n type: this.options.async.type,\r\n cache: this.getCache(),\r\n beforeSend: function (xhr, settings) {\r\n if (that.options.async.before) {\r\n that.options.async.before(that, xhr, settings);\r\n }\r\n },\r\n success: function (data) {\r\n that.bindBodyEvents();\r\n if (content && $.isFunction(content)) {\r\n that.content = content.apply(that.$element[0], [data]);\r\n } else {\r\n that.content = data;\r\n }\r\n that.setContent(that.content);\r\n var $targetContent = that.getContentElement();\r\n $targetContent.removeAttr('style');\r\n that.displayContent();\r\n if (that.options.async.success) {\r\n that.options.async.success(that, data);\r\n }\r\n },\r\n complete: function () {\r\n that.xhr = null;\r\n },\r\n error: function (xhr, data) {\r\n if (that.options.async.error) {\r\n that.options.async.error(that, xhr, data);\r\n }\r\n }\r\n });\r\n },\r\n\r\n bindBodyEvents: function () {\r\n if (_isBodyEventHandled) {\r\n return;\r\n }\r\n if (this.options.dismissible && this.getTrigger() === 'click') {\r\n if (isMobile) {\r\n $document.off('touchstart.webui-popover').on('touchstart.webui-popover', $.proxy(this.bodyTouchStartHandler, this));\r\n } else {\r\n $document.off('keyup.webui-popover').on('keyup.webui-popover', $.proxy(this.escapeHandler, this));\r\n $document.off('click.webui-popover').on('click.webui-popover', $.proxy(this.bodyClickHandler, this));\r\n }\r\n } else if (this.getTrigger() === 'hover') {\r\n $document.off('touchend.webui-popover')\r\n .on('touchend.webui-popover', $.proxy(this.bodyClickHandler, this));\r\n }\r\n },\r\n\r\n /* event handlers */\r\n mouseenterHandler: function (e) {\r\n var self = this;\r\n\r\n if (e && this.options.selector) {\r\n self = this.delegate(e.currentTarget);\r\n }\r\n\r\n if (self._timeout) {\r\n clearTimeout(self._timeout);\r\n }\r\n self._enterTimeout = setTimeout(function () {\r\n if (!self.getTarget().is(':visible')) {\r\n self.show();\r\n }\r\n }, this.getDelayShow());\r\n },\r\n mouseleaveHandler: function () {\r\n var self = this;\r\n clearTimeout(self._enterTimeout);\r\n //key point, set the _timeout then use clearTimeout when mouse leave\r\n self._timeout = setTimeout(function () {\r\n self.hide();\r\n }, this.getHideDelay());\r\n },\r\n escapeHandler: function (e) {\r\n if (e.keyCode === 27) {\r\n this.hideAll();\r\n }\r\n },\r\n bodyTouchStartHandler: function (e) {\r\n var self = this;\r\n var $eventEl = $(e.currentTarget);\r\n $eventEl.on('touchend', function (e) {\r\n self.bodyClickHandler(e);\r\n $eventEl.off('touchend');\r\n });\r\n $eventEl.on('touchmove', function () {\r\n $eventEl.off('touchend');\r\n });\r\n },\r\n bodyClickHandler: function (e) {\r\n _isBodyEventHandled = true;\r\n var canHide = true;\r\n for (var i = 0; i < _srcElements.length; i++) {\r\n var pop = getPopFromElement(_srcElements[i]);\r\n if (pop && pop._opened) {\r\n var offset = pop.getTarget().offset();\r\n var popX1 = offset.left;\r\n var popY1 = offset.top;\r\n var popX2 = offset.left + pop.getTarget().width();\r\n var popY2 = offset.top + pop.getTarget().height();\r\n var pt = pointerEventToXY(e);\r\n var inPop = pt.x >= popX1 && pt.x <= popX2 && pt.y >= popY1 && pt.y <= popY2;\r\n if (inPop) {\r\n canHide = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (canHide) {\r\n hideAllPop();\r\n }\r\n },\r\n\r\n /*\r\n targetClickHandler: function() {\r\n this._targetclick = true;\r\n },\r\n */\r\n\r\n //reset and init the target events;\r\n initTargetEvents: function () {\r\n if (this.getTrigger() === 'hover') {\r\n this.$target\r\n .off('mouseenter mouseleave')\r\n .on('mouseenter', $.proxy(this.mouseenterHandler, this))\r\n .on('mouseleave', $.proxy(this.mouseleaveHandler, this));\r\n }\r\n this.$target.find('.close').off('click').on('click', $.proxy(this.hide, this, true));\r\n //this.$target.off('click.webui-popover').on('click.webui-popover', $.proxy(this.targetClickHandler, this));\r\n },\r\n /* utils methods */\r\n //caculate placement of the popover\r\n getPlacement: function (pos) {\r\n var\r\n placement,\r\n container = this.options.container,\r\n clientWidth = container.innerWidth(),\r\n clientHeight = container.innerHeight(),\r\n scrollTop = container.scrollTop(),\r\n scrollLeft = container.scrollLeft(),\r\n pageX = Math.max(0, pos.left - scrollLeft),\r\n pageY = Math.max(0, pos.top - scrollTop);\r\n //arrowSize = 20;\r\n\r\n //if placement equals auto,caculate the placement by element information;\r\n if (typeof (this.options.placement) === 'function') {\r\n placement = this.options.placement.call(this, this.getTarget()[0], this.$element[0]);\r\n } else {\r\n placement = this.$element.data('placement') || this.options.placement;\r\n }\r\n\r\n var isH = placement === 'horizontal';\r\n var isV = placement === 'vertical';\r\n var detect = placement === 'auto' || isH || isV;\r\n\r\n if (detect) {\r\n if (pageX < clientWidth / 3) {\r\n if (pageY < clientHeight / 3) {\r\n placement = isH ? 'right-bottom' : 'bottom-right';\r\n } else if (pageY < clientHeight * 2 / 3) {\r\n if (isV) {\r\n placement = pageY <= clientHeight / 2 ? 'bottom-right' : 'top-right';\r\n } else {\r\n placement = 'right';\r\n }\r\n } else {\r\n placement = isH ? 'right-top' : 'top-right';\r\n }\r\n //placement= pageY>targetHeight+arrowSize?'top-right':'bottom-right';\r\n } else if (pageX < clientWidth * 2 / 3) {\r\n if (pageY < clientHeight / 3) {\r\n if (isH) {\r\n placement = pageX <= clientWidth / 2 ? 'right-bottom' : 'left-bottom';\r\n } else {\r\n placement = 'bottom';\r\n }\r\n } else if (pageY < clientHeight * 2 / 3) {\r\n if (isH) {\r\n placement = pageX <= clientWidth / 2 ? 'right' : 'left';\r\n } else {\r\n placement = pageY <= clientHeight / 2 ? 'bottom' : 'top';\r\n }\r\n } else {\r\n if (isH) {\r\n placement = pageX <= clientWidth / 2 ? 'right-top' : 'left-top';\r\n } else {\r\n placement = 'top';\r\n }\r\n }\r\n } else {\r\n //placement = pageY>targetHeight+arrowSize?'top-left':'bottom-left';\r\n if (pageY < clientHeight / 3) {\r\n placement = isH ? 'left-bottom' : 'bottom-left';\r\n } else if (pageY < clientHeight * 2 / 3) {\r\n if (isV) {\r\n placement = pageY <= clientHeight / 2 ? 'bottom-left' : 'top-left';\r\n } else {\r\n placement = 'left';\r\n }\r\n } else {\r\n placement = isH ? 'left-top' : 'top-left';\r\n }\r\n }\r\n } else if (placement === 'auto-top') {\r\n if (pageX < clientWidth / 3) {\r\n placement = 'top-right';\r\n } else if (pageX < clientWidth * 2 / 3) {\r\n placement = 'top';\r\n } else {\r\n placement = 'top-left';\r\n }\r\n } else if (placement === 'auto-bottom') {\r\n if (pageX < clientWidth / 3) {\r\n placement = 'bottom-right';\r\n } else if (pageX < clientWidth * 2 / 3) {\r\n placement = 'bottom';\r\n } else {\r\n placement = 'bottom-left';\r\n }\r\n } else if (placement === 'auto-left') {\r\n if (pageY < clientHeight / 3) {\r\n placement = 'left-top';\r\n } else if (pageY < clientHeight * 2 / 3) {\r\n placement = 'left';\r\n } else {\r\n placement = 'left-bottom';\r\n }\r\n } else if (placement === 'auto-right') {\r\n if (pageY < clientHeight / 3) {\r\n placement = 'right-bottom';\r\n } else if (pageY < clientHeight * 2 / 3) {\r\n placement = 'right';\r\n } else {\r\n placement = 'right-top';\r\n }\r\n }\r\n return placement;\r\n },\r\n getElementPosition: function () {\r\n // If the container is the body or normal conatiner, just use $element.offset()\r\n var elRect = this.$element[0].getBoundingClientRect();\r\n var container = this.options.container;\r\n var cssPos = container.css('position');\r\n\r\n if (container.is(document.body) || cssPos === 'static') {\r\n return $.extend({}, this.$element.offset(), {\r\n width: this.$element[0].offsetWidth || elRect.width,\r\n height: this.$element[0].offsetHeight || elRect.height\r\n });\r\n // Else fixed container need recalculate the position\r\n } else if (cssPos === 'fixed') {\r\n var containerRect = container[0].getBoundingClientRect();\r\n return {\r\n top: elRect.top - containerRect.top + container.scrollTop(),\r\n left: elRect.left - containerRect.left + container.scrollLeft(),\r\n width: elRect.width,\r\n height: elRect.height\r\n };\r\n } else if (cssPos === 'relative') {\r\n return {\r\n top: this.$element.offset().top - container.offset().top,\r\n left: this.$element.offset().left - container.offset().left,\r\n width: this.$element[0].offsetWidth || elRect.width,\r\n height: this.$element[0].offsetHeight || elRect.height\r\n };\r\n }\r\n },\r\n\r\n getTargetPositin: function (elementPos, placement, targetWidth, targetHeight) {\r\n var pos = elementPos,\r\n container = this.options.container,\r\n //clientWidth = container.innerWidth(),\r\n //clientHeight = container.innerHeight(),\r\n elementW = this.$element.outerWidth(),\r\n elementH = this.$element.outerHeight(),\r\n scrollTop = document.documentElement.scrollTop + container.scrollTop(),\r\n scrollLeft = document.documentElement.scrollLeft + container.scrollLeft(),\r\n position = {},\r\n arrowOffset = null,\r\n arrowSize = this.options.arrow ? 20 : 0,\r\n padding = 10,\r\n fixedW = elementW < arrowSize + padding ? arrowSize : 0,\r\n fixedH = elementH < arrowSize + padding ? arrowSize : 0,\r\n refix = 0,\r\n pageH = document.documentElement.clientHeight + scrollTop,\r\n pageW = document.documentElement.clientWidth + scrollLeft;\r\n\r\n var validLeft = pos.left + pos.width / 2 - fixedW > 0;\r\n var validRight = pos.left + pos.width / 2 + fixedW < pageW;\r\n var validTop = pos.top + pos.height / 2 - fixedH > 0;\r\n var validBottom = pos.top + pos.height / 2 + fixedH < pageH;\r\n\r\n switch (placement) {\r\n case 'bottom':\r\n position = {\r\n top: pos.top + pos.height,\r\n left: pos.left + pos.width / 2 - targetWidth / 2\r\n };\r\n break;\r\n case 'top':\r\n position = {\r\n top: pos.top - targetHeight,\r\n left: pos.left + pos.width / 2 - targetWidth / 2\r\n };\r\n break;\r\n case 'left':\r\n position = {\r\n top: pos.top + pos.height / 2 - targetHeight / 2,\r\n left: pos.left - targetWidth\r\n };\r\n break;\r\n case 'right':\r\n position = {\r\n top: pos.top + pos.height / 2 - targetHeight / 2,\r\n left: pos.left + pos.width\r\n };\r\n break;\r\n case 'top-right':\r\n position = {\r\n top: pos.top - targetHeight,\r\n left: validLeft ? pos.left - fixedW : padding\r\n };\r\n arrowOffset = {\r\n left: validLeft ? Math.min(elementW, targetWidth) / 2 + fixedW : _offsetOut\r\n };\r\n break;\r\n case 'top-left':\r\n refix = validRight ? fixedW : -padding;\r\n position = {\r\n top: pos.top - targetHeight,\r\n left: pos.left - targetWidth + pos.width + refix\r\n };\r\n arrowOffset = {\r\n left: validRight ? targetWidth - Math.min(elementW, targetWidth) / 2 - fixedW : _offsetOut\r\n };\r\n break;\r\n case 'bottom-right':\r\n position = {\r\n top: pos.top + pos.height,\r\n left: validLeft ? pos.left - fixedW : padding\r\n };\r\n arrowOffset = {\r\n left: validLeft ? Math.min(elementW, targetWidth) / 2 + fixedW : _offsetOut\r\n };\r\n break;\r\n case 'bottom-left':\r\n refix = validRight ? fixedW : -padding;\r\n position = {\r\n top: pos.top + pos.height,\r\n left: pos.left - targetWidth + pos.width + refix\r\n };\r\n arrowOffset = {\r\n left: validRight ? targetWidth - Math.min(elementW, targetWidth) / 2 - fixedW : _offsetOut\r\n };\r\n break;\r\n case 'right-top':\r\n refix = validBottom ? fixedH : -padding;\r\n position = {\r\n top: pos.top - targetHeight + pos.height + refix,\r\n left: pos.left + pos.width\r\n };\r\n arrowOffset = {\r\n top: validBottom ? targetHeight - Math.min(elementH, targetHeight) / 2 - fixedH : _offsetOut\r\n };\r\n break;\r\n case 'right-bottom':\r\n position = {\r\n top: validTop ? pos.top - fixedH : padding,\r\n left: pos.left + pos.width\r\n };\r\n arrowOffset = {\r\n top: validTop ? Math.min(elementH, targetHeight) / 2 + fixedH : _offsetOut\r\n };\r\n break;\r\n case 'left-top':\r\n refix = validBottom ? fixedH : -padding;\r\n position = {\r\n top: pos.top - targetHeight + pos.height + refix,\r\n left: pos.left - targetWidth\r\n };\r\n arrowOffset = {\r\n top: validBottom ? targetHeight - Math.min(elementH, targetHeight) / 2 - fixedH : _offsetOut\r\n };\r\n break;\r\n case 'left-bottom':\r\n position = {\r\n top: validTop ? pos.top - fixedH : padding,\r\n left: pos.left - targetWidth\r\n };\r\n arrowOffset = {\r\n top: validTop ? Math.min(elementH, targetHeight) / 2 + fixedH : _offsetOut\r\n };\r\n break;\r\n }\r\n position.top += this.getOffsetTop();\r\n position.left += this.getOffsetLeft();\r\n\r\n return {\r\n position: position,\r\n arrowOffset: arrowOffset\r\n };\r\n }\r\n };\r\n $.fn[pluginName] = function (options, noInit) {\r\n var results = [];\r\n var $result = this.each(function () {\r\n var webuiPopover = $.data(this, 'plugin_' + pluginName);\r\n if (!webuiPopover) {\r\n if (!options) {\r\n webuiPopover = new WebuiPopover(this, null);\r\n } else if (typeof options === 'string') {\r\n if (options !== 'destroy') {\r\n if (!noInit) {\r\n webuiPopover = new WebuiPopover(this, null);\r\n results.push(webuiPopover[options]());\r\n }\r\n }\r\n } else if (typeof options === 'object') {\r\n webuiPopover = new WebuiPopover(this, options);\r\n }\r\n $.data(this, 'plugin_' + pluginName, webuiPopover);\r\n } else {\r\n if (options === 'destroy') {\r\n webuiPopover.destroy();\r\n } else if (typeof options === 'string') {\r\n results.push(webuiPopover[options]());\r\n }\r\n }\r\n });\r\n return (results.length) ? results : $result;\r\n };\r\n\r\n //Global object exposes to window.\r\n var webuiPopovers = (function () {\r\n var _hideAll = function () {\r\n hideAllPop();\r\n };\r\n var _create = function (selector, options) {\r\n options = options || {};\r\n $(selector).webuiPopover(options);\r\n };\r\n var _isCreated = function (selector) {\r\n var created = true;\r\n $(selector).each(function (i, item) {\r\n created = created && $(item).data('plugin_' + pluginName) !== undefined;\r\n });\r\n return created;\r\n };\r\n var _show = function (selector, options) {\r\n if (options) {\r\n $(selector).webuiPopover(options).webuiPopover('show');\r\n } else {\r\n $(selector).webuiPopover('show');\r\n }\r\n };\r\n var _hide = function (selector) {\r\n $(selector).webuiPopover('hide');\r\n };\r\n\r\n var _setDefaultOptions = function (options) {\r\n defaults = $.extend({}, defaults, options);\r\n };\r\n\r\n var _updateContent = function (selector, content) {\r\n var pop = $(selector).data('plugin_' + pluginName);\r\n if (pop) {\r\n var cache = pop.getCache();\r\n pop.options.cache = false;\r\n pop.options.content = content;\r\n if (pop._opened) {\r\n pop._opened = false;\r\n pop.show();\r\n } else {\r\n if (pop.isAsync()) {\r\n pop.setContentASync(content);\r\n } else {\r\n pop.setContent(content);\r\n }\r\n }\r\n pop.options.cache = cache;\r\n }\r\n };\r\n\r\n var _updateContentAsync = function (selector, url) {\r\n var pop = $(selector).data('plugin_' + pluginName);\r\n if (pop) {\r\n var cache = pop.getCache();\r\n var type = pop.options.type;\r\n pop.options.cache = false;\r\n pop.options.url = url;\r\n\r\n if (pop._opened) {\r\n pop._opened = false;\r\n pop.show();\r\n } else {\r\n pop.options.type = 'async';\r\n pop.setContentASync(pop.content);\r\n }\r\n pop.options.cache = cache;\r\n pop.options.type = type;\r\n }\r\n };\r\n\r\n return {\r\n show: _show,\r\n hide: _hide,\r\n create: _create,\r\n isCreated: _isCreated,\r\n hideAll: _hideAll,\r\n updateContent: _updateContent,\r\n updateContentAsync: _updateContentAsync,\r\n setDefaultOptions: _setDefaultOptions\r\n };\r\n })();\r\n window.WebuiPopovers = webuiPopovers;\r\n }));\r\n})(window, document);\n/*!\r\n\tautosize 4.0.2\r\n\tlicense: MIT\r\n\thttp://www.jacklmoore.com/autosize\r\n*/\r\n(function (global, factory) {\r\n\tif (typeof define === \"function\" && define.amd) {\r\n\t\tdefine(['module', 'exports'], factory);\r\n\t} else if (typeof exports !== \"undefined\") {\r\n\t\tfactory(module, exports);\r\n\t} else {\r\n\t\tvar mod = {\r\n\t\t\texports: {}\r\n\t\t};\r\n\t\tfactory(mod, mod.exports);\r\n\t\tglobal.autosize = mod.exports;\r\n\t}\r\n})(this, function (module, exports) {\r\n\t'use strict';\r\n\r\n\tvar map = typeof Map === \"function\" ? new Map() : function () {\r\n\t\tvar keys = [];\r\n\t\tvar values = [];\r\n\r\n\t\treturn {\r\n\t\t\thas: function has(key) {\r\n\t\t\t\treturn keys.indexOf(key) > -1;\r\n\t\t\t},\r\n\t\t\tget: function get(key) {\r\n\t\t\t\treturn values[keys.indexOf(key)];\r\n\t\t\t},\r\n\t\t\tset: function set(key, value) {\r\n\t\t\t\tif (keys.indexOf(key) === -1) {\r\n\t\t\t\t\tkeys.push(key);\r\n\t\t\t\t\tvalues.push(value);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdelete: function _delete(key) {\r\n\t\t\t\tvar index = keys.indexOf(key);\r\n\t\t\t\tif (index > -1) {\r\n\t\t\t\t\tkeys.splice(index, 1);\r\n\t\t\t\t\tvalues.splice(index, 1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}();\r\n\r\n\tvar createEvent = function createEvent(name) {\r\n\t\treturn new Event(name, { bubbles: true });\r\n\t};\r\n\ttry {\r\n\t\tnew Event('test');\r\n\t} catch (e) {\r\n\t\t// IE does not support `new Event()`\r\n\t\tcreateEvent = function createEvent(name) {\r\n\t\t\tvar evt = document.createEvent('Event');\r\n\t\t\tevt.initEvent(name, true, false);\r\n\t\t\treturn evt;\r\n\t\t};\r\n\t}\r\n\r\n\tfunction assign(ta) {\r\n\t\tif (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;\r\n\r\n\t\tvar heightOffset = null;\r\n\t\tvar clientWidth = null;\r\n\t\tvar cachedHeight = null;\r\n\r\n\t\tfunction init() {\r\n\t\t\tvar style = window.getComputedStyle(ta, null);\r\n\r\n\t\t\tif (style.resize === 'vertical') {\r\n\t\t\t\tta.style.resize = 'none';\r\n\t\t\t} else if (style.resize === 'both') {\r\n\t\t\t\tta.style.resize = 'horizontal';\r\n\t\t\t}\r\n\r\n\t\t\tif (style.boxSizing === 'content-box') {\r\n\t\t\t\theightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));\r\n\t\t\t} else {\r\n\t\t\t\theightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\r\n\t\t\t}\r\n\t\t\t// Fix when a textarea is not on document body and heightOffset is Not a Number\r\n\t\t\tif (isNaN(heightOffset)) {\r\n\t\t\t\theightOffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tupdate();\r\n\t\t}\r\n\r\n\t\tfunction changeOverflow(value) {\r\n\t\t\t{\r\n\t\t\t\t// Chrome/Safari-specific fix:\r\n\t\t\t\t// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space\r\n\t\t\t\t// made available by removing the scrollbar. The following forces the necessary text reflow.\r\n\t\t\t\tvar width = ta.style.width;\r\n\t\t\t\tta.style.width = '0px';\r\n\t\t\t\t// Force reflow:\r\n\t\t\t\t/* jshint ignore:start */\r\n\t\t\t\tta.offsetWidth;\r\n\t\t\t\t/* jshint ignore:end */\r\n\t\t\t\tta.style.width = width;\r\n\t\t\t}\r\n\r\n\t\t\tta.style.overflowY = value;\r\n\t\t}\r\n\r\n\t\tfunction getParentOverflows(el) {\r\n\t\t\tvar arr = [];\r\n\r\n\t\t\twhile (el && el.parentNode && el.parentNode instanceof Element) {\r\n\t\t\t\tif (el.parentNode.scrollTop) {\r\n\t\t\t\t\tarr.push({\r\n\t\t\t\t\t\tnode: el.parentNode,\r\n\t\t\t\t\t\tscrollTop: el.parentNode.scrollTop\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tel = el.parentNode;\r\n\t\t\t}\r\n\r\n\t\t\treturn arr;\r\n\t\t}\r\n\r\n\t\tfunction resize() {\r\n\t\t\tif (ta.scrollHeight === 0) {\r\n\t\t\t\t// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar overflows = getParentOverflows(ta);\r\n\t\t\tvar docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)\r\n\r\n\t\t\tta.style.height = '';\r\n\t\t\tta.style.height = ta.scrollHeight + heightOffset + 'px';\r\n\r\n\t\t\t// used to check if an update is actually necessary on window.resize\r\n\t\t\tclientWidth = ta.clientWidth;\r\n\r\n\t\t\t// prevents scroll-position jumping\r\n\t\t\toverflows.forEach(function (el) {\r\n\t\t\t\tel.node.scrollTop = el.scrollTop;\r\n\t\t\t});\r\n\r\n\t\t\tif (docTop) {\r\n\t\t\t\tdocument.documentElement.scrollTop = docTop;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction update() {\r\n\t\t\tresize();\r\n\r\n\t\t\tvar styleHeight = Math.round(parseFloat(ta.style.height));\r\n\t\t\tvar computed = window.getComputedStyle(ta, null);\r\n\r\n\t\t\t// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box\r\n\t\t\tvar actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;\r\n\r\n\t\t\t// The actual height not matching the style height (set via the resize method) indicates that \r\n\t\t\t// the max-height has been exceeded, in which case the overflow should be allowed.\r\n\t\t\tif (actualHeight < styleHeight) {\r\n\t\t\t\tif (computed.overflowY === 'hidden') {\r\n\t\t\t\t\tchangeOverflow('scroll');\r\n\t\t\t\t\tresize();\r\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.\r\n\t\t\t\tif (computed.overflowY !== 'hidden') {\r\n\t\t\t\t\tchangeOverflow('hidden');\r\n\t\t\t\t\tresize();\r\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (cachedHeight !== actualHeight) {\r\n\t\t\t\tcachedHeight = actualHeight;\r\n\t\t\t\tvar evt = createEvent('autosize:resized');\r\n\t\t\t\ttry {\r\n\t\t\t\t\tta.dispatchEvent(evt);\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\t// Firefox will throw an error on dispatchEvent for a detached element\r\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=889376\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar pageResize = function pageResize() {\r\n\t\t\tif (ta.clientWidth !== clientWidth) {\r\n\t\t\t\tupdate();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar destroy = function (style) {\r\n\t\t\twindow.removeEventListener('resize', pageResize, false);\r\n\t\t\tta.removeEventListener('input', update, false);\r\n\t\t\tta.removeEventListener('keyup', update, false);\r\n\t\t\tta.removeEventListener('autosize:destroy', destroy, false);\r\n\t\t\tta.removeEventListener('autosize:update', update, false);\r\n\r\n\t\t\tObject.keys(style).forEach(function (key) {\r\n\t\t\t\tta.style[key] = style[key];\r\n\t\t\t});\r\n\r\n\t\t\tmap.delete(ta);\r\n\t\t}.bind(ta, {\r\n\t\t\theight: ta.style.height,\r\n\t\t\tresize: ta.style.resize,\r\n\t\t\toverflowY: ta.style.overflowY,\r\n\t\t\toverflowX: ta.style.overflowX,\r\n\t\t\twordWrap: ta.style.wordWrap\r\n\t\t});\r\n\r\n\t\tta.addEventListener('autosize:destroy', destroy, false);\r\n\r\n\t\t// IE9 does not fire onpropertychange or oninput for deletions,\r\n\t\t// so binding to onkeyup to catch most of those events.\r\n\t\t// There is no way that I know of to detect something like 'cut' in IE9.\r\n\t\tif ('onpropertychange' in ta && 'oninput' in ta) {\r\n\t\t\tta.addEventListener('keyup', update, false);\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('resize', pageResize, false);\r\n\t\tta.addEventListener('input', update, false);\r\n\t\tta.addEventListener('autosize:update', update, false);\r\n\t\tta.style.overflowX = 'hidden';\r\n\t\tta.style.wordWrap = 'break-word';\r\n\r\n\t\tmap.set(ta, {\r\n\t\t\tdestroy: destroy,\r\n\t\t\tupdate: update\r\n\t\t});\r\n\r\n\t\tinit();\r\n\t}\r\n\r\n\tfunction destroy(ta) {\r\n\t\tvar methods = map.get(ta);\r\n\t\tif (methods) {\r\n\t\t\tmethods.destroy();\r\n\t\t}\r\n\t}\r\n\r\n\tfunction update(ta) {\r\n\t\tvar methods = map.get(ta);\r\n\t\tif (methods) {\r\n\t\t\tmethods.update();\r\n\t\t}\r\n\t}\r\n\r\n\tvar autosize = null;\r\n\r\n\t// Do nothing in Node.js environment and IE8 (or lower)\r\n\tif (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {\r\n\t\tautosize = function autosize(el) {\r\n\t\t\treturn el;\r\n\t\t};\r\n\t\tautosize.destroy = function (el) {\r\n\t\t\treturn el;\r\n\t\t};\r\n\t\tautosize.update = function (el) {\r\n\t\t\treturn el;\r\n\t\t};\r\n\t} else {\r\n\t\tautosize = function autosize(el, options) {\r\n\t\t\tif (el) {\r\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], function (x) {\r\n\t\t\t\t\treturn assign(x, options);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\treturn el;\r\n\t\t};\r\n\t\tautosize.destroy = function (el) {\r\n\t\t\tif (el) {\r\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], destroy);\r\n\t\t\t}\r\n\t\t\treturn el;\r\n\t\t};\r\n\t\tautosize.update = function (el) {\r\n\t\t\tif (el) {\r\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], update);\r\n\t\t\t}\r\n\t\t\treturn el;\r\n\t\t};\r\n\t}\r\n\r\n\texports.default = autosize;\r\n\tmodule.exports = exports['default'];\r\n});\n/**!\r\n* tippy.js v4.0.3\r\n* (c) 2017-2019 atomiks\r\n* MIT License\r\n*/\r\n(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('popper.js')) :\r\n typeof define === 'function' && define.amd ? define(['popper.js'], factory) :\r\n (global = global || self, global.tippy = factory(global.Popper));\r\n}(this, function (Popper) {\r\n 'use strict';\r\n\r\n Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;\r\n\r\n function _extends() {\r\n _extends = Object.assign || function (target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n\r\n for (var key in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n };\r\n\r\n return _extends.apply(this, arguments);\r\n }\r\n\r\n var version = \"4.0.3\";\r\n\r\n var isBrowser = typeof window !== 'undefined';\r\n var ua = isBrowser && navigator.userAgent;\r\n var isIE = /MSIE |Trident\\//.test(ua);\r\n var isUCBrowser = /UCBrowser\\//.test(ua);\r\n var isIOS = isBrowser && /iPhone|iPad|iPod/.test(navigator.platform) && !window.MSStream;\r\n\r\n var Defaults = {\r\n a11y: true,\r\n allowHTML: true,\r\n animateFill: true,\r\n animation: 'shift-away',\r\n appendTo: function appendTo() {\r\n return document.body;\r\n },\r\n aria: 'describedby',\r\n arrow: false,\r\n arrowType: 'sharp',\r\n boundary: 'scrollParent',\r\n content: '',\r\n delay: [0, 20],\r\n distance: 10,\r\n duration: [325, 275],\r\n flip: true,\r\n flipBehavior: 'flip',\r\n flipOnUpdate: false,\r\n followCursor: false,\r\n hideOnClick: true,\r\n ignoreAttributes: false,\r\n inertia: false,\r\n interactive: false,\r\n interactiveBorder: 2,\r\n interactiveDebounce: 0,\r\n lazy: true,\r\n maxWidth: 350,\r\n multiple: false,\r\n offset: 0,\r\n onHidden: function onHidden() { },\r\n onHide: function onHide() { },\r\n onMount: function onMount() { },\r\n onShow: function onShow() { },\r\n onShown: function onShown() { },\r\n placement: 'top',\r\n popperOptions: {},\r\n role: 'tooltip',\r\n showOnInit: false,\r\n size: 'regular',\r\n sticky: false,\r\n target: '',\r\n theme: 'dark',\r\n touch: true,\r\n touchHold: false,\r\n trigger: 'mouseenter focus',\r\n updateDuration: 0,\r\n wait: null,\r\n zIndex: 9999\r\n /**\r\n * If the set() method encounters one of these, the popperInstance must be\r\n * recreated\r\n */\r\n\r\n };\r\n var POPPER_INSTANCE_DEPENDENCIES = ['arrow', 'arrowType', 'boundary', 'distance', 'flip', 'flipBehavior', 'flipOnUpdate', 'offset', 'placement', 'popperOptions'];\r\n\r\n var Selectors = {\r\n POPPER: '.tippy-popper',\r\n TOOLTIP: '.tippy-tooltip',\r\n CONTENT: '.tippy-content',\r\n BACKDROP: '.tippy-backdrop',\r\n ARROW: '.tippy-arrow',\r\n ROUND_ARROW: '.tippy-roundarrow'\r\n };\r\n\r\n var elementProto = isBrowser ? Element.prototype : {};\r\n var matches = elementProto.matches || elementProto.matchesSelector || elementProto.webkitMatchesSelector || elementProto.mozMatchesSelector || elementProto.msMatchesSelector;\r\n /**\r\n * Ponyfill for Array.from - converts iterable values to an array\r\n * @param {ArrayLike} value\r\n * @return {any[]}\r\n */\r\n\r\n function arrayFrom(value) {\r\n return [].slice.call(value);\r\n }\r\n /**\r\n * Ponyfill for Element.prototype.closest\r\n * @param {Element} element\r\n * @param {String} parentSelector\r\n * @return {Element}\r\n */\r\n\r\n function closest(element, parentSelector) {\r\n return (elementProto.closest || function (selector) {\r\n var el = this;\r\n\r\n while (el) {\r\n if (matches.call(el, selector)) return el;\r\n el = el.parentElement;\r\n }\r\n }).call(element, parentSelector);\r\n }\r\n /**\r\n * Works like Element.prototype.closest, but uses a callback instead\r\n * @param {Element} element\r\n * @param {Function} callback\r\n * @return {Element}\r\n */\r\n\r\n function closestCallback(element, callback) {\r\n while (element) {\r\n if (callback(element)) return element;\r\n element = element.parentElement;\r\n }\r\n }\r\n\r\n /**\r\n * Determines if a value is a \"bare\" virtual element (before mutations done\r\n * by `polyfillElementPrototypeProperties()`). JSDOM elements show up as\r\n * [object Object], we can check if the value is \"element-like\" if it has\r\n * `addEventListener`\r\n * @param {any} value\r\n * @return {Boolean}\r\n */\r\n\r\n function isBareVirtualElement(value) {\r\n return {}.toString.call(value) === '[object Object]' && !value.addEventListener;\r\n }\r\n /**\r\n * Safe .hasOwnProperty check, for prototype-less objects\r\n * @param {Object} obj\r\n * @param {String} key\r\n * @return {Boolean}\r\n */\r\n\r\n function hasOwnProperty(obj, key) {\r\n return {}.hasOwnProperty.call(obj, key);\r\n }\r\n /**\r\n * Returns an array of elements based on the value\r\n * @param {any} value\r\n * @return {Array}\r\n */\r\n\r\n function getArrayOfElements(value) {\r\n if (isSingular(value)) {\r\n return [value];\r\n }\r\n\r\n if (value instanceof NodeList) {\r\n return arrayFrom(value);\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return value;\r\n }\r\n\r\n try {\r\n return arrayFrom(document.querySelectorAll(value));\r\n } catch (e) {\r\n return [];\r\n }\r\n }\r\n /**\r\n * Returns a value at a given index depending on if it's an array or number\r\n * @param {any} value\r\n * @param {Number} index\r\n * @param {any} defaultValue\r\n */\r\n\r\n function getValue(value, index, defaultValue) {\r\n if (Array.isArray(value)) {\r\n var v = value[index];\r\n return v == null ? defaultValue : v;\r\n }\r\n\r\n return value;\r\n }\r\n /**\r\n * Debounce utility\r\n * @param {Function} fn\r\n * @param {Number} ms\r\n */\r\n\r\n function debounce(fn, ms) {\r\n var timeoutId;\r\n return function () {\r\n var _this = this,\r\n _arguments = arguments;\r\n\r\n clearTimeout(timeoutId);\r\n timeoutId = setTimeout(function () {\r\n return fn.apply(_this, _arguments);\r\n }, ms);\r\n };\r\n }\r\n /**\r\n * Prevents errors from being thrown while accessing nested modifier objects\r\n * in `popperOptions`\r\n * @param {Object} obj\r\n * @param {String} key\r\n * @return {Object|undefined}\r\n */\r\n\r\n function getModifier(obj, key) {\r\n return obj && obj.modifiers && obj.modifiers[key];\r\n }\r\n /**\r\n * Determines if an array or string includes a value\r\n * @param {Array|String} a\r\n * @param {any} b\r\n * @return {Boolean}\r\n */\r\n\r\n function includes(a, b) {\r\n return a.indexOf(b) > -1;\r\n }\r\n /**\r\n * Determines if the value is singular-like\r\n * @param {any} value\r\n * @return {Boolean}\r\n */\r\n\r\n function isSingular(value) {\r\n return !!value && value.isVirtual || value instanceof Element;\r\n }\r\n /**\r\n * Tricking bundlers, linters, and minifiers\r\n * @return {String}\r\n */\r\n\r\n function innerHTML() {\r\n return 'innerHTML';\r\n }\r\n /**\r\n * Evaluates a function if one, or returns the value\r\n * @param {any} value\r\n * @param {any[]} args\r\n * @return {Boolean}\r\n */\r\n\r\n function evaluateValue(value, args) {\r\n return typeof value === 'function' ? value.apply(null, args) : value;\r\n }\r\n /**\r\n * Sets a popperInstance `flip` modifier's enabled state\r\n * @param {Object[]} modifiers\r\n * @param {any} value\r\n */\r\n\r\n function setFlipModifierEnabled(modifiers, value) {\r\n modifiers.filter(function (m) {\r\n return m.name === 'flip';\r\n })[0].enabled = value;\r\n }\r\n\r\n /**\r\n * Returns a new `div` element\r\n * @return {HTMLDivElement}\r\n */\r\n\r\n function div() {\r\n return document.createElement('div');\r\n }\r\n /**\r\n * Sets the innerHTML of an element while tricking linters & minifiers\r\n * @param {HTMLElement} el\r\n * @param {Element|String} html\r\n */\r\n\r\n function setInnerHTML(el, html) {\r\n el[innerHTML()] = html instanceof Element ? html[innerHTML()] : html;\r\n }\r\n /**\r\n * Sets the content of a tooltip\r\n * @param {HTMLElement} contentEl\r\n * @param {Object} props\r\n */\r\n\r\n function setContent(contentEl, props) {\r\n if (props.content instanceof Element) {\r\n setInnerHTML(contentEl, '');\r\n contentEl.appendChild(props.content);\r\n } else {\r\n contentEl[props.allowHTML ? 'innerHTML' : 'textContent'] = props.content;\r\n }\r\n }\r\n /**\r\n * Returns the child elements of a popper element\r\n * @param {HTMLElement} popper\r\n * @return {Object}\r\n */\r\n\r\n function getChildren(popper) {\r\n return {\r\n tooltip: popper.querySelector(Selectors.TOOLTIP),\r\n backdrop: popper.querySelector(Selectors.BACKDROP),\r\n content: popper.querySelector(Selectors.CONTENT),\r\n arrow: popper.querySelector(Selectors.ARROW) || popper.querySelector(Selectors.ROUND_ARROW)\r\n };\r\n }\r\n /**\r\n * Adds `data-inertia` attribute\r\n * @param {HTMLElement} tooltip\r\n */\r\n\r\n function addInertia(tooltip) {\r\n tooltip.setAttribute('data-inertia', '');\r\n }\r\n /**\r\n * Removes `data-inertia` attribute\r\n * @param {HTMLElement} tooltip\r\n */\r\n\r\n function removeInertia(tooltip) {\r\n tooltip.removeAttribute('data-inertia');\r\n }\r\n /**\r\n * Creates an arrow element and returns it\r\n * @return {HTMLDivElement}\r\n */\r\n\r\n function createArrowElement(arrowType) {\r\n var arrow = div();\r\n\r\n if (arrowType === 'round') {\r\n arrow.className = 'tippy-roundarrow';\r\n setInnerHTML(arrow, '');\r\n } else {\r\n arrow.className = 'tippy-arrow';\r\n }\r\n\r\n return arrow;\r\n }\r\n /**\r\n * Creates a backdrop element and returns it\r\n * @return {HTMLDivElement}\r\n */\r\n\r\n function createBackdropElement() {\r\n var backdrop = div();\r\n backdrop.className = 'tippy-backdrop';\r\n backdrop.setAttribute('data-state', 'hidden');\r\n return backdrop;\r\n }\r\n /**\r\n * Adds interactive-related attributes\r\n * @param {HTMLElement} popper\r\n * @param {HTMLElement} tooltip\r\n */\r\n\r\n function addInteractive(popper, tooltip) {\r\n popper.setAttribute('tabindex', '-1');\r\n tooltip.setAttribute('data-interactive', '');\r\n }\r\n /**\r\n * Removes interactive-related attributes\r\n * @param {HTMLElement} popper\r\n * @param {HTMLElement} tooltip\r\n */\r\n\r\n function removeInteractive(popper, tooltip) {\r\n popper.removeAttribute('tabindex');\r\n tooltip.removeAttribute('data-interactive');\r\n }\r\n /**\r\n * Applies a transition duration to a list of elements\r\n * @param {Array} els\r\n * @param {Number} value\r\n */\r\n\r\n function applyTransitionDuration(els, value) {\r\n els.forEach(function (el) {\r\n if (el) {\r\n el.style.transitionDuration = \"\".concat(value, \"ms\");\r\n }\r\n });\r\n }\r\n /**\r\n * Add/remove transitionend listener from tooltip\r\n * @param {Element} tooltip\r\n * @param {String} action\r\n * @param {Function} listener\r\n */\r\n\r\n function toggleTransitionEndListener(tooltip, action, listener) {\r\n // UC Browser hasn't adopted the `transitionend` event despite supporting\r\n // unprefixed transitions...\r\n var eventName = isUCBrowser && document.body.style.WebkitTransition !== undefined ? 'webkitTransitionEnd' : 'transitionend';\r\n tooltip[action + 'EventListener'](eventName, listener);\r\n }\r\n /**\r\n * Returns the popper's placement, ignoring shifting (top-start, etc)\r\n * @param {Element} popper\r\n * @return {String}\r\n */\r\n\r\n function getPopperPlacement(popper) {\r\n var fullPlacement = popper.getAttribute('x-placement');\r\n return fullPlacement ? fullPlacement.split('-')[0] : '';\r\n }\r\n /**\r\n * Sets the visibility state to elements so they can begin to transition\r\n * @param {Array} els\r\n * @param {String} state\r\n */\r\n\r\n function setVisibilityState(els, state) {\r\n els.forEach(function (el) {\r\n if (el) {\r\n el.setAttribute('data-state', state);\r\n }\r\n });\r\n }\r\n /**\r\n * Triggers reflow\r\n * @param {Element} popper\r\n */\r\n\r\n function reflow(popper) {\r\n void popper.offsetHeight;\r\n }\r\n /**\r\n * Adds/removes theme from tooltip's classList\r\n * @param {HTMLDivElement} tooltip\r\n * @param {String} action\r\n * @param {String} theme\r\n */\r\n\r\n function toggleTheme(tooltip, action, theme) {\r\n theme.split(' ').forEach(function (themeName) {\r\n tooltip.classList[action](themeName + '-theme');\r\n });\r\n }\r\n /**\r\n * Constructs the popper element and returns it\r\n * @param {Number} id\r\n * @param {Object} props\r\n * @return {HTMLDivElement}\r\n */\r\n\r\n function createPopperElement(id, props) {\r\n var popper = div();\r\n popper.className = 'tippy-popper';\r\n popper.id = \"tippy-\".concat(id);\r\n popper.style.zIndex = props.zIndex;\r\n\r\n if (props.role) {\r\n popper.setAttribute('role', props.role);\r\n }\r\n\r\n var tooltip = div();\r\n tooltip.className = 'tippy-tooltip';\r\n tooltip.style.maxWidth = props.maxWidth + (typeof props.maxWidth === 'number' ? 'px' : '');\r\n tooltip.setAttribute('data-size', props.size);\r\n tooltip.setAttribute('data-animation', props.animation);\r\n tooltip.setAttribute('data-state', 'hidden');\r\n toggleTheme(tooltip, 'add', props.theme);\r\n var content = div();\r\n content.className = 'tippy-content';\r\n content.setAttribute('data-state', 'hidden');\r\n\r\n if (props.interactive) {\r\n addInteractive(popper, tooltip);\r\n }\r\n\r\n if (props.arrow) {\r\n tooltip.appendChild(createArrowElement(props.arrowType));\r\n }\r\n\r\n if (props.animateFill) {\r\n tooltip.appendChild(createBackdropElement());\r\n tooltip.setAttribute('data-animatefill', '');\r\n }\r\n\r\n if (props.inertia) {\r\n addInertia(tooltip);\r\n }\r\n\r\n setContent(content, props);\r\n tooltip.appendChild(content);\r\n popper.appendChild(tooltip);\r\n return popper;\r\n }\r\n /**\r\n * Updates the popper element based on the new props\r\n * @param {HTMLDivElement} popper\r\n * @param {Object} prevProps\r\n * @param {Object} nextProps\r\n */\r\n\r\n function updatePopperElement(popper, prevProps, nextProps) {\r\n var _getChildren = getChildren(popper),\r\n tooltip = _getChildren.tooltip,\r\n content = _getChildren.content,\r\n backdrop = _getChildren.backdrop,\r\n arrow = _getChildren.arrow;\r\n\r\n popper.style.zIndex = nextProps.zIndex;\r\n tooltip.setAttribute('data-size', nextProps.size);\r\n tooltip.setAttribute('data-animation', nextProps.animation);\r\n tooltip.style.maxWidth = nextProps.maxWidth + (typeof nextProps.maxWidth === 'number' ? 'px' : '');\r\n\r\n if (nextProps.role) {\r\n popper.setAttribute('role', nextProps.role);\r\n } else {\r\n popper.removeAttribute('role');\r\n }\r\n\r\n if (prevProps.content !== nextProps.content) {\r\n setContent(content, nextProps);\r\n } // animateFill\r\n\r\n\r\n if (!prevProps.animateFill && nextProps.animateFill) {\r\n tooltip.appendChild(createBackdropElement());\r\n tooltip.setAttribute('data-animatefill', '');\r\n } else if (prevProps.animateFill && !nextProps.animateFill) {\r\n tooltip.removeChild(backdrop);\r\n tooltip.removeAttribute('data-animatefill');\r\n } // arrow\r\n\r\n\r\n if (!prevProps.arrow && nextProps.arrow) {\r\n tooltip.appendChild(createArrowElement(nextProps.arrowType));\r\n } else if (prevProps.arrow && !nextProps.arrow) {\r\n tooltip.removeChild(arrow);\r\n } // arrowType\r\n\r\n\r\n if (prevProps.arrow && nextProps.arrow && prevProps.arrowType !== nextProps.arrowType) {\r\n tooltip.replaceChild(createArrowElement(nextProps.arrowType), arrow);\r\n } // interactive\r\n\r\n\r\n if (!prevProps.interactive && nextProps.interactive) {\r\n addInteractive(popper, tooltip);\r\n } else if (prevProps.interactive && !nextProps.interactive) {\r\n removeInteractive(popper, tooltip);\r\n } // inertia\r\n\r\n\r\n if (!prevProps.inertia && nextProps.inertia) {\r\n addInertia(tooltip);\r\n } else if (prevProps.inertia && !nextProps.inertia) {\r\n removeInertia(tooltip);\r\n } // theme\r\n\r\n\r\n if (prevProps.theme !== nextProps.theme) {\r\n toggleTheme(tooltip, 'remove', prevProps.theme);\r\n toggleTheme(tooltip, 'add', nextProps.theme);\r\n }\r\n }\r\n /**\r\n * Runs the callback after the popper's position has been updated\r\n * update() is debounced with Promise.resolve() or setTimeout()\r\n * scheduleUpdate() is update() wrapped in requestAnimationFrame()\r\n * @param {Popper} popperInstance\r\n * @param {Function} callback\r\n */\r\n\r\n function afterPopperPositionUpdates(popperInstance, callback) {\r\n var popper = popperInstance.popper,\r\n options = popperInstance.options;\r\n var onCreate = options.onCreate,\r\n onUpdate = options.onUpdate;\r\n\r\n options.onCreate = options.onUpdate = function (data) {\r\n reflow(popper);\r\n callback();\r\n onUpdate(data);\r\n options.onCreate = onCreate;\r\n options.onUpdate = onUpdate;\r\n };\r\n }\r\n /**\r\n * Hides all visible poppers on the document\r\n * @param {Object} options\r\n */\r\n\r\n function hideAll() {\r\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\r\n checkHideOnClick = _ref.checkHideOnClick,\r\n exclude = _ref.exclude,\r\n duration = _ref.duration;\r\n\r\n arrayFrom(document.querySelectorAll(Selectors.POPPER)).forEach(function (popper) {\r\n var instance = popper._tippy;\r\n\r\n if (instance && (checkHideOnClick ? instance.props.hideOnClick === true : true) && (!exclude || popper !== exclude.popper)) {\r\n instance.hide(duration);\r\n }\r\n });\r\n }\r\n /**\r\n * Determines if the mouse cursor is outside of the popper's interactive border\r\n * region\r\n * @param {String} popperPlacement\r\n * @param {ClientRect} popperRect\r\n * @param {MouseEvent} event\r\n * @param {Object} props\r\n * @return {Boolean}\r\n */\r\n\r\n function isCursorOutsideInteractiveBorder(popperPlacement, popperRect, event, props) {\r\n if (!popperPlacement) {\r\n return true;\r\n }\r\n\r\n var x = event.clientX,\r\n y = event.clientY;\r\n var interactiveBorder = props.interactiveBorder,\r\n distance = props.distance;\r\n var exceedsTop = popperRect.top - y > (popperPlacement === 'top' ? interactiveBorder + distance : interactiveBorder);\r\n var exceedsBottom = y - popperRect.bottom > (popperPlacement === 'bottom' ? interactiveBorder + distance : interactiveBorder);\r\n var exceedsLeft = popperRect.left - x > (popperPlacement === 'left' ? interactiveBorder + distance : interactiveBorder);\r\n var exceedsRight = x - popperRect.right > (popperPlacement === 'right' ? interactiveBorder + distance : interactiveBorder);\r\n return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;\r\n }\r\n /**\r\n * Returns the distance offset, taking into account the default offset due to\r\n * the transform: translate() rule (10px) in CSS\r\n * @param {Number} distance\r\n * @return {String}\r\n */\r\n\r\n function getOffsetDistanceInPx(distance) {\r\n return -(distance - 10) + 'px';\r\n }\r\n\r\n var PASSIVE = {\r\n passive: true\r\n };\r\n var PADDING = 3;\r\n\r\n var isUsingTouch = false;\r\n function onDocumentTouch() {\r\n if (isUsingTouch) {\r\n return;\r\n }\r\n\r\n isUsingTouch = true;\r\n\r\n if (isIOS) {\r\n document.body.classList.add('tippy-iOS');\r\n }\r\n\r\n if (window.performance) {\r\n document.addEventListener('mousemove', onDocumentMouseMove);\r\n }\r\n }\r\n var lastMouseMoveTime = 0;\r\n function onDocumentMouseMove() {\r\n var now = performance.now(); // Chrome 60+ is 1 mousemove per animation frame, use 20ms time difference\r\n\r\n if (now - lastMouseMoveTime < 20) {\r\n isUsingTouch = false;\r\n document.removeEventListener('mousemove', onDocumentMouseMove);\r\n\r\n if (!isIOS) {\r\n document.body.classList.remove('tippy-iOS');\r\n }\r\n }\r\n\r\n lastMouseMoveTime = now;\r\n }\r\n function onDocumentClick(_ref) {\r\n var target = _ref.target;\r\n\r\n // Simulated events dispatched on the document\r\n if (!(target instanceof Element)) {\r\n return hideAll();\r\n } // Clicked on an interactive popper\r\n\r\n\r\n var popper = closest(target, Selectors.POPPER);\r\n\r\n if (popper && popper._tippy && popper._tippy.props.interactive) {\r\n return;\r\n } // Clicked on a reference\r\n\r\n\r\n var reference = closestCallback(target, function (el) {\r\n return el._tippy && el._tippy.reference === el;\r\n });\r\n\r\n if (reference) {\r\n var instance = reference._tippy;\r\n var isClickTrigger = includes(instance.props.trigger, 'click');\r\n\r\n if (isUsingTouch || isClickTrigger) {\r\n return hideAll({\r\n exclude: instance,\r\n checkHideOnClick: true\r\n });\r\n }\r\n\r\n if (instance.props.hideOnClick !== true || isClickTrigger) {\r\n return;\r\n }\r\n\r\n instance.clearDelayTimeouts();\r\n }\r\n\r\n hideAll({\r\n checkHideOnClick: true\r\n });\r\n }\r\n function onWindowBlur() {\r\n var _document = document,\r\n activeElement = _document.activeElement;\r\n\r\n if (activeElement && activeElement.blur && activeElement._tippy) {\r\n activeElement.blur();\r\n }\r\n }\r\n /**\r\n * Adds the needed global event listeners\r\n */\r\n\r\n function bindGlobalEventListeners() {\r\n document.addEventListener('click', onDocumentClick, true);\r\n document.addEventListener('touchstart', onDocumentTouch, PASSIVE);\r\n window.addEventListener('blur', onWindowBlur);\r\n }\r\n\r\n var keys = Object.keys(Defaults);\r\n /**\r\n * Determines if an element can receive focus\r\n * @param {Element|Object} el\r\n * @return {Boolean}\r\n */\r\n\r\n function canReceiveFocus(el) {\r\n return el instanceof Element ? matches.call(el, 'a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]') && !el.hasAttribute('disabled') : true;\r\n }\r\n /**\r\n * Returns an object of optional props from data-tippy-* attributes\r\n * @param {Element|Object} reference\r\n * @return {Object}\r\n */\r\n\r\n function getDataAttributeOptions(reference) {\r\n return keys.reduce(function (acc, key) {\r\n var valueAsString = (reference.getAttribute(\"data-tippy-\".concat(key)) || '').trim();\r\n\r\n if (!valueAsString) {\r\n return acc;\r\n }\r\n\r\n if (key === 'content') {\r\n acc[key] = valueAsString;\r\n } else {\r\n try {\r\n acc[key] = JSON.parse(valueAsString);\r\n } catch (e) {\r\n acc[key] = valueAsString;\r\n }\r\n }\r\n\r\n return acc;\r\n }, {});\r\n }\r\n /**\r\n * Polyfills the virtual reference (plain object) with Element.prototype props\r\n * Mutating because DOM elements are mutated, adds `_tippy` property\r\n * @param {Object} virtualReference\r\n */\r\n\r\n function polyfillElementPrototypeProperties(virtualReference) {\r\n var polyfills = {\r\n isVirtual: true,\r\n attributes: virtualReference.attributes || {},\r\n setAttribute: function setAttribute(key, value) {\r\n virtualReference.attributes[key] = value;\r\n },\r\n getAttribute: function getAttribute(key) {\r\n return virtualReference.attributes[key];\r\n },\r\n removeAttribute: function removeAttribute(key) {\r\n delete virtualReference.attributes[key];\r\n },\r\n hasAttribute: function hasAttribute(key) {\r\n return key in virtualReference.attributes;\r\n },\r\n addEventListener: function addEventListener() { },\r\n removeEventListener: function removeEventListener() { },\r\n classList: {\r\n classNames: {},\r\n add: function add(key) {\r\n virtualReference.classList.classNames[key] = true;\r\n },\r\n remove: function remove(key) {\r\n delete virtualReference.classList.classNames[key];\r\n },\r\n contains: function contains(key) {\r\n return key in virtualReference.classList.classNames;\r\n }\r\n }\r\n };\r\n\r\n for (var key in polyfills) {\r\n virtualReference[key] = polyfills[key];\r\n }\r\n }\r\n\r\n /**\r\n * Evaluates the props object by merging data attributes and\r\n * disabling conflicting options where necessary\r\n * @param {Element} reference\r\n * @param {Object} props\r\n * @return {Object}\r\n */\r\n\r\n function evaluateProps(reference, props) {\r\n var out = _extends({}, props, {\r\n content: evaluateValue(props.content, [reference])\r\n }, props.ignoreAttributes ? {} : getDataAttributeOptions(reference));\r\n\r\n if (out.arrow || isUCBrowser) {\r\n out.animateFill = false;\r\n }\r\n\r\n return out;\r\n }\r\n /**\r\n * Validates an object of options with the valid default props object\r\n * @param {Object} options\r\n * @param {Object} defaults\r\n */\r\n\r\n function validateOptions() {\r\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\r\n Object.keys(options).forEach(function (option) {\r\n if (!hasOwnProperty(defaults, option)) {\r\n throw new Error(\"[tippy]: `\".concat(option, \"` is not a valid option\"));\r\n }\r\n });\r\n }\r\n\r\n var idCounter = 1;\r\n /**\r\n * Creates and returns a Tippy object. We're using a closure pattern instead of\r\n * a class so that the exposed object API is clean without private members\r\n * prefixed with `_`.\r\n * @param {Element} reference\r\n * @param {Object} collectionProps\r\n * @return {Object} instance\r\n */\r\n\r\n function createTippy(reference, collectionProps) {\r\n var props = evaluateProps(reference, collectionProps); // If the reference shouldn't have multiple tippys, return null early\r\n\r\n if (!props.multiple && reference._tippy) {\r\n return null;\r\n }\r\n /* ======================= 🔒 Private members 🔒 ======================= */\r\n // The last trigger event object that caused the tippy to show\r\n\r\n\r\n var lastTriggerEvent = {}; // The last mousemove event object created by the document mousemove event\r\n\r\n var lastMouseMoveEvent = null; // Timeout created by the show delay\r\n\r\n var showTimeoutId = 0; // Timeout created by the hide delay\r\n\r\n var hideTimeoutId = 0; // Flag to determine if the tippy is preparing to show due to the show timeout\r\n\r\n var isPreparingToShow = false; // The current `transitionend` callback reference\r\n\r\n var transitionEndListener = function transitionEndListener() { }; // Array of event listeners currently attached to the reference element\r\n\r\n\r\n var listeners = []; // Private onMouseMove handler reference, debounced or not\r\n\r\n var debouncedOnMouseMove = props.interactiveDebounce > 0 ? debounce(onMouseMove, props.interactiveDebounce) : onMouseMove; // Node the tippy is currently appended to\r\n\r\n var parentNode = null;\r\n /* ======================= 🔑 Public members 🔑 ======================= */\r\n // id used for the `aria-describedby` / `aria-labelledby` attribute\r\n\r\n var id = idCounter++; // Popper element reference\r\n\r\n var popper = createPopperElement(id, props); // Prevent a tippy with a delay from hiding if the cursor left then returned\r\n // before it started hiding\r\n\r\n popper.addEventListener('mouseenter', function (event) {\r\n if (instance.props.interactive && instance.state.isVisible && lastTriggerEvent.type === 'mouseenter') {\r\n prepareShow(event);\r\n }\r\n });\r\n popper.addEventListener('mouseleave', function () {\r\n if (instance.props.interactive && lastTriggerEvent.type === 'mouseenter') {\r\n document.addEventListener('mousemove', debouncedOnMouseMove);\r\n }\r\n }); // Popper element children: { arrow, backdrop, content, tooltip }\r\n\r\n var popperChildren = getChildren(popper); // The state of the tippy\r\n\r\n var state = {\r\n // If the tippy is currently enabled\r\n isEnabled: true,\r\n // show() invoked, not currently transitioning out\r\n isVisible: false,\r\n // If the tippy has been destroyed\r\n isDestroyed: false,\r\n // If the tippy is on the DOM (transitioning out or in)\r\n isMounted: false,\r\n // show() transition finished\r\n isShown: false // Popper.js instance for the tippy is lazily created\r\n\r\n };\r\n var popperInstance = null; // 🌟 tippy instance\r\n\r\n var instance = {\r\n // properties\r\n id: id,\r\n reference: reference,\r\n popper: popper,\r\n popperChildren: popperChildren,\r\n popperInstance: popperInstance,\r\n props: props,\r\n state: state,\r\n // methods\r\n clearDelayTimeouts: clearDelayTimeouts,\r\n set: set,\r\n setContent: setContent$$1,\r\n show: show,\r\n hide: hide,\r\n enable: enable,\r\n disable: disable,\r\n destroy: destroy\r\n };\r\n addTriggersToReference();\r\n\r\n if (!props.lazy) {\r\n createPopperInstance();\r\n instance.popperInstance.disableEventListeners();\r\n }\r\n\r\n if (props.showOnInit) {\r\n prepareShow();\r\n } // Ensure the reference element can receive focus (and is not a delegate)\r\n\r\n\r\n if (props.a11y && !props.target && !canReceiveFocus(reference)) {\r\n reference.setAttribute('tabindex', '0');\r\n } // Install shortcuts\r\n\r\n\r\n reference._tippy = instance;\r\n popper._tippy = instance;\r\n return instance;\r\n /* ======================= 🔒 Private methods 🔒 ======================= */\r\n\r\n /**\r\n * Positions the virtual reference near the mouse cursor\r\n */\r\n\r\n function positionVirtualReferenceNearCursor(event) {\r\n var _lastMouseMoveEvent = lastMouseMoveEvent = event,\r\n clientX = _lastMouseMoveEvent.clientX,\r\n clientY = _lastMouseMoveEvent.clientY;\r\n\r\n if (!instance.popperInstance) {\r\n return;\r\n } // Ensure virtual reference is padded to prevent tooltip from\r\n // overflowing. Maybe Popper.js issue?\r\n\r\n\r\n var placement = getPopperPlacement(instance.popper);\r\n var padding = instance.popperChildren.arrow ? PADDING + 16 : PADDING;\r\n var isVerticalPlacement = includes(['top', 'bottom'], placement);\r\n var isHorizontalPlacement = includes(['left', 'right'], placement); // Top / left boundary\r\n\r\n var x = isVerticalPlacement ? Math.max(padding, clientX) : clientX;\r\n var y = isHorizontalPlacement ? Math.max(padding, clientY) : clientY; // Bottom / right boundary\r\n\r\n if (isVerticalPlacement && x > padding) {\r\n x = Math.min(clientX, window.innerWidth - padding);\r\n }\r\n\r\n if (isHorizontalPlacement && y > padding) {\r\n y = Math.min(clientY, window.innerHeight - padding);\r\n }\r\n\r\n var rect = instance.reference.getBoundingClientRect();\r\n var followCursor = instance.props.followCursor;\r\n var isHorizontal = followCursor === 'horizontal';\r\n var isVertical = followCursor === 'vertical';\r\n instance.popperInstance.reference = {\r\n getBoundingClientRect: function getBoundingClientRect() {\r\n return {\r\n width: 0,\r\n height: 0,\r\n top: isHorizontal ? rect.top : y,\r\n bottom: isHorizontal ? rect.bottom : y,\r\n left: isVertical ? rect.left : x,\r\n right: isVertical ? rect.right : x\r\n };\r\n },\r\n clientWidth: 0,\r\n clientHeight: 0\r\n };\r\n instance.popperInstance.scheduleUpdate();\r\n\r\n if (followCursor === 'initial' && instance.state.isVisible) {\r\n removeFollowCursorListener();\r\n }\r\n }\r\n /**\r\n * Creates the tippy instance for a delegate when it's been triggered\r\n */\r\n\r\n\r\n function createDelegateChildTippy(event) {\r\n var targetEl = closest(event.target, instance.props.target);\r\n\r\n if (targetEl && !targetEl._tippy) {\r\n createTippy(targetEl, _extends({}, instance.props, {\r\n content: evaluateValue(collectionProps.content, [targetEl]),\r\n appendTo: collectionProps.appendTo,\r\n target: '',\r\n showOnInit: true\r\n }));\r\n prepareShow(event);\r\n }\r\n }\r\n /**\r\n * Setup before show() is invoked (delays, etc.)\r\n */\r\n\r\n\r\n function prepareShow(event) {\r\n clearDelayTimeouts();\r\n\r\n if (instance.state.isVisible) {\r\n return;\r\n } // Is a delegate, create an instance for the child target\r\n\r\n\r\n if (instance.props.target) {\r\n return createDelegateChildTippy(event);\r\n }\r\n\r\n isPreparingToShow = true;\r\n\r\n if (instance.props.wait) {\r\n return instance.props.wait(instance, event);\r\n } // If the tooltip has a delay, we need to be listening to the mousemove as\r\n // soon as the trigger event is fired, so that it's in the correct position\r\n // upon mount.\r\n // Edge case: if the tooltip is still mounted, but then prepareShow() is\r\n // called, it causes a jump.\r\n\r\n\r\n if (hasFollowCursorBehavior() && !instance.state.isMounted) {\r\n document.addEventListener('mousemove', positionVirtualReferenceNearCursor);\r\n }\r\n\r\n var delay = getValue(instance.props.delay, 0, Defaults.delay);\r\n\r\n if (delay) {\r\n showTimeoutId = setTimeout(function () {\r\n show();\r\n }, delay);\r\n } else {\r\n show();\r\n }\r\n }\r\n /**\r\n * Setup before hide() is invoked (delays, etc.)\r\n */\r\n\r\n\r\n function prepareHide() {\r\n clearDelayTimeouts();\r\n\r\n if (!instance.state.isVisible) {\r\n return removeFollowCursorListener();\r\n }\r\n\r\n isPreparingToShow = false;\r\n var delay = getValue(instance.props.delay, 1, Defaults.delay);\r\n\r\n if (delay) {\r\n hideTimeoutId = setTimeout(function () {\r\n if (instance.state.isVisible) {\r\n hide();\r\n }\r\n }, delay);\r\n } else {\r\n hide();\r\n }\r\n }\r\n /**\r\n * Removes the follow cursor listener\r\n */\r\n\r\n\r\n function removeFollowCursorListener() {\r\n document.removeEventListener('mousemove', positionVirtualReferenceNearCursor);\r\n lastMouseMoveEvent = null;\r\n }\r\n /**\r\n * Cleans up old listeners\r\n */\r\n\r\n\r\n function cleanupOldMouseListeners() {\r\n document.body.removeEventListener('mouseleave', prepareHide);\r\n document.removeEventListener('mousemove', debouncedOnMouseMove);\r\n }\r\n /**\r\n * Event listener invoked upon trigger\r\n */\r\n\r\n\r\n function onTrigger(event) {\r\n if (!instance.state.isEnabled || isEventListenerStopped(event)) {\r\n return;\r\n }\r\n\r\n if (!instance.state.isVisible) {\r\n lastTriggerEvent = event; // Use the `mouseenter` event as a \"mock\" mousemove event for touch\r\n // devices\r\n\r\n if (isUsingTouch && includes(event.type, 'mouse')) {\r\n lastMouseMoveEvent = event;\r\n }\r\n } // Toggle show/hide when clicking click-triggered tooltips\r\n\r\n\r\n if (event.type === 'click' && instance.props.hideOnClick !== false && instance.state.isVisible) {\r\n prepareHide();\r\n } else {\r\n prepareShow(event);\r\n }\r\n }\r\n /**\r\n * Event listener used for interactive tooltips to detect when they should\r\n * hide\r\n */\r\n\r\n\r\n function onMouseMove(event) {\r\n var referenceTheCursorIsOver = closestCallback(event.target, function (el) {\r\n return el._tippy;\r\n });\r\n var isCursorOverPopper = closest(event.target, Selectors.POPPER) === instance.popper;\r\n var isCursorOverReference = referenceTheCursorIsOver === instance.reference;\r\n\r\n if (isCursorOverPopper || isCursorOverReference) {\r\n return;\r\n }\r\n\r\n if (isCursorOutsideInteractiveBorder(getPopperPlacement(instance.popper), instance.popper.getBoundingClientRect(), event, instance.props)) {\r\n cleanupOldMouseListeners();\r\n prepareHide();\r\n }\r\n }\r\n /**\r\n * Event listener invoked upon mouseleave\r\n */\r\n\r\n\r\n function onMouseLeave(event) {\r\n if (isEventListenerStopped(event)) {\r\n return;\r\n }\r\n\r\n if (instance.props.interactive) {\r\n document.body.addEventListener('mouseleave', prepareHide);\r\n document.addEventListener('mousemove', debouncedOnMouseMove);\r\n return;\r\n }\r\n\r\n prepareHide();\r\n }\r\n /**\r\n * Event listener invoked upon blur\r\n */\r\n\r\n\r\n function onBlur(event) {\r\n if (event.target !== instance.reference) {\r\n return;\r\n }\r\n\r\n if (instance.props.interactive && event.relatedTarget && instance.popper.contains(event.relatedTarget)) {\r\n return;\r\n }\r\n\r\n prepareHide();\r\n }\r\n /**\r\n * Event listener invoked when a child target is triggered\r\n */\r\n\r\n\r\n function onDelegateShow(event) {\r\n if (closest(event.target, instance.props.target)) {\r\n prepareShow(event);\r\n }\r\n }\r\n /**\r\n * Event listener invoked when a child target should hide\r\n */\r\n\r\n\r\n function onDelegateHide(event) {\r\n if (closest(event.target, instance.props.target)) {\r\n prepareHide();\r\n }\r\n }\r\n /**\r\n * Determines if an event listener should stop further execution due to the\r\n * `touchHold` option\r\n */\r\n\r\n\r\n function isEventListenerStopped(event) {\r\n var supportsTouch = 'ontouchstart' in window;\r\n var isTouchEvent = includes(event.type, 'touch');\r\n var touchHold = instance.props.touchHold;\r\n return supportsTouch && isUsingTouch && touchHold && !isTouchEvent || isUsingTouch && !touchHold && isTouchEvent;\r\n }\r\n /**\r\n * Creates the popper instance for the instance\r\n */\r\n\r\n\r\n function createPopperInstance() {\r\n var popperOptions = instance.props.popperOptions;\r\n var _instance$popperChild = instance.popperChildren,\r\n tooltip = _instance$popperChild.tooltip,\r\n arrow = _instance$popperChild.arrow;\r\n instance.popperInstance = new Popper(instance.reference, instance.popper, _extends({\r\n placement: instance.props.placement\r\n }, popperOptions, {\r\n modifiers: _extends({}, popperOptions ? popperOptions.modifiers : {}, {\r\n preventOverflow: _extends({\r\n boundariesElement: instance.props.boundary,\r\n padding: PADDING\r\n }, getModifier(popperOptions, 'preventOverflow')),\r\n arrow: _extends({\r\n element: arrow,\r\n enabled: !!arrow\r\n }, getModifier(popperOptions, 'arrow')),\r\n flip: _extends({\r\n enabled: instance.props.flip,\r\n // The tooltip is offset by 10px from the popper in CSS,\r\n // we need to account for its distance\r\n padding: instance.props.distance + PADDING,\r\n behavior: instance.props.flipBehavior\r\n }, getModifier(popperOptions, 'flip')),\r\n offset: _extends({\r\n offset: instance.props.offset\r\n }, getModifier(popperOptions, 'offset'))\r\n }),\r\n onUpdate: function onUpdate(data) {\r\n if (instance.props.flip && !instance.props.flipOnUpdate) {\r\n if (data.flipped) {\r\n instance.popperInstance.options.placement = data.placement;\r\n }\r\n\r\n setFlipModifierEnabled(instance.popperInstance.modifiers, false);\r\n }\r\n\r\n var styles = tooltip.style;\r\n styles.top = '';\r\n styles.bottom = '';\r\n styles.left = '';\r\n styles.right = '';\r\n styles[getPopperPlacement(instance.popper)] = getOffsetDistanceInPx(instance.props.distance);\r\n\r\n if (popperOptions.onUpdate) {\r\n popperOptions.onUpdate(data);\r\n }\r\n }\r\n }));\r\n }\r\n /**\r\n * Mounts the tooltip to the DOM, callback to show tooltip is run **after**\r\n * popper's position has updated\r\n */\r\n\r\n\r\n function mount(callback) {\r\n var shouldEnableListeners = !hasFollowCursorBehavior() && !(instance.props.followCursor === 'initial' && isUsingTouch);\r\n\r\n if (!instance.popperInstance) {\r\n createPopperInstance();\r\n\r\n if (!shouldEnableListeners) {\r\n instance.popperInstance.disableEventListeners();\r\n }\r\n } else {\r\n if (!hasFollowCursorBehavior()) {\r\n instance.popperInstance.scheduleUpdate();\r\n\r\n if (shouldEnableListeners) {\r\n instance.popperInstance.enableEventListeners();\r\n }\r\n }\r\n\r\n setFlipModifierEnabled(instance.popperInstance.modifiers, instance.props.flip);\r\n } // If the instance previously had followCursor behavior, it will be\r\n // positioned incorrectly if triggered by `focus` afterwards.\r\n // Update the reference back to the real DOM element\r\n\r\n\r\n instance.popperInstance.reference = instance.reference;\r\n var arrow = instance.popperChildren.arrow;\r\n\r\n if (hasFollowCursorBehavior()) {\r\n if (arrow) {\r\n arrow.style.margin = '0';\r\n }\r\n\r\n var delay = getValue(instance.props.delay, 0, Defaults.delay);\r\n\r\n if (lastTriggerEvent.type) {\r\n positionVirtualReferenceNearCursor(delay && lastMouseMoveEvent ? lastMouseMoveEvent : lastTriggerEvent);\r\n }\r\n } else if (arrow) {\r\n arrow.style.margin = '';\r\n }\r\n\r\n afterPopperPositionUpdates(instance.popperInstance, callback);\r\n var appendTo = instance.props.appendTo;\r\n parentNode = appendTo === 'parent' ? instance.reference.parentNode : evaluateValue(appendTo, [instance.reference]);\r\n\r\n if (!parentNode.contains(instance.popper)) {\r\n parentNode.appendChild(instance.popper);\r\n instance.props.onMount(instance);\r\n instance.state.isMounted = true;\r\n }\r\n }\r\n /**\r\n * Determines if the instance is in `followCursor` mode\r\n */\r\n\r\n\r\n function hasFollowCursorBehavior() {\r\n return instance.props.followCursor && !isUsingTouch && lastTriggerEvent.type !== 'focus';\r\n }\r\n /**\r\n * Updates the tooltip's position on each animation frame + timeout\r\n */\r\n\r\n\r\n function makeSticky() {\r\n applyTransitionDuration([instance.popper], isIE ? 0 : instance.props.updateDuration);\r\n\r\n var updatePosition = function updatePosition() {\r\n if (instance.popperInstance) {\r\n instance.popperInstance.scheduleUpdate();\r\n }\r\n\r\n if (instance.state.isMounted) {\r\n requestAnimationFrame(updatePosition);\r\n } else {\r\n applyTransitionDuration([instance.popper], 0);\r\n }\r\n };\r\n\r\n updatePosition();\r\n }\r\n /**\r\n * Invokes a callback once the tooltip has fully transitioned out\r\n */\r\n\r\n\r\n function onTransitionedOut(duration, callback) {\r\n onTransitionEnd(duration, function () {\r\n if (!instance.state.isVisible && parentNode && parentNode.contains(instance.popper)) {\r\n callback();\r\n }\r\n });\r\n }\r\n /**\r\n * Invokes a callback once the tooltip has fully transitioned in\r\n */\r\n\r\n\r\n function onTransitionedIn(duration, callback) {\r\n onTransitionEnd(duration, callback);\r\n }\r\n /**\r\n * Invokes a callback once the tooltip's CSS transition ends\r\n */\r\n\r\n\r\n function onTransitionEnd(duration, callback) {\r\n // Make callback synchronous if duration is 0\r\n if (duration === 0) {\r\n return callback();\r\n }\r\n\r\n var tooltip = instance.popperChildren.tooltip;\r\n\r\n var listener = function listener(e) {\r\n if (e.target === tooltip) {\r\n toggleTransitionEndListener(tooltip, 'remove', listener);\r\n callback();\r\n }\r\n };\r\n\r\n toggleTransitionEndListener(tooltip, 'remove', transitionEndListener);\r\n toggleTransitionEndListener(tooltip, 'add', listener);\r\n transitionEndListener = listener;\r\n }\r\n /**\r\n * Adds an event listener to the reference and stores it in `listeners`\r\n */\r\n\r\n\r\n function on(eventType, handler) {\r\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n instance.reference.addEventListener(eventType, handler, options);\r\n listeners.push({\r\n eventType: eventType,\r\n handler: handler,\r\n options: options\r\n });\r\n }\r\n /**\r\n * Adds event listeners to the reference based on the `trigger` prop\r\n */\r\n\r\n\r\n function addTriggersToReference() {\r\n if (instance.props.touchHold && !instance.props.target) {\r\n on('touchstart', onTrigger, PASSIVE);\r\n on('touchend', onMouseLeave, PASSIVE);\r\n }\r\n\r\n instance.props.trigger.trim().split(' ').forEach(function (eventType) {\r\n if (eventType === 'manual') {\r\n return;\r\n }\r\n\r\n if (!instance.props.target) {\r\n on(eventType, onTrigger);\r\n\r\n switch (eventType) {\r\n case 'mouseenter':\r\n on('mouseleave', onMouseLeave);\r\n break;\r\n\r\n case 'focus':\r\n on(isIE ? 'focusout' : 'blur', onBlur);\r\n break;\r\n }\r\n } else {\r\n switch (eventType) {\r\n case 'mouseenter':\r\n on('mouseover', onDelegateShow);\r\n on('mouseout', onDelegateHide);\r\n break;\r\n\r\n case 'focus':\r\n on('focusin', onDelegateShow);\r\n on('focusout', onDelegateHide);\r\n break;\r\n\r\n case 'click':\r\n on(eventType, onDelegateShow);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n /**\r\n * Removes event listeners from the reference\r\n */\r\n\r\n\r\n function removeTriggersFromReference() {\r\n listeners.forEach(function (_ref) {\r\n var eventType = _ref.eventType,\r\n handler = _ref.handler,\r\n options = _ref.options;\r\n instance.reference.removeEventListener(eventType, handler, options);\r\n });\r\n listeners = [];\r\n }\r\n /**\r\n * Returns inner elements used in show/hide methods\r\n */\r\n\r\n\r\n function getInnerElements() {\r\n return [instance.popperChildren.tooltip, instance.popperChildren.backdrop, instance.popperChildren.content];\r\n }\r\n /* ======================= 🔑 Public methods 🔑 ======================= */\r\n\r\n /**\r\n * Enables the instance to allow it to show or hide\r\n */\r\n\r\n\r\n function enable() {\r\n instance.state.isEnabled = true;\r\n }\r\n /**\r\n * Disables the instance to disallow it to show or hide\r\n */\r\n\r\n\r\n function disable() {\r\n instance.state.isEnabled = false;\r\n }\r\n /**\r\n * Clears pending timeouts related to the `delay` prop if any\r\n */\r\n\r\n\r\n function clearDelayTimeouts() {\r\n clearTimeout(showTimeoutId);\r\n clearTimeout(hideTimeoutId);\r\n }\r\n /**\r\n * Sets new props for the instance and redraws the tooltip\r\n */\r\n\r\n\r\n function set() {\r\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n validateOptions(options, Defaults);\r\n var prevProps = instance.props;\r\n var nextProps = evaluateProps(instance.reference, _extends({}, instance.props, options, {\r\n ignoreAttributes: true\r\n }));\r\n nextProps.ignoreAttributes = hasOwnProperty(options, 'ignoreAttributes') ? options.ignoreAttributes : prevProps.ignoreAttributes;\r\n instance.props = nextProps;\r\n\r\n if (hasOwnProperty(options, 'trigger') || hasOwnProperty(options, 'touchHold')) {\r\n removeTriggersFromReference();\r\n addTriggersToReference();\r\n }\r\n\r\n if (hasOwnProperty(options, 'interactiveDebounce')) {\r\n cleanupOldMouseListeners();\r\n debouncedOnMouseMove = debounce(onMouseMove, options.interactiveDebounce);\r\n }\r\n\r\n updatePopperElement(instance.popper, prevProps, nextProps);\r\n instance.popperChildren = getChildren(instance.popper);\r\n\r\n if (instance.popperInstance) {\r\n instance.popperInstance.update();\r\n\r\n if (POPPER_INSTANCE_DEPENDENCIES.some(function (prop) {\r\n return hasOwnProperty(options, prop);\r\n })) {\r\n instance.popperInstance.destroy();\r\n createPopperInstance();\r\n\r\n if (!instance.state.isVisible) {\r\n instance.popperInstance.disableEventListeners();\r\n }\r\n\r\n if (instance.props.followCursor && lastMouseMoveEvent) {\r\n positionVirtualReferenceNearCursor(lastMouseMoveEvent);\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Shortcut for .set({ content: newContent })\r\n */\r\n\r\n\r\n function setContent$$1(content) {\r\n set({\r\n content: content\r\n });\r\n }\r\n /**\r\n * Shows the tooltip\r\n */\r\n\r\n\r\n function show() {\r\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(instance.props.duration, 0, Defaults.duration[0]);\r\n\r\n if (instance.state.isDestroyed || !instance.state.isEnabled || isUsingTouch && !instance.props.touch) {\r\n return;\r\n } // Destroy tooltip if the reference element is no longer on the DOM\r\n\r\n\r\n if (!instance.reference.isVirtual && !document.documentElement.contains(instance.reference)) {\r\n return destroy();\r\n } // Do not show tooltip if the reference element has a `disabled` attribute\r\n\r\n\r\n if (instance.reference.hasAttribute('disabled')) {\r\n return;\r\n }\r\n\r\n if (instance.props.onShow(instance) === false) {\r\n return;\r\n }\r\n\r\n instance.popper.style.visibility = 'visible';\r\n instance.state.isVisible = true;\r\n\r\n if (instance.props.interactive) {\r\n instance.reference.classList.add('tippy-active');\r\n } // Prevent a transition if the popper is at the opposite placement\r\n\r\n\r\n applyTransitionDuration([instance.popper, instance.popperChildren.tooltip, instance.popperChildren.backdrop], 0);\r\n mount(function () {\r\n if (!instance.state.isVisible) {\r\n return;\r\n } // Arrow will sometimes not be positioned correctly. Force another update\r\n\r\n\r\n if (!hasFollowCursorBehavior()) {\r\n instance.popperInstance.update();\r\n } // Allow followCursor: 'initial' on touch devices\r\n\r\n\r\n if (isUsingTouch && instance.props.followCursor === 'initial') {\r\n positionVirtualReferenceNearCursor(lastMouseMoveEvent);\r\n }\r\n\r\n applyTransitionDuration([instance.popper], props.updateDuration);\r\n applyTransitionDuration(getInnerElements(), duration);\r\n\r\n if (instance.popperChildren.backdrop) {\r\n instance.popperChildren.content.style.transitionDelay = Math.round(duration / 12) + 'ms';\r\n }\r\n\r\n if (instance.props.sticky) {\r\n makeSticky();\r\n }\r\n\r\n setVisibilityState(getInnerElements(), 'visible');\r\n onTransitionedIn(duration, function () {\r\n instance.popperChildren.tooltip.classList.add('tippy-notransition');\r\n\r\n if (instance.props.aria) {\r\n instance.reference.setAttribute(\"aria-\".concat(instance.props.aria), instance.popper.id);\r\n }\r\n\r\n instance.props.onShown(instance);\r\n instance.state.isShown = true;\r\n });\r\n });\r\n }\r\n /**\r\n * Hides the tooltip\r\n */\r\n\r\n\r\n function hide() {\r\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(instance.props.duration, 1, Defaults.duration[1]);\r\n\r\n if (instance.state.isDestroyed || !instance.state.isEnabled) {\r\n return;\r\n }\r\n\r\n if (instance.props.onHide(instance) === false) {\r\n return;\r\n }\r\n\r\n instance.popperChildren.tooltip.classList.remove('tippy-notransition');\r\n\r\n if (instance.props.interactive) {\r\n instance.reference.classList.remove('tippy-active');\r\n }\r\n\r\n instance.popper.style.visibility = 'hidden';\r\n instance.state.isVisible = false;\r\n instance.state.isShown = false;\r\n applyTransitionDuration(getInnerElements(), duration);\r\n setVisibilityState(getInnerElements(), 'hidden');\r\n onTransitionedOut(duration, function () {\r\n if (!isPreparingToShow) {\r\n removeFollowCursorListener();\r\n }\r\n\r\n if (instance.props.aria) {\r\n instance.reference.removeAttribute(\"aria-\".concat(instance.props.aria));\r\n }\r\n\r\n instance.popperInstance.disableEventListeners();\r\n instance.popperInstance.options.placement = instance.props.placement;\r\n parentNode.removeChild(instance.popper);\r\n instance.props.onHidden(instance);\r\n instance.state.isMounted = false;\r\n });\r\n }\r\n /**\r\n * Destroys the tooltip\r\n */\r\n\r\n\r\n function destroy(destroyTargetInstances) {\r\n if (instance.state.isDestroyed) {\r\n return;\r\n } // If the popper is currently mounted to the DOM, we want to ensure it gets\r\n // hidden and unmounted instantly upon destruction\r\n\r\n\r\n if (instance.state.isMounted) {\r\n hide(0);\r\n }\r\n\r\n removeTriggersFromReference();\r\n delete instance.reference._tippy;\r\n\r\n if (instance.props.target && destroyTargetInstances) {\r\n arrayFrom(instance.reference.querySelectorAll(instance.props.target)).forEach(function (child) {\r\n if (child._tippy) {\r\n child._tippy.destroy();\r\n }\r\n });\r\n }\r\n\r\n if (instance.popperInstance) {\r\n instance.popperInstance.destroy();\r\n }\r\n\r\n instance.state.isDestroyed = true;\r\n }\r\n }\r\n\r\n /**\r\n * Groups an array of instances by taking control of their props during\r\n * certain lifecycles.\r\n * @param {Object[]} targets\r\n * @param {Object} options\r\n */\r\n function group(instances) {\r\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\r\n _ref$delay = _ref.delay,\r\n delay = _ref$delay === void 0 ? instances[0].props.delay : _ref$delay,\r\n _ref$duration = _ref.duration,\r\n duration = _ref$duration === void 0 ? 0 : _ref$duration;\r\n\r\n var isAnyTippyOpen = false;\r\n instances.forEach(function (instance) {\r\n instance._originalProps = {\r\n duration: instance.props.duration,\r\n onHide: instance.props.onHide,\r\n onShow: instance.props.onShow,\r\n onShown: instance.props.onShown\r\n };\r\n });\r\n\r\n function setIsAnyTippyOpen(value) {\r\n isAnyTippyOpen = value;\r\n updateInstances();\r\n }\r\n\r\n function onShow(instance) {\r\n instance._originalProps.onShow(instance);\r\n\r\n instances.forEach(function (instance) {\r\n instance.set({\r\n duration: duration\r\n });\r\n instance.hide();\r\n });\r\n setIsAnyTippyOpen(true);\r\n }\r\n\r\n function onHide(instance) {\r\n instance._originalProps.onHide(instance);\r\n\r\n setIsAnyTippyOpen(false);\r\n }\r\n\r\n function onShown(instance) {\r\n instance._originalProps.onShown(instance);\r\n\r\n instance.set({\r\n duration: instance._originalProps.duration\r\n });\r\n }\r\n\r\n function updateInstances() {\r\n instances.forEach(function (instance) {\r\n instance.set({\r\n onShow: onShow,\r\n onShown: onShown,\r\n onHide: onHide,\r\n delay: isAnyTippyOpen ? [0, Array.isArray(delay) ? delay[1] : delay] : delay,\r\n duration: isAnyTippyOpen ? duration : instance._originalProps.duration\r\n });\r\n });\r\n }\r\n\r\n updateInstances();\r\n }\r\n\r\n var globalEventListenersBound = false;\r\n /**\r\n * Exported module\r\n * @param {String|Element|Element[]|NodeList|Object} targets\r\n * @param {Object} options\r\n * @return {Object}\r\n */\r\n\r\n function tippy(targets, options) {\r\n validateOptions(options, Defaults);\r\n\r\n if (!globalEventListenersBound) {\r\n bindGlobalEventListeners();\r\n globalEventListenersBound = true;\r\n }\r\n\r\n var props = _extends({}, Defaults, options); // If they are specifying a virtual positioning reference, we need to polyfill\r\n // some native DOM props\r\n\r\n\r\n if (isBareVirtualElement(targets)) {\r\n polyfillElementPrototypeProperties(targets);\r\n }\r\n\r\n var instances = getArrayOfElements(targets).reduce(function (acc, reference) {\r\n var instance = reference && createTippy(reference, props);\r\n\r\n if (instance) {\r\n acc.push(instance);\r\n }\r\n\r\n return acc;\r\n }, []);\r\n return isSingular(targets) ? instances[0] : instances;\r\n }\r\n /**\r\n * Static props\r\n */\r\n\r\n\r\n tippy.version = version;\r\n tippy.defaults = Defaults;\r\n /**\r\n * Static methods\r\n */\r\n\r\n tippy.setDefaults = function (partialDefaults) {\r\n Object.keys(partialDefaults).forEach(function (key) {\r\n Defaults[key] = partialDefaults[key];\r\n });\r\n };\r\n\r\n tippy.hideAll = hideAll;\r\n tippy.group = group;\r\n /**\r\n * Auto-init tooltips for elements with a `data-tippy=\"...\"` attribute\r\n */\r\n\r\n function autoInit() {\r\n arrayFrom(document.querySelectorAll('[data-tippy]')).forEach(function (el) {\r\n var content = el.getAttribute('data-tippy');\r\n\r\n if (content) {\r\n tippy(el, {\r\n content: content\r\n });\r\n }\r\n });\r\n }\r\n\r\n if (isBrowser) {\r\n setTimeout(autoInit);\r\n }\r\n\r\n return tippy;\r\n\r\n}));\n/*!\r\n * Knockout JavaScript library v3.5.1\r\n * (c) The Knockout.js team - http://knockoutjs.com/\r\n * License: MIT (http://www.opensource.org/licenses/mit-license.php)\r\n */\r\n\r\n(function() {(function(n){var A=this||(0,eval)(\"this\"),w=A.document,R=A.navigator,v=A.jQuery,H=A.JSON;v||\"undefined\"===typeof jQuery||(v=jQuery);(function(n){\"function\"===typeof define&&define.amd?define([\"exports\",\"require\"],n):\"object\"===typeof exports&&\"object\"===typeof module?n(module.exports||exports):n(A.ko={})})(function(S,T){function K(a,c){return null===a||typeof a in W?a===c:!1}function X(b,c){var d;return function(){d||(d=a.a.setTimeout(function(){d=n;b()},c))}}function Y(b,c){var d;return function(){clearTimeout(d);\r\n d=a.a.setTimeout(b,c)}}function Z(a,c){c&&\"change\"!==c?\"beforeChange\"===c?this.pc(a):this.gb(a,c):this.qc(a)}function aa(a,c){null!==c&&c.s&&c.s()}function ba(a,c){var d=this.qd,e=d[r];e.ra||(this.Qb&&this.mb[c]?(d.uc(c,a,this.mb[c]),this.mb[c]=null,--this.Qb):e.I[c]||d.uc(c,a,e.J?{da:a}:d.$c(a)),a.Ja&&a.gd())}var a=\"undefined\"!==typeof S?S:{};a.b=function(b,c){for(var d=b.split(\".\"),e=a,f=0;fa.a.A(c,b)&&c.push(b)});return c},Mb:function(a,\r\n b,c){var d=[];if(a)for(var e=0,l=a.length;ee?d&&b.push(c):d||b.splice(e,1)},Ba:g,extend:c,setPrototypeOf:d,Ab:g?d:c,P:b,Ga:function(a,b,c){if(!a)return a;var d={},e;for(e in a)f.call(a,e)&&(d[e]=\r\n b.call(c,a[e],e,a));return d},Tb:function(b){for(;b.firstChild;)a.removeNode(b.firstChild)},Yb:function(b){b=a.a.la(b);for(var c=(b[0]&&b[0].ownerDocument||w).createElement(\"div\"),d=0,e=b.length;dp?a.setAttribute(\"selected\",b):a.selected=b},Db:function(a){return null===a||a===n?\"\":a.trim?\r\n a.trim():a.toString().replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\")},Ud:function(a,b){a=a||\"\";return b.length>a.length?!1:a.substring(0,b.length)===b},vd:function(a,b){if(a===b)return!0;if(11===a.nodeType)return!1;if(b.contains)return b.contains(1!==a.nodeType?a.parentNode:a);if(b.compareDocumentPosition)return 16==(b.compareDocumentPosition(a)&16);for(;a&&a!=b;)a=a.parentNode;return!!a},Sb:function(b){return a.a.vd(b,b.ownerDocument.documentElement)},kd:function(b){return!!a.a.Lb(b,a.a.Sb)},R:function(a){return a&&\r\n a.tagName&&a.tagName.toLowerCase()},Ac:function(b){return a.onError?function(){try{return b.apply(this,arguments)}catch(c){throw a.onError&&a.onError(c),c;}}:b},setTimeout:function(b,c){return setTimeout(a.a.Ac(b),c)},Gc:function(b){setTimeout(function(){a.onError&&a.onError(b);throw b;},0)},B:function(b,c,d){var e=a.a.Ac(d);d=l[c];if(a.options.useOnlyNativeEvents||d||!v)if(d||\"function\"!=typeof b.addEventListener)if(\"undefined\"!=typeof b.attachEvent){var k=function(a){e.call(b,a)},f=\"on\"+c;b.attachEvent(f,\r\n k);a.a.K.za(b,function(){b.detachEvent(f,k)})}else throw Error(\"Browser doesn't support addEventListener or attachEvent\");else b.addEventListener(c,e,!1);else t||(t=\"function\"==typeof v(b).on?\"on\":\"bind\"),v(b)[t](c,e)},Fb:function(b,c){if(!b||!b.nodeType)throw Error(\"element must be a DOM node when calling triggerEvent\");var d;\"input\"===a.a.R(b)&&b.type&&\"click\"==c.toLowerCase()?(d=b.type,d=\"checkbox\"==d||\"radio\"==d):d=!1;if(a.options.useOnlyNativeEvents||!v||d)if(\"function\"==typeof w.createEvent)if(\"function\"==\r\n typeof b.dispatchEvent)d=w.createEvent(k[c]||\"HTMLEvents\"),d.initEvent(c,!0,!0,A,0,0,0,0,0,!1,!1,!1,!1,0,b),b.dispatchEvent(d);else throw Error(\"The supplied element doesn't support dispatchEvent\");else if(d&&b.click)b.click();else if(\"undefined\"!=typeof b.fireEvent)b.fireEvent(\"on\"+c);else throw Error(\"Browser doesn't support triggering events\");else v(b).trigger(c)},f:function(b){return a.O(b)?b():b},bc:function(b){return a.O(b)?b.v():b},Eb:function(b,c,d){var l;c&&(\"object\"===typeof b.classList?\r\n (l=b.classList[d?\"add\":\"remove\"],a.a.D(c.match(q),function(a){l.call(b.classList,a)})):\"string\"===typeof b.className.baseVal?e(b.className,\"baseVal\",c,d):e(b,\"className\",c,d))},Bb:function(b,c){var d=a.a.f(c);if(null===d||d===n)d=\"\";var e=a.h.firstChild(b);!e||3!=e.nodeType||a.h.nextSibling(e)?a.h.va(b,[b.ownerDocument.createTextNode(d)]):e.data=d;a.a.Ad(b)},Yc:function(a,b){a.name=b;if(7>=p)try{var c=a.name.replace(/[&<>'\"]/g,function(a){return\"&#\"+a.charCodeAt(0)+\";\"});a.mergeAttributes(w.createElement(\"\"),!1)}catch(d){}},Ad:function(a){9<=p&&(a=1==a.nodeType?a:a.parentNode,a.style&&(a.style.zoom=a.style.zoom))},wd:function(a){if(p){var b=a.style.width;a.style.width=0;a.style.width=b}},Pd:function(b,c){b=a.a.f(b);c=a.a.f(c);for(var d=[],e=b;e<=c;e++)d.push(e);return d},la:function(a){for(var b=[],c=0,d=a.length;c\",\"\"],d=[3,\"\",\"
\"],e=[1,\"\"],f={thead:c,tbody:c,tfoot:c,tr:[2,\"\",\"
\"],td:d,th:d,option:e,optgroup:e},g=8>=a.a.W;a.a.ua=function(c,d){var e;if(v)if(v.parseHTML)e=v.parseHTML(c,d)||[];else{if((e=v.clean([c],d))&&e[0]){for(var l=e[0];l.parentNode&&11!==l.parentNode.nodeType;)l=l.parentNode;\r\n l.parentNode&&l.parentNode.removeChild(l)}}else{(e=d)||(e=w);var l=e.parentWindow||e.defaultView||A,p=a.a.Db(c).toLowerCase(),q=e.createElement(\"div\"),t;t=(p=p.match(/^(?:\\x3c!--.*?--\\x3e\\s*?)*?<([a-z]+)[\\s>]/))&&f[p[1]]||b;p=t[0];t=\"ignored
\"+t[1]+c+t[2]+\"
\";\"function\"==typeof l.innerShiv?q.appendChild(l.innerShiv(t)):(g&&e.body.appendChild(q),q.innerHTML=t,g&&q.parentNode.removeChild(q));for(;p--;)q=q.lastChild;e=a.a.la(q.lastChild.childNodes)}return e};a.a.Md=function(b,c){var d=a.a.ua(b,\r\n c);return d.length&&d[0].parentElement||a.a.Yb(d)};a.a.fc=function(b,c){a.a.Tb(b);c=a.a.f(c);if(null!==c&&c!==n)if(\"string\"!=typeof c&&(c=c.toString()),v)v(b).html(c);else for(var d=a.a.ua(c,b.ownerDocument),e=0;eb){if(5E3<=\r\n ++c){h=f;a.a.Gc(Error(\"'Too much recursion' after processing \"+c+\" task groups.\"));break}b=f}try{d()}catch(p){a.a.Gc(p)}}}function c(){b();h=f=e.length=0}var d,e=[],f=0,g=1,h=0;A.MutationObserver?d=function(a){var b=w.createElement(\"div\");(new MutationObserver(a)).observe(b,{attributes:!0});return function(){b.classList.toggle(\"foo\")}}(c):d=w&&\"onreadystatechange\"in w.createElement(\"script\")?function(a){var b=w.createElement(\"script\");b.onreadystatechange=function(){b.onreadystatechange=null;w.documentElement.removeChild(b);\r\n b=null;a()};w.documentElement.appendChild(b)}:function(a){setTimeout(a,0)};return{scheduler:d,zb:function(b){f||a.na.scheduler(c);e[f++]=b;return g++},cancel:function(a){a=a-(g-f);a>=h&&ad[0]?p+d[0]:\r\n d[0]),p);for(var p=1===g?p:Math.min(c+(d[1]||0),p),g=c+g-2,h=Math.max(p,g),U=[],L=[],n=2;cc;c++)b=b();return b})};a.toJSON=function(b,c,d){b=a.ad(b);return a.a.hc(b,c,d)};d.prototype={constructor:d,save:function(b,c){var d=a.a.A(this.keys,\r\n b);0<=d?this.values[d]=c:(this.keys.push(b),this.values.push(c))},get:function(b){b=a.a.A(this.keys,b);return 0<=b?this.values[b]:n}}})();a.b(\"toJS\",a.ad);a.b(\"toJSON\",a.toJSON);a.Wd=function(b,c,d){function e(c){var e=a.xb(b,d).extend({ma:\"always\"}),h=e.subscribe(function(a){a&&(h.s(),c(a))});e.notifySubscribers(e.v());return h}return\"function\"!==typeof Promise||c?e(c.bind(d)):new Promise(e)};a.b(\"when\",a.Wd);(function(){a.w={M:function(b){switch(a.a.R(b)){case \"option\":return!0===b.__ko__hasDomDataOptionValue__?\r\n a.a.g.get(b,a.c.options.$b):7>=a.a.W?b.getAttributeNode(\"value\")&&b.getAttributeNode(\"value\").specified?b.value:b.text:b.value;case \"select\":return 0<=b.selectedIndex?a.w.M(b.options[b.selectedIndex]):n;default:return b.value}},cb:function(b,c,d){switch(a.a.R(b)){case \"option\":\"string\"===typeof c?(a.a.g.set(b,a.c.options.$b,n),\"__ko__hasDomDataOptionValue__\"in b&&delete b.__ko__hasDomDataOptionValue__,b.value=c):(a.a.g.set(b,a.c.options.$b,c),b.__ko__hasDomDataOptionValue__=!0,b.value=\"number\"===\r\n typeof c?c:\"\");break;case \"select\":if(\"\"===c||null===c)c=n;for(var e=-1,f=0,g=b.options.length,h;f=h){c.push(p&&q.length?{key:p,value:q.join(\"\")}:{unknown:p||q.join(\"\")});p=h=0;q=[];continue}}else if(58===u){if(!h&&!p&&1===q.length){p=q.pop();continue}}else if(47===u&&1arguments.length){if(b=w.body,!b)throw Error(\"ko.applyBindings: could not find document.body; has the document been loaded?\");\r\n }else if(!b||1!==b.nodeType&&8!==b.nodeType)throw Error(\"ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node\");k(q(a,c),b)};a.Dc=function(b){return!b||1!==b.nodeType&&8!==b.nodeType?n:a.Td(b)};a.Ec=function(b){return(b=a.Dc(b))?b.$data:n};a.b(\"bindingHandlers\",a.c);a.b(\"bindingEvent\",a.i);a.b(\"bindingEvent.subscribe\",a.i.subscribe);a.b(\"bindingEvent.startPossiblyAsyncContentBinding\",a.i.Cb);a.b(\"applyBindings\",a.vc);a.b(\"applyBindingsToDescendants\",a.Oa);\r\n a.b(\"applyBindingAccessorsToNode\",a.ib);a.b(\"applyBindingsToNode\",a.ld);a.b(\"contextFor\",a.Dc);a.b(\"dataFor\",a.Ec)})();(function(b){function c(c,e){var k=Object.prototype.hasOwnProperty.call(f,c)?f[c]:b,l;k?k.subscribe(e):(k=f[c]=new a.T,k.subscribe(e),d(c,function(b,d){var e=!(!d||!d.synchronous);g[c]={definition:b,Gd:e};delete f[c];l||e?k.notifySubscribers(b):a.na.zb(function(){k.notifySubscribers(b)})}),l=!0)}function d(a,b){e(\"getConfig\",[a],function(c){c?e(\"loadComponent\",[a,c],function(a){b(a,\r\n c)}):b(null,null)})}function e(c,d,f,l){l||(l=a.j.loaders.slice(0));var g=l.shift();if(g){var q=g[c];if(q){var t=!1;if(q.apply(g,d.concat(function(a){t?f(null):null!==a?f(a):e(c,d,f,l)}))!==b&&(t=!0,!g.suppressLoaderExceptions))throw Error(\"Component loaders must supply values by invoking the callback, not by returning values synchronously.\");}else e(c,d,f,l)}else f(null)}var f={},g={};a.j={get:function(d,e){var f=Object.prototype.hasOwnProperty.call(g,d)?g[d]:b;f?f.Gd?a.u.G(function(){e(f.definition)}):\r\n a.na.zb(function(){e(f.definition)}):c(d,e)},Bc:function(a){delete g[a]},oc:e};a.j.loaders=[];a.b(\"components\",a.j);a.b(\"components.get\",a.j.get);a.b(\"components.clearCachedDefinition\",a.j.Bc)})();(function(){function b(b,c,d,e){function g(){0===--B&&e(h)}var h={},B=2,u=d.template;d=d.viewModel;u?f(c,u,function(c){a.j.oc(\"loadTemplate\",[b,c],function(a){h.template=a;g()})}):g();d?f(c,d,function(c){a.j.oc(\"loadViewModel\",[b,c],function(a){h[m]=a;g()})}):g()}function c(a,b,d){if(\"function\"===typeof b)d(function(a){return new b(a)});\r\n else if(\"function\"===typeof b[m])d(b[m]);else if(\"instance\"in b){var e=b.instance;d(function(){return e})}else\"viewModel\"in b?c(a,b.viewModel,d):a(\"Unknown viewModel value: \"+b)}function d(b){switch(a.a.R(b)){case \"script\":return a.a.ua(b.text);case \"textarea\":return a.a.ua(b.value);case \"template\":if(e(b.content))return a.a.Ca(b.content.childNodes)}return a.a.Ca(b.childNodes)}function e(a){return A.DocumentFragment?a instanceof DocumentFragment:a&&11===a.nodeType}function f(a,b,c){\"string\"===typeof b.require?\r\n T||A.require?(T||A.require)([b.require],function(a){a&&\"object\"===typeof a&&a.Xd&&a[\"default\"]&&(a=a[\"default\"]);c(a)}):a(\"Uses require, but no AMD loader is present\"):c(b)}function g(a){return function(b){throw Error(\"Component '\"+a+\"': \"+b);}}var h={};a.j.register=function(b,c){if(!c)throw Error(\"Invalid configuration for \"+b);if(a.j.tb(b))throw Error(\"Component \"+b+\" is already registered\");h[b]=c};a.j.tb=function(a){return Object.prototype.hasOwnProperty.call(h,a)};a.j.unregister=function(b){delete h[b];\r\n a.j.Bc(b)};a.j.Fc={getConfig:function(b,c){c(a.j.tb(b)?h[b]:null)},loadComponent:function(a,c,d){var e=g(a);f(e,c,function(c){b(a,e,c,d)})},loadTemplate:function(b,c,f){b=g(b);if(\"string\"===typeof c)f(a.a.ua(c));else if(c instanceof Array)f(c);else if(e(c))f(a.a.la(c.childNodes));else if(c.element)if(c=c.element,A.HTMLElement?c instanceof HTMLElement:c&&c.tagName&&1===c.nodeType)f(d(c));else if(\"string\"===typeof c){var h=w.getElementById(c);h?f(d(h)):b(\"Cannot find element with ID \"+c)}else b(\"Unknown element type: \"+\r\n c);else b(\"Unknown template value: \"+c)},loadViewModel:function(a,b,d){c(g(a),b,d)}};var m=\"createViewModel\";a.b(\"components.register\",a.j.register);a.b(\"components.isRegistered\",a.j.tb);a.b(\"components.unregister\",a.j.unregister);a.b(\"components.defaultLoader\",a.j.Fc);a.j.loaders.push(a.j.Fc);a.j.dd=h})();(function(){function b(b,e){var f=b.getAttribute(\"params\");if(f){var f=c.parseBindingsString(f,e,b,{valueAccessors:!0,bindingParams:!0}),f=a.a.Ga(f,function(c){return a.o(c,null,{l:b})}),g=a.a.Ga(f,\r\n function(c){var e=c.v();return c.ja()?a.o({read:function(){return a.a.f(c())},write:a.Za(e)&&function(a){c()(a)},l:b}):e});Object.prototype.hasOwnProperty.call(g,\"$raw\")||(g.$raw=f);return g}return{$raw:{}}}a.j.getComponentNameForNode=function(b){var c=a.a.R(b);if(a.j.tb(c)&&(-1!=c.indexOf(\"-\")||\"[object HTMLUnknownElement]\"==\"\"+b||8>=a.a.W&&b.tagName===c))return c};a.j.tc=function(c,e,f,g){if(1===e.nodeType){var h=a.j.getComponentNameForNode(e);if(h){c=c||{};if(c.component)throw Error('Cannot use the \"component\" binding on a custom element matching a component');\r\n var m={name:h,params:b(e,f)};c.component=g?function(){return m}:m}}return c};var c=new a.ga;9>a.a.W&&(a.j.register=function(a){return function(b){return a.apply(this,arguments)}}(a.j.register),w.createDocumentFragment=function(b){return function(){var c=b(),f=a.j.dd,g;for(g in f);return c}}(w.createDocumentFragment))})();(function(){function b(b,c,d){c=c.template;if(!c)throw Error(\"Component '\"+b+\"' has no template\");b=a.a.Ca(c);a.h.va(d,b)}function c(a,b,c){var d=a.createViewModel;return d?d.call(a,\r\n b,c):b}var d=0;a.c.component={init:function(e,f,g,h,m){function k(){var a=l&&l.dispose;\"function\"===typeof a&&a.call(l);q&&q.s();p=l=q=null}var l,p,q,t=a.a.la(a.h.childNodes(e));a.h.Ea(e);a.a.K.za(e,k);a.o(function(){var g=a.a.f(f()),h,u;\"string\"===typeof g?h=g:(h=a.a.f(g.name),u=a.a.f(g.params));if(!h)throw Error(\"No component name specified\");var n=a.i.Cb(e,m),z=p=++d;a.j.get(h,function(d){if(p===z){k();if(!d)throw Error(\"Unknown component '\"+h+\"'\");b(h,d,e);var f=c(d,u,{element:e,templateNodes:t});\r\n d=n.createChildContext(f,{extend:function(a){a.$component=f;a.$componentTemplateNodes=t}});f&&f.koDescendantsComplete&&(q=a.i.subscribe(e,a.i.pa,f.koDescendantsComplete,f));l=f;a.Oa(d,e)}})},null,{l:e});return{controlsDescendantBindings:!0}}};a.h.ea.component=!0})();var V={\"class\":\"className\",\"for\":\"htmlFor\"};a.c.attr={update:function(b,c){var d=a.a.f(c())||{};a.a.P(d,function(c,d){d=a.a.f(d);var g=c.indexOf(\":\"),g=\"lookupNamespaceURI\"in b&&0=a.a.W&&c in V?(c=V[c],h?b.removeAttribute(c):b[c]=d):h||(g?b.setAttributeNS(g,c,d):b.setAttribute(c,d));\"name\"===c&&a.a.Yc(b,h?\"\":d)})}};(function(){a.c.checked={after:[\"value\",\"attr\"],init:function(b,c,d){function e(){var e=b.checked,f=g();if(!a.S.Ya()&&(e||!m&&!a.S.qa())){var k=a.u.G(c);if(l){var q=p?k.v():k,z=t;t=f;z!==f?e&&(a.a.Na(q,f,!0),a.a.Na(q,z,!1)):a.a.Na(q,f,e);p&&a.Za(k)&&k(q)}else h&&(f===n?f=e:e||(f=n)),a.m.eb(k,\r\n d,\"checked\",f,!0)}}function f(){var d=a.a.f(c()),e=g();l?(b.checked=0<=a.a.A(d,e),t=e):b.checked=h&&e===n?!!d:g()===d}var g=a.xb(function(){if(d.has(\"checkedValue\"))return a.a.f(d.get(\"checkedValue\"));if(q)return d.has(\"value\")?a.a.f(d.get(\"value\")):b.value}),h=\"checkbox\"==b.type,m=\"radio\"==b.type;if(h||m){var k=c(),l=h&&a.a.f(k)instanceof Array,p=!(l&&k.push&&k.splice),q=m||l,t=l?g():n;m&&!b.name&&a.c.uniqueName.init(b,function(){return!0});a.o(e,null,{l:b});a.a.B(b,\"click\",e);a.o(f,null,{l:b});\r\n k=n}}};a.m.wa.checked=!0;a.c.checkedValue={update:function(b,c){b.value=a.a.f(c())}}})();a.c[\"class\"]={update:function(b,c){var d=a.a.Db(a.a.f(c()));a.a.Eb(b,b.__ko__cssValue,!1);b.__ko__cssValue=d;a.a.Eb(b,d,!0)}};a.c.css={update:function(b,c){var d=a.a.f(c());null!==d&&\"object\"==typeof d?a.a.P(d,function(c,d){d=a.a.f(d);a.a.Eb(b,c,d)}):a.c[\"class\"].update(b,c)}};a.c.enable={update:function(b,c){var d=a.a.f(c());d&&b.disabled?b.removeAttribute(\"disabled\"):d||b.disabled||(b.disabled=!0)}};a.c.disable=\r\n {update:function(b,c){a.c.enable.update(b,function(){return!a.a.f(c())})}};a.c.event={init:function(b,c,d,e,f){var g=c()||{};a.a.P(g,function(g){\"string\"==typeof g&&a.a.B(b,g,function(b){var k,l=c()[g];if(l){try{var p=a.a.la(arguments);e=f.$data;p.unshift(e);k=l.apply(e,p)}finally{!0!==k&&(b.preventDefault?b.preventDefault():b.returnValue=!1)}!1===d.get(g+\"Bubble\")&&(b.cancelBubble=!0,b.stopPropagation&&b.stopPropagation())}})})}};a.c.foreach={Rc:function(b){return function(){var c=b(),d=a.a.bc(c);\r\n if(!d||\"number\"==typeof d.length)return{foreach:c,templateEngine:a.ba.Ma};a.a.f(c);return{foreach:d.data,as:d.as,noChildContext:d.noChildContext,includeDestroyed:d.includeDestroyed,afterAdd:d.afterAdd,beforeRemove:d.beforeRemove,afterRender:d.afterRender,beforeMove:d.beforeMove,afterMove:d.afterMove,templateEngine:a.ba.Ma}}},init:function(b,c){return a.c.template.init(b,a.c.foreach.Rc(c))},update:function(b,c,d,e,f){return a.c.template.update(b,a.c.foreach.Rc(c),d,e,f)}};a.m.Ra.foreach=!1;a.h.ea.foreach=\r\n !0;a.c.hasfocus={init:function(b,c,d){function e(e){b.__ko_hasfocusUpdating=!0;var f=b.ownerDocument;if(\"activeElement\"in f){var g;try{g=f.activeElement}catch(l){g=f.body}e=g===b}f=c();a.m.eb(f,d,\"hasfocus\",e,!0);b.__ko_hasfocusLastValue=e;b.__ko_hasfocusUpdating=!1}var f=e.bind(null,!0),g=e.bind(null,!1);a.a.B(b,\"focus\",f);a.a.B(b,\"focusin\",f);a.a.B(b,\"blur\",g);a.a.B(b,\"focusout\",g);b.__ko_hasfocusLastValue=!1},update:function(b,c){var d=!!a.a.f(c());b.__ko_hasfocusUpdating||b.__ko_hasfocusLastValue===\r\n d||(d?b.focus():b.blur(),!d&&b.__ko_hasfocusLastValue&&b.ownerDocument.body.focus(),a.u.G(a.a.Fb,null,[b,d?\"focusin\":\"focusout\"]))}};a.m.wa.hasfocus=!0;a.c.hasFocus=a.c.hasfocus;a.m.wa.hasFocus=\"hasfocus\";a.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(b,c){a.a.fc(b,c())}};(function(){function b(b,d,e){a.c[b]={init:function(b,c,h,m,k){var l,p,q={},t,x,n;if(d){m=h.get(\"as\");var u=h.get(\"noChildContext\");n=!(m&&u);q={as:m,noChildContext:u,exportDependencies:n}}x=(t=\r\n \"render\"==h.get(\"completeOn\"))||h.has(a.i.pa);a.o(function(){var h=a.a.f(c()),m=!e!==!h,u=!p,r;if(n||m!==l){x&&(k=a.i.Cb(b,k));if(m){if(!d||n)q.dataDependency=a.S.o();r=d?k.createChildContext(\"function\"==typeof h?h:c,q):a.S.qa()?k.extend(null,q):k}u&&a.S.qa()&&(p=a.a.Ca(a.h.childNodes(b),!0));m?(u||a.h.va(b,a.a.Ca(p)),a.Oa(r,b)):(a.h.Ea(b),t||a.i.ma(b,a.i.H));l=m}},null,{l:b});return{controlsDescendantBindings:!0}}};a.m.Ra[b]=!1;a.h.ea[b]=!0}b(\"if\");b(\"ifnot\",!1,!0);b(\"with\",!0)})();a.c.let={init:function(b,\r\n c,d,e,f){c=f.extend(c);a.Oa(c,b);return{controlsDescendantBindings:!0}}};a.h.ea.let=!0;var Q={};a.c.options={init:function(b){if(\"select\"!==a.a.R(b))throw Error(\"options binding applies only to SELECT elements\");for(;0g)var m=a.a.g.Z(),k=a.a.g.Z(),l=function(b){var c=this.activeElement;(c=c&&a.a.g.get(c,k))&&c(b)},p=function(b,c){var d=b.ownerDocument;a.a.g.get(d,m)||(a.a.g.set(d,m,!0),a.a.B(d,\"selectionchange\",l));a.a.g.set(b,k,c)};a.c.textInput={init:function(b,c,k){function l(c,d){a.a.B(b,c,d)}function m(){var d=a.a.f(c());if(null===d||d===n)d=\"\";L!==n&&d===L?a.a.setTimeout(m,4):b.value!==d&&(y=!0,b.value=d,y=!1,v=b.value)}function r(){w||(L=b.value,w=a.a.setTimeout(z,\r\n 4))}function z(){clearTimeout(w);L=w=n;var d=b.value;v!==d&&(v=d,a.m.eb(c(),k,\"textInput\",d))}var v=b.value,w,L,A=9==a.a.W?r:z,y=!1;g&&l(\"keypress\",z);11>g&&l(\"propertychange\",function(a){y||\"value\"!==a.propertyName||A(a)});8==g&&(l(\"keyup\",z),l(\"keydown\",z));p&&(p(b,A),l(\"dragend\",r));(!g||9<=g)&&l(\"input\",A);5>e&&\"textarea\"===a.a.R(b)?(l(\"keydown\",r),l(\"paste\",r),l(\"cut\",r)):11>d?l(\"keydown\",r):4>f?(l(\"DOMAutoComplete\",z),l(\"dragdrop\",z),l(\"drop\",z)):h&&\"number\"===b.type&&l(\"keydown\",r);l(\"change\",\r\n z);l(\"blur\",z);a.o(m,null,{l:b})}};a.m.wa.textInput=!0;a.c.textinput={preprocess:function(a,b,c){c(\"textInput\",a)}}})();a.c.uniqueName={init:function(b,c){if(c()){var d=\"ko_unique_\"+ ++a.c.uniqueName.rd;a.a.Yc(b,d)}}};a.c.uniqueName.rd=0;a.c.using={init:function(b,c,d,e,f){var g;d.has(\"as\")&&(g={as:d.get(\"as\"),noChildContext:d.get(\"noChildContext\")});c=f.createChildContext(c,g);a.Oa(c,b);return{controlsDescendantBindings:!0}}};a.h.ea.using=!0;a.c.value={init:function(b,c,d){var e=a.a.R(b),f=\"input\"==\r\n e;if(!f||\"checkbox\"!=b.type&&\"radio\"!=b.type){var g=[],h=d.get(\"valueUpdate\"),m=!1,k=null;h&&(\"string\"==typeof h?g=[h]:g=a.a.wc(h),a.a.Pa(g,\"change\"));var l=function(){k=null;m=!1;var e=c(),f=a.w.M(b);a.m.eb(e,d,\"value\",f)};!a.a.W||!f||\"text\"!=b.type||\"off\"==b.autocomplete||b.form&&\"off\"==b.form.autocomplete||-1!=a.a.A(g,\"propertychange\")||(a.a.B(b,\"propertychange\",function(){m=!0}),a.a.B(b,\"focus\",function(){m=!1}),a.a.B(b,\"blur\",function(){m&&l()}));a.a.D(g,function(c){var d=l;a.a.Ud(c,\"after\")&&\r\n (d=function(){k=a.w.M(b);a.a.setTimeout(l,0)},c=c.substring(5));a.a.B(b,c,d)});var p;p=f&&\"file\"==b.type?function(){var d=a.a.f(c());null===d||d===n||\"\"===d?b.value=\"\":a.u.G(l)}:function(){var f=a.a.f(c()),g=a.w.M(b);if(null!==k&&f===k)a.a.setTimeout(p,0);else if(f!==g||g===n)\"select\"===e?(g=d.get(\"valueAllowUnset\"),a.w.cb(b,f,g),g||f===a.w.M(b)||a.u.G(l)):a.w.cb(b,f)};if(\"select\"===e){var q;a.i.subscribe(b,a.i.H,function(){q?d.get(\"valueAllowUnset\")?p():l():(a.a.B(b,\"change\",l),q=a.o(p,null,{l:b}))},\r\n null,{notifyImmediately:!0})}else a.a.B(b,\"change\",l),a.o(p,null,{l:b})}else a.ib(b,{checkedValue:c})},update:function(){}};a.m.wa.value=!0;a.c.visible={update:function(b,c){var d=a.a.f(c()),e=\"none\"!=b.style.display;d&&!e?b.style.display=\"\":!d&&e&&(b.style.display=\"none\")}};a.c.hidden={update:function(b,c){a.c.visible.update(b,function(){return!a.a.f(c())})}};(function(b){a.c[b]={init:function(c,d,e,f,g){return a.c.event.init.call(this,c,function(){var a={};a[b]=d();return a},e,f,g)}}})(\"click\");\r\n a.ca=function(){};a.ca.prototype.renderTemplateSource=function(){throw Error(\"Override renderTemplateSource\");};a.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error(\"Override createJavaScriptEvaluatorBlock\");};a.ca.prototype.makeTemplateSource=function(b,c){if(\"string\"==typeof b){c=c||w;var d=c.getElementById(b);if(!d)throw Error(\"Cannot find template with ID \"+b);return new a.C.F(d)}if(1==b.nodeType||8==b.nodeType)return new a.C.ia(b);throw Error(\"Unknown template type: \"+b);};a.ca.prototype.renderTemplate=\r\n function(a,c,d,e){a=this.makeTemplateSource(a,e);return this.renderTemplateSource(a,c,d,e)};a.ca.prototype.isTemplateRewritten=function(a,c){return!1===this.allowTemplateRewriting?!0:this.makeTemplateSource(a,c).data(\"isRewritten\")};a.ca.prototype.rewriteTemplate=function(a,c,d){a=this.makeTemplateSource(a,d);c=c(a.text());a.text(c);a.data(\"isRewritten\",!0)};a.b(\"templateEngine\",a.ca);a.kc=function(){function b(b,c,d,h){b=a.m.ac(b);for(var m=a.m.Ra,k=0;k]*))?)*\\s+)data-bind\\s*=\\s*([\"'])([\\s\\S]*?)\\3/gi,\r\n d=/\\x3c!--\\s*ko\\b\\s*([\\s\\S]*?)\\s*--\\x3e/g;return{xd:function(b,c,d){c.isTemplateRewritten(b,d)||c.rewriteTemplate(b,function(b){return a.kc.Ld(b,c)},d)},Ld:function(a,f){return a.replace(c,function(a,c,d,e,l){return b(l,c,d,f)}).replace(d,function(a,c){return b(c,\"\\x3c!-- ko --\\x3e\",\"#comment\",f)})},md:function(b,c){return a.aa.Xb(function(d,h){var m=d.nextSibling;m&&m.nodeName.toLowerCase()===c&&a.ib(m,b,h)})}}}();a.b(\"__tr_ambtns\",a.kc.md);(function(){a.C={};a.C.F=function(b){if(this.F=b){var c=\r\n a.a.R(b);this.ab=\"script\"===c?1:\"textarea\"===c?2:\"template\"==c&&b.content&&11===b.content.nodeType?3:4}};a.C.F.prototype.text=function(){var b=1===this.ab?\"text\":2===this.ab?\"value\":\"innerHTML\";if(0==arguments.length)return this.F[b];var c=arguments[0];\"innerHTML\"===b?a.a.fc(this.F,c):this.F[b]=c};var b=a.a.g.Z()+\"_\";a.C.F.prototype.data=function(c){if(1===arguments.length)return a.a.g.get(this.F,b+c);a.a.g.set(this.F,b+c,arguments[1])};var c=a.a.g.Z();a.C.F.prototype.nodes=function(){var b=this.F;\r\n if(0==arguments.length){var e=a.a.g.get(b,c)||{},f=e.lb||(3===this.ab?b.content:4===this.ab?b:n);if(!f||e.jd){var g=this.text();g&&g!==e.bb&&(f=a.a.Md(g,b.ownerDocument),a.a.g.set(b,c,{lb:f,bb:g,jd:!0}))}return f}e=arguments[0];this.ab!==n&&this.text(\"\");a.a.g.set(b,c,{lb:e})};a.C.ia=function(a){this.F=a};a.C.ia.prototype=new a.C.F;a.C.ia.prototype.constructor=a.C.ia;a.C.ia.prototype.text=function(){if(0==arguments.length){var b=a.a.g.get(this.F,c)||{};b.bb===n&&b.lb&&(b.bb=b.lb.innerHTML);return b.bb}a.a.g.set(this.F,\r\n c,{bb:arguments[0]})};a.b(\"templateSources\",a.C);a.b(\"templateSources.domElement\",a.C.F);a.b(\"templateSources.anonymousTemplate\",a.C.ia)})();(function(){function b(b,c,d){var e;for(c=a.h.nextSibling(c);b&&(e=b)!==c;)b=a.h.nextSibling(e),d(e,b)}function c(c,d){if(c.length){var e=c[0],f=c[c.length-1],g=e.parentNode,h=a.ga.instance,m=h.preprocessNode;if(m){b(e,f,function(a,b){var c=a.previousSibling,d=m.call(h,a);d&&(a===e&&(e=d[0]||b),a===f&&(f=d[d.length-1]||c))});c.length=0;if(!e)return;e===f?c.push(e):\r\n (c.push(e,f),a.a.Ua(c,g))}b(e,f,function(b){1!==b.nodeType&&8!==b.nodeType||a.vc(d,b)});b(e,f,function(b){1!==b.nodeType&&8!==b.nodeType||a.aa.cd(b,[d])});a.a.Ua(c,g)}}function d(a){return a.nodeType?a:0a.a.W?0:b.nodes)?b.nodes():null)return a.a.la(c.cloneNode(!0).childNodes);b=b.text();return a.a.ua(b,e)};a.ba.Ma=new a.ba;a.gc(a.ba.Ma);a.b(\"nativeTemplateEngine\",a.ba);(function(){a.$a=function(){var a=this.Hd=function(){if(!v||!v.tmpl)return 0;try{if(0<=v.tmpl.tag.tmpl.open.toString().indexOf(\"__\"))return 2}catch(a){}return 1}();\r\n this.renderTemplateSource=function(b,e,f,g){g=g||w;f=f||{};if(2>a)throw Error(\"Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.\");var h=b.data(\"precompiled\");h||(h=b.text()||\"\",h=v.template(null,\"{{ko_with $item.koBindingContext}}\"+h+\"{{/ko_with}}\"),b.data(\"precompiled\",h));b=[e.$data];e=v.extend({koBindingContext:e},f.templateOptions);e=v.tmpl(h,b,e);e.appendTo(g.createElement(\"div\"));v.fragments={};return e};this.createJavaScriptEvaluatorBlock=function(a){return\"{{ko_code ((function() { return \"+\r\n a+\" })()) }}\"};this.addTemplate=function(a,b){w.write(\"');\n }\n });\n $delegationEditor.iziModal('open');\n Loader.hide();\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n AffiliateDelegation.init = init;\n})(AffiliateDelegation || (AffiliateDelegation = {}));\n\nvar AffiliateDelegationEditor;\n(function (AffiliateDelegationEditor) {\n function loaded() {\n $('.datetimepicker').daterangepicker({\n singleDatePicker: true,\n timePicker: true,\n showDropdowns: false,\n timezone: 'local',\n locale: {\n format: 'MM/DD/YYYY hh:mm A'\n }\n }, (start, end, label) => {\n $(this).val('');\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n AffiliateDelegationEditor.init = init;\n})(AffiliateDelegationEditor || (AffiliateDelegationEditor = {}));\n\nvar AffiliateCreate;\n(function (AffiliateCreate) {\n function loaded() {\n $('form').validate({\n rules: {\n FirstName: { required: true },\n LastName: { required: true },\n AffiliateName: { required: true },\n EmailAddress: {\n required: true,\n email: true,\n remote: {\n url: '/account/auth/emailunique',\n type: 'post',\n data: {\n email() {\n return $('#EmailAddress').val();\n }\n }\n }\n },\n Form_Password: {\n required: true,\n minlength: 10,\n remote: {\n url: '/account/auth/verifypasswordstrength',\n type: 'post',\n data: {\n password() {\n return $('#CreateForm #Form_Password').val();\n }\n }\n }\n },\n ConfirmPassword: {\n equalTo: '#Form_Password'\n }\n },\n messages: {\n EmailAddress: {\n required: 'We will need your email address.',\n remote: 'This email address already has an account.'\n },\n Password: {\n required: 'A password is required.',\n minlength: 'Your password should be at least 10 characters.',\n remote: 'Your password should be at least 10 characters and contain at least 1 uppercase, 1 lowercase, 1 number, and 1 special character.'\n },\n ConfirmPassword: {\n equalTo: 'Your confirm password and password must match.'\n }\n }\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n AffiliateCreate.init = init;\n})(AffiliateCreate || (AffiliateCreate = {}));\n\nvar AffiliateProfile;\n(function (AffiliateProfile) {\n class Country {\n englishName;\n geoId;\n threeLetterISORegionName;\n twoLetterISORegionName;\n }\n class ProfileOptions {\n Countries;\n }\n var _subdomain;\n var Options;\n var cleaveInception = {};\n var IncomingPhoto;\n var _maxPhotoDimension = 1024;\n var _editable = false;\n var onAddedEvents = [];\n var onUpdatedEvents = [];\n var onUploadedEvents = [];\n var CreateFilePond = (inputSelector) => {\n var serverEndpoint = '/affiliate/logo/upload';\n Logger.log(serverEndpoint);\n $(inputSelector).filepond({\n allowRevert: false,\n acceptedFileTypes: ['image/jpeg', 'image/jpg', 'image/png', 'image/bmp'],\n fileValidateTypeLabelExpectedTypesMap: {\n 'image/jpg': '.jpg',\n 'image/jpeg': '.jpeg',\n 'image/png': '.png',\n 'image/bmp': '.bmp'\n },\n imageResizeTargetWidth: _maxPhotoDimension,\n maxFileSize: '25MB',\n imageResizeMode: 'contain',\n imageResizeUpscale: false,\n labelIdle: 'To add/change your logo, Drag & Drop a new image in this area or click Browse.',\n labelFileProcessingError(error) {\n let msg = '';\n if (typeof error !== 'undefined' &&\n error !== null &&\n typeof error.body !== 'undefined' &&\n error.body.length > 0)\n msg = `: ${error.body}`;\n return `Error during upload${msg}`;\n },\n onaddfile(error, file) {\n if (error == null)\n $('#ExistingLogoWrapper').addClass('uploading');\n },\n server: {\n process: {\n url: serverEndpoint,\n onload(signedUrl) {\n Logger.log(signedUrl);\n var $ExistingLogoWrapper = $('#ExistingLogoWrapper');\n var $ExistingLogo = $ExistingLogoWrapper.find('img');\n $ExistingLogoWrapper.removeClass('uploading');\n $ExistingLogoWrapper.removeClass('d-none');\n $ExistingLogo.attr('src', signedUrl);\n $('#AffiliateLogoDeploymentInfo').slideDown();\n return signedUrl;\n },\n onerror(error) {\n return error;\n }\n },\n fetch: null\n }\n });\n };\n function getSelectedCountry() {\n if (Options.Countries === null || Options.Countries.length <= 0)\n return null;\n var iso = $('#Profile_CountryISO').val();\n return Options.Countries.filter(obj => obj.twoLetterISORegionName === iso)[0];\n }\n ;\n function changeFlag() {\n const country = getSelectedCountry();\n Logger.log(`country: ${country}`);\n if (country === null || country === undefined) {\n $('.flagwrap').hide();\n return;\n }\n const tlIso = country.twoLetterISORegionName.toLowerCase();\n const flagObj = $('.country-select-flags .flagwrap .flag');\n flagObj.attr('class', '');\n flagObj.addClass(`flag ${tlIso}`);\n }\n ;\n function loaded() {\n GoogleAddressAutocomplete.init('Profile_Address');\n changeFlag();\n $('#Profile_CountryISO').on('change', e => {\n changeFlag();\n });\n $('#ProfileForm #Profile_Subdomain').on('keydown', e => {\n var key = e ? e.keyCode : e.which;\n if ([8, 37, 39, 46, 189].indexOf(key) > -1) {\n return true;\n }\n else if (key < 48 || key > 90) {\n return false;\n }\n else\n return true;\n });\n $('#ProfileForm').validate({\n rules: {\n 'Profile.Name': { required: true, minlength: 2 },\n 'Profile.Email': { required: true, minlength: 2 },\n 'Profile.Address': { required: true, minlength: 3 },\n 'Profile.City': { required: true, minlength: 3 },\n 'Profile.State': { required: true, minlength: 2 },\n 'Profile.PostalCode': { required: true, minlength: 2 },\n 'Profile.Moniker': { required: true, minlength: 2 },\n 'Profile.Subdomain': {\n required: true,\n minlength: 2,\n remote: {\n url: '/affiliate/subdomainavailable',\n type: 'post',\n data: {\n subdomain() {\n return $('#Profile_Subdomain').val();\n },\n currentSubdomain() {\n return _subdomain;\n }\n }\n }\n },\n },\n messages: {\n 'Profile.Subdomain': {\n remote: 'This identifier is already in use.'\n }\n }\n });\n cleaveInception = new Cleave('#Profile_AffiliateInception', {\n date: true,\n datePattern: ['m', 'd', 'Y']\n });\n $('.datepicker').daterangepicker({\n singleDatePicker: true,\n timePicker: false,\n showDropdowns: false,\n locale: {\n format: 'MM/DD/YYYY'\n }\n }, (start, end, label) => {\n $(this).val('');\n });\n if (!_editable)\n return;\n $('.checkin-photos-item').on('drag dragstart dragend dragover dragenter dragleave drop', e => {\n e.preventDefault();\n e.stopPropagation();\n })\n .on('dragover dragenter', e => {\n $(e.currentTarget).find('.Uploader').stop().fadeIn();\n })\n .on('dragleave dragend', e => {\n $(e.currentTarget).find('.Uploader').stop().fadeOut();\n });\n $.fn.filepond.registerPlugin(FilePondPluginImageResize, FilePondPluginImageTransform, FilePondPluginFileValidateType, FilePondPluginFileValidateSize);\n CreateFilePond('#FileAffiliateLogo');\n }\n function on(event, callback) {\n switch (event.toLowerCase()) {\n case 'added':\n onAddedEvents.push(callback);\n break;\n case 'updated':\n onUpdatedEvents.push(callback);\n break;\n case 'uploaded':\n onUploadedEvents.push(callback);\n break;\n }\n }\n AffiliateProfile.on = on;\n function fireEvent(event) {\n switch (event.toLowerCase()) {\n case 'added':\n onAddedEvents.forEach(f => { f(); });\n onUpdatedEvents.forEach(f => { f(); });\n break;\n case 'updated':\n onUpdatedEvents.forEach(f => { f(); });\n break;\n case 'uploaded':\n onUploadedEvents.forEach(f => { f(); });\n onUpdatedEvents.forEach(f => { f(); });\n break;\n }\n }\n function init(options, incomingPhoto, editable, subdomain) {\n Options = options;\n IncomingPhoto = incomingPhoto;\n _editable = editable;\n _subdomain = subdomain;\n $(() => { loaded(); });\n }\n AffiliateProfile.init = init;\n})(AffiliateProfile || (AffiliateProfile = {}));\n\nvar AffiliateReferrals;\n(function (AffiliateReferrals) {\n function loaded() {\n $('#btn_EditReferralCode').on('click', e => {\n e.preventDefault();\n $('#ReferralCode').removeAttr(\"readonly\");\n $('#btn_EditReferralCode').hide();\n $('#btn_CopyReferralCode').hide();\n $('#btn_SaveReferralCode').show();\n });\n $('#btn_CopyReferralCode').on('click', e => {\n e.preventDefault();\n $('#ReferralCode').focus();\n $('#ReferralCode').select();\n document.execCommand('copy');\n });\n $('#btn_SaveReferralCode').on('click', e => {\n e.preventDefault();\n var val = $('#ReferralCode').val();\n if (val.length <= 0)\n return;\n Loader.show();\n $(\"#btn_SaveReferralCode\").attr(\"disabled\", \"disabled\");\n $.post({\n url: '/affiliate/updatevalue',\n data: {\n 'Id': 0,\n 'PropertyName': 'ReferralCode',\n 'PropertyValue': val\n }\n }).done(function (response) {\n if (response.requestOk) {\n $('#ReferralCode').attr(\"readonly\", \"true\");\n $('#btn_EditReferralCode').show();\n $('#btn_CopyReferralCode').show();\n $(\"#btn_SaveReferralCode\").removeAttr(\"disabled\");\n $('#btn_SaveReferralCode').hide();\n var newVal = response.messages[0];\n $('#ReferralCode').val(newVal);\n $('#ReferralCodeInUrl').html(newVal);\n Toasts.success(new Toasts.ToastOptions(\"Your referral code has been updated\"));\n }\n Loader.hide();\n }).fail(function (e) {\n Toasts.error(new Toasts.ToastOptions(\"We could not update your code at this time. Please contact support@getseismic.com\"));\n Loader.hide();\n });\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n AffiliateReferrals.init = init;\n})(AffiliateReferrals || (AffiliateReferrals = {}));\n\nvar AffiliateStripe;\n(function (AffiliateStripe) {\n var _minPlanAmount;\n var _fee;\n var _hasDefaultPlan;\n var _referralEnabled;\n class NewPlanResponse {\n planId;\n planExists;\n error;\n }\n AffiliateStripe.ReferralViewModel = {\n enabled: ko.observable(false)\n };\n function createNewPlan(onSent = null) {\n $.get('/affiliate/stripe/newplan?min=' + _minPlanAmount + '&fee=' + _fee + '&hasDefaultPlan=' + _hasDefaultPlan, html => {\n $('body').append('
');\n var $newPlan = $('#NewPlan');\n $newPlan.html(html);\n $newPlan.iziModal({\n overlayClose: false,\n closeOnEscape: false,\n padding: 20,\n onOpening(izi) {\n const $form = izi.$element.find('#NewPlanForm');\n const $btnCancelSend = izi.$element.find('#btnCancelSend');\n const $btnSend = izi.$element.find('#btnSend');\n $btnCancelSend.on('click', (e) => {\n e.preventDefault();\n window.location.reload();\n $newPlan.iziModal('close');\n });\n $btnSend.on('click', (e) => {\n e.preventDefault();\n if ($form.valid()) {\n Loader.show();\n const serializedForm = AjaxForms.SerializeFormForModel($form);\n $.post({\n url: '/affiliate/stripe/newplan',\n data: serializedForm\n })\n .done((response) => {\n Loader.hide();\n if (response.planExists) {\n const toastOptions = new Toasts.ToastOptions('A Seismic plan for this amount already exists.', 'Error');\n Toasts.error(toastOptions);\n }\n else if (response.planId !== null) {\n const toastOptions = new Toasts.ToastOptions('Your plan has been created', 'Success');\n Toasts.success(toastOptions);\n $newPlan.iziModal('close');\n if (onSent != null)\n onSent(response.planId);\n }\n else if (response.error != null) {\n const toastOptions = new Toasts.ToastOptions(response.error, 'Error');\n Toasts.error(toastOptions);\n }\n else {\n const toastOptions = new Toasts.ToastOptions('We couldn\\'t create your plan at this time.', 'Error');\n Toasts.error(toastOptions);\n }\n })\n .fail((data) => {\n Loader.hide();\n const toastOptions = new Toasts.ToastOptions('We couldn\\'t create your plan at this time.', 'Error');\n Toasts.error(toastOptions);\n });\n }\n });\n },\n onClosed(izi) {\n $newPlan.remove();\n },\n onOpened(izi) {\n izi.$element.find(\"#NewPlanForm\").append('');\n }\n });\n $newPlan.iziModal('open');\n });\n }\n AffiliateStripe.createNewPlan = createNewPlan;\n function cancelSubscription() {\n Alerts.confirm({\n title: 'Confirm Cancellation',\n content: 'Your business subscription will remain active until the end of the current billing period.',\n buttons: {\n GoBack: {\n text: 'Stay Subscribed',\n btnClass: 'btn-primary',\n action() { }\n },\n Cancel: {\n text: 'Cancel Subscription',\n btnClass: 'btn-danger',\n action() {\n Loader.show();\n $.post({ url: '/affiliate/cancel-subscription' })\n .done(data => {\n if (data.canCancel) {\n $('#btn_cancel_subscription').hide();\n Alerts.success({ title: 'Cancelled', content: 'Your Seismic Business Program subscription has been cancelled.' });\n }\n else {\n console.error(data);\n Alerts.error({\n title: 'Error',\n content: 'You cannot cancel at this time.',\n buttons: {\n Ok() { }\n }\n });\n }\n Loader.hide();\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n });\n }\n }\n }\n });\n }\n function loaded() {\n if (document.getElementById(\"ReferralProgramForm\") != null) {\n ko.applyBindings(AffiliateStripe.ReferralViewModel, document.getElementById(\"ReferralProgramForm\"));\n AffiliateStripe.ReferralViewModel.enabled(_referralEnabled);\n }\n $('#btn_cancel_subscription').on('click', e => {\n e.preventDefault();\n cancelSubscription();\n });\n $('.btn_plan_default').on('click', e => {\n e.preventDefault();\n Loader.show();\n var planid = resolveAttr($(e.currentTarget), 'data-planid');\n $.post({ url: `/affiliate/stripe/defaultplan?planId=${planid}` })\n .done((response) => {\n if (response.requestOk) {\n window.location.reload();\n }\n else {\n Loader.hide();\n Alerts.error({ title: 'Error', content: 'Something went wrong updating this plan.' });\n }\n }).fail((e) => {\n Loader.hide();\n Alerts.error({ title: 'Error', content: 'Something went wrong updating this plan.' });\n }).always(() => {\n });\n });\n $('.btn_toggle_assignment').on('click', e => {\n e.preventDefault();\n Loader.show();\n var planid = resolveAttr($(e.currentTarget), 'data-planid');\n $.post({ url: `/affiliate/stripe/toggleassignment?planId=${planid}` })\n .done((response) => {\n if (response.requestOk) {\n window.location.reload();\n }\n else {\n Loader.hide();\n Alerts.error({ title: 'Error', content: 'Something went wrong updating this plan.' });\n }\n }).fail((e) => {\n Loader.hide();\n Alerts.error({ title: 'Error', content: 'Something went wrong updating this plan.' });\n }).always(() => {\n });\n });\n $('#btnNewPlan').on('click', e => {\n e.preventDefault();\n createNewPlan(() => {\n window.location.reload();\n });\n });\n $('.input-numeral').keydown(e => {\n if ($.inArray(e.keyCode, [46, 8, 9, 27, 13]) !== -1 ||\n (e.keyCode == 65 && e.ctrlKey === true) ||\n (e.keyCode >= 35 && e.keyCode <= 39)) {\n return;\n }\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {\n e.preventDefault();\n }\n });\n }\n function init(minPlanAmount, fee, referralEnabled, hasDefaultPlan) {\n _minPlanAmount = minPlanAmount;\n _fee = fee;\n _referralEnabled = referralEnabled;\n _hasDefaultPlan = hasDefaultPlan;\n $(() => { loaded(); });\n }\n AffiliateStripe.init = init;\n})(AffiliateStripe || (AffiliateStripe = {}));\n\nvar AffiliateNewPlan;\n(function (AffiliateNewPlan) {\n var _minPlanAmount;\n var _fee;\n AffiliateNewPlan.ViewModel = {\n amount: ko.observable(160),\n showFees: ko.observable(false),\n affiliateFee: ko.pureComputed(() => {\n return _fee;\n }),\n stripeFee: ko.pureComputed(() => {\n return ((+AffiliateNewPlan.ViewModel.amount() * .029) + .3).toFixed(2);\n }),\n net: ko.pureComputed(() => {\n return (+AffiliateNewPlan.ViewModel.amount() - AffiliateNewPlan.ViewModel.affiliateFee() - AffiliateNewPlan.ViewModel.stripeFee()).toFixed(2);\n }),\n disabled: ko.pureComputed(() => {\n return +AffiliateNewPlan.ViewModel.amount() > _minPlanAmount ? '' : 'disabled';\n }),\n };\n function loaded() {\n ko.applyBindings(AffiliateNewPlan.ViewModel, document.getElementById(\"NewPlanForm\"));\n $('.input-numeral').keydown(e => {\n if ($.inArray(e.keyCode, [46, 8, 9, 27, 13]) !== -1 ||\n (e.keyCode == 65 && e.ctrlKey === true) ||\n (e.keyCode >= 35 && e.keyCode <= 39)) {\n return;\n }\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {\n e.preventDefault();\n }\n });\n }\n function init(minPlanAmount, fee) {\n _minPlanAmount = minPlanAmount;\n _fee = fee;\n $(() => { loaded(); });\n }\n AffiliateNewPlan.init = init;\n})(AffiliateNewPlan || (AffiliateNewPlan = {}));\n\nvar AffiliateWaitlist;\n(function (AffiliateWaitlist) {\n function loaded() {\n $('.input-numeral').keydown(e => {\n if ($.inArray(e.keyCode, [46, 8, 9, 27, 13]) !== -1 ||\n (e.keyCode == 65 && e.ctrlKey === true) ||\n (e.keyCode >= 35 && e.keyCode <= 39)) {\n return;\n }\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {\n e.preventDefault();\n }\n });\n function waitlistUsersLoaded() {\n UtcParser.init();\n UserQuickInfo.init();\n $(\".btn_SendWaitlistInvite\").on('click', e => {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n type: 'blue',\n icon: 'far fa-mail-bulk',\n title: 'Send Invite',\n backgroundDismiss: true,\n content() {\n return '

Are you sure you want to send an invite to this user?.

';\n },\n buttons: {\n Cancel: {\n text: 'Cancel',\n btnClass: 'btn-default',\n action() { }\n },\n Offer: {\n text: ' Send',\n btnClass: 'btn-primary',\n isHidden: false,\n isDisabled: false,\n action(btn) {\n Loader.show();\n const userid = +resolveAttr($(e.currentTarget), 'data-userid');\n const program = resolveAttr($(e.currentTarget), 'data-program');\n $.post({ url: `/affiliate/waitlists/senduserinvite?userId=${userid}&program=${program}` })\n .done((data) => {\n if (data) {\n Alerts.success({ title: 'Success', content: 'Invites sent.' });\n }\n else {\n Alerts.error({ title: 'Error', content: 'Something went wrong sending these invites.' });\n }\n }).fail((e) => {\n Alerts.error({ title: 'Error', content: 'Something went wrong sending these invites.' });\n }).always(() => {\n Loader.hide();\n });\n return true;\n }\n }\n }\n });\n });\n }\n $(\".waitlistUsers .toggle-card-section i.show\").on('click', e => {\n var waitlistUsers = $(e.target).closest('.waitlistUsers');\n var cardSectionBody = $(waitlistUsers).children('.card-section-body');\n if (cardSectionBody.children('.waitlistUsersLoading').length === 0) {\n return;\n }\n var program = resolveAttr(waitlistUsers, 'data-program');\n Logger.log(`Getting waitlisted users for program `);\n $.get(`/affiliate/waitlists/users?program=${program}`)\n .done(data => {\n Logger.log('WaitlistUsers: success');\n cardSectionBody.html(data);\n waitlistUsersLoaded();\n }).fail((e) => {\n Logger.log(e);\n cardSectionBody.html('Something went wrong getting this list.');\n }).always(() => {\n cardSectionBody.parent().removeClass('disabled');\n });\n });\n $(\".btnSaveWaitlist\").on('click', e => {\n var program = $(e.target).val();\n const $form = $(\"#WaitlistProgramForm\");\n if ($form.valid()) {\n Loader.show();\n const serializedForm = AjaxForms.SerializeFormForModel($form);\n $.post({\n url: `/affiliate/waitlists?program=${program}`,\n data: serializedForm\n }).done((data) => {\n if (data) {\n Alerts.success({ title: 'Success', content: 'This waitlist was updated.' });\n }\n else {\n Alerts.error({ title: 'Error', content: 'Something went wrong updating this waitlist.' });\n }\n }).fail((e) => {\n Alerts.error({ title: 'Error', content: 'Something went wrong updating this waitlist.' });\n }).always((e) => {\n Loader.hide();\n });\n }\n });\n $(\"#btn_SendWaitlistInvites\").on('click', e => {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n type: 'blue',\n icon: 'far fa-mail-bulk',\n title: 'Invite Users',\n backgroundDismiss: true,\n content() {\n let html = '

Send an invitation to a specified number of waitlisted users. All invites are processed in a first in, first out method.

';\n html += '

How many invites would you like to send?

';\n html += '';\n return html;\n },\n buttons: {\n Cancel: {\n text: 'Cancel',\n btnClass: 'btn-default',\n action() { }\n },\n Offer: {\n text: ' Send',\n btnClass: 'btn-primary',\n isHidden: false,\n isDisabled: false,\n action(btn) {\n Loader.show();\n const count = +$('#txt_InviteCount').val();\n const program = resolveAttr($(e.currentTarget), 'data-program');\n if (count > 0) {\n $.post({ url: `/affiliate/waitlists/senduserinvites?count=${count}&program=${program}` })\n .done((data) => {\n if (data) {\n Alerts.success({ title: 'Success', content: 'Invite sent.' });\n }\n else {\n Alerts.error({ title: 'Error', content: 'Something went wrong sending the invite.' });\n }\n }).fail((e) => {\n Alerts.error({ title: 'Error', content: 'Something went wrong sending the invite.' });\n }).always(() => {\n Loader.hide();\n });\n }\n return true;\n }\n }\n }\n });\n });\n $(\"#btn_AddToWaitlist\").on('click', e => {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n type: 'blue',\n icon: 'far fa-user-plus',\n title: 'Add to Waitlist',\n backgroundDismiss: true,\n content() {\n let html = '

Adds a user to the waitlist without any action on their part. The user must already have an account.

';\n html += '

What is the users email address?

';\n html += '
';\n html += '';\n html += '
';\n html += '
';\n html += '
';\n html += '';\n html += '';\n html += 'If selected, the user will be sent an invite to join the program immediately.';\n html += '
';\n html += '
';\n return html;\n },\n buttons: {\n Cancel: {\n text: 'Cancel',\n btnClass: 'btn-default',\n action() { }\n },\n Add: {\n text: ' Add',\n btnClass: 'btn-primary',\n isHidden: false,\n isDisabled: false,\n action(btn) {\n Loader.show();\n const email = $('#txt_Email').val();\n const sendInvite = $('#SendEmail')[0].checked;\n const program = resolveAttr($(e.currentTarget), 'data-program');\n $.post({ url: `/affiliate/waitlists/users?email=${email}&program=${program}&sendInvite=${sendInvite}` })\n .done((data) => {\n Errors.respondToResponse(data, () => {\n Alerts.success({ title: 'Success', content: 'User added to waitlist.' });\n window.location.reload();\n });\n })\n .fail(error => {\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n }).always(() => {\n Loader.hide();\n });\n return true;\n }\n }\n }\n });\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n AffiliateWaitlist.init = init;\n})(AffiliateWaitlist || (AffiliateWaitlist = {}));\n\nvar AffiliateTerms;\n(function (AffiliateTerms) {\n function loaded() {\n $('form').validate({\n errorLabelContainer: '#acceptedTermsError',\n rules: {\n acceptedTerms: { required: true }\n },\n messages: {\n acceptedTerms: 'You must accept the latest terms before you can continue.'\n }\n });\n $('#btnAccept').on('click', e => {\n if ($('form').valid())\n Loader.show();\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n AffiliateTerms.init = init;\n})(AffiliateTerms || (AffiliateTerms = {}));\n\nvar AffiliateNewCoach;\n(function (AffiliateNewCoach) {\n function loaded() {\n $('#NewCoachForm').validate({\n rules: {\n FirstName: {\n required: true\n },\n LastName: {\n required: true\n },\n EmailAddress: {\n required: true,\n email: true,\n remote: {\n url: '/account/auth/emailunique',\n type: 'post',\n data: {\n email() {\n return $('#EmailAddress').val();\n }\n }\n }\n }\n },\n messages: {\n EmailAddress: {\n required: 'We will need your email address.',\n remote: 'This email address already has an account.'\n }\n }\n });\n $('#btnAdd').on('click', e => {\n if ($('form').valid())\n Loader.show();\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n AffiliateNewCoach.init = init;\n})(AffiliateNewCoach || (AffiliateNewCoach = {}));\n\nvar AffiliateHealth;\n(function (AffiliateHealth) {\n class AverageCoachResponseTimes {\n averageCoachResponseTimeHours;\n fastestAverageCoachResponseTimeHours;\n overdue;\n slowestAverageCoachResponseTimeHours;\n }\n class EscalationHealthSnapshot {\n averageEscalationResponseTimeHours;\n escalationsThisMonth;\n totalEscalations;\n }\n class AverageValueOfAClientSnapshot {\n AffiliateId;\n averageValueAll;\n averageValueThreeMonth;\n dataLoadTime;\n }\n let Formats;\n (function (Formats) {\n Formats[Formats[\"CURRENCY\"] = 0] = \"CURRENCY\";\n Formats[Formats[\"PERCENT\"] = 1] = \"PERCENT\";\n })(Formats || (Formats = {}));\n var HealthItemError = ($o, error) => {\n $o.html('');\n Logger.error(error);\n };\n var SetHealthItemLoading = ($o) => {\n $o.parent().find('.refresh').css({ 'visibility': 'hidden' });\n $o.html('');\n };\n var processKpi = ($o) => {\n var valuesStr = resolveAttr($o, 'data-kpi-values');\n if (valuesStr.length <= 0)\n return;\n var values = valuesStr.split(',');\n if (values.length < 2)\n return;\n var value = resolveAttr($o, 'data-value');\n if (value.length <= 0)\n return;\n var $kpi = $o.parent().find('.kpi-col .kpi');\n var startValue = +values[0];\n var endValue = +values[1];\n var colorRgbArray = ColorRange.getColor(startValue, '#28A745', endValue, '#DC3545', value, 4);\n var colorHex = rgbToHex(colorRgbArray[0], colorRgbArray[1], colorRgbArray[2]);\n $kpi.removeClass('text-muted');\n $kpi.css({\n \"color\": colorHex\n });\n };\n var getHealthItem = ($o, skipCache = false) => {\n SetHealthItemLoading($o);\n const method = $o.attr('data-health');\n var format = Formats[String(resolveAttrWithDefault($o, 'data-format', 'NUMBER')).toUpperCase()];\n var setItem = (data, $obj) => {\n Logger.log(`Setting item: ${method}`);\n $o.parent().find('.refresh').css({ 'visibility': '' });\n if (typeof data == 'undefined' || data === null || isNaN(data)) {\n HealthItemError($o, `${method} response was undefined, null or NaN.`);\n return;\n }\n var dataFormatted;\n switch (format) {\n case Formats.CURRENCY:\n dataFormatted = formatAsCurrency(+data, false);\n break;\n case Formats.PERCENT:\n dataFormatted = `${Math.round(+data * 100)}%`;\n break;\n default:\n dataFormatted = numberWithCommas(roundTo(+data, 2));\n break;\n }\n $obj.attr('data-value', data);\n $obj.html(dataFormatted);\n processKpi($obj);\n };\n var key = `AffiliateHealth.${method}`;\n var cachedData = CacheResolver.get(key);\n if (cachedData === null || skipCache) {\n Logger.log(`Requesting new data from server for ${method}`);\n $.get(`/affiliate/health/${method}?skipCache=${skipCache}`)\n .always(response => {\n })\n .done(data => {\n CacheResolver.set(key, data, 1440);\n setItem(data, $o);\n })\n .fail(error => {\n HealthItemError($o, error);\n });\n }\n if (skipCache)\n return;\n if (typeof cachedData == 'undefined')\n return;\n if (cachedData == null)\n return;\n setItem(cachedData, $o);\n };\n var refreshHealthItem = ($o) => {\n Logger.log('Refreshing health item');\n var $healthItem = $o.parent().parent().find('[data-health]');\n getHealthItem($healthItem, true);\n };\n function getCoachingHealthItems(skipCache = false) {\n const coaching_overdue = $('#coaching_overdue');\n const coaching_averageResponse = $('#coaching_averageResponse');\n const coaching_fastestAverageResponse = $('#coaching_fastestAverageResponse');\n const coaching_slowestAverageResponse = $('#coaching_slowestAverageResponse');\n SetHealthItemLoading(coaching_overdue);\n SetHealthItemLoading(coaching_averageResponse);\n SetHealthItemLoading(coaching_fastestAverageResponse);\n SetHealthItemLoading(coaching_slowestAverageResponse);\n var itemsError = (error) => {\n var errorHtml = '';\n coaching_overdue.html(errorHtml);\n coaching_averageResponse.html(errorHtml);\n coaching_fastestAverageResponse.html(errorHtml);\n coaching_slowestAverageResponse.html(errorHtml);\n Logger.error(error);\n };\n var setItems = (data) => {\n coaching_overdue.parent().find('.refresh').css({ 'visibility': '' });\n coaching_averageResponse.parent().find('.refresh').css({ 'visibility': '' });\n coaching_fastestAverageResponse.parent().find('.refresh').css({ 'visibility': '' });\n coaching_slowestAverageResponse.parent().find('.refresh').css({ 'visibility': '' });\n coaching_overdue.html(numberWithCommas(data.overdue));\n coaching_averageResponse.html(numberWithCommas(data.averageCoachResponseTimeHours));\n coaching_averageResponse.attr('data-value', data.averageCoachResponseTimeHours);\n coaching_fastestAverageResponse.html(numberWithCommas(data.fastestAverageCoachResponseTimeHours));\n coaching_slowestAverageResponse.html(numberWithCommas(data.slowestAverageCoachResponseTimeHours));\n processKpi(coaching_averageResponse);\n };\n var key = 'AffiliateHealth.CoachingHealthItems';\n const cachedData = CacheResolver.get(key);\n if (cachedData === null || skipCache) {\n $.get(`/affiliate/health/averagecoachresponsetimes?skipCache=${skipCache}`)\n .always(response => {\n })\n .done((data) => {\n if (typeof data == 'undefined' || data === null) {\n itemsError('Data was returned undefined or null.');\n return;\n }\n CacheResolver.set(key, data, 1440);\n setItems(data);\n })\n .fail(error => {\n itemsError(error);\n });\n }\n if (skipCache)\n return;\n if (typeof cachedData == 'undefined')\n return;\n if (cachedData == null)\n return;\n setItems(cachedData);\n }\n function getEscalationHealthItems(skipCache = false) {\n const escalations_allTimes = $('#escalations_allTimes');\n const escalations_thisMonth = $('#escalations_thisMonth');\n const escalations_avgResolution = $('#escalations_avgResolution');\n SetHealthItemLoading(escalations_allTimes);\n SetHealthItemLoading(escalations_thisMonth);\n SetHealthItemLoading(escalations_avgResolution);\n var itemsError = (error) => {\n var errorHtml = '';\n escalations_allTimes.html(errorHtml);\n escalations_thisMonth.html(errorHtml);\n escalations_avgResolution.html(errorHtml);\n Logger.error(error);\n };\n var setItems = (data) => {\n escalations_allTimes.html(numberWithCommas(data.totalEscalations));\n escalations_thisMonth.html(numberWithCommas(data.escalationsThisMonth));\n escalations_avgResolution.html(numberWithCommas(data.averageEscalationResponseTimeHours));\n escalations_allTimes.parent().find('.refresh').css({ 'visibility': '' });\n escalations_thisMonth.parent().find('.refresh').css({ 'visibility': '' });\n escalations_avgResolution.parent().find('.refresh').css({ 'visibility': '' });\n };\n var key = 'AffiliateHealth.EscalationHealth';\n const cachedData = CacheResolver.get(key);\n if (cachedData === null || skipCache) {\n $.get(`/affiliate/health/escalationhealth?skipCache=${skipCache}`)\n .always(response => {\n })\n .done((data) => {\n if (typeof data == 'undefined' || data === null) {\n itemsError('Data was returned undefined or null.');\n return;\n }\n CacheResolver.set(key, data, 1440);\n setItems(data);\n })\n .fail(error => {\n itemsError(error);\n });\n }\n if (skipCache)\n return;\n if (typeof cachedData == 'undefined')\n return;\n if (cachedData == null)\n return;\n setItems(cachedData);\n }\n function getAverageClientValueSnapshot(skipCache = false) {\n const valueRetention_avgValueAll = $('#valueRetention_avgValueAll');\n const valueRetention_avgValue3Mo = $('#valueRetention_avgValue3Mo');\n SetHealthItemLoading(valueRetention_avgValueAll);\n SetHealthItemLoading(valueRetention_avgValue3Mo);\n var itemsError = (error) => {\n var errorHtml = '';\n valueRetention_avgValueAll.html(errorHtml);\n valueRetention_avgValue3Mo.html(errorHtml);\n Logger.error(error);\n };\n var setItems = (data) => {\n valueRetention_avgValueAll.html(numberWithCommas(data.averageValueAll));\n valueRetention_avgValue3Mo.html(numberWithCommas(data.averageValueThreeMonth));\n valueRetention_avgValueAll.parent().find('.refresh').css({ 'visibility': '' });\n valueRetention_avgValue3Mo.parent().find('.refresh').css({ 'visibility': '' });\n };\n var key = 'AffiliateHealth.AverageClientValue';\n const cachedData = CacheResolver.get(key);\n if (cachedData === null || skipCache) {\n $.get(`/affiliate/health/averagevalueofaclient?skipCache=${skipCache}`)\n .always(response => {\n })\n .done((data) => {\n if (typeof data == 'undefined' || data === null) {\n itemsError('Data was returned undefined or null.');\n return;\n }\n CacheResolver.set(key, data, 1440);\n setItems(data);\n })\n .fail(error => {\n itemsError(error);\n });\n }\n if (skipCache)\n return;\n if (typeof cachedData == 'undefined')\n return;\n if (cachedData == null)\n return;\n setItems(cachedData);\n }\n function loaded() {\n var skipCache = parseBool(queryStringWithDefault('skipCache', 'false'));\n $('[data-health]').each((i, o) => {\n getHealthItem($(o), skipCache);\n });\n $('.refreshHealthItem').on('click', e => {\n e.preventDefault();\n refreshHealthItem($(e.currentTarget));\n });\n $('.refreshAvgValue').on('click', e => {\n e.preventDefault();\n getAverageClientValueSnapshot(true);\n });\n $('.refreshCoaching').on('click', e => {\n e.preventDefault();\n getCoachingHealthItems(true);\n });\n $('.refreshEscalationHealth').on('click', e => {\n e.preventDefault();\n getEscalationHealthItems(true);\n });\n getCoachingHealthItems(skipCache);\n getEscalationHealthItems(skipCache);\n getAverageClientValueSnapshot(skipCache);\n }\n function init() {\n $(() => { loaded(); });\n }\n AffiliateHealth.init = init;\n})(AffiliateHealth || (AffiliateHealth = {}));\n\nvar AffiliateReports;\n(function (AffiliateReports) {\n var baseApiUrl = '/affiliate/reports/';\n function requestPartnerReferral(month, year) {\n window.location.href = `${baseApiUrl}partnerreferral?month=${month}&year=${year}`;\n }\n ;\n function requestActiveClientsPerReferral(month, year) {\n window.location.href = `${baseApiUrl}activeclientsperreferral?month=${month}&year=${year}`;\n }\n ;\n function requestProBonoActivityReport() {\n window.location.href = `${baseApiUrl}probonoactivity`;\n }\n function requestCancellationForecastReport() {\n window.location.href = `${baseApiUrl}cancellationforecast`;\n }\n function requestSurveyDataReport(surveyId, startDate, endDate) {\n window.location.href = `${baseApiUrl}surveydata?surveyId=${surveyId}&startDate=${startDate}&endDate=${endDate}`;\n }\n function requestMembershipDurationReport(includeActive, includeThreeMonthActive, includeLegacy, includeCancelled) {\n window.location.href = `${baseApiUrl}membershipduration?includeActive=${includeActive}&includeThreeMonthActive=${includeThreeMonthActive}&includeLegacy=${includeLegacy}&includeCancelled=${includeCancelled}`;\n }\n function requestNewClientsReport(startDate, endDate) {\n window.location.href = `${baseApiUrl}newclients?subscriptionStart=${startDate}&subscriptionEnd=${endDate}`;\n }\n function requestPregnantClientsReport() {\n window.location.href = `${baseApiUrl}pregnantclients`;\n }\n function requestKetoClientsReport() {\n window.location.href = `${baseApiUrl}ketoclients`;\n }\n function requestAlumniOptInReport() {\n window.location.href = `${baseApiUrl}alumnioptin`;\n }\n function requestCoachCapacityReport() {\n window.location.href = `${baseApiUrl}coachcapacity`;\n }\n function requestClientsPerCoachReport(startDate, endDate, onlyNew) {\n window.location.href = `${baseApiUrl}clientspercoach?startDate=${startDate}&endDate=${endDate}&onlyNew=${onlyNew}`;\n }\n function requestCoachResponseTimeReport(justThisMonth) {\n window.location.href = `${baseApiUrl}coachresponsetime?justThisMonth=${justThisMonth}`;\n }\n function requestCoachCancellationReport(startDate, endDate) {\n window.location.href = `${baseApiUrl}coachcancellation?startDate=${startDate}&endDate=${endDate}`;\n }\n function requestWAGPlusReport() {\n window.location.href = `${baseApiUrl}wagplus`;\n }\n function requestWAGEssentialReport() {\n window.location.href = `${baseApiUrl}wagessentials`;\n }\n function loaded() {\n $('div[data-columns]').each((i, o) => {\n var $o = $(o);\n var columnsStr = $o.attr('data-columns');\n var columns = columnsStr.length > 0 ? columnsStr.split(',') : [];\n if (columns.length <= 0)\n return;\n $o.removeAttr('data-columns');\n $o.addClass('available-columns');\n $o.addClass('mt-4');\n $o.addClass('d-sm-none');\n $o.addClass('d-md-block');\n var html = '
Available Columns
';\n for (var ci = 0, l = columns.length; ci < l; ci++) {\n html += `${columns[ci].trim()}`;\n }\n $o.html(html);\n });\n const defaultModalParams = {\n padding: 20,\n focusInput: false,\n onOpened() {\n ToolTips.init();\n $('.dtp').daterangepicker({\n singleDatePicker: true,\n showDropdowns: true\n });\n }\n };\n var acprModal = $('#activeClientsPerReferralModal').iziModal(defaultModalParams);\n $('#btnGenerateACPR').on('click', e => {\n e.preventDefault();\n acprModal.iziModal('open');\n });\n $('#btnACPRDownload').on('click', e => {\n e.preventDefault();\n var year = +$('#txtACPRYear').val();\n var month = +$('#selACPRMonth').val();\n requestActiveClientsPerReferral(month, year);\n });\n var partnerReferralsModal = $('#partnerReferralsModal').iziModal(defaultModalParams);\n $('#btnGeneratePartnerReferrals').on('click', e => {\n e.preventDefault();\n partnerReferralsModal.iziModal('open');\n });\n $('#btnPartnerReferralDownload').on('click', e => {\n e.preventDefault();\n var year = +$('#txtPartnerReferralYear').val();\n var month = +$('#selPartnerReferralMonth').val();\n requestPartnerReferral(month, year);\n });\n $('#btnProBonoActivityDownload').on('click', e => {\n e.preventDefault();\n requestProBonoActivityReport();\n });\n $('#btnCancellationForecastDownload').on('click', e => {\n e.preventDefault();\n requestCancellationForecastReport();\n });\n var surveyDataModal = $('#surveyDataModal').iziModal(defaultModalParams);\n $('#btnGenerateSurveyData').on('click', e => {\n e.preventDefault();\n surveyDataModal.iziModal('open');\n });\n $('#btnSurveyDataDownload').on('click', e => {\n e.preventDefault();\n var surveyId = $('#selSurveyDataItem').val();\n var startDate = $('#txtSurveyDataStartDate').val();\n var endDate = $('#txtSurveyDataEndDate').val();\n requestSurveyDataReport(surveyId, startDate, endDate);\n });\n var membershipDurationModal = $('#membershipDurationModal').iziModal(defaultModalParams);\n $('#btnGenerateMembershipDuration').on('click', e => {\n e.preventDefault();\n membershipDurationModal.iziModal('open');\n });\n $('#btnMembershipDurationDownload').on('click', e => {\n e.preventDefault();\n var includeActive = $('#chxMembershipDurationActive').is(':checked');\n var includeThreeMonthActive = $('#chxMembershipDurationActive3Months').is(':checked');\n var includeLegacy = $('#chxMembershipDurationLegacy').is(':checked');\n var includeCancelled = $('#chxMembershipDurationCancelled').is(':checked');\n requestMembershipDurationReport(includeActive, includeThreeMonthActive, includeLegacy, includeCancelled);\n });\n var newClientsModal = $('#newClientsModal').iziModal(defaultModalParams);\n $('#btnGenerateNewClients').on('click', e => {\n e.preventDefault();\n newClientsModal.iziModal('open');\n });\n $('#btnNewClientsDownload').on('click', e => {\n var startDate = $('#dtpNewClientsStartDate').val();\n var endDate = $('#dtpNewClientsEndDate').val();\n requestNewClientsReport(startDate, endDate);\n });\n var clientsPerCoachModal = $('#clientsPerCoachModal').iziModal(defaultModalParams);\n $('#btnGenerateClientsPerCoach').on('click', e => {\n e.preventDefault();\n clientsPerCoachModal.iziModal('open');\n });\n $('#btnClientsPerCoachDownload').on('click', e => {\n var startDate = $('#dtpClientsPerCoachStartDate').val();\n var endDate = $('#dtpClientsPerCoachEndDate').val();\n var onlyNew = $('#chxClientsPerCoachOnlyNew').is(':checked');\n requestClientsPerCoachReport(startDate, endDate, onlyNew);\n });\n var coachResponseTimesModal = $('#coachResponseTimesModal').iziModal(defaultModalParams);\n $('#btnGenerateCoachResponseTimes').on('click', e => {\n e.preventDefault();\n coachResponseTimesModal.iziModal('open');\n });\n $('#btnCoachResponseTimesDownload').on('click', e => {\n e.preventDefault();\n var justThisMonth = $('#chxCoachResponseTimesThisMonth').is(':checked');\n requestCoachResponseTimeReport(justThisMonth);\n });\n var coachCancellationsModal = $('#coachCancellationsModal').iziModal(defaultModalParams);\n $('#btnGenerateCoachCancellations').on('click', e => {\n e.preventDefault();\n coachCancellationsModal.iziModal('open');\n });\n $('#btnCoachCancellationsDownload').on('click', e => {\n var startDate = $('#dtpCoachCancellationsStartDate').val();\n var endDate = $('#dtpCoachCancellationsEndDate').val();\n requestCoachCancellationReport(startDate, endDate);\n });\n $('#btnGenerateCoachCapacityDownload').on('click', e => {\n e.preventDefault();\n requestCoachCapacityReport();\n });\n $('#btnGeneratePregnantClientsDownload').on('click', e => {\n e.preventDefault();\n requestPregnantClientsReport();\n });\n $('#btnGenerateKetoClientsDownload').on('click', e => {\n e.preventDefault();\n requestKetoClientsReport();\n });\n $('#btnGenerateAlumniOptInDownload').on('click', e => {\n e.preventDefault();\n requestAlumniOptInReport();\n });\n $('#btnGenerateWAGPlusDownload').on('click', e => {\n e.preventDefault();\n requestWAGPlusReport();\n });\n $('#btnGenerateWAGEssentialDownload').on('click', e => {\n e.preventDefault();\n requestWAGEssentialReport();\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n AffiliateReports.init = init;\n})(AffiliateReports || (AffiliateReports = {}));\n\nvar AffiliateTemplate;\n(function (AffiliateTemplate) {\n function loaded() {\n $('form').validate({\n rules: {\n Message: { required: true }\n },\n messages: {\n Message: 'A message is required.'\n }\n });\n $('#btnSave').on('click', e => {\n if ($('form').valid())\n Loader.show();\n });\n CkEditor.init('#txtTemplateMessage', e => { }, 10, e => { });\n }\n function init() {\n $(() => { loaded(); });\n }\n AffiliateTemplate.init = init;\n})(AffiliateTemplate || (AffiliateTemplate = {}));\n\nvar AffiliateSurvey;\n(function (AffiliateSurvey) {\n class Question {\n surveyId;\n surveyQuestion;\n surveyQuestionBrief;\n surveyQuestionChoices;\n surveyQuestionEnabled;\n surveyQuestionExplanation;\n surveyQuestionId;\n surveyQuestionOrder;\n surveyQuestionRequired;\n surveyQuestionType;\n randomId;\n deleted;\n }\n var SurveyId;\n var TriggerType;\n var TriggerValue;\n var TriggerMax;\n var detailsViewModel = {\n questions: ko.observableArray([]),\n triggerType: ko.observable(),\n triggerValue: ko.observable(),\n triggerMax: ko.observable(),\n triggerDescription: ko.pureComputed(() => {\n if (detailsViewModel.triggerValue() === '')\n return '';\n var message = '';\n var maxMessage = detailsViewModel.triggerMax() > 0 ? `, but before ${detailsViewModel.triggerMax()}` : '';\n switch (detailsViewModel.triggerType()) {\n case \"0\":\n message = `Triggers after ${detailsViewModel.triggerValue()}${maxMessage} check-in(s)`;\n break;\n case \"1\":\n message = `Trigger after ${detailsViewModel.triggerValue()}${maxMessage} day(s) of membership`;\n break;\n case \"2\":\n message = `Trigger after ${detailsViewModel.triggerValue()}${maxMessage} Lite check-in(s)`;\n break;\n case \"3\":\n return `None (direct link)`;\n }\n return message;\n }),\n isUrlBasedSelected: ko.pureComputed(() => {\n return detailsViewModel.triggerType() === \"3\";\n }),\n removeQuestion(question) {\n const cardSection = $(`.card-section[data-question-id=\"${question.randomId()}\"]`);\n if (question.deleted()) {\n question.deleted(false);\n }\n else {\n if (question.surveyQuestionId() === '00000000-0000-0000-0000-000000000000') {\n detailsViewModel.questions.remove(question);\n }\n else {\n question.deleted(true);\n cardSection.addClass('collapsed');\n cardSection.removeClass('opened');\n }\n }\n },\n addQuestion(obj) {\n var existing = detailsViewModel.questions();\n var question = new Question();\n question.surveyId = SurveyId;\n question.surveyQuestionId = '00000000-0000-0000-0000-000000000000';\n question.surveyQuestion = 'New Question';\n question.surveyQuestionEnabled = true;\n question.surveyQuestionRequired = true;\n question.surveyQuestionChoices = '[{\"Text\":\"\",\"Tooltip\":\"\",\"Value\":\"\"}]';\n question.surveyQuestionType = \"0\";\n question.surveyQuestionOrder = detailsViewModel.questions().length + 1;\n question.randomId = randomId();\n question.deleted = false;\n var obs = mapQuestionToObservable(question);\n existing.push(obs);\n detailsViewModel.questions([]);\n detailsViewModel.questions(existing);\n CardSectionBoxes.init();\n const cardSection = $(`.card-section[data-question-id=\"${obs.randomId()}\"]`);\n cardSection.removeClass('collapsed');\n cardSection.addClass('opened');\n $(document).scrollTop($(document).height());\n $(`#Questions_${detailsViewModel.questions().length - 1}__SurveyQuestion`).select();\n },\n removeChoice(choice) {\n $.each(detailsViewModel.questions(), function () {\n this.surveyQuestionChoices.remove(choice);\n if (this.surveyQuestionChoices().length === 0) {\n this.surveyQuestionChoices.push(({\n Text: ko.observable(''),\n Tooltip: ko.observable(''),\n Value: ko.observable(''),\n AllowInput: ko.observable(true)\n }));\n }\n });\n },\n addChoice() {\n this.surveyQuestionChoices.push(({\n Text: ko.observable(''),\n Tooltip: ko.observable(''),\n Value: ko.observable(''),\n AllowInput: ko.observable(true)\n }));\n bindQuestionEvents();\n }\n };\n function bindQuestionEvents() {\n $(\".maxRating\").change(function () {\n const me = $(this);\n const maxRating = me.val();\n const id = resolveAttr(me, 'data-question-id');\n var question = ko.utils.arrayFirst(detailsViewModel.questions(), (item) => {\n return item.randomId() === id;\n });\n question.surveyQuestionChoices([]);\n if (maxRating !== \"\") {\n var midRating = maxRating === \"5\" ? \"3\" : \"5\";\n var choices = [];\n for (var j = 1; j <= maxRating; j++) {\n var tooltip = \"\";\n var allowInput = false;\n if (j.toString() === \"1\") {\n tooltip = \"Low Label\";\n allowInput = true;\n }\n else if (j.toString() === midRating) {\n tooltip = \"Mid Label\";\n allowInput = true;\n }\n else if (j.toString() === maxRating) {\n tooltip = \"Max Label\";\n allowInput = true;\n }\n choices.push(({\n Text: ko.observable(j.toString()),\n Tooltip: ko.observable(tooltip),\n Value: ko.observable(j.toString()),\n AllowInput: ko.observable(allowInput)\n }));\n }\n question.surveyQuestionChoices(choices);\n }\n });\n }\n function bindViewModel(questions) {\n detailsViewModel.triggerType(TriggerType);\n detailsViewModel.triggerValue(TriggerValue);\n detailsViewModel.triggerMax(TriggerMax);\n for (var i = 0; i < questions.length; i++) {\n detailsViewModel.questions.push(mapQuestionToObservable(questions[i]));\n }\n if (questions.length === 0) {\n detailsViewModel.addQuestion(null);\n }\n ko.applyBindings(detailsViewModel, document.getElementById('details-tab'));\n CardSectionBoxes.init();\n bindQuestionEvents();\n }\n function loaded(questions) {\n $('form').validate({\n rules: {\n Message: { required: true }\n },\n messages: {\n Message: 'A message is required.'\n }\n });\n $('#btnSave').on('click', e => {\n if ($('form').valid())\n Loader.show();\n });\n $('a[data-toggle=\"tab\"]').on('shown.bs.tab', e => {\n var tabId = resolveAttr($(e.target), 'href');\n var tab = $(tabId);\n loadTab(tab);\n });\n $('.datetimepicker').daterangepicker({\n autoUpdateInput: false,\n singleDatePicker: true,\n timePicker: true,\n showDropdowns: false,\n locale: {\n format: 'MM/DD/YYYY hh:mm A',\n cancelLabel: 'Clear'\n }\n }, (start, end, label) => {\n $(this).val('');\n });\n $('.datetimepicker').on('apply.daterangepicker', function (ev, picker) {\n $(this).val(picker.startDate.format('MM/DD/YYYY hh:mm A'));\n });\n $('.datetimepicker').on('cancel.daterangepicker', function (ev, picker) {\n $(this).val('');\n });\n sortable('.questions-editor', {\n forcePlaceholderSize: true\n });\n sortable('.questions-editor')[0].addEventListener('sortupdate', e => {\n var modifiedQuestions = [];\n for (var j = 0; j < e.detail.destination.items.length; j++) {\n var $o = $(e.detail.destination.items[j]);\n const id = resolveAttr($o, 'data-question-id');\n var question = ko.utils.arrayFirst(detailsViewModel.questions(), (item) => {\n return item.randomId() === id;\n });\n question.surveyQuestionOrder = j + 1;\n modifiedQuestions.push(question);\n }\n detailsViewModel.questions([]);\n detailsViewModel.questions(modifiedQuestions);\n CardSectionBoxes.init();\n });\n bindViewModel(questions);\n }\n function mapQuestionToObservable(question) {\n var obs = {\n surveyId: ko.observable(question.surveyId),\n surveyQuestion: ko.observable(question.surveyQuestion),\n surveyQuestionBrief: ko.observable(question.surveyQuestionBrief),\n surveyQuestionChoices: ko.observableArray([]),\n surveyQuestionEnabled: ko.observable(question.surveyQuestionEnabled),\n surveyQuestionExplanation: ko.observable(question.surveyQuestionExplanation),\n surveyQuestionId: ko.observable(question.surveyQuestionId),\n surveyQuestionOrder: ko.observable(question.surveyQuestionOrder),\n surveyQuestionRequired: ko.observable(question.surveyQuestionRequired),\n surveyQuestionType: ko.observable(question.surveyQuestionType.toString()),\n randomId: ko.observable(randomId()),\n deleted: ko.observable(question.deleted)\n };\n var choices = JSON.parse(question.surveyQuestionChoices);\n for (var i = 0; i < choices.length; i++) {\n var allowInput = false;\n if (obs.surveyQuestionType() === '5') {\n var maxRating = choices.length.toString();\n var midRating = maxRating === \"5\" ? \"3\" : \"5\";\n if (choices[i].Value === \"1\") {\n allowInput = true;\n }\n else if (choices[i].Value === midRating) {\n allowInput = true;\n }\n else if (choices[i].Value === maxRating) {\n allowInput = true;\n }\n }\n else {\n allowInput = true;\n }\n var choice = {\n Text: ko.observable(choices[i].Text),\n Tooltip: ko.observable(choices[i].Tooltip),\n Value: ko.observable(choices[i].Value),\n AllowInput: ko.observable(allowInput)\n };\n obs.surveyQuestionChoices.push(choice);\n }\n if (choices.length === 0) {\n obs.surveyQuestionChoices.push({\n Text: ko.observable(''),\n Tooltip: ko.observable(''),\n Value: ko.observable(''),\n AllowInput: ko.observable(true)\n });\n }\n return obs;\n }\n function loadTab_preview(tab) {\n Logger.log(`Getting preview for survey ${SurveyId}`);\n var cardSectionBody = tab.find('.card-section-body');\n cardSectionBody.html('');\n cardSectionBody.parent().addClass('disabled');\n $.post({\n url: `/affiliate/surveys/${SurveyId}/preview`,\n data: $('#SurveyForm').serialize()\n })\n .done(data => {\n Logger.log('AffiliateSurvey: preview response successful');\n cardSectionBody.html(data);\n ClientSurvey.init(SurveyId, () => {\n var validator = $('#SurveyContent').validate({\n errorPlacement(error, element) {\n error.appendTo($('#ValidationError'));\n }\n });\n var opts = new HotStepper.Options();\n opts.StartStep = 0;\n opts.Validate = true;\n opts.Validator = validator;\n opts.ShowPreviousOnFirstStep = false;\n opts.StepsContainer = \".survey-preview .HotStepper\";\n opts.onFinished = () => {\n $('.HotStepper').hide();\n $('#SurveyNav').hide();\n $('#SurveyCompleted').show();\n };\n HotStepper.init(opts);\n });\n $('.back-to-editor').on('click', () => {\n $(\"#details-tab-link\").click();\n });\n cardSectionBody.parent().removeClass('disabled');\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n tabLoaded(tab);\n });\n }\n function randomId() {\n return Math.random().toString(36).replace('0.', '');\n }\n function loadTab(tab, forceLoad = false) {\n Logger.withGroup('AffiliateSurvey: loadTab', () => {\n const tabId = tab.attr('id');\n const tabPreviouslyLoaded = parseBool(resolveAttrWithDefault(tab, 'data-tab-dataloaded', 'false'));\n if (tabPreviouslyLoaded && !forceLoad)\n return;\n Logger.log(`Loading tab: ${tabId}`);\n switch (tabId) {\n case 'details-tab':\n break;\n case 'preview-tab':\n loadTab_preview(tab);\n break;\n }\n });\n }\n function tabLoaded(tab) {\n UtcParser.init();\n ToolTips.init();\n ActionLinks.init();\n }\n function init(surveyId, triggerType, triggerValue, triggerMax, questions) {\n SurveyId = surveyId;\n TriggerType = triggerType;\n TriggerValue = triggerValue;\n TriggerMax = triggerMax;\n $(() => { loaded(questions); });\n }\n AffiliateSurvey.init = init;\n})(AffiliateSurvey || (AffiliateSurvey = {}));\n\nvar AffiliateSubscription;\n(function (AffiliateSubscription) {\n var genericErrorMsg;\n var affiliateBillingViewModel;\n var ElementsConfig;\n class AddCardResponse {\n card;\n customer;\n invoice;\n error;\n }\n function cancelSubscription() {\n Alerts.confirm({\n title: 'Confirm Cancellation',\n content: 'Your business subscription will remain active until the end of the current billing period.',\n buttons: {\n GoBack: {\n text: 'Stay Subscribed',\n btnClass: 'btn-primary',\n action() { }\n },\n Cancel: {\n text: 'Cancel Subscription',\n btnClass: 'btn-danger',\n action() {\n Loader.show();\n $.post({ url: '/affiliate/subscription/cancel' })\n .done(data => {\n if (data.canCancel) {\n window.location.href = '/affiliate/subscription';\n }\n else {\n Alerts.error({\n title: 'Error',\n content: 'You cannot cancel at this time.',\n buttons: {\n Ok() { }\n }\n });\n Loader.hide();\n }\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n });\n }\n }\n }\n });\n }\n function removeCard(cardId) {\n Alerts.confirm({\n title: 'Confirm Delete',\n content: 'Are you sure you want to remove this card?',\n buttons: {\n Cancel() { },\n Delete: {\n btnClass: 'btn-primary',\n action() {\n Loader.show();\n $.post({ url: `/affiliate/subscription/deletecard?cardid=${cardId}&affiliateId=${affiliateBillingViewModel.affiliateId}` })\n .done((data) => {\n if (data)\n $(`#ClientPaymentMethods table tr[data-card-id=\"${cardId}\"]`).remove();\n else {\n Alerts.error({ content: 'You cannot delete this card.' });\n }\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n Loader.hide();\n });\n }\n }\n }\n });\n }\n function undoCancel() {\n Loader.show();\n var errorMessage = genericErrorMsg;\n var showError = msg => {\n Toasts.error(new Toasts.ToastOptions(msg));\n };\n $.post({ url: `/affiliate/subscription/undocancel?userId=${affiliateBillingViewModel.affiliateId}` })\n .done(data => {\n if (data === undefined || data === null) {\n if (data.Error.length <= 0)\n errorMessage += ` Reference code ${data.Error}.`;\n showError(errorMessage);\n Loader.hide();\n return;\n }\n window.location.reload();\n }).fail((e) => {\n Logger.log(e);\n showError(errorMessage);\n Loader.hide();\n });\n }\n function undoScheduledPlanChange() {\n Loader.show();\n var errorMessage = genericErrorMsg;\n var showError = msg => {\n Toasts.error(new Toasts.ToastOptions(msg));\n };\n $.post({ url: `/affiliate/subscription/undoplanchange?userId=${affiliateBillingViewModel.affiliateId}` })\n .done(data => {\n if (data === undefined || data === null) {\n Alerts.error({ content: 'You cannot cancel this change at this time.' });\n Loader.hide();\n return;\n }\n window.location.reload();\n }).fail((e) => {\n Logger.log(e);\n showError(errorMessage);\n Loader.hide();\n });\n }\n function setDefaultCard(cardId) {\n const mustUpdateCard = affiliateBillingViewModel.mustUpdateCard;\n let confirmMessage = '

Are you sure you want to set this this card as your default card?

';\n if (mustUpdateCard)\n confirmMessage += 'Notice: This action will also pay any due invoices.';\n Alerts.confirm({\n title: 'Confirm Default',\n content: confirmMessage,\n buttons: {\n Cancel() { },\n Confirm: {\n text: 'Set as Default',\n btnClass: 'btn-primary',\n action() {\n Loader.show();\n $.post({ url: `/affiliate/subscription/setdefaultcard?cardid=${cardId}&affiliateId=${affiliateBillingViewModel.affiliateId}` })\n .done(data => {\n if (mustUpdateCard) {\n window.location.href = '/affiliate/subscription';\n return;\n }\n var newDefaultSourceId = data.defaultSourceId;\n $('#ClientPaymentMethods table tr').each((i, e) => {\n var tr = $(e);\n var thisCardId = resolveAttr(tr, 'data-card-id');\n var badge = tr.find('.badge-default-card');\n var actionsLink = tr.find('.actions-link');\n badge.addClass('d-none');\n actionsLink.removeClass('d-none');\n if (thisCardId === newDefaultSourceId) {\n badge.removeClass('d-none');\n actionsLink.addClass('d-none');\n }\n });\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n Loader.hide();\n });\n }\n }\n }\n });\n }\n function addCard(addAsDefault = false, payCurrentInvoice = false) {\n Loader.show();\n StripeElements.createToken((token) => {\n $.post({ url: `/affiliate/subscription/addcard?token=${token.id}&addAsDefault=${addAsDefault}&payCurrentInvoice=${payCurrentInvoice}&userId=${affiliateBillingViewModel.affiliateId}` })\n .done((cardResponse) => {\n if (validObj(cardResponse)) {\n Logger.log(cardResponse);\n if (validObj(cardResponse.error) && cardResponse.error.length > 0) {\n Alerts.error({\n title: 'Error',\n content: cardResponse.error,\n buttons: {\n Ok() { }\n }\n });\n return;\n }\n if (payCurrentInvoice && validObj(cardResponse.invoice)) {\n window.location.href = '/affiliate/subscription';\n return;\n }\n loadTab_methods($('#methods-tab'));\n }\n else {\n Toasts.error(new Toasts.ToastOptions(genericErrorMsg));\n }\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n Loader.hide();\n });\n });\n }\n function loaded() {\n $('#btnSubscribe').on('click', e => {\n e.preventDefault();\n window.location.href = '/affiliate/subscription/pricing';\n });\n $('#btn_AdminCancelScheduledPlanChange').on('click', e => {\n e.preventDefault();\n undoScheduledPlanChange();\n });\n $('#btn_AdminUndoCancellation').on('click', e => {\n e.preventDefault();\n undoCancel();\n });\n $('#btn_AdminCancelSubscription').on('click', e => {\n e.preventDefault();\n cancelSubscription();\n });\n $('a[data-toggle=\"tab\"]').on('shown.bs.tab', e => {\n var tabId = resolveAttr($(e.target), 'href');\n var tab = $(tabId);\n loadTab(tab);\n });\n $('button.btn-add-card').on('click', e => {\n e.preventDefault();\n var setAsDefault = $('#chx_setDefaultCard').is(':checked');\n var payCurrentInvoice = $('#chx_payCurrentInvoice').is(':checked');\n addCard(setAsDefault, payCurrentInvoice);\n });\n }\n function tabLoaded(tab) {\n UtcParser.init();\n ToolTips.init();\n ActionLinks.init();\n }\n function loadTab_invoices(tab) {\n Logger.log(`Getting invoices for affiliate ${affiliateBillingViewModel.affiliateId}`);\n $.get(`/affiliate/subscription/invoices?affiliateId=${affiliateBillingViewModel.affiliateId}`)\n .done(data => {\n Logger.log('AffiliateSubscription: invoices response successful');\n var cardSectionBody = tab.find('.card-section-body');\n cardSectionBody.html(data);\n cardSectionBody.parent().removeClass('disabled');\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n tabLoaded(tab);\n });\n }\n function loadTab_charges(tab) {\n Logger.log(`Getting charges for affiliate ${affiliateBillingViewModel.affiliateId}`);\n $.get(`/affiliate/subscription/charges?affiliateId=${affiliateBillingViewModel.affiliateId}`)\n .done(data => {\n Logger.log('AffiliateSubscription: charges response successful');\n var cardSectionBody = tab.find('.card-section-body');\n cardSectionBody.html(data);\n cardSectionBody.parent().removeClass('disabled');\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n tabLoaded(tab);\n });\n }\n function loadTab_methods(tab) {\n var cardSectionBody = tab.find('.card-section-body.payment-methods-body');\n cardSectionBody.parent().addClass('disabled');\n Logger.log(`Getting methods for affiliate ${affiliateBillingViewModel.affiliateId}`);\n $.get(`/affiliate/subscription/methods?affiliateId=${affiliateBillingViewModel.affiliateId}`)\n .done(data => {\n Logger.log('AffiliateSubscription: methods response successful');\n cardSectionBody.html(data);\n cardSectionBody.parent().removeClass('disabled');\n $('.btn-set-default-card').on('click', function (e) {\n e.preventDefault();\n const cardId = resolveAttr($(this), 'data-card-id');\n WebuiPopovers.hideAll();\n setDefaultCard(cardId);\n });\n $('.btn-remove-card').on('click', function (e) {\n e.preventDefault();\n const cardId = resolveAttr($(this), 'data-card-id');\n WebuiPopovers.hideAll();\n removeCard(cardId);\n });\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n tabLoaded(tab);\n });\n StripeElements.createStripeElements(ElementsConfig);\n }\n function loadTab(tab, forceLoad = false) {\n Logger.withGroup('AffiliateSubscription: loadTab', () => {\n var tabId = tab.attr('id');\n var tabPreviouslyLoaded = parseBool(resolveAttrWithDefault(tab, 'data-tab-dataloaded', 'false'));\n if (tabPreviouslyLoaded && !forceLoad)\n return;\n tab.attr('data-tab-dataloaded', 'true');\n Logger.log(`Loading tab: ${tabId}`);\n switch (tabId) {\n case 'subscription-tab':\n break;\n case 'invoices-tab':\n loadTab_invoices(tab);\n break;\n case 'charges-tab':\n loadTab_charges(tab);\n break;\n case 'methods-tab':\n loadTab_methods(tab);\n break;\n }\n });\n }\n function init(elementsConfig, viewModel = undefined) {\n ElementsConfig = elementsConfig;\n affiliateBillingViewModel = viewModel;\n $(() => { loaded(); });\n }\n AffiliateSubscription.init = init;\n})(AffiliateSubscription || (AffiliateSubscription = {}));\n\nvar AffiliateSubscribe;\n(function (AffiliateSubscribe) {\n var Tiers;\n var Subscription;\n var PaymentFailed;\n var SelectedTier;\n var ElementsConfig;\n var $paymentModal;\n var ViewModel = {\n selectedTier: ko.observable(''),\n selectedTierObj: ko.pureComputed(() => {\n return Tiers.find(obj => {\n return obj.tier === +ViewModel.selectedTier();\n });\n }),\n selectedTierPrice: ko.pureComputed(() => {\n if (ViewModel.selectedTierObj() == null)\n return 0;\n if (ViewModel.selectedTierObj().plan == null)\n return 0;\n return (ViewModel.selectedTierObj().plan.amount / 100).toFixed(0);\n }),\n selectedTierInterval: ko.pureComputed(() => {\n if (ViewModel.selectedTierObj() == null)\n return '';\n if (ViewModel.selectedTierObj().plan == null)\n return '';\n return ViewModel.selectedTierObj().plan.interval;\n }),\n selectedTierDescription: ko.pureComputed(() => {\n if (ViewModel.selectedTierObj() == null)\n return '';\n return ViewModel.selectedTierObj().tierDescription;\n }),\n selectedTierIsDowngrade: ko.pureComputed(() => {\n if (ViewModel.selectedTierObj() == null)\n return false;\n if (ViewModel.subscription() == null)\n return false;\n return ViewModel.selectedTierObj().tier < ViewModel.subscription().tier;\n }),\n selectedTierProration: ko.pureComputed(() => {\n if (ViewModel.selectedTierObj() == null)\n return false;\n if (ViewModel.subscription() == null)\n return false;\n return (ViewModel.selectedTierObj().prorationAmount / 100).toFixed(0);\n }),\n subscription: ko.observable()\n };\n function loaded() {\n $('.btnChooseTier').on('click', e => {\n e.preventDefault();\n const tier = resolveAttr($(e.currentTarget), 'data-tier');\n const hdnSelectedTier = document.getElementById('hdnSelectedTier');\n hdnSelectedTier.value = tier;\n $paymentModal.iziModal('open');\n });\n $paymentModal = $('#SubscriptionPaymentModal').iziModal({\n padding: 20,\n width: 828,\n backgroundDismiss: true,\n onOpening(izi) {\n createStripeElements();\n ko.applyBindings(ViewModel, document.getElementById('SubscribeForm'));\n const hdnSelectedTier = document.getElementById('hdnSelectedTier');\n ViewModel.selectedTier(hdnSelectedTier.value);\n ViewModel.subscription(Subscription);\n },\n onClosed() {\n ko.cleanNode(document.getElementById('SubscribeForm'));\n }\n });\n if (PaymentFailed) {\n const hdnSelectedTier = document.getElementById('hdnSelectedTier');\n hdnSelectedTier.value = +SelectedTier;\n $paymentModal.iziModal('open');\n }\n }\n function createStripeElements() {\n StripeElements.createStripeElements(ElementsConfig);\n var form = document.getElementById('SubscribeForm');\n form.addEventListener('submit', event => {\n event.preventDefault();\n StripeElements.createToken((token) => {\n const cardTokenElement = document.getElementById('hdnSourceTokenId');\n cardTokenElement.value = token.id;\n Loader.show();\n form.submit();\n });\n });\n }\n function init(elementsConfig, tiers = undefined, subscription = undefined, paymentFailed, selectedTier) {\n ElementsConfig = elementsConfig;\n Tiers = tiers;\n SelectedTier = selectedTier;\n PaymentFailed = paymentFailed;\n Subscription = subscription;\n $(() => { loaded(); });\n }\n AffiliateSubscribe.init = init;\n})(AffiliateSubscribe || (AffiliateSubscribe = {}));\n\nclass UserPhotos {\n back;\n front;\n left;\n right;\n}\nvar CheckInPhotos;\n(function (CheckInPhotos) {\n let Directions;\n (function (Directions) {\n Directions[\"front\"] = \"front\";\n Directions[\"back\"] = \"back\";\n Directions[\"left\"] = \"left\";\n Directions[\"right\"] = \"right\";\n })(Directions || (Directions = {}));\n class Photo {\n constructor(cipi, url = '') {\n this.$cipi = $(cipi);\n this.$uploadedImage = this.$cipi.find('.uploaded-image');\n this.$photoBlurred = this.$cipi.find('.photoBlurred .photo');\n this.$btnEdit = this.$cipi.find('.btnEdit');\n this.$cancelEdit = this.$cipi.find('.cancelEdit');\n this.$Uploader = this.$cipi.find('.Uploader');\n this.direction = resolveAttr(this.$cipi, 'data-photo-location');\n this.canUpload = false;\n this.hasUploaded = false;\n this.photoUrl = '';\n this.editable = parseBool(resolveAttrWithDefault(this.$cipi, 'data-photo-editable', 'false'));\n this.setPhotoUrl(url);\n this.$btnEdit.on('click', e => {\n e.preventDefault();\n var $filePond = $(`#File${this.direction.toString().toTitleCase()}`);\n $filePond.filepond('browse');\n this.$Uploader.stop().fadeIn();\n this.$cancelEdit.stop().fadeIn();\n });\n this.$cancelEdit.on('click', e => {\n e.preventDefault();\n this.$Uploader.stop().fadeOut();\n this.$cancelEdit.stop().fadeOut();\n });\n }\n $cipi;\n $photoBlurred;\n $btnEdit;\n $cancelEdit;\n $Uploader;\n $uploadedImage;\n canUpload;\n direction;\n hasUploaded;\n photoUrl;\n editable;\n setPhotoUrl(url = '', onLoaded = undefined) {\n if (url == null)\n return;\n Logger.withGroup('CheckinPhotos: setPhotoUrl', () => {\n Logger.log(`url: ${url}`);\n this.photoUrl = url;\n this.hasUploaded = (url !== undefined && url.length > 0);\n if (!this.hasUploaded)\n return;\n Logger.log('Pre-loading image');\n const img = new Image();\n img.onload = () => {\n this.displayPhotoData(this.photoUrl);\n if (typeof onLoaded !== 'undefined')\n onLoaded();\n };\n img.src = this.photoUrl;\n this.$uploadedImage.addClass('hasImage');\n });\n }\n displayPhotoData(url) {\n if (url.length <= 0) {\n this.$uploadedImage.css('background-image', 'none');\n this.$photoBlurred.css('background-image', 'none');\n return;\n }\n Logger.withGroup('Displaying photo image', () => {\n Logger.log(url);\n this.$uploadedImage.css('background-image', `url(${url})`);\n this.$photoBlurred.css('background-image', `url(${url})`);\n });\n }\n }\n var IncomingPhotoData;\n var Photos;\n var _maxPhotoDimension = 1024;\n var _editable = false;\n var _checkInId = 0;\n var _isInitial;\n var onAddedEvents = [];\n var onUpdatedEvents = [];\n var onUploadedEvents = [];\n function on(event, callback) {\n switch (event.toLowerCase()) {\n case 'added':\n onAddedEvents.push(callback);\n break;\n case 'updated':\n onUpdatedEvents.push(callback);\n break;\n case 'uploaded':\n onUploadedEvents.push(callback);\n break;\n }\n }\n CheckInPhotos.on = on;\n function fireEvent(event) {\n switch (event.toLowerCase()) {\n case 'added':\n onAddedEvents.forEach(f => { f(); });\n onUpdatedEvents.forEach(f => { f(); });\n break;\n case 'updated':\n onUpdatedEvents.forEach(f => { f(); });\n break;\n case 'uploaded':\n onUploadedEvents.forEach(f => { f(); });\n onUpdatedEvents.forEach(f => { f(); });\n break;\n }\n }\n function HasUploadedAll() {\n return TotalCompleteUploads() === 4;\n }\n CheckInPhotos.HasUploadedAll = HasUploadedAll;\n function TotalCompleteUploads() {\n return Photos.filter(p => p.hasUploaded).length;\n }\n CheckInPhotos.TotalCompleteUploads = TotalCompleteUploads;\n function loaded() {\n Logger.withGroup('CheckinPhotos: Loaded', () => {\n Logger.log(`Editable: ${_editable}`);\n $('.checkin-photos .checkin-photos-item').each((i, cipi) => {\n var location = resolveAttr($(cipi), 'data-photo-location');\n var existingUrl = IncomingPhotoData[location];\n var photo = new Photo(cipi, existingUrl);\n Photos.push(photo);\n Logger.log(photo);\n });\n if (!_editable)\n return;\n $('.checkin-photos.editable .checkin-photos-item').on('drag dragstart dragend dragover dragenter dragleave drop', e => {\n e.preventDefault();\n e.stopPropagation();\n })\n .on('dragover dragenter', e => {\n $(e.currentTarget).find('.Uploader').stop().fadeIn();\n })\n .on('dragleave dragend', e => {\n $(e.currentTarget).find('.Uploader').stop().fadeOut();\n });\n $.fn.filepond.registerPlugin(FilePondPluginImageExifOrientation, FilePondPluginImageResize, FilePondPluginImageTransform, FilePondPluginImagePreview, FilePondPluginFileValidateType, FilePondPluginFileValidateSize);\n const verb = _isInitial\n ? 'initial'\n : 'checkin';\n var CreateFilePond = (inputSelector, direction) => {\n var serverEndpoint = `/photos/upload/${verb}/${direction}?checkInId=${_checkInId}`;\n Logger.log(serverEndpoint);\n $(inputSelector).filepond({\n stylePanelLayout: 'integrated',\n stylePanelAspectRatio: '1.248',\n allowRevert: false,\n acceptedFileTypes: ['image/jpeg', 'image/jpg', 'image/png', 'image/bmp'],\n fileValidateTypeLabelExpectedTypesMap: {\n 'image/jpg': '.jpg',\n 'image/jpeg': '.jpeg',\n 'image/png': '.png',\n 'image/bmp': '.bmp'\n },\n imageResizeTargetWidth: _maxPhotoDimension,\n maxFileSize: '25MB',\n imageResizeMode: 'contain',\n imageResizeUpscale: false,\n labelTapToUndo: 'tap to remove',\n labelIdle: 'Drag & Drop a new photo or Browse ',\n labelFileProcessingError(error) {\n let msg = '';\n if (typeof error !== 'undefined' &&\n error !== null &&\n typeof error.body !== 'undefined' &&\n error.body.length > 0)\n msg = `: ${error.body}`;\n return `Error during upload${msg}`;\n },\n onaddfilestart() {\n $(`.checkin-photos-item.${direction.toString().toLowerCase()} .cancelEdit`).fadeOut();\n },\n server: {\n process: {\n url: serverEndpoint,\n onload(signedUrl) {\n Logger.log(signedUrl);\n const photoItem = Photos.filter(p => p.direction === direction)[0];\n photoItem.hasUploaded = true;\n photoItem.setPhotoUrl(signedUrl, () => {\n setTimeout(() => {\n $(`.checkin-photos-item.${direction.toString().toLowerCase()} .Uploader`)\n .fadeOut('fast', () => {\n $(inputSelector).filepond('removeFiles');\n });\n }, 1000);\n });\n return signedUrl;\n },\n onerror(error) {\n return error;\n }\n },\n fetch: null,\n revert: {\n url: '/photostest/revert'\n }\n }\n });\n };\n CreateFilePond('#FileFront', Directions.front);\n CreateFilePond('#FileBack', Directions.back);\n CreateFilePond('#FileLeft', Directions.left);\n CreateFilePond('#FileRight', Directions.right);\n });\n }\n function init(userPhotos, checkInId, isInitial, editable) {\n Logger.withGroup('CheckInPhotos: init', () => {\n Logger.log(userPhotos);\n IncomingPhotoData = userPhotos;\n Photos = [];\n _editable = editable;\n _checkInId = checkInId;\n _isInitial = isInitial;\n if (checkInId == null || checkInId <= 0 && !isInitial) {\n console.error('You have not set a checkInId and set isInitial to false. If isInitial is false, you must specify a checkInId.');\n }\n if (checkInId != null && checkInId > 0 && isInitial) {\n console.warn('You have set a checkInId and have set isInitial to true. Photos will be uploaded as initial photos and checkInId will be ignored.');\n }\n $(() => { loaded(); });\n });\n }\n CheckInPhotos.init = init;\n ;\n})(CheckInPhotos || (CheckInPhotos = {}));\n\nvar ClientCompliance;\n(function (ClientCompliance) {\n class ComplianceData {\n CanvasId;\n Labels;\n ProteinSeries;\n CarbsSeries;\n FatSeries;\n FiberSeries;\n EnabledMetricTypes;\n }\n ClientCompliance.ComplianceData = ComplianceData;\n var data = null;\n function BindCompliance() {\n Logger.withGroup('BindCompliance', () => {\n if (typeof data == 'undefined' || data == null) {\n Logger.warn('Data was undefined or null');\n return;\n }\n const complianceCanvas = $(`#${data.CanvasId}`);\n if (complianceCanvas.length <= 0) {\n Logger.warn('Could not find a compliance canvas ');\n return;\n }\n if (typeof data.Labels == 'undefined' || data.Labels == null) {\n Logger.warn('Labels was undefined or null');\n return;\n }\n if (data.Labels.length <= 0\n || data.ProteinSeries.length <= 0\n || data.CarbsSeries.length <= 0\n || data.FatSeries.length <= 0\n || data.FiberSeries.length <= 0) {\n Logger.warn('Could not bind metrics data: Not enough metrics data.');\n return;\n }\n const complianceChartCtx = complianceCanvas[0].getContext('2d');\n const complianceChart = new Chart(complianceChartCtx, {\n type: 'line',\n data: {\n labels: data.Labels,\n datasets: [\n {\n label: 'Protein',\n data: data.ProteinSeries,\n fill: 'origin',\n spanGaps: true,\n borderColor: 'rgba(232, 59, 165, 1)',\n backgroundColor: 'rgba(232, 59, 165, 0.2)',\n borderWidth: 1\n },\n {\n label: 'Carbs',\n data: data.CarbsSeries,\n spanGaps: true,\n fill: 'origin',\n borderColor: 'rgba(59, 255, 207, 1)',\n backgroundColor: 'rgba(59, 255, 207, 0.2)',\n borderWidth: 1\n },\n {\n label: 'Fat',\n data: data.FatSeries,\n spanGaps: true,\n fill: 'origin',\n borderColor: 'rgba(59, 73, 255, 1)',\n backgroundColor: 'rgba(59, 73, 255, 0.2)',\n borderWidth: 1\n },\n {\n label: 'Fiber',\n data: data.FiberSeries,\n spanGaps: true,\n fill: 'origin',\n borderColor: 'rgba(174, 255, 59, 1)',\n backgroundColor: 'rgba(174, 255, 59, 0.2)',\n borderWidth: 1\n }\n ]\n },\n options: {\n responsive: true,\n tooltips: {\n callbacks: {\n label(tooltipItem, data) {\n const label = data.datasets[tooltipItem.datasetIndex].label || '';\n const value = +tooltipItem.yLabel;\n const isPerfect = value === 0;\n if (isPerfect)\n return `Perfect ${label}!`;\n const overUnderVerbiage = value > 0 ? 'Over' : 'Under';\n return `${overUnderVerbiage} ${label} by ${Math.abs(value)}%`;\n }\n }\n },\n scales: {\n yAxes: [\n {\n id: 'y-axis',\n type: 'linear',\n ticks: {\n callback(value, index, values) {\n return value + '%';\n }\n },\n gridLines: {\n display: false,\n drawBorder: false\n }\n }\n ]\n },\n annotation: {\n annotations: [\n {\n drawTime: 'afterDatasetsDraw',\n id: 'hline',\n type: 'line',\n mode: 'horizontal',\n scaleID: 'y-axis',\n value: 0,\n borderColor: '#514D6A',\n borderWidth: 2,\n label: {\n fontColor: '#514D6A',\n backgroundColor: 'rgba(228, 233, 240)',\n content: 'Compliance',\n enabled: true\n }\n }\n ]\n }\n }\n });\n });\n }\n function loaded() {\n Logger.withGroup('Client Compliance: Loaded', () => {\n BindCompliance();\n });\n }\n function init(inData) {\n data = inData;\n $(() => { loaded(); });\n }\n ClientCompliance.init = init;\n})(ClientCompliance || (ClientCompliance = {}));\n\nvar ClientBilling;\n(function (ClientBilling) {\n var WagPlusPlanDetails;\n var userId;\n var alumniStatus;\n var membershipMonth;\n var cancellationFlow;\n var RequestingAlumniOffer = false;\n var genericErrorMsg;\n let ClientCancellationFlow;\n (function (ClientCancellationFlow) {\n ClientCancellationFlow[ClientCancellationFlow[\"NotApplicable\"] = 0] = \"NotApplicable\";\n ClientCancellationFlow[ClientCancellationFlow[\"StandardClient\"] = 1] = \"StandardClient\";\n ClientCancellationFlow[ClientCancellationFlow[\"AlumniClient\"] = 2] = \"AlumniClient\";\n ClientCancellationFlow[ClientCancellationFlow[\"DiscountedAlumni\"] = 3] = \"DiscountedAlumni\";\n ClientCancellationFlow[ClientCancellationFlow[\"Cancelling\"] = 4] = \"Cancelling\";\n })(ClientCancellationFlow || (ClientCancellationFlow = {}));\n class AddCardResponse {\n card;\n customer;\n invoice;\n error;\n }\n class RedeemGiftCardIdResponse extends SeismicResponse {\n giftCardValue;\n giftCardValueStr;\n suppliedGiftCardId;\n validId;\n }\n class ClientConnectConversionResponse extends SeismicResponse {\n applicationFeePercentAlreadySet;\n }\n class ResubscribeResponse {\n error;\n subscription;\n }\n class SubscribeResponse {\n activeTill;\n customerId;\n error;\n planId;\n subscriptionId;\n subscriptionStart;\n }\n class WagPassCodeRedemptionResult {\n verificationResult;\n responseCode;\n responseMessage;\n updatedSubscription;\n }\n function showGiftCardResponseCodeError(code) {\n var errorMsg = 'We couldn\\'t validate that gift card code at this time. Please try again. If you continue to have issues, please contact support@getseismic.com';\n switch (code.toLowerCase()) {\n case 'redeemed':\n errorMsg = 'This code has already been redeemed.';\n break;\n case 'invalid_code':\n errorMsg = 'This code is invalid.';\n break;\n }\n Alerts.error({ title: 'Validation Error', content: errorMsg });\n }\n function showPartnerResponseCodeError(code) {\n var errorMsg = 'We couldn\\'t validate that partner code at this time. Please try again. If you continue to have issues, please contact support@getseismic.com';\n switch (code.toLowerCase()) {\n case 'invalid_code':\n errorMsg = 'This code is invalid.';\n break;\n }\n Alerts.error({ title: 'Validation Error', content: errorMsg });\n }\n function showReferralResponseCodeError(code) {\n var errorMsg = 'We couldn\\'t validate that referral at this time. Please try again. If you continue to have issues, please contact support@getseismic.com';\n switch (code.toLowerCase()) {\n case 'invalid_code':\n errorMsg = 'This code is invalid.';\n break;\n case 'user_not_found':\n errorMsg = 'This email is invalid.';\n break;\n case 'affiliate_mismatch':\n errorMsg = 'This referral is from an affiliate different to the one you are signing up with.';\n break;\n case 'has_referral':\n errorMsg = 'You can only be referred by someone one time.';\n break;\n case 'unknown':\n case '':\n errorMsg = 'Something went wrong.';\n break;\n }\n Alerts.error({ title: 'Validation Error', content: errorMsg });\n }\n function validateGiftCardCode(giftCardId, onDone, onFail = undefined) {\n $.get(`/account/billing/validategiftcardid?giftCardId=${giftCardId}`)\n .done((response) => {\n if (!response.requestOk) {\n showGiftCardResponseCodeError(response.responseCode);\n }\n onDone(response);\n })\n .fail(err => {\n if (typeof (onFail) !== 'undefined') {\n onFail(err);\n }\n Logger.error(err);\n Alerts.error({ title: 'Error', content: 'There was an error trying to validate this gift card. Please try again or contact support@getseismic.com.' });\n });\n }\n ClientBilling.validateGiftCardCode = validateGiftCardCode;\n function validatePartnerCode(partnerCode, showResult, onDone, onFail = undefined) {\n $.get(`/account/billing/validatepartnercode?partnerCode=${partnerCode}`)\n .done((response) => {\n if (!response.requestOk) {\n if (showResult) {\n showPartnerResponseCodeError(response.responseCode);\n }\n }\n onDone(response);\n })\n .fail(err => {\n if (typeof (onFail) !== 'undefined') {\n onFail(err);\n }\n Logger.error(err);\n if (showResult) {\n Alerts.error({ title: 'Error', content: 'There was an error trying to validate this partner code. Please try again or contact support@getseismic.com.' });\n }\n });\n }\n ClientBilling.validatePartnerCode = validatePartnerCode;\n function validateWagPassCode(wagPassCode, onDone, onFail = undefined) {\n $.get(`/account/billing/validateWagPassCode?code=${wagPassCode}`)\n .done((response) => {\n if (response.responseCode !== \"00\") {\n Alerts.error({ title: 'Validation Error', content: `${response.responseMessage} If you continue have issues, please contact support@getseismic.com with the code ${response.responseCode}` });\n }\n onDone(response);\n })\n .fail(err => {\n if (typeof (onFail) !== 'undefined') {\n onFail(err);\n }\n Logger.error(err);\n Alerts.error({ title: 'Error', content: 'There was an error trying to validate this WAG Pass. Please try again or contact support@getseismic.com.' });\n });\n }\n ClientBilling.validateWagPassCode = validateWagPassCode;\n function validateReferralCode(referralInput, showResult, onDone, onFail = undefined) {\n $.get(`/account/billing/validatereferralcode?referralInput=${encodeURIComponent(referralInput)}`)\n .done((response) => {\n if (!response.requestOk) {\n if (showResult) {\n showReferralResponseCodeError(response.responseCode);\n }\n }\n onDone(response);\n })\n .fail(err => {\n if (typeof (onFail) !== 'undefined') {\n onFail(err);\n }\n Logger.error(err);\n if (showResult) {\n Alerts.error({ title: 'Error', content: 'There was an error trying to validate this referral. Please try again or contact support@getseismic.com.' });\n }\n });\n }\n ClientBilling.validateReferralCode = validateReferralCode;\n function redeemGiftCardCode(giftCardCode) {\n Loader.show();\n $.get(`/account/billing/redeemgiftcard?giftCardId=${giftCardCode}&userId=${ClientBilling.accountBillingViewModel.seismicUserId}`)\n .done((redeemResponse) => {\n if (!redeemResponse.validId) {\n showGiftCardResponseCodeError(redeemResponse.responseCode);\n return;\n }\n if (redeemResponse.requestOk) {\n Alerts.success({\n content: `Your ${redeemResponse.giftCardValueStr} gift card has been credited to your account!`\n });\n }\n else {\n Alerts.error({ title: 'Error', content: genericErrorMsg });\n }\n })\n .fail(err => {\n Logger.error(err);\n Alerts.error({ title: 'Error', content: genericErrorMsg });\n }).always(() => { Loader.hide(); });\n }\n function addCard(addAsDefault = false, payCurrentInvoice = false) {\n Loader.show();\n StripeElements.createToken((token) => {\n $.post({ url: `/account/billing/addcard?token=${token.id}&addAsDefault=${addAsDefault}&payCurrentInvoice=${payCurrentInvoice}&userId=${ClientBilling.accountBillingViewModel.seismicUserId}` })\n .done((cardResponse) => {\n if (validObj(cardResponse)) {\n Logger.log(cardResponse);\n if (validObj(cardResponse.error) && cardResponse.error.length > 0) {\n Alerts.error({\n title: 'Error',\n content: cardResponse.error,\n buttons: {\n Ok() { }\n }\n });\n return;\n }\n window.location.reload();\n ;\n }\n else {\n Toasts.error(new Toasts.ToastOptions(genericErrorMsg));\n Loader.hide();\n }\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n });\n });\n }\n function cancelSubscription() {\n Alerts.confirm({\n title: 'Confirm Cancellation',\n content: 'Are you sure you want to cancel your subscription?',\n buttons: {\n GoBack: {\n text: 'Stay Subscribed',\n btnClass: 'btn-primary',\n action() { }\n },\n Cancel: {\n text: 'Cancel Subscription',\n btnClass: 'btn-danger',\n action() {\n Loader.show();\n postCancellation(() => { window.location.href = '/account/billing'; });\n }\n }\n }\n });\n }\n function postAlumniOpt() {\n Loader.show();\n $.post({ url: `/account/billing/alumnioptin?adminOverride=true` })\n .done((data) => {\n window.location.href = `/account/profile?justOptedIn=true#liteprogram-tab`;\n })\n .fail(error => {\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n Loader.hide();\n });\n }\n function postCancellation(onCancelComplete = null) {\n $.post({ url: '/account/billing/cancelsubscription' })\n .done(data => {\n if (data.canCancel) {\n if (onCancelComplete != undefined)\n onCancelComplete();\n }\n else {\n Alerts.error({\n title: 'Error',\n content: 'You cannot cancel at this time.',\n buttons: {\n Ok() { }\n }\n });\n }\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n Loader.hide();\n });\n }\n ClientBilling.postCancellation = postCancellation;\n function acceptAlumniCancellationOffer() {\n Loader.show();\n $.post({ url: '/account/billing/acceptAlumniCancellationOffer' })\n .done(data => {\n if (data.canCancel) {\n window.location.href = '/account/billing';\n }\n else {\n Alerts.error({\n title: 'Error',\n content: 'You cannot cancel at this time.',\n buttons: {\n Ok() { }\n }\n });\n Loader.hide();\n }\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n });\n }\n function adminFixPlan() {\n Loader.show();\n $.post(`/account/billing/fixplan?userid=${userId}`)\n .done((response) => {\n Errors.respondToResponse(response, () => {\n window.location.reload();\n }, () => { Loader.hide(); });\n }).fail((err) => {\n Logger.log(err);\n Alerts.error({ content: err.responseText });\n Loader.hide();\n });\n }\n function adminCancelSubscription() {\n const isCancelling = ClientBilling.accountBillingViewModel.billingStatusDescription.is('cancelling');\n const postCancel = (atPeriodEnd) => {\n Loader.show();\n $.post({ url: `/account/billing/cancelsubscription?userId=${userId}&cancelAtPeriodEnd=${atPeriodEnd}&adminOverride=true` })\n .done(data => {\n if (data.canCancel) {\n window.location.reload();\n }\n else {\n Loader.hide();\n Logger.log(data, true, true);\n var toastOpts = new Toasts.ToastOptions('This users subscription cannot be cancelled.');\n Toasts.error(toastOpts);\n }\n }).fail((e) => {\n Loader.hide();\n Logger.log(e, true, true);\n var toastOpts = new Toasts.ToastOptions(genericErrorMsg);\n Toasts.error(toastOpts);\n });\n };\n Alerts.confirm({\n icon: isCancelling ? 'fas fa-arrow-to-bottom' : 'far fa-ban',\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n closeIcon: true,\n title: 'Confirm Cancellation',\n backgroundDismiss: true,\n content() {\n let html;\n if (isCancelling) {\n html = 'The subscription end date will be set immediately. The client will be refunded for any remaining amount of time.';\n }\n else {\n html = '

When would you like to end the subscription?

';\n html += '';\n html += '';\n html += '';\n html += '';\n html += ``;\n html += '';\n html += '';\n html += '
 NowThe subscription end date is set immediately. The client will be refunded for any remaining amount of time.
 At Period EndThe subscription end date is set for the end of this billing cycle. The client will be able to use the service until the end date. No refunds are issued.
';\n }\n return html;\n },\n buttons: {\n immediately: {\n btnClass: 'btn-primary',\n text: ` ${isCancelling ? 'Cancel Now' : 'Now'}`,\n action(btn) {\n postCancel(false);\n }\n },\n planEnd: {\n isHidden: isCancelling,\n btnClass: 'btn-primary',\n text: ' At Period End',\n action(btn) {\n postCancel(true);\n }\n }\n }\n });\n }\n function adminResubscribe() {\n var subscribeVerbiage = ClientBilling.accountBillingViewModel.hasSubscription ? 'Resubscribe' : 'Subscribe';\n Alerts.confirm({\n icon: 'fas fa-redo-alt',\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n title: `Confirm ${subscribeVerbiage}`,\n backgroundDismiss: true,\n content() {\n let html = '';\n const planVerbiage = ClientBilling.accountBillingViewModel.hasSubscription ? 'currently selected plan' : 'default affiliate plan';\n html += `

This will ${subscribeVerbiage.toLowerCase()} this client to the ${planVerbiage}.

`;\n html += `
`;\n html += ``;\n html += ``;\n html += `
`;\n html += `Resets the client's program start date, forces them through the intro and questionnaire again, and unassigns their coach (if outside the 3-month cancellation policy window).`;\n html += `
Are you sure you want to ${subscribeVerbiage.toLowerCase()} this client?
`;\n return html;\n },\n buttons: {\n planEnd: {\n text: 'Cancel',\n action() { }\n },\n Subscribe: {\n btnClass: 'btn-warning',\n text: ` ${subscribeVerbiage}`,\n action() {\n const resetClient = $('#chxResetClient').is(':checked');\n if (ClientBilling.accountBillingViewModel.isSubscribed)\n return;\n Loader.show();\n $.post({ url: `/account/billing/resubscribe?userId=${userId}&adminOverride=true&resetClient=${resetClient}` })\n .done((data) => {\n Logger.log(data);\n if (validObj(data)) {\n if (validObj(data.error) && data.error.length > 0) {\n Toasts.error(new Toasts.ToastOptions(data.error));\n Loader.hide();\n return;\n }\n window.location.reload();\n return;\n }\n Toasts.error(new Toasts.ToastOptions(genericErrorMsg));\n }).fail((e) => {\n Logger.log(e);\n Toasts.error(new Toasts.ToastOptions(genericErrorMsg));\n Loader.hide();\n });\n }\n }\n }\n });\n }\n function adminConvertToSeismicAffiliateModel() {\n var submitPost = (doFap) => {\n Loader.show();\n $.post({ url: `/account/billing/converttoconnect?userId=${userId}&forceOverApplicationFeePercent=${doFap}` })\n .done((data) => {\n if (data.requestOk) {\n window.location.reload();\n }\n else {\n Loader.hide();\n var fapSet = data.applicationFeePercentAlreadySet;\n Alerts.alert({\n animation: 'zoom',\n closeAnimation: 'scale',\n closeIcon: true,\n animateFromElement: false,\n title: 'Conversion Result',\n backgroundDismiss: true,\n content() {\n let html = '';\n if (data.messages.length > 0)\n html += `

${data.messages[0]}

`;\n else\n html += `

The server did not return a response.

`;\n if (fapSet) {\n html += 'Would you like to force over the application fee percent?';\n }\n return html;\n },\n buttons: {\n Ok: {\n text: fapSet ? ' Force' : 'Ok',\n btnClass: fapSet ? 'btn-warning' : '',\n action() {\n if (fapSet) {\n submitPost(true);\n }\n }\n }\n }\n });\n }\n }).fail((e) => {\n Loader.hide();\n Logger.log(e, true, true);\n Toasts.error(new Toasts.ToastOptions(genericErrorMsg));\n });\n };\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n icon: 'far fa-badge-percent',\n title: 'Convert Subscription',\n backgroundDismiss: true,\n content() {\n let html = '

This will cancel the client\\'s current subscription and create a new one using the Seismic Affiliate model. If necessary, free days will be added to the end of the current subscription to ensure the new subscription starts and bills at the same interval.
';\n html += 'Do you wish to continue?

';\n return html;\n },\n buttons: {\n Cancel: { text: 'Cancel' },\n Offer: {\n btnClass: 'btn-warning',\n text: ' Convert',\n action() {\n submitPost(false);\n return true;\n }\n }\n }\n });\n }\n function adminChangePlan(newPlanId) {\n if (newPlanId.length <= 0)\n return;\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n closeIcon: true,\n animateFromElement: false,\n title: 'Change Plan',\n backgroundDismiss: true,\n content() {\n let html = '';\n html += '

Changing their plan will change the amount the client pays each month.

';\n html += '

Are you sure want to change this client\\'s plan?

';\n return html;\n },\n buttons: {\n change: {\n btnClass: 'btn-warning',\n text: ' Change',\n action() {\n Loader.show();\n $.post({ url: `/account/billing/changeplan?userId=${userId}&planid=${newPlanId}` })\n .done((data) => {\n Errors.respondToResponse(data, () => {\n window.location.reload();\n }, undefined, true);\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n });\n }\n }\n },\n onClose() {\n const $o = $('#selPlans');\n const options = $o.find('option');\n const values = $.map(options, option => option.value);\n const existingPlan = resolveAttr($o, 'data-current-plan');\n if (values.indexOf(existingPlan) >= 0) {\n $o.val(existingPlan);\n return;\n }\n if (values.indexOf('') >= 0) {\n $o.val('');\n }\n }\n });\n }\n function setDefaultCard(cardId) {\n const mustUpdateCard = ClientBilling.accountBillingViewModel.mustUpdateCard;\n let confirmMessage = '

Are you sure you want to set this this card as your default card?

';\n if (mustUpdateCard)\n confirmMessage += 'Notice: This action will also pay any due invoices.';\n Alerts.confirm({\n title: 'Confirm Default',\n content: confirmMessage,\n buttons: {\n Cancel() { },\n Confirm: {\n text: 'Set as Default',\n btnClass: 'btn-primary',\n action() {\n Loader.show();\n $.post({ url: `/account/billing/setdefaultcard?cardid=${cardId}&userId=${ClientBilling.accountBillingViewModel.seismicUserId}` })\n .done(data => {\n if (mustUpdateCard) {\n window.location.href = '/account/billing';\n return;\n }\n var newDefaultSourceId = data.defaultSourceId;\n $('#ClientPaymentMethods table tr').each((i, e) => {\n var tr = $(e);\n var thisCardId = resolveAttr(tr, 'data-card-id');\n var badge = tr.find('.badge-default-card');\n var actionsLink = tr.find('.actions-link');\n badge.addClass('d-none');\n actionsLink.removeClass('d-none');\n if (thisCardId === newDefaultSourceId) {\n badge.removeClass('d-none');\n actionsLink.addClass('d-none');\n }\n });\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n Loader.hide();\n });\n }\n }\n }\n });\n }\n function removeCard(cardId) {\n Alerts.confirm({\n title: 'Confirm Delete',\n content: 'Are you sure you want to remove this card?',\n buttons: {\n Cancel() { },\n Delete: {\n btnClass: 'btn-primary',\n action() {\n Loader.show();\n $.post({ url: `/account/billing/deletecard?cardid=${cardId}&userId=${ClientBilling.accountBillingViewModel.seismicUserId}` })\n .done((data) => {\n if (data)\n $(`#ClientPaymentMethods table tr[data-card-id=\"${cardId}\"]`).remove();\n else {\n Alerts.error({ content: 'You cannot delete this card.' });\n }\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n Loader.hide();\n });\n }\n }\n }\n });\n }\n function offerProBono() {\n Alerts.confirm({\n icon: 'fas fa-hands-heart',\n title: 'Confirm Pro-bono offer',\n content() {\n let html = '';\n html += '

This will convert this client\\'s account to pro-bono';\n if (ClientBilling.accountBillingViewModel.isSubscribed) {\n html += ',';\n html += ' and will cancel their current subscription.';\n }\n html += '

';\n if (ClientBilling.accountBillingViewModel.isSubscribed) {\n html += '

Would you like to issue a refund on the clients latest payment?';\n html += '

';\n html += '
' +\n '' +\n '' +\n '
';\n html += '
' +\n '' +\n '' +\n '
';\n html += '
' +\n '' +\n '' +\n '
';\n html += '
';\n html += '

';\n }\n return html;\n },\n buttons: {\n Cancel: {\n text: 'Cancel',\n btnClass: 'btn-default',\n action() { }\n },\n Offer: {\n text: ' Offer',\n btnClass: 'btn-primary',\n action() {\n Loader.show();\n var refundType = \"norefund\";\n var selected = $(\"input[type='radio'][name='refundamount']:checked\");\n if (selected.length > 0) {\n refundType = selected.val();\n }\n $.post({ url: `/account/billing/offerprobono?userId=${userId}&refundType=${refundType}` })\n .done((data) => {\n Errors.respondToResponse(data, () => {\n window.location.reload();\n });\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n });\n }\n }\n }\n });\n }\n function revokeProBono() {\n Alerts.confirm({\n icon: 'fas fa-hand-paper',\n title: 'Confirm Pro-bono revocation',\n content() {\n let html = '';\n html += '

Are you sure you want to revoke this client\\'s pro-bono privilege?

';\n html += 'This action will not resubscribe the client to any subscription.';\n return html;\n },\n buttons: {\n Cancel: {\n text: 'Cancel',\n btnClass: 'btn-default',\n action() { }\n },\n Offer: {\n text: ' Revoke',\n btnClass: 'btn-warning',\n action() {\n Loader.show();\n $.post({ url: `/account/billing/revokeprobono?userId=${userId}` })\n .done((data) => {\n Errors.respondToResponse(data, () => {\n window.location.reload();\n });\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n });\n }\n }\n }\n });\n }\n function payLatestInvoice() {\n Loader.show();\n $.post({ url: `/account/billing/paylatestinvoice?userId=${userId}` })\n .done(data => {\n Logger.log(data);\n if (validObj(data)) {\n if (validObj(data.error) && data.error.length > 0) {\n Toasts.error(new Toasts.ToastOptions(data.error));\n Loader.hide();\n return;\n }\n window.location.reload();\n return;\n }\n Toasts.error(new Toasts.ToastOptions(genericErrorMsg));\n }).fail((e) => {\n Logger.log(e);\n Toasts.error(new Toasts.ToastOptions(genericErrorMsg));\n Loader.hide();\n });\n }\n ClientBilling.payLatestInvoice = payLatestInvoice;\n function subscribeFromRevokedProbono() {\n Loader.show();\n $.get(`/account/billing/subscribefromrevokedprobono`)\n .done((response) => {\n window.location.reload();\n });\n }\n function resubscribe() {\n if (ClientBilling.accountBillingViewModel.isSubscribed)\n return;\n const isWithinCancellationWindow = ClientBilling.accountBillingViewModel.isWithinCancellationWindow;\n const resubAction = (sameCoach) => {\n Loader.show();\n $.post({ url: `/account/billing/resubscribe?userId=${userId}&sameCoach=${sameCoach}&requestingAlumniOffer=${RequestingAlumniOffer}` })\n .done((data) => {\n Logger.log(data);\n if (validObj(data)) {\n if (validObj(data.error) && data.error.length > 0) {\n Toasts.error(new Toasts.ToastOptions(data.error));\n Loader.hide();\n return;\n }\n Seismic.sendIntroStepEvent('Resubscribe');\n Loader.hide();\n Alerts.confirm({\n icon: 'fas fa-redo',\n title: 'Program Reintroduction',\n content: 'We now require you to step through our introduction wizard again to make sure all of your data is up to date.',\n buttons: {\n ok: {\n text: 'Ok',\n btnClass: 'btn-primary',\n action() {\n window.location.href = '/client';\n }\n }\n }\n });\n return;\n }\n Toasts.error(new Toasts.ToastOptions(genericErrorMsg));\n }).fail((e) => {\n Logger.log(e);\n Toasts.error(new Toasts.ToastOptions(genericErrorMsg));\n Loader.hide();\n });\n };\n if (!isWithinCancellationWindow) {\n resubAction(false);\n }\n else {\n Alerts.confirm({\n icon: 'far fa-undo',\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n closeIcon: true,\n title: 'Resubscribe',\n backgroundDismiss: true,\n content() {\n let html;\n if (isWithinCancellationWindow) {\n html = '

How would you like to resubscribe?

';\n html += '';\n html += '';\n html += ``;\n html += '';\n html += '';\n html += '';\n html += '';\n html += '
 Make a fresh startStart over with a new coach and a new program.
 Keep my coachPick up where you left off and continue working with the same coach.
';\n }\n else {\n html =\n 'The subscription end date will be set immediately. The client will be refunded for any remaining amount of time.';\n }\n return html;\n },\n buttons: {\n freshStart: {\n btnClass: 'btn-default',\n text: ' Fresh start',\n action(btn) {\n resubAction(false);\n }\n },\n sameCoach: {\n btnClass: 'btn-primary',\n text: ' Keep my coach',\n action(btn) {\n resubAction(true);\n }\n },\n }\n });\n }\n }\n function adminUndoCancellation() {\n Alerts.confirm({\n icon: 'fas fa-undo',\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n title: 'Confirm Undo Cancellation',\n backgroundDismiss: true,\n content: 'This will reinstate a subscription for this client.
Do you wish to undo this cancellation?',\n buttons: {\n cancel: {\n text: 'No',\n action() { }\n },\n planEnd: {\n btnClass: 'btn-primary',\n text: ' Undo',\n action() {\n undoCancel(true);\n }\n }\n }\n });\n }\n function undoCancel(adminOverride = false) {\n Loader.show();\n var errorMessage = genericErrorMsg;\n var showError = msg => {\n Toasts.error(new Toasts.ToastOptions(msg));\n };\n $.post({ url: `/account/billing/undocancel?userId=${userId}&adminOverride=${adminOverride}` })\n .done(data => {\n if (data === undefined || data === null) {\n if (data.Error.length <= 0)\n errorMessage += ` Reference code ${data.Error}.`;\n showError(errorMessage);\n Loader.hide();\n return;\n }\n window.location.reload();\n }).fail((e) => {\n Logger.log(e);\n showError(errorMessage);\n Loader.hide();\n });\n }\n function tabLoaded(tab) {\n UtcParser.init();\n ;\n ToolTips.init();\n ActionLinks.init();\n }\n function loadTab_invoices(tab) {\n Logger.log(`Getting invoices for user ${ClientBilling.accountBillingViewModel.seismicUserId}`);\n $.get(`/account/billing/invoices?userId=${ClientBilling.accountBillingViewModel.seismicUserId}`)\n .done(data => {\n Logger.log('ClientBilling: invoices response successful');\n var cardSectionBody = tab.find('.card-section-body');\n cardSectionBody.html(data);\n cardSectionBody.parent().removeClass('disabled');\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n tabLoaded(tab);\n });\n }\n function loadTab_charges(tab) {\n Logger.log(`Getting charges for user ${ClientBilling.accountBillingViewModel.seismicUserId}`);\n $.get(`/account/billing/charges?userId=${ClientBilling.accountBillingViewModel.seismicUserId}`)\n .done(data => {\n Logger.log('ClientBilling: charges response successful');\n var cardSectionBody = tab.find('.card-section-body');\n cardSectionBody.html(data);\n cardSectionBody.parent().removeClass('disabled');\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n tabLoaded(tab);\n $('.btnRefundCharge').on('click', e => {\n e.preventDefault();\n var chargeId = resolveAttr($(e.target), 'data-charge-id');\n var chargeAmount = +resolveAttr($(e.target), 'data-charge-amount');\n var refundedAmount = +resolveAttr($(e.target), 'data-charge-refunded');\n refundCharge(chargeId, chargeAmount, refundedAmount);\n });\n });\n }\n function loadTab_referrals(tab) {\n Logger.log(`Getting referral for user ${ClientBilling.accountBillingViewModel.seismicUserId}`);\n $.get(`/account/billing/referrals?userId=${ClientBilling.accountBillingViewModel.seismicUserId}`)\n .done(data => {\n Logger.log('ClientBilling: referrals response successful');\n var cardSectionBody = tab.find('.card-section-body');\n cardSectionBody.html(data);\n cardSectionBody.parent().removeClass('disabled');\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n tabLoaded(tab);\n });\n }\n function loadTab_methods(tab) {\n var cardSectionBody = tab.find('.card-section-body.payment-methods-body');\n cardSectionBody.parent().addClass('disabled');\n Logger.log(`Getting methods for user ${ClientBilling.accountBillingViewModel.seismicUserId}`);\n $.get(`/account/billing/methods?userId=${ClientBilling.accountBillingViewModel.seismicUserId}`)\n .done(data => {\n Logger.log('ClientBilling: methods response successful');\n cardSectionBody.html(data);\n cardSectionBody.parent().removeClass('disabled');\n $('.btn-set-default-card').on('click', function (e) {\n e.preventDefault();\n const cardId = resolveAttr($(this), 'data-card-id');\n WebuiPopovers.hideAll();\n setDefaultCard(cardId);\n });\n $('.btn-remove-card').on('click', function (e) {\n e.preventDefault();\n const cardId = resolveAttr($(this), 'data-card-id');\n WebuiPopovers.hideAll();\n removeCard(cardId);\n });\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n tabLoaded(tab);\n });\n }\n function loadTab(tab, forceLoad = false) {\n Logger.withGroup('ClientBilling: loadTab', () => {\n const tabId = tab.attr('id');\n const tabPreviouslyLoaded = parseBool(resolveAttrWithDefault(tab, 'data-tab-dataloaded', 'false'));\n if (tabPreviouslyLoaded && !forceLoad)\n return;\n tab.attr('data-tab-dataloaded', 'true');\n Logger.log(`Loading tab: ${tabId}`);\n switch (tabId) {\n case 'subscription-tab':\n break;\n case 'invoices-tab':\n loadTab_invoices(tab);\n break;\n case 'charges-tab':\n loadTab_charges(tab);\n break;\n case 'methods-tab':\n loadTab_methods(tab);\n break;\n case 'referrals-tab':\n loadTab_referrals(tab);\n break;\n }\n });\n }\n function refundCharge(chargeId, chargeAmount, refundedAmount) {\n var maxRefundAmount = (chargeAmount - refundedAmount);\n Alerts.confirm({\n icon: 'fas fa-reply',\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n title: 'Refund Payment',\n backgroundDismiss: true,\n content() {\n let html = '

Refunds take 5-10 days to appear on a clients statement.

';\n html += '';\n html += ``;\n if (refundedAmount > 0)\n html += `This payment has been partially refunded $${refundedAmount}. You can refund a maximum of $${maxRefundAmount}`;\n return html;\n },\n buttons: {\n Cancel: { text: 'Cancel' },\n EdnTrial: {\n btnClass: 'btn-success',\n text: ' Refund payment',\n isHidden: false,\n isDisabled: false,\n action(btn) {\n Loader.show();\n const amount = +$('#txt_RefundAmount').val() * 100;\n if (amount <= 0) {\n Alerts.error({ title: 'Error', content: 'Amount must be greater than $0.' });\n Loader.hide();\n return false;\n }\n $.post({ url: `/account/billing/refundcharge?userId=${userId}&chargeId=${chargeId}&amount=${amount}` })\n .done((data) => {\n Loader.hide();\n if (data.requestOk) {\n Toasts.success(new Toasts.ToastOptions(\"Payment refunded\"));\n loadTab_charges($('#charges-tab'));\n }\n else {\n var exceptions = '';\n loop(data.exceptions, ex => {\n exceptions += `${ex.message}
`;\n });\n Alerts.error({ title: 'Error', content: exceptions });\n }\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n });\n return true;\n }\n }\n }\n });\n }\n function endTrialDays() {\n Alerts.confirm({\n icon: 'fas fa-ban',\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n title: 'End Trial',\n backgroundDismiss: true,\n content() {\n let html = '

This will end the free trialing period. And immediately reinstate the client\\'s subscription.
';\n html += 'Do you wish to continue?

';\n return html;\n },\n buttons: {\n Cancel: { text: 'Cancel' },\n EdnTrial: {\n btnClass: 'btn-danger',\n text: ' End Trial',\n isHidden: false,\n isDisabled: false,\n action(btn) {\n Loader.show();\n $.post({ url: `/account/billing/endtrialperiod?userId=${userId}` })\n .done((data) => {\n Errors.respondToResponse(data, () => {\n window.location.reload();\n });\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n });\n return true;\n }\n }\n }\n });\n }\n function upgradeToWagPlus(newSubscriptionCost) {\n Alerts.confirm({\n icon: 'fas fa-check-circle',\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n title: 'Upgrade to Plus',\n backgroundDismiss: true,\n content() {\n let html = '

This will upgrade your monthly subscription to the WAG Nutrition Coaching Plus plan, unlocking monthly video check-ins. Your new monthly subscription will change to ' + newSubscriptionCost + '. Any difference will be prorated.

';\n html += 'Do you wish to upgrade?';\n return html;\n },\n buttons: {\n Cancel: { text: 'No' },\n Upgrade: {\n btnClass: 'btn-success',\n text: 'Upgrade',\n isHidden: false,\n isDisabled: false,\n action(btn) {\n Loader.show();\n $.post({ url: `/account/billing/upgradetowagplus?userId=${userId}` })\n .done((data) => {\n var dataStr = JSON.parse(data);\n if (dataStr.length <= 0) {\n window.location.reload();\n }\n else {\n Loader.hide();\n Alerts['error']({\n content: dataStr,\n buttons: {\n ok: { text: 'Ok' }\n }\n });\n }\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n });\n return true;\n }\n }\n }\n });\n }\n function downgradeToWagEssentials(newSubscriptionCost) {\n Alerts.confirm({\n icon: 'fas fa-check-circle',\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n title: 'Switch to Essentials',\n backgroundDismiss: true,\n content() {\n let html = '

This will switch your monthly subscription to the WAG Nutrition Coaching Essentials plan. Your new monthly subscription will change to ' + newSubscriptionCost + '. Any difference will be prorated.

';\n html += 'Do you wish to switch?';\n return html;\n },\n buttons: {\n Cancel: { text: 'No' },\n Upgrade: {\n btnClass: 'btn-primary',\n text: 'Switch',\n isHidden: false,\n isDisabled: false,\n action(btn) {\n Loader.show();\n $.post({ url: `/account/billing/downgradetowagessentials?userId=${userId}` })\n .done((data) => {\n var dataStr = JSON.parse(data);\n if (dataStr.length <= 0) {\n window.location.reload();\n }\n else {\n Loader.hide();\n Alerts['error']({\n content: dataStr,\n buttons: {\n ok: { text: 'Ok' }\n }\n });\n }\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n });\n return true;\n }\n }\n }\n });\n }\n function validateAndRedeemReferral() {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n type: 'blue',\n icon: 'far fa-users-crown',\n title: 'Apply Referral',\n backgroundDismiss: true,\n content() {\n let html = '

You may apply a referral credit to this user. Both parties will receive their applicable credits on their next billing statement.

';\n html += '

What is the referral code or email of the client who referred this user?

';\n html += '';\n return html;\n },\n buttons: {\n Cancel: {\n text: 'Cancel',\n btnClass: 'btn-default',\n action() { }\n },\n Offer: {\n text: ' Apply',\n btnClass: 'btn-primary',\n isHidden: false,\n isDisabled: false,\n action(btn) {\n Loader.show();\n const referralCode = $('#txt_ValidateAndRedeemReferralCode').val();\n $.post({ url: `/account/billing/validateandredeemreferral?userId=${userId}&referralCode=${referralCode}` })\n .done((data) => {\n Errors.respondToResponse(data, () => {\n window.location.reload();\n }, () => {\n showReferralResponseCodeError(data.responseCode);\n });\n }).fail((e) => {\n Logger.log(e);\n }).always(() => { Loader.hide(); });\n return true;\n }\n }\n }\n });\n }\n function offerFreeDays() {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n type: 'blue',\n icon: 'fas fa-hands-heart',\n title: 'Offer Free Days',\n backgroundDismiss: true,\n content() {\n let html = '

This will 1. Refund the client any remaining time on their current subscription 2. Introduce a new subscription with a free trial period. 3. Reinstate the current paid subscription at the end of the trial.

';\n html += '

How many free days would you like to give them?

';\n html += '';\n return html;\n },\n buttons: {\n Cancel: {\n text: 'Cancel',\n btnClass: 'btn-default',\n action() { }\n },\n Offer: {\n text: ' Offer',\n btnClass: 'btn-primary',\n isHidden: false,\n isDisabled: false,\n action(btn) {\n Loader.show();\n const days = +$('#txt_OfferFreeDays').val();\n if (days > 0) {\n $.post({ url: `/account/billing/offerfreedays?userId=${userId}&days=${days}` })\n .done((data) => {\n Errors.respondToResponse(data, () => {\n window.location.reload();\n });\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n });\n }\n return true;\n }\n }\n }\n });\n }\n function applyWagPass(code) {\n Loader.show();\n $.post({ url: `/wagpass/code/${code}/redeem` })\n .done((redemptionResponse) => {\n window.location.href = '/account/billing';\n Loader.hide();\n if (redemptionResponse.responseCode === \"00\") {\n Alerts.confirm({\n title: 'WAG Pass Applied',\n content: '',\n buttons: {\n Ok: {\n text: 'Ok',\n btnClass: 'btn-primary',\n action() {\n window.location.href = '/account/billing';\n }\n }\n }\n });\n }\n else {\n if (redemptionResponse.responseCode === 'b262') {\n Alerts.error({\n title: 'Error',\n content: redemptionResponse.verificationResult.responseMessage,\n buttons: {\n Ok() { }\n }\n });\n }\n else {\n Alerts.error({\n title: 'Error',\n content: `There was an error redeeming that code: ${redemptionResponse.responseMessage} Please contact support@getseismic.com with code ${redemptionResponse.responseCode}.`,\n buttons: {\n Ok() { }\n }\n });\n }\n }\n }).fail((e) => {\n Logger.log(e);\n Loader.hide();\n Alerts.error({\n title: 'Error',\n content: `There was an error redeeming that code. Please contact support@getseismic.com with code 85e3.`,\n buttons: {\n Ok() { }\n }\n });\n });\n }\n function loaded() {\n $('#btnRedeemWagPass').on('click', function (e) {\n e.preventDefault();\n var passCode = $('#txtWagPassCode').val();\n if (passCode.length <= 0)\n return;\n Loader.show();\n validateWagPassCode(passCode, (response) => {\n Loader.hide();\n if (response.responseCode === '00') {\n var content = '
' +\n '
WAG Pass
' +\n `
${response.purchase.wagPass.titleStr}
` +\n `
${response.purchase.wagPass.passLengthMonths} Months
` +\n `
Applying this pass will extend your subscription till ${response.passEndDateStr}
`;\n if (response.redemptionResult === 2)\n content += '
Applying this pass will downgrade your current subscription. This action cannot be undone.
';\n content += '
Do you want to redeem this pass to your account?
';\n content += '
';\n Alerts.confirm({\n title: 'Confirm Redemption',\n content: content,\n buttons: {\n Cancel: {\n text: 'Cancel',\n btnClass: 'btn-secondary',\n action() {\n }\n },\n Redeem: {\n text: 'Redeem',\n btnClass: 'btn-primary',\n action() {\n applyWagPass(passCode);\n }\n }\n }\n });\n }\n }, () => { Loader.hide(); });\n });\n $('#btnUpgradeToPlus').on('click', e => {\n e.preventDefault();\n console.log(WagPlusPlanDetails);\n upgradeToWagPlus(WagPlusPlanDetails.plusAmountFormatted);\n });\n $('#btnDowngradeToEssentials').on('click', e => {\n e.preventDefault();\n console.log(WagPlusPlanDetails);\n downgradeToWagEssentials(WagPlusPlanDetails.defaultAmountFormatted);\n });\n $('#btnFixPlanMismatch').on('click', e => {\n e.preventDefault();\n adminFixPlan();\n });\n $('#selPlans').on('change', e => {\n var $o = $(e.currentTarget);\n var currentPlan = resolveAttr($o, 'data-current-plan');\n var selectedPlan = $o.val();\n if (selectedPlan.length <= 0 || selectedPlan.is(currentPlan))\n return;\n adminChangePlan(selectedPlan);\n });\n $('#btnAdminResubscribe').on('click', e => {\n e.preventDefault();\n adminResubscribe();\n });\n $('#btnConvertToAffiliateFee').on('click', e => {\n e.preventDefault();\n adminConvertToSeismicAffiliateModel();\n });\n $('#btn_OfferFreeDays').on('click', e => {\n e.preventDefault();\n offerFreeDays();\n });\n $('#btn_AdminCancelSubscription').on('click', e => {\n e.preventDefault();\n adminCancelSubscription();\n });\n $('#btn_AdminUndoCancellation').on('click', e => {\n e.preventDefault();\n adminUndoCancellation();\n });\n $('#btn_EndTrialDays').on('click', e => {\n e.preventDefault();\n endTrialDays();\n });\n $('#btnApplyReferral').on('click', e => {\n e.preventDefault();\n validateAndRedeemReferral();\n });\n $('button.btn-add-card').on('click', e => {\n e.preventDefault();\n var setAsDefault = $('#chx_setDefaultCard').is(':checked');\n var payCurrentInvoice = $('#chx_payCurrentInvoice').is(':checked');\n addCard(setAsDefault, payCurrentInvoice);\n });\n $('a[data-toggle=\"tab\"]').on('shown.bs.tab', e => {\n var tabId = resolveAttr($(e.target), 'href');\n var tab = $(tabId);\n loadTab(tab);\n });\n $('.btn-undo-cancel').on('click', e => {\n e.preventDefault();\n undoCancel();\n });\n $('.btn-resubscribe').on('click', e => {\n e.preventDefault();\n resubscribe();\n });\n $('.btn-subscribeFromRevokedProbono').on('click', e => {\n e.preventDefault();\n subscribeFromRevokedProbono();\n });\n $('#btnOfferClientProBono').on('click', e => {\n e.preventDefault();\n offerProBono();\n });\n $('#btnRevokeClientProBono').on('click', e => {\n e.preventDefault();\n revokeProBono();\n });\n $('#btn_ApplyGiftCardCode').on('click', e => {\n e.preventDefault();\n var val = $('#txt_GiftCardId').val();\n if (val.length <= 0)\n return;\n redeemGiftCardCode(val);\n });\n $('#btn_CopyReferralLink').on('click', e => {\n e.preventDefault();\n $('#txt_ReferralUrl').text().select();\n document.execCommand('copy');\n });\n $('#btn_EditReferralLink').on('click', e => {\n e.preventDefault();\n $('#txt_ReferralUrl').hide();\n $('#btn_EditReferralLink').hide();\n $('#btn_CopyReferralLink').hide();\n $('#btn_ShowReferralLink').show();\n $('#ReferralUrl').show();\n });\n $('.btn-cancel-subscription').on('click', e => {\n e.preventDefault();\n cancelSubscription();\n });\n $('.btn-start-cancel-retention').on('click', e => {\n e.preventDefault();\n sendCancellationEvent('Start Cancellation');\n startCancelFlow();\n });\n $('.btnStopTheCancelFlow').on('click', e => {\n e.preventDefault();\n $('#subscription-cancel').hide();\n $('#subscription-details').show();\n });\n $('.btnSaveCancelSurveyStep').on('click', e => {\n e.preventDefault();\n if ($('#cancelSurveyStep').valid()) {\n Loader.show();\n ClientSurvey.saveCurrentStep(() => {\n HotStepper.next();\n Loader.hide();\n });\n }\n });\n $('.btnFinalizeCancellation').on('click', e => {\n e.preventDefault();\n sendCancellationEvent('Finalize Cancellation');\n HotStepper.next();\n });\n $('.btnFinalizeCancellationUndo').on('click', e => {\n e.preventDefault();\n sendCancellationEvent('Undo Cancellation');\n undoCancel();\n });\n $('.btnStepOptIntoAlumni').on('click', e => {\n e.preventDefault();\n sendCancellationEvent('Accept WAG Lite Offer');\n postAlumniOpt();\n });\n $('.btnAcceptAlumniDiscount').on('click', e => {\n e.preventDefault();\n sendCancellationEvent('Accept WAG Lite Discount');\n acceptAlumniCancellationOffer();\n window.location.reload();\n });\n }\n function startCancelFlow() {\n $('#subscription-cancel').show();\n $('#subscription-details').hide();\n }\n function initStripe() {\n StripeElements.init();\n $('#CardElementWrapper iframe').attr('title', '');\n }\n function sendCancellationEvent(step) {\n var aiWhenReady = new WhenReady(new WhenReadyOptions(window, 'appInsights', () => {\n appInsights.trackEvent({\n name: `WAG Cancellation - ${step}`,\n properties: {\n userId: userId,\n alumniStatus: alumniStatus,\n membershipMonth: membershipMonth,\n cancellationFlow: cancellationFlow\n }\n });\n appInsights.flush();\n }));\n }\n ClientBilling.sendCancellationEvent = sendCancellationEvent;\n function init(simpleStripeDetails = undefined, wagPlusPlanDetails = undefined, cancellationSurveyId, affiliateId, requestingAlumniOffer = false) {\n RequestingAlumniOffer = requestingAlumniOffer;\n ClientBilling.accountBillingViewModel = simpleStripeDetails;\n WagPlusPlanDetails = wagPlusPlanDetails;\n console.log('WAG PLUS PLAN DETAILS', WagPlusPlanDetails);\n userId = ClientBilling.accountBillingViewModel.seismicUserId;\n alumniStatus = ClientBilling.accountBillingViewModel.alumniInfo == null ? -1 : ClientBilling.accountBillingViewModel.alumniInfo.alumniStatus;\n membershipMonth = ClientBilling.accountBillingViewModel.subscriptionLengthInMonths;\n cancellationFlow = ClientCancellationFlow[ClientBilling.accountBillingViewModel.cancellationFlow];\n initStripe();\n ClientSurvey.init(cancellationSurveyId);\n var opts = new HotStepper.Options();\n opts.StartStep = 0;\n opts.Validate = false;\n opts.ShowPreviousOnFirstStep = false;\n opts.PreviousBtnSelector = '.btnHotStepPrevious';\n opts.NextBtnSelector = '.btnHotStepNext';\n opts.IndicatorSelector = '';\n opts.DefaultActionButtonsLabel = false;\n opts.onNext = (stepState) => {\n if (ClientBilling.accountBillingViewModel.cancellationFlow != 4 && stepState.nextStepIndex === stepState.totalSteps - 1) {\n postCancellation();\n }\n };\n HotStepper.init(opts);\n if (affiliateId === 1 && ClientBilling.accountBillingViewModel.cancellationFlow == 4)\n startCancelFlow();\n $(() => { loaded(); });\n }\n ClientBilling.init = init;\n ;\n})(ClientBilling || (ClientBilling = {}));\n\nclass UserMood {\n energy = 0;\n hunger = 0;\n mood = 0;\n stress = 0;\n}\nclass UserMetrics {\n waist = 0;\n chest = 0;\n hips = 0;\n total = 0;\n}\nclass CheckInData {\n checkInId;\n summary;\n moodNow;\n moodPrev;\n metricsNow;\n metricsPrev;\n gender;\n canEdit;\n}\nvar ClientCheckIn;\n(function (ClientCheckIn) {\n class SliderOptions {\n disable = false;\n min = 1;\n max = 10;\n step = 1;\n grid;\n grid_num = 4;\n grid_snap = true;\n force_edges = true;\n onFinish;\n onChange;\n onUpdate;\n }\n class MoodSliderOptions extends SliderOptions {\n }\n class MetricsSliderOptions extends SliderOptions {\n prettify;\n }\n var data;\n var clientCheckInDebounce;\n var defaultMoodOptions;\n var defaultMetricsOptions;\n var metricsVariance;\n var isCm;\n var uiViewModel;\n var metricsSetupFinished = false;\n function showCheckInUpdatedToast() {\n iziToast.success({\n title: '',\n displayMode: 1,\n progressBar: false,\n position: 'topRight',\n message: 'Check-in updated.'\n });\n }\n function pushMoodOrMetricValue(propertyName, value, success, error) {\n clientCheckInDebounce.push(() => {\n $.post({\n url: '/client/checkin/updatevalue',\n data: {\n \"CheckInId\": data.checkInId,\n \"PropertyName\": propertyName,\n \"PropertyValue\": value\n }\n }).done(data => {\n if (success)\n success(data);\n }).fail((e) => {\n if (error)\n error(e);\n });\n });\n }\n function metricsUpdated(e) {\n if (!metricsSetupFinished)\n return;\n pushMoodOrMetricValue(`Metrics_${e.input.attr('id').toTitleCase()}`, isCm ? toInches(e.input.val()).toString() : e.input.val().toString(), data => {\n showCheckInUpdatedToast();\n }, err => {\n Logger.log(err);\n });\n }\n function moodUpdated(e) {\n pushMoodOrMetricValue(`Rate_${e.input.attr('id').toTitleCase()}`, e.input.val().toString(), data => {\n showCheckInUpdatedToast();\n }, err => {\n Logger.log(err);\n });\n }\n function getDefaultMoodValue(moodType) {\n const currentValue = validObj(data.moodNow) ? +data.moodNow[moodType] : 0;\n const previousValue = validObj(data.moodPrev) ? +data.moodPrev[moodType] : 0;\n if (currentValue > 0)\n return currentValue;\n if (previousValue > 0)\n return previousValue;\n return 1;\n }\n function setupMoodSlider(moodType) {\n var $mood = $(`#${moodType}`);\n if ($mood.length <= 0) {\n Logger.log('Could not find any input sliders for mood: ' + moodType + '.');\n return;\n }\n $(`#${moodType}`).ionRangeSlider(defaultMoodOptions);\n const data = $(`#${moodType}`).data('ionRangeSlider');\n data.update({ from: getDefaultMoodValue(moodType) });\n }\n function showCustomize($btn) {\n const slider = $btn.parent().find('.metrics-input-slider');\n const customizeBox = $btn.parent().find('.slider-input-customize');\n slider.css({ display: 'none' });\n customizeBox.css({ display: 'flex' });\n $btn.html('Set');\n }\n function hideCustomize($btn) {\n const metricType = resolveAttr($($btn.parent()), 'data-metric-type');\n Logger.withGroup(`Setting custom value for ${metricType}`, () => {\n const slider = $btn.parent().find('.metrics-input-slider');\n const customizeBox = $btn.parent().find('.slider-input-customize');\n const input = $btn.parent().find(`#txtInput_${metricType}`);\n let newValue = +input.val();\n Logger.log(`Initial value: ${newValue}`);\n newValue = isCm\n ? +roundTo(newValue, 1)\n : +roundToEighth(newValue);\n if (newValue <= 0)\n newValue = 1;\n let minValue = newValue - metricsVariance;\n const maxValue = newValue + metricsVariance;\n if (minValue <= 0)\n minValue = 1;\n Logger.log(`New value: ${newValue}`);\n Logger.log(`New min: ${minValue}`);\n Logger.log(`New max: ${maxValue}`);\n input.val(newValue);\n const rangeSliderData = $(`#${metricType}`).data('ionRangeSlider');\n rangeSliderData.update({\n min: minValue,\n max: maxValue,\n from: newValue\n });\n slider.css({ display: 'block' });\n customizeBox.css({ display: 'none' });\n $btn.html('Customize');\n });\n }\n function toggleCustomize($btn) {\n const open = $btn.parent().find('.slider-input-customize').css('display') === 'flex';\n if (open) {\n hideCustomize($btn);\n }\n else {\n showCustomize($btn);\n }\n }\n function roundMetricValue(n) {\n return isCm\n ? +roundTo(toCentimeters(n), 1)\n : +roundToQuarter(n);\n }\n function getDefaultMetricValue(metric, defaultMaleMetric, defaultFemaleMetric) {\n Logger.group('Getting default metric values');\n const currentValue = validObj(data.metricsNow) ? +data.metricsNow[metric] : 0;\n Logger.log(`Current value: ${currentValue}`);\n const previousValue = validObj(data.metricsPrev) ? +data.metricsPrev[metric] : 0;\n Logger.log(`Previous value: ${previousValue}`);\n if (currentValue > 0) {\n const currentRounded = roundMetricValue(currentValue);\n Logger.log(`Rounded value: ${currentRounded}`);\n Logger.groupEnd();\n return currentRounded;\n }\n if (previousValue > 0) {\n const previousRounded = roundMetricValue(previousValue);\n Logger.log(`Rounded value: ${previousRounded}`);\n Logger.groupEnd();\n return previousRounded;\n }\n const defaultMetric = data.gender === Gender.male ? defaultMaleMetric : defaultFemaleMetric;\n Logger.groupEnd();\n return roundMetricValue(defaultMetric);\n }\n function setupMetricSlider(metricType, defaultMaleMetric, defaultFemaleMetric) {\n Logger.withGroup(`Setting up ${metricType} metric sliders`, () => {\n if ($(`.slider-input-box.metrics[data-metric-type=\"${metricType}\"]`).length <= 0) {\n Logger.log('Could not find any input sliders for metric: ' + metricType + '.');\n return;\n }\n ;\n const defaultValue = getDefaultMetricValue(metricType, defaultMaleMetric, defaultFemaleMetric);\n const minValue = (defaultValue - metricsVariance);\n const maxValue = (defaultValue + metricsVariance);\n const txtInput = $(`#txtInput_${metricType}`);\n const setButton = txtInput.parents(`[data-metric-type=\"${metricType}\"]`).find('button.btnCustomize');\n Logger.log(`value: ${defaultValue}`);\n Logger.log(`minValue: ${minValue}`);\n Logger.log(`maxValue: ${maxValue}`);\n defaultMetricsOptions.min = minValue;\n defaultMetricsOptions.max = maxValue;\n $(`#${metricType}`).ionRangeSlider(defaultMetricsOptions);\n const slider = $(`#${metricType}`).data('ionRangeSlider');\n slider.update({ from: defaultValue });\n txtInput.val(defaultValue);\n const txtInputOptions = {\n numeral: true,\n stripLeadingZeroes: false,\n numeralDecimalScale: 3,\n numeralThousandsGroupStyle: 'none',\n numeralPositiveOnly: true\n };\n txtInput.on('keyup', e => {\n if (e.keyCode === 13) {\n setButton.click();\n return false;\n }\n return true;\n });\n const cleave = new Cleave(`#txtInput_${metricType}`, txtInputOptions);\n });\n }\n function loaded() {\n Logger.withGroup('ClientCheckin: loaded', () => {\n Logger.log(data);\n uiViewModel = {\n summaryInput: ko.observable(data.summary),\n submitDisabled: ko.pureComputed(() => {\n var me = uiViewModel;\n if (!me.chx_ack_noSummary_visible())\n return false;\n return !me.chx_ack_noSummary_checked();\n }),\n chx_ack_noSummary_checked: ko.observable(),\n chx_ack_noSummary_visible: ko.pureComputed(() => {\n var me = uiViewModel;\n var input = me.summaryInput();\n if (input === null)\n return true;\n return me.summaryInput().length <= 0;\n })\n };\n ko.applyBindings(uiViewModel);\n defaultMoodOptions = new MoodSliderOptions();\n defaultMoodOptions.disable = !data.canEdit;\n defaultMoodOptions.grid = data.canEdit;\n defaultMoodOptions.onFinish = e => { moodUpdated(e); };\n defaultMoodOptions.onChange = e => { };\n defaultMetricsOptions = new MetricsSliderOptions();\n var preferredLengthDisplay = UnitOutputs.getPreferredLengthDisplay();\n Logger.log(`Preferred length display: ${preferredLengthDisplay}`);\n isCm = preferredLengthDisplay === 'cm';\n metricsVariance = isCm ? 6 : 3;\n defaultMetricsOptions.disable = !data.canEdit;\n defaultMetricsOptions.step = isCm ? 0.1 : .125;\n defaultMetricsOptions.grid = data.canEdit;\n defaultMetricsOptions.grid_num = 4;\n defaultMetricsOptions.grid_snap = false;\n defaultMetricsOptions.onFinish = e => { metricsUpdated(e); };\n defaultMetricsOptions.onChange = e => { };\n defaultMetricsOptions.onUpdate = e => { metricsUpdated(e); };\n defaultMetricsOptions.prettify = num => num + preferredLengthDisplay;\n setupMoodSlider('mood');\n setupMoodSlider('energy');\n setupMoodSlider('stress');\n setupMoodSlider('hunger');\n var defaultMaleChest = isCm ? toCentimeters(44) : 44;\n var defaultFemaleChest = isCm ? toCentimeters(36) : 36;\n var defaultMaleWaist = isCm ? toCentimeters(40) : 40;\n var defaultFemaleWaist = isCm ? toCentimeters(24) : 24;\n var defaultMaleHips = isCm ? toCentimeters(42) : 42;\n var defaultFemaleHips = isCm ? toCentimeters(30) : 30;\n setupMetricSlider('chest', defaultMaleChest, defaultFemaleChest);\n setupMetricSlider('waist', defaultMaleWaist, defaultFemaleWaist);\n setupMetricSlider('hips', defaultMaleHips, defaultFemaleHips);\n metricsSetupFinished = true;\n $('.slider-input-box .btnCustomize').on('click', function (e) {\n e.preventDefault();\n const me = $(this);\n toggleCustomize(me);\n });\n $('#btnCheckIn').on('click', e => {\n e.preventDefault();\n if (CkEditor.hasPendingChanges()) {\n Loader.hide();\n Alerts.warning({ content: \"We're saving your summary changes. Please try again in a moment.\" });\n return;\n }\n Loader.show();\n $.post({\n url: `/client/checkin/submit/${data.checkInId}`\n }).done(responseData => {\n window.onbeforeunload = null;\n window.location.href = `/client/checkin/${data.checkInId}`;\n }).fail((err) => {\n Loader.hide();\n Logger.log(err);\n });\n });\n if ($('#txt_ClientResponse').is(':visible')) {\n CkEditor.init('#txt_ClientResponse', (value) => {\n if (value === '')\n return;\n $.post({\n url: '/client/checkin/updatevalue',\n data: {\n \"CheckInId\": data.checkInId,\n \"PropertyName\": 'ClientMessage',\n \"PropertyValue\": value\n }\n }).done(data => {\n }).fail((e) => {\n Logger.log(e);\n });\n }, 1500, (value) => {\n uiViewModel.summaryInput(value);\n });\n }\n });\n }\n function init(checkInData) {\n const debounceOptions = new DebounceOptions();\n debounceOptions.IntervalTime = 1000;\n debounceOptions.DebounceId = 'ClientCheckInDebounce';\n clientCheckInDebounce = new Debounce(debounceOptions);\n data = checkInData;\n $(() => { loaded(); });\n }\n ClientCheckIn.init = init;\n ;\n})(ClientCheckIn || (ClientCheckIn = {}));\n\nvar ClientCheckInList;\n(function (ClientCheckInList) {\n function loaded() {\n $('.btn-check-details').on('click', function (e) {\n e.preventDefault();\n const me = $(this);\n const checkInId = resolveAttr(me, 'data-checkin-id');\n Loader.show();\n window.location.href = `/client/checkin/${checkInId}`;\n });\n $('.mood-badge').each((i, e) => {\n var me = $(e);\n var checkInId = resolveAttr(me, 'data-checkin-id');\n me.webuiPopover({ url: `#MoodPop_${checkInId}`, animation: 'pop' });\n });\n $('.metrics-badge').each((i, e) => {\n var me = $(e);\n var checkInId = resolveAttr(me, 'data-checkin-id');\n me.webuiPopover({ url: `#MetricsPop_${checkInId}`, animation: 'pop' });\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n ClientCheckInList.init = init;\n})(ClientCheckInList || (ClientCheckInList = {}));\n\nclass ClientDashboardOptions {\n readOnly;\n userId = 0;\n gender;\n nextCheckInId = 0;\n signUpThankYouUrl;\n}\nclass MindfulnessModel {\n content;\n mindfulnessId;\n posted;\n}\nclass VideoSharingMeta {\n directUrl;\n embedUrl;\n sharingWebsite;\n videoId;\n}\nclass CoachInfoModel {\n assigned;\n avatar;\n coachId;\n firstName;\n fullName;\n lastName;\n location;\n video;\n videoMeta;\n}\nclass NextCheckInStatusModel {\n cardClass;\n checkinButtonDisplay;\n checkinButtonText;\n countdownDisplay;\n disabledMessage;\n futureCheckInDateStr;\n iconClass;\n statusViewDisplay;\n statusViewMissedDisplay;\n statusViewReviewingDisplay;\n title;\n}\nvar ClientDashboard;\n(function (ClientDashboard) {\n var todaysLogDebounce;\n var notesDebounce;\n var isMetric;\n var achievementsTilt = undefined;\n var options;\n function loadClientStats(skipCache = false) {\n var runCountUp = (selectorClass, value) => {\n var $achievement = $(`.achievements .achievement${selectorClass}`);\n var options = new CountUps.RunForItemOptions();\n options.itemObject = $achievement.find('.achievement-value');\n options.end = value;\n CountUps.runForItem(options);\n $achievement.removeClass('loading');\n };\n $.get(`/client/userstats/data?skipCache=${skipCache}`)\n .done(data => {\n runCountUp('.check-ins', data.totalCheckins);\n runCountUp('.experience', data.experience);\n runCountUp('.streak', data.currentCheckInStreak);\n runCountUp('.maxstreak', data.maxCheckInStreak);\n });\n }\n function loadMindfulness() {\n if (options.readOnly)\n return;\n $.get('/client/mindfulness/latest')\n .done((data) => {\n var $Card = $('#MindfulnessCard');\n var $Date = $Card.find('#MindfulnessDate');\n var $Content = $Card.find('.mindfulness-content');\n $Date.attr('data-date', data.posted);\n $Card.removeClass('disabled');\n $Content.html(data.content);\n UtcParser.rebuild();\n });\n }\n function loadCalendarEvents() {\n $.get('/client/calendar/data')\n .done(data => {\n $('#DashCalendar').removeClass('disabled');\n $('#DashCalendarControl').fullCalendar({\n fixedWeekCount: false,\n editable: false,\n contentHeight: 'auto',\n header: {\n left: '',\n center: 'title',\n right: ''\n },\n eventClick(calEvent, jsEvent, view) {\n let eidStr = '';\n if (calEvent.checkInId <= 0)\n eidStr = `&eid=${calEvent.id}`;\n window.location.href = `/client/calendar?d=${calEvent.start.format()}${eidStr}`;\n },\n dayClick(date, jsEvent, view) {\n window.location.href = `/client/calendar?d=${date.format()}`;\n },\n events: data\n });\n });\n }\n function loadCoachInfo(coachInfo) {\n const $coachInfoCard = $('div.card.coach-info-card');\n $coachInfoCard.addClass('disabled');\n const $imgCoachAvatar = $coachInfoCard.find('img.coach-avatar');\n const $coachName = $coachInfoCard.find('.coach-name');\n const $coachLocation = $coachInfoCard.find('.coach-location span');\n const $liCoachVideo = $coachInfoCard.find('#liCoachVideo');\n const $aCoachVideo = $liCoachVideo.find('#CoachVideo');\n $imgCoachAvatar.attr('src', coachInfo.avatar);\n $coachName.html(coachInfo.fullName);\n $coachLocation.html(coachInfo.location);\n if (typeof (coachInfo.videoMeta) !== 'undefined' && coachInfo.videoMeta !== null) {\n $aCoachVideo.attr('data-channel', getSharingWebsiteType(coachInfo.videoMeta.sharingWebsite));\n $aCoachVideo.attr('data-video-id', coachInfo.videoMeta.videoId);\n }\n else {\n $liCoachVideo.addClass('d-none');\n }\n if (options.readOnly)\n return;\n if (coachInfo.assigned) {\n $coachInfoCard.removeClass('disabled');\n }\n else {\n $coachInfoCard.attr('data-disabled-message', 'We\\'re working on pairing you with the perfect coach. We\\'ll alert you when we\\'ve found them.');\n $coachInfoCard.attr('data-disabled-animation', 'building');\n DisabledContainers.rebuildItem('CoachInfoCard');\n }\n $('#CoachVideo').modalVideo();\n $('#btnMessageCoach').on('click', (e) => {\n e.preventDefault();\n ClientMessageThreads.writeNewMessage();\n });\n }\n function getSharingWebsiteType(type) {\n switch (type) {\n case 0:\n return 'youtube';\n case 1:\n return 'vimeo';\n default:\n return '';\n }\n }\n function loadNextCheckInStatus(model) {\n Logger.log('Loading next check-in status html');\n $.post({\n url: '/client/dashboard/nextcheckinstatusmarkup',\n data: model\n })\n .done(html => {\n var $card = $('#NextCheckInStatusCard');\n var $body = $card.find('.card-body');\n $card.attr('data-disabled-animation', '');\n $card.attr('data-disabled-message', model.disabledMessage);\n $card.removeClass('disabled');\n $card.addClass(model.cardClass);\n $body.html(html);\n var $checkinButton = $('#NextCheckInStatusCard .status-view .checkin-button');\n $checkinButton.on('click', e => {\n e.preventDefault();\n var loaderOptions = new LoaderOptions(() => {\n window.location.href = '/client/checkin/';\n });\n Loader.show(loaderOptions);\n });\n hookCountdown(model.futureCheckInDateStr);\n DisabledContainers.rebuildItem('NextCheckInStatusCard');\n ToolTips.init();\n UtcParser.rebuild();\n });\n }\n function loadLatestCheckInInfo() {\n Logger.log('Loading latest check-in info');\n if (options.readOnly)\n return;\n $.get('/client/dashboard/latestcheckininfo')\n .done(data => {\n Logger.withGroup('Latest checkin info', () => {\n Logger.log(data);\n if (data.model.checkIn === null) {\n $('#LatestCheckInInfo').hide();\n }\n else {\n $('#LatestCheckInInfo').replaceWith(data.partialString);\n ToolTips.init();\n UnitOutputs.rebuild();\n UtcParser.rebuild();\n }\n if (options.nextCheckInId > 0)\n loadNextCheckInStatus(data.model.nextCheckInStatus);\n loadCoachInfo(data.model.coachInfo);\n });\n });\n }\n function loadClientProgress() {\n var $progressCard = $('div.card.your-progress');\n var $progressCardActions = $progressCard.find('.card-section-actions');\n var $ProgressCollectingDataMsg = $progressCard.find('#ProgressCollectingDataMsg');\n var $polka_DashboardProgress = $progressCard.find('#polka_DashboardProgress');\n var $ProgressPhotos = $progressCard.find('#ProgressPhotos');\n $.get('/client/progress/data')\n .done(data => {\n var userProgressData = new UserProgressData();\n userProgressData.MetricsCanvasId = 'MetricsCanvas';\n userProgressData.MetricsLabels = data.metricsLabels;\n userProgressData.MetricsChestSeries = data.metricsChestSeries;\n userProgressData.MetricsWaistSeries = data.metricsWaistSeries;\n userProgressData.MetricsHipsSeries = data.metricsHipsSeries;\n userProgressData.MoodCanvasId = 'MoodCanvas';\n userProgressData.MoodLabels = data.moodLabels;\n userProgressData.MoodEnergySeries = data.moodEnergySeries;\n userProgressData.MoodHungerSeries = data.moodHungerSeries;\n userProgressData.MoodMoodSeries = data.moodMoodSeries;\n userProgressData.MoodStressSeries = data.moodStressSeries;\n userProgressData.WeightCanvasId = 'WeightCanvas';\n userProgressData.WeightLabels = data.weightLabels;\n userProgressData.WeightSeries = data.weightSeries;\n userProgressData.AverageWeightSeries = data.averageWeightSeries;\n userProgressData.CaloriesSeries = data.caloriesSeries;\n userProgressData.InitialPhotos = data.initialPhotos;\n userProgressData.LatestPhotos = data.latestPhotos;\n userProgressData.Gender = options.gender === 'male' ? Gender.male : Gender.female;\n UserProgress.init(userProgressData);\n if (data.enoughData) {\n $progressCardActions.removeClass('d-none');\n }\n else {\n $polka_DashboardProgress.addClass('d-none');\n $ProgressPhotos.addClass('d-none');\n $ProgressCollectingDataMsg.removeClass('d-none');\n }\n $progressCard.removeClass('disabled');\n }).fail((e) => {\n console.error(e);\n });\n }\n function loadReferralCard() {\n $('#btnReferralIgnoreCard').on('click', e => {\n e.preventDefault();\n setReferralCardSeen();\n });\n $('#btnReferralLearnMoreCard').on('click', e => {\n e.preventDefault();\n setReferralCardSeen();\n window.location.href = '/account/billing#referrals-tab';\n });\n const hasIgnoredReferralCard = UIState.get('ReferralCard');\n if (hasIgnoredReferralCard == null || parseBool(hasIgnoredReferralCard.value) === false) {\n if (Seismic.Session.Affiliate.ReferralProgramEnabled) {\n $(\"#ReferralProgramCard\").show();\n }\n }\n }\n function setReferralCardSeen() {\n UIState.set('ReferralCard', 'true');\n $('#ReferralProgramCard').fadeOut();\n }\n function pushPropertyValue(logId, propertyName, value, success, error) {\n todaysLogDebounce.push(() => {\n $.post({\n url: '/client/logs/updatevalue',\n data: {\n \"LogId\": logId,\n \"PropertyName\": propertyName,\n \"PropertyValue\": value,\n \"IsTodaysLog\": true\n }\n }).done(data => {\n if (success) {\n success(data);\n var options = new Toasts.ToastOptions();\n options.displayMode = Toasts.ToastDisplayModes.REPLACE;\n options.message = \"Logs updated\";\n Toasts.success(options);\n }\n }).fail((e) => {\n if (error)\n error(e);\n });\n });\n }\n function pushWeightMissed(o) {\n const logId = +resolveAttr(o, 'data-logId');\n const weightMissed = o.is(':checked');\n pushPropertyValue(logId, 'WeightMissed', weightMissed.toString(), null, err => {\n Logger.log(err);\n });\n }\n function pushAteOut(o) {\n const logId = +resolveAttr(o, 'data-logId');\n const ateOut = o.is(':checked') ? 1 : 0;\n pushPropertyValue(logId, 'Metric_Eating_Out', ateOut.toString(), d => {\n }, err => {\n Logger.log(err);\n });\n }\n function setDayType(logId, dayTypeId) {\n pushPropertyValue(logId, 'DayType', dayTypeId.toString(), null, err => {\n Logger.log(err);\n });\n }\n function setCardioCompleted(logId, cardioId) {\n pushPropertyValue(logId, 'CardioCompleted', cardioId.toString(), null, err => {\n Logger.log(err);\n });\n }\n function saveProperty($input) {\n Logger.withGroup('Today: saveProperty', () => {\n let newValue = +$input.val();\n var oldValue = +resolveAttr($input, 'data-oldValue');\n if (newValue === oldValue) {\n Logger.log('New value same as existing value. Not saving.');\n return;\n }\n const propertyName = resolveAttr($input, 'data-propertyName');\n const logId = +resolveAttr($input, 'data-logId');\n Logger.log(`propertyName: ${propertyName}`);\n if (propertyName === 'Weight' && isMetric) {\n newValue = toPounds(newValue);\n }\n Logger.log(`newValue: ${newValue}`);\n pushPropertyValue(logId, propertyName, newValue.toString(), d => {\n $input.removeAttr('data-oldValue');\n }, err => {\n Logger.error(err);\n $input.removeAttr('data-oldValue');\n $input.val(oldValue);\n });\n });\n }\n ClientDashboard.saveProperty = saveProperty;\n function setTodayValue($input) {\n const newVal = +$input.val();\n const oldValue = +resolveAttr($input, 'data-oldvalue');\n if (newVal === oldValue)\n return;\n if (newVal > 0) {\n $input.addClass('hasValue');\n }\n else {\n $input.removeClass('hasValue');\n }\n saveProperty($input);\n }\n function hookTodaysInputs() {\n $('.today-card input.today-item').each((i, input) => {\n const $input = $(input);\n new Cleave(input, {\n numeral: true\n });\n $input.on('focus', e => {\n $input.attr('data-oldValue', $input.val());\n $input.select();\n });\n $input.on('blur', e => {\n setTodayValue($input);\n });\n $input.on('keyup', e => {\n if (e.keyCode === 13) {\n e.preventDefault();\n $input.blur();\n }\n if (e.keyCode === 27) {\n e.preventDefault();\n const oldValue = resolveAttr($input, 'data-oldValue');\n $input.val(oldValue);\n $input.blur();\n }\n });\n });\n }\n function importMacros() {\n Loader.show();\n $.post(`/client/logs/import?startDate=${new moment().format('MM/DD/YYYY')}`)\n .done(response => {\n Loader.hide();\n if (!response.data) {\n Toasts.error(new Toasts.ToastOptions('We couldn\\'t import your data at this time.'));\n return;\n }\n if (response.data.errorMessage) {\n Toasts.error(new Toasts.ToastOptions(response.data.errorMessage));\n return;\n }\n if (!response.data.logs?.length) {\n Toasts.error(new Toasts.ToastOptions('We couldn\\'t import your data at this time.'));\n return;\n }\n const log = response.data.logs[0];\n const macros = ['Protein', 'Carbs', 'Fat', 'Fiber'];\n loop(macros, macro => {\n var value = +log[macro.toLowerCase()];\n if (value > 0) {\n $(`#input_Today${macro}`).val(value);\n $(`#input_Today${macro}`).addClass('hasValue');\n }\n });\n Toasts.success(new Toasts.ToastOptions('Your data has been imported!'));\n })\n .fail(err => {\n Logger.log(err);\n Toasts.error(new Toasts.ToastOptions('We couldn\\'t import your data at this time.'));\n }).\n always(() => {\n Loader.hide();\n });\n }\n function hookCountdown(nextCheckInDateStr) {\n if (typeof (nextCheckInDateStr) === 'undefined' || nextCheckInDateStr === null)\n return;\n if (nextCheckInDateStr.length <= 0)\n return;\n const mDate = new moment(nextCheckInDateStr);\n if (!mDate.isValid)\n return;\n $('.checkinday-countdown').countdown(mDate.toDate(), function (event) {\n $(this).text(event.strftime('%H:%M:%S left'));\n }).on('finish.countdown', () => {\n const checkInCard = $('.checkin-status-card');\n checkInCard.find('.status-view').addClass('d-none');\n checkInCard.find('.status-view.missed').removeClass('d-none');\n });\n }\n function requestTriggeredSurvey() {\n ClientSurvey.RequestTriggeredSurvey((survey) => {\n if (survey === null)\n return;\n var toastOptions = new Toasts.ToastOptions();\n toastOptions.theme = 'light';\n toastOptions.close = false;\n toastOptions.timeout = 0;\n toastOptions.progressBar = false;\n toastOptions.position = Toasts.ToastPositions.TOP_CENTER;\n toastOptions.message = `Help us improve your experience by completing our quick ${survey.surveyName} survey`;\n toastOptions.buttons = [\n ['No Thanks', (instance, toast) => {\n instance.hide({\n transitionOut: 'fadeOutUp'\n }, toast, 'buttonName');\n }],\n ['Let\\'s go!', (instance, toast) => {\n const loaderOptions = new LoaderOptions(() => {\n window.location.href = `/survey/${survey.surveyId}`;\n });\n Loader.show(loaderOptions);\n }, true]\n ];\n toastOptions.onClosed = () => {\n ClientSurvey.IgnoreSurvey(survey.surveyId);\n };\n Toasts.info(toastOptions);\n }, err => {\n Logger.log(err);\n });\n }\n function loaded() {\n Logger.withGroup('ClientDashboard: Loaded', () => {\n loadMindfulness();\n loadCalendarEvents();\n loadClientStats(parseBool(queryString('skipCache')));\n loadLatestCheckInInfo();\n loadClientProgress();\n loadReferralCard();\n requestTriggeredSurvey();\n var si = $('.scrolled-items');\n hookTodaysInputs();\n $('button.checkin-button').on('click', () => {\n window.location.href = '/client/checkin/';\n });\n $('#btnImport').on('click', (e) => {\n e.preventDefault();\n WebuiPopovers.hide('.actions-link');\n importMacros();\n });\n $('.btnSetup').on('click', (e) => {\n e.preventDefault();\n WebuiPopovers.hide('.actions-link');\n Logs.showConfigImportAlert();\n });\n $('.jarallax').jarallax();\n if ($(window).outerWidth() > 600) {\n createAchievementsTilt();\n }\n $(window).on('resize', () => {\n if ($(window).outerWidth() <= 600) {\n if (achievementsTilt === undefined)\n return;\n achievementsTilt.tilt.destroy.call(achievementsTilt);\n }\n if ($(window).outerWidth() > 600) {\n createAchievementsTilt();\n }\n });\n $(window).on('scroll', () => {\n var st = $(document).scrollTop();\n var newTop = st * .3;\n si.css({ top: newTop + 'px' });\n $('.inset-shadow').css({ opacity: st > 0 ? 1 : 0 });\n });\n $('a#btnViewMoreProgress').on('click', e => {\n if (!validObj(Polka))\n return;\n const selectedItem = Polka.getSelectedItem('polka_DashboardProgress');\n if (!validObj(selectedItem))\n return;\n e.preventDefault();\n switch (selectedItem.id) {\n case 'MetricsChart':\n window.location.href = '/client/progress#metrics-tab';\n return;\n case 'MoodChart':\n window.location.href = '/client/progress#mood-tab';\n return;\n }\n });\n if (Seismic.Session.JustCompletedIntro) {\n const hasSentIntroComplete = UIState.get('hasSentIntroComplete');\n if (hasSentIntroComplete == null || parseBool(hasSentIntroComplete.value) === false) {\n Seismic.sendIntroStepEvent('Complete');\n UIState.set(\"hasSentIntroComplete\", \"true\");\n }\n }\n $('.chx_weightMissed').on('change', function (e) { pushWeightMissed($(this)); });\n $('.chx_ateOut').on('change', function (e) { pushAteOut($(this)); });\n $('.select-dayType').on('change', e => {\n var $me = $(e.currentTarget);\n const logId = +resolveAttr($me, 'data-logid');\n const dayTypeId = +$me.val();\n setDayType(logId, dayTypeId);\n });\n $('.select-cardio').on('change', function (e) {\n const logId = +resolveAttr($(this), 'data-logid');\n const cardioId = +$(this).val();\n setCardioCompleted(logId, cardioId);\n });\n $('textarea.log-notes').on('input', function () {\n const me = $(this);\n const oldValue = +resolveAttr(me, 'data-oldvalue');\n if (oldValue !== me.val()) {\n const logId = +resolveAttr(me, 'data-logid');\n notesDebounce.push(() => {\n pushPropertyValue(logId, 'Notes', me.val(), () => { }, err => { Logger.log(err); });\n });\n }\n });\n $('textarea.log-notes').on('blur', () => {\n notesDebounce.force();\n });\n });\n }\n function createAchievementsTilt() {\n achievementsTilt = $('.achievements').tilt({ maxTilt: 7 });\n }\n function init(opts) {\n options = opts;\n const debounceOptions = new DebounceOptions();\n debounceOptions.IntervalTime = 1000;\n debounceOptions.DebounceId = 'TodaysLogDebounce';\n todaysLogDebounce = new Debounce(debounceOptions);\n const notesDebounceOptions = new DebounceOptions();\n notesDebounceOptions.IntervalTime = 5000;\n notesDebounceOptions.DebounceId = 'NotesDebounce';\n notesDebounceOptions.ReplaceQueue = true;\n notesDebounceOptions.TickOnStart = false;\n notesDebounce = new Debounce(notesDebounceOptions);\n const weightDisplay = UnitOutputs.getPreferredWeightDisplay();\n isMetric = weightDisplay === 'kg';\n $(() => { loaded(); });\n }\n ClientDashboard.init = init;\n ;\n})(ClientDashboard || (ClientDashboard = {}));\n\nvar ClientMessageThread;\n(function (ClientMessageThread) {\n var ThreadId;\n var showError = err => {\n Logger.log(err);\n Alerts.error({ title: 'An error occurred', content: 'Your action could not be completed at this time.' });\n };\n var doBtnAction = (e, method, redirect) => {\n e.preventDefault();\n Loader.show();\n Messages[method](ThreadId, d => {\n var result = parseBool(d);\n if (result) {\n window.location.href = redirect;\n }\n }, err => {\n Loader.hide();\n showError(err);\n });\n };\n function loaded() {\n $('#MessageThreadForm').validate({\n rules: {\n ReplyMessageText: { required: true }\n }\n });\n $('#btnArchive').on('click', e => {\n doBtnAction(e, 'ArchiveThread', '/messages');\n });\n $('#btnUnarchive').on('click', e => {\n doBtnAction(e, 'UnarchiveThread', '/messages');\n });\n $('#btnMarkUnread').on('click', e => {\n doBtnAction(e, 'MarkThreadUnread', '/messages');\n });\n $('#btnDelete').on('click', e => {\n Alerts.confirm({\n animation: 'zoom',\n type: 'orange',\n closeAnimation: 'scale',\n animateFromElement: false,\n title: 'Please confirm',\n content: 'Are you sure you want to delete this thread?',\n buttons: {\n Confirm: {\n btnClass: 'btn-warning',\n text: 'Confirm',\n action() {\n doBtnAction(e, 'DeleteThread', '/messages');\n }\n },\n Cancel() { }\n }\n });\n });\n $('#btnSend').on('click', e => {\n if ($('#MessageThreadForm').valid()) {\n Loader.show();\n }\n });\n $('.btnDelete').on('click', function (e) {\n e.preventDefault();\n var messageId = +$(this).attr('data-message-id');\n var messageTextObj = $(`#message-${messageId}`).find('.message-comment-content');\n Alerts.confirm({\n animation: 'zoom',\n type: 'none',\n closeAnimation: 'scale',\n animateFromElement: false,\n title: 'Please confirm',\n content: 'Are you sure you want to delete this message?',\n buttons: {\n Confirm: {\n btnClass: 'btn-warning',\n text: 'Confirm',\n action() {\n Loader.show();\n Messages.DeleteMessage(messageId, d => {\n if (d === '\"deleted\"' || d === '\"was_first\"') {\n messageTextObj.addClass('deleted');\n messageTextObj.html('

[deleted]

');\n if (d === '\"was_first\"') {\n window.location.href = '/messages';\n }\n else {\n Loader.hide();\n }\n }\n else {\n Loader.hide();\n showError(d);\n }\n }, err => {\n Loader.hide();\n showError(err);\n });\n }\n },\n Cancel() {\n Loader.hide();\n }\n }\n });\n });\n const s = queryString('s');\n if (validObj(s)) {\n if (s.length > 0) {\n const decoded = decodeURIComponent(s);\n $('.message-comment-content').highlight(decoded);\n }\n }\n CkEditor.init('#ReplyMessageText', e => { }, 10, e => { });\n setTimeout(function () {\n var scrollTop = $(window).scrollTop();\n var elementOffset = 0;\n if ($('.message-item.unread').length > 0) {\n elementOffset = $('.message-item.unread:first').offset().top;\n $(\"body,html\").animate({\n scrollTop: (elementOffset - scrollTop) - 60\n }, 800);\n }\n }, 500);\n }\n function init(threadId) {\n ThreadId = threadId;\n $(() => { loaded(); });\n }\n ClientMessageThread.init = init;\n})(ClientMessageThread || (ClientMessageThread = {}));\n\nvar ClientMessageThreadNew;\n(function (ClientMessageThreadNew) {\n function loaded() {\n $('#NewMessageForm').validate({\n rules: {\n Subject: { required: true },\n MessageText: { required: true }\n }\n });\n $('#btnSave').on('click', e => {\n if ($('form').valid())\n Loader.show();\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n ClientMessageThreadNew.init = init;\n})(ClientMessageThreadNew || (ClientMessageThreadNew = {}));\n\nvar ClientMessageThreads;\n(function (ClientMessageThreads) {\n var ReadOnly = false;\n var IsCoach = false;\n var $Pager;\n var ViewModel = {\n clientFilter: ko.observable(''),\n searchQuery: ko.observable(''),\n searchPlaceholder: ko.pureComputed(() => {\n if (ViewModel.allowSearch()) {\n return 'Search for...';\n }\n return 'Use the client filter to the left before searching';\n }),\n allowSearch: ko.pureComputed(() => {\n if (!IsCoach)\n return true;\n return ViewModel.clientFilter() !== '' && ViewModel.clientFilter() !== '0';\n })\n };\n function clearSearch() {\n const options = new LoaderOptions();\n options.OnShown = () => {\n window.location.href = \"/messages\";\n };\n Loader.show(options);\n }\n function navigate(page = 1) {\n var value = $('#txtSearchMessages').val().trim();\n const selectedInboxFilter = $('.btnMessageFilter.selected');\n var inboxFilter = resolveAttr(selectedInboxFilter, 'data-filter');\n const selectedClientFilter = $('.btnClientFilter.selected');\n var clientFilter = resolveAttr(selectedClientFilter, 'data-filter');\n const options = new LoaderOptions();\n options.OnShown = () => {\n window.location.href = `/messages?page=${page}&s=${encodeURIComponent(value)}&f=${inboxFilter}&u=${clientFilter}`;\n };\n Loader.show(options);\n }\n function gotToThread(threadId, searchQueryParam = '') {\n if (threadId > 0) {\n const isUnread = $(`tr.Thread[data-threadid=\\\"${threadId}\\\"]`).hasClass('unread');\n if (isUnread)\n MessageCounts.clearCache();\n Loader.show();\n window.location.href = `/messages/${threadId}${searchQueryParam}`;\n }\n }\n var search = (skipCache, onSearched = null) => {\n const qsInbox = queryString('f');\n const inboxFilter = qsInbox == null ? '' : qsInbox;\n const qsClient = queryString('u');\n const clientFilter = qsClient == null ? '' : qsClient;\n const qsSearch = queryString('s');\n const searchTerm = qsSearch == null ? '' : qsSearch;\n var cardSectionBody = $('#ThreadListCard .threads-body');\n cardSectionBody.parent().addClass('disabled');\n ViewModel.clientFilter(clientFilter);\n ViewModel.searchQuery(searchTerm);\n if (IsCoach && !ViewModel.allowSearch()) {\n ViewModel.searchQuery('');\n }\n $.get(`/messages/search?page=${Page()}&s=${encodeURIComponent(searchTerm)}&f=${inboxFilter}&u=${clientFilter}&skipCache=${skipCache}`)\n .done(html => {\n $('#ThreadListCard .threads-body').html(html);\n $('#ThreadListCard').removeClass('disabled');\n Hernia.init();\n UtcParser.rebuild();\n bindPager();\n $('.Thread').on('click', function (e) {\n const me = $(this);\n const threadId = resolveAttr(me, 'data-threadId') || 0;\n if (threadId > 0) {\n const searchQueryParam = qsSearch == null ? '' : `?s=${qsSearch}`;\n gotToThread(threadId, searchQueryParam);\n }\n });\n $('.btnThreadActions').webuiPopover({ padding: false });\n $('.btnThreadActions').on('click', (e) => {\n e.stopPropagation();\n });\n $('.btnThreadAction').on('click', (e) => {\n e.preventDefault();\n var $me = $(e.currentTarget);\n var action = resolveAttr($me, 'data-action').toLowerCase();\n var threadId = +resolveAttr($me, 'data-threadid');\n var threadIsUnread = $(`table tr[data-threadid=\"${threadId}\"]`).hasClass('unread');\n $('.btnThreadActions').webuiPopover('hide');\n Loader.show();\n $.post({ url: `/messages/${action}/${threadId}` })\n .done(() => {\n Loader.hide();\n search(true);\n switch (action) {\n case 'archive':\n case 'markread':\n if (threadIsUnread)\n LeftMenu.DecrementMessagesCountBadge();\n break;\n case 'markunread':\n LeftMenu.IncrementMessagesCountBadge();\n break;\n }\n })\n .fail((err) => {\n Logger.log(err, true);\n var toastOptions = new Toasts.ToastOptions('We could not complete this action at this time.');\n Toasts.error(toastOptions);\n });\n });\n if (onSearched != null)\n onSearched();\n }).always(() => { Loader.hide(); });\n };\n function writeNewMessage(onSent = null) {\n Loader.show();\n $.get('/messages/new', html => {\n $('body').append('
');\n var $newMessage = $('#NewMessage');\n $newMessage.html(html);\n $newMessage.iziModal({\n overlayClose: false,\n closeOnEscape: false,\n padding: 20,\n onOpening(izi) {\n Loader.hide();\n var sendToAllClients = false;\n const $form = izi.$element.find('#NewMessageForm');\n const $btnCancelSend = izi.$element.find('#btnCancelSend');\n const $btnSend = izi.$element.find('#btnSend');\n const $lbSendToClient = izi.$element.find('.lbSendToClient');\n const $lbSendToAll = izi.$element.find('#lbSendToAll');\n const $lbSendToCoach = izi.$element.find('#lbSendToCoach');\n const $clientSelector = izi.$element.find('#ClientSelector');\n const $sendToCoachMsg = izi.$element.find('#SendToCoachMsg');\n const $sendToAllMsg = izi.$element.find('#SendToAllMsg');\n const $sendToAllClients = $('#SendToAllClients');\n const $selectedClientIdDdl = izi.$element.find('#SelectedClientId');\n $form.validate({\n rules: {\n SelectedClientId: {\n required() {\n return $sendToCoachMsg.hasClass('d-none');\n }\n },\n SendToAllClients: { required: false },\n Subject: { required: true },\n MessageText: { required: true }\n }\n });\n $lbSendToClient.on('click', (e) => {\n e.preventDefault();\n $selectedClientIdDdl.val('');\n $clientSelector.removeClass('d-none');\n $sendToCoachMsg.addClass('d-none');\n $sendToAllMsg.addClass('d-none');\n $sendToAllClients.val(\"False\");\n sendToAllClients = false;\n });\n $lbSendToCoach.on('click', (e) => {\n e.preventDefault();\n $selectedClientIdDdl.val('');\n $clientSelector.addClass('d-none');\n $sendToCoachMsg.removeClass('d-none');\n $sendToAllClients.val(\"False\");\n sendToAllClients = false;\n });\n $lbSendToAll.on('click', (e) => {\n e.preventDefault();\n $selectedClientIdDdl.val('');\n $clientSelector.addClass('d-none');\n $sendToAllMsg.removeClass('d-none');\n $sendToAllClients.val(\"True\");\n sendToAllClients = true;\n });\n $btnCancelSend.on('click', (e) => {\n e.preventDefault();\n $newMessage.iziModal('close');\n });\n $btnSend.on('click', (e) => {\n e.preventDefault();\n if ($form.valid()) {\n Loader.show();\n const serializedForm = AjaxForms.SerializeFormForModel($form);\n Logger.log('sendToAllClients ' + sendToAllClients);\n $.post({\n url: '/messages/new',\n data: serializedForm\n })\n .done((threadId) => {\n Logger.log('ThreadId ' + threadId);\n Logger.log('sendToAllClients ' + sendToAllClients);\n if (threadId > 0 || (threadId == 0 && sendToAllClients)) {\n Loader.hide();\n const toastOptions = new Toasts.ToastOptions('Your message has been sent', 'Success');\n Toasts.success(toastOptions);\n if (onSent != null)\n onSent(threadId);\n }\n else {\n Loader.hide();\n const toastOptions = new Toasts.ToastOptions('We couldn\\'t send your message at this time.', 'Send Error');\n Toasts.error(toastOptions);\n }\n $newMessage.iziModal('close');\n })\n .fail((data) => { });\n }\n });\n $(izi.$element.find('#SelectedClientId')).selectize({\n persist: false,\n openOnFocus: false,\n maxItems: 1\n });\n },\n onClosed() {\n $newMessage.remove();\n },\n onOpened(izi) {\n autosize(izi.$element.find('#MessageText')[0]);\n }\n });\n $newMessage.iziModal('open');\n });\n }\n ClientMessageThreads.writeNewMessage = writeNewMessage;\n function loaded() {\n if ($('.user-filter').length > 0) {\n const u = queryString('u');\n $.get(`/messages/clients?u=${u}`, html => {\n $('.user-filter').after(html);\n $('.user-filter').remove();\n $('#btnClientFilters').webuiPopover({\n padding: false,\n onShow($element) {\n $(\"#txtFilterInput\").focus();\n $(\"#txtFilterInput\").keyup(e => {\n const $searchVal = $(\"#txtFilterInput\").val().toLowerCase();\n const $allFilters = $('a.btnClientFilter');\n $allFilters.removeHighlight();\n if ($searchVal !== undefined && $searchVal !== '') {\n const $searchMatches = $(`a.btnClientFilter[data-name*='${$searchVal}']`);\n $searchMatches.show().highlight($searchVal);\n $('a.btnClientFilter').not($searchMatches).hide();\n }\n else {\n $allFilters.show();\n }\n });\n },\n onHide($element) {\n $(\"#txtFilterInput\").val('');\n }\n });\n $('.btnClientFilter').on('click', (e) => {\n e.preventDefault();\n $('#btnClientFilters').webuiPopover('hide');\n var $me = $(e.currentTarget);\n var filterStr = resolveAttr($me, 'data-filter');\n $('.btnClientFilter').removeClass('selected');\n $('#btnClientFilters span.text').text(filterStr.toTitleCase());\n $me.addClass('selected');\n navigate();\n });\n });\n }\n $('#btnThreadFilterTypes').webuiPopover({ padding: false });\n $('.btnMessageFilter').on('click', (e) => {\n e.preventDefault();\n $('#btnThreadFilterTypes').webuiPopover('hide');\n var $me = $(e.currentTarget);\n var filterStr = resolveAttr($me, 'data-filter');\n $('.btnMessageFilter').removeClass('selected');\n $('#btnThreadFilterTypes span.text').text(filterStr.toTitleCase());\n $me.addClass('selected');\n navigate();\n });\n $('#btnWriteNew').on('click', e => {\n e.preventDefault();\n if (ReadOnly)\n return;\n writeNewMessage((newThreadId) => {\n search(true, () => {\n $(`table tr[data-threadid=\"${newThreadId}\"]`).addClass('justSent');\n });\n });\n });\n $('#btn_remove_search').on('click', e => {\n e.preventDefault();\n clearSearch();\n });\n $('#btnSearchMessages').on('click', e => {\n e.preventDefault();\n navigate();\n });\n $('#txtSearchMessages').on('keyup', e => {\n if (e.keyCode === 13) {\n e.preventDefault();\n navigate();\n }\n });\n $('.Thread').on('click', function (e) {\n const me = $(this);\n const threadId = resolveAttr(me, 'data-threadId') || 0;\n gotToThread(threadId);\n });\n $('.btnThreadActions').webuiPopover({ padding: false });\n $('.btnThreadActions').on('click', (e) => {\n e.stopPropagation();\n });\n $('.btnThreadAction').on('click', (e) => {\n e.preventDefault();\n var $me = $(e.currentTarget);\n var action = resolveAttr($me, 'data-action').toLowerCase();\n var threadId = +resolveAttr($me, 'data-threadid');\n var threadIsUnread = $(`table tr[data-threadid=\"${threadId}\"]`).hasClass('unread');\n $('.btnThreadActions').webuiPopover('hide');\n Loader.show();\n $.post({ url: `/messages/${action}/${threadId}` })\n .done(() => {\n Loader.hide();\n search(true);\n switch (action) {\n case 'archive':\n case 'markread':\n if (threadIsUnread)\n LeftMenu.DecrementMessagesCountBadge();\n break;\n case 'markunread':\n LeftMenu.IncrementMessagesCountBadge();\n break;\n }\n })\n .fail((err) => {\n Logger.log(err, true);\n var toastOptions = new Toasts.ToastOptions('We could not complete this action at this time.');\n Toasts.error(toastOptions);\n });\n });\n ko.applyBindings(ViewModel);\n search(false);\n }\n function bindPager() {\n $Pager = $('#pager_Messages');\n $Pager.find('li.page-item.previous a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n navigate(Page() - 1);\n });\n $Pager.find('li.page-item.home a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n navigate(1);\n });\n $Pager.find('li.page-item.next a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n navigate(Page() + 1);\n });\n }\n function Page() {\n const qsPage = +queryString('page');\n const page = qsPage == 0 ? 1 : qsPage;\n return page;\n }\n function init(readOnly = false, isCoach = false) {\n ReadOnly = readOnly;\n IsCoach = isCoach;\n $(() => { loaded(); });\n }\n ClientMessageThreads.init = init;\n})(ClientMessageThreads || (ClientMessageThreads = {}));\n\nclass ClientNote {\n constructor() {\n this.clientId = 0;\n this.authorId = 0;\n this.clientNoteId = 0;\n this.dateNoted = '';\n this.deleted = false;\n this.important = false;\n this.noteText = '';\n }\n clientId;\n authorId;\n clientNoteId;\n dateNoted;\n deleted;\n important;\n noteText;\n}\nvar ClientNotes;\n(function (ClientNotes) {\n var ClientId;\n var Page = 1;\n var SearchStr = '';\n var $Pager;\n var $Search;\n var $SearchInput;\n var $BtnClearSearch;\n var $BtnSearch;\n var $BtnAddNote;\n function displayNotes(page = 1, searchStr = '', skipCache = false) {\n Page = page.constrainMin(1);\n SearchStr = searchStr;\n var cardSectionBody = $('#ClientNotes .card-section-body.notes-body');\n cardSectionBody.parent().addClass('disabled');\n Logger.log(`Getting notes for user ${ClientId}`);\n $.get(`/clientnotes/user/${ClientId}/clientnotes?page=${Page}&clientId=${ClientId}&searchStr=${SearchStr}&skipCache=${skipCache}`)\n .done(data => {\n Logger.log('ClientNotes: methods response successful');\n cardSectionBody.html(data);\n bindPager();\n UserQuickInfo.rebuild();\n UtcParser.rebuild();\n $('.btnEditNote').on('click', e => {\n const $btn = $(e.currentTarget);\n const noteId = +resolveAttr($btn.closest('tr'), 'data-noteid');\n editNote(noteId);\n });\n }).fail((e) => {\n cardSectionBody.html('There was an error loading this content');\n Logger.log(e);\n }).always(() => {\n cardSectionBody.parent().removeClass('disabled');\n });\n }\n ClientNotes.displayNotes = displayNotes;\n function refresh() {\n displayNotes(Page, SearchStr, true);\n }\n function editNote(noteId) {\n Loader.show();\n Logger.withGroup(`ClientNotes: Editing note ${noteId} for client ${ClientId}`, () => {\n $.get(`/clientnotes/edit/${noteId}`, html => {\n $('body').append('
');\n var $clientNote = $('#ClientNote');\n $clientNote.html(html);\n $clientNote.iziModal({\n overlayClose: false,\n closeOnEscape: false,\n padding: 20,\n onOpening(izi) {\n const $txtNote = izi.$element.find('#txtNote');\n const $btnDeleteNote = izi.$element.find('#btnDeleteNote');\n const $cancelBtn = izi.$element.find('#btnCancelNote');\n const $saveBtn = izi.$element.find('#btnSaveNote');\n const $chxImportant = izi.$element.find('#chxImportant');\n const $AuthorId = izi.$element.find('#AuthorId');\n const authorId = +$AuthorId.val();\n const $DateNoted = izi.$element.find('#DateNoted');\n const dateNoted = $DateNoted.val();\n Logger.log(dateNoted);\n $cancelBtn.on('click', e => {\n e.preventDefault();\n $clientNote.iziModal('close');\n });\n $btnDeleteNote.on('click', e => {\n e.preventDefault();\n Alerts.confirm({\n title: 'Confirm Delete',\n content: 'Are you sure you want to delete this note?',\n buttons: {\n cancel: {\n text: 'Cancel',\n action() { }\n },\n ok: {\n text: ' Delete',\n btnClass: 'btn-warning',\n action() {\n $.ajax({\n url: `/clientnotes/${noteId}`,\n type: 'DELETE'\n })\n .done(() => {\n $clientNote.iziModal('close');\n refresh();\n })\n .fail(err => {\n Alerts.error({ content: 'We could not delete note at this time.' });\n Logger.log(err);\n });\n }\n }\n }\n });\n });\n $saveBtn.on('click', e => {\n e.preventDefault();\n var val = $txtNote.val();\n if (val.length <= 0)\n return;\n Loader.show();\n var note = new ClientNote();\n note.clientId = ClientId;\n note.dateNoted = dateNoted;\n note.authorId = authorId;\n note.clientNoteId = noteId;\n note.important = $chxImportant.is(':checked');\n note.noteText = $txtNote.val();\n $.post({\n url: '/clientnotes',\n data: note\n })\n .done(result => {\n Loader.hide();\n Logger.log(result);\n refresh();\n $clientNote.iziModal('close');\n })\n .fail(err => {\n Alerts.error({ content: 'We could not save this note at this time.' });\n Logger.log(err);\n });\n });\n },\n onClosed() {\n $clientNote.remove();\n },\n onOpened(izi) {\n const txtNote = izi.$element.find('#txtNote')[0];\n txtNote.addEventListener('autosize:resized', () => {\n setTimeout(() => { Loader.hide(); }, 500);\n });\n autosize(txtNote);\n }\n });\n $clientNote.iziModal('open');\n });\n });\n }\n ClientNotes.editNote = editNote;\n function add() {\n editNote(0);\n }\n ClientNotes.add = add;\n function next() {\n displayNotes(Page + 1);\n }\n function previous() {\n displayNotes(Page - 1);\n }\n function home() {\n displayNotes(1);\n }\n function bindPager() {\n $Pager = $('#pager_ClientNotes');\n $Pager.find('li.page-item.previous a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n previous();\n });\n $Pager.find('li.page-item.home a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n home();\n });\n $Pager.find('li.page-item.next a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n next();\n });\n }\n function search() {\n const value = $SearchInput.val().trim();\n if (value.length <= 0) {\n clearSearch();\n return;\n }\n $BtnClearSearch.removeClass('d-none');\n displayNotes(1, value);\n }\n ;\n function clearSearch() {\n $SearchInput.val('');\n displayNotes(1);\n $BtnClearSearch.addClass('d-none');\n }\n function loaded() {\n $Search = $('#ClientNoteSearch');\n $SearchInput = $Search.find('#txt_search');\n $BtnClearSearch = $Search.find('#btn_remove_search');\n $BtnSearch = $Search.find('#btn_search');\n $BtnAddNote = $Search.find('#btn_addNote');\n $BtnClearSearch.on('click', e => {\n e.preventDefault();\n clearSearch();\n });\n $BtnSearch.on('click', e => {\n e.preventDefault();\n search();\n });\n $BtnAddNote.on('click', e => {\n e.preventDefault();\n add();\n });\n $SearchInput.on('keyup', e => {\n e.preventDefault();\n if (e.keyCode !== 13)\n return;\n search();\n });\n }\n function init(clientId) {\n ClientId = clientId;\n $(() => { loaded(); });\n }\n ClientNotes.init = init;\n})(ClientNotes || (ClientNotes = {}));\n\nvar ClientWaitlist;\n(function (ClientWaitlist) {\n var currentUserId = 0;\n var SetProgramFlags;\n var LockUserToWaitlistedScreen;\n class Program {\n constructor(id, name, activeWaitlist) {\n this.id = id;\n this.name = name;\n this.activeWaitlist = activeWaitlist;\n }\n activeWaitlist;\n id;\n name;\n }\n ClientWaitlist.Program = Program;\n function changeWaitlist(waitlistProgramId, userId, setProgramFlags = undefined, lockUserToWaitlistedScreen = undefined) {\n if (typeof (setProgramFlags) !== 'undefined')\n SetProgramFlags = setProgramFlags;\n if (typeof (lockUserToWaitlistedScreen) !== 'undefined')\n LockUserToWaitlistedScreen = lockUserToWaitlistedScreen;\n Loader.show();\n $.post(`/account/settings/changewaitlist?userId=${userId}&requestedProgramId=${waitlistProgramId}&setProgramFlags=${SetProgramFlags}&lockUserToWaitlistedScreen=${LockUserToWaitlistedScreen}`)\n .done((response) => {\n Errors.respondToResponse(response, () => {\n var icon = '';\n var title = '';\n var content = '';\n var action = null;\n if (Has(response.messages, 'waitlist changed')) {\n icon = 'fas fa-clipboard-check';\n title = 'Waitlist changed.';\n content = 'You have successfully been added to the program waitlist.';\n action = () => {\n var loaderOptions = new LoaderOptions(() => {\n window.location.reload();\n });\n Loader.show(loaderOptions);\n };\n }\n if (Has(response.messages, 'program changed')) {\n icon = 'fas fa-check-circle';\n title = 'Program changed.';\n content = 'You have successfully changed programs.';\n action = () => {\n var loaderOptions = new LoaderOptions(() => {\n window.location.href = '/client';\n });\n Loader.show(loaderOptions);\n };\n }\n Alerts.success({\n icon: icon,\n title: title,\n content: content,\n buttons: {\n ok: {\n text: 'Ok',\n action() {\n action();\n }\n }\n }\n });\n }, undefined, true);\n })\n .fail((err) => {\n Logger.error(err);\n }).always(() => {\n Loader.hide();\n });\n }\n ClientWaitlist.changeWaitlist = changeWaitlist;\n function prompt_changeWaitlist(program) {\n const joinStartVerbiage = program.activeWaitlist\n ? `join the ${program.name} waitlist`\n : `start the ${program.name} program`;\n const joinStartBtnVerbiage = program.activeWaitlist ? 'Join' : 'Start';\n Alerts.confirm({\n icon: 'fas fa-exchange',\n title: 'Change Program?',\n content: `Are you sure you want to ${joinStartVerbiage}?`,\n buttons: {\n no: { text: 'Stay' },\n yes: {\n text: joinStartBtnVerbiage,\n btnClass: 'btn-primary',\n action() {\n changeWaitlist(program.id, currentUserId);\n }\n }\n }\n });\n }\n function loaded() {\n $('.btnJoinProgram').on('click', e => {\n e.preventDefault();\n var $me = $(e.currentTarget);\n var programId = resolveAttr($me, 'data-programid');\n var programName = resolveAttr($me, 'data-program-name');\n var activeWaitlist = parseBool(resolveAttrWithDefault($me, 'data-program-active-waitlist', 'false'));\n var program = new Program(programId, programName, activeWaitlist);\n prompt_changeWaitlist(program);\n });\n }\n function init(userId, setProgramFlags, lockUserToWaitlistedScreen) {\n currentUserId = userId;\n SetProgramFlags = setProgramFlags;\n LockUserToWaitlistedScreen = lockUserToWaitlistedScreen;\n $(() => { loaded(); });\n }\n ClientWaitlist.init = init;\n})(ClientWaitlist || (ClientWaitlist = {}));\n\nclass ClientSurvey {\n affiliateId;\n endDate;\n startDate;\n surveyDescription;\n surveyId;\n surveyName;\n triggerType;\n triggerValue;\n updated;\n}\n(function (ClientSurvey) {\n var debounce;\n var SurveyId = '';\n class ClientSurveyAnswer {\n SurveyQuestionId;\n SurveyQuestionAnswer;\n }\n function RequestTriggeredSurvey(onSuccess, onError = undefined) {\n $.get('/survey/triggered')\n .done((survey) => {\n if (onSuccess)\n onSuccess(survey);\n })\n .fail(err => {\n if (onError)\n onError(err);\n });\n }\n ClientSurvey.RequestTriggeredSurvey = RequestTriggeredSurvey;\n function IgnoreSurvey(id, onSuccess = undefined, onError = undefined) {\n $.get(`/survey/ignore/${id}`)\n .done(result => {\n if (onSuccess)\n onSuccess(result);\n })\n .fail(err => {\n if (onError)\n onError(err);\n });\n }\n ClientSurvey.IgnoreSurvey = IgnoreSurvey;\n function loaded(onLoaded = null) {\n $.extend($.validator.messages, { required: 'This question is required.' });\n if (onLoaded !== null)\n onLoaded();\n }\n function getQuestionAnswer(questionInput) {\n const $o = questionInput;\n const questionType = resolveAttr($o, 'data-question-type');\n const questionId = resolveAttr($o, 'data-question-id');\n if (questionType === null || questionId === null)\n return null;\n var value = '';\n switch (questionType.toLowerCase()) {\n case 'textbox':\n value = $o.find('textarea').val();\n break;\n case 'dropdownlist':\n value = $o.find('select').val();\n break;\n case 'number':\n value = $o.find('input').val();\n break;\n case 'radiobuttonlist':\n case 'checkboxlist':\n case 'likertscale':\n case 'starrating':\n case 'nps':\n var values = [];\n $o.find('input').each((i, o) => {\n if (o.checked)\n values.push($(o).val());\n });\n if (values.length > 0)\n value = values.join(',');\n break;\n }\n var answer = new ClientSurveyAnswer();\n answer.SurveyQuestionAnswer = value;\n answer.SurveyQuestionId = questionId;\n return answer;\n }\n function saveCurrentStep(onDone = null, onFail = null) {\n var answers = [];\n $(\".HotStep:visible .question-box:visible .questionInput\").each((i, o) => {\n var answer = getQuestionAnswer($(o));\n if (answer != null) {\n answers.push(answer);\n }\n });\n debounce.push(() => {\n submitSurvey(answers, false, onDone, onFail);\n });\n }\n ClientSurvey.saveCurrentStep = saveCurrentStep;\n function saveAllSteps(onDone = null, onFail = null) {\n var answers = [];\n $('.questionInput').each((i, o) => {\n var answer = getQuestionAnswer($(o));\n if (answer != null) {\n answers.push(answer);\n }\n });\n submitSurvey(answers, true, onDone, onFail);\n }\n ClientSurvey.saveAllSteps = saveAllSteps;\n function completeSurvey(onDone = null, onFail = null) {\n submitSurvey([], true, onDone, onFail);\n }\n ClientSurvey.completeSurvey = completeSurvey;\n function submitSurvey(answers, markComplete, onDone = null, onFail = null) {\n $.post({\n url: `/survey?surveyId=${SurveyId}&markComplete=${markComplete}`,\n data: {\n \"answers\": answers\n }\n }).done(d => {\n if (onDone !== null)\n onDone(d);\n }).fail(f => {\n if (onFail !== null)\n onFail(f);\n });\n }\n function init(surveyId, onLoaded = null) {\n const debounceOptions = new DebounceOptions();\n debounceOptions.IntervalTime = 50;\n debounceOptions.DebounceId = 'SurveyDebounce';\n debounceOptions.ReplaceQueue = true;\n debounce = new Debounce(debounceOptions);\n SurveyId = surveyId;\n $(() => { loaded(onLoaded); });\n }\n ClientSurvey.init = init;\n ;\n})(ClientSurvey || (ClientSurvey = {}));\n\nvar ClientReferrals;\n(function (ClientReferrals) {\n var _referralUrlWithCodePlaceholder;\n function showChangeReferralCodeError(code) {\n var errorMsg = 'We couldn\\'t change your referral code at this time. Please try again. If you continue to have issues, please contact support@getseismic.com';\n switch (code.toLowerCase()) {\n case 'code_in_use':\n errorMsg = 'This code is already being used by another client.';\n break;\n }\n Alerts.error({ title: 'Validation Error', content: errorMsg });\n }\n function changeReferralCode(code, showResult, onDone, onFail = undefined) {\n $.post(`/account/billing/changereferralcode?code=${code}`)\n .done((response) => {\n if (!response.requestOk) {\n if (showResult) {\n showChangeReferralCodeError(response.responseCode);\n }\n }\n onDone(response);\n })\n .fail(err => {\n if (typeof (onFail) !== 'undefined') {\n onFail(err);\n }\n Logger.error(err);\n if (showResult) {\n Alerts.error({ title: 'Error', content: 'There was an error trying to change your referral code. Please try again or contact support@getseismic.com.' });\n }\n });\n }\n function loaded() {\n $('#btn_CopyReferralCode').on('click', e => {\n e.preventDefault();\n $('#ReferralCode').focus();\n $('#ReferralCode').select();\n document.execCommand('copy');\n });\n $('#btn_CopyReferralLink').on('click', e => {\n e.preventDefault();\n $('#txt_ReferralUrl').focus();\n $('#txt_ReferralUrl').select();\n document.execCommand('copy');\n });\n $('#btn_EditReferralCode').on('click', e => {\n e.preventDefault();\n $('#ReferralCode').removeAttr(\"readonly\");\n $('#btn_EditReferralCode').hide();\n $('#btn_CopyReferralCode').hide();\n $('#btn_SaveReferralCode').show();\n });\n $('#btn_SaveReferralCode').on('click', e => {\n e.preventDefault();\n var val = $('#ReferralCode').val();\n if (val.length <= 0)\n return;\n Loader.show();\n $(\"#btn_SaveReferralCode\").attr(\"disabled\", \"disabled\");\n changeReferralCode(val, true, (response) => {\n Loader.hide();\n if (response.requestOk) {\n $('#ReferralCode').attr(\"readonly\", \"true\");\n $('#btn_EditReferralCode').show();\n $('#btn_CopyReferralCode').show();\n $(\"#btn_SaveReferralCode\").removeAttr(\"disabled\");\n $('#btn_SaveReferralCode').hide();\n $('#txt_ReferralUrl').val(_referralUrlWithCodePlaceholder.replace('code', val));\n Toasts.success(new Toasts.ToastOptions(\"Your referral code has been updated\"));\n }\n else {\n Toasts.error(new Toasts.ToastOptions(\"We couldn't update your code.\"));\n }\n }, () => { Loader.hide(); });\n });\n AjaxForms.onSubmitted('ReferFriendsForm', () => {\n Logger.log('User invites sent');\n $(\"#EmailRaw\").val('');\n $(\"#PersonalMessage\").val('');\n });\n CardSectionBoxes.init();\n AjaxForms.init();\n }\n function init(referralUrlWithCodePlaceholder) {\n _referralUrlWithCodePlaceholder = referralUrlWithCodePlaceholder;\n $(() => { loaded(); });\n }\n ClientReferrals.init = init;\n ;\n})(ClientReferrals || (ClientReferrals = {}));\n\nvar LogMetricsToggles;\n(function (LogMetricsToggles) {\n var UserId;\n function toggleLogMetricOption(id, enable) {\n Loader.show();\n $.get({ url: `/users/${UserId}/log-metric/${id}?enable=${enable}` })\n .done((response) => {\n Logger.log(response);\n })\n .fail((err) => {\n Logger.error(err);\n var toastOptions = new Toasts.ToastOptions('Your request could not be completed.');\n Toasts.error(toastOptions);\n })\n .always(() => {\n Loader.hide();\n });\n }\n function loaded() {\n $('.log-metric-toggle').each((i, o) => {\n $(o).on('click', e => {\n var $e = $(e.currentTarget);\n var lmId = +resolveAttr($e, 'data-typeid');\n var enable = $e.is(':checked');\n toggleLogMetricOption(lmId, enable);\n });\n });\n }\n function init(userId) {\n UserId = userId;\n $(() => { loaded(); });\n }\n LogMetricsToggles.init = init;\n ;\n})(LogMetricsToggles || (LogMetricsToggles = {}));\n\nclass Log {\n carbs = 0.0;\n cardioCompleted;\n checkInId;\n dayType = 1;\n fat = 0.0;\n fiber = 0.0;\n importedNotes;\n logDate = new moment();\n logId = 0;\n logStatus = 0;\n notes;\n prescription_CardioGroupId = 0;\n prescription_MacrosId = 0;\n protein = 0.0;\n userId = 0;\n weight = 0.0;\n weightMissed = false;\n}\nvar MacroImportProviders;\n(function (MacroImportProviders) {\n MacroImportProviders[MacroImportProviders[\"None\"] = 0] = \"None\";\n MacroImportProviders[MacroImportProviders[\"MyFitnessPal\"] = 1] = \"MyFitnessPal\";\n MacroImportProviders[MacroImportProviders[\"MacrosFirst\"] = 2] = \"MacrosFirst\";\n})(MacroImportProviders || (MacroImportProviders = {}));\nvar Logs;\n(function (Logs) {\n var logsDebounce;\n var notesDebounce;\n var macroImportProvider;\n var isMetric;\n var detailsUICookeName = 'logs-details-closed';\n function logRowIcons(logId) {\n return $(`.log_row_item[data-logid=\"${logId}\"] .log_row_icons`);\n }\n function hideAllDetails() {\n $('.log_items .log_row_details .toggle-card-section i.hide').each(function (e, o) {\n $(this).click();\n });\n UIState.set(detailsUICookeName, 'true');\n $('#btn-ShowAllDetails').show();\n $('#btn-HideAllDetails').hide();\n }\n Logs.hideAllDetails = hideAllDetails;\n function showAllDetails() {\n $('.log_items .log_row_details .toggle-card-section i.show').each(function (e, o) {\n $(this).click();\n });\n UIState.remove(detailsUICookeName);\n $('#btn-ShowAllDetails').hide();\n $('#btn-HideAllDetails').show();\n }\n Logs.showAllDetails = showAllDetails;\n function hookToggleDetails() {\n const btnShow = $('#btn-ShowAllDetails');\n const btnHide = $('#btn-HideAllDetails');\n btnShow.on('click', e => {\n e.preventDefault();\n showAllDetails();\n });\n btnHide.on('click', e => {\n e.preventDefault();\n hideAllDetails();\n });\n const c = UIState.get(detailsUICookeName);\n if (c !== null && c !== undefined) {\n hideAllDetails();\n }\n else {\n showAllDetails();\n }\n }\n function updateValue(logId, propertyName, propertyValue, success, error) {\n $.post({\n url: '/client/logs/updatevalue',\n data: {\n \"LogId\": logId,\n \"PropertyName\": propertyName,\n \"PropertyValue\": propertyValue\n }\n }).done(data => {\n if (success)\n success(data);\n }).fail((e) => {\n if (error)\n error(e);\n });\n }\n function pushPropertyValue(logId, propertyName, value, success, error) {\n logsDebounce.push(() => { updateValue(logId, propertyName, value, success, error); });\n }\n function pushWeightMissed(o) {\n const logId = +resolveAttr(o, 'data-logId');\n const weightMissed = o.is(':checked');\n pushPropertyValue(logId, 'WeightMissed', weightMissed.toString(), d => {\n var weightIcon = logRowIcons(logId).find('#iWeight');\n weightIcon.hide();\n if (weightMissed) {\n logRowIcons(logId).find('#iWeight').show();\n }\n }, err => {\n Logger.log(err);\n });\n }\n function pushAteOut(o) {\n const logId = +resolveAttr(o, 'data-logId');\n const ateOut = o.is(':checked') ? 1 : 0;\n pushPropertyValue(logId, 'Metric_Eating_Out', ateOut.toString(), d => {\n }, err => {\n Logger.log(err);\n });\n }\n function setDayType(logId, dayTypeId) {\n pushPropertyValue(logId, 'DayType', dayTypeId.toString(), d => {\n logRowIcons(logId).find('i.dayType').hide();\n switch (dayTypeId) {\n case 1:\n logRowIcons(logId).find('#iRest').show();\n break;\n case 2:\n logRowIcons(logId).find('#iTrain').show();\n break;\n case 3:\n logRowIcons(logId).find('#iRefeed').show();\n break;\n }\n }, err => {\n Logger.log(err);\n });\n }\n function setCardioCompleted(logId, cardioId) {\n pushPropertyValue(logId, 'CardioCompleted', cardioId.toString(), d => {\n if (cardioId > 0) {\n logRowIcons(logId).find('#iCardio').show();\n }\n else {\n logRowIcons(logId).find('#iCardio').hide();\n }\n }, err => {\n Logger.log(err);\n });\n }\n function showConfigImportAlert() {\n Alerts.alert({\n title: 'Setup Macro Imports',\n content: `If you'd like to setup a connection to a 3rd party macro tracking service for easier and (optional) auto syncing, click 'Configure' to get started.`,\n buttons: {\n Cancel() { },\n Configure: {\n text: 'Configure',\n btnClass: 'btn-primary',\n action() {\n window.location.href = '/account/settings';\n }\n }\n }\n });\n }\n Logs.showConfigImportAlert = showConfigImportAlert;\n function importMacros($importButton) {\n const dateTime = resolveAttr($importButton, 'data-logDate');\n const logId = resolveAttr($importButton.closest('.log_row_item'), 'data-logId');\n const $row = $(`.log_row_item[data-logid=\"${logId}\"]`);\n Loader.show();\n $.post(`/client/logs/import?startDate=${dateTime}`)\n .done(response => {\n if (!response.data) {\n Toasts.error(new Toasts.ToastOptions('We couldn\\'t import your data at this time.'));\n return;\n }\n if (response.data.errorMessage) {\n Toasts.error(new Toasts.ToastOptions(response.data.errorMessage));\n return;\n }\n if (!response.data.logs?.length) {\n Toasts.error(new Toasts.ToastOptions('We couldn\\'t import your data at this time.'));\n return;\n }\n $row.find('.item-protein').val(response.data.logs[0].protein);\n $row.find('.item-carbs').val(response.data.logs[0].carbs);\n $row.find('.item-fat').val(response.data.logs[0].fat);\n $row.find('.item-fiber').val(response.data.logs[0].fiber);\n $row.find('.item-weight').val(response.data.logs[0].weight);\n if (!response.data.logs[0].weightMissed)\n $row.find('.log_row_missed_weight input').prop('checked', false);\n Toasts.success(new Toasts.ToastOptions('Log Data Imported'));\n $importButton.addClass('hasValue');\n const $icon = $importButton.find('i');\n $icon.removeClass('fal');\n $icon.addClass('fas');\n })\n .fail(err => {\n console.clear();\n console.error(err);\n Toasts.error(new Toasts.ToastOptions('We couldn\\'t import your data at this time.'));\n })\n .always(() => {\n Loader.hide();\n });\n }\n function saveProperty(o) {\n let newValue = o.val();\n var oldValue = resolveAttr(o, 'data-oldValue');\n if (newValue !== oldValue) {\n const propertyName = resolveAttr(o, 'data-propertyName');\n const logId = +resolveAttr(o, 'data-logId');\n if (isMetric) {\n switch (propertyName) {\n case 'Weight':\n newValue = toPounds(newValue);\n break;\n case 'Metric_Chest':\n case 'Metric_Hips':\n case 'Metric_Waist':\n newValue = toInches(newValue);\n break;\n }\n }\n pushPropertyValue(logId, propertyName, newValue.toString(), d => {\n if (propertyName === 'Weight') {\n const chx_weightMissed = $(`#chx_weightMissed_${logId}`);\n if (chx_weightMissed.is(':checked')) {\n chx_weightMissed.click();\n }\n }\n o.removeAttr('data-oldValue');\n }, err => {\n Logger.log(err);\n o.removeAttr('data-oldValue');\n o.val(oldValue);\n });\n }\n }\n Logs.saveProperty = saveProperty;\n function init(provider) {\n macroImportProvider = MacroImportProviders[provider];\n const debounceOptions = new DebounceOptions();\n debounceOptions.IntervalTime = 1000;\n debounceOptions.DebounceId = 'LogsDebounce';\n logsDebounce = new Debounce(debounceOptions);\n const notesDebounceOptions = new DebounceOptions();\n notesDebounceOptions.IntervalTime = 5000;\n notesDebounceOptions.DebounceId = 'NotesDebounce';\n notesDebounceOptions.ReplaceQueue = true;\n notesDebounceOptions.TickOnStart = false;\n notesDebounce = new Debounce(notesDebounceOptions);\n const weightDisplay = UnitOutputs.getPreferredWeightDisplay();\n isMetric = weightDisplay === 'kg';\n $(() => {\n hookToggleDetails();\n $('.edit-number').each(function () {\n const $this = $(this);\n const minValue = +resolveAttrWithDefault($this, 'min', '0');\n const maxValue = hasAttr($this, 'max') ? +resolveAttr($this, 'max') : undefined;\n const decimalScale = +resolveAttrWithDefault($this, 'data-numeralDecimalScale', '2');\n const cleave = new Cleave($this[0], {\n numeral: true,\n numeralDecimalScale: decimalScale\n });\n $this.on('focus', function (e) {\n const me = $(this);\n me.attr('data-oldValue', me.val());\n me.select();\n });\n $this.on('blur', function (e) {\n const me = $(this);\n const val = me.val();\n if (val.length <= 0) {\n const oldValue = resolveAttr(me, 'data-oldValue');\n me.val(oldValue);\n return;\n }\n saveProperty($(this));\n });\n $this.on('keyup', function (e) {\n e.preventDefault();\n const me = $(this);\n var val = +me.val();\n if (isNaN(val))\n val = 0;\n if (e.keyCode === 13) {\n me.blur();\n return;\n }\n if (e.keyCode === 27) {\n const oldValue = resolveAttr(me, 'data-oldValue');\n me.val(oldValue);\n me.blur();\n return;\n }\n if (val < minValue) {\n me.val(minValue);\n me.blur();\n return;\n }\n if (typeof maxValue == 'undefined')\n return;\n if (val > maxValue) {\n me.val(maxValue);\n me.blur();\n return;\n }\n });\n });\n $('.log_row_item .card-actions .DayImportedNotes').on('click', function (e) {\n e.preventDefault();\n importMacros($(this));\n });\n $('.btnSetup').on('click', (e) => {\n e.preventDefault();\n WebuiPopovers.hide('.actions-link');\n Logs.showConfigImportAlert();\n });\n $('.chx_weightMissed').on('change', function (e) { pushWeightMissed($(this)); });\n $('.chx_ateOut').on('change', function (e) { pushAteOut($(this)); });\n $('.select-dayType').on('change', e => {\n var $me = $(e.currentTarget);\n const logId = +resolveAttr($me, 'data-logid');\n const dayTypeId = +$me.val();\n setDayType(logId, dayTypeId);\n });\n $('.select-cardio').on('change', function (e) {\n const logId = +resolveAttr($(this), 'data-logid');\n const cardioId = +$(this).val();\n setCardioCompleted(logId, cardioId);\n });\n $('textarea.log-notes').on('input', function () {\n const me = $(this);\n const oldValue = +resolveAttr(me, 'data-oldvalue');\n if (oldValue !== me.val()) {\n const logId = +resolveAttr(me, 'data-logid');\n notesDebounce.push(() => {\n updateValue(logId, 'Notes', me.val(), () => { }, err => { Logger.log(err); });\n });\n }\n });\n $('textarea.log-notes').on('blur', () => {\n notesDebounce.force();\n });\n });\n }\n Logs.init = init;\n ;\n})(Logs || (Logs = {}));\n\nvar Messages;\n(function (Messages) {\n function ArchiveThread(threadId, success, error) {\n $.post(`/messages/archive/${threadId}`)\n .done(data => {\n if (success)\n success(data);\n }).fail((e) => {\n if (error)\n error(e);\n });\n }\n Messages.ArchiveThread = ArchiveThread;\n function DeleteMessage(messageId, success, error) {\n $.ajax({\n url: `/messages/delete/message/${messageId}`,\n type: 'DELETE'\n })\n .done(data => {\n if (success)\n success(data);\n }).fail((e) => {\n if (error)\n error(e);\n });\n }\n Messages.DeleteMessage = DeleteMessage;\n function DeleteThread(threadId, success, error) {\n $.ajax({\n url: `/messages/delete/thread/${threadId}`,\n type: 'DELETE'\n })\n .done(data => {\n if (success)\n success(data);\n }).fail((e) => {\n if (error)\n error(e);\n });\n }\n Messages.DeleteThread = DeleteThread;\n function MarkThreadUnread(threadId, success, error) {\n $.post(`/messages/markunread/${threadId}`)\n .done(data => {\n if (success)\n success(data);\n }).fail((e) => {\n if (error)\n error(e);\n });\n }\n Messages.MarkThreadUnread = MarkThreadUnread;\n function UnarchiveThread(threadId, success, error) {\n $.post(`/messages/unarchive/${threadId}`)\n .done(data => {\n if (success)\n success(data);\n }).fail((e) => {\n if (error)\n error(e);\n });\n }\n Messages.UnarchiveThread = UnarchiveThread;\n})(Messages || (Messages = {}));\n\nvar Questionnaire;\n(function (Questionnaire) {\n var validator = null;\n function Validator() {\n return validator;\n }\n Questionnaire.Validator = Validator;\n var onQuestonnaireSaved = () => {\n var options = new Toasts.ToastOptions('Questionnaire data updated');\n options.displayMode = Toasts.ToastDisplayModes.REPLACE;\n Toasts.success(options);\n };\n var onQuestionnaireFailure = (f) => {\n Logger.error(f);\n var msg = (f === null || f === undefined)\n ? 'There was a problem processing your request.'\n : f.responseText;\n var options = new Toasts.ToastOptions(msg);\n options.displayMode = Toasts.ToastDisplayModes.REPLACE;\n Toasts.error(options);\n };\n function save(stepIndex = -1, onDone = null, onFailure = null) {\n if (onDone == null)\n onDone = onQuestonnaireSaved;\n if (onFailure == null)\n onFailure = onQuestionnaireFailure;\n Logger.withGroup('Questionnaire: Save', () => {\n if (stepIndex < 0) {\n Loader.show();\n ClientSurvey.saveAllSteps(onDone, onFailure);\n }\n else {\n Loader.show();\n ClientSurvey.saveCurrentStep(() => {\n $.post(`/users/lastquestionnairestepcompleted?stepCompleted=${stepIndex}`)\n .done(d => {\n if (onDone !== null)\n onDone(d);\n }).fail(f => {\n if (onFailure !== null)\n onFailure(f);\n });\n }, onFailure);\n }\n });\n }\n Questionnaire.save = save;\n function loaded(model, onLoaded = null) {\n if (model.selectedGoals == null)\n model.selectedGoals = '';\n if (model.exercisestyle == null)\n model.exercisestyle = '';\n if (model.workoutfrequency == null)\n model.workoutfrequency = '';\n if (model.occupationactivitylevel == null)\n model.occupationactivitylevel = '';\n if (model.primarycaregiver == null)\n model.primarycaregiver = '';\n if (model.howdidyouhearaboutus == null)\n model.howdidyouhearaboutus = '';\n var ViewModel = {\n genderIsFemale: ko.pureComputed(() => model.genderIsFemale),\n selectedGoals: ko.observableArray(model.selectedGoals.split(',')),\n selectedGoal_sportspecific: ko.pureComputed(() => ViewModel.selectedGoals().indexOf('sportspecific') >= 0),\n foodscale: ko.observable(model.foodscale),\n foodscale_yes: ko.pureComputed(() => ViewModel.foodscale() === 'yes'),\n exercisestyle: ko.observableArray(model.exercisestyle.split(',')),\n exercisestyle_other: ko.pureComputed(() => ViewModel.exercisestyle().indexOf('other') >= 0),\n workoutfrequency: ko.observableArray(model.workoutfrequency.split(',')),\n workoutfrequency_frequent: ko.pureComputed(() => ViewModel.workoutfrequency().indexOf('frequent') >= 0),\n occupationactivitylevel: ko.observableArray(model.occupationactivitylevel.split(',')),\n occupationactivitylevel_other: ko.pureComputed(() => ViewModel.occupationactivitylevel().indexOf('other') >= 0),\n primarycaregiver: ko.observableArray(model.primarycaregiver.split(',')),\n primarycaregiver_other: ko.pureComputed(() => ViewModel.primarycaregiver().indexOf('other') >= 0),\n pregnancy: ko.observable(model.pregnancy),\n pregnancy_yes: ko.pureComputed(() => ViewModel.pregnancy() === 'yes'),\n breastfeeding: ko.observable(model.breastfeeding),\n breastfeeding_yes: ko.pureComputed(() => ViewModel.breastfeeding() === 'yes'),\n howdidyouhearaboutus: ko.observableArray(model.howdidyouhearaboutus.split(',')),\n howdidyouhearaboutus_friend: ko.pureComputed(() => ViewModel.howdidyouhearaboutus().indexOf('friend') >= 0),\n howdidyouhearaboutus_other: ko.pureComputed(() => ViewModel.howdidyouhearaboutus().indexOf('other') >= 0),\n usedprogrambefore: ko.observable(model.usedprogrambefore),\n usedprogrambefore_yes: ko.pureComputed(() => ViewModel.usedprogrambefore() === 'yes'),\n preferredcoach: ko.observable(model.preferredcoach),\n showcoachgender_yes: ko.pureComputed(() => {\n if (+model.affiliateId > 1)\n return true;\n return ViewModel.preferredcoach() <= 0;\n }),\n emergencyContact_name: ko.observable(model.emergencyContact.name),\n emergencyContact_phone: ko.observable(model.emergencyContact.phone),\n emergencyContact: ko.pureComputed(() => (JSON.stringify({ 'name': ViewModel.emergencyContact_name(), 'phone': ViewModel.emergencyContact_phone() })))\n };\n var questionnaireDomNode = document.getElementById('CurrentQuestionnaireModelContent');\n if (typeof questionnaireDomNode != 'undefined' && questionnaireDomNode != null)\n ko.applyBindings(ViewModel, questionnaireDomNode);\n validator = $('#QuestionnaireForm').validate({\n ignore: \":not(:visible)\",\n rules: {\n \"q_242c3dcb-1e96-4a5a-9ea9-85f66540a888\": {\n required: true,\n min: { param: 22 },\n max: { param: 272 }\n },\n \"q_66a60ea9-dc32-44dd-9974-58adaf87931f\": {\n required: true,\n min: { param: 4.7 },\n max: { param: 974 }\n },\n \"q_7c2a8990-d2a0-4676-aaa9-e4eea1cb9aa5\": {\n required() {\n return ViewModel.selectedGoal_sportspecific();\n }\n },\n \"q_e974280c-69ab-43de-8b92-7461f5139b56\": {\n required() {\n return ViewModel.selectedGoal_sportspecific();\n }\n },\n \"q_ef35e49e-00d8-4073-8fa5-3e4dbc37dc49\": {\n required() {\n return ViewModel.selectedGoal_sportspecific();\n }\n },\n \"q_39feab85-77e7-47e6-bc72-3a7165aab642\": {\n required() {\n return ViewModel.foodscale_yes();\n }\n },\n \"q_b77151ad-1c90-4c93-a2db-0f0f38285e0f\": {\n required() {\n return ViewModel.exercisestyle_other();\n }\n },\n \"q_1fe81128-2bfb-4a99-8eed-2c6c407edc74\": {\n required() {\n return ViewModel.workoutfrequency_frequent();\n }\n },\n \"q_c779dd68-e33d-410c-bf6e-cf01f83e96da\": {\n required() {\n return ViewModel.occupationactivitylevel_other();\n }\n },\n \"q_7b2d696b-3358-4088-b7ae-81e27d5df82a\": {\n required() {\n return ViewModel.primarycaregiver_other();\n }\n },\n \"q_bb72d9cb-3b82-4921-b053-f29af8540f89\": {\n required() {\n return ViewModel.pregnancy_yes();\n },\n min: { param: 4.7 },\n max: { param: 974 }\n },\n \"q_d7447398-e26d-463f-ad3d-c625cbe7ad58\": {\n required() {\n return ViewModel.pregnancy_yes();\n }\n },\n \"q_184765d8-895d-4db5-a705-aeeb4fdb7815\": {\n required() {\n return ViewModel.pregnancy_yes();\n }\n },\n \"q_7850e511-66c1-4949-880b-ee41049e8bb3\": {\n required() {\n return false;\n }\n },\n \"q_29f97309-fbbd-4b5e-a002-59f43fc5b554\": {\n required() {\n return ViewModel.pregnancy_yes();\n }\n },\n \"q_987e606e-26c9-45f3-968b-654a82f63f03\": {\n required() {\n return ViewModel.pregnancy_yes();\n }\n },\n \"q_38f79e73-f6e6-4d76-b6bb-e87acc3b8b67\": {\n required() {\n return ViewModel.pregnancy_yes();\n }\n },\n \"q_3ec76035-90a8-4fab-a851-9d21b5478d06\": {\n required() {\n return ViewModel.pregnancy_yes();\n }\n },\n \"q_20ba59fa-c795-4bee-a1b5-fa3795588f71\": {\n required() {\n return ViewModel.breastfeeding_yes();\n }\n },\n \"q_b1ccce3d-7e96-432b-960e-daec98576f61\": {\n required() {\n return ViewModel.breastfeeding_yes();\n }\n },\n \"q_382937fe-481a-40b9-9f0d-6465bfb1ab4d\": {\n required() {\n return ViewModel.howdidyouhearaboutus_friend();\n }\n },\n \"q_f1d814aa-6ccb-455f-8717-cb995bb02193\": {\n required() {\n return ViewModel.howdidyouhearaboutus_other();\n }\n },\n \"q_df8744c9-4b93-4bdf-b529-b62854735a3c\": {\n required() {\n return ViewModel.usedprogrambefore_yes();\n }\n },\n \"q_c702d94c-d4ae-4b37-b780-ce34dc81014e\": {\n required() {\n return ViewModel.usedprogrambefore_yes();\n }\n },\n },\n messages: {\n \"q_242c3dcb-1e96-4a5a-9ea9-85f66540a888\": {\n min: 'Really? You\\'re shorter than the shortest person in the world!?',\n max: 'Really? You\\'re taller than the tallest person in the world!?'\n },\n \"q_66a60ea9-dc32-44dd-9974-58adaf87931f\": {\n min: 'Lucia Zarate, of San Carlos, Mexico, is said by the Guinness Book of Records to have been the lightest woman ever, at just 4.7lb. Surely you weigh more than this baby?',\n max: 'The heaviest person in medical history was Jon Brower Minnoch who weighed 975lbs in 1976. Have you beaten this world record?'\n },\n \"q_bb72d9cb-3b82-4921-b053-f29af8540f89\": {\n min: 'Lucia Zarate, of San Carlos, Mexico, is said by the Guinness Book of Records to have been the lightest woman ever, at just 4.7lb. Surely you weigh more than this baby?',\n max: 'The heaviest person in medical history was Jon Brower Minnoch who weighed 975lbs in 1976. Have you beaten this world record?'\n },\n }\n });\n $('.HotStep[data-readonly=\"true\"]').find('input,select,textarea').prop('disabled', 'disabled');\n $(\".custom-control-input[checked='checked']\").prop('checked', true);\n $('#btnUpdateQuestionnaire').on('click', e => {\n e.preventDefault();\n var form = $('#QuestionnaireForm');\n form.validate(Validator());\n if (form.valid()) {\n Loader.show();\n ClientSurvey.saveAllSteps(() => {\n Loader.hide();\n onQuestonnaireSaved();\n }, (f) => {\n Loader.hide();\n onQuestionnaireFailure(f);\n });\n }\n else {\n var options = new Toasts.ToastOptions('Please ensure all questions have been answered.');\n options.displayMode = Toasts.ToastDisplayModes.REPLACE;\n Toasts.error(options);\n }\n });\n if (onLoaded !== null)\n onLoaded();\n }\n function init(model, onLoaded = null) {\n $(() => { loaded(model, onLoaded); });\n }\n Questionnaire.init = init;\n})(Questionnaire || (Questionnaire = {}));\n\nvar LogMetricTypes;\n(function (LogMetricTypes) {\n LogMetricTypes[LogMetricTypes[\"WEIGHT\"] = 1] = \"WEIGHT\";\n LogMetricTypes[LogMetricTypes[\"PROTEIN\"] = 2] = \"PROTEIN\";\n LogMetricTypes[LogMetricTypes[\"CARBS\"] = 3] = \"CARBS\";\n LogMetricTypes[LogMetricTypes[\"FAT\"] = 4] = \"FAT\";\n LogMetricTypes[LogMetricTypes[\"FIBER\"] = 5] = \"FIBER\";\n LogMetricTypes[LogMetricTypes[\"DAY_TYPE\"] = 6] = \"DAY_TYPE\";\n LogMetricTypes[LogMetricTypes[\"HYDRATION\"] = 7] = \"HYDRATION\";\n LogMetricTypes[LogMetricTypes[\"CHEST\"] = 8] = \"CHEST\";\n LogMetricTypes[LogMetricTypes[\"WAIST\"] = 9] = \"WAIST\";\n LogMetricTypes[LogMetricTypes[\"HIPS\"] = 10] = \"HIPS\";\n LogMetricTypes[LogMetricTypes[\"MOOD\"] = 11] = \"MOOD\";\n LogMetricTypes[LogMetricTypes[\"ENERGY\"] = 12] = \"ENERGY\";\n LogMetricTypes[LogMetricTypes[\"STRESS\"] = 13] = \"STRESS\";\n LogMetricTypes[LogMetricTypes[\"HUNGER\"] = 14] = \"HUNGER\";\n LogMetricTypes[LogMetricTypes[\"ALCOHOL\"] = 15] = \"ALCOHOL\";\n LogMetricTypes[LogMetricTypes[\"SLEEP\"] = 16] = \"SLEEP\";\n LogMetricTypes[LogMetricTypes[\"EATING_OUT\"] = 17] = \"EATING_OUT\";\n})(LogMetricTypes || (LogMetricTypes = {}));\nclass UserProgressData {\n UserId;\n GenderId;\n MetricsCanvasId;\n MoodCanvasId;\n WeightCanvasId;\n ComplianceCanvasId;\n MetricsLabels;\n MetricsChestSeries;\n MetricsWaistSeries;\n MetricsHipsSeries;\n MoodLabels;\n MoodMoodSeries;\n MoodEnergySeries;\n MoodStressSeries;\n MoodHungerSeries;\n WeightLabels;\n WeightSeries;\n ComplianceLabels;\n ComplianceProteinSeries;\n ComplianceCarbsSeries;\n ComplianceFatSeries;\n ComplianceFiberSeries;\n AverageWeightSeries;\n CaloriesSeries;\n InitialPhotos;\n LatestPhotos;\n Gender;\n EnabledMetricTypes;\n}\nvar UserProgress;\n(function (UserProgress) {\n var data;\n var currentPhotoDirection;\n function rotatePhoto() {\n $('.progress-photo').hide();\n switch (currentPhotoDirection) {\n case PhotoDirection.Front:\n currentPhotoDirection = PhotoDirection.Right;\n break;\n case PhotoDirection.Right:\n currentPhotoDirection = PhotoDirection.Back;\n break;\n case PhotoDirection.Back:\n currentPhotoDirection = PhotoDirection.Left;\n break;\n case PhotoDirection.Left:\n currentPhotoDirection = PhotoDirection.Front;\n break;\n }\n $(`.progress-photo.photo-${currentPhotoDirection}`).show();\n $('button.rotatePhoto .direction').html(currentPhotoDirection.toString().toTitleCase());\n }\n function convertMetricsToMetric(metrics) {\n for (var i = 0, l = metrics.length; i < l; i++) {\n metrics[i] = roundTo(toCentimeters(metrics[i]), 1);\n }\n }\n function convertWeightsToMetric(weights) {\n for (var i = 0, l = weights.length; i < l; i++) {\n weights[i] = roundTo(toKilograms(weights[i]), 1);\n }\n }\n function BindMetrics() {\n Logger.withGroup('BindMetrics', () => {\n const metricsCanvas = $(`#${data.MetricsCanvasId}`);\n if (metricsCanvas.length <= 0) {\n Logger.warn(`Could not bind metrics data: Metrics canvas id \"${data.MetricsCanvasId}\" not found.`);\n return;\n }\n var hasWaist = containsValue(data.EnabledMetricTypes, LogMetricTypes.WAIST);\n var hasHips = containsValue(data.EnabledMetricTypes, LogMetricTypes.HIPS);\n var hasChest = containsValue(data.EnabledMetricTypes, LogMetricTypes.CHEST);\n if (!hasWaist && !hasHips && !hasChest) {\n Logger.warn('Could not bind metrics data: Not enough metrics data.');\n return;\n }\n var preferredLengthDisplay = getProperty(Seismic, 'Session.Settings.PreferredLengthDisplay');\n var datasets = [];\n if (hasChest) {\n removeZeroValues(data.MetricsChestSeries);\n if (preferredLengthDisplay != null && preferredLengthDisplay.is('cm'))\n convertMetricsToMetric(data.MetricsChestSeries);\n datasets.push({\n label: 'Chest',\n data: data.MetricsChestSeries,\n fill: false,\n spanGaps: true,\n borderColor: '#3b99ff',\n backgroundColor: '#3b99ff',\n borderWidth: 1\n });\n }\n if (hasWaist) {\n removeZeroValues(data.MetricsWaistSeries);\n if (preferredLengthDisplay != null && preferredLengthDisplay.is('cm'))\n convertMetricsToMetric(data.MetricsWaistSeries);\n datasets.push({\n label: 'Waist',\n data: data.MetricsWaistSeries,\n fill: false,\n spanGaps: true,\n borderColor: '#45E86B',\n backgroundColor: '#45E86B',\n borderWidth: 1\n });\n }\n if (hasHips) {\n removeZeroValues(data.MetricsHipsSeries);\n if (preferredLengthDisplay != null && preferredLengthDisplay.is('cm'))\n convertMetricsToMetric(data.MetricsHipsSeries);\n datasets.push({\n label: 'Hips',\n data: data.MetricsHipsSeries,\n fill: false,\n spanGaps: true,\n borderColor: '#814FFF',\n backgroundColor: '#814FFF',\n borderWidth: 1\n });\n }\n const metricsChartCtx = metricsCanvas[0].getContext('2d');\n const metricsChart = new Chart(metricsChartCtx, {\n type: 'line',\n data: {\n labels: data.MetricsLabels,\n datasets: datasets\n },\n options: {\n scales: {\n yAxes: [{\n id: 'y-axis',\n type: 'linear',\n gridLines: {\n display: false,\n drawBorder: false\n }\n }]\n }\n }\n });\n });\n }\n function BindMood() {\n Logger.withGroup('BindMood', () => {\n const moodCanvas = $(`#${data.MoodCanvasId}`);\n if (moodCanvas.length <= 0) {\n Logger.warn(`Could not bind mood data: Mood canvas id \"${data.MoodCanvasId}\" not found.`);\n return;\n }\n var hasMood = containsValue(data.EnabledMetricTypes, LogMetricTypes.MOOD);\n var hasEnergy = containsValue(data.EnabledMetricTypes, LogMetricTypes.ENERGY);\n var hasStress = containsValue(data.EnabledMetricTypes, LogMetricTypes.STRESS);\n var hasHunger = containsValue(data.EnabledMetricTypes, LogMetricTypes.HUNGER);\n if (!hasMood && !hasEnergy && !hasStress && !hasHunger) {\n Logger.warn('Could not bind mood data: Not enough mood data.');\n return;\n }\n const barAlpha = 1;\n const bar1Color = `rgba(232, 59, 165, ${barAlpha})`;\n const bar2Color = `rgba(59, 255, 207, ${barAlpha})`;\n const bar3Color = `rgba(59, 73, 255, ${barAlpha})`;\n const bar4Color = `rgba(174, 255, 59, ${barAlpha})`;\n var datasets = [];\n if (hasMood) {\n removeZeroValues(data.MoodMoodSeries);\n datasets.push({\n label: 'Mood',\n data: data.MoodMoodSeries,\n fill: false,\n spanGaps: true,\n lineTension: 0.2,\n borderColor: bar1Color,\n backgroundColor: bar1Color,\n borderWidth: 1\n });\n }\n if (hasEnergy) {\n removeZeroValues(data.MoodEnergySeries);\n datasets.push({\n label: 'Energy',\n data: data.MoodEnergySeries,\n fill: false,\n spanGaps: true,\n lineTension: 0.2,\n borderColor: bar2Color,\n backgroundColor: bar2Color,\n borderWidth: 1\n });\n }\n if (hasStress) {\n removeZeroValues(data.MoodStressSeries);\n datasets.push({\n label: 'Stress',\n data: data.MoodStressSeries,\n fill: false,\n spanGaps: true,\n lineTension: 0.2,\n borderColor: bar3Color,\n backgroundColor: bar3Color,\n borderWidth: 1\n });\n }\n if (hasHunger) {\n removeZeroValues(data.MoodHungerSeries);\n datasets.push({\n label: 'Hunger',\n data: data.MoodHungerSeries,\n fill: false,\n spanGaps: true,\n lineTension: 0.2,\n borderColor: bar4Color,\n backgroundColor: bar4Color,\n borderWidth: 1\n });\n }\n const moodChartCtx = moodCanvas[0].getContext('2d');\n const moodChart = new Chart(moodChartCtx, {\n type: 'line',\n data: {\n labels: data.MoodLabels,\n datasets: datasets\n },\n options: {\n scales: {\n yAxes: [\n {\n id: 'y-axis',\n type: 'linear',\n gridLines: {\n display: false,\n drawBorder: false\n }\n }\n ]\n }\n }\n });\n });\n }\n function BindWeight() {\n Logger.withGroup('BindWeight', () => {\n const weightCanvas = $(`#${data.WeightCanvasId}`);\n if (weightCanvas.length <= 0) {\n Logger.warn('Could not find a weight canvas ');\n return;\n }\n if (data.WeightSeries.length <= 0\n || data.WeightLabels.length <= 0\n || data.AverageWeightSeries.length <= 0) {\n Logger.warn('Could not bind weight data: Not enough weight data.');\n return;\n }\n var maxCalories = 0;\n var minCalories = 0;\n for (var c = 0, cl = data.CaloriesSeries.length; c < cl; c++) {\n if (data.CaloriesSeries[c] > maxCalories)\n maxCalories = data.CaloriesSeries[c];\n if (data.CaloriesSeries[c] < minCalories && data.CaloriesSeries[c] !== 0)\n minCalories = data.CaloriesSeries[c];\n }\n maxCalories = roundUpWholeNumber(maxCalories);\n removeZeroValues(data.WeightSeries);\n removeZeroValues(data.AverageWeightSeries);\n removeZeroValues(data.CaloriesSeries);\n if (weightCanvas.length <= 0) {\n Logger.warn(`Could not bind weight data: Weight canvas id \"${data.WeightCanvasId}\" not found.`);\n return;\n }\n if (data.WeightLabels.length <= 0) {\n Logger.warn('Could not bind weight data: Weight labels are missing.');\n return;\n }\n var preferredWeightDisplay = getProperty(Seismic, 'Session.Settings.PreferredWeightDisplay');\n if (preferredWeightDisplay != null && preferredWeightDisplay.is('kgs')) {\n convertWeightsToMetric(data.WeightSeries);\n convertWeightsToMetric(data.AverageWeightSeries);\n }\n const bar1Color = 'rgba(59, 153, 255, 1)';\n const bar2Color = 'rgba(59, 255, 207, 1)';\n const bar3Color = 'rgba(174, 255, 59, 1)';\n const weightChartCtx = weightCanvas[0].getContext('2d');\n const weightChart = new Chart(weightChartCtx, {\n type: 'line',\n data: {\n labels: data.WeightLabels,\n datasets: [\n {\n label: 'Weight',\n data: data.WeightSeries,\n fill: false,\n lineTension: 0,\n yAxisID: 'weight',\n spanGaps: true,\n borderColor: bar1Color,\n backgroundColor: bar1Color,\n borderWidth: 1\n },\n {\n label: 'Avg Weight',\n data: data.AverageWeightSeries,\n yAxisID: 'weight',\n spanGaps: true,\n fill: false,\n borderColor: bar2Color,\n backgroundColor: bar2Color,\n borderWidth: 1\n },\n {\n label: 'Calories',\n data: data.CaloriesSeries,\n yAxisID: 'calories',\n spanGaps: true,\n fill: false,\n borderColor: bar3Color,\n backgroundColor: bar3Color,\n borderWidth: 1\n }\n ]\n },\n options: {\n responsive: true,\n scales: {\n yAxes: [\n {\n id: 'weight',\n type: 'linear',\n position: 'left',\n gridLines: {\n display: false,\n drawBorder: false\n }\n },\n {\n id: 'calories',\n type: 'linear',\n position: 'right',\n ticks: {\n max: maxCalories,\n min: minCalories\n },\n gridLines: {\n display: false,\n drawBorder: false\n }\n }\n ]\n }\n }\n });\n });\n }\n function BindPhotos() {\n Logger.withGroup('BindPhotos', () => {\n const InitialPhotosContainer = $('#InitialPhotosContainer');\n const LatestPhotosContainer = $('#LatestPhotosContainer');\n const photoContainerMarkup = '
';\n const selfUrl = (url, substitute) => {\n if (url === null || url === undefined || url.length <= 0)\n return substitute;\n return url;\n };\n const photoMarkup = (direction, photoSet) => {\n const dirStr = direction.toString();\n if (data && photoSet && data[photoSet] && data[photoSet][dirStr]) {\n const url = selfUrl(data[photoSet][dirStr], `/images/photo_${data.Gender}_${dirStr}.png`);\n return photoContainerMarkup.replace('{DIRECTION}', dirStr).replace('{BACKGROUND}', url);\n }\n else {\n return '
No Image
';\n }\n };\n if (InitialPhotosContainer.length <= 0)\n Logger.warn('Could not bind initial photos. #InitialPhotosContainer not found.');\n if (LatestPhotosContainer.length <= 0)\n Logger.warn('Could not bind latest photos. #LatestPhotosContainer not found.');\n for (let dirString in PhotoDirection) {\n if (PhotoDirection.hasOwnProperty(dirString)) {\n const direction = PhotoDirection[dirString];\n if (InitialPhotosContainer.length > 0)\n InitialPhotosContainer.prepend(photoMarkup(direction, PhotoSet.Initial));\n if (LatestPhotosContainer.length > 0)\n LatestPhotosContainer.prepend(photoMarkup(direction, PhotoSet.Latest));\n }\n }\n $('button.rotatePhoto').on('click', e => {\n Logger.log('rotating photos');\n e.preventDefault();\n rotatePhoto();\n });\n $('button#btnComparePhotos').on('click', e => {\n e.preventDefault();\n var photoCompareOptions = new PhotoCompareTool.PhotoCompareOptions(data.UserId, data.GenderId);\n PhotoCompareTool.show(photoCompareOptions);\n });\n ShowPhotos();\n });\n }\n function ShowPhotos() {\n $('#ProgressPhotos .progress-photo').hide();\n $(`#ProgressPhotos .progress-photo.photo-${currentPhotoDirection}`).show();\n }\n function loaded() {\n Logger.withGroup('UserProgress: Loaded', () => {\n Logger.log(data);\n currentPhotoDirection = PhotoDirection.Front;\n Chart.defaults.global.defaultFontColor = '#514D6A';\n Chart.defaults.global.defaultFontFamily = '\"Nunito Sans\", sans-serif';\n BindMetrics();\n BindMood();\n BindWeight();\n BindPhotos();\n });\n }\n function init(userProgressData) {\n data = userProgressData;\n const complianceData = new ClientCompliance.ComplianceData();\n complianceData.Labels = data.ComplianceLabels;\n complianceData.ProteinSeries = data.ComplianceProteinSeries;\n complianceData.CarbsSeries = data.ComplianceCarbsSeries;\n complianceData.FatSeries = data.ComplianceFatSeries;\n complianceData.FiberSeries = data.ComplianceFiberSeries;\n complianceData.CanvasId = data.ComplianceCanvasId;\n complianceData.EnabledMetricTypes = data.EnabledMetricTypes;\n ClientCompliance.init(complianceData);\n $(() => { loaded(); });\n }\n UserProgress.init = init;\n})(UserProgress || (UserProgress = {}));\n\nclass SaveCardioModel {\n constructor(userId, checkInId) {\n this.UserId = userId;\n this.CheckInId = checkInId;\n this.RxCardioId = 0;\n }\n CardioType1;\n CardioType2;\n CardioValue;\n CheckInId;\n GroupId;\n Notes;\n RxCardioId;\n UserId;\n}\nclass RxCardioModel {\n cardioType1;\n cardioType2;\n cardioValue;\n coachId;\n description;\n groupId;\n notes;\n prescription_CardioId;\n status;\n title;\n titleAbbrv;\n userId;\n}\nvar CardioEditor;\n(function (CardioEditor) {\n var RxCardioItems = [];\n var CheckInId = 0;\n var UserId;\n var RxCardioGroupId = '';\n var CurrentRxCardioId = 0;\n var $CardioNoCardioMsg;\n var $CardioItemsTable;\n var $CardioEditor;\n var $CardioAdder;\n var CardioModal;\n var $CardioTypeSelector;\n var $CardioIssGoal;\n var $btnAddCardio;\n var $CardioIssOptions;\n var $CardioIssGoalAmount;\n var $CardioIssTimes;\n var $CardioHiitOptions;\n var $CardioHiitWarmup;\n var $CardioHiitWork;\n var $CardioHiitRest;\n var $CardioHiitCooldown;\n var $CardioHiitIntervals;\n var $CardioHiitTimes;\n var $CardioNotes;\n function resetModalForm() {\n $btnAddCardio.text('Add');\n CurrentRxCardioId = 0;\n $CardioTypeSelector.val(1);\n $CardioIssGoal.val('mins');\n $CardioIssGoalAmount.val('');\n $CardioIssTimes.val('');\n $CardioHiitWarmup.val('');\n $CardioHiitWork.val('');\n $CardioHiitRest.val('');\n $CardioHiitCooldown.val('');\n $CardioHiitIntervals.val('');\n $CardioHiitTimes.val('');\n }\n function openModal() {\n CardioModal.iziModal('open');\n }\n CardioEditor.openModal = openModal;\n function closeModal() {\n CardioModal.iziModal('close');\n }\n CardioEditor.closeModal = closeModal;\n function deleteCardio(id) {\n Loader.show();\n $.ajax({\n url: `/coach/checkin/cardio/${id}?checkinId=${CheckInId}`,\n type: 'DELETE'\n })\n .done((data, status, xhr) => {\n $(`.CardioItems table tr[data-cardio-id=\"${id}\"]`).remove();\n if (RxCardioItems.length > 0) {\n var foundIndex = -1;\n for (var i = 0, l = RxCardioItems.length; i < l; i++) {\n if (RxCardioItems[i].prescription_CardioId == id) {\n foundIndex = i;\n break;\n }\n }\n if (foundIndex > -1) {\n RxCardioItems.splice(i, 1);\n }\n }\n if (RxCardioItems.length <= 0) {\n $CardioNoCardioMsg.removeClass('d-none');\n $CardioItemsTable.addClass('d-none');\n }\n }).fail((e) => {\n Alerts.error({ content: 'Something went wrong deleting this cardio.' });\n })\n .always(() => { Loader.hide(); });\n }\n function prompt_deleteCardio(id) {\n Alerts.confirm({\n icon: 'far fa-trash-alt',\n title: 'Remove Cardio',\n content: 'Are you sure you want to remove this prescribed cardio item?',\n buttons: {\n no: { text: 'Keep', btnClass: 'btn-primary' },\n yes: {\n text: ' Remove',\n btnClass: 'btn-warning',\n action() {\n deleteCardio(id);\n }\n }\n }\n });\n }\n function editCardio(id) {\n $btnAddCardio.text('Save');\n CurrentRxCardioId = id;\n const data = RxCardioItems.filter(d => d.prescription_CardioId === id)[0];\n $CardioNotes.val(data.notes);\n $CardioTypeSelector.val(data.cardioType1);\n changeCardioType();\n switch (data.cardioType1) {\n case 1:\n case 2:\n $CardioIssGoal.val(data.cardioType2);\n changeCardioIssGoal();\n $CardioIssGoalAmount.val(getBit(data.cardioValue, 0));\n $CardioIssTimes.val(getBit(data.cardioValue, 1));\n break;\n case 3:\n $CardioHiitWarmup.val(getBit(data.cardioType2, 0));\n $CardioHiitWork.val(getBit(data.cardioType2, 1));\n $CardioHiitRest.val(getBit(data.cardioType2, 2));\n $CardioHiitIntervals.val(getBit(data.cardioType2, 3));\n $CardioHiitCooldown.val(getBit(data.cardioType2, 4));\n $CardioHiitTimes.val(data.cardioValue);\n break;\n }\n openModal();\n }\n function bindDeleteEditButtons() {\n $('.btnCardioDelete').off();\n $('.btnCardioDelete').on('click', e => {\n e.preventDefault();\n var $btn = $(e.currentTarget);\n var cardioId = resolveAttr($btn, 'data-cardio-id');\n prompt_deleteCardio(cardioId);\n });\n $('.btnCardioEdit').off('click');\n $('.btnCardioEdit').on('click', e => {\n e.preventDefault();\n var $btn = $(e.currentTarget);\n var cardioId = +resolveAttr($btn, 'data-cardio-id');\n editCardio(cardioId);\n });\n }\n function addEditReturnedCardioItem(cardioItemSerialized) {\n var cardioItem = JSON.parse(cardioItemSerialized);\n const items = RxCardioItems.filter(d => d.prescription_CardioId === cardioItem.prescription_CardioId);\n const exists = items.length > 0;\n if (!exists) {\n const itemHtml = '' +\n '' +\n '' +\n '
' + cardioItem.description + '
' +\n '
' + cardioItem.notes + '
' +\n '' +\n '' +\n ' ' +\n '' +\n '' +\n '';\n $('#CardioEditor .CardioItems table tbody').append(itemHtml);\n RxCardioItems.push(cardioItem);\n bindDeleteEditButtons();\n }\n else {\n const $item = $(`#CardioEditor .CardioItems tr[data-cardio-id=\"${cardioItem.prescription_CardioId}\"]`);\n $item.find('.details .description').html(cardioItem.description);\n $item.find('.details .notes').html(cardioItem.notes);\n }\n $CardioNoCardioMsg.addClass('d-none');\n $CardioItemsTable.removeClass('d-none');\n }\n function showAddEditError(errorMessage = undefined) {\n let message = 'There was an error when trying to add/edit this cardio.';\n if (typeof (errorMessage) !== 'undefined')\n message = errorMessage;\n Alerts.error({ message: message });\n }\n function addCardio() {\n const cardioType = +$CardioTypeSelector.val();\n var cardioModel = new SaveCardioModel(UserId, CheckInId);\n cardioModel.CardioType1 = cardioType;\n cardioModel.Notes = $CardioNotes.val();\n cardioModel.GroupId = RxCardioGroupId;\n cardioModel.RxCardioId = CurrentRxCardioId;\n switch (cardioType) {\n case 1:\n case 2:\n const goal = $CardioIssGoal.val();\n const amount = +$CardioIssGoalAmount.val();\n const issTimes = +$CardioIssTimes.val();\n if (amount <= 0 || issTimes <= 0) {\n Alerts.error({ content: 'You must provide an amount and times per week value(s).' });\n return;\n }\n cardioModel.CardioType2 = goal;\n cardioModel.CardioValue = `${amount},${issTimes}`;\n break;\n case 3:\n const warmup = +$CardioHiitWarmup.val();\n const work = +$CardioHiitWork.val();\n const rest = +$CardioHiitRest.val();\n const cooldown = +$CardioHiitCooldown.val();\n const intervals = +$CardioHiitIntervals.val();\n const hiitTimes = +$CardioHiitTimes.val();\n if (warmup <= 0 || work <= 0 || rest <= 0 || cooldown <= 0 || intervals <= 0 || hiitTimes <= 0) {\n Alerts.error({ content: 'You must provide values for all HIIT inputs.' });\n return;\n }\n cardioModel.CardioType2 = `${warmup},${work},${rest},${intervals},${cooldown}`;\n cardioModel.CardioValue = hiitTimes.toString();\n break;\n }\n Logger.log(cardioModel);\n Loader.show(new LoaderOptions(() => {\n $.post({ url: '/coach/checkin/cardio', data: cardioModel })\n .done((data, status, xhr) => {\n Loader.hide();\n if (xhr.status === 200) {\n if (data.exceptions.length <= 0) {\n addEditReturnedCardioItem(data.messages[0]);\n }\n else {\n showAddEditError();\n }\n }\n else {\n showAddEditError();\n }\n })\n .fail((e) => {\n showAddEditError();\n }).always(() => { Loader.hide(); });\n }));\n closeModal();\n }\n function changeCardioType() {\n switch (+$CardioTypeSelector.val()) {\n case 1:\n case 2:\n $CardioIssOptions.show();\n $CardioHiitOptions.hide();\n break;\n case 3:\n $CardioIssOptions.hide();\n $CardioHiitOptions.show();\n break;\n }\n }\n function changeCardioIssGoal() {\n switch ($CardioIssGoal.val()) {\n case 'time':\n $CardioIssGoalAmount.attr('placeholder', 'mins');\n break;\n case 'calories':\n $CardioIssGoalAmount.attr('placeholder', 'cals');\n break;\n }\n }\n function loaded() {\n if (CheckInId <= 0 || UserId <= 0)\n return;\n $CardioEditor = $('#CardioEditor');\n if ($CardioEditor.length <= 0)\n return;\n $CardioAdder = $CardioEditor.find('.CardioAdder');\n if ($CardioAdder.length <= 0)\n return;\n CardioModal = $CardioAdder.iziModal({\n padding: 20,\n width: 800,\n top: 20,\n onClosed() {\n resetModalForm();\n }\n });\n $CardioNoCardioMsg = $('#CardioNoCardioMsg');\n $CardioItemsTable = $('#CardioEditor .CardioItems');\n $btnAddCardio = $('#btnAddCardio');\n $CardioTypeSelector = $('#CardioTypeSelector');\n $CardioIssOptions = $('#CardioIssOptions');\n $CardioIssGoal = $('#CardioIssGoal');\n $CardioIssGoalAmount = $('#CardioIssGoalAmount');\n $CardioIssTimes = $('#CardioIssTimes');\n $CardioHiitOptions = $('#CardioHiitOptions');\n $CardioHiitWarmup = $('#CardioHiitWarmup');\n $CardioHiitWork = $('#CardioHiitWork');\n $CardioHiitRest = $('#CardioHiitRest');\n $CardioHiitCooldown = $('#CardioHiitCooldown');\n $CardioHiitIntervals = $('#CardioHiitIntervals');\n $CardioHiitTimes = $('#CardioHiitTimes');\n $CardioNotes = $('#CardioNotes');\n $('#btnCancelCardio').on('click', e => {\n e.preventDefault();\n closeModal();\n });\n $btnAddCardio.on('click', e => {\n e.preventDefault();\n addCardio();\n });\n $CardioTypeSelector.on('change', () => {\n changeCardioType();\n });\n $CardioIssGoal.on('change', () => {\n changeCardioIssGoal();\n });\n bindDeleteEditButtons();\n }\n function init(checkInId, userId, rxCardioGroupId, rxCardioItems) {\n CheckInId = checkInId;\n UserId = userId;\n RxCardioGroupId = rxCardioGroupId;\n RxCardioItems = rxCardioItems;\n $(() => { loaded(); });\n }\n CardioEditor.init = init;\n})(CardioEditor || (CardioEditor = {}));\n\nvar CoachingClientCalendar;\n(function (CoachingClientCalendar) {\n class Options {\n constructor() {\n this.clientId = 0;\n this.startDate = null;\n this.endDate = null;\n }\n clientId;\n startDate;\n endDate;\n }\n CoachingClientCalendar.Options = Options;\n var CalendarOptions;\n function displayCalendar(defaultView) {\n var cardSectionActions = $('#CoachingClientCalendar .card-section-actions');\n var cardSectionBody = $('#CoachingClientCalendar .card-section-body.client-calendar-body');\n cardSectionBody.parent().addClass('disabled');\n Logger.log(`Getting calendar for user ${CalendarOptions.clientId}`);\n $.get(`/coach/clients/${CalendarOptions.clientId}/coaching/calendar?startDate=${CalendarOptions.startDate}&endDate=${CalendarOptions.endDate}&defaultView=${defaultView}`)\n .done(data => {\n Logger.log('CoachingClientCalendar: methods response successful');\n cardSectionBody.html(data);\n }).fail((e) => {\n cardSectionBody.html('There was an error loading this content');\n Logger.log(e);\n }).always(() => {\n cardSectionBody.parent().removeClass('disabled');\n cardSectionActions.show();\n });\n }\n CoachingClientCalendar.displayCalendar = displayCalendar;\n function loaded() {\n }\n function init(options) {\n CalendarOptions = options;\n $(() => { loaded(); });\n }\n CoachingClientCalendar.init = init;\n})(CoachingClientCalendar || (CoachingClientCalendar = {}));\n\nclass UpdateCheckInReplyModel {\n constructor() {\n this.checkInId = 0;\n this.coachReply = '';\n }\n checkInId;\n coachReply;\n}\nvar CoachingClientCheckIn;\n(function (CoachingClientCheckIn) {\n var CheckInId = 0;\n var UserId = 0;\n var $LogsPager;\n var LogsPage = 1;\n var LogsStart;\n var LogsEnd;\n var EventsStart;\n var EventsEnd;\n function displayLogs(page = 1) {\n LogsPage = page.constrainMin(1);\n var cardSectionBody = $('#CoachingClientLogs .card-section-body.client-logs-body');\n cardSectionBody.parent().addClass('disabled');\n Logger.log(`Getting logs for user ${UserId} page ${LogsPage}`);\n $.get(`/coach/clients/${UserId}/coaching/logs?page=${LogsPage}&pageSize=10&startDate=${LogsStart}&endDate=${LogsEnd}`)\n .done(data => {\n Logger.log('CoachingClientCheckIn: methods response successful');\n cardSectionBody.html(data);\n bindPager();\n bindNotesViewer();\n CoachingClientLogs.bindMacrosFirstImportIcon();\n CoachingClientLogs.bindMyFitnessPalImportIcon();\n UtcParser.rebuild();\n UnitOutputs.rebuild();\n ToolTips.init();\n }).fail((e) => {\n cardSectionBody.html('There was an error loading this content');\n Logger.log(e);\n }).always(() => {\n cardSectionBody.parent().removeClass('disabled');\n });\n }\n CoachingClientCheckIn.displayLogs = displayLogs;\n function bindNotesViewer() {\n console.log('bindNotesViewer');\n $('.btn-notes').each((i, o) => {\n var $o = $(o);\n var logId = resolveAttr($o, 'data-log-id');\n $(`#NotesModal-${logId}`).iziModal({ padding: 20 });\n $o.on('click', () => {\n $(`#NotesModal-${logId}`).iziModal('open');\n });\n });\n }\n CoachingClientCheckIn.bindNotesViewer = bindNotesViewer;\n function bindPager() {\n $LogsPager = $('#pager_CoachingClientLogs');\n $LogsPager.find('li.page-item.previous a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n previousLogs();\n });\n $LogsPager.find('li.page-item.home a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n homeLogs();\n });\n $LogsPager.find('li.page-item.next a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n nextLogs();\n });\n var cardSectionBody = $('#CoachingClientLogs .card-section-body.client-logs-body');\n cardSectionBody.parent().removeClass('disabled');\n }\n function nextLogs() {\n displayLogs(LogsPage + 1);\n }\n function previousLogs() {\n displayLogs(LogsPage - 1);\n }\n function homeLogs() {\n displayLogs(1);\n }\n function loadTab(tab, forceLoad = false) {\n Logger.withGroup('CoachingClientCheckIn: loadTab', () => {\n const tabId = tab.attr('id');\n const tabPreviouslyLoaded = parseBool(resolveAttrWithDefault(tab, 'data-tab-dataloaded', 'false'));\n if (tabPreviouslyLoaded && !forceLoad)\n return;\n tab.attr('data-tab-dataloaded', 'true');\n Logger.log(`Loading tab: ${tabId}`);\n switch (tabId) {\n case 'notes-tab':\n ClientNotes.displayNotes();\n break;\n case 'checkin-tab':\n break;\n case 'escalations-tab':\n CoachingClientEscalations.displayEscalations();\n break;\n case 'questionnaire-tab':\n TextAreaAutoGrow.recheck();\n break;\n }\n });\n }\n function displayCheckInUpdatedToast() {\n const toastOptions = new Toasts.ToastOptions();\n toastOptions.displayMode = Toasts.ToastDisplayModes.REPLACE;\n toastOptions.message = 'Check-in updated';\n Toasts.success(toastOptions);\n }\n function showConfirmSendRetractAndRefresh(type) {\n const verb = type === 'Send' ? 'sent' : 'retracted';\n Alerts.confirm({\n icon: 'far fa-check-circle',\n title: type + ' Check-in',\n content: `This check-in has now been ${verb}.`,\n buttons: {\n yes: {\n text: 'Ok',\n btnClass: 'btn-primary',\n action() {\n if (type === 'Send') {\n window.location.href = '/coach';\n return;\n }\n window.location.reload();\n }\n }\n }\n });\n }\n function send() {\n Loader.show();\n $.get(`/coach/checkin/${CheckInId}/send`)\n .done((result, status, xhr) => {\n Loader.hide();\n Errors.respondToResponse(result, () => {\n showConfirmSendRetractAndRefresh('Send');\n });\n })\n .fail((e) => {\n Alerts.error({ content: 'Something went wrong sending this check-in.' });\n }).always(() => { Loader.hide(); });\n }\n function validate_send() {\n if (CkEditor.hasPendingChanges()) {\n Loader.hide();\n Alerts.error({ content: \"Your reply has pending changes. Please try again in a moment.\" });\n return false;\n }\n const fiber = $('#txt_NewMacros_Fiber').val();\n const restProtein = +$('#txt_NewMacros_Rest_Protein').val();\n const restCarbs = +$('#txt_NewMacros_Rest_Carbs').val();\n const restFat = +$('#txt_NewMacros_Rest_Fat').val();\n const hasRestMacros = restProtein > 0 && restCarbs > 0 && restFat > 0 && fiber > 0;\n if (hasRestMacros)\n return true;\n const trainProtein = +$('#txt_NewMacros_Train_Protein').val();\n const trainCarbs = +$('#txt_NewMacros_Train_Carbs').val();\n const trainFat = +$('#txt_NewMacros_Train_Fat').val();\n const hasTrainMacros = trainProtein > 0 && trainCarbs > 0 && trainFat > 0 && fiber > 0;\n if (hasTrainMacros)\n return true;\n const refeedProtein = +$('#txt_NewMacros_Refeed_Protein').val();\n const refeedCarbs = +$('#txt_NewMacros_Refeed_Carbs').val();\n const refeedFat = +$('#txt_NewMacros_Refeed_Fat').val();\n const hasRefeedMacros = refeedProtein > 0 && refeedCarbs > 0 && refeedFat > 0 && fiber > 0;\n if (hasRefeedMacros)\n return true;\n Alerts.warning({ content: 'You must provide at least 1 day of macros. See the macros tab.' });\n return true;\n }\n function prompt_Send() {\n if (!validate_send())\n return;\n Alerts.confirm({\n icon: 'far fa-arrow-to-right',\n title: 'Send Check-in',\n content: 'Are you sure you want to send this check-in?',\n buttons: {\n no: { text: 'No', btnClass: 'btn-primary' },\n yes: {\n text: ' Send',\n btnClass: 'btn-warning',\n action() {\n send();\n }\n }\n }\n });\n }\n function loaded() {\n $('a[data-toggle=\"tab\"]').on('shown.bs.tab', e => {\n var tabId = resolveAttr($(e.target), 'href');\n var tab = $(tabId);\n Logger.log(tabId);\n loadTab(tab);\n });\n $('#txtStartDate').daterangepicker({\n singleDatePicker: true,\n showDropdowns: true,\n drops: 'up',\n maxYear: parseInt(moment().format('YYYY'), 10)\n });\n $('#txtCheckInDate').daterangepicker({\n singleDatePicker: true,\n showDropdowns: true,\n minDate: new Date(),\n drops: 'up',\n maxYear: parseInt(moment().format('YYYY'), 10)\n });\n $('#txtCheckInDate').on('change', e => {\n var $e = $(e.currentTarget);\n var val = encodeURI($e.val());\n $.get(`/coach/checkin/${CheckInId}/changedate?dateChoice=${val}`)\n .done((data, status, xhr) => {\n displayCheckInUpdatedToast();\n })\n .fail(err => {\n Logger.log(err);\n Alerts.error({\n title: 'Whoops',\n content: 'Sorry, it looks like there was an error. Please try again.',\n backgroundDismiss: true\n });\n });\n });\n $('#txtStartDate').on('change', e => {\n var $e = $(e.currentTarget);\n var val = encodeURI($e.val());\n $.get(`/coach/checkin/${CheckInId}/setstartdate?dateChoice=${val}`)\n .done((data, status, xhr) => {\n displayCheckInUpdatedToast();\n })\n .fail(err => {\n Logger.log(err);\n Alerts.error({\n title: 'Whoops',\n content: 'Sorry, it looks like there was an error. Please try again.',\n backgroundDismiss: true\n });\n });\n });\n $('#btnSendCheckIn').on('click', () => {\n prompt_Send();\n });\n $('#btnOpenCardio').on('click', e => {\n e.preventDefault();\n CardioEditor.openModal();\n });\n $('#btnComparePhotos').on('click', e => {\n e.preventDefault();\n var $o = $(e.currentTarget);\n var gid = +resolveAttrWithDefault($o, 'data-user-gender-id', '0');\n var cid = +resolveAttrWithDefault($o, 'data-checkin-id', '0');\n var pcid = +resolveAttrWithDefault($o, 'data-previous-checkin-id', '0');\n if (gid <= 0) {\n $o.hide();\n Logger.error('Could not show comparison tool: Gender id was not found.');\n return;\n }\n var photoCompareOptions = new PhotoCompareTool.PhotoCompareOptions(UserId, gid);\n photoCompareOptions.leftCheckInId = pcid;\n photoCompareOptions.rightCheckInId = cid;\n PhotoCompareTool.show(photoCompareOptions);\n });\n $('#btnEscalate').on('click', (e) => {\n e.preventDefault();\n CoachingClientEscalations.prompt_Escalate(UserId, () => {\n $('#btnEscalate').attr('disabled', '');\n Alerts.success({ content: 'This client has been escalated.' });\n var tabLink = $('#escalations-tab-link');\n tabLink.click();\n loadTab(tabLink, true);\n });\n });\n if ($('#txtCoachInstructions').is(':visible')) {\n CkEditor.init('#txtCoachInstructions', (value) => { updateReply(value); }, 1500);\n }\n if ($('#txtCoachReply').is(':visible')) {\n CkEditor.init('#txtCoachReply', (value) => { updateReply(value); }, 1500);\n }\n bindPager();\n CoachingClientLogs.bindMacrosFirstImportIcon();\n CoachingClientLogs.bindMyFitnessPalImportIcon();\n CoachingClientCalendar.displayCalendar('list');\n }\n function updateReply(value) {\n var model = new UpdateCheckInReplyModel();\n model.checkInId = CheckInId;\n model.coachReply = value;\n $.post({ url: '/coach/checkin/updatereply', data: model })\n .done(() => {\n displayCheckInUpdatedToast();\n });\n }\n function init(checkInId, userId, rxCardioGroupId, rxMacrosId, rxCardioItems, userPhotos, logStart, logEnd, eventsStart, eventsEnd, userIntegrationSummary) {\n CheckInId = checkInId;\n UserId = userId;\n LogsStart = new moment(logStart).utc().format('MM/DD/YYYY');\n LogsEnd = new moment(logEnd).utc().format('MM/DD/YYYY');\n EventsStart = new moment(eventsStart).utc().format('MM/DD/YYYY');\n EventsEnd = new moment(eventsEnd).utc().format('MM/DD/YYYY');\n ClientNotes.init(userId);\n LogMetricsToggles.init(userId);\n CardioEditor.init(checkInId, userId, rxCardioGroupId, rxCardioItems);\n bindNotesViewer();\n CheckInPhotos.init(userPhotos, checkInId, false, false);\n MacrosEditor.init(userId, rxMacrosId, checkInId, userIntegrationSummary);\n CoachingClientLogs.init(userId);\n const escalationOptions = new CoachingClientEscalations.Options();\n escalationOptions.clientId = userId;\n CoachingClientEscalations.init(escalationOptions);\n const calendarOptions = new CoachingClientCalendar.Options();\n calendarOptions.clientId = userId;\n calendarOptions.startDate = EventsStart;\n calendarOptions.endDate = EventsEnd;\n CoachingClientCalendar.init(calendarOptions);\n $(() => { loaded(); });\n }\n CoachingClientCheckIn.init = init;\n})(CoachingClientCheckIn || (CoachingClientCheckIn = {}));\n\nvar CoachingClientCheckIns;\n(function (CoachingClientCheckIns) {\n var DisplayForCoach = true;\n var ClientId;\n var $Pager;\n var Page = 1;\n function displayCheckIns(page = 1) {\n Page = page.constrainMin(1);\n var cardSectionBody = $('#CoachingClientCheckIns .card-section-body.checkins-body');\n cardSectionBody.parent().addClass('disabled');\n Logger.log(`Getting check-ins for user ${ClientId}`);\n $.get(`/coach/clients/${ClientId}/coaching/checkins?page=${Page}`)\n .done(data => {\n Logger.log('CoachingClientCheckIns: methods response successful');\n cardSectionBody.html(data);\n bindPager();\n UtcParser.rebuild();\n $('.btn-checkin-details').on('click', e => {\n const $btn = $(e.currentTarget);\n const checkInId = +resolveAttr($btn.closest('tr'), 'data-checkin-id');\n editCheckIn(checkInId);\n });\n }).fail((e) => {\n cardSectionBody.html('There was an error loading this content');\n Logger.log(e);\n }).always(() => {\n cardSectionBody.parent().removeClass('disabled');\n });\n }\n CoachingClientCheckIns.displayCheckIns = displayCheckIns;\n function editCheckIn(checkInId) {\n const loaderOptions = new LoaderOptions(() => {\n var url = DisplayForCoach ? `/coach/checkin/${checkInId}` : `/${Seismic.area()}/users/${ClientId}/checkin/${checkInId}`;\n window.location.href = url;\n });\n Loader.show(loaderOptions);\n }\n function next() {\n displayCheckIns(Page + 1);\n }\n function previous() {\n displayCheckIns(Page - 1);\n }\n function home() {\n displayCheckIns(1);\n }\n function bindPager() {\n $Pager = $('#pager_CoachingClientCheckIns');\n $Pager.find('li.page-item.previous a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n previous();\n });\n $Pager.find('li.page-item.home a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n home();\n });\n $Pager.find('li.page-item.next a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n next();\n });\n }\n function loaded() {\n }\n function init(clientId, displayForCoach) {\n DisplayForCoach = displayForCoach;\n ClientId = clientId;\n $(() => { loaded(); });\n }\n CoachingClientCheckIns.init = init;\n})(CoachingClientCheckIns || (CoachingClientCheckIns = {}));\n\nvar CoachingClientLogs;\n(function (CoachingClientLogs) {\n var ClientId;\n var $Pager;\n var Page = 1;\n function displayLogs(page = 1) {\n Page = page.constrainMin(1);\n var cardSectionBody = $('#CoachingClientLogs .card-section-body.client-logs-body');\n cardSectionBody.parent().addClass('disabled');\n Logger.log(`Getting logs for user ${ClientId}`);\n $.get(`/coach/clients/${ClientId}/coaching/logs?page=${Page}`)\n .done(data => {\n Logger.log('CoachingClientLogs: methods response successful');\n cardSectionBody.html(data);\n bindPager();\n bindNotesViewer();\n bindMacrosFirstImportIcon();\n bindMyFitnessPalImportIcon();\n UtcParser.rebuild();\n UnitOutputs.rebuild();\n ToolTips.init();\n }).fail((e) => {\n cardSectionBody.html('There was an error loading this content');\n Logger.log(e);\n }).always(() => {\n cardSectionBody.parent().removeClass('disabled');\n });\n }\n CoachingClientLogs.displayLogs = displayLogs;\n function next() {\n displayLogs(Page + 1);\n }\n function previous() {\n displayLogs(Page - 1);\n }\n function home() {\n displayLogs(1);\n }\n function bindNotesViewer() {\n $('.btn-notes').each((i, o) => {\n var $o = $(o);\n var logId = resolveAttr($o, 'data-log-id');\n $(`#NotesModal-${logId}`).iziModal({ padding: 20 });\n $o.on('click', () => {\n $(`#NotesModal-${logId}`).iziModal('open');\n });\n });\n }\n CoachingClientLogs.bindNotesViewer = bindNotesViewer;\n function bindMacrosFirstImportIcon() {\n $('.macrosFirstImportIcon').on('click', (e) => {\n showMacrosFirstDailyLog($(e.currentTarget));\n });\n }\n CoachingClientLogs.bindMacrosFirstImportIcon = bindMacrosFirstImportIcon;\n function bindMyFitnessPalImportIcon() {\n $('.myFitnessPalImportIcon').on('click', (e) => {\n showMyFitnessPalDailyLog($(e.currentTarget));\n });\n }\n CoachingClientLogs.bindMyFitnessPalImportIcon = bindMyFitnessPalImportIcon;\n function showMyFitnessPalDailyLog(o) {\n const date = resolveAttr(o, 'data-logdate');\n const m = new moment(date);\n $.confirm({\n icon: 'far fa-cloud-download-alt',\n title: `MyFitnessPal Daily Log for ${m.format('MM/DD')}`,\n columnClass: 'col',\n content: `URL:/coach/clients/${ClientId}/mfpdailylog?date=${date}`,\n buttons: {\n Close() { }\n }\n });\n }\n function showMacrosFirstDailyLog(o) {\n const date = resolveAttr(o, 'data-logdate');\n const m = new moment(date);\n $.confirm({\n icon: 'far fa-cloud-download-alt',\n title: `MacrosFirst Daily Log for ${m.format('MM/DD')}`,\n columnClass: 'col',\n content: `URL:/coach/clients/${ClientId}/mfdailylog?date=${date}`,\n buttons: {\n Close() { }\n }\n });\n }\n function bindPager() {\n $Pager = $('#pager_CoachingClientLogs');\n $Pager.find('li.page-item.previous a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n previous();\n });\n $Pager.find('li.page-item.home a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n home();\n });\n $Pager.find('li.page-item.next a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n next();\n });\n }\n function loaded() {\n }\n function init(clientId) {\n ClientId = clientId;\n $(() => { loaded(); });\n }\n CoachingClientLogs.init = init;\n})(CoachingClientLogs || (CoachingClientLogs = {}));\n\nvar CoachingDelegation;\n(function (CoachingDelegation) {\n function loaded() {\n $('.btnDelegateCoach').on('click', (e) => {\n e.preventDefault();\n var delegationId = +resolveAttr($(e.currentTarget), 'data-delegation-id');\n Seismic.delegateCoach(delegationId);\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n CoachingDelegation.init = init;\n})(CoachingDelegation || (CoachingDelegation = {}));\n\nvar CoachingClientEscalation;\n(function (CoachingClientEscalation) {\n var EscalationId;\n function updateEscalation(message) {\n Loader.show();\n $.post({\n url: `/coach/escalations/update?id=${EscalationId}`,\n data: $.param({\n message: message\n })\n })\n .done(response => {\n Loader.hide();\n var options = new Toasts.ToastOptions();\n options.message = 'Escalation updated';\n Toasts.success(options);\n })\n .fail(err => {\n Loader.hide();\n Logger.log(err);\n Alerts.error({ content: 'We could not update this escalation at this time.' });\n });\n }\n function cancelEscalation() {\n if (EscalationId <= 0)\n return;\n Loader.show();\n $.post({ url: `/coach/escalations/cancel?id=${EscalationId}` })\n .done(response => {\n window.location.href = '/coach/escalations';\n })\n .fail(err => {\n Loader.hide();\n Logger.log(err);\n Alerts.error({ content: 'We could not cancel this escalation at this time.' });\n });\n }\n function prompt_CancelEscalation() {\n Alerts.confirm({\n icon: 'far fa-comment-slash',\n title: 'Cancel Escalation?',\n content: \"Are you sure you want to cancel this escalation?\",\n buttons: {\n no: { text: 'No' },\n yes: {\n text: 'Yes, cancel it!',\n btnClass: 'btn-primary',\n action: function () {\n cancelEscalation();\n }\n }\n }\n });\n }\n function loaded() {\n $('#btnUpdateEscalation').on('click', (e) => {\n e.preventDefault();\n var message = $('#txtEscalationMessage').val();\n if (message.length <= 0)\n return;\n updateEscalation(message);\n });\n $('#btnCancelEscalation').on('click', (e) => {\n e.preventDefault();\n prompt_CancelEscalation();\n });\n }\n function init(escalationId) {\n EscalationId = escalationId;\n $(() => { loaded(); });\n }\n CoachingClientEscalation.init = init;\n})(CoachingClientEscalation || (CoachingClientEscalation = {}));\n\nvar CoachingClientEscalations;\n(function (CoachingClientEscalations) {\n class Options {\n constructor() {\n this.forView = 'coach';\n this.affiliateId = 0;\n this.coachId = 0;\n this.clientId = 0;\n this.hideClient = true;\n this.hideCoach = true;\n this.hideStatus = false;\n this.hideUpdated = false;\n this.hideUpdatedBy = false;\n }\n forView;\n affiliateId;\n coachId;\n clientId;\n hideClient;\n hideCoach;\n hideStatus;\n hideUpdated;\n hideUpdatedBy;\n }\n CoachingClientEscalations.Options = Options;\n var EscalationOptions;\n var $Pager;\n var Page = 1;\n function displayEscalations(page = 1) {\n Page = page.constrainMin(1);\n var cardSectionBody = $('#CoachingClientEscalations .card-section-body.client-escalations-body');\n cardSectionBody.parent().addClass('disabled');\n Logger.log(`Getting escalations for user ${EscalationOptions.clientId}`);\n $.get(`/coach/escalations/list?page=${Page}&forView=${EscalationOptions.forView}&affiliateId=${EscalationOptions.affiliateId}&clientId=${EscalationOptions.clientId}&coachId=${EscalationOptions.coachId}&hideClient=${EscalationOptions.hideClient}&hideCoach=${EscalationOptions.hideCoach}&hideStatus=${EscalationOptions.hideStatus}&hideUpdated=${EscalationOptions.hideUpdated}&hideUpdatedBy=${EscalationOptions.hideUpdatedBy}`)\n .done(data => {\n Logger.log('CoachingClientEscalations: methods response successful');\n cardSectionBody.html(data);\n bindPager();\n UtcParser.rebuild();\n UnitOutputs.rebuild();\n ToolTips.init();\n UserQuickInfo.rebuild();\n }).fail((e) => {\n cardSectionBody.html('There was an error loading this content');\n Logger.log(e);\n }).always(() => {\n cardSectionBody.parent().removeClass('disabled');\n });\n }\n CoachingClientEscalations.displayEscalations = displayEscalations;\n function next() {\n displayEscalations(Page + 1);\n }\n function previous() {\n displayEscalations(Page - 1);\n }\n function home() {\n displayEscalations(1);\n }\n function bindPager() {\n $Pager = $('#pager_CoachingClientEscalations');\n $Pager.find('li.page-item.previous a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n previous();\n });\n $Pager.find('li.page-item.home a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n home();\n });\n $Pager.find('li.page-item.next a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n next();\n });\n }\n function prompt_Escalate(userId, onEscalated = undefined, onError = undefined) {\n if ($('#EscalationModal').length <= 0)\n $('body').append('
');\n $('#EscalationModal').iziModal({\n padding: 20,\n radius: 10,\n theme: 'light',\n zindex: 9999,\n title: 'Escalation',\n headerColor: '#FFF',\n restoreDefaultContent: true,\n onOpening(modal) {\n modal.startLoading();\n $.get(`/coach/escalations/escalate-form?userId=${userId}`, data => {\n $('#EscalationModal .iziModal-content').html(data);\n modal.stopLoading();\n });\n },\n onOpened(modal) {\n $('#EscalationModal .iziModal-content .container').css({ visibility: 'visible' });\n $('#EscalationModal #btnEscalate').on('click', e => {\n e.preventDefault();\n var content = $('#EscalationModalForm #escalationText').val();\n if (content.length <= 0)\n return;\n Loader.show();\n $.post({\n url: `/coach/escalations/escalate?userId=${userId}`,\n data: $('#EscalationModalForm').serialize()\n })\n .done((data) => {\n Loader.hide();\n $('#EscalationModal').iziModal('close');\n data = data.trim().toLowerCase().replace(/\"/g, '');\n switch (data) {\n case 'no_coach':\n Alerts.error({ content: 'This client does not have a coach assigned.' });\n break;\n case 'not_coach':\n Alerts.error({ content: 'You cannot escalate this client because you are not the client\\'s coach.' });\n break;\n case 'open_escalations':\n Alerts.error({ content: 'This client already has an open escalation.' });\n break;\n case 'no_checkin':\n Alerts.error({ content: 'This client doesn\\'t have any check-ins.' });\n break;\n case '':\n if (onEscalated)\n onEscalated();\n return;\n }\n })\n .fail(err => {\n Logger.log(err);\n if (onError)\n onError();\n });\n });\n }\n });\n $('#EscalationModal').iziModal('open');\n }\n CoachingClientEscalations.prompt_Escalate = prompt_Escalate;\n function init(options) {\n EscalationOptions = options;\n }\n CoachingClientEscalations.init = init;\n})(CoachingClientEscalations || (CoachingClientEscalations = {}));\n\nclass MacrosFirstSchedule {\n monday;\n tuesday;\n wednesday;\n thursday;\n friday;\n saturday;\n sunday;\n constructor(monday = false, tuesday = false, wednesday = false, thursday = false, friday = false, saturday = false, sunday = false) {\n this.monday = monday;\n this.tuesday = tuesday;\n this.wednesday = wednesday;\n this.thursday = thursday;\n this.friday = friday;\n this.saturday = saturday;\n this.sunday = sunday;\n }\n}\nclass MacrosFirstGoal {\n calories;\n protein;\n carbs;\n fat;\n eid;\n name;\n schedule;\n constructor(calories = null, protein = 0, carbs = 0, fat = 0, eid = '', name = '', schedule = new MacrosFirstSchedule()) {\n this.calories = calories;\n this.protein = protein;\n this.carbs = carbs;\n this.fat = fat;\n this.eid = eid;\n this.name = name;\n this.schedule = schedule;\n }\n}\nvar MacrosEditor;\n(function (MacrosEditor) {\n let DayType;\n (function (DayType) {\n DayType[\"TRAIN\"] = \"TRAIN\";\n DayType[\"REST\"] = \"REST\";\n DayType[\"REFEED\"] = \"REFEED\";\n })(DayType || (DayType = {}));\n let MacroType;\n (function (MacroType) {\n MacroType[\"PROTEIN\"] = \"PROTEIN\";\n MacroType[\"CARBS\"] = \"CARBS\";\n MacroType[\"FAT\"] = \"FAT\";\n MacroType[\"FIBER\"] = \"FIBER\";\n })(MacroType || (MacroType = {}));\n class SaveMacrosModel {\n checkInId;\n clientId;\n dayType;\n macroType;\n rxMacrosId;\n macroValue;\n constructor(checkInId = 0, clientId = 0, dayType = DayType.TRAIN, macroType = MacroType.PROTEIN, rxMacrosId = 0, macroValue = 0) {\n this.checkInId = checkInId;\n this.clientId = clientId;\n this.dayType = dayType;\n this.macroType = macroType;\n this.rxMacrosId = rxMacrosId;\n this.macroValue = macroValue;\n }\n }\n class Macros {\n protein;\n carbs;\n fat;\n fiber;\n constructor(protein = 0, carbs = 0, fat = 0, fiber = 0) {\n this.protein = protein;\n this.carbs = carbs;\n this.fat = fat;\n this.fiber = fiber;\n }\n }\n class MacrosFirstGoalsEditorModel {\n selectedMacroDay;\n selectedMacros;\n selectedGoal;\n selectedGoalDays;\n targetName;\n sendNewGoals;\n constructor(selectedMacroDay = 'rest', selectedMacros = new Macros(), selectedGoal = '', selectedGoalDays = new MacrosFirstSchedule(true, true, true, true, true, true, true), targetName = '', sendNewGoals = true) {\n this.selectedMacroDay = selectedMacroDay;\n this.selectedMacros = selectedMacros;\n this.selectedGoal = selectedGoal;\n this.selectedGoalDays = selectedGoalDays;\n this.targetName = targetName;\n this.sendNewGoals = sendNewGoals;\n }\n }\n class MacrosCalculator {\n static getCals(p, c, f) {\n return p * 4 + c * 4 + f * 9;\n }\n static getRatio(p, c, f) {\n const total = MacrosCalculator.getCals(p, c, f);\n if (total > 0) {\n const pr = Math.round(((p * 4) / total) * 100);\n const cr = Math.round(((c * 4) / total) * 100);\n const fr = Math.round(((f * 9) / total) * 100);\n return `${pr}/${cr}/${fr}`;\n }\n return '';\n }\n }\n class MacrosService {\n clientId;\n checkInId;\n rxMacrosId;\n debounce;\n constructor(clientId, checkInId, rxMacrosId, debounceOptions) {\n this.clientId = clientId;\n this.checkInId = checkInId;\n this.rxMacrosId = rxMacrosId;\n Logger.log('Creating MacrosService...');\n this.debounce = new Debounce(debounceOptions);\n }\n saveMacro(value, macro, day) {\n Logger.log('Saving macro...');\n this.debounce.push(() => {\n const macros = new SaveMacrosModel(this.checkInId, this.clientId, day, macro, this.rxMacrosId, value);\n $.post({ url: '/coach/checkin/macros', data: macros });\n });\n }\n }\n class MacrosFirstGoalsService {\n clientId;\n constructor(clientId) {\n this.clientId = clientId;\n Logger.log('Creating MacrosFirstGoalsService...');\n }\n sendNewGoal(name, protein, carbs, fat, fiber, selectedGoalDays) {\n Logger.log('Sending new goal...');\n return new Promise((resolve, reject) => {\n $.post({\n url: `/coach/checkin/macrosfirst/goals/${this.clientId}?name=${name}&protein=${protein}&carbs=${carbs}&fat=${fat}&fiber=${fiber}`,\n contentType: 'application/json',\n data: JSON.stringify(selectedGoalDays),\n })\n .done(() => {\n Alerts.success({\n content: 'These macro goals have been sent to MacrosFirst.',\n });\n resolve();\n })\n .fail((error) => {\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n reject(error);\n })\n .always(() => {\n Loader.hide();\n });\n });\n }\n updateExistingGoal(eid, name, protein, carbs, fat, fiber, selectedGoalDays) {\n Logger.log('Updating existing goal...');\n return new Promise((resolve, reject) => {\n $.ajax({\n url: `/coach/checkin/macrosfirst/goals/${this.clientId}?eid=${eid}&name=${name}&protein=${protein}&carbs=${carbs}&fat=${fat}&fiber=${fiber}`,\n type: 'Patch',\n contentType: 'application/json',\n data: JSON.stringify(selectedGoalDays),\n })\n .done(() => {\n Alerts.success({\n content: 'These macro goals have been sent to MacrosFirst.',\n });\n resolve();\n })\n .fail((error) => {\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n reject(error);\n })\n .always(() => {\n Loader.hide();\n });\n });\n }\n }\n class ObseravableViewModel {\n inputTrainProtein;\n inputTrainCarbs;\n inputTrainFat;\n inputRestProtein;\n inputRestCarbs;\n inputRestFat;\n inputRefeedProtein;\n inputRefeedCarbs;\n inputRefeedFat;\n outputTrainCalories;\n outputTrainRatio;\n outputRestCalories;\n outputRestRatio;\n outputRefeedCalories;\n outputRefeedRatio;\n outputSuggestedFiber;\n }\n class MacrosEditorUI {\n clientId;\n checkInId;\n rxMacrosId;\n userIntegrationSummary;\n uiElements;\n defaultTargetName = 'Seismic Macros';\n macrosService;\n macrosFirstGoalsService;\n macrosFirstGoalsEditorModel;\n $macrosFirstGoalsEditor;\n days = [\n 'sunday',\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n ];\n constructor(clientId, checkInId, rxMacrosId, userIntegrationSummary) {\n this.clientId = clientId;\n this.checkInId = checkInId;\n this.rxMacrosId = rxMacrosId;\n this.userIntegrationSummary = userIntegrationSummary;\n Logger.log('Creating MacrosEditorUI...');\n const debounceOptions = new DebounceOptions();\n debounceOptions.IntervalTime = 500;\n debounceOptions.DebounceId = 'MacrosDebounce';\n debounceOptions.TickOnEmpty = () => {\n var toastOptions = new Toasts.ToastOptions();\n toastOptions.displayMode = Toasts.ToastDisplayModes.REPLACE;\n toastOptions.message = 'Check-in updated';\n Toasts.success(toastOptions);\n };\n this.macrosService = new MacrosService(clientId, checkInId, rxMacrosId, debounceOptions);\n this.macrosFirstGoalsService = new MacrosFirstGoalsService(clientId);\n this.macrosFirstGoalsEditorModel = new MacrosFirstGoalsEditorModel();\n }\n init() {\n Logger.log('Initializing MacrosEditorUI...');\n $(() => {\n this.setupKnockoutViewModel();\n this.setupElementBindings();\n this.setupMacrosFirstGoalsEditor();\n });\n }\n getMacrosForDay(dayType) {\n Logger.log(`Getting macros for day type: ${dayType}`);\n const macroDaySelector = dayType.charAt(0).toUpperCase() + dayType.slice(1);\n const macros = new Macros();\n macros.protein = +$(`#txt_NewMacros_${macroDaySelector}_Protein`).val();\n macros.carbs = +$(`#txt_NewMacros_${macroDaySelector}_Carbs`).val();\n macros.fat = +$(`#txt_NewMacros_${macroDaySelector}_Fat`).val();\n macros.fiber = +$('#txt_NewMacros_Fiber').val();\n return macros;\n }\n dayTypes = ['Train', 'Rest', 'Refeed'];\n createObservableFromInput(dayType, macroType) {\n return ko.observable($(`#txt_NewMacros_${dayType}_${macroType}`).val());\n }\n createComputedCalories(protein, carbs, fat) {\n return ko.pureComputed(() => Math.round(MacrosCalculator.getCals(+protein(), +carbs(), +fat())));\n }\n createComputedRatio(protein, carbs, fat) {\n return ko.pureComputed(() => MacrosCalculator.getRatio(+protein(), +carbs(), +fat()));\n }\n setupKnockoutViewModel() {\n Logger.log(`Setting up knockout view model 1...`);\n const observableViewModel = new ObseravableViewModel();\n this.dayTypes.forEach((dayType) => {\n observableViewModel[`input${dayType}Protein`] = this.createObservableFromInput(dayType, 'Protein');\n observableViewModel[`input${dayType}Carbs`] = this.createObservableFromInput(dayType, 'Carbs');\n observableViewModel[`input${dayType}Fat`] = this.createObservableFromInput(dayType, 'Fat');\n observableViewModel[`output${dayType}Calories`] = this.createComputedCalories(observableViewModel[`input${dayType}Protein`], observableViewModel[`input${dayType}Carbs`], observableViewModel[`input${dayType}Fat`]);\n observableViewModel[`output${dayType}Ratio`] = this.createComputedRatio(observableViewModel[`input${dayType}Protein`], observableViewModel[`input${dayType}Carbs`], observableViewModel[`input${dayType}Fat`]);\n });\n observableViewModel.outputSuggestedFiber = ko.pureComputed(() => {\n const getGramsLow = (g) => Math.round((g / 1000) * 10);\n const getGramsHigh = (g) => Math.round((g / 1000) * 15);\n const trainCals = observableViewModel.outputTrainCalories();\n const restCals = observableViewModel.outputRestCalories();\n const calsToUse = trainCals > restCals ? trainCals : restCals;\n return `${getGramsLow(calsToUse)}-${getGramsHigh(calsToUse)}g`;\n });\n const macrosEditorDomNode = document.getElementById('MacrosEditor');\n if (macrosEditorDomNode) {\n Logger.log(`Applying ko bindings...`);\n ko.applyBindings(observableViewModel, macrosEditorDomNode);\n }\n else {\n Logger.warn('Could not find MacrosEditor dom object.');\n }\n }\n setupElementBindings() {\n $('.input_macro').on('change', (e) => {\n const $e = $(e.currentTarget);\n const val = +$e.val();\n const macro = resolveAttr($e, 'data-macro');\n const day = resolveAttr($e, 'data-day');\n this.macrosService.saveMacro(val, macro, day);\n });\n $('#btnCopyFromRest').on('click', (e) => {\n e.preventDefault();\n $('#txt_NewMacros_Train_Protein').val($('#txt_NewMacros_Rest_Protein').val());\n $('#txt_NewMacros_Train_Protein').trigger('change');\n $('#txt_NewMacros_Train_Carbs').val($('#txt_NewMacros_Rest_Carbs').val());\n $('#txt_NewMacros_Train_Carbs').trigger('change');\n $('#txt_NewMacros_Train_Fat').val($('#txt_NewMacros_Rest_Fat').val());\n $('#txt_NewMacros_Train_Fat').trigger('change');\n });\n $('#btnCopyFromTrain').on('click', (e) => {\n e.preventDefault();\n $('#txt_NewMacros_Refeed_Protein').val($('#txt_NewMacros_Train_Protein').val());\n $('#txt_NewMacros_Refeed_Protein').trigger('change');\n $('#txt_NewMacros_Refeed_Carbs').val($('#txt_NewMacros_Train_Carbs').val());\n $('#txt_NewMacros_Refeed_Carbs').trigger('change');\n $('#txt_NewMacros_Refeed_Fat').val($('#txt_NewMacros_Train_Fat').val());\n $('#txt_NewMacros_Refeed_Fat').trigger('change');\n });\n }\n setupMacrosFirstGoalsEditor() {\n this.$macrosFirstGoalsEditor = $('#MacrosFirstGoalsEditor');\n if (this.$macrosFirstGoalsEditor.length <= 0)\n return;\n this.$macrosFirstGoalsEditor.iziModal({\n overlayClose: true,\n closeOnEscape: true,\n padding: 20,\n onOpening: (izi) => {\n this.onOpeningLocal(izi);\n },\n onClosed: (izi) => { },\n onOpened: (izi) => { },\n });\n $('#btn_SendMacrosToMacrosFirst').on('click', (e) => {\n e.preventDefault();\n this.$macrosFirstGoalsEditor.iziModal('open');\n });\n }\n onOpeningLocal(izi) {\n this.initializeUIElements(izi);\n this.configureGoalsEditorVisibility();\n this.setupEventHandlers(izi);\n this.formatMacroDayDropdown();\n this.chooseMacroDay('rest');\n this.bindMfGoalsDropdown();\n }\n initializeUIElements(izi) {\n this.uiElements = {\n $mfge_btnCancel: izi.$element.find('#mfge_btnCancel'),\n $mfge_btnSend: izi.$element.find('#mfge_btnSend'),\n $mfge_txtGoalName: izi.$element.find('#mfge_txtGoalName'),\n $mfge_GoalName: izi.$element.find('#mfge_GoalName'),\n $mfge_SelectGoals: izi.$element.find('#mfge_SelectGoals'),\n $mfge_selSelectGoals: izi.$element.find('#mfge_selSelectGoals'),\n $mfge_SelectMacroDay: izi.$element.find('#mfge_SelectMacroDay'),\n $mfge_MacrosSendingList_p: izi.$element.find('#mfge_MacrosSendingList_p span'),\n $mfge_MacrosSendingList_c: izi.$element.find('#mfge_MacrosSendingList_c span'),\n $mfge_MacrosSendingList_f: izi.$element.find('#mfge_MacrosSendingList_f span'),\n $mfge_MacrosSendingTitle: izi.$element.find('#mfge_MacrosSendingTitle'),\n $mfge_TargetDays_btnSelectAll: izi.$element.find('#mfge_TargetDays_btnSelectAll'),\n $mfge_TargetDays_btnClear: izi.$element.find('#mfge_TargetDays_btnClear'),\n };\n }\n configureGoalsEditorVisibility() {\n var isPremium = this.userIntegrationSummary?.macroProvider?.isPremiumUser ?? false;\n var selectedGoal = null;\n var goals = this.userIntegrationSummary?.macrosFirstGoals;\n if (goals !== null && goals.length > 0)\n selectedGoal = goals[0];\n if (!isPremium) {\n this.uiElements.$mfge_SelectGoals.hide();\n this.uiElements.$mfge_txtGoalName.hide();\n this.macrosFirstGoalsEditorModel.sendNewGoals = false;\n if (selectedGoal) {\n this.macrosFirstGoalsEditorModel.selectedGoal = selectedGoal?.eid;\n this.macrosFirstGoalsEditorModel.targetName = selectedGoal?.name;\n }\n }\n else {\n this.uiElements.$mfge_SelectGoals.show();\n this.uiElements.$mfge_txtGoalName.show();\n this.macrosFirstGoalsEditorModel.sendNewGoals = true;\n }\n }\n setupEventHandlers(izi) {\n this.uiElements.$mfge_TargetDays_btnSelectAll.off('click').on('click', (e) => {\n e.preventDefault();\n this.selectAllTargetDays();\n });\n this.uiElements.$mfge_TargetDays_btnClear.off('click').on('click', (e) => {\n e.preventDefault();\n this.clearAllTargetDays();\n });\n this.uiElements.$mfge_btnCancel.off('click').on('click', (e) => {\n e.preventDefault();\n this.$macrosFirstGoalsEditor.iziModal('close');\n });\n this.uiElements.$mfge_selSelectGoals.off('change').on('change', (e) => {\n e.preventDefault();\n this.handleGoalSelectionChange(this.uiElements.$mfge_selSelectGoals.val());\n });\n this.uiElements.$mfge_txtGoalName.off('keyup').on('keyup', (e) => {\n this.handleGoalNameInput(e);\n });\n this.uiElements.$mfge_btnSend.off('click').on('click', (e) => {\n e.preventDefault();\n this.sendMacros();\n });\n this.uiElements.$mfge_SelectMacroDay.off('change').on('change', (e) => {\n e.preventDefault();\n this.chooseMacroDay($(e.target).val());\n });\n $('#mfge_TargetDays #mfge_TargetDaysList div.day').off('click').on('click', (e) => {\n e.preventDefault();\n this.toggleTargetDaySelection(e);\n });\n }\n handleGoalSelectionChange(selectedValue) {\n if (selectedValue === '0') {\n this.uiElements.$mfge_GoalName.show();\n this.chooseGoal(null);\n return;\n }\n const goal = this.userIntegrationSummary.macrosFirstGoals.find((g) => g.eid === selectedValue);\n this.chooseGoal(goal);\n this.uiElements.$mfge_GoalName.hide();\n }\n handleGoalNameInput(event) {\n const $this = $(event.target);\n const val = $this.val();\n this.uiElements.$mfge_MacrosSendingTitle.html(val.length <= 0 ? this.defaultTargetName : val);\n this.macrosFirstGoalsEditorModel.targetName = val.length <= 0 ? this.defaultTargetName : val;\n }\n toggleTargetDaySelection(event) {\n const $this = $(event.target);\n const selected = $this.hasClass('selected');\n $this.toggleClass('selected');\n const day = $this.data('day');\n this.macrosFirstGoalsEditorModel.selectedGoalDays[day] = !selected;\n }\n sendMacros() {\n Loader.show();\n const { targetName: name, selectedMacros: { protein, carbs, fat, fiber }, selectedGoal: eid, selectedGoalDays, sendNewGoals, } = this.macrosFirstGoalsEditorModel;\n const sendGoalPromise = sendNewGoals\n ? this.macrosFirstGoalsService.sendNewGoal(name, protein, carbs, fat, fiber, selectedGoalDays)\n : this.macrosFirstGoalsService.updateExistingGoal(eid, name, protein, carbs, fat, fiber, selectedGoalDays);\n sendGoalPromise.catch((error) => {\n });\n }\n chooseMacroDay(macroDay) {\n this.macrosFirstGoalsEditorModel.selectedMacroDay = macroDay;\n this.macrosFirstGoalsEditorModel.selectedMacros = this.getMacrosForDay(macroDay);\n this.uiElements.$mfge_MacrosSendingList_p.html(this.macrosFirstGoalsEditorModel.selectedMacros.protein + 'g');\n this.uiElements.$mfge_MacrosSendingList_c.html(this.macrosFirstGoalsEditorModel.selectedMacros.carbs + 'g');\n this.uiElements.$mfge_MacrosSendingList_f.html(this.macrosFirstGoalsEditorModel.selectedMacros.fat + 'g');\n }\n formatMacroDayDropdown() {\n const restMacros = this.getMacrosForDay('rest');\n const trainMacros = this.getMacrosForDay('train');\n const refeedMacros = this.getMacrosForDay('refeed');\n $('#mfge_SelectMacroDay option[value=\"rest\"]').html(`Rest [${restMacros.protein}P ${restMacros.carbs}C ${restMacros.fat}F]`);\n $('#mfge_SelectMacroDay option[value=\"train\"]').html(`Train [${trainMacros.protein}P ${trainMacros.carbs}C ${trainMacros.fat}F]`);\n $('#mfge_SelectMacroDay option[value=\"refeed\"]').html(`Refeed [${refeedMacros.protein}P ${refeedMacros.carbs}C ${refeedMacros.fat}F]`);\n }\n bindMfGoalsDropdown() {\n var isPremium = this.userIntegrationSummary?.macroProvider?.isPremiumUser ?? false;\n var selectedGoal = null;\n var goals = this.userIntegrationSummary?.macrosFirstGoals ?? [];\n if (goals.length > 0)\n selectedGoal = goals[0];\n if (isPremium && goals.length > 0) {\n this.uiElements.$mfge_selSelectGoals.empty();\n $.each(goals, (i, item) => {\n const text = `${item.name} [${item.protein}P ${item.carbs}C ${item.fat}F]`;\n const option = new Option(text, item.eid);\n this.uiElements.$mfge_selSelectGoals.append(option);\n });\n const createNewOption = new Option('Create New Goal', '0');\n this.uiElements.$mfge_selSelectGoals.prepend(createNewOption);\n this.uiElements.$mfge_selSelectGoals[0].value = '0';\n }\n else {\n this.uiElements.$mfge_SelectGoals.hide();\n this.uiElements.$mfge_GoalName.hide();\n }\n }\n chooseGoal(goal) {\n this.selectAllTargetDays();\n this.uiElements.$mfge_MacrosSendingTitle.html(this.defaultTargetName);\n this.macrosFirstGoalsEditorModel.targetName = this.defaultTargetName;\n this.macrosFirstGoalsEditorModel.sendNewGoals = true;\n this.macrosFirstGoalsEditorModel.selectedGoal = '';\n if (!goal)\n return;\n this.uiElements.$mfge_MacrosSendingTitle.html(goal.name);\n this.macrosFirstGoalsEditorModel.targetName = goal.name;\n this.macrosFirstGoalsEditorModel.sendNewGoals = false;\n this.macrosFirstGoalsEditorModel.selectedGoal = goal.eid;\n this.days.forEach((day) => {\n if (!goal.schedule[day]) {\n $(`#mfge_TargetDaysList_${day}`).removeClass('selected');\n this.macrosFirstGoalsEditorModel.selectedGoalDays[day] = false;\n }\n });\n }\n selectAllTargetDays() {\n this.days.forEach((day) => {\n $(`#mfge_TargetDaysList_${day}`).addClass('selected');\n this.macrosFirstGoalsEditorModel.selectedGoalDays[day] = true;\n });\n }\n clearAllTargetDays() {\n this.days.forEach((day) => {\n $(`#mfge_TargetDaysList_${day}`).removeClass('selected');\n this.macrosFirstGoalsEditorModel.selectedGoalDays[day] = false;\n });\n }\n }\n function init(clientId, rxMacrosId, checkInId = 0, userIntegrationSummary) {\n console.log('Initializing Macros Editor...');\n const macrosEditorUI = new MacrosEditorUI(clientId, checkInId, rxMacrosId, userIntegrationSummary);\n macrosEditorUI.init();\n }\n MacrosEditor.init = init;\n})(MacrosEditor || (MacrosEditor = {}));\n\nclass WagPass {\n enabled;\n id;\n passLengthMonths;\n saleDateEnd;\n saleDateStart;\n saleForNewClientsOnly;\n savings;\n savingsStr;\n fullPrice;\n stripePrice;\n stripeSalePrice;\n salePercentOff;\n stripePriceString;\n stripeSalePriceString;\n isOnSale;\n isLimitedSale;\n saleDateEndsString;\n tier;\n titleStr;\n}\nclass WagPassPurchase {\n code;\n datePurchased;\n dateRedeemed;\n id;\n ignorePurchaseRules;\n passData;\n passId;\n purchasedByEmail;\n purchasedByUserId;\n purchasedOnSale;\n purchasedPriceId;\n redeemedByUserId;\n purchasedPrice;\n wagPass;\n}\nclass WagPassCodeVerificationResult {\n purchase;\n responseCode;\n responseMessage;\n redemptionResult;\n userCurrentTier;\n passEndDate;\n passEndDateStr;\n}\nclass ValidateGiftCardIdResponse extends SeismicResponse {\n giftCardValue;\n giftCardValueStr;\n suppliedGiftCardId;\n giftCardValueCoversXMonthCommitment;\n giftCardValueCoversFirstMonth;\n summary;\n}\nclass ValidatePartnerCodeResponse extends SeismicResponse {\n couponTerms;\n name;\n code;\n}\nclass ValidateReferralCodeResponse extends SeismicResponse {\n referrer;\n code;\n amount;\n}\nvar IntroBilling;\n(function (IntroBilling) {\n var AffiliateId;\n var SelectedWagPlusPlan;\n var WagPlusPlanRate;\n var PlanRate;\n var UserCompletedBilling;\n var PartnerCode;\n var CommCoalitionCode;\n var ReferralCode;\n var HasSeenThisStep;\n var PurchaseResult;\n var $termsModal;\n var WagEssentialsSelected = false;\n var WagPlusSelected = false;\n var ViewModel = {\n termsAccepted: ko.observable(''),\n hasAcceptedTerms: ko.observable('')\n };\n function formatDollar(amount) {\n const formatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n maximumFractionDigits: 0\n });\n return formatter.format(amount);\n }\n function testCouponCodeIsCommCoalitionCode(code, currentCodeWrapper, isNotCCCode) {\n if (typeof code == 'undefined' || code == null || code.length <= 0)\n return;\n if (/RECOVERY\\d{1,4}/.test(code)) {\n Alerts.confirm({\n title: 'Community Coalition Code Detected',\n content: 'It appears you have entered a Community Coalition code. Did you mean to enter this code to to help support your local CrossFit gym?',\n buttons: {\n no: {\n text: 'No',\n action() {\n isNotCCCode();\n }\n },\n yes: {\n text: 'Yes',\n btnClass: 'btn-primary',\n action() {\n const $codeEntryWrapper = $(currentCodeWrapper).find('.codeEntry');\n const $codeEntryField = $codeEntryWrapper.find('input[type=\"text\"].form-control');\n $codeEntryWrapper.slideUp();\n $codeEntryField.val('');\n $('#CommCoalitionCode').val(code);\n $('#CommCoalitionCodeEntry').slideDown();\n applyCommCoalitionCode(code, true);\n }\n }\n }\n });\n }\n else {\n isNotCCCode();\n }\n }\n ;\n function displayGiftCardDetails(response) {\n Alerts.success({ content: `Your gift card has been validated. Its balance will be applied to your account when you submit your credit card number. ${response.summary}` });\n $('#GiftCardCodeWrapper').hide();\n $('#lnk_OpenGiftCardCodeEntry').hide();\n $('#GiftCardInfo span.amount').html(response.giftCardValueStr);\n $('#GiftCardInfo #GiftCardSummary').html(response.summary);\n $('#GiftCardInfo').slideDown();\n $('#btn_SubmitPayment').html('Submit Card');\n }\n function displayPartnerDetails(response, showResult) {\n if (showResult) {\n Alerts.success({ content: `Your partner code has been validated.` });\n }\n $('#PartnerCodeWrapper').hide();\n $('#WagPassCodeWrapper').hide();\n $('#WagPassCode').val('');\n $('#PartnerInfo span.terms').html(response.couponTerms);\n $('#PartnerInfo #PartnerName').html(response.name);\n $('#PartnerInfo').slideDown();\n }\n function displayWagPassDetails(response, showResult) {\n if (showResult) {\n Alerts.success({ content: `Your WAG Pass has been validated!` });\n }\n $('#TrueMed').hide();\n $('#GiftCardCodeWrapper').hide();\n $('#WagPassCodeWrapper').hide();\n $('#PartnerCodeWrapper').hide();\n $('#PartnerCode').val('');\n $('#GiftCardId').val('');\n var wagEssentialsBtn = $('#WAGPlans .WAGPlan.essentials button.btn');\n var wagPlusBtn = $('#WAGPlans .WAGPlan.plus button.btn');\n if (response.purchase.wagPass.tier === 0) {\n wagEssentialsBtn.click();\n $('#WagPassTier').html('Essentials Coaching');\n $('#WAGPlans .WAGPlan.plus').css(\"color\", \"#e2e2e2\");\n }\n else {\n wagPlusBtn.click();\n $('#WagPassTier').html('Nutrition Coaching Plus');\n $('#WAGPlans .WAGPlan.essentials').css(\"color\", \"#e2e2e2\");\n }\n $('#RegularRateInfo').hide();\n $('#WagPassRateInfo').removeClass('d-none');\n $('#WagPassVerifiedAlert').removeClass('d-none');\n $('#WagPassMonths').html(response.purchase.wagPass.passLengthMonths);\n wagEssentialsBtn.prop('disabled', true);\n wagPlusBtn.prop('disabled', true);\n $('#btn_SubmitPayment').html('Continue');\n }\n function displayReferralDetails(response, showResult) {\n if (showResult) {\n Alerts.success({ content: `Your referral code has been validated.` });\n }\n $('#ReferralCodeWrapper').hide();\n if (response.amount > 0) {\n $('#ReferralInfo span.terms').html(response.amount);\n }\n $('#ReferralInfo #ReferrerName').html(response.referrer);\n $('#ReferralInfo').slideDown();\n }\n function applyGiftCardCode(giftCardId) {\n testCouponCodeIsCommCoalitionCode(giftCardId, '#GiftCardCodeWrapper', () => {\n Loader.show();\n ClientBilling.validateGiftCardCode(giftCardId, (response) => {\n Loader.hide();\n if (response.requestOk) {\n displayGiftCardDetails(response);\n }\n else {\n $('#GiftCardId').val('');\n }\n }, () => { Loader.hide(); });\n });\n }\n function applyPartnerCode(partnerCode, showResult) {\n testCouponCodeIsCommCoalitionCode(partnerCode, '#PartnerCodeWrapper', () => {\n if (showResult)\n Loader.show();\n ClientBilling.validatePartnerCode(partnerCode, showResult, (response) => {\n Loader.hide();\n if (response.requestOk) {\n displayPartnerDetails(response, showResult);\n }\n else {\n $('#PartnerCode').val('');\n }\n }, () => { Loader.hide(); });\n });\n }\n function applyWagPassCode(code, showResult) {\n Loader.show();\n ClientBilling.validateWagPassCode(code, (response) => {\n Loader.hide();\n if (response.responseCode !== '00') {\n $('#PartnerCode').val('');\n }\n else {\n displayWagPassDetails(response, showResult);\n }\n }, () => { Loader.hide(); });\n }\n function applyReferralCode(referralCode, showResult) {\n testCouponCodeIsCommCoalitionCode(referralCode, '#ReferralCodeWrapper', () => {\n if (showResult)\n Loader.show();\n ClientBilling.validateReferralCode(referralCode, showResult, (response) => {\n Loader.hide();\n if (response.requestOk) {\n displayReferralDetails(response, showResult);\n }\n else {\n $('#ReferralCode').val('');\n }\n }, () => { Loader.hide(); });\n });\n }\n function applyCommCoalitionCode(ccCode, showResult) {\n if (typeof ccCode == 'undefined')\n return;\n ccCode = ccCode.trim();\n if (ccCode.length <= 0) {\n $('#CommCoalitionGymInfo').hide();\n return;\n }\n if (showResult)\n Loader.show();\n var showCodeFailed = () => {\n $('#CommCoalitionGymInfo').hide();\n $('#CommCoalitionCode').val('');\n if (showResult) {\n Alerts.error({ content: 'That code could not be verified' });\n }\n };\n $.get(`/commcoalition/code/${ccCode}`).done(data => {\n var gymName = '';\n if (typeof data == 'undefined' || data === null) {\n showCodeFailed();\n return;\n }\n if (typeof data != 'undefined' && data != null) {\n gymName = typeof data.gymName != 'undefined' && data.gymName !== '' ? data.gymName : ccCode;\n if (gymName.length > 0) {\n $('#CommCoalitionGymInfo #CommCoalitionGymName').html(gymName);\n $('#CommCoalitionGymInfo').slideDown();\n }\n else {\n $('#CommCoalitionGymInfo').hide();\n }\n }\n if (showResult) {\n const gymnNameStr = gymName.length > 0 ? ` Thanks for helping \"${gymName}\"!` : '';\n Alerts.success({ content: `The code was verified successfully.${gymnNameStr}` });\n }\n }).fail(error => {\n Logger.log(error);\n showCodeFailed();\n }).always(() => {\n Loader.hide();\n });\n }\n function removePartnerCode() {\n $('#PartnerCodeWrapper').fadeIn();\n $('#PartnerCodeEntry').slideToggle();\n $('#PartnerInfo').slideUp();\n $('#PartnerCode').val('');\n }\n function createStripeElements() {\n if (!UserCompletedBilling) {\n StripeElements.init();\n var form = document.getElementById('payment-form');\n form.addEventListener('submit', event => {\n event.preventDefault();\n if (!$('#chx_AgeVerify').is(':checked')) {\n Alerts.warning({ title: 'Age verification', content: 'You must be at least 18 years of age to continue.' });\n return;\n }\n if (!$('#chxTerms').is(':checked')) {\n Alerts.warning({ title: 'Terms & Conditions', content: 'You must read and accept the Terms & Conditions to continue.' });\n return;\n }\n StripeElements.createToken((token) => {\n const cardTokenElement = document.getElementById('sourceTokenId');\n cardTokenElement.value = token.id;\n Loader.show();\n form.submit();\n });\n });\n }\n }\n function displayAffiliateLogo() {\n const brandingLogoUrl = getProperty(Seismic, 'Session.Affiliate.BrandingLogoLogin');\n if (!validObj(brandingLogoUrl) || brandingLogoUrl.length <= 0) {\n $('#AffiliateLogo').remove();\n return;\n }\n $('#AffiliateLogo img').attr('src', brandingLogoUrl);\n }\n function bindGiftCardEntry() {\n var apply = () => {\n const val = $('#GiftCardId').val();\n if (val.length <= 0)\n return;\n applyGiftCardCode(val);\n };\n $('#GiftCardId').on('keydown', e => {\n if (e.which === 13) {\n e.preventDefault();\n apply();\n }\n });\n $('#btn_ApplyGiftCardCode').on('click', e => {\n e.preventDefault();\n apply();\n });\n $('#lnk_OpenGiftCardCodeEntry').on('click', e => {\n e.preventDefault();\n $('#GiftCardCodeEntry').slideToggle();\n });\n }\n function bindWagPassCodeEntry() {\n var apply = () => {\n const val = $('#WagPassCode').val();\n if (val.length <= 0)\n return;\n applyWagPassCode(val, true);\n };\n $('#WagPassCode').on('keydown', e => {\n if (e.which === 13) {\n e.preventDefault();\n apply();\n }\n });\n $('#btn_ApplyWagPassCode').on('click', e => {\n e.preventDefault();\n apply();\n });\n $('#lnk_OpenWagPassCodeEntry').on('click', e => {\n e.preventDefault();\n $('#WagPassCodeEntry').slideToggle();\n $('#GiftCardCodeEntry').slideUp();\n $('#PartnerCodeEntry').slideUp();\n });\n }\n function bindCouponCodeEntry() {\n var apply = () => {\n var val = $('#PartnerCode').val();\n if (val.length <= 0)\n return;\n applyPartnerCode(val, true);\n };\n $('#PartnerCode').on('keydown', e => {\n if (e.which === 13) {\n e.preventDefault();\n apply();\n }\n });\n $('#btn_ApplyPartnerCode').on('click', e => {\n e.preventDefault();\n apply();\n });\n $('#btn_RemovePartnerCode').on('click', e => {\n e.preventDefault();\n removePartnerCode();\n });\n $('#lnk_OpenPartnerCodeEntry').on('click', e => {\n e.preventDefault();\n $('#PartnerCodeEntry').slideToggle();\n });\n if (PartnerCode !== null) {\n applyPartnerCode(PartnerCode, false);\n }\n }\n function bindReferralCodeEntry() {\n var apply = () => {\n var val = $('#ReferralCode').val();\n if (val.length <= 0)\n return;\n applyReferralCode(val, true);\n };\n $('#ReferralCode').on('keydown', e => {\n if (e.which === 13) {\n e.preventDefault();\n apply();\n }\n });\n $('#btn_ApplyReferralCode').on('click', e => {\n e.preventDefault();\n apply();\n });\n $('#lnk_OpenReferralCodeEntry').on('click', e => {\n e.preventDefault();\n $('#ReferralCodeEntry').slideToggle();\n });\n if (ReferralCode != null) {\n applyReferralCode(ReferralCode, false);\n }\n }\n function bindCommCoalitionCodeEntry() {\n var apply = () => {\n var val = $('#CommCoalitionCode').val();\n applyCommCoalitionCode(val, true);\n };\n $('#CommCoalitionCode').on('keydown', e => {\n if (e.which === 13) {\n e.preventDefault();\n apply();\n }\n });\n $('#btn_ApplyCommCoalitionCode').on('click', e => {\n e.preventDefault();\n apply();\n });\n $('#lnk_OpenLocalCrossfitSupportEntry').on('click', e => {\n e.preventDefault();\n $('#CommCoalitionCodeEntry').slideToggle();\n });\n }\n function bindWagPlans() {\n if (AffiliateId !== 1)\n return;\n var wagEssentialsBtn = $('#WAGPlans .WAGPlan.essentials button.btn');\n var wagPlusBtn = $('#WAGPlans .WAGPlan.plus button.btn');\n var wagEssentialsWrapper = $('#WAGPlans .WAGPlan.essentials');\n var wagPlusWrapper = $('#WAGPlans .WAGPlan.plus');\n wagEssentialsWrapper.removeClass('selected');\n wagPlusWrapper.removeClass('selected');\n if (SelectedWagPlusPlan) {\n wagPlusWrapper.addClass('selected');\n wagPlusBtn.html(\"Selected\");\n }\n else {\n wagEssentialsWrapper.addClass('selected');\n wagEssentialsBtn.html(\"Selected\");\n }\n wagEssentialsBtn.on('click', (e) => {\n e.preventDefault();\n wagEssentialsWrapper.addClass('selected');\n wagPlusWrapper.removeClass('selected');\n wagEssentialsBtn.html(\"Selected\");\n wagPlusBtn.html(\"Select\");\n $('#PlanRate').html(formatDollar(PlanRate / 100));\n $('input#WagPlusPlan').val('False');\n });\n wagPlusBtn.on('click', (e) => {\n e.preventDefault();\n wagPlusWrapper.addClass('selected');\n wagEssentialsWrapper.removeClass('selected');\n wagPlusBtn.html(\"Selected\");\n wagEssentialsBtn.html(\"Select\");\n $('#PlanRate').html(formatDollar(WagPlusPlanRate / 100));\n $('input#WagPlusPlan').val('True');\n });\n }\n function loaded() {\n displayAffiliateLogo();\n $('#btnNext').on('click', e => {\n Loader.show();\n });\n bindGiftCardEntry();\n bindWagPassCodeEntry();\n bindCouponCodeEntry();\n bindReferralCodeEntry();\n bindCommCoalitionCodeEntry();\n bindWagPlans();\n if (!HasSeenThisStep) {\n }\n if (UserCompletedBilling && PurchaseResult != null) {\n console.warn('AFFILIATE ID', AffiliateId);\n if (AffiliateId === 1) {\n Seismic.sendPurchaseEvent(PurchaseResult.subscriptionId, PurchaseResult.priceId, PurchaseResult.rate, SelectedWagPlusPlan ? 'Plus' : 'Essentials', PurchaseResult.rate - PurchaseResult.purchaseRevenue, PurchaseResult.coupon);\n Seismic.sendFbqEvent(() => {\n fbq('track', 'Purchase', { currency: \"USD\", value: PurchaseResult.purchaseRevenue });\n });\n }\n }\n var $linkTerms = $('#lnkTerms');\n if ($linkTerms.length > 0) {\n $('#lnkTerms').click(e => {\n e.preventDefault();\n $termsModal.iziModal('open');\n });\n }\n var $termsModalContent = $('#TermsModal');\n if ($termsModalContent.length > 0) {\n $termsModal = $termsModalContent.iziModal({\n padding: 20\n });\n }\n ko.applyBindings(ViewModel, document.getElementById('payment-form'));\n }\n function init(affiliateId, selectedWagPlusPlan, wagPlusPlanRate, planRate, userCompletedBilling, partnerCode, referralCode, hasSeenThisStep, commCoalitionCode, purchaseResult) {\n AffiliateId = affiliateId;\n SelectedWagPlusPlan = selectedWagPlusPlan;\n WagPlusPlanRate = wagPlusPlanRate;\n PlanRate = planRate;\n CommCoalitionCode = commCoalitionCode;\n UserCompletedBilling = userCompletedBilling;\n PartnerCode = partnerCode;\n ReferralCode = referralCode;\n HasSeenThisStep = hasSeenThisStep;\n PurchaseResult = purchaseResult;\n createStripeElements();\n $(() => { loaded(); });\n }\n IntroBilling.init = init;\n})(IntroBilling || (IntroBilling = {}));\n\nvar IntroPhotos;\n(function (IntroPhotos) {\n function loaded() {\n $('form').validate({\n ignore: [],\n rules: {\n hdnHasPhotos: {\n required() {\n if (CheckInPhotos.HasUploadedAll())\n return false;\n return true;\n }\n }\n },\n messages: {\n hdnHasPhotos: 'All photos are required.'\n }\n });\n $('#btnNext').on('click', e => {\n if ($('form').valid())\n Loader.show();\n });\n Seismic.sendIntroStepEvent('Photos');\n }\n function init(photos, checkInId, isInitial) {\n CheckInPhotos.init(photos, checkInId, isInitial, true);\n $(() => { loaded(); });\n }\n IntroPhotos.init = init;\n})(IntroPhotos || (IntroPhotos = {}));\n\nvar IntroProfile;\n(function (IntroProfile) {\n var Options;\n var timezones = [];\n var cleaveDob = {};\n var getSelectedCountry = () => {\n if (Options.Countries === null || Options.Countries.length <= 0)\n return null;\n var iso = $('#CountryISO').val();\n return Options.Countries.filter(obj => obj.twoLetterISORegionName === iso)[0];\n };\n var changeFlag = () => {\n var country = getSelectedCountry();\n if (country === null || country === undefined) {\n $('.flagwrap').hide();\n return;\n }\n var tlIso = country.twoLetterISORegionName.toLowerCase();\n var flagObj = $('.country-select-flags .flagwrap .flag');\n flagObj.attr('class', '');\n flagObj.addClass(`flag ${tlIso}`);\n };\n var detectTimeZone = () => {\n if (timezones === null || timezones.length <= 0)\n return;\n if (Options.TimeZoneIdStr !== null)\n return;\n var tzOffsetInHours = -((new Date().getTimezoneOffset()) / 60);\n var zones = timezones.filter(obj => obj.offset === tzOffsetInHours);\n var zone = zones != null && zones.length > 0 ? zones[0] : null;\n if (zone != null) {\n const currentlySelectedZone = $('#TimeZoneIdStr').val();\n Logger.log(`current: ${currentlySelectedZone}`);\n Logger.log(`proposed: ${zone.value}`);\n $(`#TimeZoneIdStr option[value=\"${zone.value}\"]`).prop('selected', true).change();\n }\n };\n function loaded() {\n GoogleAddressAutocomplete.init('Profile_Address');\n changeFlag();\n $.get('/js/vendor/timezones.json').done(data => {\n timezones = data;\n detectTimeZone();\n });\n $('#CountryISO').on('change', e => {\n changeFlag();\n });\n $('form').validate({\n rules: {\n FirstName: { required: true, minlength: 2 },\n LastName: { required: true, minlength: 2 },\n Address: { required: true, minlength: 3 },\n LocationCity: { required: true, minlength: 3 },\n LocationState: { required: true, minlength: 2 },\n LocationPostalCode: { required: true, minlength: 2 },\n Phone: { required: true, minlength: 9 },\n DateOfBirth: { required: true, minlength: 2, maxlength: 10 }\n }\n });\n $('input#Phone').on('keydown', e => {\n if (keyCodeIsNumberOrEnter(e.keyCode)) {\n return true;\n }\n else {\n e.preventDefault();\n return false;\n }\n });\n cleaveDob = new Cleave('#DateOfBirth', {\n date: true,\n datePattern: ['m', 'd', 'Y']\n });\n $('#btnNext').on('click', e => {\n if ($('form').valid())\n Loader.show();\n });\n Seismic.sendIntroStepEvent('Profile');\n }\n function init(options) {\n Options = options;\n $(() => { loaded(); });\n }\n IntroProfile.init = init;\n})(IntroProfile || (IntroProfile = {}));\n\nvar IntroProgram;\n(function (IntroProgram) {\n function selectProgram(waitlistProgramId, program) {\n Loader.show();\n $('#hdnSelectedProgramId').val(waitlistProgramId);\n $('#hdnSelectedProgramName').val(program);\n Seismic.sendEcommerceEvent({\n 'event': 'addToCart',\n 'ecommerce': {\n 'currencyCode': 'USD',\n 'add': {\n 'products': [{\n 'Name': program,\n 'id': program,\n 'price': Seismic.Session.Affiliate.StripeDefaultPlanAmount,\n 'brand': 'Seismic',\n 'category': 'Program',\n 'variant': 'monthly',\n 'quantity': 1\n }]\n }\n }\n });\n $('#ProgramSelectionForm').submit();\n }\n function prompt_selectProgram(waitlistProgramId, program) {\n const joinList = waitlistProgramId > 0;\n let promptMsg = 'You are about to ';\n promptMsg += joinList ? 'be added to ' : 'enter ';\n promptMsg += `the ${program} Program `;\n promptMsg += joinList ? 'wait list. ' : '. ';\n promptMsg += program.toLowerCase() === 'pregnancy'\n ? 'Please note that this program is specifically designed for humans that are physically and genetically capable of pregnancy. '\n : '';\n promptMsg += joinList\n ? 'Do you want to join this wait list?'\n : 'Do want to select this program?';\n const promptTitle = joinList\n ? 'Join Wait List?'\n : 'Select Program?';\n const promptIcon = joinList\n ? 'far fa-clipboard-list-check'\n : 'fas fa-bullseye-arrow';\n Alerts.confirm({\n icon: promptIcon,\n title: promptTitle,\n content: promptMsg,\n buttons: {\n no: { text: 'No' },\n yes: {\n text: 'Yes',\n btnClass: 'btn-primary',\n action() {\n selectProgram(waitlistProgramId, program);\n }\n }\n }\n });\n }\n function loaded() {\n $('.btnJoinProgram').on('click', e => {\n e.preventDefault();\n var $me = $(e.currentTarget);\n var waitlistProgramId = +resolveAttr($me, 'data-programid');\n var programName = resolveAttr($me, 'data-program-name');\n Logger.log(waitlistProgramId);\n prompt_selectProgram(waitlistProgramId, programName);\n });\n Seismic.sendIntroStepEvent('Program');\n }\n function init() {\n $(() => { loaded(); });\n }\n IntroProgram.init = init;\n})(IntroProgram || (IntroProgram = {}));\n\nvar IntroSettings;\n(function (IntroSettings) {\n function loaded() {\n $('#btnNext').on('click', e => {\n var form = $('form');\n if (form.valid()) {\n Loader.show();\n }\n });\n Seismic.sendIntroStepEvent('Settings');\n }\n function init(userId) {\n UserSettings.init(userId, true);\n $(() => { loaded(); });\n }\n IntroSettings.init = init;\n})(IntroSettings || (IntroSettings = {}));\n\nvar IntroTerms;\n(function (IntroTerms) {\n function loaded() {\n $('form').validate({\n errorLabelContainer: '#acceptedTermsError',\n rules: {\n acceptedTerms: { required: true }\n },\n messages: {\n acceptedTerms: 'You must accept the latest terms before you can continue.'\n }\n });\n $('#btnAccept').on('click', e => {\n if ($('form').valid()) {\n Loader.show();\n }\n });\n Seismic.sendIntroStepEvent('Terms');\n Seismic.sendEcommerceEvent({\n 'event': 'checkout',\n 'ecommerce': {\n 'checkout': {\n 'actionField': { 'step': 1 }\n }\n }\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n IntroTerms.init = init;\n})(IntroTerms || (IntroTerms = {}));\n\nvar IntroVerifyPhone;\n(function (IntroVerifyPhone) {\n function loaded() {\n $('form').validate({\n rules: {\n PhoneNumber: { required: true },\n Code: {\n required: true,\n minlength: 5,\n maxlength: 5\n }\n },\n messages: {\n Code: {\n required: 'Please enter a code.',\n minlength: 'Please enter 5 digits.',\n maxlength: 'Please enter 5 digits.'\n }\n }\n });\n $('#btnResendCode, #btnVerifyCode, #btnSendCode').on('click', () => {\n if ($('form').valid())\n Loader.show();\n });\n Seismic.sendIntroStepEvent('Verify Phone');\n }\n function init() {\n $(() => { loaded(); });\n }\n IntroVerifyPhone.init = init;\n})(IntroVerifyPhone || (IntroVerifyPhone = {}));\n\nvar SystemAffiliates;\n(function (SystemAffiliates) {\n function loaded() {\n $('a[data-toggle=\"tab\"]').on('shown.bs.tab', e => {\n var tabId = resolveAttr($(e.target), 'href');\n var tab = $(tabId);\n loadTab(tab);\n });\n $('.do-delegate-affiliate').on('click', e => {\n e.preventDefault();\n var id = $(e.currentTarget).attr('data-affiliate-id');\n Seismic.delegateAffiliate(id);\n });\n function loadTab(tab, forceLoad = false) {\n Logger.withGroup('SystemAffiliates: loadTab', () => {\n const tabId = tab.attr('id');\n const tabPreviouslyLoaded = parseBool(resolveAttrWithDefault(tab, 'data-tab-dataloaded', 'false'));\n if (tabPreviouslyLoaded && !forceLoad)\n return;\n tab.attr('data-tab-dataloaded', 'true');\n Logger.log(`Loading tab: ${tabId}`);\n switch (tabId) {\n case 'programs-tab':\n loadTab_referrals(tab);\n break;\n }\n });\n }\n function loadTab_referrals(tab) {\n Logger.log(`Getting system affiliate settings tab`);\n $.get(`/system/affiliates/programs/`)\n .done(data => {\n Logger.log('SystemAffiliates: system affiliate programs loading successful');\n var cardSectionBody = tab.find('.card-section-body');\n cardSectionBody.html(data);\n cardSectionBody.parent().removeClass('disabled');\n }).fail((e) => {\n Logger.log(e);\n }).always(() => {\n tabLoaded(tab);\n });\n function tabLoaded(tab) {\n UtcParser.init();\n ;\n ToolTips.init();\n ActionLinks.init();\n CardSectionBoxes.init();\n AjaxForms.init();\n $('.NextOpenRegistrationDatePicker').daterangepicker({\n singleDatePicker: true,\n timePicker: true,\n showDropdowns: false,\n locale: {\n format: 'MM/DD/YYYY hh:mm A'\n }\n }, (start, end, label) => {\n $(this).val(start.startOf('day'));\n });\n }\n }\n }\n function init() {\n $(() => { loaded(); });\n }\n SystemAffiliates.init = init;\n})(SystemAffiliates || (SystemAffiliates = {}));\n\nvar SystemAlerts;\n(function (SystemAlerts) {\n function doAction(url) {\n Loader.show();\n $.get(url).done(() => {\n window.location.reload();\n }).fail(e => {\n Logger.error(e);\n Loader.hide();\n });\n }\n function prompt_DeleteExpired() {\n Alerts.confirm({\n icon: 'far fa-trash-alt',\n title: 'Remove All?',\n content: 'This will remove all expired alerts. This action cannot be undone. Do you wish to continue?',\n buttons: {\n no: { text: 'Cancel' },\n yes: {\n text: ' Remove',\n btnClass: 'btn-danger',\n action() {\n doAction('/system/alerts/delete/expired');\n }\n }\n }\n });\n }\n function prompt_ExpireActive() {\n Alerts.confirm({\n icon: 'fas fa-bell-slash',\n title: 'Expire All?',\n content: 'This will expire all active alerts. Do you wish to continue?',\n buttons: {\n no: { text: 'Cancel' },\n yes: {\n text: ' Expire',\n btnClass: 'btn-warning',\n action() {\n doAction('/system/alerts/expire/active');\n }\n }\n }\n });\n }\n function prompt_DeleteAlert(id) {\n Alerts.confirm({\n icon: 'far fa-trash-alt',\n title: 'Delete?',\n content: 'Do you wish to delete this alert? This action cannot be undone.',\n buttons: {\n no: { text: 'Cancel' },\n yes: {\n text: ' Delete',\n btnClass: 'btn-danger',\n action() {\n doAction(`/system/alerts/delete/${id}`);\n }\n }\n }\n });\n }\n function prompt_ExpireAlert(id) {\n Alerts.confirm({\n icon: 'fas fa-bell-slash',\n title: 'Expire?',\n content: 'Do you wish to expire this alert?',\n buttons: {\n no: { text: 'Cancel' },\n yes: {\n text: ' Expire',\n btnClass: 'btn-warning',\n action() {\n doAction(`/system/alerts/expire/${id}`);\n }\n }\n }\n });\n }\n function prompt_ReissueAlert(id) {\n Alerts.confirm({\n icon: 'fas fa-retweet',\n title: 'Reissue?',\n content: 'This will show the alert again to anyone who has already read it. Do you wish to continue?',\n buttons: {\n no: { text: 'Cancel' },\n yes: {\n text: ' Reissue',\n btnClass: 'btn-warning',\n action() {\n doAction(`/system/alerts/reissue/${id}`);\n }\n }\n }\n });\n }\n ;\n function loaded() {\n $('.btnDeleteAlert').on('click', e => {\n e.preventDefault();\n var $o = $(e.currentTarget);\n prompt_DeleteAlert(resolveAttr($o, 'data-alert-id'));\n });\n $('.btnExpireAlert').on('click', e => {\n e.preventDefault();\n var $o = $(e.currentTarget);\n prompt_ExpireAlert(resolveAttr($o, 'data-alert-id'));\n });\n $('.btnReissueAlert').on('click', e => {\n e.preventDefault();\n var $o = $(e.currentTarget);\n prompt_ReissueAlert(resolveAttr($o, 'data-alert-id'));\n });\n $('#btnExpireAllActive').on('click', e => {\n e.preventDefault();\n prompt_ExpireActive();\n });\n $('#btnRemoveAllExpired').on('click', e => {\n e.preventDefault();\n prompt_DeleteExpired();\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n SystemAlerts.init = init;\n})(SystemAlerts || (SystemAlerts = {}));\nvar SystemAlert;\n(function (SystemAlert) {\n class SystemAlertModel {\n AppVersionLabel;\n Data;\n DisplayDateEnd;\n DisplayDateStart;\n SystemAlertId;\n TargetRoles;\n Title;\n TypeId;\n }\n var AlertId = '';\n function doAction(url) {\n Loader.show();\n $.get(url)\n .done(data => {\n window.location.href = '/system/alerts';\n })\n .fail(e => {\n Logger.error(e);\n Loader.hide();\n });\n }\n function saveAlert() {\n if (!$('#AlertForm').valid()) {\n return;\n }\n const model = new SystemAlertModel();\n model.SystemAlertId = AlertId;\n model.Title = $('#txtTitle').val();\n model.Data = $('#txtMessage').val();\n model.TypeId = $('#hdnTypeId').val();\n const startDateData = $('#txtStarts').data('daterangepicker');\n const endDateData = $('#txtEnds').data('daterangepicker');\n const startDateStr = $(startDateData.element).val();\n const endDateStr = $(endDateData.element).val();\n if (startDateStr.length > 0)\n model.DisplayDateStart = startDateData.startDate.utc().format('YYYY-MM-DD HH:mm:ss[Z]');\n if (endDateStr.length > 0)\n model.DisplayDateEnd = endDateData.startDate.utc().format('YYYY-MM-DD HH:mm:ss[Z]');\n const ids = [];\n if ($('#chx_Roles_SystemAdmin').is(':checked'))\n ids.push(1);\n if ($('#chx_Roles_Admin').is(':checked'))\n ids.push(2);\n if ($('#chx_Roles_Coach').is(':checked'))\n ids.push(3);\n if ($('#chx_Roles_Client').is(':checked'))\n ids.push(4);\n if ($('#chx_Roles_AffiliateAdmin').is(':checked'))\n ids.push(6);\n model.TargetRoles = toCsl(ids);\n Logger.log(model);\n Loader.show();\n $.post({\n url: '/system/alerts',\n data: model\n }).done(data => {\n window.location.href = '/system/alerts';\n }).fail(error => {\n Loader.hide();\n Logger.log(error);\n });\n }\n ;\n function prompt_Delete() {\n Alerts.confirm({\n icon: 'far fa-trash-alt',\n title: 'Delete?',\n content: 'Do you wish to delete this alert? This action cannot be undone.',\n buttons: {\n no: { text: 'Cancel' },\n yes: {\n text: ' Remove',\n btnClass: 'btn-danger',\n action() {\n doAction(`/system/alerts/delete/${AlertId}`);\n }\n }\n }\n });\n }\n ;\n function prompt_Reissue() {\n Alerts.confirm({\n icon: 'fas fa-retweet',\n title: 'Reissue?',\n content: 'This will show the alert again to anyone who has already read it. Do you wish to continue?',\n buttons: {\n no: { text: 'Cancel' },\n yes: {\n text: ' Reissue',\n btnClass: 'btn-warning',\n action() {\n doAction(`/system/alerts/reissue/${AlertId}`);\n }\n }\n }\n });\n }\n ;\n function loaded() {\n $('#AlertForm').validate({\n rules: {\n 'txtTitle': { required: true },\n 'txtMessage': { required: true },\n }\n });\n $('#txtStarts, #txtEnds').daterangepicker({\n singleDatePicker: true,\n timePicker: true,\n autoUpdateInput: false,\n locale: {\n cancelLabel: 'Clear'\n }\n });\n $('#txtStarts').on('apply.daterangepicker', function (ev, picker) {\n $('#txtEnds').data('daterangepicker').minDate = picker.startDate;\n $(this).val(picker.startDate.format('MM/DD/YY h:mmA'));\n });\n $('#txtEnds').on('apply.daterangepicker', function (ev, picker) {\n $('#txtStarts').data('daterangepicker').maxDate = picker.startDate;\n $(this).val(picker.startDate.format('MM/DD/YY h:mmA'));\n });\n $('#txtStarts').on('cancel.daterangepicker', function (ev, picker) {\n $('#txtEnds').data('daterangepicker').minDate = '';\n $(this).val('');\n });\n $('#txtEnds').on('cancel.daterangepicker', function (ev, picker) {\n $('#txtStarts').data('daterangepicker').maxDate = '';\n $(this).val('');\n });\n $('#btnIssue').on('click', e => {\n e.preventDefault();\n saveAlert();\n });\n $('#btnRemove').on('click', e => {\n e.preventDefault();\n prompt_Delete();\n });\n $('#btnReissue').on('click', e => {\n e.preventDefault();\n prompt_Reissue();\n });\n $('#btnSave').on('click', e => {\n e.preventDefault();\n saveAlert();\n });\n }\n function init(alertId) {\n AlertId = alertId;\n $(() => { loaded(); });\n }\n SystemAlert.init = init;\n})(SystemAlert || (SystemAlert = {}));\n\nclass ReAuthFlag {\n id;\n issueDate;\n}\nvar SystemAuthentication;\n(function (SystemAuthentication) {\n function updateReAuthUi(flag = null) {\n const $reAuthFlagId = $('#reAuthFlagId');\n const $btnRemoveReAuthFlag = $('#btnRemoveReAuthFlag');\n const $reAuthFlagIssuedDate = $('#reAuthFlagIssuedDate');\n const $reAuthFlagIssuedDateSpan = $reAuthFlagIssuedDate.find('span');\n if (flag == null) {\n $reAuthFlagId.text('none set');\n $reAuthFlagIssuedDate.addClass('d-none');\n $btnRemoveReAuthFlag.addClass('d-none');\n return;\n }\n $btnRemoveReAuthFlag.removeClass('d-none');\n $reAuthFlagId.text(flag.id);\n $reAuthFlagIssuedDate.removeClass('d-none');\n $reAuthFlagIssuedDateSpan.attr('data-date', flag.issueDate);\n UtcParser.rebuild();\n Toasts.success(new Toasts.ToastOptions('Re-authentication request issued.'));\n }\n function issueNewReAuthFlag() {\n Loader.show();\n $.post('/system/settings/reauth')\n .done((data) => {\n updateReAuthUi(data);\n }).fail(err => {\n Toasts.error(new Toasts.ToastOptions('See console for details.'));\n Logger.error(err, true);\n }).always(() => {\n Loader.hide();\n });\n }\n function deleteReAuthFlag() {\n updateReAuthUi(null);\n Loader.show();\n $.post('/system/settings/delete-reauth')\n .done((data) => {\n updateReAuthUi(null);\n }).fail(err => {\n Toasts.error(new Toasts.ToastOptions('See console for details.'));\n Logger.error(err, true);\n }).always(() => {\n Loader.hide();\n });\n }\n function prompt_IssueNewReAuthFlag() {\n $.confirm({\n icon: 'fas fa-sync-alt',\n title: 'Force Re-Authentication',\n content: 'This will force users (both online and off) to re-authenticate. Do you wish to continue?',\n buttons: {\n no: { text: 'No' },\n yes: {\n text: 'Yes',\n btnClass: 'btn-primary',\n action: issueNewReAuthFlag\n }\n }\n });\n }\n function prompt_DeleteReAuthFlag() {\n $.confirm({\n icon: 'fas fa-sync-alt',\n title: 'Remove re-auth flag?',\n content: 'This will remove the flag and no longer require users to re-authenticate. Continue?',\n buttons: {\n no: { text: 'No' },\n yes: {\n text: 'Stop',\n btnClass: 'btn-primary',\n action: deleteReAuthFlag\n }\n }\n });\n }\n function loaded() {\n $('#btnIssueNewReAuthFlag').on('click', e => {\n e.preventDefault();\n prompt_IssueNewReAuthFlag();\n });\n $('#btnRemoveReAuthFlag').on('click', e => {\n e.preventDefault();\n prompt_DeleteReAuthFlag();\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n SystemAuthentication.init = init;\n})(SystemAuthentication || (SystemAuthentication = {}));\n\nvar SystemCache;\n(function (SystemCache) {\n var CachedItems;\n var baseApiUrl = '/system/settings/cache';\n class CacheKeyInfo {\n exists;\n expirationLength;\n idleTime;\n key;\n keyType;\n timeToLive;\n messages;\n exceptions;\n value;\n }\n class CachedItem {\n constructor($obj) {\n this.$obj = $obj;\n this.id = resolveAttr($obj, 'id');\n this.cacheTitle = this.id.replace('CachedItem_', '').toLowerCase();\n const $info = $obj.find('.info');\n if ($info.length > 0)\n $info.append($('.KeyInfo')[0].outerHTML);\n this.$keyInfo = $info.find('.KeyInfo');\n this.$input = $obj.find('input.identifier');\n this.$btnClear = $obj.find('.controls a.btnClear');\n this.$btnInfo = $obj.find('.controls a.btnInfo');\n this.$identifiers = $obj.find('.identifier');\n this.$subTypeExplain = $obj.find('.sub-type-explain');\n var $btnInfo = this.$btnInfo;\n var $keyInfo = this.$keyInfo;\n var $subTypeExplain = this.$subTypeExplain;\n var me = this;\n loop(this.$identifiers, i => {\n var $i = $(i);\n if (i.nodeName.toLowerCase() === 'input')\n $i.on('keyup', e => { $keyInfo.hide(); });\n if (i.nodeName.toLowerCase() === 'select') {\n $i.on('change', function (e) {\n const $option = $('option:selected', this);\n const title = resolveAttr($option, 'data-explain');\n const inputPlaceholderText = resolveAttr($option, 'data-placeholder');\n const reportable = parseBool(resolveAttrWithDefault($option, 'data-reportable', 'true'));\n $subTypeExplain.html(title);\n $keyInfo.hide();\n $btnInfo.removeClass('disabled');\n if (!reportable)\n $btnInfo.addClass('disabled');\n if (inputPlaceholderText.length > 0)\n me.$input.attr('placeholder', inputPlaceholderText);\n });\n const $defaultOption = $('option:selected', i);\n $subTypeExplain.html(resolveAttr($defaultOption, 'data-explain'));\n const reportable = parseBool(resolveAttrWithDefault($defaultOption, 'data-reportable', 'true'));\n $btnInfo.removeClass('disabled');\n if (!reportable)\n $btnInfo.addClass('disabled');\n }\n if ($i.hasClass('number')) {\n new Cleave(`#${resolveAttr($i, 'id')}`, { numeral: true, numeralPositiveOnly: true });\n }\n });\n this.$btnClear.on('click', e => {\n e.preventDefault();\n doAction(this, 'clear');\n });\n this.$btnInfo.on('click', e => {\n e.preventDefault();\n doAction(this, 'info');\n });\n }\n id;\n cacheTitle;\n $obj;\n $input;\n $keyInfo;\n $btnClear;\n $btnInfo;\n $identifiers;\n $subTypeExplain;\n }\n var actions = {\n clear(cachedItem, url, data) {\n Loader.show();\n cachedItem.$keyInfo.hide();\n $.post({ url: url, data: data })\n .done((response) => {\n if (response.length <= 0) {\n Alerts.success({\n content: 'Cache cleared',\n buttons: { ok: { text: 'Ok' } }\n });\n }\n else {\n let html = '

Could not clear the cache:

';\n for (let i = 0; i < response.length; i++) {\n html += `${response[i]}
`;\n }\n Alerts.warning({\n title: 'Cache not cleared',\n content: html,\n buttons: { ok: { text: 'Ok' } }\n });\n }\n })\n .fail(error => {\n Alerts.error({\n content: 'An error occurred. See console for details.',\n buttons: { ok: { text: 'Ok' } }\n });\n Logger.log(error);\n }).always(() => { Loader.hide(); });\n },\n info(cachedItem, url, data) {\n Loader.show();\n cachedItem.$keyInfo.addClass('disabled');\n cachedItem.$keyInfo.show();\n $.post({ url: url, data: data })\n .done((response) => {\n if (response.exceptions.length <= 0 && response.messages.length <= 0) {\n displayCacheKeyInfo(cachedItem, response);\n }\n else {\n let html = '

Your request could not be completed. The server said:

';\n if (response.messages.length > 0) {\n html += '

Messages:
';\n for (let m = 0; m < response.messages.length; m++) {\n html += `${response.messages[m]}
`;\n }\n html += '

';\n }\n if (response.exceptions.length > 0) {\n html += '

Exceptions:
';\n for (let m = 0; m < response.exceptions.length; m++) {\n html += `${response.exceptions[m]}
`;\n }\n html += '

';\n }\n Alerts.error({\n title: 'Could not obtain info',\n content: html,\n buttons: { ok: { text: 'Ok' } }\n });\n }\n })\n .fail(error => {\n Alerts.error({\n content: 'An error occurred. See console for details.',\n buttons: { ok: { text: 'Ok' } }\n });\n Logger.log(error);\n }).always(() => { Loader.hide(); });\n }\n };\n function displayCacheKeyInfo(cachedItem, cacheKeyInfo) {\n Logger.log(cacheKeyInfo);\n var timeToLive = 0;\n if (cacheKeyInfo.exists && cacheKeyInfo.timeToLive != null) {\n timeToLive = cacheKeyInfo.timeToLive.value.totalMinutes;\n }\n cachedItem.$keyInfo.removeClass('disabled');\n cachedItem.$keyInfo.find('.kvp.key .value').html(`${cacheKeyInfo.key}`);\n cachedItem.$keyInfo.find('.kvp.exists .value').text(cacheKeyInfo.exists);\n cachedItem.$keyInfo.find('.kvp.ttl .value').text(minTommss(timeToLive));\n cachedItem.$keyInfo.find('.kvp.resultValue .value span').html('');\n const $outputToConsoleLink = cachedItem.$keyInfo.find('.btn_ExportToConsole');\n $outputToConsoleLink.addClass('d-none');\n if (cacheKeyInfo.value !== null && cacheKeyInfo.value !== undefined) {\n let outputValue = cacheKeyInfo.value;\n if (cacheKeyInfo.value.length > 300) {\n outputValue = outputValue.substring(1, 300);\n $outputToConsoleLink.removeClass('d-none');\n $outputToConsoleLink.off().on('click', e => {\n e.preventDefault();\n Logger.log('');\n Logger.log(`Data value for key ${cacheKeyInfo.key}`);\n Logger.log('-------------------------------------------------');\n Logger.log(cacheKeyInfo.value);\n });\n }\n cachedItem.$keyInfo.find('.kvp.resultValue .value span').html(outputValue);\n }\n }\n function doAction(cachedItem, actionType) {\n const identifierValues = [];\n for (let i = 0; i < cachedItem.$identifiers.length; i++) {\n const $identifier = $(cachedItem.$identifiers[i]);\n if ($identifier.val().length <= 0) {\n $identifier.focus();\n return;\n }\n identifierValues.push($identifier.val());\n }\n const url = `${baseApiUrl}/${cachedItem.cacheTitle}/${actionType.toLowerCase()}`;\n const data = { \"identifiers\": identifierValues };\n actions[actionType.toLowerCase()](cachedItem, url, data);\n }\n ;\n function loaded() {\n $('.cached-item').each((i, obj) => {\n CachedItems.push(new CachedItem($(obj)));\n });\n }\n function init() {\n CachedItems = [];\n $(() => { loaded(); });\n }\n SystemCache.init = init;\n})(SystemCache || (SystemCache = {}));\n\nvar SystemContent;\n(function (SystemContent) {\n function loaded() {\n }\n function init() {\n SystemMindfulness.init();\n $(() => { loaded(); });\n }\n SystemContent.init = init;\n})(SystemContent || (SystemContent = {}));\n\nvar SystemDashboard;\n(function (SystemDashboard) {\n var $UsersOnlineValue;\n var UsersOnlineCountUp;\n function set(i) {\n UsersOnlineCountUp.update(i);\n }\n SystemDashboard.set = set;\n function update() {\n $.get('/system/usersonline').done((i) => {\n UsersOnlineCountUp.update(i);\n });\n }\n function drawSparklines() {\n $('.sparkline').each((i, o) => {\n const $o = $(o);\n const dataStr = resolveAttr($o, 'data-sparkline');\n const data = dataStr.split(',').filter(s => +s.trim());\n const lineColor = '#96A4B1';\n $o.show();\n $o.sparkline(data, {\n type: 'line',\n width: '100%',\n height: '20px',\n lineColor: lineColor,\n fillColor: '',\n spotColor: '',\n minSpotColor: '',\n maxSpotColor: '',\n highlightSpotColor: '',\n highlightLineColor: '',\n drawNormalOnTop: false\n });\n $o.animate({ 'opacity': 1 }, 500);\n });\n }\n function loaded() {\n $UsersOnlineValue = $('#metric_Users_Online .value');\n const currentValue = +$UsersOnlineValue.text().trim();\n Seismic.ExecuteAfterFadeIn.push(() => { drawSparklines(); });\n UsersOnlineCountUp = new CountUp($UsersOnlineValue[0], 0, currentValue, 0, 1, {\n useEasing: true,\n useGrouping: true,\n separator: ',',\n decimal: '.'\n });\n UsersOnlineCountUp.start();\n update();\n setInterval(() => { update(); }, 5000);\n $(window).on('resize', () => { drawSparklines(); });\n }\n function init() {\n $(() => { loaded(); });\n }\n SystemDashboard.init = init;\n})(SystemDashboard || (SystemDashboard = {}));\n\nvar SystemSchema;\n(function (SystemSchema) {\n function updateSchema() {\n Loader.show();\n $.get('/system/settings/schema/update')\n .done((response) => {\n if (response.requestOk) {\n window.location.href = '/system/settings#schema-tab';\n window.location.reload();\n }\n else {\n let htmlContent = '

There was an error with your request:

';\n if (response.exceptions.length > 0) {\n htmlContent += '

Exceptions
';\n loop(response.exceptions, ex => {\n htmlContent += `${ex}
`;\n });\n }\n if (response.messages.length > 0) {\n htmlContent += '

Messages
';\n loop(response.messages, message => {\n htmlContent += `${message}
`;\n });\n }\n Alerts.error({\n content: htmlContent,\n buttons: {\n ok: { text: 'Ok' }\n }\n });\n Loader.hide();\n }\n })\n .fail(error => {\n Alerts.error({\n content: 'An unknown error occured. See the console for more information.',\n buttons: {\n ok: { text: 'Ok' }\n }\n });\n Logger.log(error);\n Loader.hide();\n });\n }\n SystemSchema.updateSchema = updateSchema;\n function loaded() {\n $('#btn_UpdateSchema').on('click', e => {\n e.preventDefault();\n updateSchema();\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n SystemSchema.init = init;\n})(SystemSchema || (SystemSchema = {}));\n\nvar SystemSettings;\n(function (SystemSettings) {\n function setMav(version, platform) {\n $.post({\n url: '/system/settings/mobile/mav',\n data: {\n version: version,\n platform: platform\n }\n })\n .done(response => {\n Toasts.success(new Toasts.ToastOptions(`${platform} Version Updated`));\n }).fail((e) => {\n Logger.error(e);\n Toasts.error(new Toasts.ToastOptions('Could not update version. Is it a valid format?'));\n });\n }\n function loaded() {\n $('#btn_update_ios_mav').on('click', e => {\n e.preventDefault();\n var val = $('#mav_ios').val();\n setMav(val, 'IOS');\n });\n $('#btn_update_ios_android').on('click', e => {\n e.preventDefault();\n var val = $('#mav_android').val();\n setMav(val, 'ANDROID');\n });\n }\n function init() {\n SystemAuthentication.init();\n SystemCache.init();\n SystemSchema.init();\n $(() => { loaded(); });\n }\n SystemSettings.init = init;\n})(SystemSettings || (SystemSettings = {}));\n\nvar SystemMindfulness;\n(function (SystemMindfulness) {\n var $Pager;\n var Page = 1;\n function bindPager() {\n $Pager = $('#pager_Mindfulness');\n $Pager.find('li.page-item.previous a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n previous();\n });\n $Pager.find('li.page-item.home a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n home();\n });\n $Pager.find('li.page-item.next a').on('click', e => {\n e.preventDefault();\n var $li = $(e.currentTarget);\n var disabled = parseBool(resolveAttrWithDefault($li, 'data-disabled', 'false'));\n if (disabled)\n return;\n next();\n });\n }\n function next() {\n getList(Page + 1);\n }\n function previous() {\n getList(Page - 1);\n }\n function home() {\n getList(1);\n }\n function getList(page = 1) {\n Page = page.constrainMin(1);\n var $cardSection = $('#mindfulness-tab .card-section');\n $cardSection.addClass('disabled');\n $.get(`/system/content/mindfulness?page=${Page}`)\n .done(data => {\n var $contentContainer = $('#MindfulnessViewContainer');\n $contentContainer.html(data);\n bindPager();\n UtcParser.rebuild();\n ToolTips.init();\n $cardSection.removeClass('disabled');\n $('.btn-edit-mindfulness').each((i, o) => {\n var $o = $(o);\n var mindfulnessId = resolveAttr($o.parents('tr'), 'data-mindfulness-id');\n $o.on('click', () => {\n Loader.show(new LoaderOptions(() => {\n window.location.href = `/system/content/mindfulness/${mindfulnessId}`;\n }));\n });\n });\n })\n .fail(e => {\n Logger.log(e);\n });\n }\n function loaded() {\n getList(Page);\n }\n function init() {\n Page = +queryString('page');\n $(() => { loaded(); });\n }\n SystemMindfulness.init = init;\n})(SystemMindfulness || (SystemMindfulness = {}));\nvar SystemMindfulnessItem;\n(function (SystemMindfulnessItem) {\n var Id = 0;\n function loaded() {\n $('#btnSubmit').on('click', e => {\n e.preventDefault();\n var posted = $('#Posted').val().trim();\n if (posted.length < 10) {\n Alerts.alert({\n title: 'Invalid Date',\n content: 'Please enter a valid posted date.'\n });\n return;\n }\n var mindfulnessContent = $('#MindfulnessContent').val().trim();\n if (mindfulnessContent.length < 10) {\n Alerts.alert({\n title: 'Invalid Content',\n content: 'Please enter some mindfulness content.'\n });\n return;\n }\n Loader.show();\n $.ajax({\n url: `/system/content/mindfulness`,\n type: 'POST',\n data: {\n posted: posted,\n content: mindfulnessContent,\n mindfulnessId: Id\n }\n }).done(data => {\n window.location.href = '/system/content#mindfulness-tab';\n }).fail(error => {\n Logger.error(error);\n Loader.hide();\n });\n });\n $('#btnDelete').on('click', e => {\n e.preventDefault();\n if (Id <= 0)\n return;\n Alerts.confirm({\n animation: 'zoom',\n type: 'none',\n closeAnimation: 'scale',\n animateFromElement: false,\n title: 'Please confirm',\n content: 'Are you sure you want to delete this mindfulness post?',\n buttons: {\n Cancel() {\n },\n Confirm: {\n btnClass: 'btn-warning',\n text: 'Delete',\n action() {\n Loader.show();\n $.ajax({\n url: `/system/content/mindfulness/${Id}`,\n type: 'DELETE'\n }).done(data => {\n window.location.href = '/system/content#mindfulness-tab';\n }).fail(error => {\n Logger.error(error);\n Loader.hide();\n });\n }\n }\n }\n });\n });\n $('#Posted').daterangepicker({\n singleDatePicker: true,\n showDropdowns: true,\n drops: 'up'\n });\n CkEditor.init('#MindfulnessContent', e => { }, 10, e => {\n $('#MindfulnessContent').val(e);\n });\n }\n function init(id = 0) {\n Id = id;\n $(() => { loaded(); });\n }\n SystemMindfulnessItem.init = init;\n})(SystemMindfulnessItem || (SystemMindfulnessItem = {}));\n\nvar SystemFeaturesList;\n(function (SystemFeaturesList) {\n function loaded() {\n $('.btnEditFeature').on('click', e => {\n e.preventDefault();\n var $o = $(e.currentTarget);\n var featureId = resolveAttr($o, 'data-feature-id');\n if (featureId.length > 0) {\n const options = new LoaderOptions(() => {\n window.location.href = `/system/features/${featureId}`;\n });\n Loader.show(options);\n return;\n }\n Logger.error('Could not obtain feature id from button');\n });\n $('.btnRelease').on('click', e => {\n e.preventDefault();\n var $o = $(e.currentTarget);\n var featureId = resolveAttr($o, 'data-feature-id');\n if (featureId.length > 0) {\n Alerts.confirm({\n title: 'Release Feature',\n content: `

This will fully release the feature to everyone on Seismic.

Are you sure you want to release this feature?`,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n release: {\n text: 'Release',\n btnClass: 'btn-warning',\n action() {\n Loader.show();\n $.post(`/system/features/release?flagId=${featureId}`)\n .done(data => {\n window.location.reload();\n })\n .fail(error => {\n Loader.hide();\n Alerts.error({ content: error });\n });\n }\n }\n }\n });\n }\n Logger.error('Could not obtain feature id from button');\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n SystemFeaturesList.init = init;\n})(SystemFeaturesList || (SystemFeaturesList = {}));\nvar SystemFeatures;\n(function (SystemFeatures) {\n var FeaturesDebounce;\n var FeatureFlags;\n class RolloutSettings {\n constructor(settings) {\n this.CurrentCount = settings.currentCount;\n this.CurrentPercentage = settings.currentPercentage;\n this.Id = settings.id;\n this.IsPaused = parseBool(settings.isPaused);\n this.RuleId = settings.ruleId;\n this.TargetPercentage = settings.targetPercentage;\n this.TotalActiveUsers = settings.totalActiveUsers;\n }\n CurrentCount;\n CurrentPercentage;\n Id;\n IsPaused;\n RuleId;\n TargetPercentage;\n TotalActiveUsers;\n }\n class RuleProperty {\n constructor($obj, value) {\n this.Value = value;\n this.$propertyObj = $obj;\n }\n Value;\n $propertyObj;\n }\n class RuleProgress {\n constructor($ruleObj) {\n this.$noValues = $ruleObj.find('.detail-item.rollout .no-values');\n this.$rolloutBar = $ruleObj.find('.rollout-bar');\n this.$progress = this.$rolloutBar.find('.progress');\n this.$counts = this.$rolloutBar.find('.counts');\n this.$progressBar = this.$progress.find('.progress-bar');\n this.$progressBarValue = this.$progress.find('.progress-bar-value span');\n }\n $noValues;\n $rolloutBar;\n $progress;\n $progressBar;\n $progressBarValue;\n $counts;\n }\n class Rule {\n constructor($obj) {\n this.$ruleObj = $obj;\n this.ForEmails = [];\n this.ForUserIds = [];\n this.ForUserTypes = [];\n const rawData = JSON.parse(decode(resolveAttr(this.$ruleObj, 'data-rule')));\n this.Enabled = parseBool(rawData.enabled);\n this.FlagId = rawData.flagId;\n this.ForEnvironment = rawData.forEnvironment;\n this.Id = rawData.id;\n this.RuleType = rawData.ruleType;\n this.Progress = new RuleProgress($obj);\n if (rawData.rolloutSettings !== null)\n this.RolloutSettings = new RolloutSettings(rawData.rolloutSettings);\n else\n this.RolloutSettings = null;\n var forEmails = this.ForEmails;\n $obj.find('.emailsContainer .email').each((i, o) => {\n var obj = $(o);\n var value = resolveAttr(obj, 'data-value');\n forEmails.push(new RuleProperty($(o), value));\n });\n var forUserIds = this.ForUserIds;\n $obj.find('.userIdsContainer .user_id').each((i, o) => {\n var obj = $(o);\n var value = resolveAttr(obj, 'data-value');\n forUserIds.push(new RuleProperty($(o), value));\n });\n var forUserTypes = this.ForUserTypes;\n $obj.find('.userTypesContainer .user_type').each((i, o) => {\n var obj = $(o);\n var value = resolveAttr(obj, 'data-value');\n forUserTypes.push(new RuleProperty($(o), value));\n });\n this.$btn_changeTargetPercent = $obj.find('.btn_changeTargetPercent');\n this.$btn_pausePlayRollout = $obj.find('.btn_pausePlayRollout');\n this.$btn_removeAllUsersInRollout = $obj.find('.btn_removeAllUsersInRollout');\n this.$btn_refreshRolloutCount = $obj.find('.btn_refreshRolloutCount');\n this.$btn_addEmail = $obj.find('.btn_addEmail');\n this.$btn_removeAllEmails = $obj.find('.btn_removeAllEmails');\n this.$btn_addUserTypes = $obj.find('.btn_addUserTypes');\n this.$btn_removeAllUserTypes = $obj.find('.btn_removeAllUserTypes');\n this.$btn_addUserId = $obj.find('.btn_addUserId');\n this.$btn_removeAllUserIds = $obj.find('.btn_removeAllUserIds');\n }\n Enabled;\n FlagId;\n ForEmails;\n ForUserIds;\n ForUserTypes;\n ForEnvironment;\n Id;\n RolloutSettings;\n RuleType;\n Progress;\n $ruleObj;\n $btn_changeTargetPercent;\n $btn_pausePlayRollout;\n $btn_removeAllUsersInRollout;\n $btn_refreshRolloutCount;\n $btn_addEmail;\n $btn_removeAllEmails;\n $btn_addUserTypes;\n $btn_removeAllUserTypes;\n $btn_addUserId;\n $btn_removeAllUserIds;\n }\n class FeatureFlag {\n constructor($obj) {\n this.$featureFlagObj = $obj;\n this.Id = resolveAttr($obj, 'data-feature-id');\n this.Released = parseBool(resolveAttr($obj, 'data-feature-released'));\n this.Title = $obj.find('#featureTitle').text();\n this.Description = $obj.find('#featureDescription');\n this.$btn_enable_rules = $obj.find('.btn_enable_rules');\n this.$btn_reset = $obj.find('.btn_reset');\n this.$btn_set_date = $obj.find('.btn_set_date');\n this.$btn_release = $obj.find('.btn_release');\n this.$enabledDisableRulesActionRow = $obj.find('#enabledDisableRulesActionRow');\n this.$restRuleDefinitionActionRow = $obj.find('#restRuleDefinitionActionRow');\n this.$setEnabledAtActionRow = $obj.find('#setEnabledAtActionRow');\n this.$date_Created = $obj.find('.descriptions .dates .created span');\n this.$date_Updated = $obj.find('#featureUpdatedDate');\n this.$enabledAt = $obj.find('.enabled_at');\n this.$date_EnabledAt = $obj.find('#featureEnabledAtDate');\n this.Rule = new Rule($obj.find('.rule'));\n }\n Description;\n Id;\n Released;\n Rule;\n Title;\n $featureFlagObj;\n $btn_enable_rules;\n $btn_reset;\n $btn_set_date;\n $btn_release;\n $enabledDisableRulesActionRow;\n $restRuleDefinitionActionRow;\n $setEnabledAtActionRow;\n $date_Created;\n $date_Updated;\n $enabledAt;\n $date_EnabledAt;\n }\n class PromptOptions {\n constructor() {\n this.InputType = 'text';\n this.SubmitBtnClass = 'btn-primary';\n }\n Title;\n InputType;\n Content;\n OnSubmit;\n SubmitBtnText;\n SubmitBtnClass;\n }\n class AddUsersResult extends SeismicResponse {\n invalidIdentifiers;\n validIdentifiers;\n }\n class RemoveUsersResult extends SeismicResponse {\n invalidIdentifiers;\n validIdentifiers;\n }\n class ResetResult extends SeismicResponse {\n }\n class ChangeRolloutResult extends SeismicResponse {\n settings;\n }\n function getFlags() {\n return FeatureFlags;\n }\n SystemFeatures.getFlags = getFlags;\n function enabledForUser(flagIdOrTitle, userId, onSuccess, onError) {\n $.get(`/features/enabled?flagIdOrTitle=${flagIdOrTitle}&userId=${userId}`)\n .done((result) => {\n if (onSuccess)\n onSuccess(result);\n })\n .fail((error) => {\n if (onError)\n onError(error);\n });\n }\n function enabled(flagIdOrTitle, onSuccess, onError) {\n enabledForUser(flagIdOrTitle, 0, onSuccess, onError);\n }\n SystemFeatures.enabled = enabled;\n function updateRollout(flag, rolloutResult) {\n const settings = rolloutResult.settings;\n let curPerc = settings !== null && settings !== undefined ? Math.round(settings.currentPercentage) : 0;\n const targetPerc = settings !== null && settings !== undefined ? Math.round(settings.targetPercentage) : 0;\n if (curPerc > targetPerc)\n curPerc = targetPerc;\n const countsText = settings !== null && settings !== undefined ? `${settings.currentCount} / ${settings.totalActiveUsers} users` : '0/0 users';\n const $rolloutBar = flag.Rule.$ruleObj.find('.rollout-bar');\n const $progressBar = $rolloutBar.find('.progress-bar');\n const $rolloutDetails = flag.Rule.$ruleObj.find('.rollout-details');\n const $rolloutTargetPercentage = flag.Rule.$ruleObj.find('#rolloutTargetPercentage');\n const $rollOutUserCounts = flag.Rule.$ruleObj.find('#rollOutUserCounts');\n const $rolloutPaused = flag.Rule.$ruleObj.find('.rolloutPaused');\n const $noRolloutSettings = $('#noRolloutSettings');\n if (settings === null || settings === undefined) {\n flag.Rule.RolloutSettings = null;\n flag.Rule.$btn_refreshRolloutCount.addClass('d-none');\n flag.Rule.$btn_pausePlayRollout.addClass('d-none');\n flag.Rule.$btn_removeAllUsersInRollout.addClass('d-none');\n $rolloutPaused.addClass('d-none');\n $rolloutDetails.addClass('d-none');\n $rolloutBar.addClass('d-none');\n $noRolloutSettings.removeClass('d-none');\n $progressBar.removeClass('progress-bar-animated');\n $rolloutTargetPercentage.text('0%');\n }\n else {\n $rolloutBar.removeClass('d-none');\n $rolloutDetails.removeClass('d-none');\n flag.Rule.RolloutSettings = new RolloutSettings(settings);\n flag.Rule.$btn_refreshRolloutCount.removeClass('d-none');\n flag.Rule.$btn_pausePlayRollout.removeClass('d-none');\n flag.Rule.$btn_removeAllUsersInRollout.addClass('d-none');\n if (settings.CurrentCount > 0)\n flag.Rule.$btn_removeAllUsersInRollout.removeClass('d-none');\n $progressBar.removeClass('bg-warning');\n $rolloutPaused.addClass('d-none');\n $noRolloutSettings.addClass('d-none');\n if (settings.isPaused) {\n $rolloutPaused.removeClass('d-none');\n $progressBar.addClass('bg-warning');\n $progressBar.addClass('progress-bar-animated');\n }\n else {\n $progressBar.addClass('bg-success');\n }\n if (curPerc === targetPerc) {\n $progressBar.removeClass('bg-warning');\n $progressBar.addClass('bg-success');\n }\n $progressBar.addClass('progress-bar-animated');\n $progressBar.attr('style', `width: ${curPerc}%`);\n $progressBar.attr('aria-valuenow', curPerc);\n $rollOutUserCounts.text(countsText);\n flag.Rule.$ruleObj.find('.detail-item.rollout .no-values').addClass('d-none');\n $rolloutTargetPercentage.text(flag.Rule.RolloutSettings.TargetPercentage + '%');\n updateUpdatedDate(flag);\n }\n }\n function updateUpdatedDate(flag) {\n const utcNowStr = moment.utc().format('YYYY-MM-DD HH:mm:ss[Z]');\n flag.$date_Updated.attr('data-date', utcNowStr);\n UtcParser.init();\n }\n function respondToAddUsersResult(result, onRequestOk = undefined, onRequestBad = undefined) {\n if (result.requestOk || result.validIdentifiers.length > 0) {\n if (onRequestOk)\n onRequestOk();\n }\n else {\n if (onRequestBad)\n onRequestBad();\n }\n let shouldShowAlert = false;\n const alertType = result.requestOk ? 'warning' : 'error';\n var htmlContent = result.requestOk ? '

Your request was completed, but there are messages from the server:

' : '

There was an error with your request:

';\n if (result.invalidIdentifiers.length > 0) {\n shouldShowAlert = true;\n htmlContent += '

Invalid Identifiers
';\n loop(result.invalidIdentifiers, invalidEmail => {\n htmlContent += `${invalidEmail}
`;\n });\n }\n const extraMessages = Errors.getHtmlForResponse(result);\n if (extraMessages.length > 0) {\n shouldShowAlert = true;\n htmlContent += extraMessages;\n }\n if (!shouldShowAlert)\n return;\n Alerts[alertType]({\n content: htmlContent,\n buttons: {\n ok: { text: 'Ok' }\n }\n });\n }\n function pausePlayRollout(flag) {\n Loader.show();\n Logger.log(`${flag.Rule.RolloutSettings.IsPaused ? 'resum' : 'paus'}ing rollout`);\n const endpoint = flag.Rule.RolloutSettings.IsPaused ? 'resume' : 'pause';\n $.post(`/system/features/rule/rollout/${endpoint}?ruleId=${flag.Rule.Id}`)\n .done((data) => {\n Errors.respondToResponse(data, () => {\n const pause = !flag.Rule.RolloutSettings.IsPaused;\n const $icon = flag.Rule.$btn_pausePlayRollout.find('i');\n const $textSpan = flag.Rule.$btn_pausePlayRollout.find('span');\n $icon.removeClass('fa-play');\n $icon.removeClass('fa-pause');\n if (pause) {\n $icon.addClass('fa-play');\n $textSpan.text('Resume rollout');\n }\n else {\n $icon.addClass('fa-pause');\n $textSpan.text('Pause rollout');\n }\n updateRollout(flag, data);\n });\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n }\n function resetFeature(flag) {\n Loader.show();\n FeaturesDebounce.push(() => {\n $.post(`/system/features/reset?flagId=${flag.Id}`)\n .done((data) => {\n if (data.requestOk) {\n window.location.href = `/system/features#${flag.Id}`;\n window.location.reload();\n return;\n }\n else {\n Loader.hide();\n let htmlContent = '

There was an problem processing the request:

';\n htmlContent += Errors.getHtmlForResponse(data);\n Alerts.error({\n content: htmlContent,\n buttons: {\n ok: { text: 'Ok' }\n }\n });\n }\n })\n .fail(error => {\n Alerts.error({ content: error });\n Loader.hide();\n });\n });\n }\n function removeAllEmails(flag) {\n Loader.show();\n FeaturesDebounce.push(() => {\n $.post(`/system/features/remove/allemails?ruleId=${flag.Rule.Id}`)\n .done((data) => {\n if (data.requestOk) {\n loop(flag.Rule.ForEmails, (p) => {\n p.$propertyObj.hide();\n });\n flag.Rule.ForEmails = [];\n flag.Rule.$ruleObj.find('.emailsContainer .no-values').removeClass('d-none');\n flag.Rule.$btn_removeAllEmails.addClass('d-none');\n updateUpdatedDate(flag);\n }\n else {\n }\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n });\n }\n function removeAllUserTypes(flag) {\n Loader.show();\n FeaturesDebounce.push(() => {\n $.post(`/system/features/remove/allusertypes?ruleId=${flag.Rule.Id}`)\n .done((data) => {\n if (data.requestOk) {\n loop(flag.Rule.ForUserTypes, (p) => {\n p.$propertyObj.hide();\n });\n flag.Rule.ForUserTypes = [];\n flag.Rule.$ruleObj.find('.userTypesContainer .no-values').removeClass('d-none');\n flag.Rule.$btn_removeAllUserTypes.addClass('d-none');\n updateUpdatedDate(flag);\n }\n else {\n }\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n });\n }\n function removeAllUserIds(flag) {\n Loader.show();\n FeaturesDebounce.push(() => {\n $.post(`/system/features/remove/alluserids?ruleId=${flag.Rule.Id}`)\n .done((data) => {\n if (data.requestOk) {\n loop(flag.Rule.ForUserIds, (p) => {\n p.$propertyObj.hide();\n });\n flag.Rule.ForUserIds = [];\n flag.Rule.$ruleObj.find('.userIdsContainer .no-values').removeClass('d-none');\n flag.Rule.$btn_removeAllUserIds.addClass('d-none');\n updateUpdatedDate(flag);\n }\n else {\n }\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n });\n }\n function releaseRetractFeature(flag, doRelease) {\n Loader.show();\n const endpoint = flag.Released ? 'retract' : 'release';\n $.post(`/system/features/${endpoint}?flagId=${flag.Id}`)\n .done(data => {\n const releaseRetractStr = flag.Released ? 'Release' : 'Retract';\n const $rulesEnabled = flag.$featureFlagObj.find('.rulesEnabled');\n flag.$featureFlagObj.removeClass('released');\n flag.$featureFlagObj.removeClass('partialRelease');\n flag.$btn_release.html(` ${releaseRetractStr}`);\n flag.Released = doRelease;\n if (flag.Released) {\n flag.$featureFlagObj.addClass('released');\n $rulesEnabled.addClass('d-none');\n flag.$enabledDisableRulesActionRow.addClass('d-none');\n flag.$restRuleDefinitionActionRow.addClass('d-none');\n flag.$setEnabledAtActionRow.addClass('d-none');\n }\n else {\n $rulesEnabled.removeClass('d-none');\n flag.$enabledDisableRulesActionRow.removeClass('d-none');\n flag.$restRuleDefinitionActionRow.removeClass('d-none');\n flag.$setEnabledAtActionRow.removeClass('d-none');\n if (flag.Rule.Enabled)\n flag.$featureFlagObj.addClass('partialRelease');\n }\n if (doRelease) {\n flag.Rule.$ruleObj.addClass('disabled');\n }\n else {\n if (flag.Rule.Enabled)\n flag.Rule.$ruleObj.removeClass('disabled');\n else\n flag.Rule.$ruleObj.addClass('disabled');\n }\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => {\n Loader.hide();\n });\n }\n function setEnabledDate(flag, date) {\n Loader.show();\n if (date.trim().length <= 0) {\n $.post(`/system/features/enableat/remove?ruleId=${flag.Rule.Id}`)\n .done(() => {\n flag.$enabledAt.addClass('d-none');\n updateUpdatedDate(flag);\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n }\n else {\n const newDate = moment(date);\n if (newDate.isValid()) {\n const utcFormat = newDate.utc().format('YYYY-MM-DD HH:mm:ss[Z]');\n $.post(`/system/features/enableat/add?ruleId=${flag.Rule.Id}&enableAt=${utcFormat}`)\n .done(() => {\n flag.$date_EnabledAt.attr('data-date', utcFormat);\n flag.$enabledAt.removeClass('d-none');\n updateUpdatedDate(flag);\n UtcParser.init();\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => {\n Loader.hide();\n });\n }\n else {\n Alerts.error({\n title: 'Invalid Date',\n content: 'The date you entered is invalid. Format example: 10/15/20 05:00'\n });\n }\n }\n }\n function changeTargetPercentage(flag, value) {\n Loader.show();\n $.post(`/system/features/changeRolloutPercentage?ruleId=${flag.Rule.Id}&percentage=${value}`)\n .done((data) => {\n updateRollout(flag, data);\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n }\n function addEmails(flag, value) {\n const emailAry = value.split(',');\n Loader.show();\n FeaturesDebounce.push(() => {\n $.post({\n url: `/system/features/add/emails?ruleId=${flag.Rule.Id}`,\n data: { emails: emailAry }\n })\n .done((data) => {\n respondToAddUsersResult(data, () => {\n if (data.validIdentifiers.length > 0) {\n var $emailsContainer = flag.Rule.$ruleObj.find('.emailsContainer');\n loop(emailAry, email => {\n $emailsContainer.append(`${email.toLowerCase()}`);\n var $emailObj = $emailsContainer.find(`span[data-value=\"${email.toLowerCase()}\"]`);\n var ruleProp = new RuleProperty($emailObj, email.toLowerCase());\n flag.Rule.ForEmails.push(ruleProp);\n });\n bindRulePropertyItems(flag);\n flag.Rule.$ruleObj.find('.emailsContainer .no-values').addClass('d-none');\n if (flag.Rule.ForEmails.length > 0)\n flag.Rule.$btn_removeAllEmails.removeClass('d-none');\n updateUpdatedDate(flag);\n return;\n }\n });\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n });\n }\n function addUserIds(flag, value) {\n const userIdsAry = value.split(',');\n Loader.show();\n FeaturesDebounce.push(() => {\n $.post({\n url: `/system/features/add/userIds?ruleId=${flag.Rule.Id}`,\n data: { userIds: userIdsAry }\n })\n .done((data) => {\n respondToAddUsersResult(data, () => {\n if (data.validIdentifiers.length > 0) {\n var $userIdsContainer = flag.Rule.$ruleObj.find('.userIdsContainer');\n loop(data.validIdentifiers, userId => {\n $userIdsContainer.append(`${userId}`);\n var $emailObj = $userIdsContainer.find(`span[data-value=\"${userId}\"]`);\n var ruleProp = new RuleProperty($emailObj, userId);\n flag.Rule.ForUserIds.push(ruleProp);\n });\n bindRulePropertyItems(flag);\n flag.Rule.$ruleObj.find('.userIdsContainer .no-values').addClass('d-none');\n if (flag.Rule.ForUserIds.length > 0)\n flag.Rule.$btn_removeAllUserIds.removeClass('d-none');\n updateUpdatedDate(flag);\n return;\n }\n });\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n });\n }\n function addUserType(flag, userType) {\n Loader.show();\n FeaturesDebounce.push(() => {\n $.post({\n url: `/system/features/add/userTypes?ruleId=${flag.Rule.Id}`,\n data: { userTypes: [userType] }\n })\n .done((data) => {\n respondToAddUsersResult(data, () => {\n if (data.validIdentifiers.length > 0) {\n Logger.log('WHERE THE F AM I!');\n const $userTypesContainer = flag.Rule.$ruleObj.find('.userTypesContainer');\n loop(data.validIdentifiers, (vut) => {\n $userTypesContainer.append(`${vut.toLowerCase()}`);\n const $emailObj = $userTypesContainer.find(`span[data-value=\"${vut}\"]`);\n const ruleProp = new RuleProperty($emailObj, vut);\n flag.Rule.ForUserTypes.push(ruleProp);\n });\n bindRulePropertyItems(flag);\n flag.Rule.$ruleObj.find('.userTypesContainer .no-values').addClass('d-none');\n if (flag.Rule.ForUserTypes.length > 0)\n flag.Rule.$btn_removeAllUserTypes.removeClass('d-none');\n updateUpdatedDate(flag);\n return;\n }\n });\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n });\n }\n function enableDisableRules(flag) {\n Loader.show();\n const endpoint = flag.Rule.Enabled ? 'disable' : 'enable';\n $.post(`/system/features/rule/${endpoint}?ruleId=${flag.Rule.Id}`)\n .done(() => {\n var currentlyEnabled = flag.Rule.Enabled;\n const enableDisableText = !currentlyEnabled ? 'Disable' : 'Enable';\n const $progressBar = flag.Rule.$ruleObj.find('.rollout-bar .progress-bar');\n const $rulesEnabled = flag.$featureFlagObj.find('.rulesEnabled');\n const hasRolloutSettings = flag.Rule.RolloutSettings !== null;\n flag.$btn_enable_rules.html(` ${enableDisableText} Rules`);\n flag.Rule.$ruleObj.removeClass('disabled');\n flag.$featureFlagObj.removeClass('released');\n flag.$featureFlagObj.removeClass('partialRelease');\n $rulesEnabled.removeClass('d-none');\n $progressBar.removeClass('bg-success');\n $progressBar.removeClass('bg-warning');\n $progressBar.removeClass('progress-bar-animated');\n flag.Rule.Enabled = !flag.Rule.Enabled;\n if (flag.Rule.Enabled) {\n $rulesEnabled.addClass('d-none');\n $progressBar.addClass('bg-success');\n flag.$enabledAt.addClass('d-none');\n if (hasRolloutSettings && flag.Rule.RolloutSettings.CurrentPercentage < flag.Rule.RolloutSettings.TargetPercentage)\n $progressBar.addClass('progress-bar-animated');\n }\n else {\n flag.Rule.$ruleObj.addClass('disabled');\n $progressBar.addClass('bg-warning');\n const enabledAtDateStr = flag.$date_EnabledAt.text();\n if (enabledAtDateStr.length > 0 && enabledAtDateStr.indexOf('12/31/1752') < 0)\n flag.$enabledAt.removeClass('d-none');\n }\n updateUpdatedDate(flag);\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => {\n Loader.hide();\n });\n }\n function refreshRolloutCount(flag) {\n Loader.show();\n $.post(`/system/features/rule/rollout/refreshTotalActiveUsers?ruleId=${flag.Rule.Id}`)\n .done((data) => {\n updateRollout(flag, data);\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n }\n function removeUserId(flag, id) {\n Loader.show();\n FeaturesDebounce.push(() => {\n $.post({\n url: `/system/features/remove/userIds?ruleId=${flag.Rule.Id}`,\n data: { userIds: [id] }\n })\n .done((data) => {\n if (data.validIdentifiers.length > 0) {\n loop(data.validIdentifiers, userId => {\n var index = findIndex(flag.Rule.ForUserIds, (i) => { return (+i.Value === +userId); });\n flag.Rule.ForUserIds[index].$propertyObj.remove();\n flag.Rule.ForUserIds.splice(index, 1);\n });\n bindRulePropertyItems(flag);\n if (flag.Rule.ForUserIds.length <= 0) {\n flag.Rule.$ruleObj.find('.userIdsContainer .no-values').removeClass('d-none');\n flag.Rule.$btn_removeAllUserIds.addClass('d-none');\n }\n updateUpdatedDate(flag);\n }\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n });\n }\n function removeEmail(flag, email) {\n Loader.show();\n FeaturesDebounce.push(() => {\n $.post({\n url: `/system/features/remove/emails?ruleId=${flag.Rule.Id}`,\n data: { emails: [email] }\n })\n .done((data) => {\n if (data.validIdentifiers.length > 0) {\n loop(data.validIdentifiers, validEmail => {\n var index = findIndex(flag.Rule.ForEmails, (i) => { return (i.Value.toLowerCase() === validEmail.toLowerCase()); });\n flag.Rule.ForEmails[index].$propertyObj.remove();\n flag.Rule.ForEmails.splice(index, 1);\n });\n bindRulePropertyItems(flag);\n if (flag.Rule.ForEmails.length <= 0) {\n flag.Rule.$ruleObj.find('.emailsContainer .no-values').removeClass('d-none');\n flag.Rule.$btn_removeAllEmails.addClass('d-none');\n }\n updateUpdatedDate(flag);\n }\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n });\n }\n function removeUserType(flag, userType) {\n Loader.show();\n FeaturesDebounce.push(() => {\n $.post({\n url: `/system/features/remove/usertypes?ruleId=${flag.Rule.Id}`,\n data: { userTypes: [userType] }\n })\n .done((data) => {\n if (data.validIdentifiers.length > 0) {\n loop(data.validIdentifiers, validUserType => {\n const index = findIndex(flag.Rule.ForUserTypes, (i) => { return (i.Value.toLowerCase() === validUserType.toLowerCase()); });\n flag.Rule.ForUserTypes[index].$propertyObj.remove();\n flag.Rule.ForUserTypes.splice(index, 1);\n });\n bindRulePropertyItems(flag);\n if (flag.Rule.ForUserTypes.length <= 0) {\n flag.Rule.$ruleObj.find('.userTypesContainer .no-values').removeClass('d-none');\n flag.Rule.$btn_removeAllUserTypes.addClass('d-none');\n }\n updateUpdatedDate(flag);\n }\n })\n .fail(error => { Alerts.error({ content: error }); })\n .always(() => { Loader.hide(); });\n });\n }\n function prompt(options) {\n $.confirm({\n title: options.Title,\n animateFromElement: false,\n content: `
${options.Content}
`,\n buttons: {\n cancel: { text: 'Cancel' },\n formSubmit: {\n text: options.SubmitBtnText,\n btnClass: options.SubmitBtnClass,\n action: function () {\n const value = this.$content.find('input').val();\n options.OnSubmit(value);\n }\n }\n },\n onContentReady: function () {\n this.$content.find('form').on('submit', e => {\n e.preventDefault();\n this.$$formSubmit.trigger('click');\n });\n }\n });\n }\n function prompt_ChangeTargetPercentage(flag) {\n const options = new PromptOptions();\n options.Title = 'Change Target Percentage';\n options.SubmitBtnText = 'Change';\n options.InputType = 'number';\n options.Content = '

What percentage would you like the rollout to change to? Changing it to 0 will remove the rollout feature entirely.

';\n options.OnSubmit = value => { changeTargetPercentage(flag, value); };\n prompt(options);\n }\n function prompt_SetEnabledDate(flag) {\n const options = new PromptOptions();\n options.Title = 'Set Enabled Date';\n options.SubmitBtnText = 'Set';\n options.Content = '

On which date and/or time would you like this feature to be enabled? You can enter a blank response to remove a set date entirely. All dates and times should be represented in your time zone; they will be converted to UTC.

';\n options.OnSubmit = value => {\n if (value.length <= 0) {\n setEnabledDate(flag, value);\n }\n else {\n const newDate = moment(value);\n if (newDate.isValid()) {\n confirm_SetEnabledDate(flag, value);\n }\n else {\n Alerts.error({\n title: 'Invalid Date',\n content: 'The date you entered is invalid. Format example: 10/15/20 05:00'\n });\n }\n }\n };\n prompt(options);\n }\n function prompt_AddEmails(flag) {\n const options = new PromptOptions();\n options.Title = 'Add Email';\n options.SubmitBtnText = 'Add';\n options.Content = '

Which user would you like to add? Please enter an email address. You can enter multiples if separated by a comma.

';\n options.OnSubmit = value => { addEmails(flag, value); };\n prompt(options);\n }\n function prompt_AddUserIds(flag) {\n const options = new PromptOptions();\n options.Title = 'Add User Id(s)';\n options.SubmitBtnText = 'Add';\n options.Content = '

Which user id would you like to add? Please enter an user id. You can enter multiples if separated by a comma.

';\n options.OnSubmit = value => { addUserIds(flag, value); };\n prompt(options);\n }\n function prompt_AddUserTypes(flag) {\n $.confirm({\n title: 'Add User Types(s)',\n content: '' +\n '
' +\n '
' +\n '

Which user type would you like to add?

' +\n '' +\n '
',\n buttons: {\n cancel: { text: 'Cancel' },\n formSubmit: {\n text: 'Add',\n btnClass: 'btn-primary',\n action: function () {\n const value = this.$content.find('select').val();\n addUserType(flag, value);\n }\n }\n },\n onContentReady: function () {\n this.$content.find('form').on('submit', e => {\n e.preventDefault();\n this.$$formSubmit.trigger('click');\n });\n }\n });\n }\n function confirm_SetEnabledDate(flag, date) {\n Alerts.confirm({\n title: 'Change enabled date',\n content: `

This will set the enabled date of this feature to ${date.toString()}

Are you sure you want to changed the enabled date of this feature?`,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n reset: {\n text: 'Set',\n btnClass: 'btn-warning',\n action() {\n setEnabledDate(flag, date);\n }\n }\n }\n });\n }\n function confirm_EnableDisableRules(flag) {\n const enableDisableText = flag.Rule.Enabled ? 'Disable' : 'Enable';\n const enableHelpText = 'Enabling these rules will essentially make this feature active again and the rules will apply.';\n const disableHelpText = 'Disabling these rules will essentially \"pause\" the feature. It\\'s very similar to retracting the whole feature.';\n const helpText = flag.Rule.Enabled ? disableHelpText : enableHelpText;\n Alerts.confirm({\n title: `${enableDisableText} Rules`,\n content: `

This will ${enableDisableText.toLowerCase()} the rules for this feature. ${helpText}

Are you sure you want to ${enableDisableText.toLowerCase()} the rules?`,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n reset: {\n text: enableDisableText,\n btnClass: 'btn-warning',\n action() {\n enableDisableRules(flag);\n }\n }\n }\n });\n }\n function confirm_PausePlayRollout(flag) {\n const pausePlayText = flag.Rule.RolloutSettings.IsPaused ? 'Resume' : 'Pause';\n Alerts.confirm({\n title: `${pausePlayText} Rollout`,\n content: `

This will ${pausePlayText.toLowerCase()} the rollout for this feature.

Are you sure you want to continue?`,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n reset: {\n text: pausePlayText,\n btnClass: 'btn-warning',\n action() {\n pausePlayRollout(flag);\n }\n }\n }\n });\n }\n function confirm_ResetFeature(flag) {\n Alerts.confirm({\n title: 'Reset Feature',\n content: '

This will remove the entry in the database, and rebuild it based on the definition in the code. Any rule settings and users will be removed.

Are you sure you want to reset this feature?',\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n reset: {\n text: 'Reset',\n btnClass: 'btn-warning',\n action() {\n resetFeature(flag);\n }\n }\n }\n });\n }\n function confirm_ReleaseRetractFeature(flag) {\n const releaseRetractText = flag.Released ? 'Retract' : 'Release';\n Alerts.confirm({\n title: 'Release Feature',\n content: `

This will fully ${releaseRetractText.toLowerCase()} the feature to everyone on Seismic.

Are you sure you want to ${releaseRetractText.toLowerCase()} this feature?`,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n reset: {\n text: releaseRetractText,\n btnClass: 'btn-warning',\n action() {\n releaseRetractFeature(flag, !flag.Released);\n }\n }\n }\n });\n }\n function confirm_RemoveAllEmails(flag) {\n Alerts.confirm({\n title: 'Remove All Emails',\n content: '

This will remove all emails from this feature rule.

Are you sure you want to remove all emails?',\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n reset: {\n text: 'Remove All',\n btnClass: 'btn-warning',\n action() {\n removeAllEmails(flag);\n }\n }\n }\n });\n }\n function confirm_RemoveAllUserTypes(flag) {\n Alerts.confirm({\n title: 'Remove All User Types',\n content: '

This will remove all user types from this feature rule.

Are you sure you want to remove all user types?',\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n reset: {\n text: 'Remove All',\n btnClass: 'btn-warning',\n action() {\n removeAllUserTypes(flag);\n }\n }\n }\n });\n }\n function confirm_RemoveAllUserIds(flag) {\n Alerts.confirm({\n title: 'Remove All User Ids',\n content: '

This will remove all user ids from this feature rule.

Are you sure you want to remove all user ids?',\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n reset: {\n text: 'Remove All',\n btnClass: 'btn-warning',\n action() {\n removeAllUserIds(flag);\n }\n }\n }\n });\n }\n function confirm_RemoveAllUserInRollout(flag) {\n Alerts.confirm({\n title: 'Remove All User From Rollout',\n content: '

This will remove all users from this rollout.

Are you sure you want to remove all from the rollout?',\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n reset: {\n text: 'Remove All',\n btnClass: 'btn-warning',\n action() {\n removeAllUserIds(flag);\n }\n }\n }\n });\n }\n function confirm_RemoveUserId(flag, id) {\n Alerts.confirm({\n title: `Remove User Id ${id}`,\n content: `

This will remove the user id ${id} from this feature rule.

Are you sure you want to?`,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n reset: {\n text: 'Remove',\n btnClass: 'btn-warning',\n action() {\n removeUserId(flag, id);\n }\n }\n }\n });\n }\n function confirm_RemoveEmail(flag, email) {\n Alerts.confirm({\n title: 'Remove Email',\n content: `

This will remove the email '${email}' from this feature rule.

Are you sure you want to?`,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n reset: {\n text: 'Remove',\n btnClass: 'btn-warning',\n action() {\n removeEmail(flag, email);\n }\n }\n }\n });\n }\n function confirm_RemoveUserType(flag, userType) {\n Alerts.confirm({\n title: `Remove ${userType}`,\n content: `

This will remove the '${userType}' user type from this feature rule.

Are you sure you want to?`,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n reset: {\n text: 'Remove',\n btnClass: 'btn-warning',\n action() {\n removeUserType(flag, userType);\n }\n }\n }\n });\n }\n function bindButtons(flag) {\n flag.$btn_enable_rules.off().on('click', e => {\n e.preventDefault();\n confirm_EnableDisableRules(flag);\n });\n flag.$btn_release.off().on('click', e => {\n e.preventDefault();\n confirm_ReleaseRetractFeature(flag);\n });\n flag.$btn_set_date.off().on('click', e => {\n e.preventDefault();\n prompt_SetEnabledDate(flag);\n });\n flag.$btn_reset.off().on('click', e => {\n e.preventDefault();\n confirm_ResetFeature(flag);\n });\n flag.Rule.$btn_changeTargetPercent.off().on('click', e => {\n e.preventDefault();\n prompt_ChangeTargetPercentage(flag);\n });\n flag.Rule.$btn_pausePlayRollout.off().on('click', e => {\n e.preventDefault();\n confirm_PausePlayRollout(flag);\n });\n flag.Rule.$btn_addEmail.off().on('click', e => {\n e.preventDefault();\n prompt_AddEmails(flag);\n });\n flag.Rule.$btn_addUserId.off().on('click', e => {\n e.preventDefault();\n prompt_AddUserIds(flag);\n });\n flag.Rule.$btn_addUserTypes.off().on('click', e => {\n e.preventDefault();\n prompt_AddUserTypes(flag);\n });\n flag.Rule.$btn_removeAllEmails.off().on('click', e => {\n confirm_RemoveAllEmails(flag);\n });\n flag.Rule.$btn_removeAllUserTypes.off().on('click', e => {\n e.preventDefault();\n confirm_RemoveAllUserTypes(flag);\n });\n flag.Rule.$btn_removeAllUserIds.off().on('click', e => {\n e.preventDefault();\n confirm_RemoveAllUserIds(flag);\n });\n flag.Rule.$btn_removeAllUsersInRollout.off().on('click', e => {\n e.preventDefault();\n confirm_RemoveAllUserInRollout(flag);\n });\n flag.Rule.$btn_refreshRolloutCount.off().on('click', e => {\n e.preventDefault();\n refreshRolloutCount(flag);\n });\n }\n function bindRulePropertyItems(flag) {\n loop(flag.Rule.ForEmails, (p) => {\n p.$propertyObj.find('.remove').off().on('click', e => {\n e.preventDefault();\n confirm_RemoveEmail(flag, p.Value);\n });\n });\n loop(flag.Rule.ForUserTypes, (p) => {\n p.$propertyObj.find('.remove').off().on('click', e => {\n e.preventDefault();\n confirm_RemoveUserType(flag, p.Value);\n });\n });\n loop(flag.Rule.ForUserIds, (p) => {\n p.$propertyObj.find('.remove').off().on('click', e => {\n e.preventDefault();\n confirm_RemoveUserId(flag, +p.Value);\n });\n });\n }\n function loaded() {\n const $flagUi = $('.featureFlag-Item');\n const flag = new FeatureFlag($flagUi);\n bindButtons(flag);\n bindRulePropertyItems(flag);\n $('#btnRefresh').on('click', e => {\n e.preventDefault();\n var loaderOptions = new LoaderOptions();\n loaderOptions.OnShown = () => {\n window.location.href = '/system/features?refresh=true';\n };\n Loader.show(loaderOptions);\n });\n }\n function init() {\n const debounceOptions = new DebounceOptions();\n debounceOptions.IntervalTime = 1000;\n debounceOptions.DebounceId = 'FeaturesDebounce';\n FeaturesDebounce = new Debounce(debounceOptions);\n FeatureFlags = [];\n $(() => { loaded(); });\n }\n SystemFeatures.init = init;\n})(SystemFeatures || (SystemFeatures = {}));\n\nvar SystemAffiliateCreate;\n(function (SystemAffiliateCreate) {\n function loaded() {\n $('#btnCreate').on('click', e => {\n Loader.show();\n e.preventDefault();\n const $form = $(\"#CreateForm\");\n if ($form.valid()) {\n $form.submit();\n Loader.hide();\n }\n });\n $('#CreateForm').validate({\n rules: {\n 'Form.AffiliateName': {\n required: true\n },\n 'Form.Moniker': {\n required: true\n },\n 'Form.Subdomain': {\n required: true,\n remote: {\n url: '/affiliate/subdomainavailable',\n type: 'post',\n data: {\n subdomain() {\n return $('#Form_Subdomain').val();\n }\n }\n }\n },\n 'Form.SupportEmail': {\n required: true,\n email: true\n },\n 'Form.EmailAddress': {\n required: true,\n email: true,\n remote: {\n url: '/account/auth/emailunique',\n type: 'post',\n data: {\n email() {\n return $('#Form_EmailAddress').val();\n }\n }\n }\n },\n 'Form.FirstName': {\n required: true\n },\n 'Form.LastName': {\n required: true\n },\n 'Form.AffiliateFee': {\n required: true,\n min: 30\n }\n },\n messages: {\n 'Form.EmailAddress': {\n required: 'We will need your email address.',\n remote: 'This email address already has an account.'\n },\n 'Form.Subdomain': {\n remote: 'This identifier is already in use.'\n }\n }\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n SystemAffiliateCreate.init = init;\n})(SystemAffiliateCreate || (SystemAffiliateCreate = {}));\n\nvar SystemTemplate;\n(function (SystemTemplate) {\n function loaded() {\n $('form').validate({\n rules: {\n HTMLBody: { required: true },\n PlainTextBody: { required: true }\n },\n messages: {\n HTMLBody: 'An html template is required.',\n PlainTextBody: 'An html template is required.'\n }\n });\n $('#btnSave').on('click', e => {\n if ($('form').valid())\n Loader.show();\n });\n CkEditor.init('#txtHtmlTemplate', e => { }, 10, e => { });\n }\n function init() {\n $(() => { loaded(); });\n }\n SystemTemplate.init = init;\n})(SystemTemplate || (SystemTemplate = {}));\n\nclass CalendarOptions {\n CalendarOptions() {\n this.defaultDate = new moment();\n this.readOnly = false;\n }\n containerId;\n events;\n defaultDate;\n readOnly;\n}\nclass CalendarEvent {\n allDay = false;\n id;\n end;\n start;\n notes = '';\n private = false;\n title = 'New';\n}\nclass FullCalendarEventViewModel {\n allDay;\n backgroundColor;\n borderColor;\n checkInId;\n className;\n editable;\n end;\n id;\n notes;\n private;\n start;\n textColor;\n title;\n}\nvar Calendar;\n(function (Calendar) {\n class ShowEventModel {\n modalTitle = 'New Event';\n title = '';\n start = new moment().startOf('day');\n end = new moment().endOf('day');\n allDay = false;\n isPrivate = false;\n notes = '';\n event = new CalendarEvent();\n }\n var calendarDebounce;\n var options;\n function pushEvent(event, success = undefined, error = undefined) {\n Logger.withGroup('Calendar: pushEvent', () => {\n var newData = {\n allDay: event.allDay,\n calendarEventId: event.id,\n eventEnd: event.end.utc().format('MM-DD-YYYY HH:mm:ss'),\n eventStart: event.start.utc().format('MM-DD-YYYY HH:mm:ss'),\n notes: event.notes,\n private: event.private,\n title: event.title\n };\n Logger.log(newData);\n calendarDebounce.push(() => {\n $.post({\n url: '/calendar',\n data: newData\n })\n .done(data => {\n if (success)\n success(data);\n }).fail((e) => {\n if (error)\n error(e);\n });\n });\n });\n }\n ;\n function pushEventDate(newEvent, success = undefined, error = undefined) {\n Logger.log('PUSH EVENT DATE');\n Logger.log(newEvent);\n calendarDebounce.push(() => {\n var newStart = newEvent.start.utc().format('MM-DD-YYYY HH:mm:ss');\n var newEnd = newEvent.end.utc().format('MM-DD-YYYY HH:mm:ss');\n $.post(`/calendar/${newEvent.id}/?start=${newStart}&end=${newEnd}`)\n .done(data => {\n if (success)\n success(data);\n }).fail((e) => {\n if (error)\n error(e);\n Logger.log(e);\n });\n });\n }\n ;\n function pushDeleteEvent(id, success = undefined, error = undefined) {\n Logger.log('DELETE EVENT');\n Logger.log(id);\n calendarDebounce.push(() => {\n $.ajax({\n url: `/calendar/${id}`,\n type: 'DELETE'\n })\n .done(data => {\n if (success)\n success(data);\n }).fail((e) => {\n if (error)\n error(e);\n });\n $(options.containerId).fullCalendar('removeEvents', [id]);\n });\n }\n function addDayEvent(date) {\n Logger.log('ADD DAY EVENT');\n Logger.log(date);\n const showEventModel = new ShowEventModel();\n showEventModel.start = new moment(date.startOf('day').local().format());\n showEventModel.end = new moment(date.endOf('day').local().format());\n showEvent(showEventModel);\n }\n function editEvent(event) {\n const model = new ShowEventModel();\n model.event = event;\n model.notes = event.notes;\n model.modalTitle = event.title;\n model.title = event.title;\n model.notes = event.notes;\n model.start = event.start;\n model.end = event.end;\n model.allDay = event.allDay;\n showEvent(model);\n }\n ;\n function saveEvent(event) {\n Logger.log('SAVE EVENT');\n Logger.log(event);\n pushEvent(event, responseData => {\n if (event.id === undefined) {\n Logger.log(responseData);\n $(options.containerId).fullCalendar('renderEvent', {\n start: new moment(event.start).utc(),\n end: new moment(event.end).utc(),\n id: responseData.calendarEventId.replace('-', ''),\n allDay: event.allDay,\n title: event.title,\n notes: event.notes,\n backgroundColor: '#007bff',\n borderColor: '#007bff',\n textColor: '#fff'\n }, true);\n }\n else {\n $(options.containerId).fullCalendar('updateEvent', event);\n }\n }, err => {\n Logger.log(err);\n });\n }\n function showEvent(showOptions) {\n Logger.withGroup('Calendar: showEvent', () => {\n Logger.log(showOptions);\n var selectedStart;\n var selectedEnd;\n const outputDates = o => {\n Logger.log(`selectedStart: ${selectedStart.format()}`);\n Logger.log(`selectedEnd: ${selectedEnd.format()}`);\n var dateStartStr = selectedStart.format('M/DD');\n var timeStartStr = selectedStart.format('hh:mm A');\n var dateEndStr = selectedEnd.format('M/DD');\n var timeEndStr = selectedEnd.format('hh:mm A');\n var calIcon = '';\n var timeIcon = '';\n var spanClass = 'badge badge-pill badge-primary';\n var startTimeStr = ` ${timeIcon} ${timeStartStr}`;\n var endTimeStr = ` ${timeIcon} ${timeEndStr}`;\n var startStr = `${calIcon} ${dateStartStr}${startTimeStr}`;\n var endStr = `${calIcon} ${dateEndStr}${endTimeStr}`;\n o.html(`${startStr} - ${endStr}`);\n };\n $.confirm({\n title: showOptions.modalTitle,\n columnClass: 'col',\n content() {\n return $.get('/calendar/eventview');\n },\n contentLoaded: function (data) {\n this.setContent(data);\n },\n buttons: {\n delete: {\n isHidden: (showOptions.event.id === undefined || showOptions.event.id.length <= 0),\n text: 'Delete',\n btnClass: 'btn-danger',\n action() {\n $.confirm({\n title: 'Please confirm',\n content: 'Are you sure you want to delete this event?',\n buttons: {\n Cancel() {\n },\n confirm: {\n text: 'Delete',\n btnClass: 'btn-warning',\n action() {\n pushDeleteEvent(showOptions.event.id);\n }\n }\n }\n });\n }\n },\n cancel: {\n text: options.readOnly ? 'Close' : 'Cancel',\n },\n save: {\n text: 'Save',\n btnClass: 'btn-primary',\n isHidden: options.readOnly,\n action() {\n const editEvent = $.extend(true, {}, showOptions.event);\n const form = this.$content.find('form#CalendarEventForm');\n if (!form.valid())\n return false;\n editEvent.start = new moment(selectedStart.format());\n editEvent.end = new moment(selectedEnd.format());\n editEvent.notes = this.$content.find('.notes').val();\n editEvent.title = this.$content.find('.title').val();\n editEvent.private = this.$content.find('#CalendarEventPrivate').is(':checked');\n editEvent.allDay = this.$content.find('#CalendarEventAllDay').is(':checked');\n saveEvent(editEvent);\n return true;\n }\n }\n },\n onContentReady() {\n Logger.withGroup('CONTENT READY', () => {\n Logger.log(showOptions);\n const form = this.$content.find('form#CalendarEventForm');\n const notesDomObj = this.$content.find('.notes');\n const titleDomObj = this.$content.find('.title');\n const calEventInputDom = this.$content.find('#CalendarEventInput .RangeOutput');\n const defaultPickerOptions = {\n autoUpdateInput: true,\n timePicker: true,\n timePickerIncrement: 1,\n showCustomRangeLabel: false,\n alwaysShowCalendars: true,\n startDate: showOptions.start,\n endDate: showOptions.end,\n locale: {\n format: 'M/DD hh:mm A'\n }\n };\n selectedStart = showOptions.start;\n selectedEnd = showOptions.end;\n outputDates(calEventInputDom);\n notesDomObj.val(showOptions.notes);\n titleDomObj.val(showOptions.title);\n rangePickerInit(defaultPickerOptions, (start, end, label) => {\n selectedStart = new moment(start.format());\n selectedEnd = new moment(end.format());\n outputDates(calEventInputDom);\n });\n form.validate({\n rules: {\n txtCalendarTitle: {\n required: true\n }\n }\n });\n });\n }\n });\n });\n }\n function rangePickerInit(pickerOptions, onSelect) {\n $('#CalendarEventModal #CalendarEventInput').daterangepicker(pickerOptions, (start, end, label) => {\n onSelect(start, end, label);\n });\n }\n function loaded() {\n Logger.withGroup('Calendar: loaded', () => {\n $(options.containerId).fullCalendar({\n defaultDate: options.defaultDate,\n defaultView: 'month',\n timezone: 'local',\n editable: true,\n header: {\n left: 'prev,next today',\n center: 'title',\n right: 'month,agendaWeek,agendaDay' + (options.readOnly ? '' : ' addEvent')\n },\n eventDrop(event, delta, revertFunc, jsEvent, ui, view) {\n pushEventDate(event);\n },\n eventResize(event, delta, refertFunc) {\n pushEventDate(event);\n },\n eventClick(calEvent, jsEvent, view) {\n Logger.withGroup('Calendar: eventClick', () => {\n Logger.log(calEvent);\n const id = calEvent.id;\n const checkInId = calEvent.checkInId;\n if (id === undefined || id === '00000000000000000000000000000000' && checkInId <= 0)\n return;\n if (checkInId > 0) {\n Logger.log(`Checkin ID: ${calEvent.checkInId}`);\n var area = Seismic.area();\n if (area === 'client') {\n window.location.href = `/client/checkin/${checkInId}`;\n }\n else if (area === 'coach') {\n window.location.href = `/coach/checkin/${checkInId}`;\n }\n else {\n Logger.log(`Unknown area ${area}`);\n }\n }\n else {\n if (options.readOnly)\n return;\n editEvent(calEvent);\n }\n });\n },\n dayClick(date, jsEvent, view) {\n if (options.readOnly)\n return;\n addDayEvent(date);\n },\n eventRender(event, element) {\n console.log(event);\n element.find('.fc-title').html(element.find('.fc-title').text());\n if (event.notes != null) {\n element.find('.fc-content').css('cursor', 'help');\n element.find('.fc-content').addClass('popoverTip');\n element.find('.fc-content').attr('data-content', event.notes);\n ToolTips.init();\n }\n if (!event.checkInId) {\n element.find('.fc-title').addClass('demo-blur');\n }\n if (event.checkInId > 0) {\n element.find('.fc-content').css('cursor', 'pointer');\n }\n },\n customButtons: {\n addEvent: {\n icon: 'fa far fa-calendar-plus',\n click() {\n showEvent(new ShowEventModel());\n }\n }\n },\n events: options.events\n });\n });\n }\n function init(opts) {\n options = opts;\n const debounceOptions = new DebounceOptions();\n debounceOptions.IntervalTime = 1000;\n debounceOptions.DebounceId = 'CalendarDebounce';\n calendarDebounce = new Debounce(debounceOptions);\n $(() => { loaded(); });\n }\n Calendar.init = init;\n})(Calendar || (Calendar = {}));\n\nvar UserActivity;\n(function (UserActivity) {\n class Filter {\n constructor(filterInput) {\n this.$obj = $(filterInput);\n this.name = resolveAttr(this.$obj, 'data-filter-name');\n this.default = hasAttr(this.$obj, 'data-filter-default');\n this.checked = false;\n this.$obj.on('change', () => {\n this.checked = this.$obj.is(':checked');\n });\n }\n $obj;\n checked;\n name;\n default;\n check() {\n this.checked = true;\n this.$obj.attr('checked', 'checked');\n }\n uncheck() {\n this.checked = false;\n this.$obj.removeAttr('checked');\n }\n }\n class DataModal {\n constructor(modal) {\n this.data1 = null;\n this.data2 = null;\n this.$modal = $(modal);\n this.eventId = +resolveAttrWithDefault(this.$modal, 'data-eventid', '0');\n const data1Str = resolveAttr(this.$modal, 'data-data1').trim();\n const data2Str = resolveAttr(this.$modal, 'data-data2').trim();\n this.$modal.removeAttr('data-data1');\n this.$modal.removeAttr('data-data2');\n if (data1Str.length > 0)\n this.data1 = JSON.parse(decodeURIComponent(data1Str));\n if (data2Str.length > 0)\n this.data2 = JSON.parse(decodeURIComponent(data2Str));\n this.$showBtn = $('.btnData[data-eventid=\"' + this.eventId + '\"]');\n if (this.$showBtn.length <= 0)\n return;\n this.$showBtn.on('click', (e) => {\n e.preventDefault();\n this.show();\n });\n }\n $modal;\n $showBtn;\n data1;\n data2;\n eventId;\n show() {\n const hasData = (this.data1 != null || this.data2 != null);\n const $data1Wrap = this.$modal.find('.jsonWrap .json.data');\n if (this.data1 != null) {\n $data1Wrap.find('.data').jsonViewer(this.data1, { collapsed: false });\n $data1Wrap.show();\n }\n else {\n $data1Wrap.hide();\n }\n const $data2Obj = this.$modal.find('.jsonWrap .json.context');\n if (this.data2 != null) {\n $data2Obj.find('.data').jsonViewer(this.data2, { collapsed: false });\n $data2Obj.show();\n }\n else {\n $data2Obj.hide();\n }\n if (!hasData)\n return;\n this.$modal.iziModal({ padding: 20 });\n this.$modal.iziModal('open');\n }\n }\n var Filters = [];\n var DataModals = [];\n var DefaultFilters = [];\n var RequestedFilters = [];\n function parseFiltersOnPage() {\n const $objs = $('.filters-nav ul li .filter');\n if ($objs == null || $objs.length < 0)\n return;\n Logger.withGroup('Parsing filters', () => {\n Logger.withGroup('Items', () => {\n $objs.each((i, filterInput) => {\n var item = new Filter(filterInput);\n Filters.push(item);\n Logger.log(item);\n });\n });\n determineDefaultFilters();\n determineRequestedFilters();\n Logger.log(`Default filters: ${DefaultFilters.join(',')}`);\n Logger.log(`Requested filters: ${RequestedFilters.join(',')}`);\n bindFilters();\n $('#btnApplyFilters').on('click', e => {\n e.preventDefault();\n applyFilters();\n });\n });\n }\n function parseDataModals() {\n const $objs = $('.dataModal');\n if ($objs == null || $objs.length < 0)\n return;\n Logger.withGroup('Parsing data modals', () => {\n Logger.withGroup('Items', () => {\n $objs.each((i, modal) => {\n var item = new DataModal(modal);\n DataModals.push(item);\n Logger.log(item);\n });\n });\n });\n }\n function determineDefaultFilters() {\n DefaultFilters = Filters\n .filter((filter) => { return filter.default; })\n .map((filter) => { return filter.name; });\n }\n function determineRequestedFilters() {\n RequestedFilters = queryStringWithDefault('f', DefaultFilters.join(',')).split(',');\n }\n function bindFilters() {\n Filters.forEach((filter) => {\n if (RequestedFilters.indexOf(filter.name) > -1)\n filter.check();\n });\n }\n function getSelectedFilters() {\n return Filters.filter((filter) => {\n return filter.checked;\n });\n }\n function getSelectedFiltersStr() {\n return getSelectedFilters()\n .map((filter) => { return filter.name; })\n .join(',');\n }\n function applyFilters() {\n Loader.show();\n const filtersStr = getSelectedFiltersStr();\n window.location.href = filtersStr.length <= 0 ? '?page=1' : `?page=1&f=${getSelectedFiltersStr()}`;\n }\n function loaded() {\n Logger.withGroup('UserActivity: loaded', () => {\n parseFiltersOnPage();\n parseDataModals();\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n UserActivity.init = init;\n})(UserActivity || (UserActivity = {}));\n\nvar UserAdminOverview;\n(function (UserAdminOverview) {\n var OverviewDebounce;\n var UserId;\n var AffiliateId;\n function selectedRoles() {\n var roles = [];\n $('.kvi-items .role input[type=\"checkbox\"]').each((i, o) => {\n var $o = $(o);\n if ($(o).is(':checked'))\n roles.push(+resolveAttr($o, 'data-roleid'));\n });\n return roles;\n }\n function addRole(roleId) {\n switch (roleId) {\n case 1:\n $('.kvp.role.admin input[type=\"checkbox\"]').prop('checked', false);\n $('.kvp.role.admin button').removeClass('active');\n break;\n case 2:\n $('.kvp.role.sys-admin input[type=\"checkbox\"]').prop('checked', false);\n $('.kvp.role.sys-admin button').removeClass('active');\n break;\n }\n OverviewDebounce.push(() => {\n $.post(`/affiliate/users/role/add?roleId=${roleId}&userId=${UserId}`)\n .done((data) => {\n Errors.respondToResponse(data, () => {\n if (roleId === 4) {\n $('#coach-tab-link').removeClass('disabled');\n }\n }, () => {\n });\n })\n .fail(error => {\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n });\n });\n }\n function removeRole(roleId) {\n OverviewDebounce.push(() => {\n $.post(`/affiliate/users/role/remove?roleId=${roleId}&userId=${UserId}`)\n .done((data) => {\n Errors.respondToResponse(data, () => {\n $('#coach-tab-link').addClass('disabled');\n }, () => {\n });\n })\n .fail(error => {\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n });\n });\n }\n function assignAffiliate(newAffiliateId, withReset) {\n Loader.show();\n $.get(`/system/users/${UserId}/assign/affiliate?affiliateId=${newAffiliateId}&withReset=${withReset}`)\n .done((data) => {\n Errors.respondToResponse(data, () => {\n window.location.href = `/system/users/${UserId}`;\n }, () => {\n Loader.hide();\n });\n })\n .fail(error => {\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n });\n }\n function assignCoach(coachId) {\n OverviewDebounce.push(() => {\n $.post(`/users/coach/assign?coachId=${coachId}&userId=${UserId}`)\n .done((data) => {\n Errors.respondToResponse(data, () => {\n var $opt = $(`#ddl_CoachAssign option[value=\"${coachId}\"]`);\n var fullName = resolveAttr($opt, 'data-fullname');\n $('#ddl_CoachAssign option').removeClass('d-none');\n $opt.addClass('d-none');\n $opt.prop('selected', false);\n $('#alert_NoCoachAssigned').addClass('d-none');\n var $kvi = $('#coach-tab .KeyValueIndex');\n var $qi = $($kvi.find('.kvp.current-coach .key span'));\n var $unassignBtn = $($kvi.find('#btn_RemoveCoachAssignment'));\n $unassignBtn.attr('data-coachid', coachId);\n $qi.addClass('user_quick_info');\n $qi.attr('data-info-userid', coachId);\n $qi.text(fullName);\n $kvi.removeClass('d-none');\n UserQuickInfo.rebuild();\n }, () => {\n });\n })\n .fail(error => {\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n });\n });\n }\n function unassignCoach() {\n OverviewDebounce.push(() => {\n $.post(`/users/coach/unassign?userId=${UserId}`)\n .done((data) => {\n Errors.respondToResponse(data, () => {\n $('#alert_NoCoachAssigned').removeClass('d-none');\n var $kvi = $('#coach-tab .KeyValueIndex');\n var $qi = $($kvi.find('.kvp.current-coach .key span'));\n $qi.removeClass('user_quick_info');\n $kvi.addClass('d-none');\n $('#ddl_CoachAssign option').removeClass('d-none');\n }, () => {\n });\n })\n .fail(error => {\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n });\n });\n }\n function deleteUser(hard) {\n Loader.show();\n $.ajax({\n url: `/users/delete?userId=${UserId}&hard=${hard}`,\n type: 'DELETE'\n })\n .done((data) => {\n Errors.respondToResponse(data, () => {\n if (hard)\n window.location.href = `/system/users/`;\n else\n window.location.href = `/system/users/${UserId}`;\n }, () => {\n Loader.hide();\n });\n })\n .fail(error => {\n Loader.hide();\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n });\n }\n function activateUser() {\n Loader.show();\n $.post(`/users/activate?userId=${UserId}`)\n .done((data) => {\n Errors.respondToResponse(data, () => {\n window.location.href = `/system/users/${UserId}`;\n }, () => {\n Loader.hide();\n });\n })\n .fail(error => {\n Loader.hide();\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n });\n }\n function deactivateUser() {\n Loader.show();\n $.post(`/users/deactivate?userId=${UserId}`)\n .done((data) => {\n Errors.respondToResponse(data, () => {\n window.location.href = `/system/users/${UserId}`;\n }, () => {\n Loader.hide();\n });\n })\n .fail(error => {\n Loader.hide();\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n });\n }\n function sendAccountActivation(email) {\n Loader.show();\n $.post(`/users/send/activation?email=${email}`)\n .done((data) => {\n if (data.length > 0) {\n Toasts.success(new Toasts.ToastOptions('Verification email sent!'));\n }\n })\n .fail(error => {\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n }).always(() => {\n Loader.hide();\n });\n }\n function sendTrainingInvite() {\n Loader.show();\n $.post(`/users/send/training-invite?userId=${UserId}`)\n .done((data) => {\n Errors.respondToResponse(data, () => {\n Toasts.success(new Toasts.ToastOptions('Talent activation email sent!'));\n }, () => {\n Loader.hide();\n });\n })\n .fail(error => {\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n }).always(() => {\n Loader.hide();\n });\n }\n function sendEmailVerfication(email) {\n Loader.show();\n $.post(`/users/send/verifyemail?email=${email}`)\n .done((data) => {\n if (data.length > 0) {\n Toasts.success(new Toasts.ToastOptions('Verification email sent!'));\n }\n })\n .fail(error => {\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n }).always(() => {\n Loader.hide();\n });\n }\n function sendPasswordReset(email) {\n Loader.show();\n $.post(`/users/send/passwordreset?email=${email}`)\n .done((data) => {\n if (data.length > 0) {\n Toasts.success(new Toasts.ToastOptions('Password reset email sent!'));\n }\n })\n .fail(error => {\n Loader.hide();\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n }).always(() => {\n Loader.hide();\n });\n }\n function generatePasswordResetCode() {\n Loader.show();\n $.get(`/users/generateinvitecode?userId=${UserId}`)\n .done((data) => {\n location.reload();\n })\n .fail(error => {\n Loader.hide();\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n });\n }\n function sendPushTest(id) {\n Loader.show();\n $.post(`/users/send/pushtest?id=${id}`)\n .done((data) => {\n if (data) {\n Toasts.success(new Toasts.ToastOptions('Push test request sent!'));\n }\n })\n .fail(error => {\n Loader.hide();\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n }).always(() => {\n Loader.hide();\n });\n }\n function resetClientData(keepCoach, keepPhotos, keepQuestionnaire) {\n Loader.show();\n $.post(`/users/reset/client-data?userId=${UserId}&keepCoach=${keepCoach}&keepPhotos=${keepPhotos}&keepQuestionnaire=${keepQuestionnaire}`)\n .done((data) => {\n if (data) {\n if (typeof data.requestOk != 'undefined' && data.requestOk) {\n const userIsCurUser = Seismic.Session.UserId === UserId;\n const messageVerbiage = userIsCurUser ? 'Your' : 'This user\\'s';\n const logoutMessage = userIsCurUser ? ' You must now log back in.' : '';\n if (userIsCurUser) {\n $.get('/logout');\n }\n Alerts.success({\n title: 'Reset Successful',\n content: `${messageVerbiage} client data has been reset.${logoutMessage}`,\n buttons: {\n ok: {\n text: 'Ok',\n action() {\n Loader.show(new LoaderOptions(() => { window.location.reload(); }));\n }\n }\n }\n });\n }\n else {\n Alerts.error({ content: '' });\n }\n }\n })\n .fail(error => {\n Loader.hide();\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n }).always(() => {\n Loader.hide();\n });\n }\n function confirm_DeactivateUser() {\n Alerts.confirm({\n icon: 'fas fa-user-slash',\n title: 'Deactivate User',\n content: `

Are you sure you want to deactivate this user?

`,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n yes: {\n text: ' Deactivate',\n btnClass: 'btn-warning',\n action() {\n deactivateUser();\n }\n }\n }\n });\n }\n function confirm_ActivateUser() {\n Alerts.confirm({\n icon: 'far fa-power-off',\n title: 'Activate User',\n content: `

Are you sure you want to activate this user?

`,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n yes: {\n text: ' Activate',\n btnClass: 'btn-primary',\n action() {\n activateUser();\n }\n }\n }\n });\n }\n function confirm_ResetClientData() {\n Alerts.confirm({\n icon: 'fas fa-undo',\n title: 'Reset Client Data',\n content: '

Are you sure you want to reset this client\\'s data?
' +\n 'WARNING: This action cannot be undone!

' +\n '

' +\n '

' +\n '
' +\n '
' +\n '

',\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n yes: {\n text: ' Reset',\n btnClass: 'btn-warning',\n action() {\n const keepCoach = $('#chx_ResetClientData_KeepCoach').is(':checked');\n const keepPhotos = $('#chx_ResetClientData_KeepPhotos').is(':checked');\n const keepQuestionnaire = $('#chx_ResetClientData_KeepQuestionnaire').is(':checked');\n resetClientData(keepCoach, keepPhotos, keepQuestionnaire);\n }\n }\n }\n });\n }\n function confirm_RemoveCoachRole() {\n Alerts.confirm({\n title: `Remove Coach Role`,\n content: `

Are you sure you want to remove the coaching role from this user?

`,\n buttons: {\n cancel: {\n text: 'Cancel',\n action() {\n const $cb = $('#chx_Roles_Coach');\n $cb.prop('checked', true);\n $($cb.parent().find('button')).addClass('active');\n }\n },\n yes: {\n text: 'Remove',\n btnClass: 'btn-warning',\n action() {\n removeRole(3);\n }\n }\n }\n });\n }\n function confirm_AssignAffiliate(newAffiliateId, newAffiliateName) {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n title: `Assign Affiliate`,\n content: `

Do you wish to change this user's affiliate to ${newAffiliateName}?

`,\n buttons: {\n cancel: {\n text: 'Cancel',\n action() {\n $('#ddl_Affiliates').val(AffiliateId);\n }\n },\n yes: {\n text: 'Yes',\n btnClass: 'btn-warning',\n action() {\n assignAffiliate(newAffiliateId, false);\n }\n }\n }\n });\n }\n function confirm_AssignAffiliateWithReset(newAffiliateId, newAffiliateName) {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n title: `Change Affiliate`,\n content() {\n let html = '';\n html += `

This operation will (if applicable):

`;\n html += `
    \r\n
  • Change this users affiliate to ${newAffiliateName}
  • \r\n
  • Cancel an active subscription and refund the latest payment
  • \r\n
  • Unassign their coach & send them an email notification
  • \r\n
  • Reset their account to a 'new' account status, requiring them to re-complete the new user intro.
  • \r\n
  • Delete all checkins, logs, messages, & macros associated to this client.
  • \r\n
  • Existing profile, settings, and questionnaire data will not be deleted.
  • \r\n
`;\n html += `

Are you sure you want to continue?

`;\n return html;\n },\n buttons: {\n cancel: {\n text: 'Cancel',\n action() {\n $('#ddl_Affiliates').val(AffiliateId);\n }\n },\n yes: {\n text: 'Yes',\n btnClass: 'btn-warning',\n action() {\n assignAffiliate(newAffiliateId, true);\n }\n }\n }\n });\n }\n function confirm_AssignCoach(coachId, fullName, accepting, percent) {\n let message = '';\n if (!accepting) {\n message += 'This coach is not accepting new clients at this time. ';\n }\n else {\n if (percent >= 100)\n message += 'This coach\\'s current capacity is already at 100% ';\n }\n message += `Are you sure you want to assign ${fullName} to this client?`;\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n title: `Assign Coach`,\n content: message,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n yes: {\n text: 'Assign',\n btnClass: 'btn-warning',\n action() {\n assignCoach(coachId);\n }\n }\n }\n });\n }\n function confirm_UnassignCoach(coachId, fullName) {\n const message = `Are you sure you want to un-assign ${fullName} from this client?`;\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n title: `Un-Assign Coach`,\n content: message,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n yes: {\n text: 'Un-Assign',\n btnClass: 'btn-warning',\n action() {\n unassignCoach();\n }\n }\n }\n });\n }\n function confirm_Delete(hard) {\n let message = '';\n if (hard)\n message = 'WARNING: YOU ARE ABOUT TO HARD DELETE THIS USER. THIS ACTION CANNOT BE UNDONE! ';\n message += 'Are you sure you want to continue to delete this person?';\n Alerts.confirm({\n title: `Delete User`,\n content: message,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n delete: {\n text: 'Delete',\n btnClass: 'btn-danger',\n action() {\n deleteUser(hard);\n }\n }\n }\n });\n }\n function prompt_Delete() {\n Alerts.confirm({\n title: `Delete User`,\n content: `

Do you want to HARD delete this user, or just mark them as deleted?

`,\n buttons: {\n cancel: {\n text: 'Cancel'\n },\n hard: {\n text: 'Hard',\n btnClass: 'btn-danger',\n action() {\n confirm_Delete(true);\n }\n },\n mark: {\n text: 'Mark Deleted',\n btnClass: 'btn-warning',\n action() {\n confirm_Delete(false);\n }\n }\n }\n });\n }\n function markIntro(complete) {\n Loader.show();\n $.post({\n url: `/users/updatevalue`,\n data: {\n propertyName: 'CompletedIntro',\n propertyValue: complete,\n userId: UserId\n }\n })\n .done((data) => {\n Errors.respondToResponse(data, () => {\n window.location.href = `/system/users/${UserId}`;\n }, () => {\n Loader.hide();\n });\n })\n .fail(error => {\n Loader.hide();\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n });\n }\n function markQuestionnaire(complete) {\n Loader.show();\n $.post({\n url: `/users/updatevalue`,\n data: {\n propertyName: 'CompletedQuestionnaire',\n propertyValue: complete,\n userId: UserId\n }\n })\n .done((data) => {\n Errors.respondToResponse(data, () => {\n window.location.href = `/system/users/${UserId}`;\n }, () => {\n Loader.hide();\n });\n })\n .fail(error => {\n Loader.hide();\n Logger.log(error);\n Alerts.error({ content: error.responseText });\n });\n }\n function loaded() {\n $('.do-delegate-affiliate').on('click', e => {\n e.preventDefault();\n var id = $(e.currentTarget).attr('data-affiliate-id');\n Seismic.delegateAffiliate(id);\n });\n $('#ddl_Affiliates').on('change', e => {\n const _this = $(e.currentTarget);\n const affiliateId = +$(_this).val();\n const affiliateName = $(_this).find('option:selected').text();\n if (AffiliateId == null) {\n confirm_AssignAffiliate(affiliateId, affiliateName);\n }\n else {\n confirm_AssignAffiliateWithReset(affiliateId, affiliateName);\n }\n });\n $('.kvi-items .role input[type=\"checkbox\"]').each((i, o) => {\n var $cb = $(o);\n $cb.on('change', () => {\n var roleId = +resolveAttr($cb, 'data-roleid');\n var checked = $cb.is(':checked');\n if (checked) {\n addRole(roleId);\n return;\n }\n if (roleId === 3) {\n confirm_RemoveCoachRole();\n return;\n }\n if (selectedRoles().length === 0) {\n Alerts.alert({\n title: `Cannot Remove Role`,\n content: `

You cannot remove this user's last role. Every user must have at least 1 role assigned.

`,\n buttons: { ok: { text: 'Ok' } }\n });\n window.setTimeout(() => {\n $cb.prop('checked', true);\n $($cb.parent().find('button')).addClass('active');\n }, 100);\n return;\n }\n removeRole(roleId);\n });\n });\n $('#ddl_CoachAssign').on('change', e => {\n const _this = $(e.currentTarget);\n const coachId = +_this.val();\n if (coachId <= 0)\n return;\n const $opt = $(_this.find(':selected'));\n const accepting = parseBool(resolveAttrWithDefault($opt, 'data-accepting', 'true'));\n const percent = +resolveAttrWithDefault($opt, 'data-percent', '0');\n const fullName = resolveAttr($opt, 'data-fullname');\n confirm_AssignCoach(coachId, fullName, accepting, percent);\n });\n $('#btn_RemoveCoachAssignment').on('click', e => {\n e.preventDefault();\n const _this = $(e.currentTarget);\n const $obj = $(_this);\n const coachId = +resolveAttrWithDefault($obj, 'data-coachid', '0');\n const fullName = resolveAttr($obj, 'data-fullname');\n if (coachId <= 0)\n return;\n confirm_UnassignCoach(coachId, fullName);\n });\n $('#btn_MarkIntroComplete').on('click', e => {\n e.preventDefault();\n markIntro(true);\n });\n $('#btn_MarkIntroIncomplete').on('click', e => {\n e.preventDefault();\n markIntro(false);\n });\n $('#btn_MarkQuestionnaireComplete').on('click', e => {\n e.preventDefault();\n markQuestionnaire(true);\n });\n $('#btn_MarkQuestionnaireIncomplete').on('click', e => {\n e.preventDefault();\n markQuestionnaire(false);\n });\n $('#btn_Delete').on('click', e => {\n e.preventDefault();\n prompt_Delete();\n });\n $('#btn_OfferAlumni').on('click', e => {\n e.preventDefault();\n Alumni.adminOfferAlumniProgram(UserId);\n });\n $('#btn_RevokeAlumni').on('click', e => {\n e.preventDefault();\n Alumni.adminRevokeAlumniProgram(UserId);\n });\n $('#btn_OptClientIn').on('click', e => {\n e.preventDefault();\n Alumni.adminOptClient(AlumniOpt.IN, UserId);\n });\n $('#btn_OptClientOut').on('click', e => {\n e.preventDefault();\n Alumni.adminOptClient(AlumniOpt.OUT, UserId);\n });\n $('#btn_Deactivate').on('click', e => {\n e.preventDefault();\n confirm_DeactivateUser();\n });\n $('#btn_Activate').on('click', e => {\n e.preventDefault();\n confirm_ActivateUser();\n });\n $('#btn_ResetClientData').on('click', e => {\n e.preventDefault();\n confirm_ResetClientData();\n });\n $('#btn_SendAccountActivation').on('click', function (e) {\n e.preventDefault();\n WebuiPopovers.hide('[for=\"user-details-actions\"]');\n const email = resolveAttr($(this), 'data-email');\n sendAccountActivation(email);\n });\n $('#btn_SendEmailVerification').on('click', function (e) {\n e.preventDefault();\n WebuiPopovers.hide('[for=\"user-details-actions\"]');\n const email = resolveAttr($(this), 'data-email');\n sendEmailVerfication(email);\n });\n $('#btn_SendPasswordReset').on('click', e => {\n e.preventDefault();\n const _this = $(e.currentTarget);\n WebuiPopovers.hide('[for=\"user-details-actions\"]');\n const email = resolveAttr($(_this), 'data-email');\n sendPasswordReset(email);\n });\n $('#btn_CopyPasswordResetLink').on('click', e => {\n e.preventDefault();\n const _this = $(e.currentTarget);\n WebuiPopovers.hide('[for=\"user-details-actions\"]');\n const email = resolveAttr($(_this), 'data-email');\n const code = resolveAttr($(_this), 'data-code');\n copyTextToClipboard(`https://getseismic.com/account/forgot/verifycode?email=${email}&code=${code}`.toLowerCase());\n });\n $('#btn_GeneratePasswordResetCode').on('click', e => {\n e.preventDefault();\n WebuiPopovers.hide('[for=\"user-details-actions\"]');\n generatePasswordResetCode();\n });\n $('#btn_SendTestPush').on('click', e => {\n e.preventDefault();\n const _this = $(e.currentTarget);\n WebuiPopovers.hide('[for=\"user-details-actions\"]');\n const userid = resolveAttr($(_this), 'data-user-id');\n sendPushTest(userid);\n });\n XEditable.init(UserId, \"users\");\n }\n function init(userId, affiliateId) {\n UserId = userId;\n AffiliateId = affiliateId;\n const debounceOptions = new DebounceOptions();\n debounceOptions.IntervalTime = 1000;\n debounceOptions.DebounceId = 'OverviewDebounce';\n OverviewDebounce = new Debounce(debounceOptions);\n $(() => { loaded(); });\n }\n UserAdminOverview.init = init;\n})(UserAdminOverview || (UserAdminOverview = {}));\n\nvar UserAdminClientDetails;\n(function (UserAdminClientDetails) {\n var UserId;\n function loadTab(tab, forceLoad = false) {\n Logger.withGroup('UserAdminOverview: loadTab', () => {\n const tabId = tab.attr('id');\n const tabPreviouslyLoaded = parseBool(resolveAttrWithDefault(tab, 'data-tab-dataloaded', 'false'));\n if (tabPreviouslyLoaded && !forceLoad)\n return;\n tab.attr('data-tab-dataloaded', 'true');\n Logger.log(`Loading tab: ${tabId}`);\n switch (tabId) {\n case 'notes-tab':\n ClientNotes.displayNotes();\n break;\n case 'check-ins-tab':\n CoachingClientCheckIns.displayCheckIns();\n break;\n case 'logs-tab':\n CoachingClientLogs.displayLogs();\n break;\n case 'escalations-tab':\n CoachingClientEscalations.displayEscalations();\n break;\n case 'questionnaire-tab':\n TextAreaAutoGrow.recheck();\n break;\n case 'calendar-tab':\n CoachingClientCalendar.displayCalendar('month');\n break;\n }\n });\n }\n function pushCheckin() {\n Alerts.confirm({\n icon: 'fas fa-arrow-to-right',\n title: 'Push Checkin',\n content() {\n let html = '
';\n html += '

For which day would you like to push this checkin?

';\n html += '
';\n html += '
';\n html += '';\n html += '';\n html += '
';\n html += '
';\n html += '';\n html += '';\n html += '
';\n html += '
';\n html += '
';\n html += '';\n html += ``;\n html += 'This will be the date that the client is expected to check-in.';\n html += '
';\n html += '

Would you like to edit the current check-in, or create a whole new check-in?';\n html += '

';\n html += '
';\n html += '';\n html += '';\n html += '
';\n html += '
';\n html += '';\n html += '';\n html += 'Creating a whole new check-in is more analogous to the client experience.';\n html += '
';\n html += '
';\n html += '
';\n html += '
';\n html += '';\n html += '';\n html += 'The client message, metrics, mood and photos are removed.';\n html += '
';\n html += '
';\n html += '
';\n return html;\n },\n onOpenBefore() {\n const koViewModel = {\n checkedDateChoice: ko.observable('today'),\n checkedCreateEditChoice: ko.observable('create'),\n };\n ko.applyBindings(koViewModel, $('#PushCheckinPrompt')[0]);\n new Cleave('#txtDateInput', {\n date: true,\n datePattern: ['m', 'd', 'Y']\n });\n },\n onClose() {\n ko.cleanNode($('#PushCheckinPrompt')[0]);\n },\n buttons: {\n cancel: {\n text: 'Cancel',\n action() {\n }\n },\n push: {\n text: ' Push',\n btnClass: 'btn-warning',\n action() {\n const forToday = $('#PushCheckinPrompt #rdoToday').is(':checked');\n const data = {\n dateChoice: $('#PushCheckinPrompt #txtDateInput').val().replace('/', '-'),\n editCheckin: $('#PushCheckinPrompt #rdoEdit').is(':checked'),\n resetData: $('#PushCheckinPrompt #chxResetData').is(':checked')\n };\n if (!forToday && data.dateChoice.length <= 0) {\n Alerts.error({ content: 'You must provide a date.', buttons: { ok: { text: 'Ok' } } });\n return false;\n }\n if (!forToday) {\n if (moment().diff(new Date(data.dateChoice), 'days') > 0) {\n Alerts.error({ content: 'You must provide a future date.', buttons: { ok: { text: 'Ok' } } });\n return false;\n }\n data.dateChoice = data.dateChoice;\n }\n Loader.show();\n $.get({\n url: `/${Seismic.area()}/users/${UserId}/pushcheckin?${serialize(data)}`\n })\n .done((response) => {\n Errors.respondToResponse(response, () => {\n Alerts.success({\n title: 'Push Successful',\n content: 'This client\\'s checkin has been pushed',\n buttons: {\n ok: {\n text: 'Ok',\n action() {\n const loaderOptions = new LoaderOptions(() => { window.location.reload(); });\n Loader.show(loaderOptions);\n }\n }\n }\n });\n });\n })\n .fail((err) => {\n Logger.error(err);\n var toastOptions = new Toasts.ToastOptions('There was an error. See console for more info.');\n Toasts.error(toastOptions);\n })\n .always(() => {\n Loader.hide();\n });\n return true;\n }\n }\n }\n });\n }\n function checkMfp() {\n const mfpUserName = $('#hdnMfpUserName').val();\n const mfpDiaryState = $('#mfpDiaryState');\n Loader.show();\n $.get(`/coach/clients/mfp?mfpUserName=${mfpUserName}`)\n .done(data => {\n Logger.log('UserAdminClientDetails: MFP response successful');\n mfpDiaryState.html('');\n mfpDiaryState.html(data);\n $('#btnCheckMfp').on('click', (e) => {\n e.preventDefault();\n checkMfp();\n });\n }).fail((e) => {\n mfpDiaryState.html('There was an error loading this content');\n Logger.log(e);\n }).always(() => {\n Loader.hide();\n });\n }\n function loaded() {\n $('a[data-toggle=\"tab\"]').on('shown.bs.tab', e => {\n var tabId = resolveAttr($(e.target), 'href');\n var tab = $(tabId);\n Logger.log(tabId);\n loadTab(tab);\n });\n $('#btnPushCheckin').on('click', (e) => {\n e.preventDefault();\n pushCheckin();\n });\n $('#btnCheckMfp').on('click', (e) => {\n e.preventDefault();\n checkMfp();\n });\n $('#btnEscalate').on('click', (e) => {\n e.preventDefault();\n CoachingClientEscalations.prompt_Escalate(UserId, () => {\n $('#btnEscalate').attr('disabled', '');\n Alerts.success({ content: 'This client has been escalated.' });\n var tabLink = $('#escalations-tab-link');\n tabLink.click();\n loadTab(tabLink, true);\n });\n });\n var hash = $(location).attr('hash');\n loadTab($(hash));\n }\n function init(userId, displayForCoach = false) {\n UserId = userId;\n LogMetricsToggles.init(userId);\n ClientNotes.init(userId);\n CoachingClientCheckIns.init(userId, displayForCoach);\n CoachingClientLogs.init(userId);\n UserSettings.initProgramSelectionTab(userId);\n const escalationOptions = new CoachingClientEscalations.Options();\n escalationOptions.clientId = userId;\n CoachingClientEscalations.init(escalationOptions);\n const calendarOptions = new CoachingClientCalendar.Options();\n calendarOptions.clientId = userId;\n CoachingClientCalendar.init(calendarOptions);\n $(() => { loaded(); });\n }\n UserAdminClientDetails.init = init;\n})(UserAdminClientDetails || (UserAdminClientDetails = {}));\n\nclass UserNotification {\n ActionObject;\n ActionObjectId;\n HasRead;\n IconClassString;\n Message;\n NotifiedDate;\n TypeId;\n UserId;\n UserNotificationId;\n}\nvar UserNotifications;\n(function (UserNotifications) {\n var notificationsDebounce;\n function hookPopItems() {\n $('#NotificationsPop ul li.markAsRead a').off().on('click', e => {\n e.preventDefault();\n e.stopPropagation();\n $('#NotificationsPop ul li.markAsRead').addClass('d-none');\n $('#NotificationsPop li.item').hide();\n $('#NotificationsPop li.allClear').removeClass('d-none');\n $('body nav ul li#Notifications a span').addClass('d-none');\n MarkAsRead();\n });\n $('#NotificationsPop ul li.item a').off().on('click', function (e) {\n e.preventDefault();\n e.stopPropagation();\n const me = $(this);\n const notificationId = resolveAttr(me, 'data-notificationid');\n $('li#Notifications').webuiPopover('hide');\n Loader.show();\n UserNotifications.Go(notificationId);\n });\n }\n function incrementCounter() {\n const countObj = $('#NavUnreadNotificationCount');\n const currentCount = +countObj.text();\n const newCount = currentCount + 1;\n countObj.attr('data-countup-start', currentCount);\n countObj.text(newCount);\n countObj.removeClass('d-none');\n $('#NotificationsPop ul li.markAsRead').removeClass('d-none');\n const countUpInstance = new CountUpItem(countObj[0]);\n countUpInstance.CUI.start();\n }\n function Notify(notification) {\n $('#NotificationsPop ul li.allClear').addClass('d-none');\n $.post({\n url: '/usernotifications/popitemhtml',\n data: notification\n })\n .done((data) => {\n if ($('#NotificationsPop ul li.item').length >= 5) {\n const additionalOver5 = +$('#NotificationsPop li.additional span.totalAdditional').text();\n $('#NotificationsPop li.additional span.totalAdditional').text(additionalOver5 + 1);\n $('#NotificationsPop li.additional').removeClass('d-none');\n $('#NotificationsPop ul li.item').last().remove();\n }\n $('#NotificationsPop ul').prepend(data);\n incrementCounter();\n hookPopItems();\n UtcParser.init();\n shakeCount();\n })\n .fail((err) => {\n Logger.log(err);\n });\n }\n UserNotifications.Notify = Notify;\n function MarkAsRead() {\n notificationsDebounce.push(() => {\n $.post('/usernotifications/markasread/')\n .done(() => {\n RefreshPop();\n });\n });\n }\n UserNotifications.MarkAsRead = MarkAsRead;\n function Go(notificationId) {\n window.location.href = `/usernotifications/go/${notificationId}`;\n }\n UserNotifications.Go = Go;\n function Enable(id, medium, success = undefined, error = undefined) {\n notificationsDebounce.push(() => {\n $.post({\n url: `/usernotifications/enable/${id}/${medium}`\n }).done(data => {\n if (success)\n success(data);\n }).fail((e) => {\n if (error)\n error(e);\n });\n });\n }\n UserNotifications.Enable = Enable;\n function Disable(id, medium, success = undefined, error = undefined) {\n notificationsDebounce.push(() => {\n $.post({\n url: `/usernotifications/disable/${id}/${medium}`\n }).done(data => {\n if (success)\n success(data);\n }).fail((e) => {\n if (error)\n error(e);\n });\n });\n }\n UserNotifications.Disable = Disable;\n function RefreshPop() {\n notificationsDebounce.push(() => {\n var nunc = $('#NavUnreadNotificationCount');\n var previousValue = +nunc.text();\n $.get('/usernotifications/refreshpop')\n .done((data) => {\n $('#NotificationsPop').html(data);\n nunc = $('#NavUnreadNotificationCount');\n var newValue = +nunc.text();\n hookPopItems();\n UtcParser.init();\n if (newValue !== previousValue) {\n shakeCount(nunc[0]);\n }\n })\n .fail((err) => {\n Logger.log(err);\n });\n });\n }\n UserNotifications.RefreshPop = RefreshPop;\n function shakeCount(navUnreadNotificationCountObj = undefined, withSound = true) {\n if (navUnreadNotificationCountObj === undefined)\n navUnreadNotificationCountObj = $('#NavUnreadNotificationCount');\n if (withSound)\n Sound.Notify();\n shake(navUnreadNotificationCountObj[0], 5);\n }\n function init() {\n const debounceOptions = new DebounceOptions();\n debounceOptions.IntervalTime = 1000;\n debounceOptions.DebounceId = 'NotificationsDebounce';\n notificationsDebounce = new Debounce(debounceOptions);\n $(() => {\n hookPopItems();\n });\n }\n UserNotifications.init = init;\n})(UserNotifications || (UserNotifications = {}));\nUserNotifications.init();\n\nvar UserQuickInfo;\n(function (UserQuickInfo) {\n class QuickInfo {\n constructor(o) {\n this.$obj = $(o);\n this.userId = +resolveAttr(this.$obj, 'data-info-userid');\n this.moreInfoRoutePrefix = resolveAttrWithDefault(this.$obj, 'data-info-moreinforouteprefix', '');\n this.placement = resolveAttrWithDefault(this.$obj, 'data-info-placement', 'right');\n this.includeCoachMetrics = parseBool(resolveAttrWithDefault(this.$obj, 'data-info-includecoachmetrics', 'false'));\n this.hideInfoIcon = parseBool(resolveAttrWithDefault(this.$obj, 'data-info-hideinfoicon', 'false'));\n this.showDetails = parseBool(resolveAttrWithDefault(this.$obj, 'data-info-showdetails', 'true'));\n this.showLinks = parseBool(resolveAttrWithDefault(this.$obj, 'data-info-showlinks', 'false'));\n this.backdrop = parseBool(resolveAttrWithDefault(this.$obj, 'data-info-backdrop', 'false'));\n this.$obj.css({ 'cursor': 'help' });\n if (this.includeCoachMetrics)\n this.showDetails = true;\n if (this.hideInfoIcon)\n this.$obj.addClass('no-info-icon');\n this.url = `/users/quickinfo?id=${this.userId}&showDetails=${this.showDetails}&includeCoachMetrics=${this.includeCoachMetrics}`;\n let areaPrefix = Seismic.area();\n if (this.moreInfoRoutePrefix.length > 0)\n areaPrefix = this.moreInfoRoutePrefix;\n this.url += `$&areaPrefix=${areaPrefix}`;\n }\n url;\n moreInfoRoutePrefix;\n hideInfoIcon;\n includeCoachMetrics;\n showDetails;\n showLinks;\n backdrop;\n placement;\n userId;\n $obj;\n }\n var QuickInfos;\n function destroy() {\n loop(QuickInfos, (qi) => {\n $(qi.$obj).webuiPopover('destroy');\n });\n QuickInfos = [];\n }\n UserQuickInfo.destroy = destroy;\n function rebuild() {\n destroy();\n build();\n }\n UserQuickInfo.rebuild = rebuild;\n function build() {\n $('.user_quick_info').each((i, o) => {\n QuickInfos.push(new QuickInfo(o));\n });\n loop(QuickInfos, (qi) => {\n qi.$obj.webuiPopover({\n placement: qi.placement,\n type: 'async',\n animation: 'pop',\n backdrop: qi.backdrop,\n container: '.user_quick_info_pops',\n url: qi.url,\n async: {\n success() {\n UserQuickLinks.init();\n UtcParser.init();\n ToolTips.init();\n UserOnline.init();\n $(\".user_quick_info_pops .do-impersonate\").on('click', e => {\n e.preventDefault();\n qi.$obj.webuiPopover('hide');\n var email = $(e.currentTarget).attr('data-info-email');\n Seismic.impersonate(email);\n });\n }\n }\n });\n });\n $('.do-impersonate').on('click', e => {\n e.preventDefault();\n var email = $(e.currentTarget).attr('data-info-email');\n Seismic.impersonate(email);\n });\n $('.do-delegate').on('click', e => {\n e.preventDefault();\n var email = $(e.currentTarget).attr('data-info-email');\n Seismic.delegateCoachAsAdmin(email);\n });\n }\n function loaded() {\n $('body').append('
');\n build();\n }\n function init() {\n QuickInfos = [];\n $(() => { loaded(); });\n }\n UserQuickInfo.init = init;\n})(UserQuickInfo || (UserQuickInfo = {}));\n\nvar UserSettings;\n(function (UserSettings) {\n var initializedFromIntro = false;\n var currentUserId;\n function changeProgram(program) {\n if (typeof (program) === 'undefined' || program.length <= 0)\n return;\n Logger.log('Requesting to change program to ' + program + ' for user: ' + currentUserId);\n Loader.show();\n $.post(`/account/settings/changeprogram?userId=${currentUserId}&requestedProgram=${program}`)\n .done((response) => {\n Errors.respondToResponse(response, () => {\n Loader.hide();\n Alerts.success({\n icon: 'fas fa-check-circle',\n title: 'Program changed.',\n content: 'You have successfully changed programs. Your coach will be notified.',\n buttons: {\n ok: {\n text: 'Ok',\n action: () => {\n var loaderOptions = new LoaderOptions(() => {\n window.location.reload();\n });\n Loader.show(loaderOptions);\n }\n }\n }\n });\n }, () => { Loader.hide(); }, true);\n })\n .fail((err) => {\n Logger.error(err);\n Loader.hide();\n });\n }\n function exitList(waitlistUserId) {\n if (typeof (waitlistUserId) === 'undefined' || waitlistUserId <= 0)\n return;\n Loader.show();\n $.post(`/account/settings/exitwaitlist?userId=${currentUserId}&waitlistUserId=${waitlistUserId}`)\n .done((response) => {\n Errors.respondToResponse(response, () => {\n Alerts.success({\n icon: 'fas fa-check-circle',\n title: 'Removed from waitlist',\n content: 'You have been successfully removed from this waitlist.',\n buttons: {\n ok: {\n text: 'Ok',\n action: () => {\n var loaderOptions = new LoaderOptions(() => {\n window.location.reload();\n });\n Loader.show(loaderOptions);\n }\n }\n }\n });\n }, () => { Loader.hide(); }, true);\n })\n .fail((err) => {\n Logger.error(err);\n Loader.hide();\n });\n }\n function prompt_changeProgram(program) {\n Alerts.confirm({\n icon: 'fas fa-exchange',\n title: 'Change Program?',\n content: `Are you sure you want to change to the ${program} Program?`,\n buttons: {\n no: { text: 'Stay' },\n yes: {\n text: `Change to ${program} Program`,\n btnClass: 'btn-primary',\n action() {\n changeProgram(program);\n }\n }\n }\n });\n }\n function prompt_changeWaitlist(program) {\n Alerts.confirm({\n icon: 'fas fa-exchange',\n title: 'Change Waitlist?',\n content: `Are you sure you want to join the ${program.name} waitlist?`,\n buttons: {\n no: { text: 'No' },\n yes: {\n text: 'Join',\n btnClass: 'btn-primary',\n action() {\n ClientWaitlist.changeWaitlist(program.id, currentUserId, false, false);\n }\n }\n }\n });\n }\n function prompt_exitWaitlist(waitlistUsersId, programName) {\n Alerts.confirm({\n icon: 'fas fa-sign-out',\n title: 'Exit Waitlist?',\n content: `Are you sure you want to remove yourself from the ${programName} Program waitlist?`,\n buttons: {\n no: { text: 'Stay on the list' },\n yes: {\n text: 'Remove me',\n btnClass: 'btn-primary',\n action() {\n exitList(waitlistUsersId);\n }\n }\n }\n });\n }\n function loaded() {\n $('#UserSettingsForm').validate({\n onkeyup: function (element, e) {\n if (e.which === 9 && this.elementValue(element) === '') {\n return;\n }\n else if (element.name in this.submitted || element === this.lastElement) {\n this.element(element);\n }\n }\n });\n if ($('#CoachBio').is(':visible')) {\n CkEditor.init('#CoachBio', e => { }, 10, e => {\n $(\"#CoachBio\").val(e);\n });\n }\n initProgramSelectionTab(currentUserId);\n }\n function initProgramSelectionTab(userId) {\n currentUserId = userId;\n $('.btnJoinProgram').on('click', e => {\n e.preventDefault();\n var $me = $(e.currentTarget);\n var programId = resolveAttr($me, 'data-programid');\n var programName = resolveAttr($me, 'data-program-name');\n if (programId > 0) {\n const activeWaitlist = parseBool(resolveAttrWithDefault($me, 'data-program-active-waitlist', 'false'));\n const program = new ClientWaitlist.Program(programId, programName, activeWaitlist);\n prompt_changeWaitlist(program);\n return;\n }\n prompt_changeProgram(programName);\n });\n $('.btnExitList').on('click', e => {\n e.preventDefault();\n var $me = $(e.currentTarget);\n var waitlistUsersId = resolveAttr($me, 'data-waitlist-usersid');\n var programName = resolveAttr($me, 'data-program-name');\n if (waitlistUsersId <= 0)\n return;\n prompt_exitWaitlist(waitlistUsersId, programName);\n return;\n });\n }\n UserSettings.initProgramSelectionTab = initProgramSelectionTab;\n function init(userId, fromIntro = false) {\n initializedFromIntro = fromIntro;\n currentUserId = userId;\n $(() => { loaded(); });\n }\n UserSettings.init = init;\n})(UserSettings || (UserSettings = {}));\n\nvar IntegrationAuthorizationStatuses;\n(function (IntegrationAuthorizationStatuses) {\n IntegrationAuthorizationStatuses[IntegrationAuthorizationStatuses[\"Authorized\"] = 200] = \"Authorized\";\n IntegrationAuthorizationStatuses[IntegrationAuthorizationStatuses[\"Unauthorized\"] = 401] = \"Unauthorized\";\n IntegrationAuthorizationStatuses[IntegrationAuthorizationStatuses[\"NotFound\"] = 404] = \"NotFound\";\n IntegrationAuthorizationStatuses[IntegrationAuthorizationStatuses[\"InvalidDiaryKey\"] = 424] = \"InvalidDiaryKey\";\n IntegrationAuthorizationStatuses[IntegrationAuthorizationStatuses[\"Unknown\"] = -1] = \"Unknown\";\n})(IntegrationAuthorizationStatuses || (IntegrationAuthorizationStatuses = {}));\nvar IntegrationSources;\n(function (IntegrationSources) {\n IntegrationSources[IntegrationSources[\"MacrosFirst\"] = 0] = \"MacrosFirst\";\n IntegrationSources[IntegrationSources[\"Terra\"] = 10] = \"Terra\";\n})(IntegrationSources || (IntegrationSources = {}));\nvar IntegrationTypes;\n(function (IntegrationTypes) {\n IntegrationTypes[IntegrationTypes[\"MacroTracking\"] = 0] = \"MacroTracking\";\n IntegrationTypes[IntegrationTypes[\"Device\"] = 10] = \"Device\";\n})(IntegrationTypes || (IntegrationTypes = {}));\nclass ToggleAutoSyncResponse {\n autoSyncToggled;\n errorMessage;\n}\nclass IntegrationButtonViewModel {\n class;\n enabled;\n hoverHint;\n hoverHintOn;\n hoverHintOff;\n on;\n text;\n visible;\n}\nclass IntegrationButtonsViewModel {\n toggleAutosync;\n toggleConnection;\n}\nclass IntegrationsViewModel {\n userId;\n errors;\n deviceIntegrations;\n macroTrackingIntegrations;\n systemHasDeviceIntegrations;\n systemHasMacroTrackingIntegrations;\n}\nclass IntegrationViewModel {\n buttons;\n connectionStateClassName;\n connectionStateText;\n providerBrandLogo;\n typeString;\n}\nclass IntegrationSummary {\n authorized;\n autoSyncConfigurable;\n autoSyncEnabled;\n displayName;\n enabled;\n enabledAndAuthorized;\n id;\n integrationUserId;\n isPremiumUser;\n name;\n source;\n systemEnabled;\n type;\n viewModel;\n}\nclass UserIntegrationSummary {\n userId;\n errors;\n integrations;\n macrosFirstGoals;\n macroProvider;\n viewModel;\n}\nclass IntegrationsDisconnectResponse {\n disconnected;\n errorMessage;\n}\nvar UserIntegrations;\n(function (UserIntegrations) {\n class ObservableIntegrationSummary {\n originalModel;\n authorized;\n autoSyncConfigurable;\n autoSyncEnabled;\n displayName;\n enabled;\n enabledAndAuthorized;\n id;\n integrationUserId;\n isPremiumUser;\n name;\n source;\n systemEnabled;\n type;\n viewModel;\n constructor(model) {\n this.originalModel = model;\n this.authorized = ko.observable(model.authorized),\n this.autoSyncConfigurable = ko.observable(model.autoSyncConfigurable),\n this.autoSyncEnabled = ko.observable(model.autoSyncEnabled),\n this.displayName = ko.observable(model.displayName),\n this.enabled = ko.observable(model.enabled),\n this.enabledAndAuthorized = ko.observable(model.enabledAndAuthorized),\n this.id = ko.observable(model.id),\n this.integrationUserId = ko.observable(model.integrationUserId),\n this.isPremiumUser = ko.observable(model.isPremiumUser),\n this.name = ko.observable(model.name),\n this.source = ko.observable(model.source),\n this.systemEnabled = ko.observable(model.systemEnabled),\n this.type = ko.observable(model.type),\n this.viewModel = UserIntegrationMappers.mapIntegrationViewModelToObservable(model.viewModel);\n }\n }\n class ObservableIntegrationViewModel {\n buttons;\n connectionStateClassName;\n connectionStateText;\n providerBrandLogo;\n typeString;\n constructor(model) {\n this.buttons = UserIntegrationMappers.mapButtonsViewModelToObservable(model.buttons);\n this.connectionStateClassName = ko.observable(model.connectionStateClassName);\n this.connectionStateText = ko.observable(model.connectionStateText);\n this.providerBrandLogo = ko.observable(model.providerBrandLogo);\n this.typeString = ko.observable(model.typeString);\n }\n }\n class ObservableIntegrationButtonsViewModel {\n toggleAutosync;\n toggleConnection;\n constructor(model) {\n this.toggleAutosync = UserIntegrationMappers.mapButtonViewModelToObservable(model.toggleAutosync);\n this.toggleConnection = UserIntegrationMappers.mapButtonViewModelToObservable(model.toggleConnection);\n }\n }\n class ObservableIntegrationButtonViewModel {\n class;\n enabled;\n hoverHint;\n on;\n text;\n visible;\n constructor(model) {\n this.class = ko.observable(model.class);\n this.enabled = ko.observable(model.enabled);\n this.hoverHint = ko.observable(model.hoverHint);\n this.on = ko.observable(model.on);\n this.text = ko.observable(model.text);\n this.visible = ko.observable(model.visible);\n }\n }\n class UserIntegrationMappers {\n static mapIntegrationSummaryToObservable(model) {\n return new ObservableIntegrationSummary(model);\n }\n static mapIntegrationViewModelToObservable(model) {\n return new ObservableIntegrationViewModel(model);\n }\n static mapButtonsViewModelToObservable(model) {\n return new ObservableIntegrationButtonsViewModel(model);\n }\n static mapButtonViewModelToObservable(model) {\n return new ObservableIntegrationButtonViewModel(model);\n }\n }\n class KoViewModel {\n userId = 0;\n macroTrackingIntegrations = ko.observableArray([]);\n deviceIntegrations = ko.observableArray([]);\n toggleConnection = (integration$) => {\n if (!integration$.enabledAndAuthorized()) {\n this.connect(integration$.originalModel);\n return;\n }\n this.disconnect(integration$.originalModel, () => {\n integration$.enabledAndAuthorized(false);\n integration$.viewModel.buttons.toggleConnection.class('off');\n integration$.viewModel.buttons.toggleAutosync.class('disabled hidden');\n integration$.viewModel.connectionStateText('Disconnected');\n integration$.viewModel.connectionStateClassName('disconnected');\n });\n };\n toggleAutoSync = (integration$) => {\n const turnOn = !integration$.autoSyncEnabled();\n toggleAutoSync(integration$.originalModel, turnOn, () => {\n integration$.autoSyncEnabled(turnOn);\n integration$.viewModel.buttons.toggleAutosync.class(turnOn ? 'on' : 'off');\n });\n };\n getConnectedIntegrationByType = (type) => {\n const integrations$ = type === IntegrationTypes.MacroTracking\n ? this.macroTrackingIntegrations()\n : this.deviceIntegrations();\n for (const integration$ of integrations$) {\n if (integration$.enabledAndAuthorized()) {\n return integration$;\n }\n }\n return null;\n };\n connect = (integration) => {\n console.log(`Connecting to ${integration.displayName} ...`);\n const connOfType$ = koViewModel.getConnectedIntegrationByType(integration.type);\n if (connOfType$ !== null) {\n Alerts.warning({\n title: `${integration.displayName} Integration`,\n content: `You cannot connect to this integration because you already have a ${connOfType$.viewModel.typeString()} connection. Please disconnect from ${connOfType$.displayName()} and try again.`,\n buttons: { ok: { text: 'Ok' } }\n });\n return;\n }\n Loader.show();\n const sourcePath = integration.source === IntegrationSources.MacrosFirst ? 'macrosfirst' : `terra`;\n window.location.href = `/account/integrations/${sourcePath}/${integration.name.toLowerCase()}/connect?userId=${this.userId}`;\n };\n disconnect = (integration, onCompleted) => {\n console.log(`Disconneting from ${integration.displayName} ...`);\n const showError = (code, response) => {\n console.error('Disconnect response', response);\n Alerts.error({ content: `There was a problem disconnecting you from ${integration.displayName}. Please contact support@getseismic.com with error code ${code}.` });\n };\n simpleConfirm(`${integration.displayName} Connection`, `Are you sure you want to disconnect your Seismic account from ${integration.displayName}?`, () => {\n console.log('asking API to disconnect...');\n Loader.show();\n $.post(`/account/integrations/${userId}/${integration.name.toLowerCase()}/disconnect`)\n .done((response) => {\n if (!response) {\n showError('9c47', response);\n return;\n }\n if (response.errorMessage) {\n showError('c5a1', response);\n return;\n }\n simpleSuccessAlert('Disconnected', `Your Seismic account was successfully disconnected from ${integration.displayName}.`);\n if (onCompleted)\n onCompleted();\n })\n .fail((e) => {\n showError('c8bf', e);\n })\n .always(() => {\n Loader.hide();\n });\n });\n };\n }\n let userId = 0;\n let koViewModel;\n const simpleSuccessAlert = (title, content, okCallback = undefined) => {\n Alerts.success({\n icon: 'fas fa-check-circle',\n title: title,\n content: content,\n buttons: {\n ok: {\n text: 'Ok',\n action() {\n if (!okCallback)\n return;\n okCallback();\n }\n }\n }\n });\n };\n const simpleConfirm = (title, content, yesCallback) => {\n Alerts.confirm({\n icon: 'fas fa-question-circle',\n title: title,\n content: content,\n buttons: {\n no: { text: 'No' },\n yes: {\n text: 'Yes',\n btnClass: 'btn-primary',\n action() {\n if (!yesCallback)\n return;\n yesCallback();\n }\n }\n }\n });\n };\n const toggleAutoSync = (integration, on, onCompleted) => {\n console.log(`Toggling autosync ${(on ? 'ON' : 'OFF')} for ${integration.displayName}...`);\n const showError = (code, response) => {\n console.error('Toggle Autosync response', response);\n Alerts.error({ content: `There was a problem turning your ${integration.displayName} autosync ${on ? 'on' : 'off'}. Please contact support@getseismic.com with error code ${code}.` });\n };\n Loader.show();\n const sourcePath = integration.source === IntegrationSources.MacrosFirst ? 'macrosfirst' : `terra`;\n $.post(`/account/integrations/${userId}/${sourcePath}/${integration.name.toLowerCase()}/autosync?on=${on}`)\n .done((response) => {\n if (!response) {\n showError('d424', response);\n return;\n }\n if (response.errorMessage) {\n showError('e063', response);\n return;\n }\n if (onCompleted)\n onCompleted();\n })\n .fail((e) => {\n showError('b021', e);\n })\n .always(() => {\n Loader.hide();\n });\n };\n const handleIncomingFinalizeData = () => {\n const source = queryString('source');\n if (!source)\n return;\n const resultStr = queryString('result');\n if (!resultStr)\n return;\n const result = +resultStr;\n if (result === 1)\n return;\n const errorCodes = {\n '-999': '25b8',\n '-99': '25b8',\n '-10': '13c6',\n '99': '13c6',\n };\n const errorCodeKey = result.toString();\n const hasSpecificErrorCode = errorCodeKey in errorCodes;\n const errorCode = hasSpecificErrorCode ? errorCodes[errorCodeKey] : null;\n const resultMsg = `

Something went wrong connecting to this integration.

\r\n ${hasSpecificErrorCode\n ? `Please try again. If you continue to have issues, please contact support@getseismic.com with error code: ${errorCode}(${result}).`\n : `Please contact support@getseismic.com with error code: ${errorCode ?? 'unknown'}(${result}).`}`;\n Alerts.error({\n icon: 'fas fa-check-circle',\n title: 'Connection Failed',\n content: resultMsg\n });\n };\n const setupKnockoutBindings = (userIntegrationSummary) => {\n console.log('Setting up knockout bindings...');\n const mappedMacroTrackingIntegrations = userIntegrationSummary.viewModel.macroTrackingIntegrations?.map(UserIntegrationMappers.mapIntegrationSummaryToObservable) || [];\n const mappedDeviceIntegrations = userIntegrationSummary.viewModel.deviceIntegrations?.map(UserIntegrationMappers.mapIntegrationSummaryToObservable) || [];\n koViewModel = new KoViewModel();\n koViewModel.userId = userId;\n koViewModel.macroTrackingIntegrations(mappedMacroTrackingIntegrations);\n koViewModel.deviceIntegrations(mappedDeviceIntegrations);\n ko.applyBindings(koViewModel, document.querySelector('#UserIntegrations'));\n };\n const loaded = (userIntegrationSummary) => {\n console.log('User integrations loading...');\n userId = userIntegrationSummary.userId;\n setupKnockoutBindings(userIntegrationSummary);\n handleIncomingFinalizeData();\n };\n UserIntegrations.init = (userIntegrationSummary) => {\n console.log('User integrations initializing...', userIntegrationSummary);\n if (!userIntegrationSummary) {\n console.error('No user integration summary provided.');\n return;\n }\n $(() => loaded(userIntegrationSummary));\n };\n})(UserIntegrations || (UserIntegrations = {}));\n\nvar AdminCreateUser;\n(function (AdminCreateUser) {\n var ElementsConfig;\n var WaitlistedPrograms;\n var ViewModel = {\n userType: ko.observable(''),\n userType_client: ko.pureComputed(() => ViewModel.userType() === '4'),\n userType_coach: ko.pureComputed(() => ViewModel.userType() === '3'),\n program: ko.observable(''),\n program_waitlisted: ko.pureComputed(() => WaitlistedPrograms.indexOf(+ViewModel.program()) > -1),\n enterPaymentDetails: ko.observable(),\n proBono: ko.observable(false),\n showBillingInfo: ko.pureComputed(() => ViewModel.proBono() === false)\n };\n function loaded() {\n ko.applyBindings(ViewModel, document.getElementById(\"CreateForm\"));\n $('#CreateForm').validate({\n rules: {\n \"Form.UserType\": {\n required: true,\n },\n \"Form.FirstName\": {\n required: true,\n },\n \"Form.LastName\": {\n required: true,\n },\n \"Form.GenderId\": {\n required: true,\n },\n \"Form.TimeZoneIdStr\": {\n required: true,\n },\n \"Form.EmailAddress\": {\n required: true,\n email: true,\n remote: {\n url: '/account/auth/emailunique',\n type: 'post',\n data: {\n email() {\n return $('#Form_EmailAddress').val();\n }\n }\n }\n },\n },\n messages: {\n EmailAddress: {\n required: 'We will need your email address.',\n remote: 'This email address already has an account.'\n }\n }\n });\n $('#btnCreate').on('click', e => {\n Loader.show();\n e.preventDefault();\n var form = document.getElementById('CreateForm');\n if (ViewModel.enterPaymentDetails()) {\n StripeElements.createToken((token) => {\n const cardTokenElement = document.getElementById('Form_SourceToken');\n cardTokenElement.value = token.id;\n form.submit();\n });\n }\n else {\n form.submit();\n }\n });\n $('#Form_UserType').on('change', () => {\n if (ViewModel.userType_coach()) {\n ViewModel.proBono(true);\n }\n else {\n ViewModel.proBono(false);\n }\n });\n }\n function createStripeElements() {\n StripeElements.createStripeElements(ElementsConfig);\n }\n function init(elementsConfig, waitlistedPrograms) {\n ElementsConfig = elementsConfig;\n WaitlistedPrograms = waitlistedPrograms;\n createStripeElements();\n $(() => { loaded(); });\n }\n AdminCreateUser.init = init;\n})(AdminCreateUser || (AdminCreateUser = {}));\n\nvar Home;\n(function (Home) {\n var RecaptchaSiteKey;\n function loaded() {\n executeGrecaptcha();\n setTimeout(() => {\n executeGrecaptcha();\n }, 50000);\n AjaxForms.onSubmitted('HomeForm', () => {\n $('[name=\\'Name\\']').val('');\n $('[name=\\'Email\\']').val('');\n $('[name=\\'Phone\\']').val('');\n $('[name=\\'Body\\']').val('');\n $('[name=\\'CurrentlyCoaching\\']').val('');\n $('[name=\\'CurrentSoftware\\']').val('');\n });\n }\n function init(recaptchaSiteKey) {\n RecaptchaSiteKey = recaptchaSiteKey;\n $(() => { loaded(); });\n }\n Home.init = init;\n function executeGrecaptcha() {\n grecaptcha.ready(() => {\n grecaptcha.execute(RecaptchaSiteKey, { action: 'scheduleademo' }).then(token => {\n $('[name=\\'Token\\']').val(token);\n });\n });\n }\n})(Home || (Home = {}));\n\nvar Gdpr;\n(function (Gdpr) {\n var hasSeen = false;\n function loaded() {\n if (hasSeen)\n return;\n displayMessage();\n }\n function closeGdpr() {\n setSeen();\n $('#GDPR').fadeOut();\n }\n function displayMessage() {\n $.get('/partials/gdpr').done(html => {\n if (html.length <= 0)\n return;\n var $gdpr = $('#GDPR');\n if ($gdpr.length > 0)\n return;\n $('body').append(html);\n $('body').append('
');\n $gdpr = $('#GDPR');\n var $gdprInfo = $('#GdprInfo');\n $gdpr.fadeTo('fast', 1);\n $('#DismissGdpr').on('click', e => {\n e.preventDefault();\n closeGdpr();\n });\n $('#InfoGdpr').on('click', e => {\n e.preventDefault();\n $.get('/partials/gdprinfo', data => {\n $gdprInfo.html(data);\n $gdprInfo.iziModal();\n $gdprInfo.iziModal('open');\n $('#GDPRInfoOk').on('click', e => {\n e.preventDefault();\n $('#GdprInfo').iziModal('close');\n closeGdpr();\n });\n });\n });\n });\n }\n function determineVisibility() {\n const hasSeenObj = UIState.get('GDPR');\n if (hasSeenObj == null)\n return;\n hasSeen = parseBool(hasSeenObj.value);\n }\n function setSeen() {\n UIState.set('GDPR', 'true');\n }\n Gdpr.setSeen = setSeen;\n function init() {\n determineVisibility();\n $(() => { loaded(); });\n }\n Gdpr.init = init;\n})(Gdpr || (Gdpr = {}));\n\nvar CkEditor;\n(function (CkEditor) {\n var Selector;\n var OnSave;\n var AutoSaveDelay;\n var OnChange;\n var editor;\n function loaded() {\n ClassicEditor.create(document.querySelector(Selector), {\n toolbar: {\n items: [\n 'heading',\n '|',\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'bulletedList',\n 'numberedList',\n 'removeFormat',\n '|',\n 'alignment',\n 'indent',\n 'outdent',\n '|',\n 'link',\n 'blockQuote',\n '|',\n 'undo',\n 'redo'\n ]\n },\n language: 'en',\n image: {\n toolbar: [\n 'imageTextAlternative',\n 'imageStyle:full',\n 'imageStyle:side'\n ]\n },\n autosave: {\n waitingTime: AutoSaveDelay,\n save(editor) {\n if (OnSave != undefined) {\n OnSave(editor.getData(), editor.sourceElement);\n }\n }\n }\n })\n .then(newEditor => {\n editor = newEditor;\n editor.plugins.get('Autosave').isEnabled = OnSave != undefined;\n editor.plugins.get('PendingActions').isEnabled = OnSave != undefined;\n if (OnChange != undefined) {\n editor.model.document.on('change:data', () => {\n OnChange(editor.getData());\n });\n }\n });\n }\n function hasPendingChanges() {\n const pendingActions = editor.plugins.get('PendingActions');\n return pendingActions.hasAny;\n }\n CkEditor.hasPendingChanges = hasPendingChanges;\n function init(selector, onSave, autoSaveDelay, onChange) {\n Selector = selector;\n OnSave = onSave;\n AutoSaveDelay = autoSaveDelay == null ? 5000 : autoSaveDelay;\n OnChange = onChange;\n $(() => { loaded(); });\n }\n CkEditor.init = init;\n})(CkEditor || (CkEditor = {}));\n\nvar DemoMode;\n(function (DemoMode) {\n var CookieName = '.Seismic.DemoMode';\n var IsDemoing = false;\n function toggleDemoMode() {\n if (IsDemoing) {\n Logger.log('Stopping Demo Mode');\n $('body').removeClass('demo');\n $('#btnDemoMode').removeClass('active');\n Cookies.remove(CookieName);\n IsDemoing = false;\n }\n else {\n Logger.log('Starting Demo Mode');\n $('body').addClass('demo');\n $('#btnDemoMode').addClass('active');\n Cookies.set(CookieName, 1);\n IsDemoing = true;\n }\n }\n function loaded() {\n if (Cookies.get(CookieName))\n toggleDemoMode();\n $('#btnDemoMode').on('click', function (e) {\n e.preventDefault();\n toggleDemoMode();\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n DemoMode.init = init;\n})(DemoMode || (DemoMode = {}));\n\nvar MediaTypes;\n(function (MediaTypes) {\n})(MediaTypes || (MediaTypes = {}));\nclass MediaSourceItem {\n sourceType;\n sourceUrl;\n}\nvar ReleaseNotesList;\n(function (ReleaseNotesList) {\n function hookShowMeButtons() {\n $('.btnShowMedia').each((i, o) => {\n var $o = $(o);\n $o.on('click', e => {\n e.preventDefault();\n var $this = $(e.currentTarget);\n var $mediaItem = $this.parent().find('.mediaItem');\n const $mediaObj = $mediaItem.find('[data-src]');\n if ($mediaObj.length <= 0)\n return;\n const dataSrcStr = resolveAttr($mediaObj, 'data-src');\n switch ($mediaObj[0].tagName.toLowerCase()) {\n case 'video':\n const sources = JSON.parse(replaceAll(dataSrcStr, '\\'', '\"'));\n if (sources.length <= 0)\n break;\n for (let i = 0; i < sources.length; i++) {\n $mediaObj.append(``);\n }\n break;\n case 'img':\n $mediaObj.attr('src', dataSrcStr);\n break;\n }\n $mediaItem.removeClass('d-none');\n $this.hide();\n });\n });\n }\n function loaded() {\n $('.btnShowNotesProperties').webuiPopover();\n hookShowMeButtons();\n }\n function init() {\n $(() => { loaded(); });\n }\n ReleaseNotesList.init = init;\n})(ReleaseNotesList || (ReleaseNotesList = {}));\n\nvar Macrobot;\n(function (Macrobot) {\n let MBRX_ReasoningReportType;\n (function (MBRX_ReasoningReportType) {\n MBRX_ReasoningReportType[MBRX_ReasoningReportType[\"GENERAL\"] = 1] = \"GENERAL\";\n MBRX_ReasoningReportType[MBRX_ReasoningReportType[\"WARNING\"] = 2] = \"WARNING\";\n MBRX_ReasoningReportType[MBRX_ReasoningReportType[\"ERROR\"] = 3] = \"ERROR\";\n MBRX_ReasoningReportType[MBRX_ReasoningReportType[\"LOG\"] = 4] = \"LOG\";\n })(MBRX_ReasoningReportType = Macrobot.MBRX_ReasoningReportType || (Macrobot.MBRX_ReasoningReportType = {}));\n let MBRX_ReasoningReportGroups;\n (function (MBRX_ReasoningReportGroups) {\n MBRX_ReasoningReportGroups[MBRX_ReasoningReportGroups[\"GENERAL\"] = 10] = \"GENERAL\";\n MBRX_ReasoningReportGroups[MBRX_ReasoningReportGroups[\"SETTINGS\"] = 20] = \"SETTINGS\";\n MBRX_ReasoningReportGroups[MBRX_ReasoningReportGroups[\"BASEMACROS\"] = 30] = \"BASEMACROS\";\n MBRX_ReasoningReportGroups[MBRX_ReasoningReportGroups[\"COPYMACROS\"] = 40] = \"COPYMACROS\";\n MBRX_ReasoningReportGroups[MBRX_ReasoningReportGroups[\"DETERMINECOMPLIANCE\"] = 50] = \"DETERMINECOMPLIANCE\";\n MBRX_ReasoningReportGroups[MBRX_ReasoningReportGroups[\"MIXMAXCHECK\"] = 60] = \"MIXMAXCHECK\";\n MBRX_ReasoningReportGroups[MBRX_ReasoningReportGroups[\"PRESCRIBECARDIO\"] = 70] = \"PRESCRIBECARDIO\";\n })(MBRX_ReasoningReportGroups = Macrobot.MBRX_ReasoningReportGroups || (Macrobot.MBRX_ReasoningReportGroups = {}));\n function suggest(checkinId) {\n $('body').append('' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
');\n var $coachCompanionResults = $('#CoachCompanionResults');\n $coachCompanionResults.iziModal({\n padding: 20,\n width: '80%',\n onOpening(izi) {\n DisabledContainers.rebuildItem('CoachCompanionResultsCard');\n $.get(`/coachcompanion/suggest/${checkinId}`)\n .done(function (html) {\n $coachCompanionResults.find('.card-body').html(html);\n $('#CoachCompanionResultsCard').removeClass('disabled');\n }).fail(function (e) {\n });\n },\n onClosed(izi) {\n $coachCompanionResults.remove();\n },\n });\n $coachCompanionResults.iziModal('open');\n }\n Macrobot.suggest = suggest;\n})(Macrobot || (Macrobot = {}));\n\nvar PhotoCompareTool;\n(function (PhotoCompareTool) {\n class PhotoCompareOptions {\n constructor(userId, genderId) {\n this.userId = userId;\n this.genderId = genderId;\n this.leftCheckInId = 0;\n this.rightCheckInId = 0;\n }\n leftCheckInId;\n rightCheckInId;\n userId;\n genderId;\n skipCache = false;\n }\n PhotoCompareTool.PhotoCompareOptions = PhotoCompareOptions;\n let SurfaceOrdinals;\n (function (SurfaceOrdinals) {\n SurfaceOrdinals[\"LEFT\"] = \"left\";\n SurfaceOrdinals[\"RIGHT\"] = \"right\";\n })(SurfaceOrdinals || (SurfaceOrdinals = {}));\n let PhotoOrdinals;\n (function (PhotoOrdinals) {\n PhotoOrdinals[\"FRONT\"] = \"front\";\n PhotoOrdinals[\"BACK\"] = \"back\";\n PhotoOrdinals[\"LEFT\"] = \"left\";\n PhotoOrdinals[\"RIGHT\"] = \"right\";\n })(PhotoOrdinals || (PhotoOrdinals = {}));\n class PhotoCompareDataResponse extends SeismicResponse {\n data;\n }\n class PhotoUrls {\n front;\n back;\n left;\n right;\n }\n class PhotoCompareData {\n checkInId = 0;\n checkInNumber = 0;\n forCheckInDate = '';\n forCheckInDateValid = true;\n hasAllPhotos = false;\n hasNoPhotos = false;\n hasBackPhoto = false;\n hasFrontPhoto = false;\n hasLeftPhoto = false;\n hasRightPhoto = false;\n logId = 0;\n metrics_Chest = 0;\n metrics_Hips = 0;\n metrics_Waist = 0;\n rate_Energy = 0;\n rate_Hunger = 0;\n rate_Mood = 0;\n rate_Stress = 0;\n userId = 0;\n weight = 0;\n weightMissed = 0;\n }\n class InfoUi {\n constructor($infoContainer) {\n this.$InfoContainer = $infoContainer;\n this.$InfoPhotoOrdinalValue = this.$InfoContainer.find('.photoOrdinal ');\n this.$InfoPhotoPageIndicators = this.$InfoContainer.find('.photoPageIndicators ');\n this.$MetricsTable = this.$InfoContainer.find('table.metrics');\n this.$InfoChestValue = this.$MetricsTable.find('.infoChestValue ');\n this.$InfoHipsValue = this.$MetricsTable.find('.infoHipsValue ');\n this.$InfoWaistValue = this.$MetricsTable.find('.infoWaistValue ');\n this.$InfoWeightValue = this.$MetricsTable.find('.infoWeightValue ');\n this.$InfoCheckInNumberContainer = this.$InfoContainer.find('.checkInNumber');\n this.$InfoCheckInNumberValue = this.$InfoContainer.find('.infoCheckInNumberValue ');\n this.$InfoCheckInNumberTitle = this.$InfoContainer.find('.checkinTitle');\n this.$InfoCheckInDate = this.$InfoContainer.find('.checkInDate');\n this.InfoOpen = this.$InfoContainer.hasClass('open');\n }\n open() {\n this.$InfoContainer.addClass('open');\n this.InfoOpen = true;\n }\n close() {\n this.$InfoContainer.removeClass('open');\n this.InfoOpen = false;\n }\n toggleInfo() {\n if (this.InfoOpen)\n this.close();\n else\n this.open();\n }\n setData(data) {\n Logger.log('Setting data');\n if (isNaN(data.metrics_Chest))\n data.metrics_Chest = 0;\n if (isNaN(data.metrics_Hips))\n data.metrics_Hips = 0;\n if (isNaN(data.metrics_Waist))\n data.metrics_Waist = 0;\n if (isNaN(data.weight))\n data.weight = 0;\n const checkInDate = new moment(data.forCheckInDate);\n let checkInDateStr = checkInDate.format('MM/DD/YYYY');\n const noData = (data.metrics_Chest <= 0 && data.metrics_Hips <= 0 && data.metrics_Waist <= 0 && data.weight <= 0);\n this.$InfoChestValue.text(data.metrics_Chest);\n this.$InfoHipsValue.text(data.metrics_Hips);\n this.$InfoWaistValue.text(data.metrics_Waist);\n this.$InfoWeightValue.text(data.weight);\n if (data.checkInNumber <= 0) {\n checkInDateStr = `~${checkInDateStr}`;\n this.$InfoCheckInNumberTitle.text('Initial');\n this.$InfoCheckInNumberContainer.css({ 'visibility': 'hidden' });\n }\n else {\n this.$InfoCheckInNumberTitle.text('Check-In');\n this.$InfoCheckInNumberValue.text(data.checkInNumber);\n this.$InfoCheckInNumberContainer.css({ 'visibility': 'visible' });\n }\n if (noData)\n this.$MetricsTable.addClass('noData');\n else\n this.$MetricsTable.removeClass('noData');\n this.$InfoCheckInDate.text(data.forCheckInDateValid ? checkInDateStr : 'unknown date');\n this.$InfoContainer.find('span.metric').each((i, o) => {\n var $metric = $(o);\n $metric.removeAttr('data-parsed');\n $metric.removeAttr('data-unitoutput-existingval');\n });\n UnitOutputs.init();\n this.setPageIndicators(data);\n }\n setPageIndicators(data) {\n this.$InfoPhotoPageIndicators.find('.page').addClass('missing');\n if (data.hasFrontPhoto)\n this.$InfoPhotoPageIndicators.find('.page.front').removeClass('missing');\n if (data.hasBackPhoto)\n this.$InfoPhotoPageIndicators.find('.page.back').removeClass('missing');\n if (data.hasLeftPhoto)\n this.$InfoPhotoPageIndicators.find('.page.left').removeClass('missing');\n if (data.hasRightPhoto)\n this.$InfoPhotoPageIndicators.find('.page.right').removeClass('missing');\n }\n setOrdinal(ordinal) {\n const ordinalStr = ordinal.toString().toLowerCase();\n this.$InfoPhotoOrdinalValue.text(ordinalStr);\n this.$InfoPhotoPageIndicators.find('.page').removeClass('current');\n this.$InfoPhotoPageIndicators.find(`.page.${ordinalStr}`).addClass('current');\n }\n InfoOpen = false;\n $InfoPhotoOrdinalValue;\n $InfoContainer;\n $MetricsTable;\n $InfoChestValue;\n $InfoHipsValue;\n $InfoWaistValue;\n $InfoWeightValue;\n $InfoCheckInNumberContainer;\n $InfoCheckInDate;\n $InfoCheckInNumberValue;\n $InfoCheckInNumberTitle;\n $InfoPhotoPageIndicators;\n }\n class SurfaceUi {\n constructor($surface, data, genderId, selectedIndex = 0) {\n this.MaxIndex = data.length - 1;\n this.Data = data;\n this.UserId = this.Data[0].userId;\n this.GenderId = genderId;\n this.$Surface = $surface;\n this.$BtnNext = this.$Surface.find('.btnNext');\n this.$BtnPrev = this.$Surface.find('.btnPrev');\n this.$BtnRotate = this.$Surface.find('.btnRotate');\n this.$BtnInfo = this.$Surface.find('.btnInfo');\n this.$BtnDownload = this.$Surface.find('.btnDownload');\n this.$WeekSelector = this.$Surface.find('.selWeek');\n this.$PhotoContainer = this.$Surface.find('.photoBox .aspectRatioBoxInside');\n this.Info = new InfoUi(this.$Surface.find('.infoContainer'));\n this.$WeekSelector.empty();\n loop(this.Data, (item) => {\n var checkInDateStr = new moment(new Date(item.forCheckInDate)).format('MM/DD/YYYY');\n if (!item.forCheckInDateValid)\n checkInDateStr = 'unknown';\n var noPhotosVerbiage = item.hasNoPhotos ? ' (no photos)' : '';\n this.$WeekSelector.append(``);\n });\n this.$BtnRotate.on('click', () => {\n this.rotate();\n });\n this.$BtnInfo.on('click', () => {\n this.Info.toggleInfo();\n });\n this.$BtnNext.on('click', () => {\n this.next();\n });\n this.$BtnPrev.on('click', () => {\n this.prev();\n });\n this.$WeekSelector.on('change', (e) => {\n var $ddl = $(e.currentTarget);\n var index = +$ddl.prop('selectedIndex');\n this.setSelectedIndex(index);\n });\n this.$BtnDownload.on('click', () => {\n var win = window.open(this.PhotoUrls[this.PhotoOrdinal.toString().toLowerCase()], '_blank');\n win.focus();\n });\n this.setSelectedIndex(selectedIndex);\n }\n setPhotoForCurrentOrdinal() {\n Logger.withGroup(`PhotoCompareTool: Setting Photo for ${this.PhotoOrdinal}`, () => {\n this.Info.setOrdinal(this.PhotoOrdinal);\n var photoOrdinalStr = this.PhotoOrdinal.toString().toLowerCase();\n const url = this.PhotoUrls[photoOrdinalStr];\n if (url == null || url.length <= 0) {\n Logger.log('No photo to load. Using default gender image');\n Logger.log('Gender Id ' + this.GenderId);\n const genderBackground = `/images/photo_${this.GenderId === 1 ? 'male' : 'female'}_${photoOrdinalStr}.png`;\n this.$PhotoContainer.css({ 'background-image': `url(${genderBackground})` });\n this.$BtnDownload.attr('disabled', '');\n return;\n }\n Logger.log(`Url: ${url}`);\n this.$BtnDownload.removeAttr('disabled');\n this.$PhotoContainer.css({ 'background-image': `url(${url})` });\n }, false);\n }\n onWeekSelected(func) {\n this.OnWeekSelectedEvents.push(func);\n Logger.log(this.OnWeekSelectedEvents);\n }\n emitWeekSelected() {\n if (this.OnWeekSelectedEvents == null || this.OnWeekSelectedEvents.length <= 0)\n return;\n loop(this.OnWeekSelectedEvents, (func) => {\n func(this.SelectedIndex, this.SelectedData);\n });\n }\n setSelectedIndex(index) {\n this.SelectedIndex = index;\n this.SelectedData = this.Data[index];\n this.$WeekSelector.val(this.SelectedData.checkInId);\n this.Info.setData(this.SelectedData);\n this.requestPhotos(this.SelectedData.checkInId);\n this.emitWeekSelected();\n }\n requestPhotos(checkInId) {\n Logger.withGroup(`PhotoCompareTool: Requesting photos for checkin ${checkInId}`, () => {\n if (this.SelectedData.hasNoPhotos && checkInId > 0) {\n Logger.log('This checkin has no photos');\n this.PhotoUrls = new PhotoUrls();\n this.setPhotoForCurrentOrdinal();\n return;\n }\n this.setPhotoLoading();\n $.get(`/photos/checkin-photos?userId=${this.UserId}&checkInId=${checkInId}`)\n .done((data) => {\n this.PhotoUrls = data;\n var urls = [];\n urls.push(data.front);\n urls.push(data.back);\n urls.push(data.left);\n urls.push(data.right);\n preLoadImages(urls, () => {\n this.setPhotoForCurrentOrdinal();\n this.setPhotoLoaded();\n Logger.log('All photos preloaded');\n });\n });\n });\n }\n setPhotoLoading() {\n this.disableUiElements();\n this.$Surface.addClass('loading');\n }\n setPhotoLoaded() {\n this.enableUiElements();\n this.$Surface.removeClass('loading');\n }\n enableUiElements() {\n this.$Surface.find('.weekSelection button, .weekSelection select').each((i, o) => {\n var $me = $(o);\n var wasDisabled = $me.hasClass('wasDisabled');\n if (wasDisabled) {\n $me.removeClass('wasDisabled');\n }\n else {\n $me.removeAttr('disabled', 'disabled');\n }\n });\n }\n disableUiElements() {\n this.$Surface.find('.weekSelection button, .weekSelection select').each((i, o) => {\n var $me = $(o);\n var isDisabled = parseBool(resolveAttr($me, 'disabled') === 'disabled');\n if (isDisabled)\n $me.addClass('wasDisabled');\n $me.attr('disabled', 'disabled');\n });\n }\n rotate() {\n switch (this.PhotoOrdinal) {\n case PhotoOrdinals.FRONT:\n this.PhotoOrdinal = PhotoOrdinals.RIGHT;\n break;\n case PhotoOrdinals.RIGHT:\n this.PhotoOrdinal = PhotoOrdinals.BACK;\n break;\n case PhotoOrdinals.BACK:\n this.PhotoOrdinal = PhotoOrdinals.LEFT;\n break;\n case PhotoOrdinals.LEFT:\n this.PhotoOrdinal = PhotoOrdinals.FRONT;\n break;\n }\n this.setPhotoForCurrentOrdinal();\n }\n next() {\n let nextIndex = this.SelectedIndex + 1;\n if (nextIndex > this.MaxIndex)\n nextIndex = 0;\n this.setSelectedIndex(nextIndex);\n }\n prev() {\n let prevIndex = this.SelectedIndex - 1;\n if (prevIndex < 0)\n prevIndex = this.MaxIndex;\n this.setSelectedIndex(prevIndex);\n }\n Data;\n MaxIndex = 0;\n OnWeekSelectedEvents = [];\n GenderId = 1;\n SelectedData;\n SelectedIndex = 0;\n PhotoUrls;\n UserId;\n PhotoOrdinal = PhotoOrdinals.FRONT;\n SurfaceOrdinal;\n Info;\n $Surface;\n $BtnNext;\n $BtnPrev;\n $BtnRotate;\n $BtnInfo;\n $BtnDownload;\n $WeekSelector;\n $PhotoContainer;\n }\n class CompareToolUi {\n constructor(data, genderId, requestedLeftCheckInId, requestedRightCheckInId) {\n this.Data = data;\n this.$PhotoCompareTool = $('#PhotoCompareTool');\n this.$ToolSurfaces = this.$PhotoCompareTool.find('#ToolSurfaces');\n this.$BtnClose = this.$PhotoCompareTool.find('#btnClosePhotoCompare');\n this.$DaysIndicator = this.$PhotoCompareTool.find('#DaysIndicatorSurface');\n this.$DaysIndicatorValue = this.$PhotoCompareTool.find('#DaysIndicator #DayValue');\n this.$BtnGraph = this.$PhotoCompareTool.find('#DaysIndicator #BtnGraph');\n this.$GraphSurfaces = this.$PhotoCompareTool.find('#GraphSurfaces');\n let leftStartIndex = 0;\n let rightStartIndex = data.length - 1;\n if (requestedLeftCheckInId > 0) {\n Logger.log(`Searching for left checkin id ${requestedLeftCheckInId} in data...`);\n for (var li = 0, ll = data.length; li < ll; li++) {\n if (data[li].checkInId === requestedLeftCheckInId) {\n Logger.log(`Found at index ${li}`);\n leftStartIndex = li;\n break;\n }\n }\n Logger.log('Could not find checkin id ' + requestedRightCheckInId + ' in data');\n }\n if (requestedRightCheckInId > 0) {\n Logger.log(`Searching for right checkin id ${requestedRightCheckInId} in data...`);\n for (var ri = 0, rl = data.length; ri < rl; ri++) {\n if (data[ri].checkInId === requestedRightCheckInId) {\n Logger.log(`Found at index ${li}`);\n rightStartIndex = ri;\n break;\n }\n }\n Logger.log('Could not find checkin id ' + requestedRightCheckInId + ' in data');\n }\n this.SurfaceLeft = new SurfaceUi(this.$PhotoCompareTool.find('.surface.left'), data, genderId, leftStartIndex);\n this.SurfaceRight = new SurfaceUi(this.$PhotoCompareTool.find('.surface.right'), data, genderId, rightStartIndex);\n this.SurfaceLeft.onWeekSelected(() => {\n this.setDaysApart();\n this.updateChart();\n });\n this.SurfaceRight.onWeekSelected(() => {\n this.setDaysApart();\n this.updateChart();\n });\n this.$BtnClose.on('click', () => {\n this.close();\n });\n this.$BtnGraph.on('click', () => {\n this.toggleGraphSurfaces();\n });\n this.setDaysApart();\n }\n toggleGraphSurfaces() {\n if (!this.GraphOpen) {\n this.$ToolSurfaces.addClass('graphOpen');\n this.GraphOpen = true;\n this.updateChart();\n }\n else {\n this.$ToolSurfaces.removeClass('graphOpen');\n this.GraphOpen = false;\n }\n }\n updateChart() {\n const leftIndex = this.SurfaceLeft.SelectedIndex;\n const rightIndex = this.SurfaceRight.SelectedIndex;\n var indexFrom = leftIndex > rightIndex ? rightIndex : leftIndex;\n var indexTo = rightIndex < leftIndex ? leftIndex : rightIndex;\n var dataSetLabels = [];\n var dataSetData = [];\n var preferredWeightDisplay = getProperty(Seismic, 'Session.Settings.PreferredWeightDisplay');\n loop(this.Data, (d, index) => {\n if (index >= indexFrom && index <= indexTo) {\n dataSetLabels.push(d.checkInNumber);\n let preferredWeightOutput = d.weight;\n if (preferredWeightDisplay != null && preferredWeightDisplay.is('kgs'))\n preferredWeightOutput = roundTo(toKilograms(d.weight), 1);\n if (preferredWeightOutput > 0)\n dataSetData.push(preferredWeightOutput);\n else\n dataSetData.push(null);\n }\n });\n if (this.WeightChart == null) {\n const weightCanvas = this.$PhotoCompareTool.find('#WeightGraphCanvas');\n const weightChartCtx = weightCanvas[0].getContext('2d');\n var photoData = this.Data;\n this.WeightChart = new Chart(weightChartCtx, {\n type: 'line',\n data: {\n labels: dataSetLabels,\n datasets: [\n {\n label: 'Weight',\n data: dataSetData,\n fill: false,\n spanGaps: true,\n borderColor: '#ffffff',\n backgroundColor: 'transparent',\n borderWidth: 1\n }\n ]\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n tooltips: {\n displayColors: false,\n callbacks: {\n title(tooltipItem) {\n var checkInNumber = +tooltipItem[0].xLabel;\n const data = photoData.filter((d) => { return d.checkInNumber === checkInNumber; })[0];\n const checkInDate = new moment(new Date(data.forCheckInDate));\n const checkInDateStr = checkInDate.format('MM/DD/YYYY');\n const initialOrCheckin = checkInNumber === 0 ? 'Initial' : `Check-in #${checkInNumber}`;\n return `${initialOrCheckin} (${checkInDateStr})`;\n },\n label(tooltipItem) {\n const weight = +tooltipItem.yLabel;\n return `Weight: ${weight}${preferredWeightDisplay.is('kgs') ? 'kgs' : 'lbs'}`;\n }\n }\n },\n layout: {\n padding: {\n top: 35,\n right: 20,\n bottom: 5,\n left: 20\n }\n },\n legend: {\n display: false\n },\n scales: {\n xAxes: [{\n ticks: {\n fontColor: '#afafaf'\n }\n }],\n yAxes: [{\n display: false\n }]\n }\n }\n });\n }\n else {\n this.WeightChart.data.labels = dataSetLabels;\n this.WeightChart.data.datasets[0].data = dataSetData;\n this.WeightChart.update();\n }\n }\n setLoading() {\n this.$PhotoCompareTool.addClass('loading');\n }\n setLoaded() {\n this.$PhotoCompareTool.removeClass('loading');\n }\n setDaysApart() {\n if (!this.SurfaceLeft.SelectedData.forCheckInDateValid ||\n !this.SurfaceRight.SelectedData.forCheckInDateValid) {\n this.$DaysIndicatorValue.text('');\n }\n else {\n const dateLeft = new moment(new Date(this.SurfaceLeft.SelectedData.forCheckInDate));\n const dateRight = new moment(new Date(this.SurfaceRight.SelectedData.forCheckInDate));\n this.setDaysApartValue(dateLeft, dateRight);\n }\n }\n setDaysApartValue(date1, date2) {\n let value = Math.abs(date1.diff(date2, 'days'));\n if (value === 0) {\n this.$DaysIndicatorValue.text('same');\n }\n else {\n let timeStr = 'day';\n if (value > 13) {\n timeStr = 'week';\n value = Math.abs(date1.diff(date2, 'weeks'));\n if (value > 4) {\n timeStr = 'month';\n value = Math.abs(date1.diff(date2, 'months'));\n if (value > 11) {\n timeStr = 'year';\n value = Math.abs(date1.diff(date2, 'years'));\n }\n }\n }\n if (value > 1 || value === 0)\n timeStr += 's';\n let valueStr = value.toString();\n if (!timeStr.is('day'))\n valueStr = `~${value}`;\n this.$DaysIndicatorValue.text(`${valueStr} ${timeStr} apart`);\n }\n }\n close() {\n Logger.log('PhotoCompareTool: close');\n this.$PhotoCompareTool.addClass('d-none');\n }\n open() {\n Logger.log('PhotoCompareTool: open');\n this.$PhotoCompareTool.removeClass('d-none');\n }\n Data;\n $PhotoCompareTool;\n $ToolSurfaces;\n $BtnGraph;\n $GraphSurfaces;\n $DaysIndicator;\n $DaysIndicatorValue;\n $BtnClose;\n GraphOpen = false;\n WeightChart;\n SurfaceLeft;\n SurfaceRight;\n }\n var Options;\n var Html = '';\n var HtmlLoaded = false;\n var BaseToolHtmlDisplayed = false;\n var DataLoaded = false;\n function displayHtml() {\n Logger.withGroup('PhotoCompareTool: displayHtml', () => {\n if (!HtmlLoaded && !DataLoaded) {\n return;\n }\n if (!BaseToolHtmlDisplayed) {\n $('body').append(Html);\n BaseToolHtmlDisplayed = true;\n }\n Logger.log('Creating Compare Tool UI');\n PhotoCompareTool.ToolUi = new CompareToolUi(PhotoCompareTool.Data, Options.genderId, Options.leftCheckInId, Options.rightCheckInId);\n PhotoCompareTool.ToolUi.open();\n Loader.hide();\n Logger.log(PhotoCompareTool.ToolUi);\n });\n }\n function close() {\n PhotoCompareTool.ToolUi.close();\n }\n PhotoCompareTool.close = close;\n function getData(skipCache = false) {\n Logger.log('Getting data for Photo Compare Tool');\n if (DataLoaded && !skipCache) {\n Logger.log('Data already loaded');\n displayHtml();\n return;\n }\n if (skipCache) {\n Logger.log('Skipping cache. Removing Data from memory');\n PhotoCompareTool.Data = null;\n }\n skipCache = true;\n $.get(`/users/photocomparedata?userId=${Options.userId}&skipCache=${skipCache}`)\n .done((response) => {\n Errors.respondToResponse(response, () => {\n if (response.data != null && response.data.length > 0) {\n Logger.log('Data received from server...');\n Logger.log(response.data);\n DataLoaded = true;\n PhotoCompareTool.Data = response.data;\n displayHtml();\n }\n else {\n Loader.hide();\n Alerts.alert({\n title: 'No photos',\n content: 'Sorry, it doesn\\'t look like there are any photos to show.',\n buttons: { ok: { text: 'Ok' } }\n });\n }\n }, () => {\n Loader.hide();\n });\n }).fail((err) => {\n Loader.hide();\n Logger.log(err);\n });\n }\n function getHtml(skipCache = false) {\n Logger.log('Getting html for Photo Compare Tool');\n if (HtmlLoaded && !skipCache) {\n Logger.log('Html already loaded');\n getData(skipCache);\n return;\n }\n if (PhotoCompareTool.ToolUi != null && skipCache) {\n Logger.log('Skipping cache. Removing ToolUi');\n PhotoCompareTool.ToolUi.$PhotoCompareTool.remove();\n PhotoCompareTool.ToolUi = null;\n }\n $.get(`/partials/photo-compare-tool`).done((html) => {\n Html = html;\n HtmlLoaded = true;\n Logger.log('Received HTML from server');\n getData(skipCache);\n }).fail((err) => { Logger.error(err); });\n }\n function show(options) {\n Logger.clearLog();\n Logger.withGroup('PhotoCompareTool: show', () => {\n Logger.log(`UserId: ${options.userId}`);\n Logger.log(`GenderId: ${options.genderId}`);\n Logger.log(`LeftCheckInId: ${options.leftCheckInId}`);\n Logger.log(`RightCheckInId: ${options.rightCheckInId}`);\n Loader.show();\n Options = options;\n getHtml(options.skipCache);\n }, false);\n }\n PhotoCompareTool.show = show;\n})(PhotoCompareTool || (PhotoCompareTool = {}));\n\nvar UserSearch;\n(function (UserSearch) {\n var SearchUrlPath = '';\n function clearSearch() {\n const options = new LoaderOptions();\n options.OnShown = () => {\n window.location.href = SearchUrlPath;\n };\n Loader.show(options);\n }\n function refresh() {\n search(true);\n }\n function search(skipCache = false) {\n var value = $('#txt_search').val().trim();\n const selectedFilter = $('#search_input .filters .filter.selected');\n var filter = resolveAttr(selectedFilter, 'data-filter');\n const selectedUserType = $('#search_input .userTypes .userType.selected');\n var userType = resolveAttr(selectedUserType, 'data-usertype');\n const options = new LoaderOptions();\n options.OnShown = () => {\n var skipCacheParam = skipCache ? `&skipCache=true` : '';\n window.location.href = `${SearchUrlPath}?page=1&s=${encodeURIComponent(value)}&f=${filter}&t=${userType}${skipCacheParam}`;\n };\n Loader.show(options);\n }\n ;\n function loaded() {\n $('#btn_filter').webuiPopover({ container: '#search_input', padding: false });\n $('#btn_userTypes').webuiPopover({ container: '#search_input', padding: false });\n $('#txt_search').on('keyup', e => {\n e.preventDefault();\n if (e.keyCode !== 13)\n return;\n search();\n });\n $('#btn_remove_search').on('click', e => {\n e.preventDefault();\n clearSearch();\n });\n $('#btn_search').on('click', e => {\n e.preventDefault();\n search();\n });\n $('#btn_refresh').on('click', e => {\n e.preventDefault();\n refresh();\n });\n $('.filter').on('click', function (e) {\n e.preventDefault();\n const me = $(this);\n if (me.hasClass('selected'))\n return;\n $('#search_input .filters .filter.selected').removeClass('selected');\n me.addClass('selected');\n search();\n });\n $('.userType').on('click', function (e) {\n e.preventDefault();\n const me = $(this);\n if (me.hasClass('selected'))\n return;\n $('#search_input .userTypes .userType.selected').removeClass('selected');\n me.addClass('selected');\n search();\n });\n const s = queryString('s');\n if (validObj(s)) {\n if (s.length > 0) {\n const decoded = decodeURIComponent(s);\n $('table.users_table').highlight(decoded);\n $('#search_input #txt_search').val(decoded);\n }\n }\n const $monikerBadges = $('table.users_table tbody .affiliate_moniker');\n if ($monikerBadges.length <= 0)\n return;\n $monikerBadges.each((i, monikerBadge) => {\n var $monikerBadge = $(monikerBadge);\n var monikerStr = $monikerBadge.text().trim();\n var colorHash = new ColorHash({ hue: { min: 190, max: 359 }, lightness: 0.5, saturation: 0.8 });\n var newColorHex = colorHash.hex(monikerStr);\n $monikerBadge.css('background-color', newColorHex);\n });\n }\n function init(searchUrlPath) {\n SearchUrlPath = searchUrlPath;\n $(() => { loaded(); });\n }\n UserSearch.init = init;\n})(UserSearch || (UserSearch = {}));\n\nclass StripeElementsConfiguration {\n publishableKey;\n affiliateAccountId;\n}\nvar StripeElements;\n(function (StripeElements) {\n var stripe;\n var card;\n function loaded() {\n $.get(`/affiliate/elementsconfig`)\n .done((data) => {\n if (typeof data == 'undefined' || data === null) {\n Alerts.error({ title: 'Payment Error', content: \"Something went wrong initializing the payment form.\" });\n Logger.log(data);\n return;\n }\n createStripeElements(data);\n })\n .fail(error => {\n Alerts.error({ title: 'Payment Error', content: \"Something went wrong initializing the payment form.\" });\n Logger.log(error);\n })\n .always(response => {\n });\n }\n function createStripeElements(config) {\n if (typeof (Stripe) === 'undefined') {\n Logger.warn(\"A Stripe control was requested to be initialized, but Stripe is undefined. Are you missing a reference to Stripe.js?\");\n return;\n }\n Logger.log(config);\n if (config.affiliateAccountId != null && config.affiliateAccountId != '') {\n stripe = Stripe(config.publishableKey, { \"stripeAccount\": config.affiliateAccountId });\n }\n else {\n stripe = Stripe(config.publishableKey);\n }\n const elements = stripe.elements({\n fonts: [{ cssSrc: 'https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,700' }]\n });\n const style = {\n base: {\n color: '#32325d',\n lineHeight: '18px',\n fontFamily: '\"Nunito Sans\", sans-serif',\n fontSmoothing: 'antialiased',\n fontSize: '16px',\n '::placeholder': {\n color: '#aab7c4'\n }\n },\n invalid: {\n color: '#dc3545',\n iconColor: '#fa755a'\n }\n };\n card = elements.create('card', { style: style });\n card.mount('#card-element');\n card.addEventListener('change', event => {\n var displayError = document.getElementById('card-errors');\n if (event.error) {\n displayError.textContent = event.error.message;\n }\n else {\n displayError.textContent = '';\n }\n });\n }\n StripeElements.createStripeElements = createStripeElements;\n function createToken(onSuccess) {\n Loader.show();\n stripe.createToken(card).then(result => {\n if (result.error) {\n Loader.hide();\n const errorElement = document.getElementById('card-errors');\n errorElement.textContent = result.error.message;\n }\n else {\n card.clear();\n Logger.log(result.token);\n onSuccess(result.token);\n }\n });\n }\n StripeElements.createToken = createToken;\n function init() {\n $(() => { loaded(); });\n }\n StripeElements.init = init;\n})(StripeElements || (StripeElements = {}));\n\nvar SystemAlertsMenu;\n(function (SystemAlertsMenu) {\n class SystemAlertModel {\n active;\n appVersionLabel;\n data;\n displayDateEnd;\n displayDateStart;\n expired;\n pending;\n systemAlertId;\n targetRoles;\n title;\n typeId;\n targetRolesUserTypeIds;\n targetRoleUserTypes;\n }\n var alertIds = [];\n var $alertPopLi;\n function hasReadAlert(id) {\n const item = UIState.get(`systemalert.${id}`);\n if (typeof item == 'undefined' || item === null)\n return false;\n return true;\n }\n function removeItemFromPopover(id) {\n $(`[data-systemalertid=\"${id}\"]`).parent().remove();\n if ($('#SystemAlertsPop ul li.item').length >= 0) {\n Logger.log('No more system alert ids. Removing system alert ui');\n $('li#SystemAlerts').webuiPopover('hide');\n $('#SystemAlerts').remove();\n }\n }\n function markRead(id) {\n Logger.log(`Marking ${id} read.`);\n UIState.set(`systemalert.${id}`, 'true');\n removeItemFromPopover(id);\n }\n function markAllRead(ids) {\n Logger.withGroup('Marking all read', () => {\n $.each(ids, (i, id) => {\n markRead(id);\n });\n }, false);\n }\n function removeAllReadState() {\n const uiStateItems = UIState.getAll();\n if (typeof uiStateItems == 'undefined' || uiStateItems == null || uiStateItems.length <= 0)\n return;\n $.each(uiStateItems, (i, item) => {\n if (item.key.substring(0, 12) === 'systemalert.') {\n UIState.remove(item.key);\n }\n });\n }\n function showModal(id) {\n Loader.show();\n $('li#SystemAlerts').webuiPopover('hide');\n $.get(`/systemalerts/detail/${id}`)\n .done((data) => {\n Logger.log(data);\n var systemAlertId = data.systemAlertId.replace('-', '');\n var $title = $(`
${data.title}
`);\n var $message = $(`
${data.data}
`);\n var $markReadBtn = $('');\n var $modal = $(`
`);\n $modal.append($title);\n $modal.append($message);\n $modal.append($markReadBtn);\n $('body').append($modal);\n var $systemAlertModal = $('#SystemAlertsModal');\n $systemAlertModal.iziModal({\n overlayClose: true,\n closeOnEscape: true,\n padding: 20,\n onClosed(izi) {\n $systemAlertModal.remove();\n },\n });\n $systemAlertModal.iziModal('open');\n $('#btnMarkRead').off().on('click', e => {\n e.preventDefault();\n $systemAlertModal.iziModal('close');\n markRead(id);\n });\n })\n .fail(e => {\n }).always(() => {\n Loader.hide();\n });\n }\n function loaded() {\n Logger.withGroup('SystemAlertsMenu: Loaded', () => {\n $alertPopLi = $('li#SystemAlerts');\n if ($alertPopLi.length <= 0)\n return;\n const alertObjs = $alertPopLi.find('li.item');\n if ($alertPopLi.length <= 0) {\n $alertPopLi.hide();\n return;\n }\n Logger.log(`Found ${alertObjs.length} potential system alerts`);\n $.each(alertObjs, (i, o) => {\n var $o = $(o);\n var $a = $o.find('a');\n var id = resolveAttr($a, 'data-systemalertid');\n if (typeof id == 'undefined' || id === null || id.length <= 0)\n return;\n $a.on('click', e => {\n e.preventDefault();\n showModal(id);\n });\n Logger.withGroup(`Id: ${id}`, () => {\n var userRead = hasReadAlert(id);\n Logger.log(`User read: ${userRead}`);\n if (userRead) {\n Logger.log('Removing item from popover');\n removeItemFromPopover(id);\n }\n alertIds.push(id);\n }, false);\n });\n if (alertIds.length <= 0) {\n $alertPopLi.hide();\n return;\n }\n $('li#SystemAlerts ul li.markAsRead a').on('click', e => {\n e.preventDefault();\n markAllRead(alertIds);\n });\n Seismic.ExecuteAfterFadeIn.push(() => {\n var alertUi = $('li#SystemAlerts');\n if (alertUi.length <= 0)\n return;\n shake(alertUi[0], 5);\n });\n $('li#SystemAlerts').webuiPopover({ url: '#SystemAlertsPop', animation: 'pop', container: '.PageFader nav', title: 'System Alerts', width: 275, offsetLeft: -1, padding: false });\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n SystemAlertsMenu.init = init;\n})(SystemAlertsMenu || (SystemAlertsMenu = {}));\n\nvar NotificationsMenu;\n(function (NotificationsMenu) {\n function loaded() {\n const $objs = $('li#Notifications');\n if ($objs.length <= 0)\n return;\n $objs.webuiPopover({ url: '#NotificationsPop', animation: 'pop', container: '.PageFader nav', title: 'Notifications', width: 275, offsetLeft: -1, padding: false });\n }\n function init() {\n $(() => { loaded(); });\n }\n NotificationsMenu.init = init;\n})(NotificationsMenu || (NotificationsMenu = {}));\n\nvar MessageCounts;\n(function (MessageCounts) {\n class MessageCountBadge {\n constructor(o) {\n this.$obj = $(o);\n this.countLimit = +resolveAttrWithDefault(this.$obj, 'data-count-limit', '0');\n this.showZero = parseBool(resolveAttrWithDefault(this.$obj, 'data-show-zero', 'false'));\n }\n $obj;\n countLimit;\n showZero;\n hide() {\n this.$obj.addClass('d-none');\n }\n show() {\n this.$obj.removeClass('d-none');\n }\n formatCount(c) {\n if (c <= 0 && !this.showZero)\n return '';\n if (this.countLimit > 0 && c > this.countLimit)\n return `${this.countLimit}+`;\n return c.toString();\n }\n set(count) {\n if (typeof count == 'undefined' || count == null || (count <= 0 && !this.showZero)) {\n this.$obj.text('');\n this.hide();\n return;\n }\n this.$obj.text(this.formatCount(count));\n this.show();\n }\n }\n var MessageCountBadges = [];\n var LocalCacheName = 'UserTotalUnreadMessageCount';\n function clearCache() {\n Logger.log('Clearing local storage cache of total unread messages count.');\n CacheResolver.remove(LocalCacheName);\n }\n MessageCounts.clearCache = clearCache;\n function updateUi(count) {\n if (MessageCountBadges.length <= 0)\n return;\n loop(MessageCountBadges, function (mcb, i) {\n mcb.set(count);\n });\n }\n function getTotalUnreadMessageCount(skipCache = false) {\n if (MessageCountBadges.length <= 0)\n return;\n var cachedCount = CacheResolver.get(LocalCacheName);\n if (cachedCount == null || skipCache) {\n $.get(`/messages/totalunreadcount?skipCache=true`)\n .done(function (count) {\n if (typeof count != 'number')\n return;\n CacheResolver.set(LocalCacheName, count, 5);\n updateUi(count);\n })\n .fail(function (error) {\n Logger.error(error);\n });\n return;\n }\n updateUi(cachedCount);\n }\n function loaded() {\n var $objs = $('.badge.messagesTotalUnread');\n if ($objs.length <= 0)\n return;\n Logger.withGroup(\"MessageCounts: Loaded\", function () {\n $objs.each((i, o) => {\n var item = new MessageCountBadge(o);\n MessageCountBadges.push(item);\n Logger.log(item);\n });\n });\n getTotalUnreadMessageCount();\n }\n function init() {\n $(() => { loaded(); });\n }\n MessageCounts.init = init;\n})(MessageCounts || (MessageCounts = {}));\n\nvar LeftMenu;\n(function (LeftMenu) {\n let OpenMenuTypes;\n (function (OpenMenuTypes) {\n OpenMenuTypes[OpenMenuTypes[\"OVER\"] = 0] = \"OVER\";\n OpenMenuTypes[OpenMenuTypes[\"SLIDE\"] = 1] = \"SLIDE\";\n })(OpenMenuTypes || (OpenMenuTypes = {}));\n var MenuSlideOrOver = OpenMenuTypes.OVER;\n class MenuItem {\n constructor(liNavItem, parentNavId, rememberOpenGroups) {\n this.id = `mi_${GenId.Generate(4)}`;\n this.rememberOpenGroups = rememberOpenGroups;\n this.parentNavId = parentNavId;\n this.$obj = $(liNavItem);\n this.$obj.attr('data-mi-id', this.id);\n this.activeClass = resolveAttrWithDefault(this.$obj, 'data-active-class', 'active');\n this.groupId = resolveAttr(this.$obj.parent(), 'data-mig-id');\n this.$aLink = this.$obj.find('a').first();\n this.title = this.$aLink.find('.menu-title').text().trim();\n this.hasALink = this.$aLink.length > 0 && this.$aLink.attr('href') !== '#';\n this.isGroupToggle = this.$aLink.length > 0 && this.$aLink.hasClass('group-link');\n this.groupLinkId = this.isGroupToggle ? this.$aLink.attr('id') : '';\n this.linkPath = resolveAttr(this.$aLink, 'href');\n this.subItems = [];\n this.active = this.$obj.hasClass('active');\n this.expanded = false;\n Logger.log(this.isGroupToggle);\n this.addSubNavItems();\n this.setExpandedState();\n this.hookGroupToggling();\n this.parseActivePatterns();\n }\n addSubNavItems() {\n const $subNavItems = this.$obj.find('ul.sub-nav li');\n if ($subNavItems.length > 0) {\n const $ulSubNav = this.$obj.find('ul.sub-nav');\n $ulSubNav.attr('data-mig-id', `mig_${GenId.Generate(4)}`);\n var subItems = this.subItems;\n var id = this.id;\n $subNavItems.each((i, subO) => {\n subItems.push(new MenuItem(subO, id, this.rememberOpenGroups));\n });\n }\n this.isGroupToggle = !this.hasALink && this.subItems.length > 0;\n }\n ;\n setExpandedState() {\n if (this.hasActiveSubNavItems() || this.userHasOpened()) {\n this.$obj.addClass('expanded');\n this.rememberUserExpanded();\n }\n }\n ;\n hookGroupToggling() {\n if (this.isGroupToggle) {\n this.$aLink.on('click', e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.$obj.removeClass('active');\n this.$obj.toggleClass('expanded');\n var expanded = this.$obj.hasClass('expanded');\n if (!expanded && this.subItems.filter(subi => subi.active).length > 0)\n this.$obj.addClass('active');\n if (expanded) {\n this.rememberUserExpanded();\n }\n else {\n this.forgetUserExpanded();\n }\n });\n }\n }\n ;\n parseActivePatterns() {\n try {\n if (this.$obj.hasClass(this.activeClass))\n return;\n const activePatternsStr = resolveAttr(this.$obj, 'data-active-patterns');\n if (activePatternsStr.length <= 0)\n return;\n this.activePatterns = JSON.parse(decodeURIComponent(activePatternsStr));\n const pathname = window.location.pathname;\n for (var i = 0, l = this.activePatterns.length; i < l; i++) {\n const pattern = this.activePatterns[i];\n const regex = new RegExp(pattern);\n if (regex.test(pathname)) {\n this.active = true;\n this.$obj.addClass(this.activeClass);\n break;\n }\n }\n }\n catch (e) {\n Logger.error(e);\n }\n }\n userHasOpened() {\n return UIState.hasItem(this.groupLinkId) && UIState.hasItem('Menu.RememberOpenGroups');\n }\n ;\n hasActiveSubNavItems() {\n if (this.subItems.length <= 0)\n return false;\n var has = this.subItems.filter((si) => { return si.active; }).length > 0;\n if (has)\n return true;\n this.subItems.forEach((subItem) => {\n if (subItem.hasActiveSubNavItems())\n has = true;\n });\n return has;\n }\n ;\n rememberUserExpanded() {\n UIState.set(this.groupLinkId, 'true');\n }\n forgetUserExpanded() {\n UIState.remove(this.groupLinkId);\n }\n id;\n isGroupToggle;\n groupId;\n parentNavId;\n title;\n active;\n expanded;\n subItems;\n activeClass;\n activePatterns = [];\n linkPath;\n groupLinkId;\n hasALink;\n rememberOpenGroups;\n $aLink;\n $obj;\n }\n var Showing = false;\n var Pinned = false;\n var RememberOpenGroups = false;\n function IncrementMessagesCountBadge(amount = 1) {\n if (amount <= 0)\n return;\n const $badge = $('#MenuTotalUnreadMessagesBadge');\n if ($badge.length <= 0)\n return;\n const currentAmount = +$badge.text();\n $badge.text(currentAmount + amount);\n $badge.removeClass('d-none');\n }\n LeftMenu.IncrementMessagesCountBadge = IncrementMessagesCountBadge;\n function DecrementMessagesCountBadge(amount = 1) {\n const $badge = $('#MenuTotalUnreadMessagesBadge');\n if ($badge.length <= 0)\n return;\n const currentAmount = +$badge.text();\n if (currentAmount <= 0)\n return;\n let newAmount = currentAmount - amount;\n if (newAmount <= 0) {\n newAmount = 0;\n $badge.addClass('d-none');\n }\n $badge.text(newAmount);\n }\n LeftMenu.DecrementMessagesCountBadge = DecrementMessagesCountBadge;\n function setPageFaderOverflow() {\n if (MenuSlideOrOver === OpenMenuTypes.OVER)\n return;\n $('.PageFader').css({ 'overflow-x': 'hidden' });\n }\n function unsetPageFaderOverflow() {\n $('.PageFader').css({ 'overflow-x': 'unset' });\n }\n function addMenuOpenClass() {\n $('body').addClass('MenuOpen');\n if (MenuSlideOrOver === OpenMenuTypes.SLIDE)\n $('body').addClass('Slide');\n }\n function addMenuPinnedClass() {\n $('body').addClass('MenuPinned');\n if (MenuSlideOrOver === OpenMenuTypes.SLIDE)\n $('body').addClass('Slide');\n }\n function removeMenuOpenClass() {\n $('body').removeClass('MenuOpen');\n $('body').removeClass('Slide');\n }\n function removeMenuPinnedClass() {\n $('body').removeClass('MenuPinned');\n $('body').removeClass('Slide');\n }\n function rememberOpenGroups() {\n Logger.withGroup('Menu: Remember Open Groups', () => {\n var $btn = $('#btnRememberGroupState');\n var $i = $btn.find('i');\n $btn.addClass('active');\n $i.removeClass('fa-compass');\n $i.addClass('fa-compass-slash');\n RememberOpenGroups = true;\n UIState.set('Menu.RememberOpenGroups', 'true');\n Logger.log('Remembering open groups');\n });\n }\n function forgetOpenGroups() {\n Logger.withGroup('Menu: Forget Open Groups', () => {\n var $btn = $('#btnRememberGroupState');\n var $i = $btn.find('i');\n $btn.removeClass('active');\n $i.removeClass('fa-compass-slash');\n $i.addClass('fa-compass');\n RememberOpenGroups = false;\n UIState.remove('Menu.RememberOpenGroups');\n Logger.log('Forgetting open groups');\n });\n }\n function toggleRememberGroupsState() {\n Logger.withGroup('Menu: Toggle Group State', () => {\n if (RememberOpenGroups) {\n forgetOpenGroups();\n Logger.groupEnd();\n return;\n }\n rememberOpenGroups();\n Logger.log('Remember group state toggled');\n });\n }\n function show() {\n Logger.withGroup('Menu: Show', () => {\n addMenuOpenClass();\n setPageFaderOverflow();\n Showing = true;\n });\n }\n function pin() {\n Logger.withGroup('Menu: Pin', () => {\n removeMenuOpenClass();\n addMenuPinnedClass();\n $('#btnPinMenu').addClass('active');\n $('nav').addClass('menuPinned');\n Showing = true;\n Pinned = true;\n unsetPageFaderOverflow();\n UIState.set('Menu.Pinned', 'true');\n Logger.log('pinned');\n });\n }\n function unpin() {\n Logger.withGroup('Menu: Unpin', () => {\n removeMenuPinnedClass();\n $('#btnPinMenu').removeClass('active');\n $('nav').removeClass('menuPinned');\n Pinned = false;\n UIState.remove('Menu.Pinned');\n show();\n Logger.log('unpinned');\n });\n }\n function hide() {\n if (!Showing)\n return;\n Logger.withGroup('Menu: Hide', () => {\n unpin();\n unsetPageFaderOverflow();\n removeMenuOpenClass();\n Showing = false;\n Logger.log('hidden');\n });\n }\n function toggle() {\n Logger.withGroup('Menu: Toggle', () => {\n if (Showing) {\n hide();\n Logger.groupEnd();\n return;\n }\n show();\n Logger.log('toggled');\n });\n }\n function togglePinned() {\n Logger.withGroup('Menu: Toggle Pinned', () => {\n if (Pinned) {\n toggle();\n Logger.groupEnd();\n return;\n }\n pin();\n Logger.log('pin toggled');\n });\n }\n function hookSysAdminOptions() {\n const $sysAdminMenu = $('#Menu #AdminOptions');\n if ($sysAdminMenu.length <= 0)\n return;\n const $chxEnableLogging = $('#chxEnableLogging');\n if ($chxEnableLogging.length > 0) {\n if (Logger.debuggingOverrideOn()\n || (Logger.Debug && !Logger.debuggingOverrideOff())\n || (!Logger.Debug && Logger.debuggingOverrideOn()))\n $chxEnableLogging.attr('checked', 'checked');\n $chxEnableLogging.on('change', function (e) {\n const enable = $(this).is(':checked');\n Logger.toggleDebugging(enable);\n });\n }\n const $chxEnableRequestProfiling = $('#chxEnableRequestProfiling');\n if ($chxEnableRequestProfiling.length > 0) {\n if (Logger.requestProfilingOn()) {\n $chxEnableRequestProfiling.attr('checked', true);\n }\n else {\n $chxEnableRequestProfiling.removeAttr('checked');\n }\n $chxEnableRequestProfiling.on('change', function (e) {\n const enable = $(this).is(':checked');\n Logger.toggleRequestProfiling(enable);\n });\n }\n const $btnSkipCache = $(\"#btnSkipCache\");\n if ($btnSkipCache.length > 0) {\n $btnSkipCache.on('click', function (e) {\n var search = window.location.search;\n if (search.indexOf('skipCache=true') === -1) {\n var prefix = search.length > 0 ? '&' : '?';\n window.location.search = `${search}${prefix}skipCache=true`;\n }\n else {\n window.location.search = search;\n }\n });\n }\n }\n function loaded() {\n if ($('#Menu').length <= 0)\n return;\n Logger.withGroup('LeftMenu: Loaded', () => {\n if (UIState.hasItem('Menu.Pinned'))\n pin();\n if (UIState.hasItem('Menu.RememberOpenGroups'))\n rememberOpenGroups();\n $('#MenuBtn').on('click', e => {\n e.preventDefault();\n toggle();\n });\n Logger.withGroup('Nav Items', () => {\n $('#Menu ul li.nav-item').each((i, liNavItem) => {\n var $li = $(liNavItem);\n var $parent = $li.parent();\n $parent.attr('data-mig-id', `mig_${GenId.Generate(4)}`);\n if (!$parent.hasClass('sub-nav')) {\n Logger.withGroup('Nav Item', () => {\n const menuItem = new MenuItem(liNavItem, '', RememberOpenGroups);\n LeftMenu.MenuItems.push(menuItem);\n Logger.log(menuItem);\n });\n }\n });\n });\n hookSysAdminOptions();\n $('#Menu .nano').nanoScroller();\n $('#btnPinMenu').on('click', e => {\n e.preventDefault();\n togglePinned();\n });\n $('#btnRememberGroupState').on('click', e => {\n e.preventDefault();\n toggleRememberGroupsState();\n });\n $(document).on('mouseup', e => {\n if ($('body').hasClass('MenuPinned'))\n return;\n var container = $('#Menu, #MenuBtn');\n if (!container.is(e.target) && container.has(e.target).length === 0) {\n hide();\n }\n });\n });\n }\n function init() {\n LeftMenu.MenuItems = [];\n $(() => { loaded(); });\n }\n LeftMenu.init = init;\n})(LeftMenu || (LeftMenu = {}));\n\nvar KnowledgeBase;\n(function (KnowledgeBase) {\n var searchContainer;\n var resultLimit;\n function search(q, sort) {\n $('#kb-content').pagesearch({\n context: '.content', query: q, onComplete(d) {\n searchContainer.empty();\n if (d.length > 0) {\n const limit = resultLimit;\n let queryResult = d;\n if (sort) {\n queryResult = Enumerable.From(d)\n .OrderBy(x => x.anchor.text)\n .ToArray();\n }\n for (var i = 0, l = queryResult.length; i < l; i++) {\n let li;\n const item = queryResult[i];\n if (i < limit || limit === 0) {\n li = $(`
  • ${item.anchor.text}
  • `);\n searchContainer.append(li);\n }\n else {\n li = `
  • +${queryResult.length - limit}more
  • `;\n searchContainer.append(li);\n break;\n }\n }\n searchContainer.show();\n $('#kb-search-results-container li a').on('click', function (e) {\n e.preventDefault();\n const anchor = $(this).data('anchor');\n $.scrollTo($(`[name=\"${anchor}\"]`), 1000);\n });\n }\n else {\n searchContainer.hide();\n }\n }\n });\n }\n function loaded() {\n searchContainer = $('#kb-search-results-container');\n $('#toc').tocify({\n scrollHistory: true,\n context: '#kb-content',\n theme: 'none',\n highlightOffset: 60,\n selectors: 'h1,h2,h3,h4',\n scrollTo: 80\n });\n $('#txt_search').on('keyup', function (e) {\n if (e.keyCode === 27) {\n $(this).val('');\n }\n search($(this).val(), false);\n return true;\n }).on('keydown', e => {\n if (e.keyCode === 13) {\n e.preventDefault();\n return false;\n }\n return true;\n });\n $('#menuBtn').on('click', e => {\n e.preventDefault();\n $('#KbUiWrapper').addClass('KbMenuOpen');\n });\n $('#btnCloseMenu').on('click', e => {\n e.preventDefault();\n $('#KbUiWrapper').removeClass('KbMenuOpen');\n });\n $('code.define').each(function () {\n const defId = $(this).data('def');\n const term = $(`.definition#${defId} .term`).html();\n const def = $(`.definition#${defId} .defined`).html();\n $(this).webuiPopover({ title: term, content: def, width: 315, trigger: 'hover' });\n });\n $(document).on('mouseup', e => {\n if (!$('#KbUiWrapper').hasClass('KbMenuOpen'))\n return;\n var container = $('#kb-nav, #MenuBtn');\n if (!container.is(e.target) && container.has(e.target).length === 0) {\n $('#KbUiWrapper').removeClass('KbMenuOpen');\n }\n });\n setInterval(() => {\n var $KbUiWrapper = $('#KbUiWrapper');\n if ($KbUiWrapper.hasClass('nop'))\n return;\n $KbUiWrapper.addClass('nop');\n }, 1000);\n var requestedSection = window.location.hash.substring(1);\n if (requestedSection.length > 0) {\n Seismic.ExecuteAfterFadeIn.push(() => {\n var target = $(`[name=\"${requestedSection}\"]`);\n if (target.length <= 0)\n return;\n $.scrollTo($(`[name=\"${requestedSection}\"]`), { duration: 500, offset: -60 });\n });\n }\n }\n function init() {\n resultLimit = 0;\n $(() => { loaded(); });\n }\n KnowledgeBase.init = init;\n})(KnowledgeBase || (KnowledgeBase = {}));\n\nvar AvatarMenu;\n(function (AvatarMenu) {\n function loaded() {\n const avatar = $('li#Avatar');\n if (avatar === null || avatar === undefined || avatar.length <= 0)\n return;\n Logger.withGroup('AvatarMenu: Loaded', () => {\n const userFullName = $('nav #RightOptions #Avatar').attr('data-user-fullname');\n const title = userFullName.length >= 0 ? userFullName : '';\n avatar.webuiPopover({ url: '#AvatarPop', animation: 'pop', container: '.PageFader nav', title: title, padding: false });\n $('#AvatarPop ul a').on('click', () => {\n avatar.webuiPopover('hide');\n });\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n AvatarMenu.init = init;\n})(AvatarMenu || (AvatarMenu = {}));\n\nvar AffiliateLogo;\n(function (AffiliateLogo) {\n function loaded() {\n const $affiliateLogo = $('.affiliate-logo');\n if ($affiliateLogo.length <= 0)\n return;\n Logger.withGroup('AffiliateLogo: Loaded', () => {\n try {\n const brandingLogoUrl = getProperty(Seismic, 'Session.Affiliate.BrandingLogoLogin');\n if (!validObj(brandingLogoUrl) || brandingLogoUrl.length <= 0) {\n $affiliateLogo.hide();\n $('#Menu .affiliate .affiliate-info .affiliate-details').css({\n 'margin-left': '0'\n });\n Logger.warn('Could not obtain valid BrandingLogoLogin value from Session');\n return;\n }\n Logger.log(`Branding url: ${brandingLogoUrl}`);\n $affiliateLogo.css({\n 'background-image': `url('${brandingLogoUrl}')`\n });\n }\n catch (e) {\n Logger.dir(e);\n }\n });\n }\n function init() {\n $(() => { loaded(); });\n }\n AffiliateLogo.init = init;\n})(AffiliateLogo || (AffiliateLogo = {}));\n\nclass WagPassPurchaseViewModel {\n completedIntro;\n userIsClient;\n wagPasses;\n purchaserEmail;\n referralCode;\n requestedDuration;\n requestedTier;\n elementsConfiguration;\n}\nclass PaymentIntentResponse {\n clientSecret;\n id;\n}\nvar PurchaseWagPasses;\n(function (PurchaseWagPasses) {\n var WagPassPurchaseViewModel;\n var selectedWagPass;\n var $essentialsBox;\n var $plusBox;\n var $passSelectorDropdown;\n var $purchaseWagPasses;\n var $warningAlertBox;\n var selectedMonths = 3;\n var stripe;\n function loaded() {\n $warningAlertBox = $('#WarningAlertBox');\n $purchaseWagPasses = $('#PurchaseWagPasses');\n $essentialsBox = $purchaseWagPasses.find('.WagPasses .WagPass.essentials');\n $plusBox = $purchaseWagPasses.find('.WagPasses .WagPass.plus');\n $passSelectorDropdown = $('#PassSelector .dropdown');\n $passSelectorDropdown.webuiPopover({\n url: '#PassSelectionOptions',\n placement: 'bottom',\n animation: 'pop',\n container: '.PageFader nav',\n title: 'Pass Duration',\n width: 275,\n offsetLeft: -1,\n padding: false\n });\n $('#PassSelectionOptions ul li').on('click', function () {\n $passSelectorDropdown.webuiPopover('hide');\n selectedMonths = +$(this).data('months');\n selectionChanged();\n });\n setSaleBadgesOnSelectors();\n $purchaseWagPasses.find('.WagPasses .WagPass button.buy').on('click', function (e) {\n e.preventDefault();\n var tier = +$(this).data('tier');\n buyPass(tier);\n });\n $('#PaymentInputs #btnBackToSelection').on('click', function (e) {\n e.preventDefault();\n $purchaseWagPasses.addClass('selecting');\n $purchaseWagPasses.removeClass('paying');\n });\n $('#chxAgree').change(function () {\n if (this.checked) {\n $('#btnPay').removeAttr('disabled');\n }\n else {\n $('#btnPay').prop('disabled', true);\n }\n });\n $('#PurchaserEmail').on('blur', function (e) {\n checkAndWarnPurchaserIfPassIsSale();\n });\n if (WagPassPurchaseViewModel.requestedDuration !== null && [3, 6, 12].indexOf(WagPassPurchaseViewModel.requestedDuration) >= 0)\n selectedMonths = WagPassPurchaseViewModel.requestedDuration;\n selectionChanged();\n if (WagPassPurchaseViewModel.requestedTier !== null && [0, 1].indexOf(WagPassPurchaseViewModel.requestedTier) >= 0)\n buyPass(WagPassPurchaseViewModel.requestedTier);\n checkAndWarnPurchaserIfPassIsSale();\n }\n function checkAndWarnPurchaserIfPassIsSale() {\n if (typeof (selectedWagPass) == 'undefined' || selectedWagPass === null || !selectedWagPass.isOnSale || !selectedWagPass.saleForNewClientsOnly) {\n $warningAlertBox.hide();\n return;\n }\n var emails = [];\n var purchaserEmailVal = $('#PurchaserEmail').val().trim();\n if (purchaserEmailVal.length > 0)\n emails.push(purchaserEmailVal);\n if (emails.length <= 0)\n return;\n $.post({\n url: '/wagpass/sale-eligible',\n dataType: 'JSON',\n data: {\n 'emails': emails\n }\n })\n .done((response) => {\n console.log(response);\n if (response && response.length > 0) {\n var purchaserFound = response.filter(e => e == purchaserEmailVal).length > 0;\n var warningMessage = '';\n if (purchaserFound) {\n warningMessage += ` If you're trying to purchase this pass for yourself, you will not be able to redeem it with your Seismic account attached to your ${purchaserEmailVal} email.`;\n }\n $warningAlertBox.html(warningMessage.trim());\n $warningAlertBox.show();\n }\n else {\n $warningAlertBox.hide();\n }\n })\n .fail(error => {\n console.error(error);\n });\n }\n function buyPass(tier) {\n $purchaseWagPasses.removeClass('selecting');\n $purchaseWagPasses.addClass('paying');\n selectedWagPass = WagPassPurchaseViewModel.wagPasses.filter((pass) => pass.passLengthMonths === selectedMonths && pass.tier === tier)[0];\n setUiForSelectedPass(selectedWagPass);\n if (!stripe)\n initializeStripe(selectedWagPass);\n }\n function setUiForSelectedPass(wagPass) {\n console.log('setting ui for pass', wagPass);\n $('#PassId').val(wagPass.id);\n $('#PurchaserEmail').val('');\n $warningAlertBox.hide();\n var $selectedWagPass = $('#SelectedWagPass');\n $selectedWagPass.removeClass('essentials plus');\n $selectedWagPass.addClass(wagPass.titleStr.toLowerCase());\n var $title = $selectedWagPass.find('.title');\n var $salePercentOff = $selectedWagPass.find('.salePercentOff');\n var $originalPrice = $selectedWagPass.find('.originalPrice');\n var $price = $selectedWagPass.find('.price');\n var $length = $selectedWagPass.find('.length');\n var $conditions = $selectedWagPass.find('.conditions');\n var $payBtnAmount = $('#payment-form #btnPay #payAmount');\n $title.html('WAG Prepaid ' + (wagPass.tier === 0 ? \"Essentials\" : \"Plus\"));\n $originalPrice.html(wagPass.stripePriceString);\n if (wagPass.isOnSale) {\n $price.html(wagPass.stripeSalePriceString);\n $payBtnAmount.html(wagPass.stripeSalePriceString);\n $salePercentOff.html(wagPass.salePercentOff + '%');\n $selectedWagPass.addClass('onSale');\n if (wagPass.isLimitedSale) {\n $selectedWagPass.addClass('isLimitedSale');\n }\n else {\n $selectedWagPass.removeClass('isLimitedSale');\n }\n }\n else {\n $selectedWagPass.removeClass('onSale');\n $selectedWagPass.removeClass('isLimitedSale');\n $price.html(wagPass.stripePriceString);\n $payBtnAmount.html(wagPass.stripePriceString);\n }\n var conditions = getConditions(wagPass);\n if (conditions.length > 0)\n $conditions.html(conditions.join(' '));\n else\n $conditions.html('');\n var monthsString = wagPass.passLengthMonths + ' Months';\n $length.html(monthsString);\n }\n function setSaleBadgesOnSelectors() {\n var _3moSales = WagPassPurchaseViewModel.wagPasses.filter((pass) => pass.passLengthMonths === 3 && pass.isOnSale).length > 0;\n var _6moSales = WagPassPurchaseViewModel.wagPasses.filter((pass) => pass.passLengthMonths === 6 && pass.isOnSale).length > 0;\n var _12moSales = WagPassPurchaseViewModel.wagPasses.filter((pass) => pass.passLengthMonths === 12 && pass.isOnSale).length > 0;\n if (_3moSales) {\n $('#PassSelectionOptions ul li.mo3 span.badge').show();\n }\n if (_6moSales) {\n $('#PassSelectionOptions ul li.mo6 span.badge').show();\n }\n if (_12moSales) {\n $('#PassSelectionOptions ul li.mo12 span.badge').show();\n }\n }\n function selectionChanged() {\n var wagPasses = WagPassPurchaseViewModel.wagPasses.filter((pass) => pass.passLengthMonths === selectedMonths);\n var essentialsPass = wagPasses.filter((pass) => pass.tier === 0)[0];\n var plusPass = wagPasses.filter((pass) => pass.tier === 1)[0];\n displaySelection(essentialsPass);\n displaySelection(plusPass);\n }\n function getConditions(wagPass) {\n var conditions = [];\n if (wagPass.isOnSale) {\n var passOnSaleVerbiage = wagPass.saleForNewClientsOnly ? 'CANNOT' : 'CAN';\n conditions.push(`This membership is on sale and ${passOnSaleVerbiage} be redeemed by existing customers.`);\n }\n conditions.push('WAG Prepaid memberships redeemable only on WAG accounts. All purchases final - no refunds');\n return conditions;\n }\n function displaySelection(wagPass) {\n var $box = wagPass.tier === 0 ? $essentialsBox : $plusBox;\n var $salePercentOff = $box.find('.salePercentOff');\n var $originalPrice = $box.find('.originalPrice');\n var $price = $box.find('.price');\n var $length = $box.find('.length');\n var $limitedSale = $box.find('.limitedSale');\n var $conditions = $box.find('.conditions');\n var $liSavings = $box.find('li.savings');\n var $passSelectorDropdownText = $passSelectorDropdown.find('span.selectedMonths');\n if (wagPass.savings > 0) {\n $liSavings.show();\n $liSavings.html('Save ' + wagPass.savingsStr);\n }\n else {\n $liSavings.hide();\n }\n $originalPrice.html(wagPass.stripePriceString);\n if (wagPass.isOnSale) {\n $price.html(wagPass.stripeSalePriceString);\n $salePercentOff.html(wagPass.salePercentOff + '%');\n $box.addClass('onSale');\n if (wagPass.isLimitedSale) {\n $box.addClass('isLimitedSale');\n $limitedSale.html('Sale ends ' + wagPass.saleDateEndsString);\n }\n else {\n $limitedSale.html('');\n $box.removeClass('isLimitedSale');\n }\n }\n else {\n $box.removeClass('onSale');\n $box.removeClass('isLimitedSale');\n $price.html(wagPass.stripePriceString);\n }\n var conditions = getConditions(wagPass);\n if (conditions.length > 0)\n $conditions.html(conditions.join(' '));\n else\n $conditions.html('');\n var monthsString = wagPass.passLengthMonths + ' Months';\n $length.html(monthsString);\n $passSelectorDropdownText.html(monthsString);\n }\n function initializeStripe(wagPass) {\n stripe = Stripe(WagPassPurchaseViewModel.elementsConfiguration.publishableKey, { \"stripeAccount\": WagPassPurchaseViewModel.elementsConfiguration.affiliateAccountId });\n var amount = 0;\n if (wagPass.isOnSale) {\n amount = wagPass.stripeSalePrice;\n }\n else {\n amount = wagPass.stripePrice;\n }\n $.get({\n url: '/wagpass/purchase/payment-intent?amount=' + amount\n })\n .done((response) => {\n const elements = stripe.elements({\n clientSecret: response.clientSecret,\n fonts: [{ cssSrc: 'https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,700' }]\n });\n const paymentElement = elements.create('payment');\n paymentElement.mount('#payment-element');\n var paymentElementOk = false;\n paymentElement.on('change', function (event) {\n if (event.complete) {\n paymentElementOk = true;\n }\n else if (event.error) {\n paymentElementOk = false;\n }\n });\n document\n .querySelector(\"#payment-form\")\n .addEventListener(\"submit\", event => {\n event.preventDefault();\n var purchaserEmailVal = $('#PurchaserEmail').val();\n var agreed = $(\"#chxAgree\").is(':checked');\n if (!validEmail(purchaserEmailVal)) {\n Alerts.error({ content: 'You must provide a valid email.' });\n return;\n }\n if (!agreed) {\n Alerts.error({ content: 'You must agree that you have read and understand all conditions regarding this pass.' });\n return;\n }\n if (!paymentElementOk)\n return;\n Loader.show();\n $.get({\n url: `/wagpass/purchase/payment-intent/update/email?paymentIntentId=${response.id}&email=${purchaserEmailVal}`\n })\n .done(() => {\n stripe.confirmPayment({\n elements,\n confirmParams: {\n return_url: `https://${window.location.host}/wagpass/purchased?passId=${wagPass.id}&purchaserEmail=${purchaserEmailVal}&referralCode=${(WagPassPurchaseViewModel.referralCode ?? '')}`,\n },\n }).then(({ error }) => {\n if (error) {\n if (error?.message) {\n Alerts.error({ content: error.message });\n }\n else {\n Alerts.error({ content: \"There was an error during payment confirmation. Please contact support@getseismic.com with code 8DB27.\" });\n console.error(error);\n }\n }\n Loader.hide();\n }).catch(err => {\n console.error(err);\n Alerts.error({ content: \"Exception during payment confirmation:\" + err });\n Loader.hide();\n });\n })\n .fail(error => {\n console.error(error);\n Alerts.error({ content: error.responseText });\n Loader.hide();\n });\n });\n })\n .fail(error => {\n console.error(error);\n Alerts.error({ content: error.responseText });\n Loader.hide();\n });\n }\n function init(wagPassPurchaseViewModel) {\n WagPassPurchaseViewModel = wagPassPurchaseViewModel;\n if (WagPassPurchaseViewModel?.referralCode) {\n Cookies.set('wagpassreferralcode', wagPassPurchaseViewModel.referralCode, { expires: 30 });\n }\n else {\n WagPassPurchaseViewModel.referralCode = Cookies.get('wagpassreferralcode');\n }\n $(() => { loaded(); });\n }\n PurchaseWagPasses.init = init;\n})(PurchaseWagPasses || (PurchaseWagPasses = {}));\n\nvar BusinessAlerts;\n(function (BusinessAlerts) {\n function Dismiss(businessAlertId) {\n $(`#business-alert${businessAlertId}`).hide();\n try {\n $.post(`/business-alerts/dismiss?businessAlertId=${businessAlertId}`)\n .done(() => {\n console.log('done');\n })\n .fail(f => {\n console.error(f);\n });\n }\n catch ({ e }) {\n console.error(e);\n }\n }\n BusinessAlerts.Dismiss = Dismiss;\n})(BusinessAlerts || (BusinessAlerts = {}));\n\nvar AlertBoxes;\n(function (AlertBoxes) {\n function Dismiss(businessAlertId) {\n $(`#business-alert${businessAlertId}`).hide();\n }\n AlertBoxes.Dismiss = Dismiss;\n})(AlertBoxes || (AlertBoxes = {}));\n\nvar Gender;\n(function (Gender) {\n Gender[\"male\"] = \"male\";\n Gender[\"female\"] = \"female\";\n})(Gender || (Gender = {}));\nvar PhotoDirection;\n(function (PhotoDirection) {\n PhotoDirection[\"Front\"] = \"front\";\n PhotoDirection[\"Back\"] = \"back\";\n PhotoDirection[\"Left\"] = \"left\";\n PhotoDirection[\"Right\"] = \"right\";\n})(PhotoDirection || (PhotoDirection = {}));\nvar PhotoSet;\n(function (PhotoSet) {\n PhotoSet[\"Initial\"] = \"InitialPhotos\";\n PhotoSet[\"Latest\"] = \"LatestPhotos\";\n})(PhotoSet || (PhotoSet = {}));\nvar Seismic;\n(function (Seismic) {\n let EventSource;\n (function (EventSource) {\n EventSource[\"Seismic\"] = \"Seismic\";\n EventSource[\"Affiliate\"] = \"Affiliate\";\n })(EventSource = Seismic.EventSource || (Seismic.EventSource = {}));\n var HostingEnvironment = 'Development';\n var Area = '';\n Seismic.ExecuteAfterFadeIn = [];\n Seismic.Session = undefined;\n function logout() {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n icon: 'far fa-sign-out-alt fa-fw',\n backgroundDismiss: true,\n title: 'Log out...',\n content: 'Are you sure you want to log out?',\n buttons: {\n Stay() { },\n Confirm: {\n btnClass: 'btn-primary',\n text: 'Logout',\n action() {\n const loaderOptions = new LoaderOptions(() => {\n window.location.href = '/logout';\n });\n Loader.show(loaderOptions);\n }\n }\n }\n });\n }\n Seismic.logout = logout;\n function delegateAffiliate(id) {\n Loader.show();\n const returnUrl = encodeURIComponent(location.pathname + location.search);\n $.get(`/delegate/affiliate?id=${encodeURIComponent(id)}&returnUrl=${returnUrl}`)\n .done(response => {\n window.location.href = response;\n })\n .fail(err => {\n Alerts.error({\n title: 'Whoops',\n content: `
    Sorry, it looks like there was an error.
    ${err.responseText}
    `,\n backgroundDismiss: true\n });\n Logger.log(err);\n Loader.hide();\n });\n }\n Seismic.delegateAffiliate = delegateAffiliate;\n function delegateCoach(delegationId) {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n icon: 'far fa-code-branch fa-fw',\n backgroundDismiss: true,\n title: 'Delegate...',\n content: `Are you sure you want to start delegating?`,\n buttons: {\n Stay() { },\n Confirm: {\n btnClass: 'btn-primary',\n text: 'Delegate',\n action() {\n const loaderOptions = new LoaderOptions(() => {\n const returnUrl = encodeURIComponent(location.pathname + location.search);\n $.get(`/delegate/coach?id=${encodeURIComponent(delegationId)}&returnUrl=${returnUrl}`)\n .done(response => {\n MessageCounts.clearCache();\n window.location.href = response;\n })\n .fail(err => {\n Alerts.error({\n title: 'Whoops',\n content: `
    Sorry, it looks like there was an error.
    ${err.responseText}
    `,\n backgroundDismiss: true\n });\n Logger.log(err);\n Loader.hide();\n });\n });\n Loader.show(loaderOptions);\n }\n }\n }\n });\n }\n Seismic.delegateCoach = delegateCoach;\n function delegateCoachAsAdmin(email) {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n icon: 'far fa-code-branch fa-fw',\n backgroundDismiss: true,\n title: 'Delegate...',\n content: `Are you sure you want to start delegating?`,\n buttons: {\n Stay() { },\n Confirm: {\n btnClass: 'btn-primary',\n text: 'Delegate',\n action() {\n const loaderOptions = new LoaderOptions(() => {\n const returnUrl = encodeURIComponent(location.pathname + location.search);\n $.get(`/delegate/start?email=${encodeURIComponent(email)}&returnUrl=${returnUrl}`)\n .done(response => {\n MessageCounts.clearCache();\n window.location.href = response;\n })\n .fail(err => {\n Alerts.error({\n title: 'Whoops',\n content: `
    Sorry, it looks like there was an error.
    ${err.responseText}
    `,\n backgroundDismiss: true\n });\n Logger.log(err);\n Loader.hide();\n });\n });\n Loader.show(loaderOptions);\n }\n }\n }\n });\n }\n Seismic.delegateCoachAsAdmin = delegateCoachAsAdmin;\n function impersonate(email) {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n icon: 'far fa-person-booth fa-fw',\n backgroundDismiss: true,\n title: 'Impersonate...',\n content: `Are you sure you want to start impersonating ${email}?`,\n buttons: {\n Stay() { },\n Confirm: {\n btnClass: 'btn-primary',\n text: 'Impersonate',\n action() {\n const loaderOptions = new LoaderOptions(() => {\n const returnUrl = encodeURIComponent(location.pathname + location.search);\n $.get(`/impersonate/start?email=${encodeURIComponent(email)}&returnUrl=${returnUrl}`)\n .done(response => {\n MessageCounts.clearCache();\n window.location.href = response;\n })\n .fail(err => {\n Alerts.error({\n title: 'Whoops',\n content: `
    Sorry, it looks like there was an error.
    ${err.responseText}
    `,\n backgroundDismiss: true\n });\n Logger.log(err);\n Loader.hide();\n });\n });\n Loader.show(loaderOptions);\n }\n }\n }\n });\n }\n Seismic.impersonate = impersonate;\n function stopDelegating() {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n icon: 'far fa-code-branch fa-fw',\n backgroundDismiss: true,\n title: 'Stop delegating...',\n content: 'Are you sure you want to stop delegating?',\n buttons: {\n Stay() { },\n Confirm: {\n btnClass: 'btn-primary',\n text: 'Stop',\n action() {\n const loaderOptions = new LoaderOptions(() => {\n $.get('/impersonate/stop')\n .done(response => {\n MessageCounts.clearCache();\n window.location.href = response;\n })\n .fail(err => {\n Alerts.error({\n title: 'Whoops',\n content: `
    Sorry, it looks like there was an error.
    ${err.responseText}
    `,\n backgroundDismiss: true\n });\n Logger.log(err);\n Loader.hide();\n });\n });\n Loader.show(loaderOptions);\n }\n }\n }\n });\n }\n Seismic.stopDelegating = stopDelegating;\n function stopImpersonating() {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n icon: 'far fa-person-booth fa-fw',\n backgroundDismiss: true,\n title: 'Stop impersonating...',\n content: 'Are you sure you want to stop impersonating?',\n buttons: {\n Stay() { },\n Confirm: {\n btnClass: 'btn-primary',\n text: 'Stop',\n action() {\n const loaderOptions = new LoaderOptions(() => {\n $.get('/impersonate/stop')\n .done(response => {\n MessageCounts.clearCache();\n window.location.href = response;\n })\n .fail(err => {\n Alerts.error({\n title: 'Whoops',\n content: `
    Sorry, it looks like there was an error.
    ${err.responseText}
    `,\n backgroundDismiss: true\n });\n Logger.log(err);\n Loader.hide();\n });\n });\n Loader.show(loaderOptions);\n }\n }\n }\n });\n }\n Seismic.stopImpersonating = stopImpersonating;\n function stopDelegatingAffiliate() {\n Alerts.confirm({\n animation: 'zoom',\n closeAnimation: 'scale',\n animateFromElement: false,\n icon: 'far fa-person-booth fa-fw',\n backgroundDismiss: true,\n title: 'Stop delegating...',\n content: 'Are you sure you want to stop delegating this affiliate?',\n buttons: {\n Stay() { },\n Confirm: {\n btnClass: 'btn-primary',\n text: 'Stop',\n action() {\n const loaderOptions = new LoaderOptions(() => {\n $.get('/delegate/stop')\n .done(response => {\n window.location.href = response;\n })\n .fail(err => {\n Alerts.error({\n title: 'Whoops',\n content: `
    Sorry, it looks like there was an error.
    ${err.responseText}
    `,\n backgroundDismiss: true\n });\n Logger.log(err);\n Loader.hide();\n });\n });\n Loader.show(loaderOptions);\n }\n }\n }\n });\n }\n Seismic.stopDelegatingAffiliate = stopDelegatingAffiliate;\n function cookiesEnabled() {\n let cookieEnabled = navigator.cookieEnabled;\n if (typeof navigator.cookieEnabled === 'undefined' && !cookieEnabled) {\n document.cookie = 'testcookie';\n cookieEnabled = (document.cookie.indexOf('testcookie') !== -1);\n }\n return cookieEnabled;\n }\n Seismic.cookiesEnabled = cookiesEnabled;\n function showDisabledCookiesAlert(lock = true, okAction = null) {\n const buttons = lock ? false : {\n ok: {\n text: 'Ok',\n action: okAction\n }\n };\n Alerts.alert({\n icon: 'fas fa-cookie-bite',\n bgOpacity: .9,\n title: 'Cookies Disabled',\n backgroundDismiss: false,\n closeIcon: false,\n content: '

    Seismic uses browser cookies to help move you and your data around within the app. You will have to enable your browser\\'s cookies before continuing.

    ' +\n '

    Managing cookies in:
    ' +\n 'Chrome (Desktop, Mobile)
    ' +\n 'Safari (Desktop, iPhone/iPad)
    ' +\n 'Firefox (Desktop)

    ' +\n 'If after enabling cookies you continue to have issues please contact us at support@getseismic.com.',\n draggable: false,\n escapeKey: false,\n buttons: buttons\n });\n }\n Seismic.showDisabledCookiesAlert = showDisabledCookiesAlert;\n function area() {\n return Area;\n }\n Seismic.area = area;\n function sendIntroStepEvent(step) {\n return;\n }\n Seismic.sendIntroStepEvent = sendIntroStepEvent;\n function sendEcommerceEvent(data) {\n return;\n }\n Seismic.sendEcommerceEvent = sendEcommerceEvent;\n function sendPurchaseEvent(subscriptionId, priceId, amount, name, discount, couponId, resubscribing = false) {\n try {\n if (typeof (gtag) !== 'undefined') {\n var eventData = {\n send_to: 'G-6CL1CPN9Z9',\n transaction_id: subscriptionId,\n value: null,\n currency: \"USD\",\n items: [{\n item_id: priceId,\n item_name: name,\n coupon: couponId,\n discount: discount,\n price: amount,\n quantity: 1,\n item_variant: null\n }]\n };\n if (resubscribing) {\n eventData.items[0].item_variant = 'resubscribe';\n }\n eventData.value = discount !== null && discount > 0\n ? amount - discount\n : amount;\n if (HostingEnvironment === 'Development')\n return;\n gtag(\"event\", \"purchase\", eventData);\n }\n }\n catch (e) {\n console.error(e);\n }\n }\n Seismic.sendPurchaseEvent = sendPurchaseEvent;\n function sendFbqEvent(fbqEvent) {\n if (typeof fbq !== \"undefined\") {\n fbqEvent();\n }\n }\n Seismic.sendFbqEvent = sendFbqEvent;\n function loaded() {\n Logger.withGroup('App: Loaded', () => {\n $('body').waitForImages(true).progress((index, count, success) => {\n }).done(() => {\n $('.PageFader').animate({ opacity: 1 }, 500, 'easeInQuad', () => {\n if (Seismic.ExecuteAfterFadeIn.length > 0) {\n Logger.withGroup(`ExecuteAfterFadeIn (${Seismic.ExecuteAfterFadeIn.length} methods)`, () => {\n loop(Seismic.ExecuteAfterFadeIn, (f) => { f(); });\n });\n }\n });\n });\n });\n }\n function initSession() {\n Logger.withGroup('Session', () => {\n const sessionStr = Cookies.get('.Seismic.Session');\n Seismic.Session = sessionStr !== undefined && sessionStr !== null && sessionStr.length > 0 ? JSON.parse(sessionStr) : {};\n Seismic.Session.hasRole = (roleId) => {\n const roles = Seismic.Session.Roles !== undefined && Seismic.Session.Roles !== null\n ? Seismic.Session.Roles\n : [];\n if (roles.length <= 0)\n return false;\n return roles.indexOf(roleId) >= 0;\n };\n Seismic.Session.hasAnyRole = (roleIds) => {\n if (roleIds === undefined)\n return false;\n if (roleIds === null)\n return false;\n for (let i = 0; i < roleIds.length; i++) {\n if (Seismic.Session.hasRole(roleIds[i]))\n return true;\n }\n return false;\n };\n Logger.log(Seismic.Session);\n });\n }\n function initAnalytics() {\n try {\n }\n catch (e) {\n Logger.log(e);\n Logger.groupEnd();\n }\n }\n function init(debug, hostingEnvironment = 'Development', area) {\n HostingEnvironment = hostingEnvironment;\n Area = area;\n Logger.init(debug);\n Logger.withGroup('App: Init', () => {\n Logger.log(`Hosting env: ${hostingEnvironment}`);\n Logger.log(`Area: ${area}`);\n initSession();\n initAnalytics();\n MessageCounts.init();\n CardNavigators.init();\n TextAreaAutoGrow.init();\n AffiliateLogo.init();\n ScrollTabs.init();\n AvatarMenu.init();\n AvatarImages.init();\n SessionValueOutputs.init();\n LeftMenu.init();\n ActionLinks.init();\n ExplainBoxes.init();\n MetricsCards.init();\n CardSectionBoxes.init();\n Timelines.init();\n ToggleSwitches.init();\n CollapsoBoxes.init();\n DisabledContainers.init();\n UnitOutputs.init();\n DataFlipper.init();\n CountUps.init();\n AjaxForms.init();\n UtcParser.init();\n UserQuickInfo.init();\n ExternalLinkIcons.init();\n TabToNext.init();\n NumberFormatter.init();\n LoaderLinks.init();\n NotificationsMenu.init();\n SystemAlertsMenu.init();\n UserQuickLinks.init();\n Hernia.init();\n ToolTips.init();\n UserOnline.init();\n Gdpr.init();\n DemoMode.init();\n $(() => { loaded(); });\n });\n }\n Seismic.init = init;\n})(Seismic || (Seismic = {}));\n"]}