Created
December 29, 2016 22:17
-
-
Save dabbott/95e54f6f8505b95d998976f3bd550ea1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
!function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){var Defaults,Framer,_;_=__webpack_require__(1)._,Framer={},Framer._=_,Framer.Utils=__webpack_require__(4),Framer.Color=__webpack_require__(10).Color,Framer.Layer=__webpack_require__(13).Layer,Framer._Layer=Framer.Layer,Framer.BackgroundLayer=__webpack_require__(36).BackgroundLayer,Framer.VideoLayer=__webpack_require__(37).VideoLayer,Framer.SVGLayer=__webpack_require__(38).SVGLayer,Framer.Events=__webpack_require__(15).Events,Framer.Gestures=__webpack_require__(16).Gestures,Framer.Animation=__webpack_require__(18).Animation,Framer.AnimationGroup=__webpack_require__(39).AnimationGroup,Framer.AnimationStateGroup=__webpack_require__(39).AnimationStateGroup,Framer.Screen=__webpack_require__(5).Screen,Framer.Align=__webpack_require__(40).Align,Framer.print=__webpack_require__(41).print,Framer.ScrollComponent=__webpack_require__(44).ScrollComponent,Framer.PageComponent=__webpack_require__(45).PageComponent,Framer.SliderComponent=__webpack_require__(46).SliderComponent,Framer.DeviceComponent=__webpack_require__(47).DeviceComponent,Framer.GridComponent=__webpack_require__(48).GridComponent,Framer.FlowComponent=__webpack_require__(49).FlowComponent,Framer.CircularProgressComponent=__webpack_require__(50).CircularProgressComponent,Framer.MIDIComponent=__webpack_require__(51).MIDIComponent,Framer.DeviceView=Framer.DeviceComponent,window&&_.extend(window,Framer),Framer.Context=__webpack_require__(42).Context,Framer.Config=__webpack_require__(14).Config,Framer.EventEmitter=__webpack_require__(7).EventEmitter,Framer.BaseClass=__webpack_require__(6).BaseClass,Framer.LayerStyle=__webpack_require__(25).LayerStyle,Framer.AnimationLoop=__webpack_require__(53).AnimationLoop,Framer.LinearAnimator=__webpack_require__(20).LinearAnimator,Framer.BezierCurveAnimator=__webpack_require__(21).BezierCurveAnimator,Framer.SpringDHOAnimator=__webpack_require__(24).SpringDHOAnimator,Framer.SpringRK4Animator=__webpack_require__(22).SpringRK4Animator,Framer.LayerDraggable=__webpack_require__(28).LayerDraggable,Framer.Importer=__webpack_require__(54).Importer,Framer.Extras=__webpack_require__(55),Framer.GestureInputRecognizer=new(__webpack_require__(64).GestureInputRecognizer),Framer.Version=__webpack_require__(65),Framer.Loop=new Framer.AnimationLoop,Framer.Info={},window&&(window.Framer=Framer),Defaults=__webpack_require__(17).Defaults,Defaults.setup(),Framer.resetDefaults=Defaults.reset,Framer.DefaultContext=new Framer.Context({name:"Default"}),Framer.DefaultContext.backgroundColor="white",Framer.DefaultContext.visible=!1,Framer.CurrentContext=Framer.DefaultContext,window.Canvas=new(__webpack_require__(66).Canvas),Utils.isMobile()&&Framer.Extras.MobileScrollFix.enable(),Utils.isTouch()||Framer.Extras.TouchEmulator.enable(),Utils.isFramerStudio()||Framer.Extras.ErrorDisplay.enable(),Utils.isFramerStudio()||Framer.Extras.Preloader.enable(),Utils.isFramerStudio()||Framer.Extras.Hints.enable(),Framer.Preloader||(Framer.DefaultContext.visible=!0),Utils.domComplete(Framer.Loop.start)},function(module,exports,__webpack_require__){exports._=__webpack_require__(2),_.pluck=_.map},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;(function(global,module){(function(){function addMapEntry(map,pair){return map.set(pair[0],pair[1]),map}function addSetEntry(set,value){return set.add(value),set}function apply(func,thisArg,args){switch(args.length){case 0:return func.call(thisArg);case 1:return func.call(thisArg,args[0]);case 2:return func.call(thisArg,args[0],args[1]);case 3:return func.call(thisArg,args[0],args[1],args[2])}return func.apply(thisArg,args)}function arrayAggregator(array,setter,iteratee,accumulator){for(var index=-1,length=null==array?0:array.length;++index<length;){var value=array[index];setter(accumulator,value,iteratee(value),array)}return accumulator}function arrayEach(array,iteratee){for(var index=-1,length=null==array?0:array.length;++index<length&&iteratee(array[index],index,array)!==!1;);return array}function arrayEachRight(array,iteratee){for(var length=null==array?0:array.length;length--&&iteratee(array[length],length,array)!==!1;);return array}function arrayEvery(array,predicate){for(var index=-1,length=null==array?0:array.length;++index<length;)if(!predicate(array[index],index,array))return!1;return!0}function arrayFilter(array,predicate){for(var index=-1,length=null==array?0:array.length,resIndex=0,result=[];++index<length;){var value=array[index];predicate(value,index,array)&&(result[resIndex++]=value)}return result}function arrayIncludes(array,value){var length=null==array?0:array.length;return!!length&&baseIndexOf(array,value,0)>-1}function arrayIncludesWith(array,value,comparator){for(var index=-1,length=null==array?0:array.length;++index<length;)if(comparator(value,array[index]))return!0;return!1}function arrayMap(array,iteratee){for(var index=-1,length=null==array?0:array.length,result=Array(length);++index<length;)result[index]=iteratee(array[index],index,array);return result}function arrayPush(array,values){for(var index=-1,length=values.length,offset=array.length;++index<length;)array[offset+index]=values[index];return array}function arrayReduce(array,iteratee,accumulator,initAccum){var index=-1,length=null==array?0:array.length;for(initAccum&&length&&(accumulator=array[++index]);++index<length;)accumulator=iteratee(accumulator,array[index],index,array);return accumulator}function arrayReduceRight(array,iteratee,accumulator,initAccum){var length=null==array?0:array.length;for(initAccum&&length&&(accumulator=array[--length]);length--;)accumulator=iteratee(accumulator,array[length],length,array);return accumulator}function arraySome(array,predicate){for(var index=-1,length=null==array?0:array.length;++index<length;)if(predicate(array[index],index,array))return!0;return!1}function asciiToArray(string){return string.split("")}function asciiWords(string){return string.match(reAsciiWord)||[]}function baseFindKey(collection,predicate,eachFunc){var result;return eachFunc(collection,function(value,key,collection){if(predicate(value,key,collection))return result=key,!1}),result}function baseFindIndex(array,predicate,fromIndex,fromRight){for(var length=array.length,index=fromIndex+(fromRight?1:-1);fromRight?index--:++index<length;)if(predicate(array[index],index,array))return index;return-1}function baseIndexOf(array,value,fromIndex){return value===value?strictIndexOf(array,value,fromIndex):baseFindIndex(array,baseIsNaN,fromIndex)}function baseIndexOfWith(array,value,fromIndex,comparator){for(var index=fromIndex-1,length=array.length;++index<length;)if(comparator(array[index],value))return index;return-1}function baseIsNaN(value){return value!==value}function baseMean(array,iteratee){var length=null==array?0:array.length;return length?baseSum(array,iteratee)/length:NAN}function baseProperty(key){return function(object){return null==object?undefined:object[key]}}function basePropertyOf(object){return function(key){return null==object?undefined:object[key]}}function baseReduce(collection,iteratee,accumulator,initAccum,eachFunc){return eachFunc(collection,function(value,index,collection){accumulator=initAccum?(initAccum=!1,value):iteratee(accumulator,value,index,collection)}),accumulator}function baseSortBy(array,comparer){var length=array.length;for(array.sort(comparer);length--;)array[length]=array[length].value;return array}function baseSum(array,iteratee){for(var result,index=-1,length=array.length;++index<length;){var current=iteratee(array[index]);current!==undefined&&(result=result===undefined?current:result+current)}return result}function baseTimes(n,iteratee){for(var index=-1,result=Array(n);++index<n;)result[index]=iteratee(index);return result}function baseToPairs(object,props){return arrayMap(props,function(key){return[key,object[key]]})}function baseUnary(func){return function(value){return func(value)}}function baseValues(object,props){return arrayMap(props,function(key){return object[key]})}function cacheHas(cache,key){return cache.has(key)}function charsStartIndex(strSymbols,chrSymbols){for(var index=-1,length=strSymbols.length;++index<length&&baseIndexOf(chrSymbols,strSymbols[index],0)>-1;);return index}function charsEndIndex(strSymbols,chrSymbols){for(var index=strSymbols.length;index--&&baseIndexOf(chrSymbols,strSymbols[index],0)>-1;);return index}function countHolders(array,placeholder){for(var length=array.length,result=0;length--;)array[length]===placeholder&&++result;return result}function escapeStringChar(chr){return"\\"+stringEscapes[chr]}function getValue(object,key){return null==object?undefined:object[key]}function hasUnicode(string){return reHasUnicode.test(string)}function hasUnicodeWord(string){return reHasUnicodeWord.test(string)}function iteratorToArray(iterator){for(var data,result=[];!(data=iterator.next()).done;)result.push(data.value);return result}function mapToArray(map){var index=-1,result=Array(map.size);return map.forEach(function(value,key){result[++index]=[key,value]}),result}function overArg(func,transform){return function(arg){return func(transform(arg))}}function replaceHolders(array,placeholder){for(var index=-1,length=array.length,resIndex=0,result=[];++index<length;){var value=array[index];value!==placeholder&&value!==PLACEHOLDER||(array[index]=PLACEHOLDER,result[resIndex++]=index)}return result}function setToArray(set){var index=-1,result=Array(set.size);return set.forEach(function(value){result[++index]=value}),result}function setToPairs(set){var index=-1,result=Array(set.size);return set.forEach(function(value){result[++index]=[value,value]}),result}function strictIndexOf(array,value,fromIndex){for(var index=fromIndex-1,length=array.length;++index<length;)if(array[index]===value)return index;return-1}function strictLastIndexOf(array,value,fromIndex){for(var index=fromIndex+1;index--;)if(array[index]===value)return index;return index}function stringSize(string){return hasUnicode(string)?unicodeSize(string):asciiSize(string)}function stringToArray(string){return hasUnicode(string)?unicodeToArray(string):asciiToArray(string)}function unicodeSize(string){for(var result=reUnicode.lastIndex=0;reUnicode.test(string);)++result;return result}function unicodeToArray(string){return string.match(reUnicode)||[]}function unicodeWords(string){return string.match(reUnicodeWord)||[]}var undefined,VERSION="4.17.2",LARGE_ARRAY_SIZE=200,CORE_ERROR_TEXT="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",FUNC_ERROR_TEXT="Expected a function",HASH_UNDEFINED="__lodash_hash_undefined__",MAX_MEMOIZE_SIZE=500,PLACEHOLDER="__lodash_placeholder__",CLONE_DEEP_FLAG=1,CLONE_FLAT_FLAG=2,CLONE_SYMBOLS_FLAG=4,COMPARE_PARTIAL_FLAG=1,COMPARE_UNORDERED_FLAG=2,WRAP_BIND_FLAG=1,WRAP_BIND_KEY_FLAG=2,WRAP_CURRY_BOUND_FLAG=4,WRAP_CURRY_FLAG=8,WRAP_CURRY_RIGHT_FLAG=16,WRAP_PARTIAL_FLAG=32,WRAP_PARTIAL_RIGHT_FLAG=64,WRAP_ARY_FLAG=128,WRAP_REARG_FLAG=256,WRAP_FLIP_FLAG=512,DEFAULT_TRUNC_LENGTH=30,DEFAULT_TRUNC_OMISSION="...",HOT_COUNT=800,HOT_SPAN=16,LAZY_FILTER_FLAG=1,LAZY_MAP_FLAG=2,LAZY_WHILE_FLAG=3,INFINITY=1/0,MAX_SAFE_INTEGER=9007199254740991,MAX_INTEGER=1.7976931348623157e308,NAN=NaN,MAX_ARRAY_LENGTH=4294967295,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1,wrapFlags=[["ary",WRAP_ARY_FLAG],["bind",WRAP_BIND_FLAG],["bindKey",WRAP_BIND_KEY_FLAG],["curry",WRAP_CURRY_FLAG],["curryRight",WRAP_CURRY_RIGHT_FLAG],["flip",WRAP_FLIP_FLAG],["partial",WRAP_PARTIAL_FLAG],["partialRight",WRAP_PARTIAL_RIGHT_FLAG],["rearg",WRAP_REARG_FLAG]],argsTag="[object Arguments]",arrayTag="[object Array]",asyncTag="[object AsyncFunction]",boolTag="[object Boolean]",dateTag="[object Date]",domExcTag="[object DOMException]",errorTag="[object Error]",funcTag="[object Function]",genTag="[object GeneratorFunction]",mapTag="[object Map]",numberTag="[object Number]",nullTag="[object Null]",objectTag="[object Object]",promiseTag="[object Promise]",proxyTag="[object Proxy]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",symbolTag="[object Symbol]",undefinedTag="[object Undefined]",weakMapTag="[object WeakMap]",weakSetTag="[object WeakSet]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' \+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g,reEscapedHtml=/&(?:amp|lt|gt|quot|#39);/g,reUnescapedHtml=/[&<>"']/g,reHasEscapedHtml=RegExp(reEscapedHtml.source),reHasUnescapedHtml=RegExp(reUnescapedHtml.source),reEscape=/<%-([\s\S]+?)%>/g,reEvaluate=/<%([\s\S]+?)%>/g,reInterpolate=/<%=([\s\S]+?)%>/g,reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/,reLeadingDot=/^\./,rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reHasRegExpChar=RegExp(reRegExpChar.source),reTrim=/^\s+|\s+$/g,reTrimStart=/^\s+/,reTrimEnd=/\s+$/,reWrapComment=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,reWrapDetails=/\{\n\/\* \[wrapped with (.+)\] \*/,reSplitDetails=/,? & /,reAsciiWord=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,reEscapeChar=/\\(\\)?/g,reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,reFlags=/\w*$/,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsHostCtor=/^\[object .+?Constructor\]$/,reIsOctal=/^0o[0-7]+$/i,reIsUint=/^(?:0|[1-9]\d*)$/,reLatin=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,reNoMatch=/($^)/,reUnescapedString=/['\n\r\u2028\u2029\\]/g,rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsDingbatRange="\\u2700-\\u27bf",rsLowerRange="a-z\\xdf-\\xf6\\xf8-\\xff",rsMathOpRange="\\xac\\xb1\\xd7\\xf7",rsNonCharRange="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",rsPunctuationRange="\\u2000-\\u206f",rsSpaceRange=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",rsUpperRange="A-Z\\xc0-\\xd6\\xd8-\\xde",rsVarRange="\\ufe0e\\ufe0f",rsBreakRange=rsMathOpRange+rsNonCharRange+rsPunctuationRange+rsSpaceRange,rsApos="['’]",rsAstral="["+rsAstralRange+"]",rsBreak="["+rsBreakRange+"]",rsCombo="["+rsComboRange+"]",rsDigits="\\d+",rsDingbat="["+rsDingbatRange+"]",rsLower="["+rsLowerRange+"]",rsMisc="[^"+rsAstralRange+rsBreakRange+rsDigits+rsDingbatRange+rsLowerRange+rsUpperRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsUpper="["+rsUpperRange+"]",rsZWJ="\\u200d",rsMiscLower="(?:"+rsLower+"|"+rsMisc+")",rsMiscUpper="(?:"+rsUpper+"|"+rsMisc+")",rsOptContrLower="(?:"+rsApos+"(?:d|ll|m|re|s|t|ve))?",rsOptContrUpper="(?:"+rsApos+"(?:D|LL|M|RE|S|T|VE))?",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsOrdLower="\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)",rsOrdUpper="\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsEmoji="(?:"+[rsDingbat,rsRegional,rsSurrPair].join("|")+")"+rsSeq,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reApos=RegExp(rsApos,"g"),reComboMark=RegExp(rsCombo,"g"),reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g"),reUnicodeWord=RegExp([rsUpper+"?"+rsLower+"+"+rsOptContrLower+"(?="+[rsBreak,rsUpper,"$"].join("|")+")",rsMiscUpper+"+"+rsOptContrUpper+"(?="+[rsBreak,rsUpper+rsMiscLower,"$"].join("|")+")",rsUpper+"?"+rsMiscLower+"+"+rsOptContrLower,rsUpper+"+"+rsOptContrUpper,rsOrdUpper,rsOrdLower,rsDigits,rsEmoji].join("|"),"g"),reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboRange+rsVarRange+"]"),reHasUnicodeWord=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,contextProps=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],templateCounter=-1,typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[dataViewTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[mapTag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[setTag]=cloneableTags[stringTag]=cloneableTags[symbolTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[weakMapTag]=!1;var deburredLetters={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},htmlEscapes={"&":"&","<":"<",">":">",'"':""","'":"'"},htmlUnescapes={"&":"&","<":"<",">":">",""":'"',"'":"'"},stringEscapes={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},freeParseFloat=parseFloat,freeParseInt=parseInt,freeGlobal="object"==typeof global&&global&&global.Object===Object&&global,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")(),freeExports="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule=freeExports&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports=freeModule&&freeModule.exports===freeExports,freeProcess=moduleExports&&freeGlobal.process,nodeUtil=function(){try{return freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(e){}}(),nodeIsArrayBuffer=nodeUtil&&nodeUtil.isArrayBuffer,nodeIsDate=nodeUtil&&nodeUtil.isDate,nodeIsMap=nodeUtil&&nodeUtil.isMap,nodeIsRegExp=nodeUtil&&nodeUtil.isRegExp,nodeIsSet=nodeUtil&&nodeUtil.isSet,nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray,asciiSize=baseProperty("length"),deburrLetter=basePropertyOf(deburredLetters),escapeHtmlChar=basePropertyOf(htmlEscapes),unescapeHtmlChar=basePropertyOf(htmlUnescapes),runInContext=function runInContext(context){function lodash(value){if(isObjectLike(value)&&!isArray(value)&&!(value instanceof LazyWrapper)){if(value instanceof LodashWrapper)return value;if(hasOwnProperty.call(value,"__wrapped__"))return wrapperClone(value)}return new LodashWrapper(value)}function baseLodash(){}function LodashWrapper(value,chainAll){this.__wrapped__=value,this.__actions__=[],this.__chain__=!!chainAll,this.__index__=0,this.__values__=undefined}function LazyWrapper(value){this.__wrapped__=value,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=MAX_ARRAY_LENGTH,this.__views__=[]}function lazyClone(){var result=new LazyWrapper(this.__wrapped__);return result.__actions__=copyArray(this.__actions__),result.__dir__=this.__dir__,result.__filtered__=this.__filtered__,result.__iteratees__=copyArray(this.__iteratees__),result.__takeCount__=this.__takeCount__,result.__views__=copyArray(this.__views__),result}function lazyReverse(){if(this.__filtered__){var result=new LazyWrapper(this);result.__dir__=-1,result.__filtered__=!0}else result=this.clone(),result.__dir__*=-1;return result}function lazyValue(){var array=this.__wrapped__.value(),dir=this.__dir__,isArr=isArray(array),isRight=dir<0,arrLength=isArr?array.length:0,view=getView(0,arrLength,this.__views__),start=view.start,end=view.end,length=end-start,index=isRight?end:start-1,iteratees=this.__iteratees__,iterLength=iteratees.length,resIndex=0,takeCount=nativeMin(length,this.__takeCount__);if(!isArr||arrLength<LARGE_ARRAY_SIZE||arrLength==length&&takeCount==length)return baseWrapperValue(array,this.__actions__);var result=[];outer:for(;length--&&resIndex<takeCount;){index+=dir;for(var iterIndex=-1,value=array[index];++iterIndex<iterLength;){var data=iteratees[iterIndex],iteratee=data.iteratee,type=data.type,computed=iteratee(value);if(type==LAZY_MAP_FLAG)value=computed;else if(!computed){if(type==LAZY_FILTER_FLAG)continue outer;break outer}}result[resIndex++]=value}return result}function Hash(entries){var index=-1,length=null==entries?0:entries.length;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}function hashClear(){this.__data__=nativeCreate?nativeCreate(null):{},this.size=0}function hashDelete(key){var result=this.has(key)&&delete this.__data__[key];return this.size-=result?1:0,result}function hashGet(key){var data=this.__data__;if(nativeCreate){var result=data[key];return result===HASH_UNDEFINED?undefined:result}return hasOwnProperty.call(data,key)?data[key]:undefined}function hashHas(key){var data=this.__data__;return nativeCreate?data[key]!==undefined:hasOwnProperty.call(data,key)}function hashSet(key,value){var data=this.__data__;return this.size+=this.has(key)?0:1,data[key]=nativeCreate&&value===undefined?HASH_UNDEFINED:value,this}function ListCache(entries){var index=-1,length=null==entries?0:entries.length;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}function listCacheClear(){this.__data__=[],this.size=0}function listCacheDelete(key){var data=this.__data__,index=assocIndexOf(data,key);if(index<0)return!1;var lastIndex=data.length-1;return index==lastIndex?data.pop():splice.call(data,index,1),--this.size,!0}function listCacheGet(key){var data=this.__data__,index=assocIndexOf(data,key);return index<0?undefined:data[index][1]}function listCacheHas(key){return assocIndexOf(this.__data__,key)>-1}function listCacheSet(key,value){var data=this.__data__,index=assocIndexOf(data,key);return index<0?(++this.size,data.push([key,value])):data[index][1]=value,this}function MapCache(entries){var index=-1,length=null==entries?0:entries.length;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}function mapCacheClear(){this.size=0,this.__data__={hash:new Hash,map:new(Map||ListCache),string:new Hash}}function mapCacheDelete(key){var result=getMapData(this,key).delete(key);return this.size-=result?1:0,result}function mapCacheGet(key){return getMapData(this,key).get(key)}function mapCacheHas(key){return getMapData(this,key).has(key)}function mapCacheSet(key,value){var data=getMapData(this,key),size=data.size;return data.set(key,value),this.size+=data.size==size?0:1,this}function SetCache(values){var index=-1,length=null==values?0:values.length;for(this.__data__=new MapCache;++index<length;)this.add(values[index])}function setCacheAdd(value){return this.__data__.set(value,HASH_UNDEFINED),this}function setCacheHas(value){return this.__data__.has(value)}function Stack(entries){var data=this.__data__=new ListCache(entries);this.size=data.size}function stackClear(){this.__data__=new ListCache,this.size=0}function stackDelete(key){var data=this.__data__,result=data.delete(key);return this.size=data.size,result}function stackGet(key){return this.__data__.get(key)}function stackHas(key){return this.__data__.has(key)}function stackSet(key,value){var data=this.__data__;if(data instanceof ListCache){var pairs=data.__data__;if(!Map||pairs.length<LARGE_ARRAY_SIZE-1)return pairs.push([key,value]),this.size=++data.size,this;data=this.__data__=new MapCache(pairs)}return data.set(key,value),this.size=data.size,this}function arrayLikeKeys(value,inherited){var isArr=isArray(value),isArg=!isArr&&isArguments(value),isBuff=!isArr&&!isArg&&isBuffer(value),isType=!isArr&&!isArg&&!isBuff&&isTypedArray(value),skipIndexes=isArr||isArg||isBuff||isType,result=skipIndexes?baseTimes(value.length,String):[],length=result.length;for(var key in value)!inherited&&!hasOwnProperty.call(value,key)||skipIndexes&&("length"==key||isBuff&&("offset"==key||"parent"==key)||isType&&("buffer"==key||"byteLength"==key||"byteOffset"==key)||isIndex(key,length))||result.push(key);return result}function arraySample(array){var length=array.length;return length?array[baseRandom(0,length-1)]:undefined}function arraySampleSize(array,n){return shuffleSelf(copyArray(array),baseClamp(n,0,array.length))}function arrayShuffle(array){return shuffleSelf(copyArray(array))}function assignInDefaults(objValue,srcValue,key,object){return objValue===undefined||eq(objValue,objectProto[key])&&!hasOwnProperty.call(object,key)?srcValue:objValue}function assignMergeValue(object,key,value){(value===undefined||eq(object[key],value))&&(value!==undefined||key in object)||baseAssignValue(object,key,value)}function assignValue(object,key,value){var objValue=object[key];hasOwnProperty.call(object,key)&&eq(objValue,value)&&(value!==undefined||key in object)||baseAssignValue(object,key,value)}function assocIndexOf(array,key){for(var length=array.length;length--;)if(eq(array[length][0],key))return length;return-1}function baseAggregator(collection,setter,iteratee,accumulator){return baseEach(collection,function(value,key,collection){setter(accumulator,value,iteratee(value),collection)}),accumulator}function baseAssign(object,source){return object&©Object(source,keys(source),object)}function baseAssignIn(object,source){return object&©Object(source,keysIn(source),object)}function baseAssignValue(object,key,value){"__proto__"==key&&defineProperty?defineProperty(object,key,{configurable:!0,enumerable:!0,value:value,writable:!0}):object[key]=value}function baseAt(object,paths){for(var index=-1,length=paths.length,result=Array(length),skip=null==object;++index<length;)result[index]=skip?undefined:get(object,paths[index]);return result}function baseClamp(number,lower,upper){return number===number&&(upper!==undefined&&(number=number<=upper?number:upper),lower!==undefined&&(number=number>=lower?number:lower)),number}function baseClone(value,bitmask,customizer,key,object,stack){var result,isDeep=bitmask&CLONE_DEEP_FLAG,isFlat=bitmask&CLONE_FLAT_FLAG,isFull=bitmask&CLONE_SYMBOLS_FLAG;if(customizer&&(result=object?customizer(value,key,object,stack):customizer(value)),result!==undefined)return result;if(!isObject(value))return value;var isArr=isArray(value);if(isArr){if(result=initCloneArray(value),!isDeep)return copyArray(value,result)}else{var tag=getTag(value),isFunc=tag==funcTag||tag==genTag;if(isBuffer(value))return cloneBuffer(value,isDeep);if(tag==objectTag||tag==argsTag||isFunc&&!object){if(result=isFlat||isFunc?{}:initCloneObject(value),!isDeep)return isFlat?copySymbolsIn(value,baseAssignIn(result,value)):copySymbols(value,baseAssign(result,value))}else{if(!cloneableTags[tag])return object?value:{};result=initCloneByTag(value,tag,baseClone,isDeep)}}stack||(stack=new Stack);var stacked=stack.get(value);if(stacked)return stacked;stack.set(value,result);var keysFunc=isFull?isFlat?getAllKeysIn:getAllKeys:isFlat?keysIn:keys,props=isArr?undefined:keysFunc(value);return arrayEach(props||value,function(subValue,key){props&&(key=subValue,subValue=value[key]),assignValue(result,key,baseClone(subValue,bitmask,customizer,key,value,stack))}),result}function baseConforms(source){var props=keys(source);return function(object){return baseConformsTo(object,source,props)}}function baseConformsTo(object,source,props){var length=props.length;if(null==object)return!length;for(object=Object(object);length--;){var key=props[length],predicate=source[key],value=object[key];if(value===undefined&&!(key in object)||!predicate(value))return!1}return!0}function baseDelay(func,wait,args){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return setTimeout(function(){func.apply(undefined,args)},wait)}function baseDifference(array,values,iteratee,comparator){var index=-1,includes=arrayIncludes,isCommon=!0,length=array.length,result=[],valuesLength=values.length;if(!length)return result;iteratee&&(values=arrayMap(values,baseUnary(iteratee))),comparator?(includes=arrayIncludesWith,isCommon=!1):values.length>=LARGE_ARRAY_SIZE&&(includes=cacheHas,isCommon=!1,values=new SetCache(values));outer:for(;++index<length;){var value=array[index],computed=null==iteratee?value:iteratee(value);if(value=comparator||0!==value?value:0,isCommon&&computed===computed){for(var valuesIndex=valuesLength;valuesIndex--;)if(values[valuesIndex]===computed)continue outer;result.push(value)}else includes(values,computed,comparator)||result.push(value)}return result}function baseEvery(collection,predicate){var result=!0;return baseEach(collection,function(value,index,collection){return result=!!predicate(value,index,collection)}),result}function baseExtremum(array,iteratee,comparator){for(var index=-1,length=array.length;++index<length;){var value=array[index],current=iteratee(value);if(null!=current&&(computed===undefined?current===current&&!isSymbol(current):comparator(current,computed)))var computed=current,result=value}return result}function baseFill(array,value,start,end){var length=array.length;for(start=toInteger(start),start<0&&(start=-start>length?0:length+start), | |
end=end===undefined||end>length?length:toInteger(end),end<0&&(end+=length),end=start>end?0:toLength(end);start<end;)array[start++]=value;return array}function baseFilter(collection,predicate){var result=[];return baseEach(collection,function(value,index,collection){predicate(value,index,collection)&&result.push(value)}),result}function baseFlatten(array,depth,predicate,isStrict,result){var index=-1,length=array.length;for(predicate||(predicate=isFlattenable),result||(result=[]);++index<length;){var value=array[index];depth>0&&predicate(value)?depth>1?baseFlatten(value,depth-1,predicate,isStrict,result):arrayPush(result,value):isStrict||(result[result.length]=value)}return result}function baseForOwn(object,iteratee){return object&&baseFor(object,iteratee,keys)}function baseForOwnRight(object,iteratee){return object&&baseForRight(object,iteratee,keys)}function baseFunctions(object,props){return arrayFilter(props,function(key){return isFunction(object[key])})}function baseGet(object,path){path=castPath(path,object);for(var index=0,length=path.length;null!=object&&index<length;)object=object[toKey(path[index++])];return index&&index==length?object:undefined}function baseGetAllKeys(object,keysFunc,symbolsFunc){var result=keysFunc(object);return isArray(object)?result:arrayPush(result,symbolsFunc(object))}function baseGetTag(value){return null==value?value===undefined?undefinedTag:nullTag:(value=Object(value),symToStringTag&&symToStringTag in value?getRawTag(value):objectToString(value))}function baseGt(value,other){return value>other}function baseHas(object,key){return null!=object&&hasOwnProperty.call(object,key)}function baseHasIn(object,key){return null!=object&&key in Object(object)}function baseInRange(number,start,end){return number>=nativeMin(start,end)&&number<nativeMax(start,end)}function baseIntersection(arrays,iteratee,comparator){for(var includes=comparator?arrayIncludesWith:arrayIncludes,length=arrays[0].length,othLength=arrays.length,othIndex=othLength,caches=Array(othLength),maxLength=1/0,result=[];othIndex--;){var array=arrays[othIndex];othIndex&&iteratee&&(array=arrayMap(array,baseUnary(iteratee))),maxLength=nativeMin(array.length,maxLength),caches[othIndex]=!comparator&&(iteratee||length>=120&&array.length>=120)?new SetCache(othIndex&&array):undefined}array=arrays[0];var index=-1,seen=caches[0];outer:for(;++index<length&&result.length<maxLength;){var value=array[index],computed=iteratee?iteratee(value):value;if(value=comparator||0!==value?value:0,!(seen?cacheHas(seen,computed):includes(result,computed,comparator))){for(othIndex=othLength;--othIndex;){var cache=caches[othIndex];if(!(cache?cacheHas(cache,computed):includes(arrays[othIndex],computed,comparator)))continue outer}seen&&seen.push(computed),result.push(value)}}return result}function baseInverter(object,setter,iteratee,accumulator){return baseForOwn(object,function(value,key,object){setter(accumulator,iteratee(value),key,object)}),accumulator}function baseInvoke(object,path,args){path=castPath(path,object),object=parent(object,path);var func=null==object?object:object[toKey(last(path))];return null==func?undefined:apply(func,object,args)}function baseIsArguments(value){return isObjectLike(value)&&baseGetTag(value)==argsTag}function baseIsArrayBuffer(value){return isObjectLike(value)&&baseGetTag(value)==arrayBufferTag}function baseIsDate(value){return isObjectLike(value)&&baseGetTag(value)==dateTag}function baseIsEqual(value,other,bitmask,customizer,stack){return value===other||(null==value||null==other||!isObject(value)&&!isObjectLike(other)?value!==value&&other!==other:baseIsEqualDeep(value,other,bitmask,customizer,baseIsEqual,stack))}function baseIsEqualDeep(object,other,bitmask,customizer,equalFunc,stack){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=arrayTag,othTag=arrayTag;objIsArr||(objTag=getTag(object),objTag=objTag==argsTag?objectTag:objTag),othIsArr||(othTag=getTag(other),othTag=othTag==argsTag?objectTag:othTag);var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&isBuffer(object)){if(!isBuffer(other))return!1;objIsArr=!0,objIsObj=!1}if(isSameTag&&!objIsObj)return stack||(stack=new Stack),objIsArr||isTypedArray(object)?equalArrays(object,other,bitmask,customizer,equalFunc,stack):equalByTag(object,other,objTag,bitmask,customizer,equalFunc,stack);if(!(bitmask&COMPARE_PARTIAL_FLAG)){var objIsWrapped=objIsObj&&hasOwnProperty.call(object,"__wrapped__"),othIsWrapped=othIsObj&&hasOwnProperty.call(other,"__wrapped__");if(objIsWrapped||othIsWrapped){var objUnwrapped=objIsWrapped?object.value():object,othUnwrapped=othIsWrapped?other.value():other;return stack||(stack=new Stack),equalFunc(objUnwrapped,othUnwrapped,bitmask,customizer,stack)}}return!!isSameTag&&(stack||(stack=new Stack),equalObjects(object,other,bitmask,customizer,equalFunc,stack))}function baseIsMap(value){return isObjectLike(value)&&getTag(value)==mapTag}function baseIsMatch(object,source,matchData,customizer){var index=matchData.length,length=index,noCustomizer=!customizer;if(null==object)return!length;for(object=Object(object);index--;){var data=matchData[index];if(noCustomizer&&data[2]?data[1]!==object[data[0]]:!(data[0]in object))return!1}for(;++index<length;){data=matchData[index];var key=data[0],objValue=object[key],srcValue=data[1];if(noCustomizer&&data[2]){if(objValue===undefined&&!(key in object))return!1}else{var stack=new Stack;if(customizer)var result=customizer(objValue,srcValue,key,object,source,stack);if(!(result===undefined?baseIsEqual(srcValue,objValue,COMPARE_PARTIAL_FLAG|COMPARE_UNORDERED_FLAG,customizer,stack):result))return!1}}return!0}function baseIsNative(value){if(!isObject(value)||isMasked(value))return!1;var pattern=isFunction(value)?reIsNative:reIsHostCtor;return pattern.test(toSource(value))}function baseIsRegExp(value){return isObjectLike(value)&&baseGetTag(value)==regexpTag}function baseIsSet(value){return isObjectLike(value)&&getTag(value)==setTag}function baseIsTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[baseGetTag(value)]}function baseIteratee(value){return"function"==typeof value?value:null==value?identity:"object"==typeof value?isArray(value)?baseMatchesProperty(value[0],value[1]):baseMatches(value):property(value)}function baseKeys(object){if(!isPrototype(object))return nativeKeys(object);var result=[];for(var key in Object(object))hasOwnProperty.call(object,key)&&"constructor"!=key&&result.push(key);return result}function baseKeysIn(object){if(!isObject(object))return nativeKeysIn(object);var isProto=isPrototype(object),result=[];for(var key in object)("constructor"!=key||!isProto&&hasOwnProperty.call(object,key))&&result.push(key);return result}function baseLt(value,other){return value<other}function baseMap(collection,iteratee){var index=-1,result=isArrayLike(collection)?Array(collection.length):[];return baseEach(collection,function(value,key,collection){result[++index]=iteratee(value,key,collection)}),result}function baseMatches(source){var matchData=getMatchData(source);return 1==matchData.length&&matchData[0][2]?matchesStrictComparable(matchData[0][0],matchData[0][1]):function(object){return object===source||baseIsMatch(object,source,matchData)}}function baseMatchesProperty(path,srcValue){return isKey(path)&&isStrictComparable(srcValue)?matchesStrictComparable(toKey(path),srcValue):function(object){var objValue=get(object,path);return objValue===undefined&&objValue===srcValue?hasIn(object,path):baseIsEqual(srcValue,objValue,COMPARE_PARTIAL_FLAG|COMPARE_UNORDERED_FLAG)}}function baseMerge(object,source,srcIndex,customizer,stack){object!==source&&baseFor(source,function(srcValue,key){if(isObject(srcValue))stack||(stack=new Stack),baseMergeDeep(object,source,key,srcIndex,baseMerge,customizer,stack);else{var newValue=customizer?customizer(object[key],srcValue,key+"",object,source,stack):undefined;newValue===undefined&&(newValue=srcValue),assignMergeValue(object,key,newValue)}},keysIn)}function baseMergeDeep(object,source,key,srcIndex,mergeFunc,customizer,stack){var objValue=object[key],srcValue=source[key],stacked=stack.get(srcValue);if(stacked)return void assignMergeValue(object,key,stacked);var newValue=customizer?customizer(objValue,srcValue,key+"",object,source,stack):undefined,isCommon=newValue===undefined;if(isCommon){var isArr=isArray(srcValue),isBuff=!isArr&&isBuffer(srcValue),isTyped=!isArr&&!isBuff&&isTypedArray(srcValue);newValue=srcValue,isArr||isBuff||isTyped?isArray(objValue)?newValue=objValue:isArrayLikeObject(objValue)?newValue=copyArray(objValue):isBuff?(isCommon=!1,newValue=cloneBuffer(srcValue,!0)):isTyped?(isCommon=!1,newValue=cloneTypedArray(srcValue,!0)):newValue=[]:isPlainObject(srcValue)||isArguments(srcValue)?(newValue=objValue,isArguments(objValue)?newValue=toPlainObject(objValue):(!isObject(objValue)||srcIndex&&isFunction(objValue))&&(newValue=initCloneObject(srcValue))):isCommon=!1}isCommon&&(stack.set(srcValue,newValue),mergeFunc(newValue,srcValue,srcIndex,customizer,stack),stack.delete(srcValue)),assignMergeValue(object,key,newValue)}function baseNth(array,n){var length=array.length;if(length)return n+=n<0?length:0,isIndex(n,length)?array[n]:undefined}function baseOrderBy(collection,iteratees,orders){var index=-1;iteratees=arrayMap(iteratees.length?iteratees:[identity],baseUnary(getIteratee()));var result=baseMap(collection,function(value,key,collection){var criteria=arrayMap(iteratees,function(iteratee){return iteratee(value)});return{criteria:criteria,index:++index,value:value}});return baseSortBy(result,function(object,other){return compareMultiple(object,other,orders)})}function basePick(object,paths){return object=Object(object),basePickBy(object,paths,function(value,path){return hasIn(object,path)})}function basePickBy(object,paths,predicate){for(var index=-1,length=paths.length,result={};++index<length;){var path=paths[index],value=baseGet(object,path);predicate(value,path)&&baseSet(result,castPath(path,object),value)}return result}function basePropertyDeep(path){return function(object){return baseGet(object,path)}}function basePullAll(array,values,iteratee,comparator){var indexOf=comparator?baseIndexOfWith:baseIndexOf,index=-1,length=values.length,seen=array;for(array===values&&(values=copyArray(values)),iteratee&&(seen=arrayMap(array,baseUnary(iteratee)));++index<length;)for(var fromIndex=0,value=values[index],computed=iteratee?iteratee(value):value;(fromIndex=indexOf(seen,computed,fromIndex,comparator))>-1;)seen!==array&&splice.call(seen,fromIndex,1),splice.call(array,fromIndex,1);return array}function basePullAt(array,indexes){for(var length=array?indexes.length:0,lastIndex=length-1;length--;){var index=indexes[length];if(length==lastIndex||index!==previous){var previous=index;isIndex(index)?splice.call(array,index,1):baseUnset(array,index)}}return array}function baseRandom(lower,upper){return lower+nativeFloor(nativeRandom()*(upper-lower+1))}function baseRange(start,end,step,fromRight){for(var index=-1,length=nativeMax(nativeCeil((end-start)/(step||1)),0),result=Array(length);length--;)result[fromRight?length:++index]=start,start+=step;return result}function baseRepeat(string,n){var result="";if(!string||n<1||n>MAX_SAFE_INTEGER)return result;do n%2&&(result+=string),n=nativeFloor(n/2),n&&(string+=string);while(n);return result}function baseRest(func,start){return setToString(overRest(func,start,identity),func+"")}function baseSample(collection){return arraySample(values(collection))}function baseSampleSize(collection,n){var array=values(collection);return shuffleSelf(array,baseClamp(n,0,array.length))}function baseSet(object,path,value,customizer){if(!isObject(object))return object;path=castPath(path,object);for(var index=-1,length=path.length,lastIndex=length-1,nested=object;null!=nested&&++index<length;){var key=toKey(path[index]),newValue=value;if(index!=lastIndex){var objValue=nested[key];newValue=customizer?customizer(objValue,key,nested):undefined,newValue===undefined&&(newValue=isObject(objValue)?objValue:isIndex(path[index+1])?[]:{})}assignValue(nested,key,newValue),nested=nested[key]}return object}function baseShuffle(collection){return shuffleSelf(values(collection))}function baseSlice(array,start,end){var index=-1,length=array.length;start<0&&(start=-start>length?0:length+start),end=end>length?length:end,end<0&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result=Array(length);++index<length;)result[index]=array[index+start];return result}function baseSome(collection,predicate){var result;return baseEach(collection,function(value,index,collection){return result=predicate(value,index,collection),!result}),!!result}function baseSortedIndex(array,value,retHighest){var low=0,high=null==array?low:array.length;if("number"==typeof value&&value===value&&high<=HALF_MAX_ARRAY_LENGTH){for(;low<high;){var mid=low+high>>>1,computed=array[mid];null!==computed&&!isSymbol(computed)&&(retHighest?computed<=value:computed<value)?low=mid+1:high=mid}return high}return baseSortedIndexBy(array,value,identity,retHighest)}function baseSortedIndexBy(array,value,iteratee,retHighest){value=iteratee(value);for(var low=0,high=null==array?0:array.length,valIsNaN=value!==value,valIsNull=null===value,valIsSymbol=isSymbol(value),valIsUndefined=value===undefined;low<high;){var mid=nativeFloor((low+high)/2),computed=iteratee(array[mid]),othIsDefined=computed!==undefined,othIsNull=null===computed,othIsReflexive=computed===computed,othIsSymbol=isSymbol(computed);if(valIsNaN)var setLow=retHighest||othIsReflexive;else setLow=valIsUndefined?othIsReflexive&&(retHighest||othIsDefined):valIsNull?othIsReflexive&&othIsDefined&&(retHighest||!othIsNull):valIsSymbol?othIsReflexive&&othIsDefined&&!othIsNull&&(retHighest||!othIsSymbol):!othIsNull&&!othIsSymbol&&(retHighest?computed<=value:computed<value);setLow?low=mid+1:high=mid}return nativeMin(high,MAX_ARRAY_INDEX)}function baseSortedUniq(array,iteratee){for(var index=-1,length=array.length,resIndex=0,result=[];++index<length;){var value=array[index],computed=iteratee?iteratee(value):value;if(!index||!eq(computed,seen)){var seen=computed;result[resIndex++]=0===value?0:value}}return result}function baseToNumber(value){return"number"==typeof value?value:isSymbol(value)?NAN:+value}function baseToString(value){if("string"==typeof value)return value;if(isArray(value))return arrayMap(value,baseToString)+"";if(isSymbol(value))return symbolToString?symbolToString.call(value):"";var result=value+"";return"0"==result&&1/value==-INFINITY?"-0":result}function baseUniq(array,iteratee,comparator){var index=-1,includes=arrayIncludes,length=array.length,isCommon=!0,result=[],seen=result;if(comparator)isCommon=!1,includes=arrayIncludesWith;else if(length>=LARGE_ARRAY_SIZE){var set=iteratee?null:createSet(array);if(set)return setToArray(set);isCommon=!1,includes=cacheHas,seen=new SetCache}else seen=iteratee?[]:result;outer:for(;++index<length;){var value=array[index],computed=iteratee?iteratee(value):value;if(value=comparator||0!==value?value:0,isCommon&&computed===computed){for(var seenIndex=seen.length;seenIndex--;)if(seen[seenIndex]===computed)continue outer;iteratee&&seen.push(computed),result.push(value)}else includes(seen,computed,comparator)||(seen!==result&&seen.push(computed),result.push(value))}return result}function baseUnset(object,path){return path=castPath(path,object),object=parent(object,path),null==object||delete object[toKey(last(path))]}function baseUpdate(object,path,updater,customizer){return baseSet(object,path,updater(baseGet(object,path)),customizer)}function baseWhile(array,predicate,isDrop,fromRight){for(var length=array.length,index=fromRight?length:-1;(fromRight?index--:++index<length)&&predicate(array[index],index,array););return isDrop?baseSlice(array,fromRight?0:index,fromRight?index+1:length):baseSlice(array,fromRight?index+1:0,fromRight?length:index)}function baseWrapperValue(value,actions){var result=value;return result instanceof LazyWrapper&&(result=result.value()),arrayReduce(actions,function(result,action){return action.func.apply(action.thisArg,arrayPush([result],action.args))},result)}function baseXor(arrays,iteratee,comparator){var length=arrays.length;if(length<2)return length?baseUniq(arrays[0]):[];for(var index=-1,result=Array(length);++index<length;)for(var array=arrays[index],othIndex=-1;++othIndex<length;)othIndex!=index&&(result[index]=baseDifference(result[index]||array,arrays[othIndex],iteratee,comparator));return baseUniq(baseFlatten(result,1),iteratee,comparator)}function baseZipObject(props,values,assignFunc){for(var index=-1,length=props.length,valsLength=values.length,result={};++index<length;){var value=index<valsLength?values[index]:undefined;assignFunc(result,props[index],value)}return result}function castArrayLikeObject(value){return isArrayLikeObject(value)?value:[]}function castFunction(value){return"function"==typeof value?value:identity}function castPath(value,object){return isArray(value)?value:isKey(value,object)?[value]:stringToPath(toString(value))}function castSlice(array,start,end){var length=array.length;return end=end===undefined?length:end,!start&&end>=length?array:baseSlice(array,start,end)}function cloneBuffer(buffer,isDeep){if(isDeep)return buffer.slice();var length=buffer.length,result=allocUnsafe?allocUnsafe(length):new buffer.constructor(length);return buffer.copy(result),result}function cloneArrayBuffer(arrayBuffer){var result=new arrayBuffer.constructor(arrayBuffer.byteLength);return new Uint8Array(result).set(new Uint8Array(arrayBuffer)),result}function cloneDataView(dataView,isDeep){var buffer=isDeep?cloneArrayBuffer(dataView.buffer):dataView.buffer;return new dataView.constructor(buffer,dataView.byteOffset,dataView.byteLength)}function cloneMap(map,isDeep,cloneFunc){var array=isDeep?cloneFunc(mapToArray(map),CLONE_DEEP_FLAG):mapToArray(map);return arrayReduce(array,addMapEntry,new map.constructor)}function cloneRegExp(regexp){var result=new regexp.constructor(regexp.source,reFlags.exec(regexp));return result.lastIndex=regexp.lastIndex,result}function cloneSet(set,isDeep,cloneFunc){var array=isDeep?cloneFunc(setToArray(set),CLONE_DEEP_FLAG):setToArray(set);return arrayReduce(array,addSetEntry,new set.constructor)}function cloneSymbol(symbol){return symbolValueOf?Object(symbolValueOf.call(symbol)):{}}function cloneTypedArray(typedArray,isDeep){var buffer=isDeep?cloneArrayBuffer(typedArray.buffer):typedArray.buffer;return new typedArray.constructor(buffer,typedArray.byteOffset,typedArray.length)}function compareAscending(value,other){if(value!==other){var valIsDefined=value!==undefined,valIsNull=null===value,valIsReflexive=value===value,valIsSymbol=isSymbol(value),othIsDefined=other!==undefined,othIsNull=null===other,othIsReflexive=other===other,othIsSymbol=isSymbol(other);if(!othIsNull&&!othIsSymbol&&!valIsSymbol&&value>other||valIsSymbol&&othIsDefined&&othIsReflexive&&!othIsNull&&!othIsSymbol||valIsNull&&othIsDefined&&othIsReflexive||!valIsDefined&&othIsReflexive||!valIsReflexive)return 1;if(!valIsNull&&!valIsSymbol&&!othIsSymbol&&value<other||othIsSymbol&&valIsDefined&&valIsReflexive&&!valIsNull&&!valIsSymbol||othIsNull&&valIsDefined&&valIsReflexive||!othIsDefined&&valIsReflexive||!othIsReflexive)return-1}return 0}function compareMultiple(object,other,orders){for(var index=-1,objCriteria=object.criteria,othCriteria=other.criteria,length=objCriteria.length,ordersLength=orders.length;++index<length;){var result=compareAscending(objCriteria[index],othCriteria[index]);if(result){if(index>=ordersLength)return result;var order=orders[index];return result*("desc"==order?-1:1)}}return object.index-other.index}function composeArgs(args,partials,holders,isCurried){for(var argsIndex=-1,argsLength=args.length,holdersLength=holders.length,leftIndex=-1,leftLength=partials.length,rangeLength=nativeMax(argsLength-holdersLength,0),result=Array(leftLength+rangeLength),isUncurried=!isCurried;++leftIndex<leftLength;)result[leftIndex]=partials[leftIndex];for(;++argsIndex<holdersLength;)(isUncurried||argsIndex<argsLength)&&(result[holders[argsIndex]]=args[argsIndex]);for(;rangeLength--;)result[leftIndex++]=args[argsIndex++];return result}function composeArgsRight(args,partials,holders,isCurried){for(var argsIndex=-1,argsLength=args.length,holdersIndex=-1,holdersLength=holders.length,rightIndex=-1,rightLength=partials.length,rangeLength=nativeMax(argsLength-holdersLength,0),result=Array(rangeLength+rightLength),isUncurried=!isCurried;++argsIndex<rangeLength;)result[argsIndex]=args[argsIndex];for(var offset=argsIndex;++rightIndex<rightLength;)result[offset+rightIndex]=partials[rightIndex];for(;++holdersIndex<holdersLength;)(isUncurried||argsIndex<argsLength)&&(result[offset+holders[holdersIndex]]=args[argsIndex++]);return result}function copyArray(source,array){var index=-1,length=source.length;for(array||(array=Array(length));++index<length;)array[index]=source[index];return array}function copyObject(source,props,object,customizer){var isNew=!object;object||(object={});for(var index=-1,length=props.length;++index<length;){var key=props[index],newValue=customizer?customizer(object[key],source[key],key,object,source):undefined;newValue===undefined&&(newValue=source[key]),isNew?baseAssignValue(object,key,newValue):assignValue(object,key,newValue)}return object}function copySymbols(source,object){return copyObject(source,getSymbols(source),object)}function copySymbolsIn(source,object){return copyObject(source,getSymbolsIn(source),object)}function createAggregator(setter,initializer){return function(collection,iteratee){var func=isArray(collection)?arrayAggregator:baseAggregator,accumulator=initializer?initializer():{};return func(collection,setter,getIteratee(iteratee,2),accumulator)}}function createAssigner(assigner){return baseRest(function(object,sources){var index=-1,length=sources.length,customizer=length>1?sources[length-1]:undefined,guard=length>2?sources[2]:undefined;for(customizer=assigner.length>3&&"function"==typeof customizer?(length--,customizer):undefined,guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=length<3?undefined:customizer,length=1),object=Object(object);++index<length;){var source=sources[index];source&&assigner(object,source,index,customizer)}return object})}function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){if(null==collection)return collection;if(!isArrayLike(collection))return eachFunc(collection,iteratee);for(var length=collection.length,index=fromRight?length:-1,iterable=Object(collection);(fromRight?index--:++index<length)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var index=-1,iterable=Object(object),props=keysFunc(object),length=props.length;length--;){var key=props[fromRight?length:++index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}function createBind(func,bitmask,thisArg){function wrapper(){var fn=this&&this!==root&&this instanceof wrapper?Ctor:func;return fn.apply(isBind?thisArg:this,arguments)}var isBind=bitmask&WRAP_BIND_FLAG,Ctor=createCtor(func);return wrapper}function createCaseFirst(methodName){return function(string){string=toString(string);var strSymbols=hasUnicode(string)?stringToArray(string):undefined,chr=strSymbols?strSymbols[0]:string.charAt(0),trailing=strSymbols?castSlice(strSymbols,1).join(""):string.slice(1);return chr[methodName]()+trailing}}function createCompounder(callback){return function(string){return arrayReduce(words(deburr(string).replace(reApos,"")),callback,"")}}function createCtor(Ctor){return function(){var args=arguments;switch(args.length){case 0:return new Ctor;case 1:return new Ctor(args[0]);case 2:return new Ctor(args[0],args[1]);case 3:return new Ctor(args[0],args[1],args[2]);case 4:return new Ctor(args[0],args[1],args[2],args[3]);case 5:return new Ctor(args[0],args[1],args[2],args[3],args[4]);case 6:return new Ctor(args[0],args[1],args[2],args[3],args[4],args[5]);case 7:return new Ctor(args[0],args[1],args[2],args[3],args[4],args[5],args[6])}var thisBinding=baseCreate(Ctor.prototype),result=Ctor.apply(thisBinding,args);return isObject(result)?result:thisBinding}}function createCurry(func,bitmask,arity){function wrapper(){for(var length=arguments.length,args=Array(length),index=length,placeholder=getHolder(wrapper);index--;)args[index]=arguments[index];var holders=length<3&&args[0]!==placeholder&&args[length-1]!==placeholder?[]:replaceHolders(args,placeholder);if(length-=holders.length,length<arity)return createRecurry(func,bitmask,createHybrid,wrapper.placeholder,undefined,args,holders,undefined,undefined,arity-length);var fn=this&&this!==root&&this instanceof wrapper?Ctor:func;return apply(fn,this,args)}var Ctor=createCtor(func);return wrapper}function createFind(findIndexFunc){return function(collection,predicate,fromIndex){var iterable=Object(collection);if(!isArrayLike(collection)){var iteratee=getIteratee(predicate,3);collection=keys(collection),predicate=function(key){return iteratee(iterable[key],key,iterable)}}var index=findIndexFunc(collection,predicate,fromIndex);return index>-1?iterable[iteratee?collection[index]:index]:undefined}}function createFlow(fromRight){return flatRest(function(funcs){var length=funcs.length,index=length,prereq=LodashWrapper.prototype.thru;for(fromRight&&funcs.reverse();index--;){var func=funcs[index];if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);if(prereq&&!wrapper&&"wrapper"==getFuncName(func))var wrapper=new LodashWrapper([],!0)}for(index=wrapper?index:length;++index<length;){func=funcs[index];var funcName=getFuncName(func),data="wrapper"==funcName?getData(func):undefined;wrapper=data&&isLaziable(data[0])&&data[1]==(WRAP_ARY_FLAG|WRAP_CURRY_FLAG|WRAP_PARTIAL_FLAG|WRAP_REARG_FLAG)&&!data[4].length&&1==data[9]?wrapper[getFuncName(data[0])].apply(wrapper,data[3]):1==func.length&&isLaziable(func)?wrapper[funcName]():wrapper.thru(func)}return function(){var args=arguments,value=args[0];if(wrapper&&1==args.length&&isArray(value)&&value.length>=LARGE_ARRAY_SIZE)return wrapper.plant(value).value();for(var index=0,result=length?funcs[index].apply(this,args):value;++index<length;)result=funcs[index].call(this,result);return result}})}function createHybrid(func,bitmask,thisArg,partials,holders,partialsRight,holdersRight,argPos,ary,arity){function wrapper(){for(var length=arguments.length,args=Array(length),index=length;index--;)args[index]=arguments[index];if(isCurried)var placeholder=getHolder(wrapper),holdersCount=countHolders(args,placeholder);if(partials&&(args=composeArgs(args,partials,holders,isCurried)),partialsRight&&(args=composeArgsRight(args,partialsRight,holdersRight,isCurried)),length-=holdersCount,isCurried&&length<arity){var newHolders=replaceHolders(args,placeholder);return createRecurry(func,bitmask,createHybrid,wrapper.placeholder,thisArg,args,newHolders,argPos,ary,arity-length)}var thisBinding=isBind?thisArg:this,fn=isBindKey?thisBinding[func]:func;return length=args.length,argPos?args=reorder(args,argPos):isFlip&&length>1&&args.reverse(),isAry&&ary<length&&(args.length=ary),this&&this!==root&&this instanceof wrapper&&(fn=Ctor||createCtor(fn)),fn.apply(thisBinding,args)}var isAry=bitmask&WRAP_ARY_FLAG,isBind=bitmask&WRAP_BIND_FLAG,isBindKey=bitmask&WRAP_BIND_KEY_FLAG,isCurried=bitmask&(WRAP_CURRY_FLAG|WRAP_CURRY_RIGHT_FLAG),isFlip=bitmask&WRAP_FLIP_FLAG,Ctor=isBindKey?undefined:createCtor(func);return wrapper}function createInverter(setter,toIteratee){return function(object,iteratee){return baseInverter(object,setter,toIteratee(iteratee),{})}}function createMathOperation(operator,defaultValue){return function(value,other){var result;if(value===undefined&&other===undefined)return defaultValue;if(value!==undefined&&(result=value),other!==undefined){if(result===undefined)return other;"string"==typeof value||"string"==typeof other?(value=baseToString(value),other=baseToString(other)):(value=baseToNumber(value),other=baseToNumber(other)),result=operator(value,other)}return result}}function createOver(arrayFunc){return flatRest(function(iteratees){return iteratees=arrayMap(iteratees,baseUnary(getIteratee())),baseRest(function(args){var thisArg=this;return arrayFunc(iteratees,function(iteratee){return apply(iteratee,thisArg,args)})})})}function createPadding(length,chars){chars=chars===undefined?" ":baseToString(chars);var charsLength=chars.length;if(charsLength<2)return charsLength?baseRepeat(chars,length):chars;var result=baseRepeat(chars,nativeCeil(length/stringSize(chars)));return hasUnicode(chars)?castSlice(stringToArray(result),0,length).join(""):result.slice(0,length)}function createPartial(func,bitmask,thisArg,partials){function wrapper(){for(var argsIndex=-1,argsLength=arguments.length,leftIndex=-1,leftLength=partials.length,args=Array(leftLength+argsLength),fn=this&&this!==root&&this instanceof wrapper?Ctor:func;++leftIndex<leftLength;)args[leftIndex]=partials[leftIndex];for(;argsLength--;)args[leftIndex++]=arguments[++argsIndex];return apply(fn,isBind?thisArg:this,args)}var isBind=bitmask&WRAP_BIND_FLAG,Ctor=createCtor(func);return wrapper}function createRange(fromRight){return function(start,end,step){return step&&"number"!=typeof step&&isIterateeCall(start,end,step)&&(end=step=undefined),start=toFinite(start),end===undefined?(end=start,start=0):end=toFinite(end),step=step===undefined?start<end?1:-1:toFinite(step),baseRange(start,end,step,fromRight)}}function createRelationalOperation(operator){return function(value,other){return"string"==typeof value&&"string"==typeof other||(value=toNumber(value),other=toNumber(other)),operator(value,other)}}function createRecurry(func,bitmask,wrapFunc,placeholder,thisArg,partials,holders,argPos,ary,arity){var isCurry=bitmask&WRAP_CURRY_FLAG,newHolders=isCurry?holders:undefined,newHoldersRight=isCurry?undefined:holders,newPartials=isCurry?partials:undefined,newPartialsRight=isCurry?undefined:partials;bitmask|=isCurry?WRAP_PARTIAL_FLAG:WRAP_PARTIAL_RIGHT_FLAG,bitmask&=~(isCurry?WRAP_PARTIAL_RIGHT_FLAG:WRAP_PARTIAL_FLAG),bitmask&WRAP_CURRY_BOUND_FLAG||(bitmask&=~(WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG));var newData=[func,bitmask,thisArg,newPartials,newHolders,newPartialsRight,newHoldersRight,argPos,ary,arity],result=wrapFunc.apply(undefined,newData);return isLaziable(func)&&setData(result,newData),result.placeholder=placeholder,setWrapToString(result,func,bitmask)}function createRound(methodName){var func=Math[methodName];return function(number,precision){if(number=toNumber(number),precision=nativeMin(toInteger(precision),292)){var pair=(toString(number)+"e").split("e"),value=func(pair[0]+"e"+(+pair[1]+precision));return pair=(toString(value)+"e").split("e"),+(pair[0]+"e"+(+pair[1]-precision))}return func(number)}}function createToPairs(keysFunc){return function(object){var tag=getTag(object);return tag==mapTag?mapToArray(object):tag==setTag?setToPairs(object):baseToPairs(object,keysFunc(object))}}function createWrap(func,bitmask,thisArg,partials,holders,argPos,ary,arity){var isBindKey=bitmask&WRAP_BIND_KEY_FLAG;if(!isBindKey&&"function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);var length=partials?partials.length:0;if(length||(bitmask&=~(WRAP_PARTIAL_FLAG|WRAP_PARTIAL_RIGHT_FLAG),partials=holders=undefined),ary=ary===undefined?ary:nativeMax(toInteger(ary),0),arity=arity===undefined?arity:toInteger(arity),length-=holders?holders.length:0,bitmask&WRAP_PARTIAL_RIGHT_FLAG){var partialsRight=partials,holdersRight=holders;partials=holders=undefined}var data=isBindKey?undefined:getData(func),newData=[func,bitmask,thisArg,partials,holders,partialsRight,holdersRight,argPos,ary,arity];if(data&&mergeData(newData,data),func=newData[0],bitmask=newData[1],thisArg=newData[2],partials=newData[3],holders=newData[4],arity=newData[9]=null==newData[9]?isBindKey?0:func.length:nativeMax(newData[9]-length,0),!arity&&bitmask&(WRAP_CURRY_FLAG|WRAP_CURRY_RIGHT_FLAG)&&(bitmask&=~(WRAP_CURRY_FLAG|WRAP_CURRY_RIGHT_FLAG)), | |
bitmask&&bitmask!=WRAP_BIND_FLAG)result=bitmask==WRAP_CURRY_FLAG||bitmask==WRAP_CURRY_RIGHT_FLAG?createCurry(func,bitmask,arity):bitmask!=WRAP_PARTIAL_FLAG&&bitmask!=(WRAP_BIND_FLAG|WRAP_PARTIAL_FLAG)||holders.length?createHybrid.apply(undefined,newData):createPartial(func,bitmask,thisArg,partials);else var result=createBind(func,bitmask,thisArg);var setter=data?baseSetData:setData;return setWrapToString(setter(result,newData),func,bitmask)}function equalArrays(array,other,bitmask,customizer,equalFunc,stack){var isPartial=bitmask&COMPARE_PARTIAL_FLAG,arrLength=array.length,othLength=other.length;if(arrLength!=othLength&&!(isPartial&&othLength>arrLength))return!1;var stacked=stack.get(array);if(stacked&&stack.get(other))return stacked==other;var index=-1,result=!0,seen=bitmask&COMPARE_UNORDERED_FLAG?new SetCache:undefined;for(stack.set(array,other),stack.set(other,array);++index<arrLength;){var arrValue=array[index],othValue=other[index];if(customizer)var compared=isPartial?customizer(othValue,arrValue,index,other,array,stack):customizer(arrValue,othValue,index,array,other,stack);if(compared!==undefined){if(compared)continue;result=!1;break}if(seen){if(!arraySome(other,function(othValue,othIndex){if(!cacheHas(seen,othIndex)&&(arrValue===othValue||equalFunc(arrValue,othValue,bitmask,customizer,stack)))return seen.push(othIndex)})){result=!1;break}}else if(arrValue!==othValue&&!equalFunc(arrValue,othValue,bitmask,customizer,stack)){result=!1;break}}return stack.delete(array),stack.delete(other),result}function equalByTag(object,other,tag,bitmask,customizer,equalFunc,stack){switch(tag){case dataViewTag:if(object.byteLength!=other.byteLength||object.byteOffset!=other.byteOffset)return!1;object=object.buffer,other=other.buffer;case arrayBufferTag:return!(object.byteLength!=other.byteLength||!equalFunc(new Uint8Array(object),new Uint8Array(other)));case boolTag:case dateTag:case numberTag:return eq(+object,+other);case errorTag:return object.name==other.name&&object.message==other.message;case regexpTag:case stringTag:return object==other+"";case mapTag:var convert=mapToArray;case setTag:var isPartial=bitmask&COMPARE_PARTIAL_FLAG;if(convert||(convert=setToArray),object.size!=other.size&&!isPartial)return!1;var stacked=stack.get(object);if(stacked)return stacked==other;bitmask|=COMPARE_UNORDERED_FLAG,stack.set(object,other);var result=equalArrays(convert(object),convert(other),bitmask,customizer,equalFunc,stack);return stack.delete(object),result;case symbolTag:if(symbolValueOf)return symbolValueOf.call(object)==symbolValueOf.call(other)}return!1}function equalObjects(object,other,bitmask,customizer,equalFunc,stack){var isPartial=bitmask&COMPARE_PARTIAL_FLAG,objProps=keys(object),objLength=objProps.length,othProps=keys(other),othLength=othProps.length;if(objLength!=othLength&&!isPartial)return!1;for(var index=objLength;index--;){var key=objProps[index];if(!(isPartial?key in other:hasOwnProperty.call(other,key)))return!1}var stacked=stack.get(object);if(stacked&&stack.get(other))return stacked==other;var result=!0;stack.set(object,other),stack.set(other,object);for(var skipCtor=isPartial;++index<objLength;){key=objProps[index];var objValue=object[key],othValue=other[key];if(customizer)var compared=isPartial?customizer(othValue,objValue,key,other,object,stack):customizer(objValue,othValue,key,object,other,stack);if(!(compared===undefined?objValue===othValue||equalFunc(objValue,othValue,bitmask,customizer,stack):compared)){result=!1;break}skipCtor||(skipCtor="constructor"==key)}if(result&&!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;objCtor!=othCtor&&"constructor"in object&&"constructor"in other&&!("function"==typeof objCtor&&objCtor instanceof objCtor&&"function"==typeof othCtor&&othCtor instanceof othCtor)&&(result=!1)}return stack.delete(object),stack.delete(other),result}function flatRest(func){return setToString(overRest(func,undefined,flatten),func+"")}function getAllKeys(object){return baseGetAllKeys(object,keys,getSymbols)}function getAllKeysIn(object){return baseGetAllKeys(object,keysIn,getSymbolsIn)}function getFuncName(func){for(var result=func.name+"",array=realNames[result],length=hasOwnProperty.call(realNames,result)?array.length:0;length--;){var data=array[length],otherFunc=data.func;if(null==otherFunc||otherFunc==func)return data.name}return result}function getHolder(func){var object=hasOwnProperty.call(lodash,"placeholder")?lodash:func;return object.placeholder}function getIteratee(){var result=lodash.iteratee||iteratee;return result=result===iteratee?baseIteratee:result,arguments.length?result(arguments[0],arguments[1]):result}function getMapData(map,key){var data=map.__data__;return isKeyable(key)?data["string"==typeof key?"string":"hash"]:data.map}function getMatchData(object){for(var result=keys(object),length=result.length;length--;){var key=result[length],value=object[key];result[length]=[key,value,isStrictComparable(value)]}return result}function getNative(object,key){var value=getValue(object,key);return baseIsNative(value)?value:undefined}function getRawTag(value){var isOwn=hasOwnProperty.call(value,symToStringTag),tag=value[symToStringTag];try{value[symToStringTag]=undefined;var unmasked=!0}catch(e){}var result=nativeObjectToString.call(value);return unmasked&&(isOwn?value[symToStringTag]=tag:delete value[symToStringTag]),result}function getView(start,end,transforms){for(var index=-1,length=transforms.length;++index<length;){var data=transforms[index],size=data.size;switch(data.type){case"drop":start+=size;break;case"dropRight":end-=size;break;case"take":end=nativeMin(end,start+size);break;case"takeRight":start=nativeMax(start,end-size)}}return{start:start,end:end}}function getWrapDetails(source){var match=source.match(reWrapDetails);return match?match[1].split(reSplitDetails):[]}function hasPath(object,path,hasFunc){path=castPath(path,object);for(var index=-1,length=path.length,result=!1;++index<length;){var key=toKey(path[index]);if(!(result=null!=object&&hasFunc(object,key)))break;object=object[key]}return result||++index!=length?result:(length=null==object?0:object.length,!!length&&isLength(length)&&isIndex(key,length)&&(isArray(object)||isArguments(object)))}function initCloneArray(array){var length=array.length,result=array.constructor(length);return length&&"string"==typeof array[0]&&hasOwnProperty.call(array,"index")&&(result.index=array.index,result.input=array.input),result}function initCloneObject(object){return"function"!=typeof object.constructor||isPrototype(object)?{}:baseCreate(getPrototype(object))}function initCloneByTag(object,tag,cloneFunc,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag:return cloneArrayBuffer(object);case boolTag:case dateTag:return new Ctor(+object);case dataViewTag:return cloneDataView(object,isDeep);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:return cloneTypedArray(object,isDeep);case mapTag:return cloneMap(object,isDeep,cloneFunc);case numberTag:case stringTag:return new Ctor(object);case regexpTag:return cloneRegExp(object);case setTag:return cloneSet(object,isDeep,cloneFunc);case symbolTag:return cloneSymbol(object)}}function insertWrapDetails(source,details){var length=details.length;if(!length)return source;var lastIndex=length-1;return details[lastIndex]=(length>1?"& ":"")+details[lastIndex],details=details.join(length>2?", ":" "),source.replace(reWrapComment,"{\n/* [wrapped with "+details+"] */\n")}function isFlattenable(value){return isArray(value)||isArguments(value)||!!(spreadableSymbol&&value&&value[spreadableSymbol])}function isIndex(value,length){return length=null==length?MAX_SAFE_INTEGER:length,!!length&&("number"==typeof value||reIsUint.test(value))&&value>-1&&value%1==0&&value<length}function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;return!!("number"==type?isArrayLike(object)&&isIndex(index,object.length):"string"==type&&index in object)&&eq(object[index],value)}function isKey(value,object){if(isArray(value))return!1;var type=typeof value;return!("number"!=type&&"symbol"!=type&&"boolean"!=type&&null!=value&&!isSymbol(value))||(reIsPlainProp.test(value)||!reIsDeepProp.test(value)||null!=object&&value in Object(object))}function isKeyable(value){var type=typeof value;return"string"==type||"number"==type||"symbol"==type||"boolean"==type?"__proto__"!==value:null===value}function isLaziable(func){var funcName=getFuncName(func),other=lodash[funcName];if("function"!=typeof other||!(funcName in LazyWrapper.prototype))return!1;if(func===other)return!0;var data=getData(other);return!!data&&func===data[0]}function isMasked(func){return!!maskSrcKey&&maskSrcKey in func}function isPrototype(value){var Ctor=value&&value.constructor,proto="function"==typeof Ctor&&Ctor.prototype||objectProto;return value===proto}function isStrictComparable(value){return value===value&&!isObject(value)}function matchesStrictComparable(key,srcValue){return function(object){return null!=object&&(object[key]===srcValue&&(srcValue!==undefined||key in Object(object)))}}function memoizeCapped(func){var result=memoize(func,function(key){return cache.size===MAX_MEMOIZE_SIZE&&cache.clear(),key}),cache=result.cache;return result}function mergeData(data,source){var bitmask=data[1],srcBitmask=source[1],newBitmask=bitmask|srcBitmask,isCommon=newBitmask<(WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG|WRAP_ARY_FLAG),isCombo=srcBitmask==WRAP_ARY_FLAG&&bitmask==WRAP_CURRY_FLAG||srcBitmask==WRAP_ARY_FLAG&&bitmask==WRAP_REARG_FLAG&&data[7].length<=source[8]||srcBitmask==(WRAP_ARY_FLAG|WRAP_REARG_FLAG)&&source[7].length<=source[8]&&bitmask==WRAP_CURRY_FLAG;if(!isCommon&&!isCombo)return data;srcBitmask&WRAP_BIND_FLAG&&(data[2]=source[2],newBitmask|=bitmask&WRAP_BIND_FLAG?0:WRAP_CURRY_BOUND_FLAG);var value=source[3];if(value){var partials=data[3];data[3]=partials?composeArgs(partials,value,source[4]):value,data[4]=partials?replaceHolders(data[3],PLACEHOLDER):source[4]}return value=source[5],value&&(partials=data[5],data[5]=partials?composeArgsRight(partials,value,source[6]):value,data[6]=partials?replaceHolders(data[5],PLACEHOLDER):source[6]),value=source[7],value&&(data[7]=value),srcBitmask&WRAP_ARY_FLAG&&(data[8]=null==data[8]?source[8]:nativeMin(data[8],source[8])),null==data[9]&&(data[9]=source[9]),data[0]=source[0],data[1]=newBitmask,data}function mergeDefaults(objValue,srcValue,key,object,source,stack){return isObject(objValue)&&isObject(srcValue)&&(stack.set(srcValue,objValue),baseMerge(objValue,srcValue,undefined,mergeDefaults,stack),stack.delete(srcValue)),objValue}function nativeKeysIn(object){var result=[];if(null!=object)for(var key in Object(object))result.push(key);return result}function objectToString(value){return nativeObjectToString.call(value)}function overRest(func,start,transform){return start=nativeMax(start===undefined?func.length-1:start,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),array=Array(length);++index<length;)array[index]=args[start+index];index=-1;for(var otherArgs=Array(start+1);++index<start;)otherArgs[index]=args[index];return otherArgs[start]=transform(array),apply(func,this,otherArgs)}}function parent(object,path){return path.length<2?object:baseGet(object,baseSlice(path,0,-1))}function reorder(array,indexes){for(var arrLength=array.length,length=nativeMin(indexes.length,arrLength),oldArray=copyArray(array);length--;){var index=indexes[length];array[length]=isIndex(index,arrLength)?oldArray[index]:undefined}return array}function setWrapToString(wrapper,reference,bitmask){var source=reference+"";return setToString(wrapper,insertWrapDetails(source,updateWrapDetails(getWrapDetails(source),bitmask)))}function shortOut(func){var count=0,lastCalled=0;return function(){var stamp=nativeNow(),remaining=HOT_SPAN-(stamp-lastCalled);if(lastCalled=stamp,remaining>0){if(++count>=HOT_COUNT)return arguments[0]}else count=0;return func.apply(undefined,arguments)}}function shuffleSelf(array,size){var index=-1,length=array.length,lastIndex=length-1;for(size=size===undefined?length:size;++index<size;){var rand=baseRandom(index,lastIndex),value=array[rand];array[rand]=array[index],array[index]=value}return array.length=size,array}function toKey(value){if("string"==typeof value||isSymbol(value))return value;var result=value+"";return"0"==result&&1/value==-INFINITY?"-0":result}function toSource(func){if(null!=func){try{return funcToString.call(func)}catch(e){}try{return func+""}catch(e){}}return""}function updateWrapDetails(details,bitmask){return arrayEach(wrapFlags,function(pair){var value="_."+pair[0];bitmask&pair[1]&&!arrayIncludes(details,value)&&details.push(value)}),details.sort()}function wrapperClone(wrapper){if(wrapper instanceof LazyWrapper)return wrapper.clone();var result=new LodashWrapper(wrapper.__wrapped__,wrapper.__chain__);return result.__actions__=copyArray(wrapper.__actions__),result.__index__=wrapper.__index__,result.__values__=wrapper.__values__,result}function chunk(array,size,guard){size=(guard?isIterateeCall(array,size,guard):size===undefined)?1:nativeMax(toInteger(size),0);var length=null==array?0:array.length;if(!length||size<1)return[];for(var index=0,resIndex=0,result=Array(nativeCeil(length/size));index<length;)result[resIndex++]=baseSlice(array,index,index+=size);return result}function compact(array){for(var index=-1,length=null==array?0:array.length,resIndex=0,result=[];++index<length;){var value=array[index];value&&(result[resIndex++]=value)}return result}function concat(){var length=arguments.length;if(!length)return[];for(var args=Array(length-1),array=arguments[0],index=length;index--;)args[index-1]=arguments[index];return arrayPush(isArray(array)?copyArray(array):[array],baseFlatten(args,1))}function drop(array,n,guard){var length=null==array?0:array.length;return length?(n=guard||n===undefined?1:toInteger(n),baseSlice(array,n<0?0:n,length)):[]}function dropRight(array,n,guard){var length=null==array?0:array.length;return length?(n=guard||n===undefined?1:toInteger(n),n=length-n,baseSlice(array,0,n<0?0:n)):[]}function dropRightWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3),!0,!0):[]}function dropWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3),!0):[]}function fill(array,value,start,end){var length=null==array?0:array.length;return length?(start&&"number"!=typeof start&&isIterateeCall(array,value,start)&&(start=0,end=length),baseFill(array,value,start,end)):[]}function findIndex(array,predicate,fromIndex){var length=null==array?0:array.length;if(!length)return-1;var index=null==fromIndex?0:toInteger(fromIndex);return index<0&&(index=nativeMax(length+index,0)),baseFindIndex(array,getIteratee(predicate,3),index)}function findLastIndex(array,predicate,fromIndex){var length=null==array?0:array.length;if(!length)return-1;var index=length-1;return fromIndex!==undefined&&(index=toInteger(fromIndex),index=fromIndex<0?nativeMax(length+index,0):nativeMin(index,length-1)),baseFindIndex(array,getIteratee(predicate,3),index,!0)}function flatten(array){var length=null==array?0:array.length;return length?baseFlatten(array,1):[]}function flattenDeep(array){var length=null==array?0:array.length;return length?baseFlatten(array,INFINITY):[]}function flattenDepth(array,depth){var length=null==array?0:array.length;return length?(depth=depth===undefined?1:toInteger(depth),baseFlatten(array,depth)):[]}function fromPairs(pairs){for(var index=-1,length=null==pairs?0:pairs.length,result={};++index<length;){var pair=pairs[index];result[pair[0]]=pair[1]}return result}function head(array){return array&&array.length?array[0]:undefined}function indexOf(array,value,fromIndex){var length=null==array?0:array.length;if(!length)return-1;var index=null==fromIndex?0:toInteger(fromIndex);return index<0&&(index=nativeMax(length+index,0)),baseIndexOf(array,value,index)}function initial(array){var length=null==array?0:array.length;return length?baseSlice(array,0,-1):[]}function join(array,separator){return null==array?"":nativeJoin.call(array,separator)}function last(array){var length=null==array?0:array.length;return length?array[length-1]:undefined}function lastIndexOf(array,value,fromIndex){var length=null==array?0:array.length;if(!length)return-1;var index=length;return fromIndex!==undefined&&(index=toInteger(fromIndex),index=index<0?nativeMax(length+index,0):nativeMin(index,length-1)),value===value?strictLastIndexOf(array,value,index):baseFindIndex(array,baseIsNaN,index,!0)}function nth(array,n){return array&&array.length?baseNth(array,toInteger(n)):undefined}function pullAll(array,values){return array&&array.length&&values&&values.length?basePullAll(array,values):array}function pullAllBy(array,values,iteratee){return array&&array.length&&values&&values.length?basePullAll(array,values,getIteratee(iteratee,2)):array}function pullAllWith(array,values,comparator){return array&&array.length&&values&&values.length?basePullAll(array,values,undefined,comparator):array}function remove(array,predicate){var result=[];if(!array||!array.length)return result;var index=-1,indexes=[],length=array.length;for(predicate=getIteratee(predicate,3);++index<length;){var value=array[index];predicate(value,index,array)&&(result.push(value),indexes.push(index))}return basePullAt(array,indexes),result}function reverse(array){return null==array?array:nativeReverse.call(array)}function slice(array,start,end){var length=null==array?0:array.length;return length?(end&&"number"!=typeof end&&isIterateeCall(array,start,end)?(start=0,end=length):(start=null==start?0:toInteger(start),end=end===undefined?length:toInteger(end)),baseSlice(array,start,end)):[]}function sortedIndex(array,value){return baseSortedIndex(array,value)}function sortedIndexBy(array,value,iteratee){return baseSortedIndexBy(array,value,getIteratee(iteratee,2))}function sortedIndexOf(array,value){var length=null==array?0:array.length;if(length){var index=baseSortedIndex(array,value);if(index<length&&eq(array[index],value))return index}return-1}function sortedLastIndex(array,value){return baseSortedIndex(array,value,!0)}function sortedLastIndexBy(array,value,iteratee){return baseSortedIndexBy(array,value,getIteratee(iteratee,2),!0)}function sortedLastIndexOf(array,value){var length=null==array?0:array.length;if(length){var index=baseSortedIndex(array,value,!0)-1;if(eq(array[index],value))return index}return-1}function sortedUniq(array){return array&&array.length?baseSortedUniq(array):[]}function sortedUniqBy(array,iteratee){return array&&array.length?baseSortedUniq(array,getIteratee(iteratee,2)):[]}function tail(array){var length=null==array?0:array.length;return length?baseSlice(array,1,length):[]}function take(array,n,guard){return array&&array.length?(n=guard||n===undefined?1:toInteger(n),baseSlice(array,0,n<0?0:n)):[]}function takeRight(array,n,guard){var length=null==array?0:array.length;return length?(n=guard||n===undefined?1:toInteger(n),n=length-n,baseSlice(array,n<0?0:n,length)):[]}function takeRightWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3),!1,!0):[]}function takeWhile(array,predicate){return array&&array.length?baseWhile(array,getIteratee(predicate,3)):[]}function uniq(array){return array&&array.length?baseUniq(array):[]}function uniqBy(array,iteratee){return array&&array.length?baseUniq(array,getIteratee(iteratee,2)):[]}function uniqWith(array,comparator){return comparator="function"==typeof comparator?comparator:undefined,array&&array.length?baseUniq(array,undefined,comparator):[]}function unzip(array){if(!array||!array.length)return[];var length=0;return array=arrayFilter(array,function(group){if(isArrayLikeObject(group))return length=nativeMax(group.length,length),!0}),baseTimes(length,function(index){return arrayMap(array,baseProperty(index))})}function unzipWith(array,iteratee){if(!array||!array.length)return[];var result=unzip(array);return null==iteratee?result:arrayMap(result,function(group){return apply(iteratee,undefined,group)})}function zipObject(props,values){return baseZipObject(props||[],values||[],assignValue)}function zipObjectDeep(props,values){return baseZipObject(props||[],values||[],baseSet)}function chain(value){var result=lodash(value);return result.__chain__=!0,result}function tap(value,interceptor){return interceptor(value),value}function thru(value,interceptor){return interceptor(value)}function wrapperChain(){return chain(this)}function wrapperCommit(){return new LodashWrapper(this.value(),this.__chain__)}function wrapperNext(){this.__values__===undefined&&(this.__values__=toArray(this.value()));var done=this.__index__>=this.__values__.length,value=done?undefined:this.__values__[this.__index__++];return{done:done,value:value}}function wrapperToIterator(){return this}function wrapperPlant(value){for(var result,parent=this;parent instanceof baseLodash;){var clone=wrapperClone(parent);clone.__index__=0,clone.__values__=undefined,result?previous.__wrapped__=clone:result=clone;var previous=clone;parent=parent.__wrapped__}return previous.__wrapped__=value,result}function wrapperReverse(){var value=this.__wrapped__;if(value instanceof LazyWrapper){var wrapped=value;return this.__actions__.length&&(wrapped=new LazyWrapper(this)),wrapped=wrapped.reverse(),wrapped.__actions__.push({func:thru,args:[reverse],thisArg:undefined}),new LodashWrapper(wrapped,this.__chain__)}return this.thru(reverse)}function wrapperValue(){return baseWrapperValue(this.__wrapped__,this.__actions__)}function every(collection,predicate,guard){var func=isArray(collection)?arrayEvery:baseEvery;return guard&&isIterateeCall(collection,predicate,guard)&&(predicate=undefined),func(collection,getIteratee(predicate,3))}function filter(collection,predicate){var func=isArray(collection)?arrayFilter:baseFilter;return func(collection,getIteratee(predicate,3))}function flatMap(collection,iteratee){return baseFlatten(map(collection,iteratee),1)}function flatMapDeep(collection,iteratee){return baseFlatten(map(collection,iteratee),INFINITY)}function flatMapDepth(collection,iteratee,depth){return depth=depth===undefined?1:toInteger(depth),baseFlatten(map(collection,iteratee),depth)}function forEach(collection,iteratee){var func=isArray(collection)?arrayEach:baseEach;return func(collection,getIteratee(iteratee,3))}function forEachRight(collection,iteratee){var func=isArray(collection)?arrayEachRight:baseEachRight;return func(collection,getIteratee(iteratee,3))}function includes(collection,value,fromIndex,guard){collection=isArrayLike(collection)?collection:values(collection),fromIndex=fromIndex&&!guard?toInteger(fromIndex):0;var length=collection.length;return fromIndex<0&&(fromIndex=nativeMax(length+fromIndex,0)),isString(collection)?fromIndex<=length&&collection.indexOf(value,fromIndex)>-1:!!length&&baseIndexOf(collection,value,fromIndex)>-1}function map(collection,iteratee){var func=isArray(collection)?arrayMap:baseMap;return func(collection,getIteratee(iteratee,3))}function orderBy(collection,iteratees,orders,guard){return null==collection?[]:(isArray(iteratees)||(iteratees=null==iteratees?[]:[iteratees]),orders=guard?undefined:orders,isArray(orders)||(orders=null==orders?[]:[orders]),baseOrderBy(collection,iteratees,orders))}function reduce(collection,iteratee,accumulator){var func=isArray(collection)?arrayReduce:baseReduce,initAccum=arguments.length<3;return func(collection,getIteratee(iteratee,4),accumulator,initAccum,baseEach)}function reduceRight(collection,iteratee,accumulator){var func=isArray(collection)?arrayReduceRight:baseReduce,initAccum=arguments.length<3;return func(collection,getIteratee(iteratee,4),accumulator,initAccum,baseEachRight)}function reject(collection,predicate){var func=isArray(collection)?arrayFilter:baseFilter;return func(collection,negate(getIteratee(predicate,3)))}function sample(collection){var func=isArray(collection)?arraySample:baseSample;return func(collection)}function sampleSize(collection,n,guard){n=(guard?isIterateeCall(collection,n,guard):n===undefined)?1:toInteger(n);var func=isArray(collection)?arraySampleSize:baseSampleSize;return func(collection,n)}function shuffle(collection){var func=isArray(collection)?arrayShuffle:baseShuffle;return func(collection)}function size(collection){if(null==collection)return 0;if(isArrayLike(collection))return isString(collection)?stringSize(collection):collection.length;var tag=getTag(collection);return tag==mapTag||tag==setTag?collection.size:baseKeys(collection).length}function some(collection,predicate,guard){var func=isArray(collection)?arraySome:baseSome;return guard&&isIterateeCall(collection,predicate,guard)&&(predicate=undefined),func(collection,getIteratee(predicate,3))}function after(n,func){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return n=toInteger(n),function(){if(--n<1)return func.apply(this,arguments)}}function ary(func,n,guard){return n=guard?undefined:n,n=func&&null==n?func.length:n,createWrap(func,WRAP_ARY_FLAG,undefined,undefined,undefined,undefined,n)}function before(n,func){var result;if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return n=toInteger(n),function(){return--n>0&&(result=func.apply(this,arguments)),n<=1&&(func=undefined),result}}function curry(func,arity,guard){arity=guard?undefined:arity;var result=createWrap(func,WRAP_CURRY_FLAG,undefined,undefined,undefined,undefined,undefined,arity);return result.placeholder=curry.placeholder,result}function curryRight(func,arity,guard){arity=guard?undefined:arity;var result=createWrap(func,WRAP_CURRY_RIGHT_FLAG,undefined,undefined,undefined,undefined,undefined,arity);return result.placeholder=curryRight.placeholder,result}function debounce(func,wait,options){function invokeFunc(time){var args=lastArgs,thisArg=lastThis;return lastArgs=lastThis=undefined,lastInvokeTime=time,result=func.apply(thisArg,args)}function leadingEdge(time){return lastInvokeTime=time,timerId=setTimeout(timerExpired,wait),leading?invokeFunc(time):result}function remainingWait(time){var timeSinceLastCall=time-lastCallTime,timeSinceLastInvoke=time-lastInvokeTime,result=wait-timeSinceLastCall;return maxing?nativeMin(result,maxWait-timeSinceLastInvoke):result}function shouldInvoke(time){var timeSinceLastCall=time-lastCallTime,timeSinceLastInvoke=time-lastInvokeTime;return lastCallTime===undefined||timeSinceLastCall>=wait||timeSinceLastCall<0||maxing&&timeSinceLastInvoke>=maxWait}function timerExpired(){var time=now();return shouldInvoke(time)?trailingEdge(time):void(timerId=setTimeout(timerExpired,remainingWait(time)))}function trailingEdge(time){return timerId=undefined,trailing&&lastArgs?invokeFunc(time):(lastArgs=lastThis=undefined,result)}function cancel(){timerId!==undefined&&clearTimeout(timerId),lastInvokeTime=0,lastArgs=lastCallTime=lastThis=timerId=undefined}function flush(){return timerId===undefined?result:trailingEdge(now())}function debounced(){var time=now(),isInvoking=shouldInvoke(time);if(lastArgs=arguments,lastThis=this,lastCallTime=time,isInvoking){if(timerId===undefined)return leadingEdge(lastCallTime);if(maxing)return timerId=setTimeout(timerExpired,wait),invokeFunc(lastCallTime)}return timerId===undefined&&(timerId=setTimeout(timerExpired,wait)),result}var lastArgs,lastThis,maxWait,result,timerId,lastCallTime,lastInvokeTime=0,leading=!1,maxing=!1,trailing=!0;if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return wait=toNumber(wait)||0,isObject(options)&&(leading=!!options.leading,maxing="maxWait"in options,maxWait=maxing?nativeMax(toNumber(options.maxWait)||0,wait):maxWait,trailing="trailing"in options?!!options.trailing:trailing),debounced.cancel=cancel,debounced.flush=flush,debounced}function flip(func){return createWrap(func,WRAP_FLIP_FLAG)}function memoize(func,resolver){if("function"!=typeof func||null!=resolver&&"function"!=typeof resolver)throw new TypeError(FUNC_ERROR_TEXT);var memoized=function(){var args=arguments,key=resolver?resolver.apply(this,args):args[0],cache=memoized.cache;if(cache.has(key))return cache.get(key);var result=func.apply(this,args);return memoized.cache=cache.set(key,result)||cache,result};return memoized.cache=new(memoize.Cache||MapCache),memoized}function negate(predicate){if("function"!=typeof predicate)throw new TypeError(FUNC_ERROR_TEXT);return function(){var args=arguments;switch(args.length){case 0:return!predicate.call(this);case 1:return!predicate.call(this,args[0]);case 2:return!predicate.call(this,args[0],args[1]);case 3:return!predicate.call(this,args[0],args[1],args[2])}return!predicate.apply(this,args)}}function once(func){return before(2,func)}function rest(func,start){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=start===undefined?start:toInteger(start),baseRest(func,start)}function spread(func,start){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=start===undefined?0:nativeMax(toInteger(start),0),baseRest(function(args){var array=args[start],otherArgs=castSlice(args,0,start);return array&&arrayPush(otherArgs,array),apply(func,this,otherArgs)})}function throttle(func,wait,options){var leading=!0,trailing=!0;if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return isObject(options)&&(leading="leading"in options?!!options.leading:leading,trailing="trailing"in options?!!options.trailing:trailing),debounce(func,wait,{leading:leading,maxWait:wait,trailing:trailing})}function unary(func){return ary(func,1)}function wrap(value,wrapper){return partial(castFunction(wrapper),value)}function castArray(){if(!arguments.length)return[];var value=arguments[0];return isArray(value)?value:[value]}function clone(value){return baseClone(value,CLONE_SYMBOLS_FLAG)}function cloneWith(value,customizer){return customizer="function"==typeof customizer?customizer:undefined,baseClone(value,CLONE_SYMBOLS_FLAG,customizer)}function cloneDeep(value){return baseClone(value,CLONE_DEEP_FLAG|CLONE_SYMBOLS_FLAG)}function cloneDeepWith(value,customizer){return customizer="function"==typeof customizer?customizer:undefined,baseClone(value,CLONE_DEEP_FLAG|CLONE_SYMBOLS_FLAG,customizer)}function conformsTo(object,source){return null==source||baseConformsTo(object,source,keys(source))}function eq(value,other){return value===other||value!==value&&other!==other}function isArrayLike(value){return null!=value&&isLength(value.length)&&!isFunction(value)}function isArrayLikeObject(value){return isObjectLike(value)&&isArrayLike(value)}function isBoolean(value){return value===!0||value===!1||isObjectLike(value)&&baseGetTag(value)==boolTag}function isElement(value){return isObjectLike(value)&&1===value.nodeType&&!isPlainObject(value)}function isEmpty(value){if(null==value)return!0;if(isArrayLike(value)&&(isArray(value)||"string"==typeof value||"function"==typeof value.splice||isBuffer(value)||isTypedArray(value)||isArguments(value)))return!value.length;var tag=getTag(value);if(tag==mapTag||tag==setTag)return!value.size;if(isPrototype(value))return!baseKeys(value).length;for(var key in value)if(hasOwnProperty.call(value,key))return!1;return!0}function isEqual(value,other){return baseIsEqual(value,other)}function isEqualWith(value,other,customizer){customizer="function"==typeof customizer?customizer:undefined;var result=customizer?customizer(value,other):undefined;return result===undefined?baseIsEqual(value,other,undefined,customizer):!!result}function isError(value){if(!isObjectLike(value))return!1;var tag=baseGetTag(value);return tag==errorTag||tag==domExcTag||"string"==typeof value.message&&"string"==typeof value.name&&!isPlainObject(value)}function isFinite(value){return"number"==typeof value&&nativeIsFinite(value)}function isFunction(value){if(!isObject(value))return!1;var tag=baseGetTag(value);return tag==funcTag||tag==genTag||tag==asyncTag||tag==proxyTag}function isInteger(value){return"number"==typeof value&&value==toInteger(value); | |
}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isObject(value){var type=typeof value;return null!=value&&("object"==type||"function"==type)}function isObjectLike(value){return null!=value&&"object"==typeof value}function isMatch(object,source){return object===source||baseIsMatch(object,source,getMatchData(source))}function isMatchWith(object,source,customizer){return customizer="function"==typeof customizer?customizer:undefined,baseIsMatch(object,source,getMatchData(source),customizer)}function isNaN(value){return isNumber(value)&&value!=+value}function isNative(value){if(isMaskable(value))throw new Error(CORE_ERROR_TEXT);return baseIsNative(value)}function isNull(value){return null===value}function isNil(value){return null==value}function isNumber(value){return"number"==typeof value||isObjectLike(value)&&baseGetTag(value)==numberTag}function isPlainObject(value){if(!isObjectLike(value)||baseGetTag(value)!=objectTag)return!1;var proto=getPrototype(value);if(null===proto)return!0;var Ctor=hasOwnProperty.call(proto,"constructor")&&proto.constructor;return"function"==typeof Ctor&&Ctor instanceof Ctor&&funcToString.call(Ctor)==objectCtorString}function isSafeInteger(value){return isInteger(value)&&value>=-MAX_SAFE_INTEGER&&value<=MAX_SAFE_INTEGER}function isString(value){return"string"==typeof value||!isArray(value)&&isObjectLike(value)&&baseGetTag(value)==stringTag}function isSymbol(value){return"symbol"==typeof value||isObjectLike(value)&&baseGetTag(value)==symbolTag}function isUndefined(value){return value===undefined}function isWeakMap(value){return isObjectLike(value)&&getTag(value)==weakMapTag}function isWeakSet(value){return isObjectLike(value)&&baseGetTag(value)==weakSetTag}function toArray(value){if(!value)return[];if(isArrayLike(value))return isString(value)?stringToArray(value):copyArray(value);if(symIterator&&value[symIterator])return iteratorToArray(value[symIterator]());var tag=getTag(value),func=tag==mapTag?mapToArray:tag==setTag?setToArray:values;return func(value)}function toFinite(value){if(!value)return 0===value?value:0;if(value=toNumber(value),value===INFINITY||value===-INFINITY){var sign=value<0?-1:1;return sign*MAX_INTEGER}return value===value?value:0}function toInteger(value){var result=toFinite(value),remainder=result%1;return result===result?remainder?result-remainder:result:0}function toLength(value){return value?baseClamp(toInteger(value),0,MAX_ARRAY_LENGTH):0}function toNumber(value){if("number"==typeof value)return value;if(isSymbol(value))return NAN;if(isObject(value)){var other="function"==typeof value.valueOf?value.valueOf():value;value=isObject(other)?other+"":other}if("string"!=typeof value)return 0===value?value:+value;value=value.replace(reTrim,"");var isBinary=reIsBinary.test(value);return isBinary||reIsOctal.test(value)?freeParseInt(value.slice(2),isBinary?2:8):reIsBadHex.test(value)?NAN:+value}function toPlainObject(value){return copyObject(value,keysIn(value))}function toSafeInteger(value){return baseClamp(toInteger(value),-MAX_SAFE_INTEGER,MAX_SAFE_INTEGER)}function toString(value){return null==value?"":baseToString(value)}function create(prototype,properties){var result=baseCreate(prototype);return null==properties?result:baseAssign(result,properties)}function findKey(object,predicate){return baseFindKey(object,getIteratee(predicate,3),baseForOwn)}function findLastKey(object,predicate){return baseFindKey(object,getIteratee(predicate,3),baseForOwnRight)}function forIn(object,iteratee){return null==object?object:baseFor(object,getIteratee(iteratee,3),keysIn)}function forInRight(object,iteratee){return null==object?object:baseForRight(object,getIteratee(iteratee,3),keysIn)}function forOwn(object,iteratee){return object&&baseForOwn(object,getIteratee(iteratee,3))}function forOwnRight(object,iteratee){return object&&baseForOwnRight(object,getIteratee(iteratee,3))}function functions(object){return null==object?[]:baseFunctions(object,keys(object))}function functionsIn(object){return null==object?[]:baseFunctions(object,keysIn(object))}function get(object,path,defaultValue){var result=null==object?undefined:baseGet(object,path);return result===undefined?defaultValue:result}function has(object,path){return null!=object&&hasPath(object,path,baseHas)}function hasIn(object,path){return null!=object&&hasPath(object,path,baseHasIn)}function keys(object){return isArrayLike(object)?arrayLikeKeys(object):baseKeys(object)}function keysIn(object){return isArrayLike(object)?arrayLikeKeys(object,!0):baseKeysIn(object)}function mapKeys(object,iteratee){var result={};return iteratee=getIteratee(iteratee,3),baseForOwn(object,function(value,key,object){baseAssignValue(result,iteratee(value,key,object),value)}),result}function mapValues(object,iteratee){var result={};return iteratee=getIteratee(iteratee,3),baseForOwn(object,function(value,key,object){baseAssignValue(result,key,iteratee(value,key,object))}),result}function omitBy(object,predicate){return pickBy(object,negate(getIteratee(predicate)))}function pickBy(object,predicate){if(null==object)return{};var props=arrayMap(getAllKeysIn(object),function(prop){return[prop]});return predicate=getIteratee(predicate),basePickBy(object,props,function(value,path){return predicate(value,path[0])})}function result(object,path,defaultValue){path=castPath(path,object);var index=-1,length=path.length;for(length||(length=1,object=undefined);++index<length;){var value=null==object?undefined:object[toKey(path[index])];value===undefined&&(index=length,value=defaultValue),object=isFunction(value)?value.call(object):value}return object}function set(object,path,value){return null==object?object:baseSet(object,path,value)}function setWith(object,path,value,customizer){return customizer="function"==typeof customizer?customizer:undefined,null==object?object:baseSet(object,path,value,customizer)}function transform(object,iteratee,accumulator){var isArr=isArray(object),isArrLike=isArr||isBuffer(object)||isTypedArray(object);if(iteratee=getIteratee(iteratee,4),null==accumulator){var Ctor=object&&object.constructor;accumulator=isArrLike?isArr?new Ctor:[]:isObject(object)&&isFunction(Ctor)?baseCreate(getPrototype(object)):{}}return(isArrLike?arrayEach:baseForOwn)(object,function(value,index,object){return iteratee(accumulator,value,index,object)}),accumulator}function unset(object,path){return null==object||baseUnset(object,path)}function update(object,path,updater){return null==object?object:baseUpdate(object,path,castFunction(updater))}function updateWith(object,path,updater,customizer){return customizer="function"==typeof customizer?customizer:undefined,null==object?object:baseUpdate(object,path,castFunction(updater),customizer)}function values(object){return null==object?[]:baseValues(object,keys(object))}function valuesIn(object){return null==object?[]:baseValues(object,keysIn(object))}function clamp(number,lower,upper){return upper===undefined&&(upper=lower,lower=undefined),upper!==undefined&&(upper=toNumber(upper),upper=upper===upper?upper:0),lower!==undefined&&(lower=toNumber(lower),lower=lower===lower?lower:0),baseClamp(toNumber(number),lower,upper)}function inRange(number,start,end){return start=toFinite(start),end===undefined?(end=start,start=0):end=toFinite(end),number=toNumber(number),baseInRange(number,start,end)}function random(lower,upper,floating){if(floating&&"boolean"!=typeof floating&&isIterateeCall(lower,upper,floating)&&(upper=floating=undefined),floating===undefined&&("boolean"==typeof upper?(floating=upper,upper=undefined):"boolean"==typeof lower&&(floating=lower,lower=undefined)),lower===undefined&&upper===undefined?(lower=0,upper=1):(lower=toFinite(lower),upper===undefined?(upper=lower,lower=0):upper=toFinite(upper)),lower>upper){var temp=lower;lower=upper,upper=temp}if(floating||lower%1||upper%1){var rand=nativeRandom();return nativeMin(lower+rand*(upper-lower+freeParseFloat("1e-"+((rand+"").length-1))),upper)}return baseRandom(lower,upper)}function capitalize(string){return upperFirst(toString(string).toLowerCase())}function deburr(string){return string=toString(string),string&&string.replace(reLatin,deburrLetter).replace(reComboMark,"")}function endsWith(string,target,position){string=toString(string),target=baseToString(target);var length=string.length;position=position===undefined?length:baseClamp(toInteger(position),0,length);var end=position;return position-=target.length,position>=0&&string.slice(position,end)==target}function escape(string){return string=toString(string),string&&reHasUnescapedHtml.test(string)?string.replace(reUnescapedHtml,escapeHtmlChar):string}function escapeRegExp(string){return string=toString(string),string&&reHasRegExpChar.test(string)?string.replace(reRegExpChar,"\\$&"):string}function pad(string,length,chars){string=toString(string),length=toInteger(length);var strLength=length?stringSize(string):0;if(!length||strLength>=length)return string;var mid=(length-strLength)/2;return createPadding(nativeFloor(mid),chars)+string+createPadding(nativeCeil(mid),chars)}function padEnd(string,length,chars){string=toString(string),length=toInteger(length);var strLength=length?stringSize(string):0;return length&&strLength<length?string+createPadding(length-strLength,chars):string}function padStart(string,length,chars){string=toString(string),length=toInteger(length);var strLength=length?stringSize(string):0;return length&&strLength<length?createPadding(length-strLength,chars)+string:string}function parseInt(string,radix,guard){return guard||null==radix?radix=0:radix&&(radix=+radix),nativeParseInt(toString(string).replace(reTrimStart,""),radix||0)}function repeat(string,n,guard){return n=(guard?isIterateeCall(string,n,guard):n===undefined)?1:toInteger(n),baseRepeat(toString(string),n)}function replace(){var args=arguments,string=toString(args[0]);return args.length<3?string:string.replace(args[1],args[2])}function split(string,separator,limit){return limit&&"number"!=typeof limit&&isIterateeCall(string,separator,limit)&&(separator=limit=undefined),(limit=limit===undefined?MAX_ARRAY_LENGTH:limit>>>0)?(string=toString(string),string&&("string"==typeof separator||null!=separator&&!isRegExp(separator))&&(separator=baseToString(separator),!separator&&hasUnicode(string))?castSlice(stringToArray(string),0,limit):string.split(separator,limit)):[]}function startsWith(string,target,position){return string=toString(string),position=baseClamp(toInteger(position),0,string.length),target=baseToString(target),string.slice(position,position+target.length)==target}function template(string,options,guard){var settings=lodash.templateSettings;guard&&isIterateeCall(string,options,guard)&&(options=undefined),string=toString(string),options=assignInWith({},options,settings,assignInDefaults);var isEscaping,isEvaluating,imports=assignInWith({},options.imports,settings.imports,assignInDefaults),importsKeys=keys(imports),importsValues=baseValues(imports,importsKeys),index=0,interpolate=options.interpolate||reNoMatch,source="__p += '",reDelimiters=RegExp((options.escape||reNoMatch).source+"|"+interpolate.source+"|"+(interpolate===reInterpolate?reEsTemplate:reNoMatch).source+"|"+(options.evaluate||reNoMatch).source+"|$","g"),sourceURL="//# sourceURL="+("sourceURL"in options?options.sourceURL:"lodash.templateSources["+ ++templateCounter+"]")+"\n";string.replace(reDelimiters,function(match,escapeValue,interpolateValue,esTemplateValue,evaluateValue,offset){return interpolateValue||(interpolateValue=esTemplateValue),source+=string.slice(index,offset).replace(reUnescapedString,escapeStringChar),escapeValue&&(isEscaping=!0,source+="' +\n__e("+escapeValue+") +\n'"),evaluateValue&&(isEvaluating=!0,source+="';\n"+evaluateValue+";\n__p += '"),interpolateValue&&(source+="' +\n((__t = ("+interpolateValue+")) == null ? '' : __t) +\n'"),index=offset+match.length,match}),source+="';\n";var variable=options.variable;variable||(source="with (obj) {\n"+source+"\n}\n"),source=(isEvaluating?source.replace(reEmptyStringLeading,""):source).replace(reEmptyStringMiddle,"$1").replace(reEmptyStringTrailing,"$1;"),source="function("+(variable||"obj")+") {\n"+(variable?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(isEscaping?", __e = _.escape":"")+(isEvaluating?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+source+"return __p\n}";var result=attempt(function(){return Function(importsKeys,sourceURL+"return "+source).apply(undefined,importsValues)});if(result.source=source,isError(result))throw result;return result}function toLower(value){return toString(value).toLowerCase()}function toUpper(value){return toString(value).toUpperCase()}function trim(string,chars,guard){if(string=toString(string),string&&(guard||chars===undefined))return string.replace(reTrim,"");if(!string||!(chars=baseToString(chars)))return string;var strSymbols=stringToArray(string),chrSymbols=stringToArray(chars),start=charsStartIndex(strSymbols,chrSymbols),end=charsEndIndex(strSymbols,chrSymbols)+1;return castSlice(strSymbols,start,end).join("")}function trimEnd(string,chars,guard){if(string=toString(string),string&&(guard||chars===undefined))return string.replace(reTrimEnd,"");if(!string||!(chars=baseToString(chars)))return string;var strSymbols=stringToArray(string),end=charsEndIndex(strSymbols,stringToArray(chars))+1;return castSlice(strSymbols,0,end).join("")}function trimStart(string,chars,guard){if(string=toString(string),string&&(guard||chars===undefined))return string.replace(reTrimStart,"");if(!string||!(chars=baseToString(chars)))return string;var strSymbols=stringToArray(string),start=charsStartIndex(strSymbols,stringToArray(chars));return castSlice(strSymbols,start).join("")}function truncate(string,options){var length=DEFAULT_TRUNC_LENGTH,omission=DEFAULT_TRUNC_OMISSION;if(isObject(options)){var separator="separator"in options?options.separator:separator;length="length"in options?toInteger(options.length):length,omission="omission"in options?baseToString(options.omission):omission}string=toString(string);var strLength=string.length;if(hasUnicode(string)){var strSymbols=stringToArray(string);strLength=strSymbols.length}if(length>=strLength)return string;var end=length-stringSize(omission);if(end<1)return omission;var result=strSymbols?castSlice(strSymbols,0,end).join(""):string.slice(0,end);if(separator===undefined)return result+omission;if(strSymbols&&(end+=result.length-end),isRegExp(separator)){if(string.slice(end).search(separator)){var match,substring=result;for(separator.global||(separator=RegExp(separator.source,toString(reFlags.exec(separator))+"g")),separator.lastIndex=0;match=separator.exec(substring);)var newEnd=match.index;result=result.slice(0,newEnd===undefined?end:newEnd)}}else if(string.indexOf(baseToString(separator),end)!=end){var index=result.lastIndexOf(separator);index>-1&&(result=result.slice(0,index))}return result+omission}function unescape(string){return string=toString(string),string&&reHasEscapedHtml.test(string)?string.replace(reEscapedHtml,unescapeHtmlChar):string}function words(string,pattern,guard){return string=toString(string),pattern=guard?undefined:pattern,pattern===undefined?hasUnicodeWord(string)?unicodeWords(string):asciiWords(string):string.match(pattern)||[]}function cond(pairs){var length=null==pairs?0:pairs.length,toIteratee=getIteratee();return pairs=length?arrayMap(pairs,function(pair){if("function"!=typeof pair[1])throw new TypeError(FUNC_ERROR_TEXT);return[toIteratee(pair[0]),pair[1]]}):[],baseRest(function(args){for(var index=-1;++index<length;){var pair=pairs[index];if(apply(pair[0],this,args))return apply(pair[1],this,args)}})}function conforms(source){return baseConforms(baseClone(source,CLONE_DEEP_FLAG))}function constant(value){return function(){return value}}function defaultTo(value,defaultValue){return null==value||value!==value?defaultValue:value}function identity(value){return value}function iteratee(func){return baseIteratee("function"==typeof func?func:baseClone(func,CLONE_DEEP_FLAG))}function matches(source){return baseMatches(baseClone(source,CLONE_DEEP_FLAG))}function matchesProperty(path,srcValue){return baseMatchesProperty(path,baseClone(srcValue,CLONE_DEEP_FLAG))}function mixin(object,source,options){var props=keys(source),methodNames=baseFunctions(source,props);null!=options||isObject(source)&&(methodNames.length||!props.length)||(options=source,source=object,object=this,methodNames=baseFunctions(source,keys(source)));var chain=!(isObject(options)&&"chain"in options&&!options.chain),isFunc=isFunction(object);return arrayEach(methodNames,function(methodName){var func=source[methodName];object[methodName]=func,isFunc&&(object.prototype[methodName]=function(){var chainAll=this.__chain__;if(chain||chainAll){var result=object(this.__wrapped__),actions=result.__actions__=copyArray(this.__actions__);return actions.push({func:func,args:arguments,thisArg:object}),result.__chain__=chainAll,result}return func.apply(object,arrayPush([this.value()],arguments))})}),object}function noConflict(){return root._===this&&(root._=oldDash),this}function noop(){}function nthArg(n){return n=toInteger(n),baseRest(function(args){return baseNth(args,n)})}function property(path){return isKey(path)?baseProperty(toKey(path)):basePropertyDeep(path)}function propertyOf(object){return function(path){return null==object?undefined:baseGet(object,path)}}function stubArray(){return[]}function stubFalse(){return!1}function stubObject(){return{}}function stubString(){return""}function stubTrue(){return!0}function times(n,iteratee){if(n=toInteger(n),n<1||n>MAX_SAFE_INTEGER)return[];var index=MAX_ARRAY_LENGTH,length=nativeMin(n,MAX_ARRAY_LENGTH);iteratee=getIteratee(iteratee),n-=MAX_ARRAY_LENGTH;for(var result=baseTimes(length,iteratee);++index<n;)iteratee(index);return result}function toPath(value){return isArray(value)?arrayMap(value,toKey):isSymbol(value)?[value]:copyArray(stringToPath(toString(value)))}function uniqueId(prefix){var id=++idCounter;return toString(prefix)+id}function max(array){return array&&array.length?baseExtremum(array,identity,baseGt):undefined}function maxBy(array,iteratee){return array&&array.length?baseExtremum(array,getIteratee(iteratee,2),baseGt):undefined}function mean(array){return baseMean(array,identity)}function meanBy(array,iteratee){return baseMean(array,getIteratee(iteratee,2))}function min(array){return array&&array.length?baseExtremum(array,identity,baseLt):undefined}function minBy(array,iteratee){return array&&array.length?baseExtremum(array,getIteratee(iteratee,2),baseLt):undefined}function sum(array){return array&&array.length?baseSum(array,identity):0}function sumBy(array,iteratee){return array&&array.length?baseSum(array,getIteratee(iteratee,2)):0}context=null==context?root:_.defaults(root.Object(),context,_.pick(root,contextProps));var Array=context.Array,Date=context.Date,Error=context.Error,Function=context.Function,Math=context.Math,Object=context.Object,RegExp=context.RegExp,String=context.String,TypeError=context.TypeError,arrayProto=Array.prototype,funcProto=Function.prototype,objectProto=Object.prototype,coreJsData=context["__core-js_shared__"],funcToString=funcProto.toString,hasOwnProperty=objectProto.hasOwnProperty,idCounter=0,maskSrcKey=function(){var uid=/[^.]+$/.exec(coreJsData&&coreJsData.keys&&coreJsData.keys.IE_PROTO||"");return uid?"Symbol(src)_1."+uid:""}(),nativeObjectToString=objectProto.toString,objectCtorString=funcToString.call(Object),oldDash=root._,reIsNative=RegExp("^"+funcToString.call(hasOwnProperty).replace(reRegExpChar,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Buffer=moduleExports?context.Buffer:undefined,Symbol=context.Symbol,Uint8Array=context.Uint8Array,allocUnsafe=Buffer?Buffer.allocUnsafe:undefined,getPrototype=overArg(Object.getPrototypeOf,Object),objectCreate=Object.create,propertyIsEnumerable=objectProto.propertyIsEnumerable,splice=arrayProto.splice,spreadableSymbol=Symbol?Symbol.isConcatSpreadable:undefined,symIterator=Symbol?Symbol.iterator:undefined,symToStringTag=Symbol?Symbol.toStringTag:undefined,defineProperty=function(){try{var func=getNative(Object,"defineProperty");return func({},"",{}),func}catch(e){}}(),ctxClearTimeout=context.clearTimeout!==root.clearTimeout&&context.clearTimeout,ctxNow=Date&&Date.now!==root.Date.now&&Date.now,ctxSetTimeout=context.setTimeout!==root.setTimeout&&context.setTimeout,nativeCeil=Math.ceil,nativeFloor=Math.floor,nativeGetSymbols=Object.getOwnPropertySymbols,nativeIsBuffer=Buffer?Buffer.isBuffer:undefined,nativeIsFinite=context.isFinite,nativeJoin=arrayProto.join,nativeKeys=overArg(Object.keys,Object),nativeMax=Math.max,nativeMin=Math.min,nativeNow=Date.now,nativeParseInt=context.parseInt,nativeRandom=Math.random,nativeReverse=arrayProto.reverse,DataView=getNative(context,"DataView"),Map=getNative(context,"Map"),Promise=getNative(context,"Promise"),Set=getNative(context,"Set"),WeakMap=getNative(context,"WeakMap"),nativeCreate=getNative(Object,"create"),metaMap=WeakMap&&new WeakMap,realNames={},dataViewCtorString=toSource(DataView),mapCtorString=toSource(Map),promiseCtorString=toSource(Promise),setCtorString=toSource(Set),weakMapCtorString=toSource(WeakMap),symbolProto=Symbol?Symbol.prototype:undefined,symbolValueOf=symbolProto?symbolProto.valueOf:undefined,symbolToString=symbolProto?symbolProto.toString:undefined,baseCreate=function(){function object(){}return function(proto){if(!isObject(proto))return{};if(objectCreate)return objectCreate(proto);object.prototype=proto;var result=new object;return object.prototype=undefined,result}}();lodash.templateSettings={escape:reEscape,evaluate:reEvaluate,interpolate:reInterpolate,variable:"",imports:{_:lodash}},lodash.prototype=baseLodash.prototype,lodash.prototype.constructor=lodash,LodashWrapper.prototype=baseCreate(baseLodash.prototype),LodashWrapper.prototype.constructor=LodashWrapper,LazyWrapper.prototype=baseCreate(baseLodash.prototype),LazyWrapper.prototype.constructor=LazyWrapper,Hash.prototype.clear=hashClear,Hash.prototype.delete=hashDelete,Hash.prototype.get=hashGet,Hash.prototype.has=hashHas,Hash.prototype.set=hashSet,ListCache.prototype.clear=listCacheClear,ListCache.prototype.delete=listCacheDelete,ListCache.prototype.get=listCacheGet,ListCache.prototype.has=listCacheHas,ListCache.prototype.set=listCacheSet,MapCache.prototype.clear=mapCacheClear,MapCache.prototype.delete=mapCacheDelete,MapCache.prototype.get=mapCacheGet,MapCache.prototype.has=mapCacheHas,MapCache.prototype.set=mapCacheSet,SetCache.prototype.add=SetCache.prototype.push=setCacheAdd,SetCache.prototype.has=setCacheHas,Stack.prototype.clear=stackClear,Stack.prototype.delete=stackDelete,Stack.prototype.get=stackGet,Stack.prototype.has=stackHas,Stack.prototype.set=stackSet;var baseEach=createBaseEach(baseForOwn),baseEachRight=createBaseEach(baseForOwnRight,!0),baseFor=createBaseFor(),baseForRight=createBaseFor(!0),baseSetData=metaMap?function(func,data){return metaMap.set(func,data),func}:identity,baseSetToString=defineProperty?function(func,string){return defineProperty(func,"toString",{configurable:!0,enumerable:!1,value:constant(string),writable:!0})}:identity,castRest=baseRest,clearTimeout=ctxClearTimeout||function(id){return root.clearTimeout(id)},createSet=Set&&1/setToArray(new Set([,-0]))[1]==INFINITY?function(values){return new Set(values)}:noop,getData=metaMap?function(func){return metaMap.get(func)}:noop,getSymbols=nativeGetSymbols?overArg(nativeGetSymbols,Object):stubArray,getSymbolsIn=nativeGetSymbols?function(object){for(var result=[];object;)arrayPush(result,getSymbols(object)),object=getPrototype(object);return result}:stubArray,getTag=baseGetTag;(DataView&&getTag(new DataView(new ArrayBuffer(1)))!=dataViewTag||Map&&getTag(new Map)!=mapTag||Promise&&getTag(Promise.resolve())!=promiseTag||Set&&getTag(new Set)!=setTag||WeakMap&&getTag(new WeakMap)!=weakMapTag)&&(getTag=function(value){var result=baseGetTag(value),Ctor=result==objectTag?value.constructor:undefined,ctorString=Ctor?toSource(Ctor):"";if(ctorString)switch(ctorString){case dataViewCtorString:return dataViewTag;case mapCtorString:return mapTag;case promiseCtorString:return promiseTag;case setCtorString:return setTag;case weakMapCtorString:return weakMapTag}return result});var isMaskable=coreJsData?isFunction:stubFalse,setData=shortOut(baseSetData),setTimeout=ctxSetTimeout||function(func,wait){return root.setTimeout(func,wait)},setToString=shortOut(baseSetToString),stringToPath=memoizeCapped(function(string){var result=[];return reLeadingDot.test(string)&&result.push(""),string.replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,"$1"):number||match)}),result}),difference=baseRest(function(array,values){return isArrayLikeObject(array)?baseDifference(array,baseFlatten(values,1,isArrayLikeObject,!0)):[]}),differenceBy=baseRest(function(array,values){var iteratee=last(values);return isArrayLikeObject(iteratee)&&(iteratee=undefined),isArrayLikeObject(array)?baseDifference(array,baseFlatten(values,1,isArrayLikeObject,!0),getIteratee(iteratee,2)):[]}),differenceWith=baseRest(function(array,values){var comparator=last(values);return isArrayLikeObject(comparator)&&(comparator=undefined),isArrayLikeObject(array)?baseDifference(array,baseFlatten(values,1,isArrayLikeObject,!0),undefined,comparator):[]}),intersection=baseRest(function(arrays){var mapped=arrayMap(arrays,castArrayLikeObject);return mapped.length&&mapped[0]===arrays[0]?baseIntersection(mapped):[]}),intersectionBy=baseRest(function(arrays){var iteratee=last(arrays),mapped=arrayMap(arrays,castArrayLikeObject);return iteratee===last(mapped)?iteratee=undefined:mapped.pop(),mapped.length&&mapped[0]===arrays[0]?baseIntersection(mapped,getIteratee(iteratee,2)):[]}),intersectionWith=baseRest(function(arrays){var comparator=last(arrays),mapped=arrayMap(arrays,castArrayLikeObject);return comparator="function"==typeof comparator?comparator:undefined,comparator&&mapped.pop(),mapped.length&&mapped[0]===arrays[0]?baseIntersection(mapped,undefined,comparator):[]}),pull=baseRest(pullAll),pullAt=flatRest(function(array,indexes){var length=null==array?0:array.length,result=baseAt(array,indexes);return basePullAt(array,arrayMap(indexes,function(index){return isIndex(index,length)?+index:index}).sort(compareAscending)),result}),union=baseRest(function(arrays){return baseUniq(baseFlatten(arrays,1,isArrayLikeObject,!0))}),unionBy=baseRest(function(arrays){var iteratee=last(arrays);return isArrayLikeObject(iteratee)&&(iteratee=undefined),baseUniq(baseFlatten(arrays,1,isArrayLikeObject,!0),getIteratee(iteratee,2))}),unionWith=baseRest(function(arrays){var comparator=last(arrays);return comparator="function"==typeof comparator?comparator:undefined,baseUniq(baseFlatten(arrays,1,isArrayLikeObject,!0),undefined,comparator)}),without=baseRest(function(array,values){return isArrayLikeObject(array)?baseDifference(array,values):[]}),xor=baseRest(function(arrays){return baseXor(arrayFilter(arrays,isArrayLikeObject))}),xorBy=baseRest(function(arrays){var iteratee=last(arrays);return isArrayLikeObject(iteratee)&&(iteratee=undefined),baseXor(arrayFilter(arrays,isArrayLikeObject),getIteratee(iteratee,2))}),xorWith=baseRest(function(arrays){var comparator=last(arrays);return comparator="function"==typeof comparator?comparator:undefined,baseXor(arrayFilter(arrays,isArrayLikeObject),undefined,comparator)}),zip=baseRest(unzip),zipWith=baseRest(function(arrays){var length=arrays.length,iteratee=length>1?arrays[length-1]:undefined;return iteratee="function"==typeof iteratee?(arrays.pop(),iteratee):undefined,unzipWith(arrays,iteratee)}),wrapperAt=flatRest(function(paths){var length=paths.length,start=length?paths[0]:0,value=this.__wrapped__,interceptor=function(object){return baseAt(object,paths)};return!(length>1||this.__actions__.length)&&value instanceof LazyWrapper&&isIndex(start)?(value=value.slice(start,+start+(length?1:0)),value.__actions__.push({func:thru,args:[interceptor],thisArg:undefined}),new LodashWrapper(value,this.__chain__).thru(function(array){return length&&!array.length&&array.push(undefined),array})):this.thru(interceptor)}),countBy=createAggregator(function(result,value,key){hasOwnProperty.call(result,key)?++result[key]:baseAssignValue(result,key,1)}),find=createFind(findIndex),findLast=createFind(findLastIndex),groupBy=createAggregator(function(result,value,key){hasOwnProperty.call(result,key)?result[key].push(value):baseAssignValue(result,key,[value])}),invokeMap=baseRest(function(collection,path,args){var index=-1,isFunc="function"==typeof path,result=isArrayLike(collection)?Array(collection.length):[];return baseEach(collection,function(value){result[++index]=isFunc?apply(path,value,args):baseInvoke(value,path,args)}),result}),keyBy=createAggregator(function(result,value,key){baseAssignValue(result,key,value)}),partition=createAggregator(function(result,value,key){result[key?0:1].push(value)},function(){return[[],[]]}),sortBy=baseRest(function(collection,iteratees){if(null==collection)return[];var length=iteratees.length;return length>1&&isIterateeCall(collection,iteratees[0],iteratees[1])?iteratees=[]:length>2&&isIterateeCall(iteratees[0],iteratees[1],iteratees[2])&&(iteratees=[iteratees[0]]),baseOrderBy(collection,baseFlatten(iteratees,1),[])}),now=ctxNow||function(){return root.Date.now()},bind=baseRest(function(func,thisArg,partials){var bitmask=WRAP_BIND_FLAG;if(partials.length){var holders=replaceHolders(partials,getHolder(bind));bitmask|=WRAP_PARTIAL_FLAG}return createWrap(func,bitmask,thisArg,partials,holders)}),bindKey=baseRest(function(object,key,partials){var bitmask=WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG;if(partials.length){var holders=replaceHolders(partials,getHolder(bindKey));bitmask|=WRAP_PARTIAL_FLAG}return createWrap(key,bitmask,object,partials,holders)}),defer=baseRest(function(func,args){return baseDelay(func,1,args)}),delay=baseRest(function(func,wait,args){return baseDelay(func,toNumber(wait)||0,args)});memoize.Cache=MapCache;var overArgs=castRest(function(func,transforms){transforms=1==transforms.length&&isArray(transforms[0])?arrayMap(transforms[0],baseUnary(getIteratee())):arrayMap(baseFlatten(transforms,1),baseUnary(getIteratee()));var funcsLength=transforms.length;return baseRest(function(args){for(var index=-1,length=nativeMin(args.length,funcsLength);++index<length;)args[index]=transforms[index].call(this,args[index]);return apply(func,this,args)})}),partial=baseRest(function(func,partials){var holders=replaceHolders(partials,getHolder(partial));return createWrap(func,WRAP_PARTIAL_FLAG,undefined,partials,holders)}),partialRight=baseRest(function(func,partials){var holders=replaceHolders(partials,getHolder(partialRight));return createWrap(func,WRAP_PARTIAL_RIGHT_FLAG,undefined,partials,holders)}),rearg=flatRest(function(func,indexes){return createWrap(func,WRAP_REARG_FLAG,undefined,undefined,undefined,indexes)}),gt=createRelationalOperation(baseGt),gte=createRelationalOperation(function(value,other){return value>=other}),isArguments=baseIsArguments(function(){return arguments}())?baseIsArguments:function(value){return isObjectLike(value)&&hasOwnProperty.call(value,"callee")&&!propertyIsEnumerable.call(value,"callee")},isArray=Array.isArray,isArrayBuffer=nodeIsArrayBuffer?baseUnary(nodeIsArrayBuffer):baseIsArrayBuffer,isBuffer=nativeIsBuffer||stubFalse,isDate=nodeIsDate?baseUnary(nodeIsDate):baseIsDate,isMap=nodeIsMap?baseUnary(nodeIsMap):baseIsMap,isRegExp=nodeIsRegExp?baseUnary(nodeIsRegExp):baseIsRegExp,isSet=nodeIsSet?baseUnary(nodeIsSet):baseIsSet,isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray,lt=createRelationalOperation(baseLt),lte=createRelationalOperation(function(value,other){return value<=other}),assign=createAssigner(function(object,source){if(isPrototype(source)||isArrayLike(source))return void copyObject(source,keys(source),object);for(var key in source)hasOwnProperty.call(source,key)&&assignValue(object,key,source[key]); | |
}),assignIn=createAssigner(function(object,source){copyObject(source,keysIn(source),object)}),assignInWith=createAssigner(function(object,source,srcIndex,customizer){copyObject(source,keysIn(source),object,customizer)}),assignWith=createAssigner(function(object,source,srcIndex,customizer){copyObject(source,keys(source),object,customizer)}),at=flatRest(baseAt),defaults=baseRest(function(args){return args.push(undefined,assignInDefaults),apply(assignInWith,undefined,args)}),defaultsDeep=baseRest(function(args){return args.push(undefined,mergeDefaults),apply(mergeWith,undefined,args)}),invert=createInverter(function(result,value,key){result[value]=key},constant(identity)),invertBy=createInverter(function(result,value,key){hasOwnProperty.call(result,value)?result[value].push(key):result[value]=[key]},getIteratee),invoke=baseRest(baseInvoke),merge=createAssigner(function(object,source,srcIndex){baseMerge(object,source,srcIndex)}),mergeWith=createAssigner(function(object,source,srcIndex,customizer){baseMerge(object,source,srcIndex,customizer)}),omit=flatRest(function(object,paths){var result={};if(null==object)return result;var isDeep=!1;paths=arrayMap(paths,function(path){return path=castPath(path,object),isDeep||(isDeep=path.length>1),path}),copyObject(object,getAllKeysIn(object),result),isDeep&&(result=baseClone(result,CLONE_DEEP_FLAG|CLONE_FLAT_FLAG|CLONE_SYMBOLS_FLAG));for(var length=paths.length;length--;)baseUnset(result,paths[length]);return result}),pick=flatRest(function(object,paths){return null==object?{}:basePick(object,paths)}),toPairs=createToPairs(keys),toPairsIn=createToPairs(keysIn),camelCase=createCompounder(function(result,word,index){return word=word.toLowerCase(),result+(index?capitalize(word):word)}),kebabCase=createCompounder(function(result,word,index){return result+(index?"-":"")+word.toLowerCase()}),lowerCase=createCompounder(function(result,word,index){return result+(index?" ":"")+word.toLowerCase()}),lowerFirst=createCaseFirst("toLowerCase"),snakeCase=createCompounder(function(result,word,index){return result+(index?"_":"")+word.toLowerCase()}),startCase=createCompounder(function(result,word,index){return result+(index?" ":"")+upperFirst(word)}),upperCase=createCompounder(function(result,word,index){return result+(index?" ":"")+word.toUpperCase()}),upperFirst=createCaseFirst("toUpperCase"),attempt=baseRest(function(func,args){try{return apply(func,undefined,args)}catch(e){return isError(e)?e:new Error(e)}}),bindAll=flatRest(function(object,methodNames){return arrayEach(methodNames,function(key){key=toKey(key),baseAssignValue(object,key,bind(object[key],object))}),object}),flow=createFlow(),flowRight=createFlow(!0),method=baseRest(function(path,args){return function(object){return baseInvoke(object,path,args)}}),methodOf=baseRest(function(object,args){return function(path){return baseInvoke(object,path,args)}}),over=createOver(arrayMap),overEvery=createOver(arrayEvery),overSome=createOver(arraySome),range=createRange(),rangeRight=createRange(!0),add=createMathOperation(function(augend,addend){return augend+addend},0),ceil=createRound("ceil"),divide=createMathOperation(function(dividend,divisor){return dividend/divisor},1),floor=createRound("floor"),multiply=createMathOperation(function(multiplier,multiplicand){return multiplier*multiplicand},1),round=createRound("round"),subtract=createMathOperation(function(minuend,subtrahend){return minuend-subtrahend},0);return lodash.after=after,lodash.ary=ary,lodash.assign=assign,lodash.assignIn=assignIn,lodash.assignInWith=assignInWith,lodash.assignWith=assignWith,lodash.at=at,lodash.before=before,lodash.bind=bind,lodash.bindAll=bindAll,lodash.bindKey=bindKey,lodash.castArray=castArray,lodash.chain=chain,lodash.chunk=chunk,lodash.compact=compact,lodash.concat=concat,lodash.cond=cond,lodash.conforms=conforms,lodash.constant=constant,lodash.countBy=countBy,lodash.create=create,lodash.curry=curry,lodash.curryRight=curryRight,lodash.debounce=debounce,lodash.defaults=defaults,lodash.defaultsDeep=defaultsDeep,lodash.defer=defer,lodash.delay=delay,lodash.difference=difference,lodash.differenceBy=differenceBy,lodash.differenceWith=differenceWith,lodash.drop=drop,lodash.dropRight=dropRight,lodash.dropRightWhile=dropRightWhile,lodash.dropWhile=dropWhile,lodash.fill=fill,lodash.filter=filter,lodash.flatMap=flatMap,lodash.flatMapDeep=flatMapDeep,lodash.flatMapDepth=flatMapDepth,lodash.flatten=flatten,lodash.flattenDeep=flattenDeep,lodash.flattenDepth=flattenDepth,lodash.flip=flip,lodash.flow=flow,lodash.flowRight=flowRight,lodash.fromPairs=fromPairs,lodash.functions=functions,lodash.functionsIn=functionsIn,lodash.groupBy=groupBy,lodash.initial=initial,lodash.intersection=intersection,lodash.intersectionBy=intersectionBy,lodash.intersectionWith=intersectionWith,lodash.invert=invert,lodash.invertBy=invertBy,lodash.invokeMap=invokeMap,lodash.iteratee=iteratee,lodash.keyBy=keyBy,lodash.keys=keys,lodash.keysIn=keysIn,lodash.map=map,lodash.mapKeys=mapKeys,lodash.mapValues=mapValues,lodash.matches=matches,lodash.matchesProperty=matchesProperty,lodash.memoize=memoize,lodash.merge=merge,lodash.mergeWith=mergeWith,lodash.method=method,lodash.methodOf=methodOf,lodash.mixin=mixin,lodash.negate=negate,lodash.nthArg=nthArg,lodash.omit=omit,lodash.omitBy=omitBy,lodash.once=once,lodash.orderBy=orderBy,lodash.over=over,lodash.overArgs=overArgs,lodash.overEvery=overEvery,lodash.overSome=overSome,lodash.partial=partial,lodash.partialRight=partialRight,lodash.partition=partition,lodash.pick=pick,lodash.pickBy=pickBy,lodash.property=property,lodash.propertyOf=propertyOf,lodash.pull=pull,lodash.pullAll=pullAll,lodash.pullAllBy=pullAllBy,lodash.pullAllWith=pullAllWith,lodash.pullAt=pullAt,lodash.range=range,lodash.rangeRight=rangeRight,lodash.rearg=rearg,lodash.reject=reject,lodash.remove=remove,lodash.rest=rest,lodash.reverse=reverse,lodash.sampleSize=sampleSize,lodash.set=set,lodash.setWith=setWith,lodash.shuffle=shuffle,lodash.slice=slice,lodash.sortBy=sortBy,lodash.sortedUniq=sortedUniq,lodash.sortedUniqBy=sortedUniqBy,lodash.split=split,lodash.spread=spread,lodash.tail=tail,lodash.take=take,lodash.takeRight=takeRight,lodash.takeRightWhile=takeRightWhile,lodash.takeWhile=takeWhile,lodash.tap=tap,lodash.throttle=throttle,lodash.thru=thru,lodash.toArray=toArray,lodash.toPairs=toPairs,lodash.toPairsIn=toPairsIn,lodash.toPath=toPath,lodash.toPlainObject=toPlainObject,lodash.transform=transform,lodash.unary=unary,lodash.union=union,lodash.unionBy=unionBy,lodash.unionWith=unionWith,lodash.uniq=uniq,lodash.uniqBy=uniqBy,lodash.uniqWith=uniqWith,lodash.unset=unset,lodash.unzip=unzip,lodash.unzipWith=unzipWith,lodash.update=update,lodash.updateWith=updateWith,lodash.values=values,lodash.valuesIn=valuesIn,lodash.without=without,lodash.words=words,lodash.wrap=wrap,lodash.xor=xor,lodash.xorBy=xorBy,lodash.xorWith=xorWith,lodash.zip=zip,lodash.zipObject=zipObject,lodash.zipObjectDeep=zipObjectDeep,lodash.zipWith=zipWith,lodash.entries=toPairs,lodash.entriesIn=toPairsIn,lodash.extend=assignIn,lodash.extendWith=assignInWith,mixin(lodash,lodash),lodash.add=add,lodash.attempt=attempt,lodash.camelCase=camelCase,lodash.capitalize=capitalize,lodash.ceil=ceil,lodash.clamp=clamp,lodash.clone=clone,lodash.cloneDeep=cloneDeep,lodash.cloneDeepWith=cloneDeepWith,lodash.cloneWith=cloneWith,lodash.conformsTo=conformsTo,lodash.deburr=deburr,lodash.defaultTo=defaultTo,lodash.divide=divide,lodash.endsWith=endsWith,lodash.eq=eq,lodash.escape=escape,lodash.escapeRegExp=escapeRegExp,lodash.every=every,lodash.find=find,lodash.findIndex=findIndex,lodash.findKey=findKey,lodash.findLast=findLast,lodash.findLastIndex=findLastIndex,lodash.findLastKey=findLastKey,lodash.floor=floor,lodash.forEach=forEach,lodash.forEachRight=forEachRight,lodash.forIn=forIn,lodash.forInRight=forInRight,lodash.forOwn=forOwn,lodash.forOwnRight=forOwnRight,lodash.get=get,lodash.gt=gt,lodash.gte=gte,lodash.has=has,lodash.hasIn=hasIn,lodash.head=head,lodash.identity=identity,lodash.includes=includes,lodash.indexOf=indexOf,lodash.inRange=inRange,lodash.invoke=invoke,lodash.isArguments=isArguments,lodash.isArray=isArray,lodash.isArrayBuffer=isArrayBuffer,lodash.isArrayLike=isArrayLike,lodash.isArrayLikeObject=isArrayLikeObject,lodash.isBoolean=isBoolean,lodash.isBuffer=isBuffer,lodash.isDate=isDate,lodash.isElement=isElement,lodash.isEmpty=isEmpty,lodash.isEqual=isEqual,lodash.isEqualWith=isEqualWith,lodash.isError=isError,lodash.isFinite=isFinite,lodash.isFunction=isFunction,lodash.isInteger=isInteger,lodash.isLength=isLength,lodash.isMap=isMap,lodash.isMatch=isMatch,lodash.isMatchWith=isMatchWith,lodash.isNaN=isNaN,lodash.isNative=isNative,lodash.isNil=isNil,lodash.isNull=isNull,lodash.isNumber=isNumber,lodash.isObject=isObject,lodash.isObjectLike=isObjectLike,lodash.isPlainObject=isPlainObject,lodash.isRegExp=isRegExp,lodash.isSafeInteger=isSafeInteger,lodash.isSet=isSet,lodash.isString=isString,lodash.isSymbol=isSymbol,lodash.isTypedArray=isTypedArray,lodash.isUndefined=isUndefined,lodash.isWeakMap=isWeakMap,lodash.isWeakSet=isWeakSet,lodash.join=join,lodash.kebabCase=kebabCase,lodash.last=last,lodash.lastIndexOf=lastIndexOf,lodash.lowerCase=lowerCase,lodash.lowerFirst=lowerFirst,lodash.lt=lt,lodash.lte=lte,lodash.max=max,lodash.maxBy=maxBy,lodash.mean=mean,lodash.meanBy=meanBy,lodash.min=min,lodash.minBy=minBy,lodash.stubArray=stubArray,lodash.stubFalse=stubFalse,lodash.stubObject=stubObject,lodash.stubString=stubString,lodash.stubTrue=stubTrue,lodash.multiply=multiply,lodash.nth=nth,lodash.noConflict=noConflict,lodash.noop=noop,lodash.now=now,lodash.pad=pad,lodash.padEnd=padEnd,lodash.padStart=padStart,lodash.parseInt=parseInt,lodash.random=random,lodash.reduce=reduce,lodash.reduceRight=reduceRight,lodash.repeat=repeat,lodash.replace=replace,lodash.result=result,lodash.round=round,lodash.runInContext=runInContext,lodash.sample=sample,lodash.size=size,lodash.snakeCase=snakeCase,lodash.some=some,lodash.sortedIndex=sortedIndex,lodash.sortedIndexBy=sortedIndexBy,lodash.sortedIndexOf=sortedIndexOf,lodash.sortedLastIndex=sortedLastIndex,lodash.sortedLastIndexBy=sortedLastIndexBy,lodash.sortedLastIndexOf=sortedLastIndexOf,lodash.startCase=startCase,lodash.startsWith=startsWith,lodash.subtract=subtract,lodash.sum=sum,lodash.sumBy=sumBy,lodash.template=template,lodash.times=times,lodash.toFinite=toFinite,lodash.toInteger=toInteger,lodash.toLength=toLength,lodash.toLower=toLower,lodash.toNumber=toNumber,lodash.toSafeInteger=toSafeInteger,lodash.toString=toString,lodash.toUpper=toUpper,lodash.trim=trim,lodash.trimEnd=trimEnd,lodash.trimStart=trimStart,lodash.truncate=truncate,lodash.unescape=unescape,lodash.uniqueId=uniqueId,lodash.upperCase=upperCase,lodash.upperFirst=upperFirst,lodash.each=forEach,lodash.eachRight=forEachRight,lodash.first=head,mixin(lodash,function(){var source={};return baseForOwn(lodash,function(func,methodName){hasOwnProperty.call(lodash.prototype,methodName)||(source[methodName]=func)}),source}(),{chain:!1}),lodash.VERSION=VERSION,arrayEach(["bind","bindKey","curry","curryRight","partial","partialRight"],function(methodName){lodash[methodName].placeholder=lodash}),arrayEach(["drop","take"],function(methodName,index){LazyWrapper.prototype[methodName]=function(n){var filtered=this.__filtered__;if(filtered&&!index)return new LazyWrapper(this);n=n===undefined?1:nativeMax(toInteger(n),0);var result=this.clone();return filtered?result.__takeCount__=nativeMin(n,result.__takeCount__):result.__views__.push({size:nativeMin(n,MAX_ARRAY_LENGTH),type:methodName+(result.__dir__<0?"Right":"")}),result},LazyWrapper.prototype[methodName+"Right"]=function(n){return this.reverse()[methodName](n).reverse()}}),arrayEach(["filter","map","takeWhile"],function(methodName,index){var type=index+1,isFilter=type==LAZY_FILTER_FLAG||type==LAZY_WHILE_FLAG;LazyWrapper.prototype[methodName]=function(iteratee){var result=this.clone();return result.__iteratees__.push({iteratee:getIteratee(iteratee,3),type:type}),result.__filtered__=result.__filtered__||isFilter,result}}),arrayEach(["head","last"],function(methodName,index){var takeName="take"+(index?"Right":"");LazyWrapper.prototype[methodName]=function(){return this[takeName](1).value()[0]}}),arrayEach(["initial","tail"],function(methodName,index){var dropName="drop"+(index?"":"Right");LazyWrapper.prototype[methodName]=function(){return this.__filtered__?new LazyWrapper(this):this[dropName](1)}}),LazyWrapper.prototype.compact=function(){return this.filter(identity)},LazyWrapper.prototype.find=function(predicate){return this.filter(predicate).head()},LazyWrapper.prototype.findLast=function(predicate){return this.reverse().find(predicate)},LazyWrapper.prototype.invokeMap=baseRest(function(path,args){return"function"==typeof path?new LazyWrapper(this):this.map(function(value){return baseInvoke(value,path,args)})}),LazyWrapper.prototype.reject=function(predicate){return this.filter(negate(getIteratee(predicate)))},LazyWrapper.prototype.slice=function(start,end){start=toInteger(start);var result=this;return result.__filtered__&&(start>0||end<0)?new LazyWrapper(result):(start<0?result=result.takeRight(-start):start&&(result=result.drop(start)),end!==undefined&&(end=toInteger(end),result=end<0?result.dropRight(-end):result.take(end-start)),result)},LazyWrapper.prototype.takeRightWhile=function(predicate){return this.reverse().takeWhile(predicate).reverse()},LazyWrapper.prototype.toArray=function(){return this.take(MAX_ARRAY_LENGTH)},baseForOwn(LazyWrapper.prototype,function(func,methodName){var checkIteratee=/^(?:filter|find|map|reject)|While$/.test(methodName),isTaker=/^(?:head|last)$/.test(methodName),lodashFunc=lodash[isTaker?"take"+("last"==methodName?"Right":""):methodName],retUnwrapped=isTaker||/^find/.test(methodName);lodashFunc&&(lodash.prototype[methodName]=function(){var value=this.__wrapped__,args=isTaker?[1]:arguments,isLazy=value instanceof LazyWrapper,iteratee=args[0],useLazy=isLazy||isArray(value),interceptor=function(value){var result=lodashFunc.apply(lodash,arrayPush([value],args));return isTaker&&chainAll?result[0]:result};useLazy&&checkIteratee&&"function"==typeof iteratee&&1!=iteratee.length&&(isLazy=useLazy=!1);var chainAll=this.__chain__,isHybrid=!!this.__actions__.length,isUnwrapped=retUnwrapped&&!chainAll,onlyLazy=isLazy&&!isHybrid;if(!retUnwrapped&&useLazy){value=onlyLazy?value:new LazyWrapper(this);var result=func.apply(value,args);return result.__actions__.push({func:thru,args:[interceptor],thisArg:undefined}),new LodashWrapper(result,chainAll)}return isUnwrapped&&onlyLazy?func.apply(this,args):(result=this.thru(interceptor),isUnwrapped?isTaker?result.value()[0]:result.value():result)})}),arrayEach(["pop","push","shift","sort","splice","unshift"],function(methodName){var func=arrayProto[methodName],chainName=/^(?:push|sort|unshift)$/.test(methodName)?"tap":"thru",retUnwrapped=/^(?:pop|shift)$/.test(methodName);lodash.prototype[methodName]=function(){var args=arguments;if(retUnwrapped&&!this.__chain__){var value=this.value();return func.apply(isArray(value)?value:[],args)}return this[chainName](function(value){return func.apply(isArray(value)?value:[],args)})}}),baseForOwn(LazyWrapper.prototype,function(func,methodName){var lodashFunc=lodash[methodName];if(lodashFunc){var key=lodashFunc.name+"",names=realNames[key]||(realNames[key]=[]);names.push({name:methodName,func:lodashFunc})}}),realNames[createHybrid(undefined,WRAP_BIND_KEY_FLAG).name]=[{name:"wrapper",func:undefined}],LazyWrapper.prototype.clone=lazyClone,LazyWrapper.prototype.reverse=lazyReverse,LazyWrapper.prototype.value=lazyValue,lodash.prototype.at=wrapperAt,lodash.prototype.chain=wrapperChain,lodash.prototype.commit=wrapperCommit,lodash.prototype.next=wrapperNext,lodash.prototype.plant=wrapperPlant,lodash.prototype.reverse=wrapperReverse,lodash.prototype.toJSON=lodash.prototype.valueOf=lodash.prototype.value=wrapperValue,lodash.prototype.first=lodash.prototype.head,symIterator&&(lodash.prototype[symIterator]=wrapperToIterator),lodash},_=runInContext();root._=_,__WEBPACK_AMD_DEFINE_RESULT__=function(){return _}.call(exports,__webpack_require__,exports,module),!(__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}).call(this)}).call(exports,function(){return this}(),__webpack_require__(3)(module))},function(module,exports){module.exports=function(module){return module.webpackPolyfill||(module.deprecate=function(){},module.paths=[],module.children=[],module.webpackPolyfill=1),module}},function(module,exports,__webpack_require__){var Matrix,Screen,Utils,_,__domComplete,__domCompleteState,__domReady,_textSizeNode,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1},slice=[].slice;_=__webpack_require__(1)._,Screen=__webpack_require__(5).Screen,Matrix=__webpack_require__(9).Matrix,Utils={},Utils.reset=function(){return Framer.CurrentContext.reset()},Utils.getValue=function(value){return _.isFunction(value)?value():value},Utils.getValueForKeyPath=function(obj,key){var len,o,ref,ref1,result;if(result=obj,ref=!1,indexOf.call(key,ref)>=0)return obj[key];for(ref1=key.split("."),o=0,len=ref1.length;o<len;o++)key=ref1[o],result=result[key];return result},Utils.setValueForKeyPath=function(obj,path,val){var field,fields,i,n,result;for(fields=path.split("."),result=obj,i=0,n=fields.length;i<n&&void 0!==result;)field=fields[i],i===n-1?result[field]=val:("undefined"!=typeof result[field]&&_.isObject(result[field])||(result[field]={}),result=result[field]),i++},Utils.valueOrDefault=function(value,defaultValue){return void 0!==value&&null!==value||(value=defaultValue),value},Utils.arrayNext=function(arr,item){return arr[arr.indexOf(item)+1]||_.head(arr)},Utils.arrayPrev=function(arr,item){return arr[arr.indexOf(item)-1]||_.last(arr)},Utils.sum=function(arr){return _.reduce(arr,function(a,b){return a+b})},Utils.average=function(arr){return Utils.sum(arr)/arr.length},Utils.mean=Utils.average,Utils.median=function(x){var sorted;return 0===x.length?null:(sorted=x.slice().sort(function(a,b){return a-b}),sorted.length%2===1?sorted[(sorted.length-1)/2]:(sorted[sorted.length/2-1]+sorted[sorted.length/2])/2)},Utils.nearestIncrement=function(x,increment){return increment?Math.round(x*(1/increment))/(1/increment):x},null==window.requestAnimationFrame&&(window.requestAnimationFrame=window.webkitRequestAnimationFrame),null==window.requestAnimationFrame&&(window.requestAnimationFrame=function(f){return Utils.delay(1/60,f)}),window.performance?Utils.getTime=function(){return window.performance.now()/1e3}:Utils.getTime=function(){return Date.now()/1e3},Utils.delay=function(time,f){var timer;return timer=setTimeout(f,1e3*time),Framer.CurrentContext.addTimer(timer),timer},Utils.interval=function(time,f){var timer;return timer=setInterval(f,1e3*time),Framer.CurrentContext.addInterval(timer),timer},Utils.debounce=function(threshold,fn,immediate){var timeout;return null==threshold&&(threshold=.1),timeout=null,threshold*=1e3,function(){var args,delayed,obj;return args=1<=arguments.length?slice.call(arguments,0):[],obj=this,delayed=function(){return immediate||fn.apply(obj,args),timeout=null},timeout?clearTimeout(timeout):immediate&&fn.apply(obj,args),timeout=setTimeout(delayed,threshold)}},Utils.throttle=function(delay,fn){var timer;return 0===delay?fn:(delay*=1e3,timer=!1,function(){if(!timer)return timer=!0,delay!==-1&&setTimeout(function(){return timer=!1},delay),fn.apply(null,arguments)})},Utils.memoize=function(fn){return function(){var args,currentArg,hash,i;for(args=Array.prototype.slice.call(arguments),hash="",i=args.length,currentArg=null;i--;)currentArg=args[i],hash+=currentArg===Object(currentArg)?JSON.stringify(currentArg):currentArg,fn.memoize||(fn.memoize={});return hash in fn.memoize?fn.memoize[hash]:fn.memoize[hash]=fn.apply(this,args)}},Utils.randomColor=function(alpha){return null==alpha&&(alpha=1),Color.random(alpha)},Utils.randomChoice=function(arr){return arr[Math.floor(Math.random()*arr.length)]},Utils.randomNumber=function(a,b){return null==a&&(a=0),null==b&&(b=1),Utils.mapRange(Math.random(),0,1,a,b)},Utils.randomImage=function(layer,offset){var increment,photo,photos,size;return null==offset&&(offset=50),_.isNumber(layer)&&(layer={id:layer}),photos=["1417733403748-83bbc7c05140","1423841265803-dfac59ebf718","1433689056001-018e493576bc","1430812411929-de4cf1d1fe73","1457269449834-928af64c684d","1443616839562-036bb2afd9a2","1461535676131-2de1f7054d3f","1462393582935-1ac76b85dcf1","1414589530802-cb54ce0575d9","1422908132590-117a051fc5cd","1438522014717-d7ce32b9bab9","1451650804883-52fb86cc5b18","1462058164249-2dcdcda67ce7","1456757014009-0614a080ff7f","1434238255348-4fb0d9caa0a4","1448071792026-7064a01897e7","1458681842652-019f4eeda5e5","1460919920543-d8c45f4bd621","1447767961238-038617b84a2b","1449089299624-89ce41e8306c","1414777410116-81e404502b52","1433994349623-0a18966ee9c0","1452567772283-91d67178f409","1458245229726-a8ba04cb5969","1422246719650-cb30d19825e3","1417392639864-2c88dd07f460","1442328166075-47fe7153c128","1448467258552-6b3982373a13","1447023362548-250f3a7b80ed","1451486242265-24b0c0ef9a51","1414339372428-797ec111646d"],photo=Utils.randomChoice(photos),(null!=layer?layer.id:void 0)&&(photo=photos[layer.id%photos.length]),increment=100,size=1024,layer&&(size=Math.max(layer.width,layer.height),size=Math.ceil(size/increment)*increment,size<increment&&(size=increment),size=Utils.devicePixelRatio()*size,size=parseInt(size)),"https://images.unsplash.com/photo-"+photo+"?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&w="+size+"&h="+size+"&fit=max"},Utils.defineEnum=function(names,offset,geometric){var Enum,i,j,len,name,o;for(null==names&&(names=[]),null==offset&&(offset=0),null==geometric&&(geometric=0),Enum={},i=o=0,len=names.length;o<len;i=++o)name=names[i],j=i,j=offset?j+offset:j,j=geometric?Math.pow(geometric,j):j,Enum[Enum[name]=j]=name;return Enum},Utils.labelLayer=function(layer,text,style){var fontSize;if(null==style&&(style={}),text&&""!==text&&"string"==typeof text)return fontSize=Math.max(Math.min(48,parseInt(layer.height/3.2)),14),style=_.extend({font:fontSize+"px/1em "+Utils.deviceFont(),lineHeight:layer.height+"px",textAlign:"center",color:"#fff"},style),layer.style=style,layer.html=text},Utils.stringify=function(obj){try{if(_.isObject(obj))return JSON.stringify(obj)}catch(error){}return null===obj?"null":void 0===obj?"undefined":obj.toString?obj.toString():obj},Utils.inspectObjectType=function(item){var className,extract,ref,ref1,ref2,ref3;return null!=(null!=(ref=item.constructor)?ref.name:void 0)&&"Object"!==(null!=(ref1=item.constructor)?ref1.name:void 0)?item.constructor.name:(extract=function(str){var match,regex;return str?(regex=/\[object (\w+)\]/,match=regex.exec(str),match?match[1]:null):null},item.toString&&(className=extract(item.toString()))?className:(null!=(ref2=item.constructor)?ref2.toString:void 0)&&(className=extract(null!=(ref3=item.constructor)?ref3.toString():void 0))?className.replace("Constructor",""):"Object")},Utils.inspect=function(item,max,l){var code,limit,objectInfo,objectType;return null==max&&(max=5),null==l&&(l=0),null===item?"null":void 0===item?"undefined":_.isFunction(item.toInspect)?item.toInspect():_.isString(item)?'"'+item+'"':_.isNumber(item)?""+item:_.isFunction(item)?(code=item.toString().slice("function ".length).replace(/\n/g,"").replace(/\s+/g," "),limit=50,code.length>limit&&l>0&&(code=_.trimEnd(code.slice(0,+limit+1||9e9))+"… }"),"<Function "+code+">"):_.isArray(item)?l>max?"[...]":"["+_.map(item,function(i){return Utils.inspect(i,max,l+1)}).join(", ")+"]":_.isObject(item)?(objectType=Utils.inspectObjectType(item),/HTML\w+?Element/.test(objectType)?"<"+objectType+">":(objectInfo=l>max?"{...}":"{"+_.map(item,function(v,k){return k+":"+Utils.inspect(v,max,l+1)}).join(", ")+"}","Object"===objectType?objectInfo:"<"+objectType+" "+objectInfo+">")):""+item},Utils.uuid=function(){var chars,digit,o,output,r,random;for(chars="0123456789abcdefghijklmnopqrstuvwxyz".split(""),output=new Array(36),random=0,digit=o=1;o<=32;digit=++o)random<=2&&(random=33554432+16777216*Math.random()|0),r=15&random,random>>=4,output[digit]=chars[19===digit?3&r|8:r];return output.join("")},Utils.arrayFromArguments=function(args){return _.isArray(args[0])?args[0]:Array.prototype.slice.call(args)},Utils.cycle=function(){var args,curr;return args=Utils.arrayFromArguments(arguments),curr=-1,function(){return curr++,curr>=args.length&&(curr=0),args[curr]}},Utils.toggle=Utils.cycle,Utils.callAfterCount=function(total,callback){var callAfterCount,count;return count=0,callAfterCount=function(){if(count+=1,count===total)return"function"==typeof callback?callback():void 0}},Utils.isWebKit=function(){return void 0!==window.WebKitCSSMatrix},Utils.webkitVersion=function(){var regexp,result,version;return version=-1,regexp=/AppleWebKit\/([\d.]+)/,result=regexp.exec(navigator.userAgent),result&&(version=parseFloat(result[1])),version},Utils.isChrome=function(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)},Utils.isSafari=function(){return/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor)},Utils.isAndroid=function(){return/(android)/i.test(navigator.userAgent)},Utils.isIOS=function(){return/(iPhone|iPod|iPad)/i.test(navigator.platform)},Utils.isMacOS=function(){return/Mac/.test(navigator.platform)},Utils.isWindows=function(){return/Win/.test(navigator.platform)},Utils.isTouch=function(){return null===window.ontouchstart&&null===window.ontouchmove&&null===window.ontouchend},Utils.isDesktop=function(){return"desktop"===Utils.deviceType()},Utils.isPhone=function(){return"phone"===Utils.deviceType()},Utils.isTablet=function(){return"tablet"===Utils.deviceType()},Utils.isMobile=function(){return Utils.isPhone()||Utils.isTablet()},Utils.isFileUrl=function(url){return _.startsWith(url,"file://")},Utils.isDataUrl=function(url){return _.startsWith(url,"data:")},Utils.isRelativeUrl=function(url){return!/^([a-zA-Z]{1,8}:\/\/).*$/.test(url)},Utils.isLocalServerUrl=function(url){return url.indexOf("127.0.0.1")!==-1||url.indexOf("localhost")!==-1},Utils.isLocalUrl=function(url){return!!Utils.isFileUrl(url)||!!Utils.isLocalServerUrl(url)},Utils.isLocalAssetUrl=function(url,baseUrl){return null==baseUrl&&(baseUrl=window.location.href),!Utils.isDataUrl(url)&&(!!Utils.isLocalUrl(url)||!(!Utils.isRelativeUrl(url)||!Utils.isLocalUrl(baseUrl)))},Utils.isFramerStudio=function(){return navigator.userAgent.indexOf("FramerStudio")!==-1},Utils.framerStudioVersion=function(){var isBeta,isFuture,isLocal,matches,version;if(Utils.isFramerStudio()){if(isBeta=navigator.userAgent.indexOf("FramerStudio/beta")>=0,isLocal=navigator.userAgent.indexOf("FramerStudio/local")>=0,isFuture=navigator.userAgent.indexOf("FramerStudio/future")>=0,isBeta||isLocal||isFuture)return Number.MAX_VALUE;if(matches=navigator.userAgent.match(/\d+$/),matches&&matches.length>0&&(version=parseInt(matches[0])),_.isNumber(version))return version}return Number.MAX_VALUE},Utils.devicePixelRatio=function(){return window.devicePixelRatio},Utils.isJP2Supported=function(){return Utils.isWebKit()&&!Utils.isChrome()},Utils.isWebPSupported=function(){return Utils.isChrome()},Utils.deviceType=function(){return/(tablet)|(iPad)|(Nexus 9)/i.test(navigator.userAgent)?"tablet":/(mobi)/i.test(navigator.userAgent)?"phone":"desktop"},Utils.pathJoin=function(){return Utils.arrayFromArguments(arguments).join("/")},Utils.deviceFont=function(os){return os||(Utils.isMacOS()&&(os="macos"),Utils.isIOS()&&(os="ios"),Utils.isAndroid()&&(os="android"),Utils.isWindows()&&(os="windows")),"macos"===os?"-apple-system, SF UI Text, Helvetica Neue":"ios"===os?"-apple-system, SF UI Text, Helvetica Neue":"android"===os?"Roboto, Helvetica Neue":"windows"===os?"Segoe UI":"Helvetica"},Utils.round=function(value,decimals,increment,min,max){var d;return null==decimals&&(decimals=0),null==increment&&(increment=null),null==min&&(min=null),null==max&&(max=null),d=Math.pow(10,decimals),increment&&(value=Math.round(value/increment)*increment),value=Math.round(value*d)/d,min&&value<min?min:max&&value>max?max:value},Utils.roundWhole=function(value,decimals){return null==decimals&&(decimals=1),parseInt(value)===value?parseInt(value):Utils.round(value,decimals)},Utils.clamp=function(value,a,b){var max,min;return min=Math.min(a,b),max=Math.max(a,b),value<min&&(value=min),value>max&&(value=max),value},Utils.mapRange=function(value,fromLow,fromHigh,toLow,toHigh){return toLow+(value-fromLow)/(fromHigh-fromLow)*(toHigh-toLow)},Utils.modulate=function(value,rangeA,rangeB,limit){var fromHigh,fromLow,result,toHigh,toLow;if(null==limit&&(limit=!1),fromLow=rangeA[0],fromHigh=rangeA[1],toLow=rangeB[0],toHigh=rangeB[1],result=toLow+(value-fromLow)/(fromHigh-fromLow)*(toHigh-toLow),limit===!0)if(toLow<toHigh){if(result<toLow)return toLow;if(result>toHigh)return toHigh}else{if(result>toLow)return toLow;if(result<toHigh)return toHigh}return result},Utils.parseFunction=function(str){var result;return result={name:"",args:[]},_.endsWith(str,")")?(result.name=str.split("(")[0],result.args=str.split("(")[1].split(",").map(function(a){return _.trim(_.trimEnd(a,")"))})):result.name=str,result},__domCompleteState="interactive",__domComplete=[],__domReady=!1,"undefined"!=typeof document&&null!==document&&(document.onreadystatechange=function(event){var f,results;if(document.readyState===__domCompleteState){for(__domReady=!0,results=[];__domComplete.length;)results.push(f=__domComplete.shift()());return results}}),Utils.domComplete=function(f){return __domReady?f():__domComplete.push(f)},Utils.domCompleteCancel=function(f){return __domComplete=_.without(__domComplete,f)},Utils.domValidEvent=function(element,eventName){if(eventName)return"touchstart"===eventName||"touchmove"===eventName||"touchend"===eventName||"undefined"!=typeof element["on"+eventName.toLowerCase()]},Utils.domLoadScript=function(url,callback){var head,script;return script=document.createElement("script"),script.type="text/javascript",script.src=url,script.onload=callback,head=document.getElementsByTagName("head")[0],head.appendChild(script),script},Utils.domLoadData=function(path,callback){var request;return request=new XMLHttpRequest,request.addEventListener("load",function(){return callback(null,request.responseText)},!1),request.addEventListener("error",function(){return callback(!0,null)},!1),request.open("GET",path,!0),request.send(null)},Utils.domLoadJSON=function(path,callback){return Utils.domLoadData(path,function(err,data){return callback(err,JSON.parse(data))})},Utils.domLoadDataSync=function(path){var e,handleError,ref,request;request=new XMLHttpRequest,request.open("GET",path,!1);try{request.send(null)}catch(error){e=error,console.debug("XMLHttpRequest.error",e)}return handleError=function(){throw Error("Utils.domLoadDataSync: "+path+" -> ["+request.status+" "+request.statusText+"]")},request.onerror=handleError,200!==(ref=request.status)&&0!==ref&&handleError(),request.responseText||handleError(),request.responseText},Utils.domLoadJSONSync=function(path){return JSON.parse(Utils.domLoadDataSync(path))},Utils.domLoadScriptSync=function(path){var scriptData;return scriptData=Utils.domLoadDataSync(path),eval(scriptData),scriptData},Utils.insertCSS=function(css){var styleElement;return styleElement=document.createElement("style"),styleElement.type="text/css",styleElement.innerHTML=css,Utils.domComplete(function(){return document.body.appendChild(styleElement)})},Utils.loadImage=function(url,callback,context){var element;return element=new Image,null==context&&(context=Framer.CurrentContext),context.domEventManager.wrap(element).addEventListener("load",function(event){return callback()}),context.domEventManager.wrap(element).addEventListener("error",function(event){return callback(!0)}),element.src=url},Utils.isInsideIframe=function(){return window!==window.top},Utils.point=function(input){var k,len,o,ref,result; | |
if(_.isNumber(input))return Utils.pointZero(input);if(!input)return Utils.pointZero();for(result=Utils.pointZero(),ref=["x","y"],o=0,len=ref.length;o<len;o++)k=ref[o],_.isNumber(input[k])&&(result[k]=input[k]);return result},Utils.pointZero=function(n){return null==n&&(n=0),{x:n,y:n}},Utils.pointDivide=function(point,fraction){return point={x:point.x/fraction,y:point.y/fraction}},Utils.pointAdd=function(pointA,pointB){var point;return point={x:pointA.x+pointB.x,y:pointA.y+pointB.y}},Utils.pointSubtract=function(pointA,pointB){var point;return point={x:pointA.x-pointB.x,y:pointA.y-pointB.y}},Utils.pointMin=function(){var point,points;return points=Utils.arrayFromArguments(arguments),point={x:_.min(points.map(function(size){return size.x})),y:_.min(points.map(function(size){return size.y}))}},Utils.pointMax=function(){var point,points;return points=Utils.arrayFromArguments(arguments),point={x:_.max(points.map(function(size){return size.x})),y:_.max(points.map(function(size){return size.y}))}},Utils.pointDelta=function(pointA,pointB){var delta;return delta={x:pointB.x-pointA.x,y:pointB.y-pointA.y}},Utils.pointDistance=function(pointA,pointB){var a,b;return a=pointA.x-pointB.x,b=pointA.y-pointB.y,Math.sqrt(a*a+b*b)},Utils.pointInvert=function(point){return point={x:0-point.x,y:0-point.y}},Utils.pointTotal=function(point){return point.x+point.y},Utils.pointAbs=function(point){return point={x:Math.abs(point.x),y:Math.abs(point.y)}},Utils.pointInFrame=function(point,frame){return!(point.x<Utils.frameGetMinX(frame)||point.x>Utils.frameGetMaxX(frame))&&!(point.y<Utils.frameGetMinY(frame)||point.y>Utils.frameGetMaxY(frame))},Utils.pointCenter=function(pointA,pointB){var point;return point={x:(pointA.x+pointB.x)/2,y:(pointA.y+pointB.y)/2}},Utils.pointAngle=function(pointA,pointB){return 180*Math.atan2(pointB.y-pointA.y,pointB.x-pointA.x)/Math.PI},Utils.size=function(input){var k,len,o,ref,result;if(_.isNumber(input))return Utils.sizeZero(input);if(!input)return Utils.sizeZero();for(result=Utils.sizeZero(),ref=["width","height"],o=0,len=ref.length;o<len;o++)k=ref[o],_.isNumber(input[k])&&(result[k]=input[k]);return result},Utils.sizeZero=function(n){return null==n&&(n=0),{width:n,height:n}},Utils.sizeMin=function(){var size,sizes;return sizes=Utils.arrayFromArguments(arguments),size={width:_.min(sizes.map(function(size){return size.width})),height:_.min(sizes.map(function(size){return size.height}))}},Utils.sizeMax=function(){var size,sizes;return sizes=Utils.arrayFromArguments(arguments),size={width:_.max(sizes.map(function(size){return size.width})),height:_.max(sizes.map(function(size){return size.height}))}},Utils.rectZero=function(args){return null==args&&(args={}),_.defaults(args,{top:0,right:0,bottom:0,left:0})},Utils.parseRect=function(args){if(_.isArray(args)&&_.isNumber(args[0])){if(1===args.length)return Utils.parseRect({top:args[0]});if(2===args.length)return Utils.parseRect({top:args[0],right:args[1]});if(3===args.length)return Utils.parseRect({top:args[0],right:args[1],bottom:args[2]});if(4===args.length)return Utils.parseRect({top:args[0],right:args[1],bottom:args[2],left:args[3]})}return _.isArray(args)&&_.isObject(args[0])?args[0]:_.isObject(args)?args:_.isNumber(args)?{top:args,right:args,bottom:args,left:args}:{}},Utils.frameGetMinX=function(frame){return frame.x},Utils.frameSetMinX=function(frame,value){return frame.x=value},Utils.frameGetMidX=function(frame){return 0===frame.width?frame.x:frame.x+frame.width/2},Utils.frameSetMidX=function(frame,value){return frame.x=0===frame.width?value:value-frame.width/2},Utils.frameGetMaxX=function(frame){return 0===frame.width?0:frame.x+frame.width},Utils.frameSetMaxX=function(frame,value){return frame.x=0===frame.width?0:value-frame.width},Utils.frameGetMinY=function(frame){return frame.y},Utils.frameSetMinY=function(frame,value){return frame.y=value},Utils.frameGetMidY=function(frame){return 0===frame.height?frame.y:frame.y+frame.height/2},Utils.frameSetMidY=function(frame,value){return frame.y=0===frame.height?value:value-frame.height/2},Utils.frameGetMaxY=function(frame){return 0===frame.height?0:frame.y+frame.height},Utils.frameSetMaxY=function(frame,value){return frame.y=0===frame.height?0:value-frame.height},Utils.frame=function(input){var k,len,o,ref,result;if(_.isNumber(input))return Utils.frameZero(input);if(!input)return Utils.frameZero();for(result=Utils.frameZero(),ref=["x","y","width","height"],o=0,len=ref.length;o<len;o++)k=ref[o],_.isNumber(input[k])&&(result[k]=input[k]);return result},Utils.frameZero=function(n){return null==n&&(n=0),{x:n,y:n}},Utils.frameSize=function(frame){var size;return size={width:frame.width,height:frame.height}},Utils.framePoint=function(frame){var point;return point={x:frame.x,y:frame.y}},Utils.pointsFromFrame=function(frame){var corner1,corner2,corner3,corner4,maxX,maxY,minX,minY;return minX=Utils.frameGetMinX(frame),maxX=Utils.frameGetMaxX(frame),minY=Utils.frameGetMinY(frame),maxY=Utils.frameGetMaxY(frame),corner1={x:minX,y:minY},corner2={x:minX,y:maxY},corner3={x:maxX,y:maxY},corner4={x:maxX,y:minY},[corner1,corner2,corner3,corner4]},Utils.frameFromPoints=function(points){var frame,maxX,maxY,minX,minY,xValues,yValues;return xValues=_.map(points,"x"),yValues=_.map(points,"y"),minX=_.min(xValues),maxX=_.max(xValues),minY=_.min(yValues),maxY=_.max(yValues),frame={x:minX,y:minY,width:maxX-minX,height:maxY-minY}},Utils.pixelAlignedFrame=function(frame){var result;return result={width:Math.round(frame.width+frame.x%1),height:Math.round(frame.height+frame.y%1),x:Math.round(frame.x),y:Math.round(frame.y)}},Utils.frameMerge=function(){var frame,frames;return frames=Utils.arrayFromArguments(arguments),frame={x:_.min(frames.map(Utils.frameGetMinX)),y:_.min(frames.map(Utils.frameGetMinY))},frame.width=_.max(frames.map(Utils.frameGetMaxX))-frame.x,frame.height=_.max(frames.map(Utils.frameGetMaxY))-frame.y,frame},Utils.frameInFrame=function(frameA,frameB){var len,o,point,ref;for(ref=Utils.pointsFromFrame(frameA),o=0,len=ref.length;o<len;o++)if(point=ref[o],!Utils.pointInFrame(point,frameB))return!1;return!0},Utils.framePointForOrigin=function(frame,originX,originY){return frame={x:frame.x+originX*frame.width,y:frame.y+originY*frame.height,width:frame.width,height:frame.height}},Utils.frameInset=function(frame,inset){return _.isNumber(inset)&&(inset={top:inset,right:inset,bottom:inset,left:inset}),frame=Utils.frame(frame),frame={x:frame.x+inset.left,y:frame.y+inset.top,width:frame.width-inset.left-inset.right,height:frame.height-inset.top-inset.bottom}},Utils.frameSortByAbsoluteDistance=function(point,frames,originX,originY){var distance;return null==originX&&(originX=0),null==originY&&(originY=0),distance=function(frame){var result;return result=Utils.pointDelta(point,Utils.framePointForOrigin(frame,originX,originY)),result=Utils.pointAbs(result),result=Utils.pointTotal(result)},frames.sort(function(a,b){return distance(a)-distance(b)})},Utils.pointInPolygon=function(point,vs){var i,inside,intersect,j,x,xi,xj,y,yi,yj;for(x=point[0],y=point[1],inside=!1,i=0,j=vs.length-1;i<vs.length;)xi=vs[i][0],yi=vs[i][1],xj=vs[j][0],yj=vs[j][1],intersect=yi>y&&y!==yj&&yj>y&&x<(xj-xi)*(y-yi)/(yj-yi)+xi,intersect&&(inside=!inside),j=i++;return inside},Utils.frameIntersection=function(rectA,rect){var x1,x2,y1,y2;return x1=rect.x,y1=rect.y,x2=x1+rect.width,y2=y1+rect.height,rectA.x>x1&&(x1=rectA.x),rectA.y>y1&&(y1=rectA.y),rectA.x+rectA.width<x2&&(x2=rectA.x+rectA.width),rectA.y+rectA.height<y2&&(y2=rectA.y+rectA.height),x2<=x1||y2<=y1?null:rect={x:x1,y:y1,width:x2-x1,height:y2-y1}},Utils.frameCenterPoint=function(frame){var point;return point={x:Utils.frameGetMidX(frame),y:Utils.frameGetMidY(frame)}},Utils.frameInFrame=function(frameA,frameB){var len,o,point,ref;for(ref=Utils.pointsFromFrame(frameA),o=0,len=ref.length;o<len;o++)if(point=ref[o],!Utils.pointInFrame(point,frameB))return!1;return!0},Utils.rotationNormalizer=function(){var lastValue;return lastValue=null,function(value){var diff,maxDiff,nTimes;return null==lastValue&&(lastValue=value),diff=lastValue-value,maxDiff=Math.abs(diff)+180,nTimes=Math.floor(maxDiff/360),diff<180&&(value-=360*nTimes),diff>180&&(value+=360*nTimes),lastValue=value,value}},Utils.convertPointToContext=function(point,layer,rootContext,includeLayer){var ancestor,ancestors,len,o;for(null==point&&(point={}),null==rootContext&&(rootContext=!1),null==includeLayer&&(includeLayer=!0),point=_.defaults(point,{x:0,y:0,z:0}),ancestors=layer.ancestors(rootContext),includeLayer&&ancestors.unshift(layer),o=0,len=ancestors.length;o<len;o++)ancestor=ancestors[o],(ancestor.flat||ancestor.clip)&&(point.z=0),point=ancestor.matrix3d.point(point),ancestor.parent||(point.z=0);return point},Utils.convertFrameToContext=function(frame,layer,rootContext,includeLayer){var convertedCorners,corners;return null==frame&&(frame={}),null==rootContext&&(rootContext=!1),null==includeLayer&&(includeLayer=!0),frame=_.defaults(frame,{x:0,y:0,width:100,height:100}),corners=Utils.pointsFromFrame(frame),convertedCorners=corners.map(function(point){return Utils.convertPointToContext(point,layer,rootContext,includeLayer)}),Utils.frameFromPoints(convertedCorners)},Utils.convertPointFromContext=function(point,layer,rootContext,includeLayer){var ancestor,ancestors,len,node,o,parent;if(null==point&&(point={}),null==rootContext&&(rootContext=!1),null==includeLayer&&(includeLayer=!0),point=_.defaults(point,{x:0,y:0,z:0}),rootContext&&"undefined"!=typeof webkitConvertPointFromPageToNode&&null!==webkitConvertPointFromPageToNode)return includeLayer?node=layer._element:(parent=layer.parent||layer.context,node=parent._element),Utils.point(webkitConvertPointFromPageToNode(node,new WebKitPoint(point.x,point.y)));for(ancestors=layer.ancestors(rootContext),ancestors.reverse(),includeLayer&&ancestors.push(layer),o=0,len=ancestors.length;o<len;o++)ancestor=ancestors[o],ancestor.matrix3d&&(point=ancestor.matrix3d.inverse().point(point));return point},Utils.convertFrameFromContext=function(frame,layer,rootContext,includeLayer){var convertedCorners,corners;return null==frame&&(frame={}),null==rootContext&&(rootContext=!1),null==includeLayer&&(includeLayer=!0),frame=_.defaults(frame,{x:0,y:0,width:100,height:100}),corners=Utils.pointsFromFrame(frame),convertedCorners=corners.map(function(point){return Utils.convertPointFromContext(point,layer,rootContext,includeLayer)}),Utils.frameFromPoints(convertedCorners)},Utils.convertPoint=function(input,layerA,layerB,rootContext){var node,point;return null==rootContext&&(rootContext=!1),point=_.defaults(input,{x:0,y:0,z:0}),layerA&&(point=Utils.convertPointToContext(point,layerA,rootContext)),null!=layerB?Utils.convertPointFromContext(point,layerB,rootContext):null!=layerA&&rootContext&&"undefined"!=typeof webkitConvertPointFromPageToNode&&null!==webkitConvertPointFromPageToNode?(node=layerA.context._element,Utils.point(webkitConvertPointFromPageToNode(node,new WebKitPoint(point.x,point.y)))):point},Utils.boundingFrame=function(layer,rootContext){var boundingFrame,contextCornerPoints,cornerPoints,frame;return null==rootContext&&(rootContext=!0),frame={x:0,y:0,width:layer.width,height:layer.height},cornerPoints=Utils.pointsFromFrame(frame),contextCornerPoints=cornerPoints.map(function(point){return Utils.convertPointToContext(point,layer,rootContext)}),boundingFrame=Utils.frameFromPoints(contextCornerPoints),Utils.pixelAlignedFrame(boundingFrame)},Utils.perspectiveProjectionMatrix=function(element){var m,p;return p=element.perspective,m=new Matrix,null!=p&&0!==p&&(m.m34=-1/p),m},Utils.perspectiveMatrix=function(element){var ox,oy,ppm;return ox=element.perspectiveOriginX*element.width,oy=element.perspectiveOriginY*element.height,ppm=Utils.perspectiveProjectionMatrix(element),(new Matrix).translate(ox,oy).multiply(ppm).translate(-ox,-oy)},Utils.globalLayers=function(importedLayers){var layer,layerName;for(layerName in importedLayers)layer=importedLayers[layerName],layerName=layerName.replace(/\s/g,""),window.hasOwnProperty(layerName)&&!window.Framer._globalWarningGiven?print("Warning: Cannot make layer '"+layerName+"' a global, a variable with that name already exists"):window[layerName]=layer;return window.Framer._globalWarningGiven=!0},_textSizeNode=null,Utils.textSize=function(text,style,constraints){var frame,rect,shouldCreateNode;return null==style&&(style={}),null==constraints&&(constraints={}),shouldCreateNode=!_textSizeNode,shouldCreateNode&&(_textSizeNode=document.createElement("div"),_textSizeNode.id="_textSizeNode"),_textSizeNode.removeAttribute("style"),_textSizeNode.innerHTML=text,style=_.extend(_.clone(style),{position:"fixed",display:"inline",visibility:"hidden",top:"-10000px",left:"-10000px"}),delete style.width,delete style.height,delete style.bottom,delete style.right,constraints.width&&(style.width=constraints.width+"px"),constraints.height&&(style.height=constraints.height+"px"),_.extend(_textSizeNode.style,style),shouldCreateNode&&(window.document.body?window.document.body.appendChild(_textSizeNode):(document.write(_textSizeNode.outerHTML),_textSizeNode=document.getElementById("_textSizeNode"))),rect=_textSizeNode.getBoundingClientRect(),frame={width:rect.right-rect.left,height:rect.bottom-rect.top}},_.extend(exports,Utils)},function(module,exports,__webpack_require__){var BaseClass,ScreenClass,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;BaseClass=__webpack_require__(6).BaseClass,ScreenClass=function(superClass){function ScreenClass(){return ScreenClass.__super__.constructor.apply(this,arguments)}return extend(ScreenClass,superClass),ScreenClass.define("width",{get:function(){return this.device?this.device.screenSize.width:Canvas.width}}),ScreenClass.define("height",{get:function(){return this.device?this.device.screenSize.height:Canvas.height}}),ScreenClass.define("canvasFrame",{get:function(){return this.device?this.device.context.canvasFrame:this.frame}}),ScreenClass.define("midX",{get:function(){return Utils.frameGetMidX(this.frame)}}),ScreenClass.define("midY",{get:function(){return Utils.frameGetMidY(this.frame)}}),ScreenClass.define("size",{get:function(){return Utils.size(this)}}),ScreenClass.define("frame",{get:function(){return Utils.frame(this)}}),ScreenClass.define("device",{get:function(){return Framer.CurrentContext.device}}),ScreenClass.define("backgroundColor",ScreenClass.proxyProperty("device.screen.backgroundColor")),ScreenClass.define("perspective",ScreenClass.proxyProperty("device.context.perspective")),ScreenClass.define("perspectiveOriginX",ScreenClass.proxyProperty("device.context.perspectiveOriginX")),ScreenClass.define("perspectiveOriginY",ScreenClass.proxyProperty("device.context.perspectiveOriginY")),ScreenClass.prototype.toInspect=function(){return"<Screen "+Utils.roundWhole(this.width)+"x"+Utils.roundWhole(this.height)+">"},ScreenClass.prototype.convertPointToLayer=function(point,layer){return Utils.convertPointFromContext(point,layer,!1,!0)},ScreenClass.prototype.convertPointToCanvas=function(point){var ctx;return ctx=Framer.Device.context,Utils.convertPointToContext(point,ctx,!0,!1)},ScreenClass.prototype.onEdgeSwipe=function(cb){return this.on(Events.EdgeSwipe,cb)},ScreenClass.prototype.onEdgeSwipeStart=function(cb){return this.on(Events.EdgeSwipeStart,cb)},ScreenClass.prototype.onEdgeSwipeEnd=function(cb){return this.on(Events.EdgeSwipeEnd,cb)},ScreenClass.prototype.onEdgeSwipeTop=function(cb){return this.on(Events.EdgeSwipeTop,cb)},ScreenClass.prototype.onEdgeSwipeTopStart=function(cb){return this.on(Events.EdgeSwipeTopStart,cb)},ScreenClass.prototype.onEdgeSwipeTopEnd=function(cb){return this.on(Events.EdgeSwipeTopEnd,cb)},ScreenClass.prototype.onEdgeSwipeRight=function(cb){return this.on(Events.EdgeSwipeRight,cb)},ScreenClass.prototype.onEdgeSwipeRightStart=function(cb){return this.on(Events.EdgeSwipeRightStart,cb)},ScreenClass.prototype.onEdgeSwipeRightEnd=function(cb){return this.on(Events.EdgeSwipeRightEnd,cb)},ScreenClass.prototype.onEdgeSwipeBottom=function(cb){return this.on(Events.EdgeSwipeBottom,cb)},ScreenClass.prototype.onEdgeSwipeBottomStart=function(cb){return this.on(Events.EdgeSwipeBottomStart,cb)},ScreenClass.prototype.onEdgeSwipeBottomEnd=function(cb){return this.on(Events.EdgeSwipeBottomEnd,cb)},ScreenClass.prototype.onEdgeSwipeLeft=function(cb){return this.on(Events.EdgeSwipeLeft,cb)},ScreenClass.prototype.onEdgeSwipeLeftStart=function(cb){return this.on(Events.EdgeSwipeLeftStart,cb)},ScreenClass.prototype.onEdgeSwipeLeftEnd=function(cb){return this.on(Events.EdgeSwipeLeftEnd,cb)},ScreenClass}(BaseClass),exports.Screen=new ScreenClass},function(module,exports,__webpack_require__){var CounterKey,DefinedPropertiesKey,DefinedPropertiesOrderKey,DefinedPropertiesValuesKey,EventEmitter,Utils,_,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};_=__webpack_require__(1)._,Utils=__webpack_require__(4),EventEmitter=__webpack_require__(7).EventEmitter,CounterKey="_ObjectCounter",DefinedPropertiesKey="_DefinedPropertiesKey",DefinedPropertiesValuesKey="_DefinedPropertiesValuesKey",DefinedPropertiesOrderKey="_DefinedPropertiesOrderKey",exports.BaseClass=function(superClass){function BaseClass(options){this.toInspect=bind(this.toInspect,this),this._getPropertyValue=bind(this._getPropertyValue,this),this._setPropertyValue=bind(this._setPropertyValue,this);var base;BaseClass.__super__.constructor.apply(this,arguments),this._context="undefined"!=typeof Framer&&null!==Framer?Framer.CurrentContext:void 0,this[DefinedPropertiesValuesKey]={},this._applyDefaults(options),null==(base=this.constructor)[CounterKey]&&(base[CounterKey]=0),this.constructor[CounterKey]+=1,this._id=this.constructor[CounterKey]}return extend(BaseClass,superClass),BaseClass.define=function(propertyName,descriptor){return this!==BaseClass&&this._addDescriptor(propertyName,descriptor),Object.defineProperty(this.prototype,propertyName,descriptor)},BaseClass._addDescriptor=function(propertyName,descriptor){var depend,i,len,ref;if(descriptor.propertyName=propertyName,null==descriptor.enumerable&&(descriptor.enumerable=!0),null==descriptor.exportable&&(descriptor.exportable=!0),null==descriptor.importable&&(descriptor.importable=!0),descriptor.importable=descriptor.importable&&descriptor.set,descriptor.exportable=descriptor.exportable&&descriptor.set,!_.startsWith(propertyName,"_")&&(descriptor.exportable||descriptor.importable)){if(null==this[DefinedPropertiesKey]&&(this[DefinedPropertiesKey]={}),this[DefinedPropertiesKey][propertyName]=descriptor,null==this[DefinedPropertiesOrderKey]&&(this[DefinedPropertiesOrderKey]=[]),descriptor.depends)for(ref=descriptor.depends,i=0,len=ref.length;i<len;i++)depend=ref[i],indexOf.call(this[DefinedPropertiesOrderKey],depend)<0&&this[DefinedPropertiesOrderKey].push(depend);return this[DefinedPropertiesOrderKey].push(propertyName)}},BaseClass.simpleProperty=function(name,fallback,options){return null==options&&(options={}),_.extend(options,{default:fallback,get:function(){return this._getPropertyValue(name)},set:function(value){return this._setPropertyValue(name,value)}})},BaseClass.proxyProperty=function(keyPath,options){var descriptor,objectKey;return null==options&&(options={}),objectKey=keyPath.split(".")[0],descriptor=_.extend(options,{get:function(){if(_.isObject(this[objectKey]))return Utils.getValueForKeyPath(this,keyPath)},set:function(value){if(_.isObject(this[objectKey]))return Utils.setValueForKeyPath(this,keyPath,value)},proxy:!0})},BaseClass.prototype._setPropertyValue=function(k,v){return this[DefinedPropertiesValuesKey][k]=v},BaseClass.prototype._getPropertyValue=function(k){return Utils.valueOrDefault(this[DefinedPropertiesValuesKey][k],this._getPropertyDefaultValue(k))},BaseClass.prototype._getPropertyDefaultValue=function(k){return this._propertyList()[k].default},BaseClass.prototype._propertyList=function(){return this.constructor[DefinedPropertiesKey]},BaseClass.prototype.keys=function(){return _.keys(this.props)},BaseClass.define("props",{importable:!1,exportable:!1,get:function(){var descriptor,key,keys,propertyList;keys=[],propertyList=this._propertyList();for(key in propertyList)descriptor=propertyList[key],descriptor.exportable&&keys.push(key);return _.pick(this,keys)},set:function(value){var k,propertyList,ref,results,v;propertyList=this._propertyList(),results=[];for(k in value)v=value[k],(null!=(ref=propertyList[k])?ref.importable:void 0)?results.push(this[k]=v):results.push(void 0);return results}}),BaseClass.define("id",{get:function(){return this._id}}),BaseClass.prototype.toInspect=function(){return"<"+this.constructor.name+" id:"+(this.id||null)+">"},BaseClass.prototype.onChange=function(name,cb){return this.on("change:"+name,cb)},BaseClass.prototype._applyDefaults=function(options){var i,k,len,ref,results;if(this.constructor[DefinedPropertiesOrderKey]&&options){for(ref=this.constructor[DefinedPropertiesOrderKey],results=[],i=0,len=ref.length;i<len;i++)k=ref[i],results.push(this._applyDefault(k,options[k]));return results}},BaseClass.prototype._applyProxyDefaults=function(options){var descriptor,i,k,len,ref,results;if(this.constructor[DefinedPropertiesOrderKey]&&options){for(ref=this.constructor[DefinedPropertiesOrderKey],results=[],i=0,len=ref.length;i<len;i++)k=ref[i],descriptor=this.constructor[DefinedPropertiesKey][k],null!=(null!=descriptor?descriptor.proxy:void 0)==!0&&results.push(this._applyDefault(k,options[k]));return results}},BaseClass.prototype._applyDefault=function(key,optionValue){var descriptor,value;if(descriptor=this.constructor[DefinedPropertiesKey][key],!descriptor)throw Error("Missing dependant descriptor: "+key);if(descriptor.set&&(descriptor.importable&&(value=optionValue),value=Utils.valueOrDefault(optionValue,this._getPropertyDefaultValue(key)),null!==value&&void 0!==value))return this[key]=value},BaseClass}(EventEmitter)},function(module,exports,__webpack_require__){var EventEmitter3,EventKey,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,EventEmitter3=__webpack_require__(8),EventKey="_events",exports.EventEmitter=function(superClass){function EventEmitter(){return EventEmitter.__super__.constructor.apply(this,arguments)}return extend(EventEmitter,superClass),EventEmitter.prototype.listenerEvents=function(){return _.keys(this[EventKey])},EventEmitter.prototype.removeAllListeners=function(eventName){var eventNames,i,len,listener,results;for(eventNames=eventName?[eventName]:this.listenerEvents(),results=[],i=0,len=eventNames.length;i<len;i++)eventName=eventNames[i],results.push(function(){var j,len1,ref,results1;for(ref=this.listeners(eventName),results1=[],j=0,len1=ref.length;j<len1;j++)listener=ref[j],results1.push(this.removeListener(eventName,listener));return results1}.call(this));return results},EventEmitter}(EventEmitter3)},function(module,exports,__webpack_require__){"use strict";function EE(fn,context,once){this.fn=fn,this.context=context,this.once=once||!1}function EventEmitter(){}var has=Object.prototype.hasOwnProperty,prefix="function"!=typeof Object.create&&"~";EventEmitter.prototype._events=void 0,EventEmitter.prototype.eventNames=function(){var name,events=this._events,names=[];if(!events)return names;for(name in events)has.call(events,name)&&names.push(prefix?name.slice(1):name);return Object.getOwnPropertySymbols?names.concat(Object.getOwnPropertySymbols(events)):names},EventEmitter.prototype.listeners=function(event,exists){var evt=prefix?prefix+event:event,available=this._events&&this._events[evt];if(exists)return!!available;if(!available)return[];if(available.fn)return[available.fn];for(var i=0,l=available.length,ee=new Array(l);i<l;i++)ee[i]=available[i].fn;return ee},EventEmitter.prototype.emit=function(event,a1,a2,a3,a4,a5){var evt=prefix?prefix+event:event;if(!this._events||!this._events[evt])return!1;var args,i,listeners=this._events[evt],len=arguments.length;if("function"==typeof listeners.fn){switch(listeners.once&&this.removeListener(event,listeners.fn,void 0,!0),len){case 1:return listeners.fn.call(listeners.context),!0;case 2:return listeners.fn.call(listeners.context,a1),!0;case 3:return listeners.fn.call(listeners.context,a1,a2),!0;case 4:return listeners.fn.call(listeners.context,a1,a2,a3),!0;case 5:return listeners.fn.call(listeners.context,a1,a2,a3,a4),!0;case 6:return listeners.fn.call(listeners.context,a1,a2,a3,a4,a5),!0}for(i=1,args=new Array(len-1);i<len;i++)args[i-1]=arguments[i];listeners.fn.apply(listeners.context,args)}else{var j,length=listeners.length;for(i=0;i<length;i++)switch(listeners[i].once&&this.removeListener(event,listeners[i].fn,void 0,!0),len){case 1:listeners[i].fn.call(listeners[i].context);break;case 2:listeners[i].fn.call(listeners[i].context,a1);break;case 3:listeners[i].fn.call(listeners[i].context,a1,a2);break;default:if(!args)for(j=1,args=new Array(len-1);j<len;j++)args[j-1]=arguments[j];listeners[i].fn.apply(listeners[i].context,args)}}return!0},EventEmitter.prototype.on=function(event,fn,context){var listener=new EE(fn,context||this),evt=prefix?prefix+event:event;return this._events||(this._events=prefix?{}:Object.create(null)),this._events[evt]?this._events[evt].fn?this._events[evt]=[this._events[evt],listener]:this._events[evt].push(listener):this._events[evt]=listener,this},EventEmitter.prototype.once=function(event,fn,context){var listener=new EE(fn,context||this,!0),evt=prefix?prefix+event:event;return this._events||(this._events=prefix?{}:Object.create(null)),this._events[evt]?this._events[evt].fn?this._events[evt]=[this._events[evt],listener]:this._events[evt].push(listener):this._events[evt]=listener,this},EventEmitter.prototype.removeListener=function(event,fn,context,once){var evt=prefix?prefix+event:event;if(!this._events||!this._events[evt])return this;var listeners=this._events[evt],events=[];if(fn)if(listeners.fn)(listeners.fn!==fn||once&&!listeners.once||context&&listeners.context!==context)&&events.push(listeners);else for(var i=0,length=listeners.length;i<length;i++)(listeners[i].fn!==fn||once&&!listeners[i].once||context&&listeners[i].context!==context)&&events.push(listeners[i]);return events.length?this._events[evt]=1===events.length?events[0]:events:delete this._events[evt],this},EventEmitter.prototype.removeAllListeners=function(event){return this._events?(event?delete this._events[prefix?prefix+event:event]:this._events=prefix?{}:Object.create(null),this):this},EventEmitter.prototype.off=EventEmitter.prototype.removeListener,EventEmitter.prototype.addListener=EventEmitter.prototype.on,EventEmitter.prototype.setMaxListeners=function(){return this},EventEmitter.prefixed=prefix,module.exports=EventEmitter},function(module,exports){WebKitCSSMatrix.prototype.skew=function(skew){var m,rad,value;return skew?(rad=skew*Math.PI/180,value=Math.tan(rad),m=new WebKitCSSMatrix,m.m12=value,m.m21=value,this.multiply(m)):this},WebKitCSSMatrix.prototype.point=function(point){var ref,w,x,y,z;return null==point&&(point={}),ref=_.defaults(point,{x:0,y:0,z:0}),x=ref.x,y=ref.y,z=ref.z,w=this.m14*x+this.m24*y+this.m34*z+this.m44,w=w||1,point={x:(this.m11*x+this.m21*y+this.m31*z+this.m41)/w,y:(this.m12*x+this.m22*y+this.m32*z+this.m42)/w,z:(this.m13*x+this.m23*y+this.m33*z+this.m43)/w}},exports.Matrix=WebKitCSSMatrix},function(module,exports,__webpack_require__){var BaseClass,ColorModel,ColorType,_,bound01,convertToPercentage,correctAlpha,cssNames,hslToRgb,inputData,isNumeric,isOnePointZero,isPercentage,libhusl,matchers,numberFromString,pad2,percentToFraction,rgbToHex,rgbToHsl,rgbToRgb,rgbaFromHusl,stringToObject,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,slice=[].slice;_=__webpack_require__(1)._,BaseClass=__webpack_require__(6).BaseClass,libhusl=__webpack_require__(11),ColorType={RGB:"rgb",HSL:"hsl",HEX:"hex",NAME:"name"},exports.Color=function(superClass){function Color(color1,r,g,b){var color,input;return this.color=color1,this.toInspect=bind(this.toInspect,this),""===this.color&&(this.color=null),color=this.color,Color.isColorObject(color)?color:(input=inputData(color,r,g,b),this._type=input.type,this._r=input.r,this._g=input.g,this._b=input.b,this._a=input.a,this._h=input.h,this._s=input.s,this._l=input.l,void(this._roundA=Math.round(100*this._a)/100))}return extend(Color,superClass),Color.define("r",{get:function(){return this._r}}),Color.define("g",{get:function(){return this._g}}),Color.define("b",{get:function(){return this._b}}),Color.define("a",{get:function(){return this._a}}),Color.define("h",{get:function(){return this._h}}),Color.define("s",{get:function(){return this._s}}),Color.define("l",{get:function(){return this._l}}),Color.prototype.toHex=function(allow3Char){return rgbToHex(this._r,this._g,this._b,allow3Char)},Color.prototype.toHexString=function(allow3Char){return"#"+this.toHex(allow3Char)},Color.prototype.toRgb=function(){return void 0===this._rgb&&(this._rgb={r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}),_.clone(this._rgb)},Color.prototype.toRgbString=function(){return 1===this._a?"rgb("+Utils.round(this._r,0)+", "+Utils.round(this._g,0)+", "+Utils.round(this._b,0)+")":"rgba("+Utils.round(this._r,0)+", "+Utils.round(this._g,0)+", "+Utils.round(this._b,0)+", "+this._roundA+")"},Color.prototype.toHsl=function(){return void 0===this._hsl&&(this._hsl={h:this.h,s:this.s,l:this.l,a:this.a}),_.clone(this._hsl)},Color.prototype.toHusl=function(){var c,husl;return void 0===this._husl&&(c=libhusl._conv,husl=c.lch.husl(c.luv.lch(c.xyz.luv(c.rgb.xyz([this.r/255,this.g/255,this.b/255])))),this._husl={h:husl[0],s:husl[1],l:husl[2]}),_.clone(this._husl)},Color.prototype.toHslString=function(){var h,hsl,l,s;return void 0===this._hslString&&(hsl=this.toHsl(),h=Math.round(hsl.h),s=Math.round(100*hsl.s),l=Math.round(100*hsl.l),1===this._a?this._hslString="hsl("+h+", "+s+"%, "+l+"%)":this._hslString="hsla("+h+", "+s+"%, "+l+"%, "+this._roundA+")"),this._hslString},Color.prototype.toName=function(){var hex,i,key,len,ref,value;if(0===this._a)return"transparent";if(this._a<1)return!1;for(hex=rgbToHex(this._r,this._g,this._b,!0),ref=_.keys(cssNames),i=0,len=ref.length;i<len;i++)if(key=ref[i],value=cssNames[key],value===hex)return key;return!1},Color.prototype.lighten=function(amount){var hsl;return null==amount&&(amount=10),hsl=this.toHsl(),hsl.l+=amount/100,hsl.l=Math.min(1,Math.max(0,hsl.l)),new Color(hsl)},Color.prototype.brighten=function(amount){var rgb;return null==amount&&(amount=10),rgb=this.toRgb(),rgb.r=Math.max(0,Math.min(255,rgb.r-Math.round(255*-(amount/100)))),rgb.g=Math.max(0,Math.min(255,rgb.g-Math.round(255*-(amount/100)))),rgb.b=Math.max(0,Math.min(255,rgb.b-Math.round(255*-(amount/100)))),new Color(rgb)},Color.prototype.darken=function(amount){var hsl;return null==amount&&(amount=10),hsl=this.toHsl(),hsl.l-=amount/100,hsl.l=Math.min(1,Math.max(0,hsl.l)),new Color(hsl)},Color.prototype.desaturate=function(amount){var hsl; | |
return null==amount&&(amount=10),hsl=this.toHsl(),hsl.s-=amount/100,hsl.s=Math.min(1,Math.max(0,hsl.s)),new Color(hsl)},Color.prototype.saturate=function(amount){var hsl;return null==amount&&(amount=10),hsl=this.toHsl(),hsl.s+=amount/100,hsl.s=Math.min(1,Math.max(0,hsl.s)),new Color(hsl)},Color.prototype.grayscale=function(){var hsl;return hsl=this.toHsl(),new Color(hsl).desaturate(100)},Color.prototype.toString=function(){return this.toRgbString()},Color.prototype.alpha=function(alpha){var result;return null==alpha&&(alpha=1),result=new Color({r:this.r,g:this.g,b:this.b,a:alpha})},Color.prototype.transparent=function(){return this.alpha(0)},Color.prototype.mix=function(colorB,fraction,limit,model){return null==limit&&(limit=!1),Color.mix(this,colorB,fraction,limit,model)},Color.prototype.copy=function(){return new Color(this)},Color.prototype.isEqual=function(colorB){return Color.equal(this,colorB)},Color.prototype.toInspect=function(){return this._type===ColorType.HSL?"<"+this.constructor.name+" h:"+this.h+" s:"+this.s+" l:"+this.l+" a:"+this.a+">":this._type===ColorType.HEX||this._type===ColorType.NAME?"<"+this.constructor.name+' "'+this.color+'">':"<"+this.constructor.name+" r:"+this.r+" g:"+this.g+" b:"+this.b+" a:"+this.a+">"},Color.mix=function(colorA,colorB,fraction,limit,model){var deltaH,fromH,hslA,hslB,result,toH,tween;return null==fraction&&(fraction=.5),null==limit&&(limit=!1),result=null,"string"==typeof colorA&&this.isColorString(colorA)&&(colorA=new Color(colorA)),"string"==typeof colorB&&this.isColorString(colorB)&&(colorB=new Color(colorB)),!(colorA instanceof Color)&&colorB instanceof Color?colorA=colorB.transparent():colorA instanceof Color&&0===colorA._a&&colorB instanceof Color&&0!==colorB._a?colorA=colorB.transparent():!(colorB instanceof Color)&&colorA instanceof Color?colorB=colorA.transparent():colorB instanceof Color&&0===colorB._a&&colorA instanceof Color&&0!==colorA._a&&(colorB=colorA.transparent()),colorB instanceof Color&&(ColorModel.isRGB(model)?result=new Color({r:Utils.modulate(fraction,[0,1],[colorA._r,colorB._r],limit),g:Utils.modulate(fraction,[0,1],[colorA._g,colorB._g],limit),b:Utils.modulate(fraction,[0,1],[colorA._b,colorB._b],limit),a:Utils.modulate(fraction,[0,1],[colorA._a,colorB._a],limit)}):(ColorModel.isHSL(model)?(hslA=colorA.toHsl(),hslB=colorB.toHsl()):(hslA=colorA.toHusl(),hslB=colorB.toHusl()),0===hslA.s?hslA.h=hslB.h:0===hslB.s&&(hslB.h=hslA.h),fromH=hslA.h,toH=hslB.h,deltaH=toH-fromH,deltaH>180?deltaH=toH-360-fromH:deltaH<-180&&(deltaH=toH+360-fromH),tween={h:Utils.modulate(fraction,[0,1],[fromH,fromH+deltaH],limit),s:Utils.modulate(fraction,[0,1],[hslA.s,hslB.s],limit),l:Utils.modulate(fraction,[0,1],[hslA.l,hslB.l],limit),a:Utils.modulate(fraction,[0,1],[colorA.a,colorB.a],limit)},result=new Color(ColorModel.isHSL(model)?tween:rgbaFromHusl(tween)))),result},Color.random=function(alpha){var c;return null==alpha&&(alpha=1),c=function(){return parseInt(255*Math.random())},new Color("rgba("+c()+", "+c()+", "+c()+", "+alpha+")")},Color.grey=function(g,alpha){return null==g&&(g=.5),null==alpha&&(alpha=1),g=parseInt(255*g),new Color("rgba("+g+", "+g+", "+g+", "+alpha+")")},Color.gray=function(){var args;return args=1<=arguments.length?slice.call(arguments,0):[],this.grey.apply(this,args)},Color.toColor=function(color){return new Color(color)},Color.validColorValue=function(color){return color instanceof Color||null===color},Color.isColor=function(color){return _.isString(color)?this.isColorString(color):this.isColorObject(color)},Color.isColorObject=function(color){return color instanceof Color},Color.isColorString=function(colorString){return!!_.isString(colorString)&&stringToObject(colorString)!==!1},Color.isValidColorProperty=function(name,value){return!!(_.endsWith(name.toLowerCase(),"color")&&_.isString(value)&&Color.isColorString(value))},Color.equal=function(colorA,colorB){return!(!this.validColorValue(colorA)&&!Color.isColorString(colorA))&&(!(!this.validColorValue(colorB)&&!Color.isColorString(colorB))&&(colorA=new Color(colorA),colorB=new Color(colorB),colorA.r===colorB.r&&(colorA.g===colorB.g&&(colorA.b===colorB.b&&colorA.a===colorB.a))))},Color.rgbToHsl=function(a,b,c){return rgbToHsl(a,b,c)},Color}(BaseClass),ColorModel={RGB:"rgb",RGBA:"rgba",HSL:"hsl",HSLA:"hsla"},ColorModel.isRGB=function(colorModel){var ref;return!!_.isString(colorModel)&&((ref=colorModel.toLowerCase())===ColorModel.RGB||ref===ColorModel.RGBA)},ColorModel.isHSL=function(colorModel){var ref;return!!_.isString(colorModel)&&((ref=colorModel.toLowerCase())===ColorModel.HSL||ref===ColorModel.HSLA)},rgbaFromHusl=function(husl){var c,rgb,rgba;return c=libhusl._conv,rgb=c.xyz.rgb(c.luv.xyz(c.lch.luv(c.husl.lch([husl.h,husl.s,husl.l])))),rgba={r:255*rgb[0],g:255*rgb[1],b:255*rgb[2],a:husl.a}},inputData=function(color,g,b,alpha){var a,h,hsl,l,ok,rgb,s,type;return rgb={r:0,g:0,b:0},hsl={h:0,s:0,l:0},a=1,ok=!1,type=ColorType.RGB,null===color?a=0:_.isNumber(color)?(rgb.r=color,_.isNumber(g)&&(rgb.g=g),_.isNumber(b)&&(rgb.b=b),_.isNumber(alpha)&&(a=alpha)):("string"==typeof color&&(color=stringToObject(color),color||(color={r:0,g:0,b:0,a:0}),color.hasOwnProperty("type")&&(type=color.type)),"object"==typeof color&&(color.hasOwnProperty("r")||color.hasOwnProperty("g")||color.hasOwnProperty("b")?rgb=rgbToRgb(color.r,color.g,color.b):(color.hasOwnProperty("h")||color.hasOwnProperty("s")||color.hasOwnProperty("l"))&&(h=isNumeric(color.h)?parseFloat(color.h):0,h=(h+360)%360,s=isNumeric(color.s)?color.s:1,_.isString(color.s)&&(s=numberFromString(color.s)),l=isNumeric(color.l)?color.l:.5,_.isString(color.l)&&(l=numberFromString(color.l)),rgb=hslToRgb(h,s,l),type=ColorType.HSL,hsl={h:h,s:s,l:l}),color.hasOwnProperty("a")&&(a=color.a))),a=correctAlpha(a),type!==ColorType.HSL&&(hsl=rgbToHsl(rgb.r,rgb.g,rgb.b)),{type:type,r:Math.min(255,Math.max(rgb.r,0)),g:Math.min(255,Math.max(rgb.g,0)),b:Math.min(255,Math.max(rgb.b,0)),h:Utils.clamp(hsl.h,0,360),s:Utils.clamp(hsl.s,0,1),l:Utils.clamp(hsl.l,0,1),a:a}},numberFromString=function(string){return string.match(/\d+/)[0]},rgbToRgb=function(r,g,b){return{r:isNumeric(r)?255*bound01(r,255):0,g:isNumeric(g)?255*bound01(g,255):0,b:isNumeric(b)?255*bound01(b,255):0}},rgbToHex=function(r,g,b,allow3Char){var hex;return hex=[pad2(Math.round(r).toString(16)),pad2(Math.round(g).toString(16)),pad2(Math.round(b).toString(16))],allow3Char&&hex[0].charAt(0)===hex[0].charAt(1)&&hex[1].charAt(0)===hex[1].charAt(1)&&hex[2].charAt(0)===hex[2].charAt(1)?hex[0].charAt(0)+hex[1].charAt(0)+hex[2].charAt(0):hex.join("")},rgbToHsl=function(r,g,b){var d,h,l,max,min,s;if(r=bound01(r,255),g=bound01(g,255),b=bound01(b,255),max=Math.max(r,g,b),min=Math.min(r,g,b),h=s=l=(max+min)/2,max===min)h=s=0;else{switch(d=max-min,s=l>.5?d/(2-max-min):d/(max+min),max){case r:h=(g-b)/d+(g<b?6:0);break;case g:h=(b-r)/d+2;break;case b:h=(r-g)/d+4}h/=6}return{h:360*h,s:s,l:l}},hslToRgb=function(h,s,l){var b,g,hue2rgb,p,q,r;return r=void 0,g=void 0,b=void 0,h=bound01(h,360),s=bound01(100*s,100),l=bound01(100*l,100),hue2rgb=function(p,q,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?p+6*(q-p)*t:t<.5?q:t<2/3?p+(q-p)*(2/3-t)*6:p},0===s?r=g=b=l:(q=l<.5?l*(1+s):l+s-l*s,p=2*l-q,r=hue2rgb(p,q,h+1/3),g=hue2rgb(p,q,h),b=hue2rgb(p,q,h-1/3)),{r:255*r,g:255*g,b:255*b}},convertToPercentage=function(n){return n<=1&&(n=100*n+"%"),n},correctAlpha=function(a){return a=parseFloat(a),a<0&&(a=0),(isNaN(a)||a>1)&&(a=1),a},bound01=function(n,max){var processPercent;return isOnePointZero(n)&&(n="100%"),processPercent=isPercentage(n),n=Math.min(max,Math.max(0,parseFloat(n))),processPercent&&(n=parseInt(n*max,10)/100),Math.abs(n-max)<1e-6?1:n%max/parseFloat(max)},isOnePointZero=function(n){return"string"==typeof n&&n.indexOf(".")!==-1&&1===parseFloat(n)},isPercentage=function(n){return"string"==typeof n&&n.indexOf("%")!==-1},pad2=function(char){return 1===char.length?"0"+char:""+char},matchers=function(){var css_integer,css_number,css_unit,permissive_match3,permissive_match4;return css_integer="[-\\+]?\\d+%?",css_number="[-\\+]?\\d*\\.\\d+%?",css_unit="(?:"+css_number+")|(?:"+css_integer+")",permissive_match3="[\\s|\\(]+("+css_unit+")[,|\\s]+("+css_unit+")[,|\\s]+("+css_unit+")\\s*\\)?",permissive_match4="[\\s|\\(]+("+css_unit+")[,|\\s]+("+css_unit+")[,|\\s]+("+css_unit+")[,|\\s]+("+css_unit+")\\s*\\)?",{rgb:new RegExp("rgb"+permissive_match3),rgba:new RegExp("rgba"+permissive_match4),hsl:new RegExp("hsl"+permissive_match3),hsla:new RegExp("hsla"+permissive_match4),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}(),isNumeric=function(value){return!isNaN(value)&&isFinite(value)},percentToFraction=function(percentage){return numberFromString(percentage)/100},stringToObject=function(color){var match,named,trimLeft,trimRight;if(trimLeft=/^[\s,#]+/,trimRight=/\s+$/,color=color.replace(trimLeft,"").replace(trimRight,"").toLowerCase(),named=!1,cssNames[color])color=cssNames[color],named=!0,{type:ColorType.NAME};else if("transparent"===color)return{r:0,g:0,b:0,a:0,type:ColorType.NAME};return match=void 0,(match=matchers.rgb.exec(color))?{r:match[1],g:match[2],b:match[3]}:(match=matchers.rgba.exec(color))?{r:match[1],g:match[2],b:match[3],a:match[4]}:(match=matchers.hsl.exec(color))?{h:match[1],s:percentToFraction(match[2]),l:percentToFraction(match[3])}:(match=matchers.hsla.exec(color))?{h:match[1],s:percentToFraction(match[2]),l:percentToFraction(match[3]),a:match[4]}:(match=matchers.hex6.exec(color)||(match=matchers.hex6.exec(cssNames[color])))?{r:parseInt(match[1],16),g:parseInt(match[2],16),b:parseInt(match[3],16),a:1,type:ColorType.HEX}:!!(match=matchers.hex3.exec(color)||(match=matchers.hex3.exec(cssNames[color])))&&{r:parseInt(match[1]+""+match[1],16),g:parseInt(match[2]+""+match[2],16),b:parseInt(match[3]+""+match[3],16),type:ColorType.HEX}},cssNames={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"}},function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_RESULT__;(function(module){(function(){var L_to_Y,Y_to_L,conv,distanceFromPole,dotProduct,epsilon,fromLinear,getBounds,intersectLineLine,kappa,lengthOfRayUntilIntersect,m,m_inv,maxChromaForLH,maxSafeChromaForL,refU,refV,root,toLinear;m={R:[3.2409699419045213,-1.5373831775700935,-.4986107602930033],G:[-.9692436362808798,1.8759675015077206,.04155505740717561],B:[.05563007969699361,-.20397695888897657,1.0569715142428786]},m_inv={X:[.4123907992659595,.35758433938387796,.1804807884018343],Y:[.21263900587151036,.7151686787677559,.07219231536073371],Z:[.01933081871559185,.11919477979462599,.9505321522496606]},refU=.19783000664283681,refV=.468319994938791,kappa=903.2962962962963,epsilon=.008856451679035631,getBounds=function(L){var bottom,channel,j,k,len1,len2,m1,m2,m3,ref,ref1,ref2,ret,sub1,sub2,t,top1,top2;for(sub1=Math.pow(L+16,3)/1560896,sub2=sub1>epsilon?sub1:L/kappa,ret=[],ref=["R","G","B"],j=0,len1=ref.length;j<len1;j++)for(channel=ref[j],ref1=m[channel],m1=ref1[0],m2=ref1[1],m3=ref1[2],ref2=[0,1],k=0,len2=ref2.length;k<len2;k++)t=ref2[k],top1=(284517*m1-94839*m3)*sub2,top2=(838422*m3+769860*m2+731718*m1)*L*sub2-769860*t*L,bottom=(632260*m3-126452*m2)*sub2+126452*t,ret.push([top1/bottom,top2/bottom]);return ret},intersectLineLine=function(line1,line2){return(line1[1]-line2[1])/(line2[0]-line1[0])},distanceFromPole=function(point){return Math.sqrt(Math.pow(point[0],2)+Math.pow(point[1],2))},lengthOfRayUntilIntersect=function(theta,line){var b1,len,m1;return m1=line[0],b1=line[1],len=b1/(Math.sin(theta)-m1*Math.cos(theta)),len<0?null:len},maxSafeChromaForL=function(L){var b1,j,len1,lengths,m1,ref,ref1,x;for(lengths=[],ref=getBounds(L),j=0,len1=ref.length;j<len1;j++)ref1=ref[j],m1=ref1[0],b1=ref1[1],x=intersectLineLine([m1,b1],[-1/m1,0]),lengths.push(distanceFromPole([x,b1+x*m1]));return Math.min.apply(Math,lengths)},maxChromaForLH=function(L,H){var hrad,j,l,len1,lengths,line,ref;for(hrad=H/360*Math.PI*2,lengths=[],ref=getBounds(L),j=0,len1=ref.length;j<len1;j++)line=ref[j],l=lengthOfRayUntilIntersect(hrad,line),null!==l&&lengths.push(l);return Math.min.apply(Math,lengths)},dotProduct=function(a,b){var i,j,ref,ret;for(ret=0,i=j=0,ref=a.length-1;0<=ref?j<=ref:j>=ref;i=0<=ref?++j:--j)ret+=a[i]*b[i];return ret},fromLinear=function(c){return c<=.0031308?12.92*c:1.055*Math.pow(c,1/2.4)-.055},toLinear=function(c){var a;return a=.055,c>.04045?Math.pow((c+a)/(1+a),2.4):c/12.92},conv={xyz:{},luv:{},lch:{},husl:{},huslp:{},rgb:{},hex:{}},conv.xyz.rgb=function(tuple){var B,G,R;return R=fromLinear(dotProduct(m.R,tuple)),G=fromLinear(dotProduct(m.G,tuple)),B=fromLinear(dotProduct(m.B,tuple)),[R,G,B]},conv.rgb.xyz=function(tuple){var B,G,R,X,Y,Z,rgbl;return R=tuple[0],G=tuple[1],B=tuple[2],rgbl=[toLinear(R),toLinear(G),toLinear(B)],X=dotProduct(m_inv.X,rgbl),Y=dotProduct(m_inv.Y,rgbl),Z=dotProduct(m_inv.Z,rgbl),[X,Y,Z]},Y_to_L=function(Y){return Y<=epsilon?Y*kappa:116*Math.pow(Y,1/3)-16},L_to_Y=function(L){return L<=8?L/kappa:Math.pow((L+16)/116,3)},conv.xyz.luv=function(tuple){var L,U,V,X,Y,Z,varU,varV;return X=tuple[0],Y=tuple[1],Z=tuple[2],0===Y?[0,0,0]:(L=Y_to_L(Y),varU=4*X/(X+15*Y+3*Z),varV=9*Y/(X+15*Y+3*Z),U=13*L*(varU-refU),V=13*L*(varV-refV),[L,U,V])},conv.luv.xyz=function(tuple){var L,U,V,X,Y,Z,varU,varV;return L=tuple[0],U=tuple[1],V=tuple[2],0===L?[0,0,0]:(varU=U/(13*L)+refU,varV=V/(13*L)+refV,Y=L_to_Y(L),X=0-9*Y*varU/((varU-4)*varV-varU*varV),Z=(9*Y-15*varV*Y-varV*X)/(3*varV),[X,Y,Z])},conv.luv.lch=function(tuple){var C,H,Hrad,L,U,V;return L=tuple[0],U=tuple[1],V=tuple[2],C=Math.sqrt(Math.pow(U,2)+Math.pow(V,2)),C<1e-8?H=0:(Hrad=Math.atan2(V,U),H=360*Hrad/2/Math.PI,H<0&&(H=360+H)),[L,C,H]},conv.lch.luv=function(tuple){var C,H,Hrad,L,U,V;return L=tuple[0],C=tuple[1],H=tuple[2],Hrad=H/360*2*Math.PI,U=Math.cos(Hrad)*C,V=Math.sin(Hrad)*C,[L,U,V]},conv.husl.lch=function(tuple){var C,H,L,S,max;return H=tuple[0],S=tuple[1],L=tuple[2],L>99.9999999||L<1e-8?C=0:(max=maxChromaForLH(L,H),C=max/100*S),[L,C,H]},conv.lch.husl=function(tuple){var C,H,L,S,max;return L=tuple[0],C=tuple[1],H=tuple[2],L>99.9999999||L<1e-8?S=0:(max=maxChromaForLH(L,H),S=C/max*100),[H,S,L]},conv.huslp.lch=function(tuple){var C,H,L,S,max;return H=tuple[0],S=tuple[1],L=tuple[2],L>99.9999999||L<1e-8?C=0:(max=maxSafeChromaForL(L),C=max/100*S),[L,C,H]},conv.lch.huslp=function(tuple){var C,H,L,S,max;return L=tuple[0],C=tuple[1],H=tuple[2],L>99.9999999||L<1e-8?S=0:(max=maxSafeChromaForL(L),S=C/max*100),[H,S,L]},conv.rgb.hex=function(tuple){var ch,hex,j,len1;for(hex="#",j=0,len1=tuple.length;j<len1;j++){if(ch=tuple[j],ch=Math.round(1e6*ch)/1e6,ch<0||ch>1)throw new Error("Illegal rgb value: "+ch);ch=Math.round(255*ch).toString(16),1===ch.length&&(ch="0"+ch),hex+=ch}return hex},conv.hex.rgb=function(hex){var b,g,j,len1,n,r,ref,results;for("#"===hex.charAt(0)&&(hex=hex.substring(1,7)),r=hex.substring(0,2),g=hex.substring(2,4),b=hex.substring(4,6),ref=[r,g,b],results=[],j=0,len1=ref.length;j<len1;j++)n=ref[j],results.push(parseInt(n,16)/255);return results},conv.lch.rgb=function(tuple){return conv.xyz.rgb(conv.luv.xyz(conv.lch.luv(tuple)))},conv.rgb.lch=function(tuple){return conv.luv.lch(conv.xyz.luv(conv.rgb.xyz(tuple)))},conv.husl.rgb=function(tuple){return conv.lch.rgb(conv.husl.lch(tuple))},conv.rgb.husl=function(tuple){return conv.lch.husl(conv.rgb.lch(tuple))},conv.huslp.rgb=function(tuple){return conv.lch.rgb(conv.huslp.lch(tuple))},conv.rgb.huslp=function(tuple){return conv.lch.huslp(conv.rgb.lch(tuple))},root={},root.fromRGB=function(R,G,B){return conv.rgb.husl([R,G,B])},root.fromHex=function(hex){return conv.rgb.husl(conv.hex.rgb(hex))},root.toRGB=function(H,S,L){return conv.husl.rgb([H,S,L])},root.toHex=function(H,S,L){return conv.rgb.hex(conv.husl.rgb([H,S,L]))},root.p={},root.p.toRGB=function(H,S,L){return conv.xyz.rgb(conv.luv.xyz(conv.lch.luv(conv.huslp.lch([H,S,L]))))},root.p.toHex=function(H,S,L){return conv.rgb.hex(conv.xyz.rgb(conv.luv.xyz(conv.lch.luv(conv.huslp.lch([H,S,L])))))},root.p.fromRGB=function(R,G,B){return conv.lch.huslp(conv.luv.lch(conv.xyz.luv(conv.rgb.xyz([R,G,B]))))},root.p.fromHex=function(hex){return conv.lch.huslp(conv.luv.lch(conv.xyz.luv(conv.rgb.xyz(conv.hex.rgb(hex)))))},root._conv=conv,root._getBounds=getBounds,root._maxChromaForLH=maxChromaForLH,root._maxSafeChromaForL=maxSafeChromaForL,"undefined"!=typeof module&&null!==module||"undefined"!=typeof jQuery&&null!==jQuery||"undefined"!=typeof requirejs&&null!==requirejs||(this.HUSL=root),"undefined"!=typeof module&&null!==module&&(module.exports=root),"undefined"!=typeof jQuery&&null!==jQuery&&(jQuery.husl=root),"undefined"!=typeof requirejs&&null!==requirejs&&null!==__webpack_require__(12)&&(__WEBPACK_AMD_DEFINE_FACTORY__=root,__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof __WEBPACK_AMD_DEFINE_FACTORY__?__WEBPACK_AMD_DEFINE_FACTORY__.call(exports,__webpack_require__,exports,module):__WEBPACK_AMD_DEFINE_FACTORY__,!(void 0!==__WEBPACK_AMD_DEFINE_RESULT__&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)))}).call(this)}).call(exports,__webpack_require__(3)(module))},function(module,exports){module.exports=function(){throw new Error("define cannot be used indirect")}},function(module,exports,__webpack_require__){var Animation,BaseClass,Color,Config,Defaults,EventEmitter,Events,Gestures,LayerDraggable,LayerPinchable,LayerStates,LayerStyle,Matrix,NoCacheDateKey,Utils,_,layerProperty,layerPropertyIgnore,layerPropertyPointTransformer,layerValueTypeError,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1},slice=[].slice;_=__webpack_require__(1)._,Utils=__webpack_require__(4),Config=__webpack_require__(14).Config,Events=__webpack_require__(15).Events,Defaults=__webpack_require__(17).Defaults,BaseClass=__webpack_require__(6).BaseClass,EventEmitter=__webpack_require__(7).EventEmitter,Color=__webpack_require__(10).Color,Matrix=__webpack_require__(9).Matrix,Animation=__webpack_require__(18).Animation,LayerStyle=__webpack_require__(25).LayerStyle,LayerStates=__webpack_require__(26).LayerStates,LayerDraggable=__webpack_require__(28).LayerDraggable,LayerPinchable=__webpack_require__(35).LayerPinchable,Gestures=__webpack_require__(16).Gestures,NoCacheDateKey=Date.now(),layerValueTypeError=function(name,value){throw new Error("Layer."+name+": value '"+value+"' of type '"+typeof value+"'' is not valid")},layerProperty=function(obj,name,cssProperty,fallback,validator,transformer,options,set){var result;return null==options&&(options={}),result={default:fallback,get:function(){return this._properties.hasOwnProperty(name)?this._properties[name]:fallback},set:function(value){if(transformer&&(value=transformer(value,this,name)),value!==this._properties[name]&&(value&&validator&&!validator(value)&&layerValueTypeError(name,value),this._properties[name]=value,null!==cssProperty&&(this._element.style[cssProperty]=LayerStyle[cssProperty](this)),"function"==typeof set&&set(this,value),!this.__constructor))return this.emit("change:"+name,value),"x"!==name&&"y"!==name||this.emit("change:point",value),"width"!==name&&"height"!==name||this.emit("change:size",value),"x"!==name&&"y"!==name&&"width"!==name&&"height"!==name||this.emit("change:frame",value),"rotationZ"===name?this.emit("change:rotation",value):void 0}},result=_.extend(result,options)},layerPropertyPointTransformer=function(value,layer,property){return _.isFunction(value)&&(value=value(layer,property)),value},layerPropertyIgnore=function(options,propertyName,properties){var i,len,p;if(!options.hasOwnProperty(propertyName))return options;for(i=0,len=properties.length;i<len;i++)if(p=properties[i],options.hasOwnProperty(p))return delete options[propertyName],options;return options},exports.Layer=function(superClass){function Layer(options){var i,len,p,ref;if(null==options&&(options={}),this.addListener=bind(this.addListener,this),this.once=bind(this.once,this),this.convertPointToLayer=bind(this.convertPointToLayer,this),this.convertPointToCanvas=bind(this.convertPointToCanvas,this),this.convertPointToScreen=bind(this.convertPointToScreen,this),this.__constructorCalled)throw Error("Layer.constructor "+this.toInspect()+" called twice");for(this.__constructorCalled=!0,this.__constructor=!0,this._properties={},this._style={},this._children=[],this._prefer2d=!1,this._alwaysUseImageCache=!1,this._cancelClickEventInDragSession=!0,this._cancelClickEventInDragSessionVelocity=.1,this._cancelClickEventInDragSessionOffset=8,this._createElement(),layerPropertyIgnore(options,"point",["x","y"]),layerPropertyIgnore(options,"size",["width","height"]),layerPropertyIgnore(options,"frame",["x","y","width","height"]),!options.hasOwnProperty("parent")&&options.hasOwnProperty("superLayer")&&(options.parent=options.superLayer,delete options.superLayer),Layer.__super__.constructor.call(this,Defaults.getDefaults("Layer",options)),this._context.addLayer(this),this._id=this._context.layerCounter,options.parent?this.parent=options.parent:options.shadow||this._insertElement(),options.hasOwnProperty("index")&&(this.index=options.index),ref=["x","y","width","height"],i=0,len=ref.length;i<len;i++)p=ref[i],options.hasOwnProperty(p)&&(this[p]=options[p]);this._context.emit("layer:create",this),this.label=this.label,delete this.__constructor}return extend(Layer,superClass),Layer.define("context",{get:function(){return this._context}}),Layer.define("label",{get:function(){return this._label},set:function(value){return null==value&&(value=""),this._label=value,Utils.labelLayer(this,this._label)}}),Layer.define("custom",Layer.simpleProperty("custom",void 0)),Layer.define("animationOptions",Layer.simpleProperty("animationOptions",{})),Layer.define("width",layerProperty(Layer,"width","width",100,_.isNumber)),Layer.define("height",layerProperty(Layer,"height","height",100,_.isNumber)),Layer.define("visible",layerProperty(Layer,"visible","display",!0,_.isBoolean)),Layer.define("opacity",layerProperty(Layer,"opacity","opacity",1,_.isNumber)),Layer.define("index",layerProperty(Layer,"index","zIndex",0,_.isNumber,null,{importable:!1,exportable:!1})),Layer.define("clip",layerProperty(Layer,"clip","overflow",!1,_.isBoolean)),Layer.define("scrollHorizontal",layerProperty(Layer,"scrollHorizontal","overflowX",!1,_.isBoolean,null,{},function(layer,value){if(value===!0)return layer.ignoreEvents=!1})),Layer.define("scrollVertical",layerProperty(Layer,"scrollVertical","overflowY",!1,_.isBoolean,null,{},function(layer,value){if(value===!0)return layer.ignoreEvents=!1})),Layer.define("scroll",{get:function(){return this.scrollHorizontal===!0||this.scrollVertical===!0},set:function(value){return this.scrollHorizontal=this.scrollVertical=value}}),Layer.define("ignoreEvents",layerProperty(Layer,"ignoreEvents","pointerEvents",!0,_.isBoolean)),Layer.define("x",layerProperty(Layer,"x","webkitTransform",0,_.isNumber,layerPropertyPointTransformer,{depends:["width","height"]})),Layer.define("y",layerProperty(Layer,"y","webkitTransform",0,_.isNumber,layerPropertyPointTransformer,{depends:["width","height"]})),Layer.define("z",layerProperty(Layer,"z","webkitTransform",0,_.isNumber)),Layer.define("scaleX",layerProperty(Layer,"scaleX","webkitTransform",1,_.isNumber)),Layer.define("scaleY",layerProperty(Layer,"scaleY","webkitTransform",1,_.isNumber)),Layer.define("scaleZ",layerProperty(Layer,"scaleZ","webkitTransform",1,_.isNumber)),Layer.define("scale",layerProperty(Layer,"scale","webkitTransform",1,_.isNumber)),Layer.define("skewX",layerProperty(Layer,"skewX","webkitTransform",0,_.isNumber)),Layer.define("skewY",layerProperty(Layer,"skewY","webkitTransform",0,_.isNumber)),Layer.define("skew",layerProperty(Layer,"skew","webkitTransform",0,_.isNumber)),Layer.define("originX",layerProperty(Layer,"originX","webkitTransformOrigin",.5,_.isNumber)),Layer.define("originY",layerProperty(Layer,"originY","webkitTransformOrigin",.5,_.isNumber)),Layer.define("originZ",layerProperty(Layer,"originZ",null,0,_.isNumber)),Layer.define("perspective",layerProperty(Layer,"perspective","webkitPerspective",0,_.isNumber)),Layer.define("perspectiveOriginX",layerProperty(Layer,"perspectiveOriginX","webkitPerspectiveOrigin",.5,_.isNumber)),Layer.define("perspectiveOriginY",layerProperty(Layer,"perspectiveOriginY","webkitPerspectiveOrigin",.5,_.isNumber)),Layer.define("rotationX",layerProperty(Layer,"rotationX","webkitTransform",0,_.isNumber)),Layer.define("rotationY",layerProperty(Layer,"rotationY","webkitTransform",0,_.isNumber)),Layer.define("rotationZ",layerProperty(Layer,"rotationZ","webkitTransform",0,_.isNumber)),Layer.define("rotation",{get:function(){return this.rotationZ},set:function(value){return this.rotationZ=value}}),Layer.define("blur",layerProperty(Layer,"blur","webkitFilter",0,_.isNumber)),Layer.define("brightness",layerProperty(Layer,"brightness","webkitFilter",100,_.isNumber)),Layer.define("saturate",layerProperty(Layer,"saturate","webkitFilter",100,_.isNumber)),Layer.define("hueRotate",layerProperty(Layer,"hueRotate","webkitFilter",0,_.isNumber)),Layer.define("contrast",layerProperty(Layer,"contrast","webkitFilter",100,_.isNumber)),Layer.define("invert",layerProperty(Layer,"invert","webkitFilter",0,_.isNumber)),Layer.define("grayscale",layerProperty(Layer,"grayscale","webkitFilter",0,_.isNumber)),Layer.define("sepia",layerProperty(Layer,"sepia","webkitFilter",0,_.isNumber)),Layer.define("shadowX",layerProperty(Layer,"shadowX","boxShadow",0,_.isNumber)),Layer.define("shadowY",layerProperty(Layer,"shadowY","boxShadow",0,_.isNumber)),Layer.define("shadowBlur",layerProperty(Layer,"shadowBlur","boxShadow",0,_.isNumber)),Layer.define("shadowSpread",layerProperty(Layer,"shadowSpread","boxShadow",0,_.isNumber)),Layer.define("shadowColor",layerProperty(Layer,"shadowColor","boxShadow","",Color.validColorValue,Color.toColor)),Layer.define("backgroundColor",layerProperty(Layer,"backgroundColor","backgroundColor",null,Color.validColorValue,Color.toColor)),Layer.define("color",layerProperty(Layer,"color","color",null,Color.validColorValue,Color.toColor)),Layer.define("borderColor",layerProperty(Layer,"borderColor","border",null,Color.validColorValue,Color.toColor)),Layer.define("borderWidth",layerProperty(Layer,"borderWidth","border",0,_.isNumber)),Layer.define("force2d",layerProperty(Layer,"force2d","webkitTransform",!1,_.isBoolean)),Layer.define("flat",layerProperty(Layer,"flat","webkitTransformStyle",!1,_.isBoolean)),Layer.define("backfaceVisible",layerProperty(Layer,"backfaceVisible","webkitBackfaceVisibility",!0,_.isBoolean)),Layer.define("name",{default:"",get:function(){var name;return name=this._getPropertyValue("name"),null!=name?""+name:""},set:function(value){return this._setPropertyValue("name",value),this._element.setAttribute("name",value)}}),Layer.define("matrix",{get:function(){return this.force2d?this._matrix2d:(new Matrix).translate(this.x,this.y,this.z).scale(this.scale).scale(this.scaleX,this.scaleY,this.scaleZ).skew(this.skew).skewX(this.skewX).skewY(this.skewY).translate(0,0,this.originZ).rotate(this.rotationX,0,0).rotate(0,this.rotationY,0).rotate(0,0,this.rotationZ).translate(0,0,-this.originZ)}}),Layer.define("_matrix2d",{get:function(){return(new Matrix).translate(this.x,this.y).scale(this.scale).skewX(this.skew).skewY(this.skew).rotate(0,0,this.rotationZ)}}),Layer.define("transformMatrix",{get:function(){return(new Matrix).translate(this.originX*this.width,this.originY*this.height).multiply(this.matrix).translate(-this.originX*this.width,-this.originY*this.height)}}),Layer.define("matrix3d",{get:function(){var parent,ppm;return parent=this.parent||this.context,ppm=Utils.perspectiveMatrix(parent),(new Matrix).multiply(ppm).multiply(this.transformMatrix)}}),Layer.define("borderRadius",{importable:!0,exportable:!0,default:0,get:function(){return this._properties.borderRadius},set:function(value){return value&&!_.isNumber(value)&&console.warn("Layer.borderRadius should be a numeric property, not type "+typeof value),this._properties.borderRadius=value,this._element.style.borderRadius=LayerStyle.borderRadius(this),this.emit("change:borderRadius",value)}}),Layer.define("cornerRadius",{importable:!1,exportable:!1,get:function(){return this.borderRadius},set:function(value){return this.borderRadius=value}}),Layer.prototype._setGeometryValues=function(input,keys){var i,j,k,len,len1,results,results1;if(_.isNumber(input)){for(results=[],i=0,len=keys.length;i<len;i++)k=keys[i],results.push(this[k]=input);return results}if(input){for(results1=[],j=0,len1=keys.length;j<len1;j++)k=keys[j],_.isNumber(input[k])?results1.push(this[k]=input[k]):results1.push(void 0);return results1}},Layer.define("point",{importable:!0,exportable:!1,depends:["width","height","size","parent"],get:function(){return Utils.point(this)},set:function(input){return input=layerPropertyPointTransformer(input,this,"point"),this._setGeometryValues(input,["x","y"])}}),Layer.define("size",{importable:!0,exportable:!1, | |
get:function(){return Utils.size(this)},set:function(input){return this._setGeometryValues(input,["width","height"])}}),Layer.define("frame",{importable:!0,exportable:!1,get:function(){return Utils.frame(this)},set:function(input){return this._setGeometryValues(input,["x","y","width","height"])}}),Layer.define("minX",{importable:!0,exportable:!1,get:function(){return this.x},set:function(value){return this.x=value}}),Layer.define("midX",{importable:!0,exportable:!1,get:function(){return Utils.frameGetMidX(this)},set:function(value){return Utils.frameSetMidX(this,value)}}),Layer.define("maxX",{importable:!0,exportable:!1,get:function(){return Utils.frameGetMaxX(this)},set:function(value){return Utils.frameSetMaxX(this,value)}}),Layer.define("minY",{importable:!0,exportable:!1,get:function(){return this.y},set:function(value){return this.y=value}}),Layer.define("midY",{importable:!0,exportable:!1,get:function(){return Utils.frameGetMidY(this)},set:function(value){return Utils.frameSetMidY(this,value)}}),Layer.define("maxY",{importable:!0,exportable:!1,get:function(){return Utils.frameGetMaxY(this)},set:function(value){return Utils.frameSetMaxY(this,value)}}),Layer.prototype.convertPointToScreen=function(point){return Utils.convertPointToContext(point,this,!1)},Layer.prototype.convertPointToCanvas=function(point){return Utils.convertPointToContext(point,this,!0)},Layer.prototype.convertPointToLayer=function(point,layer){return Utils.convertPoint(point,this,layer,!0)},Layer.define("canvasFrame",{importable:!0,exportable:!1,get:function(){return Utils.boundingFrame(this)},set:function(frame){return this.frame=Utils.convertFrameFromContext(frame,this,!0,!1)}}),Layer.define("screenFrame",{importable:!0,exportable:!1,get:function(){return Utils.boundingFrame(this,!1)},set:function(frame){return this.frame=Utils.convertFrameFromContext(frame,this,!1,!1)}}),Layer.prototype.contentFrame=function(){return this.children.length?Utils.frameMerge(_.map(this.children,"frame")):{x:0,y:0,width:0,height:0}},Layer.prototype.totalFrame=function(){return Utils.frameMerge(this.frame,this.contentFrame())},Layer.prototype.centerFrame=function(){var frame;return this.parent?(frame=this.frame,Utils.frameSetMidX(frame,parseInt(this.parent.width/2-this.parent.borderWidth)),Utils.frameSetMidY(frame,parseInt(this.parent.height/2-this.parent.borderWidth)),frame):(frame=this.frame,Utils.frameSetMidX(frame,parseInt(this._context.width/2)),Utils.frameSetMidY(frame,parseInt(this._context.height/2)),frame)},Layer.prototype.center=function(){return this.frame=this.centerFrame(),this},Layer.prototype.centerX=function(offset){return null==offset&&(offset=0),this.x=this.centerFrame().x+offset,this},Layer.prototype.centerY=function(offset){return null==offset&&(offset=0),this.y=this.centerFrame().y+offset,this},Layer.prototype.pixelAlign=function(){return this.x=parseInt(this.x),this.y=parseInt(this.y)},Layer.prototype.canvasScaleX=function(self){var context,i,len,parent,ref,scale;for(null==self&&(self=!0),scale=1,self&&(scale=this.scale*this.scaleX),ref=this.ancestors(context=!0),i=0,len=ref.length;i<len;i++)parent=ref[i],scale=scale*parent.scale*parent.scaleX;return scale},Layer.prototype.canvasScaleY=function(self){var context,i,len,parent,ref,scale;for(null==self&&(self=!0),scale=1,self&&(scale=this.scale*this.scaleY),ref=this.ancestors(context=!0),i=0,len=ref.length;i<len;i++)parent=ref[i],scale=scale*parent.scale*parent.scaleY;return scale},Layer.prototype.screenScaleX=function(self){var context,i,len,parent,ref,scale;for(null==self&&(self=!0),scale=1,self&&(scale=this.scale*this.scaleX),ref=this.ancestors(context=!1),i=0,len=ref.length;i<len;i++)parent=ref[i],scale=scale*parent.scale*parent.scaleX;return scale},Layer.prototype.screenScaleY=function(self){var context,i,len,parent,ref,scale;for(null==self&&(self=!0),scale=1,self&&(scale=this.scale*this.scaleY),ref=this.ancestors(context=!1),i=0,len=ref.length;i<len;i++)parent=ref[i],scale=scale*parent.scale*parent.scaleY;return scale},Layer.prototype.screenScaledFrame=function(){var context,factorX,factorY,frame,i,layerScaledFrame,layers,len,parent;for(frame={x:0,y:0,width:this.width*this.screenScaleX(),height:this.height*this.screenScaleY()},layers=this.ancestors(context=!0),layers.push(this),layers.reverse(),i=0,len=layers.length;i<len;i++)parent=layers[i],factorX=parent._parentOrContext()?parent._parentOrContext().screenScaleX():1,factorY=parent._parentOrContext()?parent._parentOrContext().screenScaleY():1,layerScaledFrame=parent.scaledFrame(),frame.x+=layerScaledFrame.x*factorX,frame.y+=layerScaledFrame.y*factorY;return frame},Layer.prototype.scaledFrame=function(){var frame,scaleX,scaleY;return frame=this.frame,scaleX=this.scale*this.scaleX,scaleY=this.scale*this.scaleY,frame.width*=scaleX,frame.height*=scaleY,frame.x+=(1-scaleX)*this.originX*this.width,frame.y+=(1-scaleY)*this.originY*this.height,frame},Layer.define("style",{importable:!0,exportable:!1,get:function(){return this._element.style},set:function(value){return _.extend(this._element.style,value),this.emit("change:style")}}),Layer.prototype.computedStyle=function(){var getComputedStyle;return getComputedStyle=document.defaultView.getComputedStyle,null==getComputedStyle&&(getComputedStyle=window.getComputedStyle),getComputedStyle(this._element)},Layer.define("classList",{importable:!0,exportable:!1,get:function(){return this._element.classList}}),Layer.prototype._createElement=function(){if(null==this._element)return this._element=document.createElement("div"),this._element.classList.add("framerLayer")},Layer.prototype._insertElement=function(){return this.bringToFront(),this._context.element.appendChild(this._element)},Layer.define("html",{get:function(){var ref;return(null!=(ref=this._elementHTML)?ref.innerHTML:void 0)||""},set:function(value){return this._elementHTML||(this._elementHTML=document.createElement("div"),this._element.appendChild(this._elementHTML)),this._elementHTML.innerHTML=value,this.emit("change:html")}}),Layer.prototype.querySelector=function(query){return this._element.querySelector(query)},Layer.prototype.querySelectorAll=function(query){return this._element.querySelectorAll(query)},Layer.prototype.destroy=function(){var ref;return this.parent&&(this.parent._children=_.without(this.parent._children,this)),null!=(ref=this._element.parentNode)&&ref.removeChild(this._element),this.removeAllListeners(),this._context.removeLayer(this),this._context.emit("layer:destroy",this)},Layer.prototype.copy=function(){var child,copiedChild,i,layer,len,ref;for(layer=this.copySingle(),ref=this.children,i=0,len=ref.length;i<len;i++)child=ref[i],copiedChild=child.copy(),copiedChild.parent=layer;return layer},Layer.prototype.copySingle=function(){var copy;return copy=new this.constructor(this.props),copy.style=this.style,copy},Layer.prototype._cleanupImageLoader=function(){var ref;return null!=(ref=this._imageEventManager)&&ref.removeAllListeners(),this._imageEventManager=null,this._imageLoader=null},Layer.define("image",{default:"",get:function(){return this._getPropertyValue("image")},set:function(value){var currentValue,defaults,imageUrl,ref;return _.isString(value)||null===value||layerValueTypeError("image",value),currentValue=this._getPropertyValue("image"),currentValue===value?this.emit("load"):(defaults=Defaults.getDefaults("Layer",{}),(null!=(ref=this.backgroundColor)?ref.isEqual(defaults.backgroundColor):void 0)&&(this.backgroundColor=null),this._setPropertyValue("image",value),null===value||""===value?(null!=this._imageLoader&&(this._imageEventManager.removeAllListeners(),this._imageLoader.src=null),this.style["background-image"]=null,void(null!=this._imageLoader&&(this.emit(Events.ImageLoadCancelled,this._imageLoader),this._cleanupImageLoader()))):!_.endsWith("function"==typeof value.toLowerCase?value.toLowerCase():void 0,".pdf")||Utils.isWebKit()&&!Utils.isChrome()?(imageUrl=value,this._alwaysUseImageCache===!1&&Utils.isLocalAssetUrl(imageUrl)&&(imageUrl+="?nocache="+NoCacheDateKey),this.listeners(Events.ImageLoaded,!0)||this.listeners(Events.ImageLoadError,!0)||this.listeners(Events.ImageLoadCancelled,!0)?(this._imageLoader=new Image,this._imageLoader.name=imageUrl,this._imageLoader.src=imageUrl,this._imageEventManager=this._context.domEventManager.wrap(this._imageLoader),this._imageEventManager.addEventListener("load",function(_this){return function(){return _this.style["background-image"]="url('"+imageUrl+"')",_this.emit(Events.ImageLoaded,_this._imageLoader),_this._cleanupImageLoader()}}(this)),this._imageEventManager.addEventListener("error",function(_this){return function(){return _this.emit(Events.ImageLoadError,_this._imageLoader),_this._cleanupImageLoader()}}(this))):this.style["background-image"]="url('"+imageUrl+"')"):void(this.style["background-image"]="url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAVlJREFUaAXtlwEOwiAMRdF4Cr3/0fQaSre9ZFSYLCrQpSSG/FLW9v92agghXJdP3KZlCp/J2up+WiUuzMt6zNukzPDYvALCsKme1/maV8BnQHqw9/IZ6KmAz0BP9ontMwATPXafgR6s65g+A5qRlrhmBu6FhG6LXf9/+JU/YclROkVWEs/8r9FLrChb2apSqVqWZgKmtRKz9/f+CdPxoVl8CAWylcWKUQZGwfhjB3OOHcw5djDn2MH6fBNLC42yaEnyoTXB2V36+lPlz+zN9x6HKfxrZwZ/HUbf5/lJviMpoBPWBWWxFJCtLNqplItIWuvPffx5Dphz7GB9vonNv4X2zICWuMTM3p7Gv/b5iVLmFaiZgb3M/Ns/Ud68AvIGkJ6ir8xh8wrQrzAve9Jjo2PzCsC8z4Aw0WP5DPRgXcf07wHNSEvsM9CS7VIsn4ESMy3sPgMtWN6K8QKfubDo2UqVogAAAABJRU5ErkJggg==')"))}}),Layer.define("parent",{enumerable:!1,exportable:!1,importable:!0,get:function(){return this._parent||null},set:function(layer){if(layer!==this._parent){if(layer===this)throw Error("Layer.parent: a layer cannot be it's own parent.");if(!layer instanceof Layer)throw Error("Layer.parent needs to be a Layer object");return Utils.domCompleteCancel(this.__insertElement),this._parent&&(this._parent._children=_.without(this._parent._children,this),this._parent._element.removeChild(this._element),this._parent.emit("change:children",{added:[],removed:[this]}),this._parent.emit("change:subLayers",{added:[],removed:[this]})),layer?(layer._element.appendChild(this._element),layer._children.push(this),layer.emit("change:children",{added:[this],removed:[]}),layer.emit("change:subLayers",{added:[this],removed:[]})):this._insertElement(),this._parent=layer,this.bringToFront(),this.emit("change:parent"),this.emit("change:superLayer")}}}),Layer.define("children",{enumerable:!1,exportable:!1,importable:!1,get:function(){return _.clone(this._children)}}),Layer.define("siblings",{enumerable:!1,exportable:!1,importable:!1,get:function(){return null===this.parent?_.filter(this._context.layers,function(_this){return function(layer){return layer!==_this&&null===layer.parent}}(this)):_.without(this.parent.children,this)}}),Layer.define("descendants",{enumerable:!1,exportable:!1,importable:!1,get:function(){var f,result;return result=[],f=function(layer){return result.push(layer),layer.children.map(f)},this.children.map(f),result}}),Layer.prototype.addChild=function(layer){return layer.parent=this},Layer.prototype.removeChild=function(layer){if(!(indexOf.call(this.children,layer)<0))return layer.parent=null},Layer.prototype.childrenWithName=function(name){return _.filter(this.children,function(layer){return layer.name===name})},Layer.prototype.siblingsWithName=function(name){return _.filter(this.siblingLayers,function(layer){return layer.name===name})},Layer.prototype.ancestors=function(context){var currentLayer,parents;if(null==context&&(context=!1),parents=[],currentLayer=this,context===!1)for(;currentLayer.parent;)parents.push(currentLayer.parent),currentLayer=currentLayer.parent;else for(;currentLayer._parentOrContext();)parents.push(currentLayer._parentOrContext()),currentLayer=currentLayer._parentOrContext();return parents},Layer.prototype.root=function(context){return null==context&&(context=!1),null===this.parent?this:_.last(this.ancestors(context=context))},Layer.prototype.childrenAbove=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),_.filter(this.children,function(layer){return Utils.framePointForOrigin(layer.frame,originX,originY).y<point.y})},Layer.prototype.childrenBelow=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),_.filter(this.children,function(layer){return Utils.framePointForOrigin(layer.frame,originX,originY).y>point.y})},Layer.prototype.childrenLeft=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),_.filter(this.children,function(layer){return Utils.framePointForOrigin(layer.frame,originX,originY).x<point.x})},Layer.prototype.childrenRight=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),_.filter(this.children,function(layer){return Utils.framePointForOrigin(layer.frame,originX,originY).x>point.x})},Layer.prototype._parentOrContext=function(){return this.parent?this.parent:this._context._parent?this._context._parent:void 0},Layer.define("superLayer",{enumerable:!1,exportable:!1,importable:!1,get:function(){return this.parent},set:function(value){return this.parent=value}}),Layer.define("subLayers",{enumerable:!1,exportable:!1,importable:!1,get:function(){return this.children}}),Layer.define("siblingLayers",{enumerable:!1,exportable:!1,importable:!1,get:function(){return this.siblings}}),Layer.prototype.superLayers=function(context){return null==context&&(context=!1),this.ancestors(context)},Layer.prototype.addSubLayer=function(layer){return this.addChild(layer)},Layer.prototype.removeSubLayer=function(layer){return this.removeChild(layer)},Layer.prototype.subLayersByName=function(name){return this.childrenWithName(name)},Layer.prototype.siblingLayersByName=function(name){return this.siblingsWithName(name)},Layer.prototype.subLayersAbove=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),this.childrenAbove(point,originX,originY)},Layer.prototype.subLayersBelow=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),this.childrenBelow(point,originX,originY)},Layer.prototype.subLayersLeft=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),this.childrenLeft(point,originX,originY)},Layer.prototype.subLayersRight=function(point,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),this.childrenRight(point,originX,originY)},Layer.prototype._superOrParentLayer=function(){return this._parentOrContext()},Layer.prototype.animate=function(properties,options){var animation,stateName;return null==options&&(options={}),_.isString(properties)?(stateName=properties,null!=options.options&&(options=options.options),this.states.machine.switchTo(stateName,options)):(properties=_.clone(properties),null!=properties.properties&&(options=properties,properties=options.properties,delete options.properties),null!=properties.options&&(options=_.defaults({},options,properties.options),delete properties.options),options=_.defaults({},options,this.animationOptions),null==options.start&&(options.start=!0),animation=new Animation(this,properties,options),options.start&&animation.start(),animation)},Layer.prototype.stateCycle=function(){var args,options,states;return args=1<=arguments.length?slice.call(arguments,0):[],states=_.flatten(args),_.isObject(_.last(states))&&(options=states.pop()),this.animate(this.states.machine.next(states),options)},Layer.prototype.stateSwitch=function(stateName,options){if(null==options&&(options={}),null==stateName)throw new Error("Missing required argument 'stateName' in stateSwitch()");return options.animate===!0?this.animate(stateName,options):this.animate(stateName,_.defaults({},options,{instant:!0}))},Layer.prototype.animations=function(includePending){return null==includePending&&(includePending=!1),_.filter(this._context.animations,function(_this){return function(animation){return animation.layer===_this&&(includePending||!animation.isPending)}}(this))},Layer.prototype.animatingProperties=function(){var animation,i,j,len,len1,properties,propertyName,ref,ref1;for(properties={},ref=this.animations(),i=0,len=ref.length;i<len;i++)for(animation=ref[i],ref1=animation.animatingProperties(),j=0,len1=ref1.length;j<len1;j++)propertyName=ref1[j],properties[propertyName]=animation;return properties},Layer.define("isAnimating",{enumerable:!1,exportable:!1,get:function(){return 0!==this.animations().length}}),Layer.prototype.animateStop=function(){var ref;return _.invokeMap(this.animations(),"stop"),null!=(ref=this._draggable)?ref.animateStop():void 0},Layer.prototype.bringToFront=function(){return this.index=_.max(_.union([0],this.siblingLayers.map(function(layer){return layer.index})))+1},Layer.prototype.sendToBack=function(){return this.index=_.min(_.union([0],this.siblingLayers.map(function(layer){return layer.index})))-1},Layer.prototype.placeBefore=function(layer){var i,l,len,ref;if(!(indexOf.call(this.siblingLayers,layer)<0)){for(ref=this.siblingLayers,i=0,len=ref.length;i<len;i++)l=ref[i],l.index<=layer.index&&(l.index-=1);return this.index=layer.index+1}},Layer.prototype.placeBehind=function(layer){var i,l,len,ref;if(!(indexOf.call(this.siblingLayers,layer)<0)){for(ref=this.siblingLayers,i=0,len=ref.length;i<len;i++)l=ref[i],l.index>=layer.index&&(l.index+=1);return this.index=layer.index-1}},Layer.define("states",{enumerable:!1,exportable:!1,importable:!1,get:function(){return null==this._states&&(this._states=new LayerStates(this)),this._states},set:function(states){return this.states.machine.reset(),_.extend(this.states,states)}}),Layer.define("stateNames",{enumerable:!1,exportable:!1,importable:!1,get:function(){return this.states.machine.stateNames}}),Layer.define("draggable",{importable:!1,exportable:!1,get:function(){return null!=this._draggable?this._draggable:this._draggable=new LayerDraggable(this)},set:function(value){if(_.isBoolean(value))return this.draggable.enabled=value}}),Layer.define("pinchable",{importable:!1,exportable:!1,get:function(){return null!=this._pinchable?this._pinchable:this._pinchable=new LayerPinchable(this)},set:function(value){if(_.isBoolean(value))return this.pinchable.enabled=value}}),Layer.define("scrollFrame",{importable:!1,get:function(){var frame;return frame={x:this.scrollX,y:this.scrollY,width:this.width,height:this.height}},set:function(frame){return this.scrollX=frame.x,this.scrollY=frame.y}}),Layer.define("scrollX",{get:function(){return this._element.scrollLeft},set:function(value){return _.isNumber(value)||layerValueTypeError("scrollX",value),this._element.scrollLeft=value}}),Layer.define("scrollY",{get:function(){return this._element.scrollTop},set:function(value){return _.isNumber(value)||layerValueTypeError("scrollY",value),this._element.scrollTop=value}}),Layer.define("_domEventManager",{get:function(){return this._context.domEventManager.wrap(this._element)}}),Layer.prototype.emit=function(){var args,eventName,offset,parentDraggableLayer,velocity;if(eventName=arguments[0],args=2<=arguments.length?slice.call(arguments,1):[],this._cancelClickEventInDragSession&&!this._draggable&&(eventName===Events.Click||eventName===Events.Tap||eventName===Events.TapStart||eventName===Events.TapEnd||eventName===Events.LongPress||eventName===Events.LongPressStart||eventName===Events.LongPressEnd)&&(parentDraggableLayer=this._parentDraggableLayer())){if(offset=parentDraggableLayer.draggable.offset,Math.abs(offset.x)>this._cancelClickEventInDragSessionOffset)return;if(Math.abs(offset.y)>this._cancelClickEventInDragSessionOffset)return;if(velocity=parentDraggableLayer.draggable.velocity,Math.abs(velocity.x)>this._cancelClickEventInDragSessionVelocity)return;if(Math.abs(velocity.y)>this._cancelClickEventInDragSessionVelocity)return}return Layer.__super__.emit.apply(this,[eventName].concat(slice.call(args),[this]))},Layer.prototype.once=function(eventName,listener){return Layer.__super__.once.call(this,eventName,listener),this._addListener(eventName,listener)},Layer.prototype.addListener=function(eventName,listener){if(!eventName)throw Error("Layer.on needs a valid event name");if(!listener)throw Error("Layer.on needs an event listener");return Layer.__super__.addListener.call(this,eventName,listener),this._addListener(eventName,listener)},Layer.prototype.removeListener=function(eventName,listener){if(!eventName)throw Error("Layer.off needs a valid event name");return Layer.__super__.removeListener.call(this,eventName,listener),this._removeListener(eventName,listener)},Layer.prototype._addListener=function(eventName,listener){if(_.startsWith(eventName,"change:")||(this.ignoreEvents=!1),(Utils.domValidEvent(this._element,eventName)||indexOf.call(_.values(Gestures),eventName)>=0)&&!this._domEventManager.listeners(eventName).length)return this._domEventManager.addEventListener(eventName,function(_this){return function(event){return _this.emit(eventName,event)}}(this))},Layer.prototype._removeListener=function(eventName,listener){if(!this.listeners(eventName).length)return this._domEventManager.removeAllListeners(eventName)},Layer.prototype._parentDraggableLayer=function(){var i,layer,len,ref,ref1;for(ref=this.ancestors(),i=0,len=ref.length;i<len;i++)if(layer=ref[i],null!=(ref1=layer._draggable)?ref1.enabled:void 0)return layer;return null},Layer.prototype.on=Layer.prototype.addListener,Layer.prototype.off=Layer.prototype.removeListener,Layer.prototype.onClick=function(cb){return this.on(Events.Click,cb)},Layer.prototype.onDoubleClick=function(cb){return this.on(Events.DoubleClick,cb)},Layer.prototype.onScrollStart=function(cb){return this.on(Events.ScrollStart,cb)},Layer.prototype.onScroll=function(cb){return this.on(Events.Scroll,cb)},Layer.prototype.onScrollEnd=function(cb){return this.on(Events.ScrollEnd,cb)},Layer.prototype.onScrollAnimationDidStart=function(cb){return this.on(Events.ScrollAnimationDidStart,cb)},Layer.prototype.onScrollAnimationDidEnd=function(cb){return this.on(Events.ScrollAnimationDidEnd,cb)},Layer.prototype.onTouchStart=function(cb){return this.on(Events.TouchStart,cb)},Layer.prototype.onTouchEnd=function(cb){return this.on(Events.TouchEnd,cb)},Layer.prototype.onTouchMove=function(cb){return this.on(Events.TouchMove,cb)},Layer.prototype.onMouseUp=function(cb){return this.on(Events.MouseUp,cb)},Layer.prototype.onMouseDown=function(cb){return this.on(Events.MouseDown,cb)},Layer.prototype.onMouseOver=function(cb){return this.on(Events.MouseOver,cb)},Layer.prototype.onMouseOut=function(cb){return this.on(Events.MouseOut,cb)},Layer.prototype.onMouseMove=function(cb){return this.on(Events.MouseMove,cb)},Layer.prototype.onMouseWheel=function(cb){return this.on(Events.MouseWheel,cb)},Layer.prototype.onAnimationStart=function(cb){return this.on(Events.AnimationStart,cb)},Layer.prototype.onAnimationStop=function(cb){return this.on(Events.AnimationStop,cb)},Layer.prototype.onAnimationEnd=function(cb){return this.on(Events.AnimationEnd,cb)},Layer.prototype.onAnimationDidStart=function(cb){return this.on(Events.AnimationDidStart,cb)},Layer.prototype.onAnimationDidStop=function(cb){return this.on(Events.AnimationDidStop,cb)},Layer.prototype.onAnimationDidEnd=function(cb){return this.on(Events.AnimationDidEnd,cb)},Layer.prototype.onImageLoaded=function(cb){return this.on(Events.ImageLoaded,cb)},Layer.prototype.onImageLoadError=function(cb){return this.on(Events.ImageLoadError,cb)},Layer.prototype.onImageLoadCancelled=function(cb){return this.on(Events.ImageLoadCancelled,cb)},Layer.prototype.onMove=function(cb){return this.on(Events.Move,cb)},Layer.prototype.onDragStart=function(cb){return this.on(Events.DragStart,cb)},Layer.prototype.onDragWillMove=function(cb){return this.on(Events.DragWillMove,cb)},Layer.prototype.onDragMove=function(cb){return this.on(Events.DragMove,cb)},Layer.prototype.onDragDidMove=function(cb){return this.on(Events.DragDidMove,cb)},Layer.prototype.onDrag=function(cb){return this.on(Events.Drag,cb)},Layer.prototype.onDragEnd=function(cb){return this.on(Events.DragEnd,cb)},Layer.prototype.onDragAnimationStart=function(cb){return this.on(Events.DragAnimationStart,cb)},Layer.prototype.onDragAnimationEnd=function(cb){return this.on(Events.DragAnimationEnd,cb)},Layer.prototype.onDirectionLockStart=function(cb){return this.on(Events.DirectionLockStart,cb)},Layer.prototype.onStateSwitchStart=function(cb){return this.on(Events.StateSwitchStart,cb)},Layer.prototype.onStateSwitchStop=function(cb){return this.on(Events.StateSwitchStop,cb)},Layer.prototype.onStateSwitchEnd=function(cb){return this.on(Events.StateSwitchEnd,cb)},Layer.prototype.onStateWillSwitch=function(cb){return this.on(Events.StateSwitchStart,cb)},Layer.prototype.onStateDidSwitch=function(cb){return this.on(Events.StateSwitchEnd,cb)},Layer.prototype.onTap=function(cb){return this.on(Events.Tap,cb)},Layer.prototype.onTapStart=function(cb){return this.on(Events.TapStart,cb)},Layer.prototype.onTapEnd=function(cb){return this.on(Events.TapEnd,cb)},Layer.prototype.onDoubleTap=function(cb){return this.on(Events.DoubleTap,cb)},Layer.prototype.onForceTap=function(cb){return this.on(Events.ForceTap,cb)},Layer.prototype.onForceTapChange=function(cb){return this.on(Events.ForceTapChange,cb)},Layer.prototype.onForceTapStart=function(cb){return this.on(Events.ForceTapStart,cb)},Layer.prototype.onForceTapEnd=function(cb){return this.on(Events.ForceTapEnd,cb)},Layer.prototype.onLongPress=function(cb){return this.on(Events.LongPress,cb)},Layer.prototype.onLongPressStart=function(cb){return this.on(Events.LongPressStart,cb)},Layer.prototype.onLongPressEnd=function(cb){return this.on(Events.LongPressEnd,cb)},Layer.prototype.onSwipe=function(cb){return this.on(Events.Swipe,cb)},Layer.prototype.onSwipeStart=function(cb){return this.on(Events.SwipeStart,cb)},Layer.prototype.onSwipeEnd=function(cb){return this.on(Events.SwipeEnd,cb)},Layer.prototype.onSwipeUp=function(cb){return this.on(Events.SwipeUp,cb)},Layer.prototype.onSwipeUpStart=function(cb){return this.on(Events.SwipeUpStart,cb)},Layer.prototype.onSwipeUpEnd=function(cb){return this.on(Events.SwipeUpEnd,cb)},Layer.prototype.onSwipeDown=function(cb){return this.on(Events.SwipeDown,cb)},Layer.prototype.onSwipeDownStart=function(cb){return this.on(Events.SwipeDownStart,cb)},Layer.prototype.onSwipeDownEnd=function(cb){return this.on(Events.SwipeDownEnd,cb)},Layer.prototype.onSwipeLeft=function(cb){return this.on(Events.SwipeLeft,cb)},Layer.prototype.onSwipeLeftStart=function(cb){return this.on(Events.SwipeLeftStart,cb)},Layer.prototype.onSwipeLeftEnd=function(cb){return this.on(Events.SwipeLeftEnd,cb)},Layer.prototype.onSwipeRight=function(cb){return this.on(Events.SwipeRight,cb)},Layer.prototype.onSwipeRightStart=function(cb){return this.on(Events.SwipeRightStart,cb)},Layer.prototype.onSwipeRightEnd=function(cb){return this.on(Events.SwipeRightEnd,cb)},Layer.prototype.onPan=function(cb){return this.on(Events.Pan,cb)},Layer.prototype.onPanStart=function(cb){return this.on(Events.PanStart,cb)},Layer.prototype.onPanEnd=function(cb){return this.on(Events.PanEnd,cb)},Layer.prototype.onPanLeft=function(cb){return this.on(Events.PanLeft,cb)},Layer.prototype.onPanRight=function(cb){return this.on(Events.PanRight,cb)},Layer.prototype.onPanUp=function(cb){return this.on(Events.PanUp,cb)},Layer.prototype.onPanDown=function(cb){return this.on(Events.PanDown,cb)},Layer.prototype.onPinch=function(cb){return this.on(Events.Pinch,cb)},Layer.prototype.onPinchStart=function(cb){return this.on(Events.PinchStart,cb)},Layer.prototype.onPinchEnd=function(cb){return this.on(Events.PinchEnd,cb)},Layer.prototype.onScale=function(cb){return this.on(Events.Scale,cb)},Layer.prototype.onScaleStart=function(cb){return this.on(Events.ScaleStart,cb)},Layer.prototype.onScaleEnd=function(cb){return this.on(Events.ScaleEnd,cb)},Layer.prototype.onRotate=function(cb){return this.on(Events.Rotate,cb)},Layer.prototype.onRotateStart=function(cb){return this.on(Events.RotateStart,cb)},Layer.prototype.onRotateEnd=function(cb){return this.on(Events.RotateEnd,cb)},Layer.prototype._showHint=function(targetLayer){var context,frame,i,j,layer,len,len1,parent,ref,ref1;if(this.visible&&0!==this.opacity){if(!this.shouldShowHint(targetLayer)){for(ref=this.children,i=0,len=ref.length;i<len;i++)layer=ref[i],layer._showHint(targetLayer);return null}for(frame=this.canvasFrame,ref1=this.ancestors(context=!0),j=0,len1=ref1.length;j<len1;j++)if(parent=ref1[j],parent.clip&&(frame=Utils.frameIntersection(frame,parent.canvasFrame)),!frame)return;return this.showHint(frame),_.invokeMap(this.children,"_showHint")}},Layer.prototype.willSeemToDoSomething=function(){return!this.ignoreEvents&&(!this._draggable||this._draggable.isDragging!==!1||this._draggable.isMoving!==!1)},Layer.prototype.shouldShowHint=function(){var eventName,i,j,len,len1,parent,ref,ref1;if(this.ignoreEvents===!0)return!1;if(this.isAnimating)return!1;for(ref=this.ancestors(),i=0,len=ref.length;i<len;i++)if(parent=ref[i],parent.isAnimating)return!1;if(this._draggable&&this._draggable.horizontal===!1&&this._draggable.vertical===!1)return!1;if(0===this.opacity)return!1;for(ref1=this.listenerEvents(),j=0,len1=ref1.length;j<len1;j++)if(eventName=ref1[j],Events.isInteractive(eventName))return!0;return!1},Layer.prototype.showHint=function(highlightFrame){var animation,layer;return layer=new Layer({frame:Utils.frameInset(highlightFrame,-1),backgroundColor:null,borderColor:Framer.Defaults.Hints.color,borderRadius:this.borderRadius*Utils.average([this.canvasScaleX(),this.canvasScaleY()]),borderWidth:3}),this._draggable&&(layer.backgroundColor=null),Utils.frameInFrame(this.context.canvasFrame,highlightFrame)&&(layer.backgroundColor=null),animation=layer.animate({properties:{opacity:0},curve:"ease-out",time:.5}),animation.onAnimationEnd(function(){return layer.destroy()})},Layer.prototype.toName=function(){var ref;return this.name?name:(null!=(ref=this.__framerInstanceInfo)?ref.name:void 0)||""},Layer.prototype.toInspect=function(constructor){var name;return null==constructor&&(constructor=this.constructor.name),name=this.name?"name:"+this.name+" ":"","<"+constructor+" "+this.toName()+" id:"+this.id+" "+name+" ("+Utils.roundWhole(this.x)+", "+Utils.roundWhole(this.y)+") "+Utils.roundWhole(this.width)+"x"+Utils.roundWhole(this.height)+">"},Layer}(BaseClass)},function(module,exports,__webpack_require__){var FramerCSS,Utils;Utils=__webpack_require__(4),FramerCSS="body {\n\tmargin: 0;\n}\n\n.framerContext {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tpointer-events: none;\n}\n\n.framerLayer {\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n\tbackground-size: cover;\n\t-webkit-overflow-scrolling: touch;\n\t-webkit-box-sizing: border-box;\n\t-webkit-user-select: none;\n}\n\n.framerLayer input,\n.framerLayer textarea,\n.framerLayer select,\n.framerLayer option,\n.framerLayer div[contenteditable=true]\n{\n\tpointer-events: auto;\n\t-webkit-user-select: auto;\n}\n\n.framerDebug {\n\tpadding: 6px;\n\tcolor: #fff;\n\tfont: 10px/1em Monaco;\n}\n",Utils.domComplete(function(){return Utils.insertCSS(FramerCSS)})},function(module,exports,__webpack_require__){var Events,Gestures,Utils,_,interactiveEvents,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};Utils=__webpack_require__(4),_=__webpack_require__(1)._,Gestures=__webpack_require__(16).Gestures,Events={},Events.MouseUp="mouseup",Events.MouseDown="mousedown",Events.MouseOver="mouseover",Events.MouseOut="mouseout",Events.MouseMove="mousemove",Events.MouseWheel="mousewheel",Events.DoubleClick="dblclick",Events.MouseDoubleClick="dblclick",Events.enableEmulatedTouchEvents=function(enable){return null==enable&&(enable=!0),enable?(Events.TouchStart=Events.MouseDown,Events.TouchEnd=Events.MouseUp,Events.TouchMove=Events.MouseMove):(Events.TouchStart="touchstart",Events.TouchEnd="touchend", | |
Events.TouchMove="touchmove")},Events.enableEmulatedTouchEvents(!1),Utils.isTouch()||Events.enableEmulatedTouchEvents(),Events.Click=Events.TouchEnd,Events.AnimationStart="start",Events.AnimationHalt="halt",Events.AnimationStop="stop",Events.AnimationEnd="end",Events.AnimationDidStart=Events.AnimationStart,Events.AnimationDidStop=Events.AnimationStop,Events.AnimationDidEnd=Events.AnimationEnd,Events.StateSwitchStart="stateswitchstart",Events.StateSwitchStop="stateswitchstop",Events.StateSwitchEnd="stateswitchend",Events.StateWillSwitch=Events.StateSwitchStart,Events.StateDidSwitch=Events.StateSwitchEnd,Events.Scroll="scroll",Events.ImageLoaded="imageload",Events.ImageLoadError="imageerror",Events.ImageLoadCancelled="imagecancelled",_.extend(Events,Gestures),Events.touchEvent=function(event){var ref,ref1,touchEvent;return touchEvent=null!=(ref=event.touches)?ref[0]:void 0,null==touchEvent&&(touchEvent=null!=(ref1=event.changedTouches)?ref1[0]:void 0),null==touchEvent&&(touchEvent=event),touchEvent},Events.wrap=function(element){return Framer.CurrentContext.domEventManager.wrap(element)},Events.isGesture=function(eventName){return indexOf.call(Gestures,eventName)>=0},interactiveEvents=_.values(Gestures).concat([Events.TouchStart,Events.TouchEnd,Events.MouseUp,Events.MouseDown,Events.MouseWheel,Events.DoubleClick]),Events.isInteractive=function(eventName){return indexOf.call(interactiveEvents,eventName)>=0},exports.Events=Events},function(module,exports){var Gestures;Gestures={},Gestures.Tap="tap",Gestures.TapStart="tapstart",Gestures.TapEnd="tapend",Gestures.DoubleTap="doubletap",Gestures.ForceTap="forcetap",Gestures.ForceTapChange="forcetapchange",Gestures.ForceTapStart="forcetapstart",Gestures.ForceTapEnd="forcetapend",Gestures.LongPress="longpress",Gestures.LongPressStart="longpressstart",Gestures.LongPressEnd="longpressend",Gestures.Swipe="swipe",Gestures.SwipeStart="swipestart",Gestures.SwipeEnd="swipeend",Gestures.SwipeUp="swipeup",Gestures.SwipeUpStart="swipeupstart",Gestures.SwipeUpEnd="swipeupend",Gestures.SwipeDown="swipedown",Gestures.SwipeDownStart="swipedownstart",Gestures.SwipeDownEnd="swipedownend",Gestures.SwipeLeft="swipeleft",Gestures.SwipeLeftStart="swipeleftstart",Gestures.SwipeLeftEnd="swipeleftend",Gestures.SwipeRight="swiperight",Gestures.SwipeRightStart="swiperightstart",Gestures.SwipeRightEnd="swiperightend",Gestures.EdgeSwipe="edgeswipe",Gestures.EdgeSwipeStart="edgeswipestart",Gestures.EdgeSwipeEnd="edgeswipeend",Gestures.EdgeSwipeTop="edgeswipetop",Gestures.EdgeSwipeTopStart="edgeswipetopstart",Gestures.EdgeSwipeTopEnd="edgeswipetopend",Gestures.EdgeSwipeRight="edgeswiperight",Gestures.EdgeSwipeRightStart="edgeswiperightstart",Gestures.EdgeSwipeRightEnd="edgeswiperightend",Gestures.EdgeSwipeBottom="edgeswipebottom",Gestures.EdgeSwipeBottomStart="edgeswipebottomstart",Gestures.EdgeSwipeBottomEnd="edgeswipebottomend",Gestures.EdgeSwipeLeft="edgeswipeleft",Gestures.EdgeSwipeLeftStart="edgeswipeleftstart",Gestures.EdgeSwipeLeftEnd="edgeswipeleftend",Gestures.Pan="pan",Gestures.PanStart="panstart",Gestures.PanEnd="panend",Gestures.PanLeft="panleft",Gestures.PanRight="panright",Gestures.PanUp="panup",Gestures.PanDown="pandown",Gestures.Pinch="pinch",Gestures.PinchStart="pinchstart",Gestures.PinchEnd="pinchend",Gestures.Scale="scale",Gestures.ScaleStart="scalestart",Gestures.ScaleEnd="scaleend",Gestures.Rotate="rotate",Gestures.RotateStart="rotatestart",Gestures.RotateEnd="rotateend",exports.Gestures=Gestures},function(module,exports,__webpack_require__){var Originals,Utils,_;_=__webpack_require__(1)._,Utils=__webpack_require__(4),Originals={Layer:{backgroundColor:"rgba(123, 123, 123, 0.5)",color:"white",shadowColor:"rgba(123, 123, 123, 0.5)",borderColor:"rgba(123, 123, 123, 0.5)",width:200,height:200},Animation:{curve:"ease",curveOptions:{},time:1,repeat:0,delay:0,debug:!1,colorModel:"husl",animate:!0,looping:!1},Context:{perspective:0,perspectiveOriginX:.5,perspectiveOriginY:.5,parent:null,name:null},DeviceComponent:{fullScreen:!1,padding:50,deviceType:"apple-iphone-7-silver",deviceZoom:"fit",contentZoom:1,orientation:"portrait",keyboard:!1,animationOptions:{time:.3,curve:"ease-in-out"}},LayerDraggable:{momentum:!0,momentumOptions:{friction:2.1,tolerance:1},bounce:!0,bounceOptions:{friction:40,tension:200,tolerance:1},directionLock:!1,directionLockThreshold:{x:10,y:10},overdrag:!0,overdragScale:.5,pixelAlign:!0,velocityTimeout:100,velocityScale:890},FrictionSimulator:{friction:2,tolerance:.1},SpringSimulator:{tension:500,friction:10,tolerance:1e-4},MomentumBounceSimulator:{momentum:{friction:2,tolerance:10},bounce:{tension:500,friction:10,tolerance:1}},GridComponent:{rows:3,columns:3,spacing:0,backgroundColor:"transparent"},ScrollComponent:{clip:!0,mouseWheelEnabled:!1,backgroundColor:null},Hints:{color:"rgba(144, 19, 254, 0.8)"}},exports.Defaults={getDefaults:function(className,options){var defaults,k,ref,v;if(!Originals.hasOwnProperty(className))return{};if(!Framer.Defaults.hasOwnProperty(className))return{};options=_.clone(options),defaults=_.cloneDeep(Originals[className]),ref=Framer.Defaults[className];for(k in ref)v=ref[k],defaults[k]=_.isFunction(v)?v():v;for(k in defaults)v=defaults[k],options.hasOwnProperty(k)||(options[k]=v);return options},setup:function(){var className,classValues,k,ref,v;if(window.FramerDefaults){ref=window.FramerDefaults;for(className in ref){classValues=ref[className];for(k in classValues)v=classValues[k],Originals[className][k]=v}}return exports.Defaults.reset()},reset:function(){return window.Framer.Defaults=_.cloneDeep(Originals)}}},function(module,exports,__webpack_require__){var Animator,BaseClass,Config,Defaults,LinearAnimator,Utils,_,evaluateRelativeProperty,isRelativeProperty,numberRE,relativePropertyRE,slice=[].slice,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};_=__webpack_require__(1)._,Utils=__webpack_require__(4),Config=__webpack_require__(14).Config,Defaults=__webpack_require__(17).Defaults,BaseClass=__webpack_require__(6).BaseClass,Animator=__webpack_require__(19).Animator,LinearAnimator=__webpack_require__(20).LinearAnimator,numberRE=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/,relativePropertyRE=new RegExp("^(?:([+-])=|)("+numberRE.source+")([a-z%]*)$","i"),isRelativeProperty=function(v){return _.isString(v)&&relativePropertyRE.test(v)},evaluateRelativeProperty=function(target,k,v){var match,number,ref,rest,sign,unit;return ref=relativePropertyRE.exec(v),match=ref[0],sign=ref[1],number=ref[2],unit=ref[3],rest=5<=ref.length?slice.call(ref,4):[],sign?target[k]+(sign+1)*number:+number},exports.Animation=function(superClass){function Animation(){var args,layer,options,properties;if(args=1<=arguments.length?slice.call(arguments,0):[],this._updateColorValue=bind(this._updateColorValue,this),this._updateNumberValue=bind(this._updateNumberValue,this),this._updateValues=bind(this._updateValues,this),this._prepareUpdateValues=bind(this._prepareUpdateValues,this),this._update=bind(this._update,this),this.finish=bind(this.finish,this),this._start=bind(this._start,this),this._noop=bind(this._noop,this),this._instant=bind(this._instant,this),this.start=bind(this.start,this),layer=null,properties={},options={},3===arguments.length&&(layer=args[0],properties=args[1],options={},null!=properties.options&&(options=_.clone(properties.options)),args[2]&&(options=_.extend({},options,args[2]))),2===arguments.length&&(layer=args[0],properties=null!=args[1].properties?args[1].properties:args[1],null!=args[1].options&&(options=args[1].options)),1===arguments.length&&(layer=args[0].layer,properties=args[0].properties,options=null!=args[0].options?args[0].options:args[0]),delete options.layer,delete options.properties,delete options.options,this.options=_.cloneDeep(Defaults.getDefaults("Animation",options)),Animation.__super__.constructor.apply(this,arguments),this._layer=layer,!(layer instanceof _Layer))throw Error("Animation: missing layer");this.properties=Animation.filterAnimatableProperties(properties),properties.origin&&console.warn("Animation.origin: please use layer.originX and layer.originY"),this.options.curveOptions=Animator.curveOptionsFor(this.options),this._originalState=this._currentState(),this._repeatCounter=this.options.repeat}return extend(Animation,superClass),Animation.define("layer",{get:function(){return this._layer}}),Animation.define("isPending",{get:function(){return null!=this._delayTimer}}),Animation.define("isAnimating",{get:function(){return indexOf.call(this.layer.animations(),this)>=0}}),Animation.define("looping",{get:function(){return this.options.looping},set:function(value){var ref,ref1;if(null!=(ref=this.options)&&(ref.looping=value),(null!=(ref1=this.options)?ref1.looping:void 0)&&null!=this.layer&&!this.isAnimating)return this.restart()}}),Animation.define("isNoop",Animation.simpleProperty("isNoop",!1)),Animation.prototype.start=function(){var animation,k,property,ref,ref1,ref2,ref3,start,v;this._animator=null!=(ref=Animation._createAnimator(this.options))?ref:new LinearAnimator(this.options.curveOptions),this._target=this.layer,this._stateA=this._currentState(),this._stateB={},ref1=this.properties;for(k in ref1)v=ref1[k],_.isFunction(v)?v=v(this.layer,k):isRelativeProperty(v)&&(v=evaluateRelativeProperty(this._target,k,v)),this._stateA[k]!==v&&(this._stateB[k]=v);if(0===_.keys(this._stateA).length)return console.warn("Animation: nothing to animate, no animatable properties"),this._noop();if(_.isEqual(this._stateA,this._stateB))return console.warn("Animation: nothing to animate, all properties are equal to what it is now"),this._noop();if(0===_.keys(this._stateB).length)return this._noop();ref2=this._target.animatingProperties();for(property in ref2)animation=ref2[property],this._stateA.hasOwnProperty(property)&&animation.stop(),"x"===property&&(this._stateA.hasOwnProperty("minX")||this._stateA.hasOwnProperty("midX")||this._stateA.hasOwnProperty("maxX"))&&animation.stop(),"y"===property&&(this._stateA.hasOwnProperty("minY")||this._stateA.hasOwnProperty("midY")||this._stateA.hasOwnProperty("maxY"))&&animation.stop();if(this.options.debug){console.log("Animation.start"),ref3=this._stateB;for(k in ref3)v=ref3[k],console.log("\t"+k+": "+this._stateA[k]+" -> "+this._stateB[k])}return _.isFunction(this.options.onStart)&&this.on(Events.AnimationStart,this.options.onStart),_.isFunction(this.options.onHalt)&&this.on(Events.AnimationHalt,this.options.onHalt),_.isFunction(this.options.onStop)&&this.on(Events.AnimationStop,this.options.onStop),_.isFunction(this.options.onEnd)&&this.on(Events.AnimationEnd,this.options.onEnd),this.once("end",function(_this){return function(){if((_this._repeatCounter>0||_this.looping)&&(_this.restart(),!_this.looping))return _this._repeatCounter--}}(this)),this._prepareUpdateValues(),start=this.options.animate===!1||this.options.instant===!0?this._instant:this._start,this.layer.context.addAnimation(this),this.options.delay?this._delayTimer=Utils.delay(this.options.delay,start):start(),!0},Animation.prototype.stop=function(emit){return null==emit&&(emit=!0),null!=this._delayTimer&&(Framer.CurrentContext.removeTimer(this._delayTimer),this._delayTimer=null),this.layer.context.removeAnimation(this),emit&&this.emit(Events.AnimationHalt),emit&&this.emit(Events.AnimationStop),Framer.Loop.off("update",this._update)},Animation.prototype.reverse=function(){var options,properties;return properties=_.clone(this._originalState),options=_.clone(this.options),new Animation(this.layer,properties,options)},Animation.prototype.reset=function(){var k,ref,results,v;ref=this._stateA,results=[];for(k in ref)v=ref[k],results.push(this._target[k]=v);return results},Animation.prototype.restart=function(){return this.reset(),this.start()},Animation.prototype.copy=function(){var options,properties;return properties=_.clone(this.properties),options=_.clone(this.options),new Animation(this.layer,properties,options)},Animation.prototype.revert=function(){return this.reverse()},Animation.prototype.inverse=function(){return this.reverse()},Animation.prototype.invert=function(){return this.reverse()},Animation.prototype.emit=function(event){return Animation.__super__.emit.apply(this,arguments),this.layer.emit(event,this)},Animation.prototype.animatingProperties=function(){return _.keys(this._stateA)},Animation.prototype._instant=function(){return this.emit(Events.AnimationStart),this._updateValues(1),this.emit(Events.AnimationStop),this.emit(Events.AnimationEnd)},Animation.prototype._noop=function(){return this.isNoop=!0,!this.isNoop},Animation.prototype._start=function(){return this._delayTimer=null,this.emit(Events.AnimationStart),Framer.Loop.on("update",this._update)},Animation.prototype.finish=function(){return this.stop(),this._updateValues(1)},Animation.prototype._update=function(delta){var emit;return this._animator.finished()?(this._updateValues(1),this.stop(emit=!1),this.emit(Events.AnimationStop),this.emit(Events.AnimationEnd)):this._updateValues(this._animator.next(delta))},Animation.prototype._prepareUpdateValues=function(){var k,ref,results,v;this._valueUpdaters={},ref=this._stateB,results=[];for(k in ref)v=ref[k],Color.isColorObject(v)||Color.isColorObject(this._stateA[k])?results.push(this._valueUpdaters[k]=this._updateColorValue):results.push(this._valueUpdaters[k]=this._updateNumberValue);return results},Animation.prototype._updateValues=function(value){var k,ref,v;ref=this._stateB;for(k in ref)v=ref[k],this._valueUpdaters[k](k,value);return null},Animation.prototype._updateNumberValue=function(key,value){return this._target[key]=Utils.mapRange(value,0,1,this._stateA[key],this._stateB[key])},Animation.prototype._updateColorValue=function(key,value){return this._target[key]=Color.mix(this._stateA[key],this._stateB[key],value,!1,this.options.colorModel)},Animation.prototype._currentState=function(){return _.pick(this.layer,_.keys(this.properties))},Animation._createAnimator=function(options){var AnimatorClass,curveOptions,ref;return AnimatorClass=Animator.classForCurve(options.curve),null==AnimatorClass?null:(curveOptions=null!=(ref=options.curveOptions)?ref:Animator.curveOptionsFor(options),options.debug&&console.log("Animation.start "+AnimatorClass.name,curveOptions),new AnimatorClass(curveOptions))},Animation.isAnimatable=function(v){return _.isNumber(v)||_.isFunction(v)||isRelativeProperty(v)||Color.isColorObject(v)},Animation.filterAnimatableProperties=function(properties){var animatableProperties,derivedKey,derivedKeys,i,k,len,v;animatableProperties={};for(k in properties)if(v=properties[k],"frame"===k||"size"===k||"point"===k){switch(k){case"frame":derivedKeys=["x","y","width","height"];break;case"size":derivedKeys=["width","height"];break;case"point":derivedKeys=["x","y"];break;default:derivedKeys=[]}if(_.isObject(v))_.defaults(animatableProperties,_.pick(v,derivedKeys));else if(_.isNumber(v))for(i=0,len=derivedKeys.length;i<len;i++)derivedKey=derivedKeys[i],animatableProperties[derivedKey]=v}else this.isAnimatable(v)?animatableProperties[k]=v:Color.isValidColorProperty(k,v)&&(animatableProperties[k]=new Color(v));return animatableProperties},Animation.prototype.toInspect=function(){var ref;return"<"+this.constructor.name+" id:"+this.id+" layer:"+(null!=(ref=this.layer)?ref.toName():void 0)+" ["+_.keys(this.properties).join(", ")+"] isAnimating:"+this.isAnimating+">"},Animation.prototype.onAnimationStart=function(cb){return this.on(Events.AnimationStart,cb)},Animation.prototype.onAnimationHalt=function(cb){return this.on(Events.AnimationHalt,cb)},Animation.prototype.onAnimationStop=function(cb){return this.on(Events.AnimationStop,cb)},Animation.prototype.onAnimationEnd=function(cb){return this.on(Events.AnimationEnd,cb)},Animation.prototype.onAnimationDidStart=function(cb){return this.on(Events.AnimationDidStart,cb)},Animation.prototype.onAnimationDidStop=function(cb){return this.on(Events.AnimationDidStop,cb)},Animation.prototype.onAnimationDidEnd=function(cb){return this.on(Events.AnimationDidEnd,cb)},Animation}(BaseClass)},function(module,exports,__webpack_require__){var AnimatorClassBezierPresets,AnimatorClasses,BezierCurveAnimator,LinearAnimator,SpringDHOAnimator,SpringRK4Animator,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};AnimatorClasses={},AnimatorClassBezierPresets=["ease","ease-in","ease-out","ease-in-out"],exports.Animator=function(){function Animator(options){null==options&&(options={}),this.setup(options)}return Animator.prototype.setup=function(options){throw Error("Not implemented")},Animator.prototype.next=function(delta){throw Error("Not implemented")},Animator.prototype.finished=function(){throw Error("Not implemented")},Animator.prototype.values=function(delta,limit){var i,j,ref,values;for(null==delta&&(delta=1/60),null==limit&&(limit=100),values=[],i=j=0,ref=limit;(0<=ref?j<=ref:j>=ref)&&(values.push(this.next(delta)),!this.finished());i=0<=ref?++j:--j);return values},Animator.classForCurve=function(curve){var animatorClassName,parsedCurve;return parsedCurve=Utils.parseFunction(curve),animatorClassName=parsedCurve.name.toLowerCase(),AnimatorClasses.hasOwnProperty(animatorClassName)?AnimatorClasses[animatorClassName]:indexOf.call(AnimatorClassBezierPresets,animatorClassName)>=0?BezierCurveAnimator:null},Animator.curveOptionsFor=function(options){var animatorClass,animatorClassName,curveOptions,i,j,k,l,len,len1,parsedCurve,ref,ref1,ref2,value;if(null==options&&(options={}),curveOptions=null!=(ref=options.curveOptions)?ref:{},animatorClass=this.classForCurve(options.curve),parsedCurve=Utils.parseFunction(options.curve),animatorClassName=parsedCurve.name.toLowerCase(),animatorClass!==LinearAnimator&&animatorClass!==BezierCurveAnimator||((_.isString(curveOptions)||_.isArray(curveOptions))&&(curveOptions={values:curveOptions}),null==curveOptions.time&&(curveOptions.time=options.time)),animatorClass===BezierCurveAnimator&&indexOf.call(AnimatorClassBezierPresets,animatorClassName)>=0&&(curveOptions.values=animatorClassName,null==curveOptions.time&&(curveOptions.time=options.time)),parsedCurve.args.length){if(animatorClass===BezierCurveAnimator&&(curveOptions.values=parsedCurve.args.map(function(v){return parseFloat(v)||0})),animatorClass===SpringRK4Animator)for(ref1=["tension","friction","velocity","tolerance"],i=j=0,len=ref1.length;j<len;i=++j)k=ref1[i],value=parseFloat(parsedCurve.args[i]),value&&(curveOptions[k]=value);if(animatorClass===SpringDHOAnimator)for(ref2=["stiffness","damping","mass","tolerance"],i=l=0,len1=ref2.length;l<len1;i=++l)k=ref2[i],value=parseFloat(parsedCurve.args[i]),value&&(curveOptions[k]=value)}return curveOptions},Animator}(),LinearAnimator=__webpack_require__(20).LinearAnimator,BezierCurveAnimator=__webpack_require__(21).BezierCurveAnimator,SpringRK4Animator=__webpack_require__(22).SpringRK4Animator,SpringDHOAnimator=__webpack_require__(24).SpringDHOAnimator,AnimatorClasses.linear=LinearAnimator,AnimatorClasses["bezier-curve"]=BezierCurveAnimator,AnimatorClasses["spring-rk4"]=SpringRK4Animator,AnimatorClasses["spring-dho"]=SpringDHOAnimator,AnimatorClasses.spring=AnimatorClasses["spring-rk4"],AnimatorClasses["cubic-bezier"]=AnimatorClasses["bezier-curve"]},function(module,exports,__webpack_require__){var Animator,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Animator=__webpack_require__(19).Animator,exports.LinearAnimator=function(superClass){function LinearAnimator(){return LinearAnimator.__super__.constructor.apply(this,arguments)}return extend(LinearAnimator,superClass),LinearAnimator.prototype.setup=function(options){return this.options=_.defaults(options,{time:1,precision:.001}),this._time=0},LinearAnimator.prototype.next=function(delta){return this._time+=delta,this.finished()?1:this._time/this.options.time},LinearAnimator.prototype.finished=function(){return this._time>=this.options.time-this.options.precision},LinearAnimator}(Animator)},function(module,exports,__webpack_require__){var Animator,BezierCurveDefaults,UnitBezier,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Animator=__webpack_require__(19).Animator,BezierCurveDefaults={linear:[0,0,1,1],ease:[.25,.1,.25,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]},exports.BezierCurveAnimator=function(superClass){function BezierCurveAnimator(){return BezierCurveAnimator.__super__.constructor.apply(this,arguments)}return extend(BezierCurveAnimator,superClass),BezierCurveAnimator.prototype.setup=function(options){return _.isString(options)&&BezierCurveDefaults.hasOwnProperty(options.toLowerCase())&&(options={values:BezierCurveDefaults[options.toLowerCase()]}),options.values&&_.isString(options.values)&&BezierCurveDefaults.hasOwnProperty(options.values.toLowerCase())&&(options={values:BezierCurveDefaults[options.values.toLowerCase()],time:options.time}),_.isArray(options)&&4===options.length&&(options={values:options}),this.options=_.defaults(options,{values:BezierCurveDefaults["ease-in-out"],time:1,precision:.001}),this._unitBezier=new UnitBezier(this.options.values[0],this.options.values[1],this.options.values[2],this.options.values[3],this._time=0)},BezierCurveAnimator.prototype.next=function(delta){return this._time+=delta,this.finished()?1:this._unitBezier.solve(this._time/this.options.time)},BezierCurveAnimator.prototype.finished=function(){return this._time>=this.options.time-this.options.precision},BezierCurveAnimator}(Animator),UnitBezier=function(){function UnitBezier(p1x,p1y,p2x,p2y){this.cx=3*p1x,this.bx=3*(p2x-p1x)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*p1y,this.by=3*(p2y-p1y)-this.cy,this.ay=1-this.cy-this.by}return UnitBezier.prototype.epsilon=1e-6,UnitBezier.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},UnitBezier.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},UnitBezier.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},UnitBezier.prototype.solveCurveX=function(x){var d2,i,t0,t1,t2,x2;for(t2=x,i=0;i<8;){if(x2=this.sampleCurveX(t2)-x,Math.abs(x2)<this.epsilon)return t2;if(d2=this.sampleCurveDerivativeX(t2),Math.abs(d2)<this.epsilon)break;t2-=x2/d2,i++}if(t0=0,t1=1,t2=x,t2<t0)return t0;if(t2>t1)return t1;for(;t0<t1;){if(x2=this.sampleCurveX(t2),Math.abs(x2-x)<this.epsilon)return t2;x>x2?t0=t2:t1=t2,t2=.5*(t1-t0)+t0}return t2},UnitBezier.prototype.solve=function(x){return this.sampleCurveY(this.solveCurveX(x))},UnitBezier}()},function(module,exports,__webpack_require__){var Animator,Integrator,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Animator=__webpack_require__(19).Animator,Integrator=__webpack_require__(23).Integrator,exports.SpringRK4Animator=function(superClass){function SpringRK4Animator(){return this.finished=bind(this.finished,this),SpringRK4Animator.__super__.constructor.apply(this,arguments)}return extend(SpringRK4Animator,superClass),SpringRK4Animator.prototype.setup=function(options){return this.options=_.defaults(options,{tension:250,friction:25,velocity:0,tolerance:.01,time:null}),this._time=0,this._value=0,this._velocity=this.options.velocity,this._stopSpring=!1,this._integrator=new Integrator(function(_this){return function(state){return-_this.options.tension*state.x-_this.options.friction*state.v}}(this))},SpringRK4Animator.prototype.next=function(delta){var finalVelocity,net1DVelocity,netFloat,netValueIsLow,netVelocityIsLow,stateAfter,stateBefore;return this.finished()?1:(this._time+=delta,stateBefore={},stateAfter={},stateBefore.x=this._value-1,stateBefore.v=this._velocity,stateAfter=this._integrator.integrateState(stateBefore,delta),this._value=1+stateAfter.x,finalVelocity=stateAfter.v,netFloat=stateAfter.x,net1DVelocity=stateAfter.v,netValueIsLow=Math.abs(netFloat)<this.options.tolerance,netVelocityIsLow=Math.abs(net1DVelocity)<this.options.tolerance,this._stopSpring=netValueIsLow&&netVelocityIsLow,this._velocity=finalVelocity,this._value)},SpringRK4Animator.prototype.finished=function(){return this._stopSpring},SpringRK4Animator}(Animator)},function(module,exports){exports.Integrator=function(){function Integrator(_accelerationForState){this._accelerationForState=_accelerationForState,_.isFunction(this._accelerationForState)||(console.warn("Integrator: an integrator must be constructed with an acceleration function"),this._accelerationForState=function(){return 0})}return Integrator.prototype.integrateState=function(state,dt){var a,b,c,d,dvdt,dxdt;return a=this._evaluateState(state),b=this._evaluateStateWithDerivative(state,.5*dt,a),c=this._evaluateStateWithDerivative(state,.5*dt,b),d=this._evaluateStateWithDerivative(state,dt,c),dxdt=1/6*(a.dx+2*(b.dx+c.dx)+d.dx),dvdt=1/6*(a.dv+2*(b.dv+c.dv)+d.dv),state.x=state.x+dxdt*dt,state.v=state.v+dvdt*dt,state},Integrator.prototype._evaluateState=function(initialState){var output;return output={},output.dx=initialState.v,output.dv=this._accelerationForState(initialState),output},Integrator.prototype._evaluateStateWithDerivative=function(initialState,dt,derivative){var output,state;return state={},state.x=initialState.x+derivative.dx*dt,state.v=initialState.v+derivative.dv*dt,output={},output.dx=state.v,output.dv=this._accelerationForState(state),output},Integrator}()},function(module,exports,__webpack_require__){var Animator,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Animator=__webpack_require__(19).Animator,exports.SpringDHOAnimator=function(superClass){function SpringDHOAnimator(){return this.finished=bind(this.finished,this),SpringDHOAnimator.__super__.constructor.apply(this,arguments)}return extend(SpringDHOAnimator,superClass),SpringDHOAnimator.prototype.setup=function(options){return this.options=_.defaults(options,{velocity:0,tolerance:1e-4,stiffness:50,damping:2,mass:.2,time:null}),this._time=0,this._value=0,this._velocity=this.options.velocity},SpringDHOAnimator.prototype.next=function(delta){var F_damper,F_spring,b,k;return this.finished()?1:(this._time+=delta,k=0-this.options.stiffness,b=0-this.options.damping,F_spring=k*(this._value-1),F_damper=b*this._velocity,this._velocity+=(F_spring+F_damper)/this.options.mass*delta,this._value+=this._velocity*delta,this._value)},SpringDHOAnimator.prototype.finished=function(){return this._time>0&&Math.abs(this._velocity)<this.options.tolerance},SpringDHOAnimator}(Animator)},function(module,exports){var _Force2DProperties,_WebkitProperties,filterFormat,roundToZero;filterFormat=function(value,unit){return""+Utils.round(value,2)+unit},roundToZero=function(num){return-1e-6<num&&num<1e-6?0:num},_WebkitProperties=[["blur","blur",0,"px"],["brightness","brightness",100,"%"],["saturate","saturate",100,"%"],["hue-rotate","hueRotate",0,"deg"],["contrast","contrast",100,"%"],["invert","invert",0,"%"],["grayscale","grayscale",0,"%"],["sepia","sepia",0,"%"]],_Force2DProperties={z:0,scaleX:1,scaleY:1,scaleZ:1,skewX:0,skewY:0,rotationX:0,rotationY:0},exports.LayerStyle={width:function(layer){return layer._properties.width+"px"},height:function(layer){return layer._properties.height+"px"},display:function(layer){return layer._properties.visible===!0?"block":"none"},opacity:function(layer){return layer._properties.opacity},webkitTransformStyle:function(layer){return layer._properties.flat?"flat":"preserve-3d"},webkitBackfaceVisibility:function(layer){return layer._properties.backfaceVisible?"visible":"hidden"},overflow:function(layer){return layer._properties.scrollHorizontal===!0||layer._properties.scrollVertical===!0?"auto":layer._properties.clip===!0?"hidden":"visible"},overflowX:function(layer){return layer._properties.scrollHorizontal===!0?"scroll":layer._properties.clip===!0?"hidden":"visible"},overflowY:function(layer){return layer._properties.scrollVertical===!0?"scroll":layer._properties.clip===!0?"hidden":"visible"},zIndex:function(layer){return layer._properties.index},webkitFilter:function(layer){var css,cssName,fallback,i,layerName,len,ref,unit;for(css=[],i=0,len=_WebkitProperties.length;i<len;i++)ref=_WebkitProperties[i],cssName=ref[0],layerName=ref[1],fallback=ref[2],unit=ref[3],layer._properties.hasOwnProperty(layerName)&&layer[layerName]!==fallback&&css.push(cssName+"("+filterFormat(layer[layerName],unit)+")");return css.join(" ")},webkitTransform:function(layer){return layer._prefer2d||layer._properties.force2d?exports.LayerStyle.webkitTransformForce2d(layer):"translate3d( "+roundToZero(layer._properties.x)+"px, "+roundToZero(layer._properties.y)+"px, "+roundToZero(layer._properties.z)+"px) scale3d( "+roundToZero(layer._properties.scaleX*layer._properties.scale)+", "+roundToZero(layer._properties.scaleY*layer._properties.scale)+", "+roundToZero(layer._properties.scaleZ)+") skew("+roundToZero(layer._properties.skew)+"deg,"+roundToZero(layer._properties.skew)+"deg) skewX("+roundToZero(layer._properties.skewX)+"deg) skewY("+roundToZero(layer._properties.skewY)+"deg) translateZ("+roundToZero(layer._properties.originZ)+"px) rotateX("+roundToZero(layer._properties.rotationX)+"deg) rotateY("+roundToZero(layer._properties.rotationY)+"deg) rotateZ("+roundToZero(layer._properties.rotationZ)+"deg) translateZ("+roundToZero(-layer._properties.originZ)+"px)"},webkitTransformForce2d:function(layer){var css,p,v;css=[];for(p in _Force2DProperties)v=_Force2DProperties[p],layer._properties[p]!==v&&console.warn("Layer property '"+p+"'' will be ignored with force2d enabled");return css.push("translate("+roundToZero(layer._properties.x)+"px,"+roundToZero(layer._properties.y)+"px)"),css.push("scale("+roundToZero(layer._properties.scale)+")"),css.push("skew("+roundToZero(layer._properties.skew)+"deg,"+roundToZero(layer._properties.skew)+"deg)"),css.push("rotate("+roundToZero(layer._properties.rotationZ)+"deg)"),css.join(" ")},webkitTransformOrigin:function(layer){return 100*layer._properties.originX+"% "+100*layer._properties.originY+"%"},webkitPerspective:function(layer){return""+layer._properties.perspective},webkitPerspectiveOrigin:function(layer){return 100*layer._properties.perspectiveOriginX+"% "+100*layer._properties.perspectiveOriginY+"%"},pointerEvents:function(layer){return layer._properties.ignoreEvents?"none":"auto"},boxShadow:function(layer){var props;return props=layer._properties,props.shadowColor?0===props.shadowX&&0===props.shadowY&&0===props.shadowBlur&&0===props.shadowSpread?"":layer._properties.shadowX+"px "+layer._properties.shadowY+"px "+layer._properties.shadowBlur+"px "+layer._properties.shadowSpread+"px "+layer._properties.shadowColor:""},backgroundColor:function(layer){return layer._properties.backgroundColor},color:function(layer){return layer._properties.color; | |
},borderRadius:function(layer){return _.isNumber(layer._properties.borderRadius)?layer._properties.borderRadius+"px":layer._properties.borderRadius},border:function(layer){return layer._properties.borderWidth+"px solid "+layer._properties.borderColor}}},function(module,exports,__webpack_require__){var BaseClass,Defaults,Events,LayerStateMachine,LayerStates,LayerStatesIgnoredKeys,_,deprecatedWarning,namedState,reservedStateError,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1},slice=[].slice;_=__webpack_require__(1)._,Events=__webpack_require__(15).Events,BaseClass=__webpack_require__(6).BaseClass,Defaults=__webpack_require__(17).Defaults,LayerStateMachine=__webpack_require__(27).LayerStateMachine,LayerStatesIgnoredKeys=["ignoreEvents","name","id"],reservedStateError=function(name){throw Error("The state '"+name+"' is a reserved name.")},deprecatedWarning=function(name,suggestion){var message;return message="layer.states."+name+" is deprecated",null!=suggestion&&(message+=", use '"+suggestion+"' instead."),console.warn(message)},namedState=function(state,name){return _.extend({},{name:name},state)},LayerStates=function(){function LayerStates(layer){var _machine;_machine=new LayerStateMachine(layer,this),Object.defineProperty(this,"machine",{enumerable:!1,configurable:!1,get:function(){return _machine},set:function(){return reservedStateError("machine")}}),this.capture("default")}var capture,methods;return LayerStates.defineReserved=function(propertyName,descriptor){return descriptor.configurable=!0,null==descriptor.enumerable&&(descriptor.enumerable=!1),null==descriptor.set&&(descriptor.set=function(){return reservedStateError(propertyName)}),Object.defineProperty(this.prototype,propertyName,descriptor)},LayerStates.defineReserved("previous",{get:function(){return namedState(this[this.machine.previousName],this.machine.previousName)}}),LayerStates.defineReserved("current",{get:function(){return namedState(this[this.machine.currentName],this.machine.currentName)}}),capture=function(name){return this[name]=LayerStates.filterStateProperties(this.machine.layer.props)},LayerStates.defineReserved("capture",{get:function(){return capture}}),LayerStates.filterStateProperties=function(properties){var k,stateProperties,v;stateProperties={};for(k in properties)v=properties[k],indexOf.call(LayerStatesIgnoredKeys,k)>=0||(Color.isValidColorProperty(k,v)?stateProperties[k]=new Color(v):this._isValidProperty(k,v)&&(stateProperties[k]=v));return stateProperties},LayerStates._isValidProperty=function(k,v){var ref;return!!_.isNumber(v)||(!!_.isFunction(v)||(!!_.isBoolean(v)||(!!_.isString(v)||(!!Color.isColorObject(v)||(null===v||"Layer"===(null!=v&&null!=(ref=v.constructor)?ref.name:void 0))))))},methods={add:function(states,object){return null==object&&(object={}),deprecatedWarning("add","layer.states = "),_.isString(states)?this[states]=object:this.machine.layer.states=states},remove:function(stateName){return deprecatedWarning("remove","delete layer.states.a"),delete this[stateName]},switch:function(stateName,options){return deprecatedWarning("switch",'layer.animate("state")'),this.machine.switchTo(stateName,options)},switchInstant:function(stateName){return deprecatedWarning("switchInstant",'layer.animate("state", {instant: true})'),this.machine.switchTo(stateName,{instant:!0})},next:function(){var options;return options=1<=arguments.length?slice.call(arguments,0):[],deprecatedWarning("next","layer.stateCycle()"),options=_.flatten(options),this.machine.layer.stateCycle(options)}},LayerStates.defineReserved("add",{get:function(){return methods.add}}),LayerStates.defineReserved("remove",{get:function(){return methods.remove}}),LayerStates.defineReserved("switch",{get:function(){return methods.switch}}),LayerStates.defineReserved("switchInstant",{get:function(){return methods.switchInstant}}),LayerStates.defineReserved("next",{get:function(){return methods.next}}),LayerStates.defineReserved("animationOptions",{get:function(){return this.machine.layer.animationOptions},set:function(options){return this.machine.layer.animationOptions=options}}),LayerStates}(),exports.LayerStates=LayerStates},function(module,exports,__webpack_require__){var BaseClass,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,slice=[].slice;BaseClass=__webpack_require__(6).BaseClass,exports.LayerStateMachine=function(superClass){function LayerStateMachine(_layer,_states){this._layer=_layer,this._states=_states,LayerStateMachine.__super__.constructor.apply(this,arguments),this.reset()}return extend(LayerStateMachine,superClass),LayerStateMachine.define("layer",{get:function(){return this._layer}}),LayerStateMachine.define("current",{get:function(){return this.currentName}}),LayerStateMachine.define("previous",{get:function(){return this.previousName}}),LayerStateMachine.define("currentName",{get:function(){return this._currentName}}),LayerStateMachine.define("previousName",{get:function(){return _.last(this._previousNames)||"default"}}),LayerStateMachine.define("stateNames",{get:function(){return Object.keys(this.states)}}),LayerStateMachine.define("states",{get:function(){return this._states}}),LayerStateMachine.prototype.switchInstant=function(stateName){return this.switchTo(stateName,{instant:!0})},LayerStateMachine.prototype.switchTo=function(stateName,options){var animation,onEnd,onStart,onStop,properties,ref,startAnimation,started,stateNameA,stateNameB,stateSwitched,switchState;if(null==options&&(options={}),!this.states[stateName])throw Error("No such state: '"+stateName+"'");return"previous"===stateName&&(stateName=this.previousName),properties=_.clone(this.states[stateName]),options=_.clone(options),properties.animationOptions&&(options=_.defaults({},options,properties.animationOptions)),delete properties.animationOptions,stateNameA=this.currentName,stateNameB=stateName,startAnimation=null==(ref=options.start)||ref,options.start=!1,animation=this.layer.animate(properties,options),stateSwitched=!1,switchState=function(_this){return function(){if(!stateSwitched)return stateSwitched=!0,_this._previousNames.push(stateNameA),_this._currentName=stateNameB}}(this),onStart=function(_this){return function(){return _this.emit(Events.StateSwitchStart,stateNameA,stateNameB,_this),switchState()}}(this),onStop=function(_this){return function(){return _this.emit(Events.StateSwitchStop,stateNameA,stateNameB,_this)}}(this),onEnd=function(_this){return function(){var i,instantProperties,k,len;for(instantProperties=_.difference(_.keys(properties),_.keys(animation.properties)),i=0,len=instantProperties.length;i<len;i++)k=instantProperties[i],_this.layer[k]=properties[k];return _this.emit(Events.StateSwitchEnd,stateNameA,stateNameB,_this)}}(this),animation.on(Events.AnimationStart,onStart),animation.on(Events.AnimationStop,onStop),animation.on(Events.AnimationEnd,onEnd),startAnimation&&(started=animation.start(),started||(onStart(),onStop(),onEnd())),switchState(),animation},LayerStateMachine.prototype.next=function(states){return states.length||(states=this.stateNames),Utils.arrayNext(states,this.currentName)},LayerStateMachine.prototype.emit=function(){var args,ref;return args=1<=arguments.length?slice.call(arguments,0):[],LayerStateMachine.__super__.emit.apply(this,arguments),(ref=this._layer).emit.apply(ref,args)},LayerStateMachine.prototype.reset=function(){var i,k,len,ref;for(ref=_.keys(this.states),i=0,len=ref.length;i<len;i++)k=ref[i],"default"!==k&&delete this.states[k];return this._previousNames=[],this._currentName="default"},LayerStateMachine.prototype.toInspect=function(constructor){return"<"+this.constructor.name+" id:"+this.id+" layer:"+this.layer.id+" current:'"+this.currentName+"'>"},LayerStateMachine}(BaseClass)},function(module,exports,__webpack_require__){var BaseClass,Defaults,EventBuffer,Events,Gestures,Simulation,Utils,_,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,Utils=__webpack_require__(4),BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(15).Events,Simulation=__webpack_require__(29).Simulation,Defaults=__webpack_require__(17).Defaults,EventBuffer=__webpack_require__(34).EventBuffer,Gestures=__webpack_require__(16).Gestures,Events.Move="move",Events.DragStart="dragstart",Events.DragWillMove="dragwillmove",Events.DragMove="dragmove",Events.DragDidMove="dragmove",Events.Drag="dragmove",Events.DragEnd="dragend",Events.DragAnimationStart="draganimationstart",Events.DragAnimationEnd="draganimationend",Events.DirectionLockStart="directionlockstart",Events.DragSessionStart="dragsessionstart",Events.DragSessionMove="dragsessionmove",Events.DragSessionEnd="dragsessionend",Events.DragAnimationDidStart=Events.DragAnimationStart,Events.DragAnimationDidEnd=Events.DragAnimationEnd,Events.DirectionLockDidStart=Events.DirectionLockStart,exports.LayerDraggable=function(superClass){function LayerDraggable(layer){var options;this.layer=layer,this._stopSimulation=bind(this._stopSimulation,this),this._onSimulationStop=bind(this._onSimulationStop,this),this._onSimulationStep=bind(this._onSimulationStep,this),this._touchEnd=bind(this._touchEnd,this),this._touchMove=bind(this._touchMove,this),this._touchStart=bind(this._touchStart,this),this._updateLayerPosition=bind(this._updateLayerPosition,this),this.touchStart=bind(this.touchStart,this),options=Defaults.getDefaults("LayerDraggable",{}),LayerDraggable.__super__.constructor.call(this,options),_.extend(this,options),this.enabled=!0,this._eventBuffer=new EventBuffer,this._constraints=null,this._ignoreUpdateLayerPosition=!0,this.attach()}return extend(LayerDraggable,superClass),LayerDraggable.define("speedX",LayerDraggable.simpleProperty("speedX",1)),LayerDraggable.define("speedY",LayerDraggable.simpleProperty("speedY",1)),LayerDraggable.define("horizontal",LayerDraggable.simpleProperty("horizontal",!0)),LayerDraggable.define("vertical",LayerDraggable.simpleProperty("vertical",!0)),LayerDraggable.define("momentumVelocityMultiplier",LayerDraggable.simpleProperty("momentumVelocityMultiplier",800)),LayerDraggable.define("directionLock",LayerDraggable.simpleProperty("directionLock",!0)),LayerDraggable.define("directionLockThreshold",LayerDraggable.simpleProperty("directionLockThreshold",{x:10,y:10})),LayerDraggable.define("propagateEvents",LayerDraggable.simpleProperty("propagateEvents",!0)),LayerDraggable.define("constraints",{get:function(){return this._constraints},set:function(value){if(value&&_.isObject(value)?(value=_.pick(value,["x","y","width","height"]),value=_.defaults(value,{x:0,y:0,width:0,height:0}),this._constraints=value):this._constraints={x:0,y:0,width:0,height:0},this._constraints)return this._updateSimulationConstraints(this._constraints)}}),LayerDraggable.define("isDragging",{get:function(){return this._isDragging||!1}}),LayerDraggable.define("isAnimating",{get:function(){return this._isAnimating||!1}}),LayerDraggable.define("isMoving",{get:function(){return this._isMoving||!1}}),LayerDraggable.define("layerStartPoint",{get:function(){return this._layerStartPoint||this.layer.point}}),LayerDraggable.define("cursorStartPoint",{get:function(){return this._cursorStartPoint||{x:0,y:0}}}),LayerDraggable.define("layerCursorOffset",{get:function(){return this._layerCursorOffset||{x:0,y:0}}}),LayerDraggable.define("offset",{get:function(){var offset;return this._correctedLayerStartPoint?offset={x:this.layer.x-this._correctedLayerStartPoint.x,y:this.layer.y-this._correctedLayerStartPoint.y}:{x:0,y:0}}}),LayerDraggable.prototype.attach=function(){return this.layer.on(Gestures.TapStart,this.touchStart),this.layer.on("change:x",this._updateLayerPosition),this.layer.on("change:y",this._updateLayerPosition)},LayerDraggable.prototype.remove=function(){return this.layer.off(Gestures.TapStart,this.touchStart),this.layer.off(Gestures.Pan,this._touchMove),this.layer.off(Gestures.PanEnd,this._touchEnd)},LayerDraggable.prototype.updatePosition=function(point){return point},LayerDraggable.prototype.touchStart=function(event){return this._touchStart(event)},LayerDraggable.prototype._updateLayerPosition=function(){if(this._ignoreUpdateLayerPosition!==!0)return this._point=this.layer.point},LayerDraggable.prototype._touchStart=function(event){var animation,i,len,properties,ref,touchEvent;for(Events.wrap(document).addEventListener(Gestures.Pan,this._touchMove),Events.wrap(document).addEventListener(Gestures.TapEnd,this._touchEnd),this._isMoving=this._isAnimating,ref=this.layer.animations(),i=0,len=ref.length;i<len;i++)animation=ref[i],properties=animation.properties,(properties.hasOwnProperty("x")||properties.hasOwnProperty("y"))&&animation.stop();return this._stopSimulation(),this._resetdirectionLock(),event.preventDefault(),this.propagateEvents===!1&&event.stopPropagation(),touchEvent=Events.touchEvent(event),this._eventBuffer.push({x:touchEvent.clientX,y:touchEvent.clientY,t:Date.now()}),this._layerStartPoint=this.layer.point,this._correctedLayerStartPoint=this.layer.point,this.constraints&&this.bounce&&(this._correctedLayerStartPoint=this._constrainPosition(this._correctedLayerStartPoint,this.constraints,1/this.overdragScale)),this._cursorStartPoint={x:touchEvent.clientX,y:touchEvent.clientY},this._layerCursorOffset={x:touchEvent.clientX-this._correctedLayerStartPoint.x,y:touchEvent.clientY-this._correctedLayerStartPoint.y},this._point=this._correctedLayerStartPoint,this._ignoreUpdateLayerPosition=!1,this.emit(Events.DragSessionStart,event)},LayerDraggable.prototype._touchMove=function(event){var offset,point,touchEvent;if(this.enabled){if(this._point||this.touchStart(event),event.preventDefault(),this.propagateEvents===!1&&event.stopPropagation(),touchEvent=Events.touchEvent(event),this._lastEvent=touchEvent,this._eventBuffer.push({x:touchEvent.clientX,y:touchEvent.clientY,t:Date.now()}),point=_.clone(this._point),this.horizontal&&(point.x=this._point.x+event.delta.x*this.speedX*(1/this.layer.screenScaleX(!1))),this.vertical&&(point.y=this._point.y+event.delta.y*this.speedY*(1/this.layer.screenScaleY(!1))),this._point=_.clone(point),this._constraints&&(point=this._constrainPosition(point,this._constraints,this.overdragScale)),this.directionLock){if(!this._directionLockEnabledX&&!this._directionLockEnabledY)return offset=event.offset,offset.x=offset.x*this.speedX*(1/this.layer.canvasScaleX())*this.layer.scaleX*this.layer.scale,offset.y=offset.y*this.speedY*(1/this.layer.canvasScaleY())*this.layer.scaleY*this.layer.scale,void this._updatedirectionLock(offset);this._directionLockEnabledX&&(point.x=this._layerStartPoint.x),this._directionLockEnabledY&&(point.y=this._layerStartPoint.y)}return point.x===this._layerStartPoint.x&&point.y===this._layerStartPoint.y||this._isDragging||(this._isDragging=!0,this._isMoving=!0,this.emit(Events.DragStart,event)),this.isDragging&&this.emit(Events.DragWillMove,event),this.pixelAlign&&(this.horizontal&&(point.x=parseInt(point.x)),this.vertical&&(point.y=parseInt(point.y))),this._ignoreUpdateLayerPosition=!0,this.layer.point=this.updatePosition(point),this._ignoreUpdateLayerPosition=!1,this.isDragging&&(this.emit(Events.Move,this.layer.point),this.emit(Events.DragDidMove,event)),this.emit(Events.DragSessionMove,event)}},LayerDraggable.prototype._touchEnd=function(event){return Events.wrap(document).removeEventListener(Gestures.Pan,this._touchMove),Events.wrap(document).removeEventListener(Gestures.TapEnd,this._touchEnd),this.propagateEvents===!1&&event.stopPropagation(),this._startSimulation(),this.emit(Events.DragSessionEnd,event),this._isDragging&&this.emit(Events.DragEnd,event),this._isDragging=!1,this._isMoving=this._isAnimating,this._ignoreUpdateLayerPosition=!0,this._lastEvent=null,this._eventBuffer.reset()},LayerDraggable.define("constraintsOffset",{get:function(){var constrainedPoint,maxX,maxY,minX,minY,offset,point,ref;return this.constraints?(ref=this._calculateConstraints(this.constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,point=this.layer.point,constrainedPoint={x:Utils.clamp(point.x,minX,maxX),y:Utils.clamp(point.y,minY,maxY)},offset={x:point.x-constrainedPoint.x,y:point.y-constrainedPoint.y}):{x:0,y:0}}}),LayerDraggable.define("isBeyondConstraints",{get:function(){var constraintsOffset;return constraintsOffset=this.constraintsOffset,0!==constraintsOffset.x||0!==constraintsOffset.y}}),LayerDraggable.prototype._clampAndScale=function(value,min,max,scale){return value<min&&(value=min+(value-min)*scale),value>max&&(value=max+(value-max)*scale),value},LayerDraggable.prototype._calculateConstraints=function(bounds){var constraints;return bounds?(bounds.width<this.layer.width&&(bounds.width=this.layer.width),bounds.height<this.layer.height&&(bounds.height=this.layer.height),constraints={minX:Utils.frameGetMinX(bounds),maxX:Utils.frameGetMaxX(bounds),minY:Utils.frameGetMinY(bounds),maxY:Utils.frameGetMaxY(bounds)},constraints.maxX-=this.layer.width,constraints.maxY-=this.layer.height,constraints):constraints={minX:Infinity,maxX:Infinity,minY:Infinity,maxY:Infinity}},LayerDraggable.prototype._constrainPosition=function(proposedPoint,bounds,scale){var maxX,maxY,minX,minY,point,ref;return ref=this._calculateConstraints(this._constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,point=this.overdrag?{x:this._clampAndScale(proposedPoint.x,minX,maxX,scale),y:this._clampAndScale(proposedPoint.y,minY,maxY,scale)}:{x:Utils.clamp(proposedPoint.x,minX,maxX),y:Utils.clamp(proposedPoint.y,minY,maxY)},0!==this.speedX&&this.horizontal!==!1||(point.x=proposedPoint.x),0!==this.speedY&&this.vertical!==!1||(point.y=proposedPoint.y),point},LayerDraggable.define("velocity",{get:function(){return this.isAnimating?this._calculateSimulationVelocity():this._eventBuffer.velocity}}),LayerDraggable.define("angle",{get:function(){return this._eventBuffer.angle}}),LayerDraggable.define("direction",{get:function(){var delta,ref,velocity;return velocity=this.velocity,0===velocity.x&&0===velocity.y?(delta=null!=(ref=this._lastEvent)?ref.delta:void 0,delta?Math.abs(delta.x)>Math.abs(delta.y)?delta.x>0?"right":"left":delta.y>0?"down":"up":null):Math.abs(velocity.x)>Math.abs(velocity.y)?velocity.x>0?"right":"left":velocity.y>0?"down":"up"}}),LayerDraggable.prototype.calculateVelocity=function(){return this.velocity},LayerDraggable.prototype._calculateSimulationVelocity=function(){var velocity,xFinished,yFinished;return xFinished=this._simulation.x.finished(),yFinished=this._simulation.y.finished(),velocity={x:0,y:0},xFinished||(velocity.x=this._simulation.x.simulator.state.v/this.momentumVelocityMultiplier),yFinished||(velocity.y=this._simulation.y.simulator.state.v/this.momentumVelocityMultiplier),velocity},LayerDraggable.prototype.emit=function(eventName,event){return this.layer.emit(eventName,event),LayerDraggable.__super__.emit.call(this,eventName,event)},LayerDraggable.prototype._updatedirectionLock=function(correctedDelta){if(this._directionLockEnabledX=Math.abs(correctedDelta.y)>this.directionLockThreshold.y,this._directionLockEnabledY=Math.abs(correctedDelta.x)>this.directionLockThreshold.x,this._directionLockEnabledX||this._directionLockEnabledY)return this.emit(Events.DirectionLockStart,{x:this._directionLockEnabledX,y:this._directionLockEnabledY})},LayerDraggable.prototype._resetdirectionLock=function(){return this._directionLockEnabledX=!1,this._directionLockEnabledY=!1},LayerDraggable.prototype._setupSimulation=function(){if(!this._simulation)return this._simulation={x:this._setupSimulationForAxis("x"),y:this._setupSimulationForAxis("y")},this._updateSimulationConstraints(this.constraints)},LayerDraggable.prototype._setupSimulationForAxis=function(axis){var properties,simulation;return properties={},properties[axis]=!0,simulation=new Simulation({layer:this.layer,properties:properties,model:"inertial-scroll",modelOptions:{momentum:this.momentumOptions,bounce:this.bounceOptions}}),simulation.on(Events.SimulationStep,function(_this){return function(state){return _this._onSimulationStep(axis,state)}}(this)),simulation.on(Events.SimulationStop,function(_this){return function(state){return _this._onSimulationStop(axis,state)}}(this)),simulation},LayerDraggable.prototype._updateSimulationConstraints=function(constraints){var maxX,maxY,minX,minY,ref;if(this._simulation)return constraints?(ref=this._calculateConstraints(this._constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,this._simulation.x.simulator.options={min:minX,max:maxX},this._simulation.y.simulator.options={min:minY,max:maxY}):(this._simulation.x.simulator.options={min:-Infinity,max:Infinity},this._simulation.y.simulator.options={min:-Infinity,max:Infinity})},LayerDraggable.prototype._onSimulationStep=function(axis,state){var delta,maxX,maxY,minX,minY,ref,updatePoint;if(!("x"===axis&&this.horizontal===!1||"y"===axis&&this.vertical===!1))return this.constraints?this.bounce?delta=state.x-this.layer[axis]:(ref=this._calculateConstraints(this._constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,"x"===axis&&(delta=Utils.clamp(state.x,minX,maxX)-this.layer[axis]),"y"===axis&&(delta=Utils.clamp(state.x,minY,maxY)-this.layer[axis])):delta=state.x-this.layer[axis],updatePoint=this.layer.point,"x"===axis&&(updatePoint[axis]=updatePoint[axis]+delta),"y"===axis&&(updatePoint[axis]=updatePoint[axis]+delta),this.updatePosition(updatePoint),this.layer[axis]=this.updatePosition(updatePoint)[axis],this.emit(Events.Move,this.layer.point)},LayerDraggable.prototype._onSimulationStop=function(axis,state){if(("x"!==axis||this.horizontal!==!1)&&("y"!==axis||this.vertical!==!1)&&this._simulation)return this.pixelAlign&&(this.layer[axis]=parseInt(this.layer[axis])),this._simulation.x.finished()&&this._simulation.y.finished()?this._stopSimulation():void 0},LayerDraggable.prototype._startSimulation=function(){var maxX,maxY,minX,minY,ref,startSimulationX,startSimulationY,velocity,velocityX,velocityY;if((this.momentum||this.bounce)&&!(this.isBeyondConstraints===!1&&this.momentum===!1||this.isBeyondConstraints===!1&&this.isDragging===!1||(ref=this._calculateConstraints(this._constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,startSimulationX=this.overdrag===!0||this.layer.x>minX&&this.layer.x<maxX,startSimulationY=this.overdrag===!0||this.layer.y>minY&&this.layer.y<maxY,startSimulationX===startSimulationY&&startSimulationY===!1)))return velocity=this.velocity,velocityX=velocity.x*this.momentumVelocityMultiplier*this.speedX*(1/this.layer.canvasScaleX())*this.layer.scaleX*this.layer.scale,velocityY=velocity.y*this.momentumVelocityMultiplier*this.speedY*(1/this.layer.canvasScaleY())*this.layer.scaleY*this.layer.scale,this._setupSimulation(),this._isAnimating=!0,this._isMoving=!0,this._simulation.x.simulator.setState({x:this.layer.x,v:velocityX}),startSimulationX&&this._simulation.x.start(),this._simulation.y.simulator.setState({x:this.layer.y,v:velocityY}),startSimulationY&&this._simulation.y.start(),this.emit(Events.DragAnimationStart)},LayerDraggable.prototype._stopSimulation=function(){var ref,ref1;if(this._isMoving&&this.emit(Events.Move,this.layer.point),this._isAnimating=!1,this._isMoving=!1,this._simulation)return null!=(ref=this._simulation)&&ref.x.stop(),null!=(ref1=this._simulation)&&ref1.y.stop(),this._simulation=null,this.emit(Events.DragAnimationEnd)},LayerDraggable.prototype.animateStop=function(){return this._stopSimulation()},LayerDraggable.prototype.onMove=function(cb){return this.on(Events.Move,cb)},LayerDraggable.prototype.onDragStart=function(cb){return this.on(Events.DragStart,cb)},LayerDraggable.prototype.onDragWillMove=function(cb){return this.on(Events.DragWillMove,cb)},LayerDraggable.prototype.onDragMove=function(cb){return this.on(Events.DragMove,cb)},LayerDraggable.prototype.onDragDidMove=function(cb){return this.on(Events.DragDidMove,cb)},LayerDraggable.prototype.onDrag=function(cb){return this.on(Events.Drag,cb)},LayerDraggable.prototype.onDragEnd=function(cb){return this.on(Events.DragEnd,cb)},LayerDraggable.prototype.onDragAnimationStart=function(cb){return this.on(Events.DragAnimationStart,cb)},LayerDraggable.prototype.onDragAnimationEnd=function(cb){return this.on(Events.DragAnimationEnd,cb)},LayerDraggable.prototype.onDirectionLockStart=function(cb){return this.on(Events.DirectionLockStart,cb)},LayerDraggable}(BaseClass)},function(module,exports,__webpack_require__){var BaseClass,Config,Defaults,Events,FrictionSimulator,MomentumBounceSimulator,SimulatorClasses,SpringSimulator,Utils,_,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};_=__webpack_require__(1)._,Utils=__webpack_require__(4),Config=__webpack_require__(14).Config,Defaults=__webpack_require__(17).Defaults,BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(15).Events,SpringSimulator=__webpack_require__(30).SpringSimulator,FrictionSimulator=__webpack_require__(32).FrictionSimulator,MomentumBounceSimulator=__webpack_require__(33).MomentumBounceSimulator,Events.SimulationStart="simulationStart",Events.SimulationStep="simulationStep",Events.SimulationStop="simulationStop",SimulatorClasses={spring:SpringSimulator,friction:FrictionSimulator,"inertial-scroll":MomentumBounceSimulator},exports.Simulation=function(superClass){function Simulation(options){var SimulatorClass;null==options&&(options={}),this._update=bind(this._update,this),this._start=bind(this._start,this),this.start=bind(this.start,this),Simulation.__super__.constructor.call(this,options),this.options=_.defaults(options,{layer:null,properties:{},model:"spring",modelOptions:{},delay:0,debug:!1}),this.layer=this.options.layer,this.properties=this.options.properties,this._running=!1,SimulatorClass=SimulatorClasses[this.options.model]||SpringSimulator,this._simulator=new SimulatorClass(this.options.modelOptions)}return extend(Simulation,superClass),Simulation.prototype.animatingProperties=function(){return _.keys(this.properties)},Simulation.prototype.start=function(){var animatingProperties,animation,property,ref;null===this.layer&&console.error("Simulation: missing layer"),this.options.debug&&console.log("Simulation.start "+this._simulator.constructor.name,this.options.modelOptions),animatingProperties=this.animatingProperties(),ref=this.layer.animatingProperties();for(property in ref)animation=ref[property],indexOf.call(animatingProperties,property)>=0&&animation.stop();return this.options.delay?Utils.delay(this.options.delay,this._start):this._start(),!0},Simulation.prototype.stop=function(emit){if(null==emit&&(emit=!0),this._running)return this._running=!1,this.layer.context.removeAnimation(this),emit&&this.emit(Events.SimulationStop),Framer.Loop.off("update",this._update)},Simulation.prototype.emit=function(event){return Simulation.__super__.emit.apply(this,arguments),this.layer.emit(event,this)},Simulation.prototype._start=function(){if(!this._running)return this._running=!0,this.layer.context.addAnimation(this),this.emit(Events.SimulationStart),Framer.Loop.on("update",this._update)},Simulation.prototype._update=function(delta){var emit,result;return this._simulator.finished()?(this.stop(emit=!1),this.emit("end"),this.emit(Events.SimulationStop)):(result=this._simulator.next(delta),this.emit(Events.SimulationStep,result,delta))},Simulation.define("simulator",{get:function(){return this._simulator}}),Simulation.prototype.finished=function(){return this._simulator.finished()},Simulation}(BaseClass)},function(module,exports,__webpack_require__){var Defaults,Integrator,Simulator,Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),Defaults=__webpack_require__(17).Defaults,Simulator=__webpack_require__(31).Simulator,Integrator=__webpack_require__(23).Integrator,exports.SpringSimulator=function(superClass){function SpringSimulator(){return this.finished=bind(this.finished,this),SpringSimulator.__super__.constructor.apply(this,arguments)}return extend(SpringSimulator,superClass),SpringSimulator.prototype.setup=function(options){return this.options=Defaults.getDefaults("SpringSimulator",options),this.options=_.defaults(options,{velocity:0,position:0,offset:0}),this._state={x:this.options.position,v:this.options.velocity},this._integrator=new Integrator(function(_this){return function(state){return-_this.options.tension*state.x-_this.options.friction*state.v}}(this))},SpringSimulator.prototype.next=function(delta){return this._state=this._integrator.integrateState(this._state,delta),this.getState()},SpringSimulator.prototype.finished=function(){var positionNearZero,velocityNearZero;return positionNearZero=Math.abs(this._state.x)<this.options.tolerance,velocityNearZero=Math.abs(this._state.v)<this.options.tolerance,positionNearZero&&velocityNearZero},SpringSimulator.prototype.setState=function(state){return this._state={x:state.x-this.options.offset,v:state.v}},SpringSimulator.prototype.getState=function(){var state;return state={x:this._state.x+this.options.offset,v:this._state.v}},SpringSimulator}(Simulator)},function(module,exports,__webpack_require__){var BaseClass,Config,Utils,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),_=__webpack_require__(1)._,Config=__webpack_require__(14).Config,BaseClass=__webpack_require__(6).BaseClass,exports.Simulator=function(superClass){function Simulator(options){null==options&&(options={}),this._state={x:0,v:0},this.options=null,this.setup(options)}return extend(Simulator,superClass),Simulator.define("state",{get:function(){return _.clone(this._state)},set:function(state){return this._state=_.clone(state)}}),Simulator.prototype.setup=function(options){throw Error("Not implemented")},Simulator.prototype.next=function(delta){throw Error("Not implemented")},Simulator.prototype.finished=function(){throw Error("Not implemented")},Simulator.prototype.setState=function(state){return this._state=state},Simulator}(BaseClass)},function(module,exports,__webpack_require__){var Defaults,Integrator,Simulator,Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),Defaults=__webpack_require__(17).Defaults,Simulator=__webpack_require__(31).Simulator,Integrator=__webpack_require__(23).Integrator,exports.FrictionSimulator=function(superClass){function FrictionSimulator(){return this.finished=bind(this.finished,this), | |
FrictionSimulator.__super__.constructor.apply(this,arguments)}return extend(FrictionSimulator,superClass),FrictionSimulator.prototype.setup=function(options){return this.options=Defaults.getDefaults("FrictionSimulator",options),this.options=_.defaults(options,{velocity:0,position:0}),this._state={x:this.options.position,v:this.options.velocity},this._integrator=new Integrator(function(_this){return function(state){return-(_this.options.friction*state.v)}}(this))},FrictionSimulator.prototype.next=function(delta){return this._state=this._integrator.integrateState(this._state,delta),this._state},FrictionSimulator.prototype.finished=function(){return Math.abs(this._state.v)<this.options.tolerance},FrictionSimulator}(Simulator)},function(module,exports,__webpack_require__){var Defaults,FrictionSimulator,Simulator,SpringSimulator,Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),Defaults=__webpack_require__(17).Defaults,Simulator=__webpack_require__(31).Simulator,SpringSimulator=__webpack_require__(30).SpringSimulator,FrictionSimulator=__webpack_require__(32).FrictionSimulator,exports.MomentumBounceSimulator=function(superClass){function MomentumBounceSimulator(){return this.finished=bind(this.finished,this),MomentumBounceSimulator.__super__.constructor.apply(this,arguments)}return extend(MomentumBounceSimulator,superClass),MomentumBounceSimulator.prototype.setup=function(options){return this.options=Defaults.getDefaults("MomentumBounceSimulator",options),this.options=_.defaults(options,{velocity:0,position:0,min:0,max:0}),this._frictionSimulator=new FrictionSimulator({friction:this.options.momentum.friction,tolerance:this.options.momentum.tolerance,velocity:this.options.velocity,position:this.options.position}),this._springSimulator=new SpringSimulator({tension:this.options.bounce.tension,friction:this.options.bounce.friction,tolerance:this.options.bounce.tolerance,velocity:this.options.velocity,position:this.options.position}),this._state={x:this.options.position,v:this.options.velocity},this._useSpring=!1},MomentumBounceSimulator.prototype.next=function(delta){return this._useSpring?this._state=this._springSimulator.next(delta):(this._state=this._frictionSimulator.next(delta),this._tryTransitionToSpring(this._state)),this._state},MomentumBounceSimulator.prototype.finished=function(){return this._useSpring?this._springSimulator.finished():this._frictionSimulator.finished()},MomentumBounceSimulator.prototype.setState=function(state){var bound;return this._state={x:state.x,v:state.v},this._frictionSimulator.setState(this._state),this._isValidState()?this._tryTransitionToSpring():(this._state.x<=this.options.min&&(bound=this.options.min),this._state.x>=this.options.max&&(bound=this.options.max),this._transitionToSpring(bound))},MomentumBounceSimulator.prototype._tryTransitionToSpring=function(force){var aboveMaxWithVelocity,belowMinWithVelocity,bound;return belowMinWithVelocity=this._state.x<this.options.min&&this._state.v<=0,aboveMaxWithVelocity=this._state.x>this.options.max&&this._state.v>=0,belowMinWithVelocity||aboveMaxWithVelocity?(belowMinWithVelocity&&(bound=this.options.min),aboveMaxWithVelocity&&(bound=this.options.max),this._transitionToSpring(bound)):this._useSpring=!1},MomentumBounceSimulator.prototype._transitionToSpring=function(bound){return this._useSpring=!0,this._springSimulator.options.offset=bound,this._springSimulator.setState(this._state)},MomentumBounceSimulator.prototype._isValidState=function(){var aboveMaxTravelingBack,belowMinTravelingBack,bound,check,friction,solution;return belowMinTravelingBack=this._state.x<this.options.min&&this._state.v>0,aboveMaxTravelingBack=this._state.x>this.options.max&&this._state.v<0,check=!1,belowMinTravelingBack?(bound=this.options.min,check=!0):aboveMaxTravelingBack&&(bound=this.options.max,check=!0),!check||(friction=this._frictionSimulator.options.friction,solution=1-friction*(bound-this._state.x)/this._state.v,solution>0)},MomentumBounceSimulator}(Simulator)},function(module,exports,__webpack_require__){var BaseClass,Events,Utils,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,Utils=__webpack_require__(4),BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(15).Events,Events.EventBufferReset="eventbufferreset",Events.EventBufferUpdated="eventbufferupdated",exports.EventBuffer=function(superClass){function EventBuffer(options){null==options&&(options={}),this.options=_.defaults(options,{velocityTimeout:100}),this._events=[]}return extend(EventBuffer,superClass),EventBuffer.prototype.push=function(event){return this._events.push(event),this.emit(Events.EventBufferUpdated,event)},EventBuffer.prototype.reset=function(){return this._events.length=0,this.emit(Events.EventBufferReset)},EventBuffer.define("length",{get:function(){return this._events.length}}),EventBuffer.define("first",{get:function(){return this._events[0]}}),EventBuffer.define("offset",{get:function(){var current,first,offset;return events.length<2?{x:0,y:0}:(current=events[events.length-1],first=events[0],offset={x:current.x-first.x,y:current.y-first.y})}}),EventBuffer.define("events",{get:function(){var timeout;return timeout=Date.now()-this.options.velocityTimeout,_.filter(this._events,function(event){return event.t>timeout})}}),EventBuffer.define("angle",{get:function(){var events,p1,p2;return events=this.events,events.length<2?0:(p1=events[0],p2=events[1],180*Math.atan2(p2.y-p1.y,p2.x-p1.x)/Math.PI)}}),EventBuffer.define("velocity",{get:function(){var current,events,first,time,velocity;return events=this.events,events.length<2?{x:0,y:0}:(current=events[events.length-1],first=events[0],time=current.t-first.t,velocity={x:(current.x-first.x)/time,y:(current.y-first.y)/time},Infinity===velocity.x&&(velocity.x=0),Infinity===velocity.y&&(velocity.y=0),velocity)}}),EventBuffer}(BaseClass)},function(module,exports,__webpack_require__){var BaseClass,Events,Gestures,Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(15).Events,Gestures=__webpack_require__(16).Gestures,Events.PinchStart="pinchstart",Events.Pinch="pinch",Events.PinchEnd="pinchend",Events.RotateStart="rotatestart",Events.Rotate="rotate",Events.RotateEnd="rotateend",Events.ScaleStart="scalestart",Events.Scale="scale",Events.ScaleEnd="scaleend",exports.LayerPinchable=function(superClass){function LayerPinchable(layer){this.layer=layer,this._pinchEnd=bind(this._pinchEnd,this),this._pinch=bind(this._pinch,this),this._pinchStart=bind(this._pinchStart,this),this._centerOrigin=bind(this._centerOrigin,this),LayerPinchable.__super__.constructor.apply(this,arguments),this._attach()}return extend(LayerPinchable,superClass),LayerPinchable.define("enabled",LayerPinchable.simpleProperty("enabled",!0)),LayerPinchable.define("threshold",LayerPinchable.simpleProperty("threshold",0)),LayerPinchable.define("centerOrigin",LayerPinchable.simpleProperty("centerOrigin",!0)),LayerPinchable.define("scale",LayerPinchable.simpleProperty("scale",!0)),LayerPinchable.define("scaleIncrements",LayerPinchable.simpleProperty("scaleIncrements",0)),LayerPinchable.define("minScale",LayerPinchable.simpleProperty("minScale",0)),LayerPinchable.define("maxScale",LayerPinchable.simpleProperty("maxScale",Number.MAX_VALUE)),LayerPinchable.define("scaleFactor",LayerPinchable.simpleProperty("scaleFactor",1)),LayerPinchable.define("rotate",LayerPinchable.simpleProperty("rotate",!0)),LayerPinchable.define("rotateIncrements",LayerPinchable.simpleProperty("rotateIncrements",0)),LayerPinchable.define("rotateMin",LayerPinchable.simpleProperty("rotateMin",0)),LayerPinchable.define("rotateMax",LayerPinchable.simpleProperty("rotateMax",0)),LayerPinchable.define("rotateFactor",LayerPinchable.simpleProperty("rotateFactor",1)),LayerPinchable.prototype._attach=function(){return this.layer.on(Gestures.PinchStart,this._pinchStart),this.layer.on(Gestures.Pinch,this._pinch),this.layer.on(Gestures.PinchEnd,this._pinchEnd),this.layer.on(Gestures.TapStart,this._tapStart)},LayerPinchable.prototype._reset=function(){return this._scaleStart=null,this._rotationStart=null,this._rotationOffset=null},LayerPinchable.prototype._tapStart=function(event){},LayerPinchable.prototype._centerOrigin=function(event){var originDelta,pinchLocation,topInSuperAfter,topInSuperBefore;return topInSuperBefore=Utils.convertPoint({},this.layer,this.layer.superLayer),pinchLocation=Utils.convertPointFromContext(event.touchCenter,this.layer,!0,!0),this.layer.originX=pinchLocation.x/this.layer.width,this.layer.originY=pinchLocation.y/this.layer.height,topInSuperAfter=Utils.convertPoint({},this.layer,this.layer.superLayer),originDelta={x:topInSuperAfter.x-topInSuperBefore.x,y:topInSuperAfter.y-topInSuperBefore.y},this.layer.x-=originDelta.x,this.layer.y-=originDelta.y},LayerPinchable.prototype._pinchStart=function(event){return this._reset(),this.centerOrigin&&this._centerOrigin(event),this.normalizeRotation=Utils.rotationNormalizer()},LayerPinchable.prototype._pinch=function(event){var pointA,pointB,rotation,scale;if(2===event.fingers&&this.enabled&&(pointA={x:event.touches[0].pageX,y:event.touches[0].pageY},pointB={x:event.touches[1].pageX,y:event.touches[1].pageY},Utils.pointTotal(Utils.pointAbs(Utils.pointSubtract(pointA,pointB)))>this.threshold))return this.scale&&(null==this._scaleStart&&(this._scaleStart=this.layer.scale),scale=((event.scale-1)*this.scaleFactor+1)*this._scaleStart,this.minScale&&this.maxScale?scale=Utils.clamp(scale,this.minScale,this.maxScale):this.minScale?scale=Utils.clamp(scale,this.minScale,1e6):this.maxScale&&(scale=Utils.clamp(scale,1e-5,this.maxScale)),this.scaleIncrements&&(scale=Utils.nearestIncrement(scale,this.scaleIncrements)),this.layer.scale=scale,this.emit(Events.Scale,event)),this.rotate?(null==this._rotationStart&&(this._rotationStart=this.layer.rotation),null==this._rotationOffset&&(this._rotationOffset=event.rotation),rotation=event.rotation-this._rotationOffset+this._rotationStart,rotation*=this.rotateFactor,rotation=this.normalizeRotation(rotation),this.rotateMin&&this.rotateMax&&(rotation=Utils.clamp(rotation,this.rotateMin,this.rotateMax)),this.rotateIncrements&&(rotation=Utils.nearestIncrement(rotation,this.rotateIncrements)),this.layer.rotation=rotation):void 0},LayerPinchable.prototype._pinchEnd=function(event){return this._reset()},LayerPinchable}(BaseClass)},function(module,exports,__webpack_require__){var Layer,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Layer=__webpack_require__(13).Layer,exports.BackgroundLayer=function(superClass){function BackgroundLayer(options){var ref;null==options&&(options={}),this.layout=bind(this.layout,this),null==options.backgroundColor&&(options.backgroundColor="#fff"),console.warn('BackgroundLayer is deprecated, please use\n\nScreen.backgroundColor = "'+options.backgroundColor+'"\n\ninstead.'),BackgroundLayer.__super__.constructor.call(this,options),this.sendToBack(),this.layout(),this._context.domEventManager.wrap(window).addEventListener("resize",this.layout),null!=(ref=Framer.Device)&&ref.on("change:orientation",this.layout)}return extend(BackgroundLayer,superClass),BackgroundLayer.prototype.layout=function(){return this.parent?this.frame=this.parent.frame:this.frame=this._context.frame},BackgroundLayer}(Layer)},function(module,exports,__webpack_require__){var Layer,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Layer=__webpack_require__(13).Layer,exports.VideoLayer=function(superClass){function VideoLayer(options){null==options&&(options={}),this.player=document.createElement("video"),this.player.setAttribute("webkit-playsinline","true"),this.player.setAttribute("playsinline",""),this.player.style.width="100%",this.player.style.height="100%",VideoLayer.__super__.constructor.call(this,options),this.player.on=this._context.domEventManager.wrap(this.player).addEventListener,this.player.off=this._context.domEventManager.wrap(this.player).removeEventListener,this.video=options.video,this._element.appendChild(this.player)}return extend(VideoLayer,superClass),VideoLayer.define("video",{get:function(){return this.player.src},set:function(video){return this.player.src=video}}),VideoLayer}(Layer)},function(module,exports,__webpack_require__){var Layer,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,Layer=__webpack_require__(13).Layer,exports.SVGLayer=function(superClass){function SVGLayer(options){null==options&&(options={}),SVGLayer.__super__.constructor.call(this,_.defaults(options,{backgroundColor:null})),this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.setAttribute("width","100%"),this.svg.setAttribute("height","100%"),this.svg.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink")}return extend(SVGLayer,superClass),SVGLayer.prototype.addShape=function(type){var shape;return shape=document.createElementNS("http://www.w3.org/2000/svg","circle"),this.svg.appendChild(shape),shape},SVGLayer}(Layer)},function(module,exports,__webpack_require__){var AnimationGroup,AnimationStateGroup,BaseClass,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,slice=[].slice,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};_=__webpack_require__(1)._,BaseClass=__webpack_require__(6).BaseClass,AnimationGroup=function(superClass){function AnimationGroup(){var args;args=1<=arguments.length?slice.call(arguments,0):[],AnimationGroup.__super__.constructor.apply(this,arguments),this._animations=_.flatten(args),this.stopAnimations=!0,this.stop()}return extend(AnimationGroup,superClass),AnimationGroup.prototype.start=function(){return this._start(this._animations)},AnimationGroup.prototype.stop=function(){return this._stop(),this._started=[],this._halted=[],this._stopped=[],this._ended=[]},AnimationGroup.prototype._start=function(animations){return this.stop(),this._onStart(),animations.map(function(_this){return function(animation){return _this._started.push(animation),animation.onAnimationHalt(function(){if(_this._halted.push(animation),!(_this._halted.length>1))return _this._stop(),_this._onHalt()}),animation.onAnimationStop(function(){if(_this._stopped.push(animation),_this._stopped.length===_this._started.length)return _this._onStop()}),animation.onAnimationEnd(function(){if(_this._ended.push(animation),_this._ended.length===_this._started.length)return _this._onEnd()}),animation.start()}}(this))},AnimationGroup.prototype._stop=function(){if(this._started&&this.stopAnimations===!0)return this._started.map(function(a){if(a.isAnimating)return a.stop()})},AnimationGroup.prototype._onStart=function(){return this.emit(Events.AnimationStart)},AnimationGroup.prototype._onHalt=function(){return this.emit(Events.AnimationHalt)},AnimationGroup.prototype._onStop=function(){return this.emit(Events.AnimationStop)},AnimationGroup.prototype._onEnd=function(){return this.emit(Events.AnimationEnd)},AnimationGroup.prototype.onAnimationStart=function(cb){return this.on(Events.AnimationStart,cb)},AnimationGroup.prototype.onAnimationHalt=function(cb){return this.on(Events.AnimationHalt,cb)},AnimationGroup.prototype.onAnimationStop=function(cb){return this.on(Events.AnimationStop,cb)},AnimationGroup.prototype.onAnimationEnd=function(cb){return this.on(Events.AnimationEnd,cb)},AnimationGroup.prototype.onStart=function(cb){return this.onAnimationStart(cb)},AnimationGroup.prototype.onHalt=function(cb){return this.onAnimationHalt(cb)},AnimationGroup.prototype.onStop=function(cb){return this.onAnimationStop(cb)},AnimationGroup.prototype.onEnd=function(cb){return this.onAnimationEnd(cb)},AnimationGroup}(BaseClass),AnimationStateGroup=function(superClass){function AnimationStateGroup(){var layers;layers=1<=arguments.length?slice.call(arguments,0):[],AnimationStateGroup.__super__.constructor.apply(this,arguments),this._layers=_.flatten(layers),this._state="default"}return extend(AnimationStateGroup,superClass),AnimationStateGroup.prototype.animate=function(state){var animations,i,layer,len,ref;for(animations=[],ref=this._layers,i=0,len=ref.length;i<len;i++)layer=ref[i],layer.states[state]&&animations.push(layer.animate(state,{start:!1}));if(animations)return this._start(animations),this._state=state},AnimationStateGroup.define("state",{get:function(){return this._state}}),AnimationStateGroup.define("states",{get:function(){var i,j,layer,len,len1,ref,ref1,state,states;for(states=[],ref=this._layers,i=0,len=ref.length;i<len;i++)for(layer=ref[i],ref1=_.keys(layer.states),j=0,len1=ref1.length;j<len1;j++)state=ref1[j],indexOf.call(states,state)<0&&states.push(state);return states}}),AnimationStateGroup.prototype.stateCycle=function(){var args,states;return args=1<=arguments.length?slice.call(arguments,0):[],states=_.flatten(args),states.length||(states=this.states),this.animate(Utils.arrayNext(states,this.state))},AnimationStateGroup}(AnimationGroup),exports.AnimationGroup=AnimationGroup,exports.AnimationStateGroup=AnimationStateGroup},function(module,exports){var bottom,center,left,pixelRound,right,top,wrapper;pixelRound=parseInt,center=function(layer,property,offset){var borderWidth,parent,x,y;return null==offset&&(offset=0),parent=Screen,layer.parent&&(parent=layer.parent),borderWidth=parent.borderWidth,null==borderWidth&&(borderWidth=0),x=pixelRound(parent.width/2-layer.width/2-borderWidth+offset),y=pixelRound(parent.height/2-layer.height/2-borderWidth+offset),"x"===property?x:"y"===property?y:"point"===property?{x:x,y:y}:0},left=function(layer,property,offset){var parent;if(null==offset&&(offset=0),"x"!==property)throw Error("Align.left only works for x");return parent=Screen,layer.parent&&(parent=layer.parent),pixelRound(0+offset)},right=function(layer,property,offset){var borderWidth,parent;if(null==offset&&(offset=0),"x"!==property)throw Error("Align.right only works for x");return parent=Screen,layer.parent&&(parent=layer.parent),borderWidth=parent.borderWidth,null==borderWidth&&(borderWidth=0),pixelRound(parent.width-2*borderWidth-layer.width+offset)},top=function(layer,property,offset){var parent;if(null==offset&&(offset=0),"y"!==property)throw Error("Align.top only works for y");return parent=Screen,layer.parent&&(parent=layer.parent),pixelRound(0+offset)},bottom=function(layer,property,offset){var borderWidth,parent;if(null==offset&&(offset=0),"y"!==property)throw Error("Align.bottom only works for y");return parent=Screen,layer.parent&&(parent=layer.parent),borderWidth=parent.borderWidth,null==borderWidth&&(borderWidth=0),pixelRound(parent.height-2*borderWidth-layer.height+offset)},wrapper=function(f,name){var align;return align=function(a,b){return null==a||_.isNumber(a)?function(l,p){return f(l,p,a)}:f(a,b,0)},align.toInspect=function(){return"Align."+name},align},exports.Align={center:wrapper(center,"center"),left:wrapper(left,"left"),right:wrapper(right,"right"),top:wrapper(top,"top"),bottom:wrapper(bottom,"bottom")}},function(module,exports,__webpack_require__){var Context,Printer,Utils,_printer,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},slice=[].slice;Utils=__webpack_require__(4),Context=__webpack_require__(42).Context,Printer=function(){function Printer(){this.scrollToBottom=bind(this.scrollToBottom,this),this.print=bind(this.print,this),this.resize=bind(this.resize,this),this.createLayer=bind(this.createLayer,this),this._context=new Context({name:"PrintConsole"}),this._context.run(function(_this){return function(){return Events.wrap(window).addEventListener("resize",_this.resize)}}(this))}return Printer.prototype.createLayer=function(){return this._printLayer?this._printLayer:(this._context.run(function(_this){return function(){return _this._container=new Layer({backgroundColor:null}),_this._container.style.zIndex=999,_this._printLayer=new Layer({parent:_this._container}),_this._printLayer.scrollVertical=!0,_this._printLayer.ignoreEvents=!1,_this._printLayer.html="",_this._printLayer.style={font:"12px/1.35em Menlo",color:"rgba(0, 0, 0, .7)",padding:"8px","padding-bottom":"30px","border-top":"1px solid #d9d9d9"},_this._printLayer.opacity=.9,_this._printLayer.visible=!0,_this._printLayer.backgroundColor="white",_this._closeButton=new Layer({parent:_this._container,html:'<svg><g stroke="#B8B8B8"><path d="M1,1 L8,8"></path><path d="M1,8 L8,1"></path></g></svg>',y:9,width:9,height:9,backgroundColor:null}),_this._closeButton.style.cursor="auto",_this._closeButton.onClick(function(){return _this.hide()})}}(this)),this.resize(),this._printLayer)},Printer.prototype.resize=function(){if(this._printLayer)return this._container.width=window.innerWidth,this._container.height=160,this._container.maxY=window.innerHeight,this._printLayer.size=this._container.size,this._closeButton.maxX=this._container.maxX-this._closeButton.y+1},Printer.prototype.hide=function(){return this._context.visible=!1},Printer.prototype.print=function(){var args,printNode,printPrefix;return args=1<=arguments.length?slice.call(arguments,0):[],this.createLayer(),this._context.visible=!0,printPrefix="» ",printNode=document.createElement("div"),printNode.style["-webkit-user-select"]="text",printNode.style.cursor="auto",printNode.innerHTML=_.escape(printPrefix+args.map(function(obj){return Utils.inspect(obj)}).join(", "))+"<br>",this._printLayer._element.appendChild(printNode),this.scrollToBottom(),Utils.delay(0,this.scrollToBottom)},Printer.prototype.scrollToBottom=function(){if(this._printLayer)return this._printLayer._element.scrollTop=this._printLayer._element.scrollHeight},Printer}(),_printer=null,exports.print=function(){var args;return args=1<=arguments.length?slice.call(arguments,0):[],null==_printer&&(_printer=new Printer),_printer.print.apply(_printer,args)}},function(module,exports,__webpack_require__){var BaseClass,Config,Contexts,DOMEventManager,Defaults,Utils,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1},slice=[].slice;_=__webpack_require__(1)._,Utils=__webpack_require__(4),Config=__webpack_require__(14).Config,Defaults=__webpack_require__(17).Defaults,BaseClass=__webpack_require__(6).BaseClass,DOMEventManager=__webpack_require__(43).DOMEventManager,Contexts=[],exports.Context=function(superClass){function Context(options){if(null==options&&(options={}),options=Defaults.getDefaults("Context",options),Context.__super__.constructor.apply(this,arguments),!options.name)throw Error("Contexts need a name");this._parent=options.parent,this._name=options.name,this.perspective=options.perspective,this.perspectiveOriginX=options.perspectiveOriginX,this.perspectiveOriginY=options.perspectiveOriginY,this.reset(),options.hasOwnProperty("index")?this.index=options.index:this.index=this.id,Contexts.push(this)}return extend(Context,superClass),Context.all=function(){return _.clone(Contexts)},Context.define("parent",{get:function(){return this._parent}}),Context.define("element",{get:function(){return this._element}}),Context.prototype.reset=function(){return this._createDOMEventManager(),this._createRootElement(),this.resetFrozenEvents(),this.resetLayers(),this.resetAnimations(),this.resetTimers(),this.resetIntervals(),this.emit("reset",this)},Context.prototype.destroy=function(){return this.reset(),this._destroyRootElement(),_.remove(Contexts,this)},Context.define("layers",{get:function(){return _.clone(this._layers)}}),Context.define("layerCounter",{get:function(){return this._layerCounter}}),Context.define("rootLayers",{get:function(){return _.filter(this._layers,function(layer){return null===layer.parent})}}),Context.define("visible",{get:function(){return this._visible||!0},set:function(value){var ref;if(value!==this._visible)return null!=(ref=this._element)&&(ref.style.visibility=value?"visible":"hidden"),this._visible=value}}),Context.prototype.addLayer=function(layer){if(!(indexOf.call(this._layers,layer)>=0))return this._layerCounter++,this._layers.push(layer)},Context.prototype.removeLayer=function(layer){return this._layers=_.without(this._layers,layer)},Context.prototype.resetLayers=function(){return this.resetGestures(),this._layers=[],this._layerCounter=0},Context.prototype.layerForId=function(layerId){var i,layer,len,ref;for(ref=this._layers,i=0,len=ref.length;i<len;i++)if(layer=ref[i],layer.id===layerId)return layer;return null},Context.prototype._layerForElement=function(element){var i,layer,len,ref;for(ref=this._layers,i=0,len=ref.length;i<len;i++)if(layer=ref[i],layer._element===element)return layer;return null},Context.prototype.layerForElement=function(element){var layer;return element?(layer=this._layerForElement(element),layer?layer:this.layerForElement(element.parentNode)):null},Context.define("animations",{get:function(){return _.clone(this._animations)}}),Context.prototype.addAnimation=function(animation){if(!(indexOf.call(this._animations,animation)>=0))return this._animations.push(animation)},Context.prototype.removeAnimation=function(animation){return this._animations=_.without(this._animations,animation)},Context.prototype.resetAnimations=function(){return this.stopAnimations(),this._animations=[]},Context.prototype.stopAnimations=function(){if(this._animations)return this._animations.map(function(animation){return animation.stop(!0)})},Context.prototype.resetFrozenEvents=function(){return delete this._frozenEvents},Context.define("timers",{get:function(){return _.clone(this._timers)}}),Context.prototype.addTimer=function(timer){if(!(indexOf.call(this._timers,timer)>=0))return this._timers.push(timer)},Context.prototype.removeTimer=function(timer){return window.clearTimeout(timer),this._timers=_.without(this._timers,timer)},Context.prototype.resetTimers=function(){return this._timers&&this._timers.map(window.clearTimeout),this._timers=[]},Context.define("intervals",{get:function(){return _.clone(this._intervals)}}),Context.prototype.addInterval=function(interval){if(!(indexOf.call(this._intervals,interval)>=0))return this._intervals.push(interval)},Context.prototype.removeInterval=function(interval){return this._intervals=_.without(this._intervals,interval)},Context.prototype.resetIntervals=function(){return this._intervals&&this._intervals.map(window.clearInterval),this._intervals=[]},Context.prototype.resetGestures=function(){var i,layer,len,ref;if(this._layers)for(ref=this._layers,i=0,len=ref.length;i<len;i++)layer=ref[i],layer._gestures&&layer._gestures.destroy()},Context.prototype.run=function(fn){var previousContext;return previousContext=Framer.CurrentContext,Framer.CurrentContext=this,fn(),Framer.CurrentContext=previousContext},Context.prototype.freeze=function(){var eventName,i,j,layer,layerId,layerListeners,len,len1,ref,ref1;if(null!=this._frozenEvents)throw new Error("Context is already frozen");for(this._frozenEvents={},ref=this._layers,i=0,len=ref.length;i<len;i++){for(layer=ref[i],layerListeners={},ref1=layer.listenerEvents(),j=0,len1=ref1.length;j<len1;j++)eventName=ref1[j],layerListeners[eventName]=layer.listeners(eventName);layer.removeAllListeners(),layerId=this._layers.indexOf(layer),this._frozenEvents[layerId]=layerListeners}return this.stopAnimations(),this.resetTimers(),this.resetIntervals()},Context.prototype.resume=function(){var eventName,events,i,layer,layerId,len,listener,listeners,ref;if(null==this._frozenEvents)throw new Error("Context is not frozen, cannot resume");ref=this._frozenEvents;for(layerId in ref){events=ref[layerId],layer=this._layers[layerId];for(eventName in events)for(listeners=events[eventName],i=0,len=listeners.length;i<len;i++)listener=listeners[i],layer.on(eventName,listener)}return this.resetFrozenEvents()},Context.prototype._createDOMEventManager=function(){var ref;return null!=(ref=this.domEventManager)&&ref.reset(),this.domEventManager=new DOMEventManager},Context.prototype._createRootElement=function(){return this._destroyRootElement(),this._element=document.createElement("div"),this._element.id="FramerContextRoot-"+this._name,this._element.classList.add("framerContext"),this._element.style.webkitPerspective=this.perspective,this._element.style.backgroundColor=this.backgroundColor,this.__pendingElementAppend=function(_this){return function(){var parentElement,ref;return parentElement=null!=(ref=_this._parent)?ref._element:void 0,null==parentElement&&(parentElement=document.body),parentElement.appendChild(_this._element)}}(this),Utils.domComplete(this.__pendingElementAppend)},Context.prototype._destroyRootElement=function(){var ref;return(null!=(ref=this._element)?ref.parentNode:void 0)&&this._element.parentNode.removeChild(this._element),this.__pendingElementAppend&&(Utils.domCompleteCancel(this.__pendingElementAppend),this.__pendingElementAppend=null),this._element=null},Context.define("width",{get:function(){return null!=this.parent?this.parent.width:window.innerWidth}}),Context.define("height",{get:function(){return null!=this.parent?this.parent.height:window.innerHeight}}),Context.define("frame",{get:function(){return{x:0,y:0,width:this.width,height:this.height}}}),Context.define("size",{get:function(){return _.pick(this.frame,["width","height"])}}),Context.define("point",{get:function(){return _.pick(this.frame,["x","y"])}}),Context.define("canvasFrame",{get:function(){return null==this.parent?this.frame:this.parent.canvasFrame}}),Context.define("backgroundColor",{get:function(){return Color.isColor(this._backgroundColor)?this._backgroundColor:"transparent"},set:function(value){var ref;if(Color.isColor(value))return this._backgroundColor=value,null!=(ref=this._element)?ref.style.backgroundColor=new Color(value.toString()):void 0}}),Context.define("perspective",{get:function(){return this._perspective},set:function(value){var ref;if(_.isNumber(value))return this._perspective=value,null!=(ref=this._element)?ref.style.webkitPerspective=this._perspective:void 0}}),Context.prototype._updatePerspective=function(){ | |
var ref;return null!=(ref=this._element)?ref.style.webkitPerspectiveOrigin=100*this.perspectiveOriginX+"% "+100*this.perspectiveOriginY+"%":void 0},Context.define("perspectiveOriginX",{get:function(){return _.isNumber(this._perspectiveOriginX)?this._perspectiveOriginX:.5},set:function(value){if(_.isNumber(value))return this._perspectiveOriginX=value,this._updatePerspective()}}),Context.define("perspectiveOriginY",{get:function(){return _.isNumber(this._perspectiveOriginY)?this._perspectiveOriginY:.5},set:function(value){if(_.isNumber(value))return this._perspectiveOriginY=value,this._updatePerspective()}}),Context.define("index",{get:function(){var ref;return(null!=(ref=this._element)?ref.style["z-index"]:void 0)||0||0},set:function(value){if(this._element)return this._element.style["z-index"]=value}}),Context.prototype.ancestors=function(){var args,ref;return args=1<=arguments.length?slice.call(arguments,0):[],(null!=(ref=this._parent)?ref.ancestors.apply(ref,args):void 0)||[]},Context.prototype.toInspect=function(){var round;return round=function(value){return parseInt(value)===value?parseInt(value):Utils.round(value,1)},"<"+this.constructor.name+" id:"+this.id+" name:"+this._name+" "+round(this.width)+"x"+round(this.height)+">"},Context}(BaseClass)},function(module,exports,__webpack_require__){var DOMEventManagerElement,EventEmitter,EventManagerIdCounter,Utils,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};_=__webpack_require__(1)._,EventEmitter=__webpack_require__(7).EventEmitter,Utils=__webpack_require__(4),EventManagerIdCounter=0,DOMEventManagerElement=function(superClass){function DOMEventManagerElement(element1){this.element=element1}return extend(DOMEventManagerElement,superClass),DOMEventManagerElement.prototype.addListener=function(eventName,listener,capture){return null==capture&&(capture=!1),listener.capture=capture,DOMEventManagerElement.__super__.addListener.call(this,eventName,listener),this.element.addEventListener(eventName,listener,capture)},DOMEventManagerElement.prototype.removeListener=function(eventName,listener,capture){return null==capture&&(capture=!1),DOMEventManagerElement.__super__.removeListener.call(this,eventName,listener),this.element.removeEventListener(eventName,listener,listener.capture)},DOMEventManagerElement.prototype.addEventListener=DOMEventManagerElement.prototype.addListener,DOMEventManagerElement.prototype.removeEventListener=DOMEventManagerElement.prototype.removeListener,DOMEventManagerElement.prototype.on=DOMEventManagerElement.prototype.addListener,DOMEventManagerElement.prototype.off=DOMEventManagerElement.prototype.removeListener,DOMEventManagerElement}(EventEmitter),exports.DOMEventManager=function(){function DOMEventManager(element){this.wrap=bind(this.wrap,this),this._elements={}}return DOMEventManager.prototype.wrap=function(element){return element._eventManagerId||(element._eventManagerId=EventManagerIdCounter++),this._elements[element._eventManagerId]||(this._elements[element._eventManagerId]=new DOMEventManagerElement(element)),this._elements[element._eventManagerId]},DOMEventManager.prototype.reset=function(){var element,elementEventManager,ref,results;ref=this._elements,results=[];for(element in ref)elementEventManager=ref[element],results.push(elementEventManager.removeAllListeners());return results},DOMEventManager}()},function(module,exports,__webpack_require__){var Defaults,EventMappers,Events,Layer,Utils,_,wrapComponent,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,slice=[].slice,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};_=__webpack_require__(1)._,Utils=__webpack_require__(4),Layer=__webpack_require__(13).Layer,Events=__webpack_require__(15).Events,Defaults=__webpack_require__(17).Defaults,Events.ScrollStart="scrollstart",Events.Scroll="scroll",Events.ScrollMove=Events.Scroll,Events.ScrollEnd="scrollend",Events.ScrollAnimationDidStart="scrollanimationdidstart",Events.ScrollAnimationDidEnd="scrollanimationdidend",EventMappers={},EventMappers[Events.Move]=Events.Move,EventMappers[Events.ScrollStart]=Events.DragStart,EventMappers[Events.ScrollMove]=Events.DragMove,EventMappers[Events.ScrollEnd]=Events.DragEnd,EventMappers[Events.ScrollAnimationDidStart]=Events.DragAnimationStart,EventMappers[Events.ScrollAnimationDidEnd]=Events.DragAnimationEnd,EventMappers[Events.DirectionLockStart]=Events.DirectionLockStart,exports.ScrollComponent=function(superClass){function ScrollComponent(options){null==options&&(options={}),this._onMouseWheel=bind(this._onMouseWheel,this),this._onAnimationStop=bind(this._onAnimationStop,this),this._onAnimationStep=bind(this._onAnimationStep,this),this._onAnimationStart=bind(this._onAnimationStart,this),this.updateContent=bind(this.updateContent,this),ScrollComponent.__super__.constructor.call(this,Defaults.getDefaults("ScrollComponent",options)),this._contentInset=options.contentInset||Utils.rectZero(),this.setContentLayer(new Layer),this._applyProxyDefaults(options),this._enableMouseWheelHandling(options.mouseWheelEnabled),options.hasOwnProperty("wrap")&&wrapComponent(this,options.wrap)}return extend(ScrollComponent,superClass),ScrollComponent.define("velocity",ScrollComponent.proxyProperty("content.draggable.velocity",{importable:!1,exportable:!1})),ScrollComponent.define("scrollHorizontal",ScrollComponent.proxyProperty("content.draggable.horizontal")),ScrollComponent.define("scrollVertical",ScrollComponent.proxyProperty("content.draggable.vertical")),ScrollComponent.define("speedX",ScrollComponent.proxyProperty("content.draggable.speedX")),ScrollComponent.define("speedY",ScrollComponent.proxyProperty("content.draggable.speedY")),ScrollComponent.define("isDragging",ScrollComponent.proxyProperty("content.draggable.isDragging",{importable:!1,exportable:!1})),ScrollComponent.define("isMoving",ScrollComponent.proxyProperty("content.draggable.isMoving",{importable:!1,exportable:!1})),ScrollComponent.define("isAnimating",ScrollComponent.proxyProperty("content.draggable.isAnimating",{importable:!1,exportable:!1})),ScrollComponent.define("propagateEvents",ScrollComponent.proxyProperty("content.draggable.propagateEvents")),ScrollComponent.define("directionLock",ScrollComponent.proxyProperty("content.draggable.directionLock")),ScrollComponent.define("directionLockThreshold",ScrollComponent.proxyProperty("content.draggable.directionLockThreshold")),ScrollComponent.define("content",{importable:!1,exportable:!1,get:function(){return this._content}}),ScrollComponent.define("mouseWheelSpeedMultiplier",ScrollComponent.simpleProperty("mouseWheelSpeedMultiplier",1)),ScrollComponent.prototype.calculateContentFrame=function(){var contentFrame,size;return this.content?(contentFrame=this.content.contentFrame(),size={x:0,y:0,width:Math.max(this.width,contentFrame.x+contentFrame.width),height:Math.max(this.height,contentFrame.y+contentFrame.height)}):Utils.rectZero()},ScrollComponent.prototype.setContentLayer=function(layer){return this.content&&(this._onAnimationStop(),this.content.off(Events.AnimationStart,this._onAnimationStart),this.content.off(Events.AnimationStop,this._onAnimationStop),this._content.destroy()),this._content=layer,this._content.parent=this,this._content.name="content",this._content.clip=!0,this._content.draggable.enabled=!0,this._content.draggable.momentum=!0,this._content.on("change:children",this.updateContent),this.on("change:width",this.updateContent),this.on("change:height",this.updateContent),this.updateContent(),this.scrollPoint={x:0,y:0},this.content.on(Events.AnimationStart,this._onAnimationStart),this.content.on(Events.AnimationStop,this._onAnimationStop),this._content},ScrollComponent.prototype.updateContent=function(){var constraintsFrame,contentFrame,ref;if(this.content)return contentFrame=this.calculateContentFrame(),this.content.width=contentFrame.width,this.content.height=contentFrame.height,constraintsFrame=this.calculateContentFrame(),constraintsFrame={x:-constraintsFrame.width+this.width-this._contentInset.right,y:-constraintsFrame.height+this.height-this._contentInset.bottom,width:constraintsFrame.width+constraintsFrame.width-this.width+this._contentInset.left+this._contentInset.right,height:constraintsFrame.height+constraintsFrame.height-this.height+this._contentInset.top+this._contentInset.bottom},this.content.draggable.constraints=constraintsFrame,this.scrollPoint=this.scrollPoint,this.content.children.length&&(null!=(ref=this.content.backgroundColor)?ref.isEqual(Framer.Defaults.Layer.backgroundColor):void 0)?this.content.backgroundColor=null:void 0},ScrollComponent.define("scroll",{exportable:!1,get:function(){return this.scrollHorizontal===!0||this.scrollVertical===!0},set:function(value){if(this.content)return value===!1&&this.content.animateStop(),this.scrollHorizontal=this.scrollVertical=value}}),ScrollComponent.prototype._calculateContentPoint=function(scrollPoint){var point;return scrollPoint=_.defaults(scrollPoint,{x:0,y:0}),scrollPoint.x-=this.contentInset.left,scrollPoint.y-=this.contentInset.top,point=this._pointInConstraints(scrollPoint),Utils.pointInvert(point)},ScrollComponent.define("scrollX",{get:function(){return this.content?0-this.content.x+this.contentInset.left:0},set:function(value){if(this.content)return this.content.draggable.animateStop(),this.content.x=this._calculateContentPoint({x:value,y:0}).x}}),ScrollComponent.define("scrollY",{get:function(){return this.content?0-this.content.y+this.contentInset.top:0},set:function(value){if(this.content)return this.content.draggable.animateStop(),this.content.y=this._calculateContentPoint({x:0,y:value}).y}}),ScrollComponent.define("scrollPoint",{importable:!0,exportable:!1,get:function(){var point;return point={x:this.scrollX,y:this.scrollY}},set:function(point){if(this.content)return this.scrollX=point.x,this.scrollY=point.y}}),ScrollComponent.define("scrollFrame",{importable:!0,exportable:!1,get:function(){var rect;return rect=this.scrollPoint,rect.width=this.width,rect.height=this.height,rect},set:function(value){return this.scrollPoint=value}}),ScrollComponent.define("contentInset",{get:function(){return _.clone(this._contentInset)},set:function(contentInset){var contentFrame;if(this._contentInset=Utils.rectZero(Utils.parseRect(contentInset)),this.content)return contentFrame=this.calculateContentFrame(),contentFrame.x=contentFrame.x+this._contentInset.left,contentFrame.y=contentFrame.y+this._contentInset.top,this.content.frame=contentFrame,this.updateContent()}}),ScrollComponent.define("direction",{importable:!1,exportable:!1,get:function(){var direction;return direction=this.content.draggable.direction,"down"===direction?"up":"up"===direction?"down":"right"===direction?"left":"left"===direction?"right":direction}}),ScrollComponent.define("angle",{importable:!1,exportable:!1,get:function(){return this.content?-this.content.draggable.angle:0}}),ScrollComponent.prototype.scrollToPoint=function(point,animate,animationOptions){var contentPoint;return null==animate&&(animate=!0),null==animationOptions&&(animationOptions={curve:"spring(500, 50, 0)"}),contentPoint=this._calculateContentPoint(point),this.content.draggable.animateStop(),animate?(point={},contentPoint.hasOwnProperty("x")&&(point.x=contentPoint.x),contentPoint.hasOwnProperty("y")&&(point.y=contentPoint.y),this.content.animateStop(),this.content.animate(point,animationOptions)):this.content.point=contentPoint},ScrollComponent.prototype.scrollToTop=function(animate,animationOptions){return null==animate&&(animate=!0),null==animationOptions&&(animationOptions={curve:"spring(500, 50, 0)"}),this.scrollToPoint({x:0,y:0},animate,animationOptions)},ScrollComponent.prototype.scrollToLayer=function(contentLayer,originX,originY,animate,animationOptions){var scrollPoint;if(null==originX&&(originX=0),null==originY&&(originY=0),null==animate&&(animate=!0),null==animationOptions&&(animationOptions={curve:"spring(500, 50, 0)"}),contentLayer&&contentLayer.parent!==this.content)throw Error("Can't scroll to this layer because it's not in the ScrollComponent. Add it to the content like layer.parent = scroll.content.");return contentLayer&&0!==this.content.children.length?(scrollPoint=this._scrollPointForLayer(contentLayer,originX,originY),scrollPoint.x-=this.width*originX,scrollPoint.y-=this.height*originY):scrollPoint={x:0,y:0},this.scrollToPoint(scrollPoint,animate,animationOptions),contentLayer},ScrollComponent.prototype.scrollToClosestLayer=function(originX,originY,animate,animationOptions){var closestLayer;return null==originX&&(originX=0),null==originY&&(originY=0),null==animate&&(animate=!0),null==animationOptions&&(animationOptions={curve:"spring(500, 50, 0)"}),closestLayer=this.closestContentLayer(originX,originY,animate,animationOptions),closestLayer?(this.scrollToLayer(closestLayer,originX,originY),closestLayer):(closestLayer||this.scrollToPoint({x:0,y:0}),null)},ScrollComponent.prototype.closestContentLayer=function(originX,originY){var scrollPoint;return null==originX&&(originX=0),null==originY&&(originY=0),scrollPoint=Utils.framePointForOrigin(this.scrollFrame,originX,originY),this.closestContentLayerForScrollPoint(scrollPoint,originX,originY)},ScrollComponent.prototype.closestContentLayerForScrollPoint=function(scrollPoint,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),_.head(this._contentLayersSortedByDistanceForScrollPoint(scrollPoint,originX,originY))},ScrollComponent.prototype._onAnimationStart=function(event){return this.content.on("change:frame",this._onAnimationStep)},ScrollComponent.prototype._onAnimationStep=function(event){return this.content.emit(Events.Move,this.content.point),this.emit(Events.Scroll,event)},ScrollComponent.prototype._onAnimationStop=function(){return this.content.off("change:frame",this._onAnimationStep)},ScrollComponent.prototype._scrollPointForLayer=function(layer,originX,originY,clamp){return null==originX&&(originX=0),null==originY&&(originY=0),null==clamp&&(clamp=!0),Utils.framePointForOrigin(layer,originX,originY)},ScrollComponent.prototype._contentLayersSortedByDistanceForScrollPoint=function(scrollPoint,originX,originY){return null==originX&&(originX=0),null==originY&&(originY=0),Utils.frameSortByAbsoluteDistance(scrollPoint,this.content.children,originX,originY)},ScrollComponent.prototype._pointInConstraints=function(point){var maxX,maxY,minX,minY,ref;return ref=this.content.draggable._calculateConstraints(this.content.draggable.constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,point={x:-Utils.clamp(-point.x,minX,maxX),y:-Utils.clamp(-point.y,minY,maxY)}},ScrollComponent.prototype.addListener=function(){var eventName,eventNames,i,j,len,listener,results;for(eventNames=2<=arguments.length?slice.call(arguments,0,i=arguments.length-1):(i=0,[]),listener=arguments[i++],ScrollComponent.__super__.addListener.apply(this,arguments),results=[],j=0,len=eventNames.length;j<len;j++)eventName=eventNames[j],indexOf.call(_.keys(EventMappers),eventName)>=0?results.push(this.content.on(EventMappers[eventName],listener)):results.push(void 0);return results},ScrollComponent.prototype.removeListener=function(){var eventName,eventNames,i,j,len,listener,results;for(eventNames=2<=arguments.length?slice.call(arguments,0,i=arguments.length-1):(i=0,[]),listener=arguments[i++],ScrollComponent.__super__.removeListener.apply(this,arguments),results=[],j=0,len=eventNames.length;j<len;j++)eventName=eventNames[j],indexOf.call(_.keys(EventMappers),eventName)>=0?results.push(this.content.off(EventMappers[eventName],listener)):results.push(void 0);return results},ScrollComponent.prototype.on=ScrollComponent.prototype.addListener,ScrollComponent.prototype.off=ScrollComponent.prototype.removeListener,ScrollComponent.define("mouseWheelEnabled",{get:function(){return this._mouseWheelEnabled},set:function(value){return this._mouseWheelEnabled=value,this._enableMouseWheelHandling(value)}}),ScrollComponent.prototype._enableMouseWheelHandling=function(enable){return enable?this.on(Events.MouseWheel,this._onMouseWheel):this.off(Events.MouseWheel,this._onMouseWheel)},ScrollComponent.prototype._onMouseWheel=function(event){var deltaX,deltaY,maxX,maxY,minX,minY,point,ref;if(deltaX=0,deltaY=0,this.scrollHorizontal&&(deltaX=event.wheelDeltaX),this.scrollVertical&&(deltaY=event.wheelDeltaY),0!==deltaX||0!==deltaY)return this._mouseWheelScrolling||(this._mouseWheelScrolling=!0,this.emit(Events.ScrollStart,event)),this.content.animateStop(),ref=this.content.draggable._calculateConstraints(this.content.draggable.constraints),minX=ref.minX,maxX=ref.maxX,minY=ref.minY,maxY=ref.maxY,point={x:Utils.clamp(this.content.x+deltaX*this.mouseWheelSpeedMultiplier,minX,maxX),y:Utils.clamp(this.content.y+deltaY*this.mouseWheelSpeedMultiplier,minY,maxY)},this.content.point=point,this.content.emit(Events.Move,point),this.emit(Events.Scroll,event),this._onMouseWheelEnd(event)},ScrollComponent.prototype._onMouseWheelEnd=Utils.debounce(.3,function(event){return this.emit(Events.ScrollEnd,event),this._mouseWheelScrolling=!1}),ScrollComponent.prototype.copy=function(){var contentLayer,copy;return copy=ScrollComponent.__super__.copy.apply(this,arguments),contentLayer=_.head(_.without(copy.children,copy.content)),copy.setContentLayer(contentLayer),copy.props=this.props,copy},ScrollComponent.wrap=function(layer,options){return wrapComponent(new this(options),layer,options)},ScrollComponent}(Layer),wrapComponent=function(instance,layer,options){var isPageComponent,ref,screenFrame,scroll,wrapper;if(null==options&&(options={correct:!0}),!(layer instanceof Layer))throw new Error("ScrollComponent.wrap expects a layer, not "+layer+". Are you sure the layer exists?");return scroll=instance,isPageComponent="PageComponent"===instance.constructor.name,options.correct===!0&&(0!==layer.children.length||isPageComponent||(wrapper=new Layer,wrapper.frame=layer.frame,layer.parent=wrapper,layer.x=layer.y=0,layer=wrapper)),scroll.frame=layer.frame,scroll.parent=layer.parent,scroll.index=layer.index,null==layer.name||isPageComponent||(scroll.name=layer.name),null==scroll.__framerInstanceInfo&&(scroll.__framerInstanceInfo={}),null!=(ref=scroll.__framerInstanceInfo)&&(ref.name=instance.constructor.name),layer.image&&!isPageComponent&&(scroll.image=layer.image,layer.image=null),isPageComponent?scroll.addPage(layer):scroll.setContentLayer(layer),options.correct===!0&&(screenFrame=scroll.screenFrame,screenFrame.x<Screen.width&&screenFrame.x+screenFrame.width>Screen.width&&(scroll.width=Screen.width-screenFrame.x),screenFrame.y<Screen.height&&screenFrame.y+screenFrame.height>Screen.height&&(scroll.height=Screen.height-screenFrame.y)),scroll}},function(module,exports,__webpack_require__){var Events,ScrollComponent,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};Events=__webpack_require__(15).Events,ScrollComponent=__webpack_require__(44).ScrollComponent,exports.PageComponent=function(superClass){function PageComponent(options){this._resetHistory=bind(this._resetHistory,this),this._scrollEnd=bind(this._scrollEnd,this),this._scrollMove=bind(this._scrollMove,this),this._scrollStart=bind(this._scrollStart,this),PageComponent.__super__.constructor.call(this,_.defaults(options,{animationOptions:{curve:"spring(500, 50, 0)"}})),this.content.draggable.momentum=!1,this.content.draggable.bounce=!1,this.content.on(Events.DragSessionStart,this._scrollStart),this.content.on(Events.DragSessionEnd,this._scrollEnd),this.content.on("change:frame",_.debounce(this._scrollMove,16)),this.content.on("change:children",this._resetHistory),this._resetHistory()}return extend(PageComponent,superClass),PageComponent.define("originX",PageComponent.simpleProperty("originX",.5)),PageComponent.define("originY",PageComponent.simpleProperty("originY",.5)),PageComponent.define("velocityThreshold",PageComponent.simpleProperty("velocityThreshold",.1)),PageComponent.define("closestPage",{get:function(){return this.closestContentLayerForScrollPoint(this._originScrollPoint(),this.originX,this.originY)}}),PageComponent.define("currentPage",{get:function(){return _.last(this._previousPages)}}),PageComponent.define("previousPage",{get:function(){return this._previousPages[this._previousPages.length-2]}}),PageComponent.prototype.nextPage=function(direction,currentPage,withoutCurrentPage){var layers,point;return null==direction&&(direction="right"),null==currentPage&&(currentPage=null),null==withoutCurrentPage&&(withoutCurrentPage=!0),null==currentPage&&(currentPage=this.currentPage),point={x:0,y:0},currentPage&&(point=Utils.framePointForOrigin(currentPage,this.originX,this.originY)),withoutCurrentPage||(point={x:this.scrollX+this.originX*this.width,y:this.scrollY+this.originY*this.height}),"up"!==direction&&"top"!==direction&&"north"!==direction||(layers=this.content.childrenAbove(point,this.originX,this.originY)),"down"!==direction&&"bottom"!==direction&&"south"!==direction||(layers=this.content.childrenBelow(point,this.originX,this.originY)),"left"!==direction&&"west"!==direction||(layers=this.content.childrenLeft(point,this.originX,this.originY)),"right"!==direction&&"east"!==direction||(layers=this.content.childrenRight(point,this.originX,this.originY)),withoutCurrentPage&&(layers=_.without(layers,currentPage)),layers=Utils.frameSortByAbsoluteDistance(point,layers,this.originX,this.originY),_.head(layers)},PageComponent.prototype.snapToPage=function(page,animate,animationOptions){if(null==animate&&(animate=!0),null==animationOptions&&(animationOptions=null),this.scrollToLayer(page,this.originX,this.originY,animate,animationOptions),this.currentPage!==page)return this._previousPages.push(page),this.emit("change:previousPage",this.previousPage),this.emit("change:currentPage",this.currentPage)},PageComponent.prototype.snapToNextPage=function(direction,animate,animationOptions){var nextPage;return null==direction&&(direction="right"),null==animate&&(animate=!0),null==animationOptions&&(animationOptions=null),null==animationOptions&&(animationOptions=this.animationOptions),nextPage=this.nextPage(direction),null==nextPage&&(nextPage=this.closestPage),this.snapToPage(nextPage,animate,animationOptions)},PageComponent.prototype.snapToPreviousPage=function(){if(this.previousPage)return this.snapToPage(this.previousPage),this._previousPages=this._previousPages.slice(0,+(this._previousPages.length-3)+1||9e9)},PageComponent.prototype.addPage=function(page,direction){var directions,point,ref;if(null==direction&&(direction="right"),directions=["down","bottom","south"]+["right","east"],ref=!direction,indexOf.call(directions,ref)>=0)throw direction="right",new Error(direction+" should be in "+directions);return point=page.point,this.content.children.length&&("right"!==direction&&"east"!==direction||(point.x=Utils.frameGetMaxX(this.content.contentFrame())),"down"!==direction&&"bottom"!==direction&&"south"!==direction||(point.y=Utils.frameGetMaxY(this.content.contentFrame()))),page.point=point,page.parent!==this.content?page.parent=this.content:this.updateContent()},PageComponent.prototype.horizontalPageIndex=function(page){return _.sortBy(this.content.children,function(l){return l.x}).indexOf(page)},PageComponent.prototype.verticalPageIndex=function(page){return _.sortBy(this.content.children,function(l){return l.y}).indexOf(page)},PageComponent.prototype._scrollStart=function(){return this._currentPage=this.currentPage},PageComponent.prototype._scrollMove=function(){var currentPage;if(currentPage=this.currentPage,currentPage!==_.last(this._previousPages)&&void 0!==currentPage)return this._previousPages.push(currentPage),this.emit("change:currentPage",{old:this.previousPage,new:currentPage})},PageComponent.prototype._scrollEnd=function(){var maximumVelocity,nextPage,velocity,xDisabled,xLock,yDisabled,yLock;if(!this.content.isAnimating)return velocity=this.content.draggable.velocity,xDisabled=!this.scrollHorizontal&&("right"===this.direction||"left"===this.direction),yDisabled=!this.scrollVertical&&("down"===this.direction||"up"===this.direction),xLock=this.content.draggable._directionLockEnabledX&&("right"===this.direction||"left"===this.direction),yLock=this.content.draggable._directionLockEnabledY&&("down"===this.direction||"up"===this.direction),maximumVelocity=Math.max(Math.abs(velocity.x),Math.abs(velocity.y)),maximumVelocity<this.velocityThreshold||xLock||yLock||xDisabled||yDisabled?this.snapToPage(this.closestPage,!0,this.animationOptions):(nextPage=this.nextPage(this.direction,this._currentPage,!1),null==nextPage&&(nextPage=this.closestPage),this.snapToPage(nextPage,!0,this.animationOptions))},PageComponent.prototype._originScrollPoint=function(){var scrollPoint;return scrollPoint=this.scrollPoint,scrollPoint.x+=this.width*this.originX,scrollPoint.y+=this.height*this.originY,scrollPoint},PageComponent.prototype._resetHistory=function(){return this._currentPage=this.closestPage,this._previousPages=[this._currentPage]},PageComponent}(ScrollComponent)},function(module,exports,__webpack_require__){var Events,Knob,Layer,Utils,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};Utils=__webpack_require__(4),Layer=__webpack_require__(13).Layer,Events=__webpack_require__(15).Events,Events.SliderValueChange="sliderValueChange",Knob=function(superClass){function Knob(options){Knob.__super__.constructor.call(this,options)}return extend(Knob,superClass),Knob.define("constrained",Knob.simpleProperty("constrained",!1)),Knob}(Layer),exports.SliderComponent=function(superClass){function SliderComponent(options){null==options&&(options={}),this._updateValue=bind(this._updateValue,this),this._knobDidMove=bind(this._knobDidMove,this),this._setRadius=bind(this._setRadius,this),this._updateFrame=bind(this._updateFrame,this),this._updateKnob=bind(this._updateKnob,this),this._updateFill=bind(this._updateFill,this),this._touchEnd=bind(this._touchEnd,this),this._touchStart=bind(this._touchStart,this),_.defaults(options,{backgroundColor:"#ccc",borderRadius:50,clip:!1,width:300,height:10,value:0,knobSize:30}),null==options.hitArea&&(options.hitArea=options.knobSize),this.knob=new Knob({backgroundColor:"#fff",shadowY:1,shadowBlur:3,shadowColor:"rgba(0, 0, 0, 0.35)",name:"knob"}),this.fill=new Layer({backgroundColor:"#333",width:0,force2d:!0,name:"fill"}),this.sliderOverlay=new Layer({backgroundColor:null,name:"sliderOverlay"}),SliderComponent.__super__.constructor.call(this,options),this.knobSize=options.knobSize,this.knob.parent=this.fill.parent=this.sliderOverlay.parent=this,this.width>this.height?this.fill.height=this.height:this.fill.width=this.width,this.fill.borderRadius=this.sliderOverlay.borderRadius=this.borderRadius,this.knob.draggable.enabled=!0,this.knob.draggable.overdrag=!1,this.knob.draggable.momentum=!0,this.knob.draggable.momentumOptions={friction:5,tolerance:.25},this.knob.draggable.bounce=!1,this.knob.borderRadius=this.knobSize/2,this._updateFrame(),this._updateKnob(),this._updateFill(),this.on("change:frame",this._updateFrame),this.on("change:borderRadius",this._setRadius),this.knob.on("change:size",this._updateKnob),this.knob.on("change:frame",this._updateFill),this.knob.on("change:frame",this._knobDidMove),this.sliderOverlay.on(Events.TapStart,this._touchStart),this.sliderOverlay.on(Events.TapEnd,this._touchEnd)}return extend(SliderComponent,superClass),SliderComponent.prototype._touchStart=function(event){var offsetX,offsetY;return event.preventDefault(),offsetX=this.min/this.canvasScaleX()-this.min,offsetY=this.min/this.canvasScaleY()-this.min,this.width>this.height?this.value=this.valueForPoint(Events.touchEvent(event).clientX-this.screenScaledFrame().x)/this.canvasScaleX()-offsetX:this.value=this.valueForPoint(Events.touchEvent(event).clientY-this.screenScaledFrame().y)/this.canvasScaleY()-offsetY,this.knob.draggable._touchStart(event),this._updateValue()},SliderComponent.prototype._touchEnd=function(event){return this._updateValue()},SliderComponent.prototype._updateFill=function(){return this.width>this.height?this.fill.width=this.knob.midX:this.fill.height=this.knob.midY},SliderComponent.prototype._updateKnob=function(){return this.width>this.height?(this.knob.midX=this.fill.width,this.knob.centerY()):(this.knob.midY=this.fill.height,this.knob.centerX())},SliderComponent.prototype._updateFrame=function(){return this.knob.draggable.constraints={x:-this.knob.width/2,y:-this.knob.height/2,width:this.width+this.knob.width,height:this.height+this.knob.height},this.knob.constrained&&(this.knob.draggable.constraints={x:0,y:0,width:this.width,height:this.height}),this.hitArea=this.hitArea,this.width>this.height?(this.fill.height=this.height,this.knob.midX=this.pointForValue(this.value),this.knob.centerY()):(this.fill.width=this.width,this.knob.midY=this.pointForValue(this.value),this.knob.centerX()),this.width>this.height?(this.knob.draggable.speedY=0,this.knob.draggable.speedX=1):(this.knob.draggable.speedX=0,this.knob.draggable.speedY=1),this.sliderOverlay.center()},SliderComponent.prototype._setRadius=function(){var radius;return radius=this.borderRadius,this.fill.style.borderRadius=radius+"px 0 0 "+radius+"px"},SliderComponent.define("knobSize",{get:function(){return this._knobSize},set:function(value){var isRound;return isRound=2*this.knob.borderRadius===this._knobSize,this._knobSize=value,this.knob.width=this._knobSize,this.knob.height=this._knobSize,isRound&&(this.knob.borderRadius=this._knobSize/2),this._updateFrame()}}),SliderComponent.define("hitArea",{get:function(){return this._hitArea},set:function(value){return this._hitArea=value,this.width>this.height?(this.sliderOverlay.width=this.width+this.hitArea,this.sliderOverlay.height=this.hitArea):(this.sliderOverlay.width=this.hitArea,this.sliderOverlay.height=this.height+this.hitArea)}}),SliderComponent.define("min",{get:function(){return this._min||0},set:function(value){return this._min=value}}),SliderComponent.define("max",{get:function(){return this._max||1},set:function(value){return this._max=value}}),SliderComponent.define("value",{get:function(){return this._value},set:function(value){return this._value=Utils.clamp(value,this.min,this.max),this.width>this.height?this.knob.midX=this.pointForValue(value):this.knob.midY=this.pointForValue(value),this._updateFill(),this._updateValue()}}),SliderComponent.prototype._knobDidMove=function(){return this.width>this.height?this.value=this.valueForPoint(this.knob.midX):this.value=this.valueForPoint(this.knob.midY)},SliderComponent.prototype._updateValue=function(){if(this._lastUpdatedValue!==this.value)return this._lastUpdatedValue=this.value,this.emit("change:value",this.value),this.emit(Events.SliderValueChange,this.value)},SliderComponent.prototype.pointForValue=function(value){ | |
return this.width>this.height?this.knob.constrained?Utils.modulate(value,[this.min,this.max],[0+this.knob.width/2,this.width-this.knob.width/2],!0):Utils.modulate(value,[this.min,this.max],[0,this.width],!0):this.knob.constrained?Utils.modulate(value,[this.min,this.max],[0+this.knob.height/2,this.height-this.knob.height/2],!0):Utils.modulate(value,[this.min,this.max],[0,this.height],!0)},SliderComponent.prototype.valueForPoint=function(value){return this.width>this.height?this.knob.constrained?Utils.modulate(value,[0+this.knob.width/2,this.width-this.knob.width/2],[this.min,this.max],!0):Utils.modulate(value,[0,this.width],[this.min,this.max],!0):this.knob.constrained?Utils.modulate(value,[0+this.knob.height/2,this.height-this.knob.height/2],[this.min,this.max],!0):Utils.modulate(value,[0,this.height],[this.min,this.max],!0)},SliderComponent.prototype.animateToValue=function(value,animationOptions){return null==animationOptions&&(animationOptions={curve:"spring(300, 25, 0)"}),this.width>this.height?animationOptions.properties={x:this.pointForValue(value)-this.knob.width/2}:animationOptions.properties={y:this.pointForValue(value)-this.knob.height/2},this.knob.animate(animationOptions)},SliderComponent.prototype.onValueChange=function(cb){return this.on(Events.SliderValueChange,cb)},SliderComponent}(Layer)},function(module,exports,__webpack_require__){var AppleIMac,AppleMacBook,AppleMacBookAir,AppleMacBookPro,AppleWatch38BlackLeatherDevice,AppleWatch38Device,AppleWatch42Device,AppleWatchSeries238Device,AppleWatchSeries242Device,BaseClass,BuiltInDevices,Defaults,DellXPS,Devices,Events,HTCa9BaseDevice,HTCm8BaseDevice,Layer,MSFTLumia950BaseDevice,Nexus4BaseDevice,Nexus5BaseDevice,Nexus6BaseDevice,Nexus9BaseDevice,PixelBaseDevice,SamsungGalaxyNote5BaseDevice,SonyW85OC,Utils,_,desktopReleaseVersion,googlePixelReleaseVersion,iPadAir2BaseDevice,iPadMini4BaseDevice,iPadProBaseDevice,iPhone5BaseDevice,iPhone5CBaseDevice,iPhone6BaseDevice,iPhone6PlusBaseDevice,iPhone7BaseDevice,iPhone7PlusBaseDevice,newDeviceMinVersion,oldDeviceMaxVersion,old_AppleWatch38Device,old_AppleWatch42Device,old_Nexus5BaseDevice,old_Nexus5BaseDeviceHand,old_Nexus9BaseDevice,old_iPadAirBaseDevice,old_iPadAirBaseDeviceHand,old_iPadMiniBaseDevice,old_iPadMiniBaseDeviceHand,old_iPhone5BaseDevice,old_iPhone5BaseDeviceHand,old_iPhone5CBaseDevice,old_iPhone5CBaseDeviceHand,old_iPhone6BaseDevice,old_iPhone6BaseDeviceHand,old_iPhone6PlusBaseDevice,old_iPhone6PlusBaseDeviceHand,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};Utils=__webpack_require__(4),_=__webpack_require__(1)._,BaseClass=__webpack_require__(6).BaseClass,Layer=__webpack_require__(13).Layer,Defaults=__webpack_require__(17).Defaults,Events=__webpack_require__(15).Events,exports.DeviceComponent=function(superClass){function DeviceComponent(options){var defaults;null==options&&(options={}),this._orientationChange=bind(this._orientationChange,this),this._viewportOrientationOffset=bind(this._viewportOrientationOffset,this),this._updateDeviceImage=bind(this._updateDeviceImage,this),this.customize=bind(this.customize,this),this._update=bind(this._update,this),defaults=Defaults.getDefaults("DeviceComponent",options),Framer.Defaults.hasOwnProperty("DeviceView")&&(defaults=_.extend(defaults,Framer.Defaults.DeviceView)),this._setup(),this.animationOptions=defaults.animationOptions,this.deviceType=defaults.deviceType,_.extend(this,_.defaults(options,defaults)),this.Type={Tablet:"tablet",Phone:"phone",Computer:"computer"}}return extend(DeviceComponent,superClass),DeviceComponent.define("context",{get:function(){return this._context}}),DeviceComponent.prototype._setup=function(){var i,layer,len,ref;if(!this._setupDone){for(this._setupDone=!0,this.background=new Layer,this.background.clip=!0,this.background.backgroundColor="transparent",this.background.classList.add("DeviceBackground"),this.hands=new Layer,this.handsImageLayer=new Layer({parent:this.hands}),this.phone=new Layer({parent:this.hands}),this.screen=new Layer({parent:this.phone}),this.viewport=new Layer({parent:this.screen}),this.content=new Layer({parent:this.viewport}),this.hands.backgroundColor="transparent",this.hands._alwaysUseImageCache=!0,this.handsImageLayer.backgroundColor="transparent",this.phone.backgroundColor="transparent",this.phone.classList.add("DevicePhone"),this.screen.classList.add("DeviceScreen"),this.screen.clip=!0,this.viewport.backgroundColor="transparent",this.viewport.classList.add("DeviceComponentPort"),this.content.backgroundColor="transparent",this.content.classList.add("DeviceContent"),this.content.originX=0,this.content.originY=0,Utils.isMobile()||Framer.CurrentContext.domEventManager.wrap(window).addEventListener("resize",this._update),Utils.isMobile()&&Framer.CurrentContext.domEventManager.wrap(window).addEventListener("resize",this._orientationChange),ref=[this.background,this.phone,this.viewport,this.content,this.screen],i=0,len=ref.length;i<len;i++)layer=ref[i],layer.on("touchmove",function(event){return event.preventDefault()});return this._context=new Framer.Context({parent:this.content,name:"DeviceScreen"}),this._context.perspective=1200,this._context.device=this}},DeviceComponent.prototype._update=function(){var backgroundOverlap,contentScaleFactor,height,i,layer,len,ref,ref1,width;if(contentScaleFactor=this.contentScale,contentScaleFactor>1&&(contentScaleFactor=1),this._shouldRenderFullScreen()){for(width=window.innerWidth/contentScaleFactor,height=window.innerHeight/contentScaleFactor,ref=[this.background,this.hands,this.phone,this.viewport,this.content,this.screen],i=0,len=ref.length;i<len;i++)layer=ref[i],layer.x=layer.y=0,layer.width=width,layer.height=height,layer.scale=1;return this.content.scale=contentScaleFactor}if(backgroundOverlap=100,this.background.x=0-backgroundOverlap,this.background.y=0-backgroundOverlap,this.background.width=window.innerWidth+2*backgroundOverlap,this.background.height=window.innerHeight+2*backgroundOverlap,this._updateDeviceImage(),this.hands.scale=this._calculatePhoneScale(),this.hands.center(),this.phone.center(),ref1=this._getOrientationDimensions(this._device.screenWidth/contentScaleFactor,this._device.screenHeight/contentScaleFactor),width=ref1[0],height=ref1[1],this.screen.width=this.viewport.width=this._device.screenWidth,this.screen.height=this.viewport.height=this._device.screenHeight,this.content.width=width,this.content.height=height,this.screen.center(),this.selectedHand&&0===this._orientation)return this.setHand(this.selectedHand)},DeviceComponent.prototype._shouldRenderFullScreen=function(){return!this._device||(this.fullScreen===!0||("fullscreen"===this.deviceType||!Utils.isInsideIframe()&&("phone"===Utils.deviceType()&&Utils.deviceType()===this._device.deviceType||("tablet"===Utils.deviceType()&&Utils.deviceType()===this._device.deviceType||("phone"===Utils.deviceType()&&"tablet"===this._device.deviceType||this._device.screenWidth===Canvas.width&&this._device.screenHeight===Canvas.height)))))},DeviceComponent.prototype.setupContext=function(){return Framer.CurrentContext=this._context},DeviceComponent.define("fullScreen",{get:function(){return this._fullScreen},set:function(fullScreen){return this._setFullScreen(fullScreen)}}),DeviceComponent.prototype._setFullScreen=function(fullScreen){if("fullscreen"!==this._deviceType&&_.isBoolean(fullScreen)&&fullScreen!==this._fullScreen)return this._fullScreen=fullScreen,fullScreen===!0?(this.phone.image="",this.hands.image=""):this._updateDeviceImage(),this._update(),this.emit("change:fullScreen")},DeviceComponent.define("screenSize",{get:function(){var size;return this._shouldRenderFullScreen()?Canvas.size:size=this.isLandscape?{width:this._device.screenHeight,height:this._device.screenWidth}:{width:this._device.screenWidth,height:this._device.screenHeight}}}),DeviceComponent.prototype.customize=function(deviceProps){return Devices.custom=_.defaults(deviceProps,Devices.custom),this.deviceType="custom"},DeviceComponent.define("deviceType",{get:function(){return this._deviceType},set:function(deviceType){var device,i,key,lDevicetype,lKey,len,ref,shouldZoomToFit;if(deviceType!==this._deviceType||"custom"===deviceType){if(device=null,_.isString(deviceType))for(lDevicetype=deviceType.toLowerCase(),ref=_.keys(Devices),i=0,len=ref.length;i<len;i++)key=ref[i],lKey=key.toLowerCase(),lDevicetype===lKey&&(device=Devices[key]);if(!device)throw Error("No device named "+deviceType+". Options are: "+_.keys(Devices));if(this._device!==device)return shouldZoomToFit="fullscreen"===this._deviceType,this.screen.backgroundColor="black",null!=device.backgroundColor&&(this.screen.backgroundColor=device.backgroundColor),"computer"===device.deviceType&&Utils.domComplete(function(){return document.body.style.cursor="auto"}),this._device=_.clone(device),this._deviceType=deviceType,this.fullscreen=!1,this._updateDeviceImage(),this._update(),this.emit("change:deviceType"),this.viewport.point=this._viewportOrientationOffset(),shouldZoomToFit?this.deviceScale="fit":void 0}}}),DeviceComponent.prototype._updateDeviceImage=function(){if(!/PhantomJS/.test(navigator.userAgent))return this._shouldRenderFullScreen()?(this.phone.image="",this.hands.image=""):this._deviceImageUrl(this._deviceImageName())?(this.phone._alwaysUseImageCache=!0,this.phone.image=this._deviceImageUrl(this._deviceImageName()),this.phone.width=this._device.deviceImageWidth,this.phone.height=this._device.deviceImageHeight,this.hands.width=this.phone.width,this.hands.height=this.phone.height):this.phone.image=""},DeviceComponent.prototype._deviceImageName=function(){return this._device.hasOwnProperty("deviceImage")?this._device.deviceImage:this._deviceType+".png"},DeviceComponent.prototype._deviceImageUrl=function(name){var ref,resourceUrl;if(!name)return null;if(_.startsWith(name,"http://")||_.startsWith(name,"https://"))return name;if(ref=this._deviceType,indexOf.call(BuiltInDevices,ref)<0||"custom"===this._deviceType)return name;if(resourceUrl="//resources.framerjs.com/static/DeviceResources",Utils.isFileUrl(window.location.href)&&(resourceUrl="http:"+resourceUrl),Utils.isFramerStudio()&&window.FramerStudioInfo&&(this._device.minStudioVersion&&Utils.framerStudioVersion()>=this._device.minStudioVersion||!this._device.minStudioVersion)&&(this._device.maxStudioVersion&&Utils.framerStudioVersion()<=this._device.maxStudioVersion||!this._device.maxStudioVersion))return resourceUrl=window.FramerStudioInfo.deviceImagesUrl,resourceUrl+"/"+name.replace(".png",".jp2");if(this._device.deviceImageCompression===!0){if(Utils.isWebPSupported())return resourceUrl+"/"+name.replace(".png",".webp");if(Utils.isJP2Supported())return resourceUrl+"/"+name.replace(".png",".jp2")}return resourceUrl+"/"+name},DeviceComponent.define("deviceScale",{get:function(){return this._shouldRenderFullScreen()?1:this._deviceScale||1},set:function(deviceScale){return this.setDeviceScale(deviceScale,!1)}}),DeviceComponent.prototype.setDeviceScale=function(deviceScale,animate){var phoneScale;if(null==animate&&(animate=!1),deviceScale="fit"===deviceScale||deviceScale<0?"fit":parseFloat(deviceScale),deviceScale!==this._deviceScale&&(this._deviceScale=deviceScale,!this._shouldRenderFullScreen()))return phoneScale="fit"===deviceScale?this._calculatePhoneScale():deviceScale,this.hands.animateStop(),animate?this.hands.animate(_.extend(this.animationOptions,{properties:{scale:phoneScale}})):(this.hands.scale=phoneScale,this.hands.center()),this.emit("change:deviceScale")},DeviceComponent.prototype._calculatePhoneScale=function(){var height,paddingOffset,phoneScale,ref,ref1,width;return ref=this._getOrientationDimensions(this.phone.width,this.phone.height),width=ref[0],height=ref[1],paddingOffset=(null!=(ref1=this._device)?ref1.paddingOffset:void 0)||0,phoneScale=_.min([(window.innerWidth-2*(this.padding+paddingOffset))/width,(window.innerHeight-2*(this.padding+paddingOffset))/height]),phoneScale>1&&(phoneScale=1),this.emit("change:phoneScale",phoneScale),this._deviceScale&&"fit"!==this._deviceScale?this._deviceScale:phoneScale},DeviceComponent.define("contentScale",{get:function(){return this._contentScale||1},set:function(contentScale){return this.setContentScale(contentScale,!1)}}),DeviceComponent.prototype.setContentScale=function(contentScale,animate){if(null==animate&&(animate=!1),contentScale=parseFloat(contentScale),!(contentScale<=0)&&contentScale!==this._contentScale)return this._contentScale=contentScale,animate?this.content.animate(_.extend(this.animationOptions,{properties:{scale:this._contentScale}})):this.content.scale=this._contentScale,this._update(),this.emit("change:contentScale")},DeviceComponent.define("orientation",{get:function(){return Utils.isMobile()?window.orientation:this._orientation||0},set:function(orientation){return this.setOrientation(orientation,!1)}}),DeviceComponent.prototype.setOrientation=function(orientation,animate){var animation,contentProperties,phoneProperties;if(null==animate&&(animate=!1),Utils.framerStudioVersion()===oldDeviceMaxVersion&&(orientation*=-1),"portrait"===orientation&&(orientation=0),"landscape"===orientation&&(orientation=90),!this._shouldRenderFullScreen()&&(orientation=parseInt(orientation),(0===orientation||90===orientation||orientation===-90)&&orientation!==this._orientation))return this._orientation=orientation,phoneProperties={rotationZ:-this._orientation,scale:this._calculatePhoneScale()},contentProperties=this._viewportOrientationOffset(),this.hands.animateStop(),this.viewport.animateStop(),animate?(animation=this.hands.animate(_.extend(this.animationOptions,{properties:phoneProperties})),this.viewport.animate(_.extend(this.animationOptions,{properties:contentProperties})),animation.on(Events.AnimationEnd,function(_this){return function(){return _this._update()}}(this))):(this.hands.props=phoneProperties,this.viewport.props=contentProperties,this._update()),0!==this._orientation&&(this.handsImageLayer.image=""),this.emit("change:orientation",this._orientation)},DeviceComponent.prototype._viewportOrientationOffset=function(){var contentProperties,height,offset,ref,ref1,width,x,y;return ref=this._getOrientationDimensions(this._device.screenWidth,this._device.screenHeight),width=ref[0],height=ref[1],this.content.width=width,this.content.height=height,offset=(this.screen.width-width)/2,this._orientation===-90&&(offset*=-1),ref1=[0,0],x=ref1[0],y=ref1[1],this.isLandscape&&(x=offset,y=offset),contentProperties={rotationZ:this._orientation,x:x,y:y}},DeviceComponent.prototype._orientationChange=function(){return this._orientation=window.orientation,this._update(),this.emit("change:orientation",window.orientation)},DeviceComponent.define("isPortrait",{get:function(){return Math.abs(this.orientation)%180===0}}),DeviceComponent.define("isLandscape",{get:function(){return!this.isPortrait}}),DeviceComponent.define("orientationName",{get:function(){return this.isPortrait?"portrait":this.isLandscape?"landscape":void 0},set:function(orientationName){return this.setOrientation(orientationName,!1)}}),DeviceComponent.prototype.rotateLeft=function(animate){if(null==animate&&(animate=!0),90!==this.orientation)return this.setOrientation(this.orientation+90,animate)},DeviceComponent.prototype.rotateRight=function(animate){if(null==animate&&(animate=!0),this.orientation!==-90)return this.setOrientation(this.orientation-90,animate)},DeviceComponent.prototype._getOrientationDimensions=function(width,height){return this.isLandscape?[height,width]:[width,height]},DeviceComponent.prototype.handSwitchingSupported=function(){return void 0!==this._device.hands},DeviceComponent.prototype.nextHand=function(){var hand,hands,nextHand,nextHandIndex;if(0===this.hands.rotationZ)return!!(this.handSwitchingSupported()&&(hands=_.keys(this._device.hands),hands.length>0))&&(nextHandIndex=hands.indexOf(this.selectedHand)+1,nextHand="",nextHandIndex<hands.length&&(nextHand=hands[nextHandIndex]),hand=this.setHand(nextHand),this._update(),hand)},DeviceComponent.prototype.setHand=function(hand){var handData;return this.selectedHand=hand,hand&&this.handSwitchingSupported()?(handData=this._device.hands[hand],handData?(this.hands.width=handData.width,this.hands.height=handData.height,this.hands.center(),this.phone.center(),this.handsImageLayer.size=this.hands.size,this.handsImageLayer.y=0,handData.offset&&(this.handsImageLayer.y=handData.offset),this.handsImageLayer.image=this.handImageUrl(hand),hand):void 0):this.handsImageLayer.image=""},DeviceComponent.prototype.handImageUrl=function(hand){var resourceUrl;return resourceUrl="//resources.framerjs.com/static/DeviceResources",Utils.isFileUrl(window.location.href)&&(resourceUrl="http://"+resourceUrl),Utils.isFramerStudio()&&window.FramerStudioInfo&&Utils.framerStudioVersion()>=newDeviceMinVersion?(resourceUrl=window.FramerStudioInfo.deviceImagesUrl,resourceUrl+"/"+hand+".png"):Utils.isWebPSupported()?resourceUrl+"/"+hand+".webp":Utils.isJP2Supported()?resourceUrl+"/"+hand+".jp2":resourceUrl+"/"+hand+".png"},DeviceComponent.prototype.toInspect=function(){return"<Device '"+this.deviceType+"' "+this.screenSize.width+"x"+this.screenSize.height+">"},DeviceComponent}(BaseClass),googlePixelReleaseVersion=75,desktopReleaseVersion=70,newDeviceMinVersion=53,oldDeviceMaxVersion=52,iPadAir2BaseDevice={deviceImageWidth:1856,deviceImageHeight:2608,deviceImageCompression:!0,screenWidth:1536,screenHeight:2048,deviceType:"tablet",minStudioVersion:newDeviceMinVersion},iPadMini4BaseDevice={deviceImageWidth:1936,deviceImageHeight:2688,deviceImageCompression:!0,screenWidth:1536,screenHeight:2048,deviceType:"tablet",minStudioVersion:newDeviceMinVersion},iPadProBaseDevice={deviceImageWidth:2448,deviceImageHeight:3432,deviceImageCompression:!0,screenWidth:2048,screenHeight:2732,deviceType:"tablet",minStudioVersion:newDeviceMinVersion},iPhone7BaseDevice={deviceImageWidth:874,deviceImageHeight:1792,deviceImageCompression:!0,screenWidth:750,screenHeight:1334,deviceType:"phone",minStudioVersion:71,hands:{"iphone-hands-2":{width:2400,height:3740},"iphone-hands-1":{width:2400,height:3740}}},iPhone7PlusBaseDevice={deviceImageWidth:1452,deviceImageHeight:2968,deviceImageCompression:!0,screenWidth:1242,screenHeight:2208,deviceType:"phone",minStudioVersion:71,hands:{"iphone-hands-2":{width:3987,height:6212},"iphone-hands-1":{width:3987,height:6212}}},iPhone6BaseDevice={deviceImageWidth:874,deviceImageHeight:1792,deviceImageCompression:!0,screenWidth:750,screenHeight:1334,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:2400,height:3740},"iphone-hands-1":{width:2400,height:3740}}},iPhone6PlusBaseDevice={deviceImageWidth:1452,deviceImageHeight:2968,deviceImageCompression:!0,screenWidth:1242,screenHeight:2208,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:3987,height:6212},"iphone-hands-1":{width:3987,height:6212}}},iPhone5BaseDevice={deviceImageWidth:768,deviceImageHeight:1612,deviceImageCompression:!0,screenWidth:640,screenHeight:1136,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:2098,height:3269,offset:19},"iphone-hands-1":{width:2098,height:3269,offset:19}}},iPhone5CBaseDevice={deviceImageWidth:776,deviceImageHeight:1620,deviceImageCompression:!0,screenWidth:640,screenHeight:1136,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:2098,height:3269,offset:28},"iphone-hands-1":{width:2098,height:3269,offset:28}}},Nexus4BaseDevice={deviceImageWidth:860,deviceImageHeight:1668,deviceImageCompression:!0,screenWidth:768,screenHeight:1280,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:2362,height:3681,offset:-52},"iphone-hands-1":{width:2362,height:3681,offset:-52}}},Nexus5BaseDevice={deviceImageWidth:1204,deviceImageHeight:2432,deviceImageCompression:!0,screenWidth:1080,screenHeight:1920,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:3292,height:5130,offset:8},"iphone-hands-1":{width:3292,height:5130,offset:8}}},Nexus6BaseDevice={deviceImageWidth:1576,deviceImageHeight:3220,deviceImageCompression:!0,screenWidth:1440,screenHeight:2560,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:4304,height:6707,offset:8},"iphone-hands-1":{width:4304,height:6707,offset:8}}},PixelBaseDevice={deviceImageWidth:1224,deviceImageHeight:2492,deviceImageCompression:!0,screenWidth:1080,screenHeight:1920,deviceType:"phone",minStudioVersion:googlePixelReleaseVersion,hands:{"iphone-hands-2":{width:3344,height:5211,offset:23},"iphone-hands-1":{width:3344,height:5211,offset:23}}},Nexus9BaseDevice={deviceImageWidth:1896,deviceImageHeight:2648,deviceImageCompression:!0,screenWidth:1536,screenHeight:2048,deviceType:"tablet",minStudioVersion:newDeviceMinVersion},HTCa9BaseDevice={deviceImageWidth:1252,deviceImageHeight:2592,deviceImageCompression:!0,screenWidth:1080,screenHeight:1920,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:3436,height:5354,offset:36},"iphone-hands-1":{width:3436,height:5354,offset:36}}},HTCm8BaseDevice={deviceImageWidth:1232,deviceImageHeight:2572,deviceImageCompression:!0,screenWidth:1080,screenHeight:1920,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:3436,height:5354,offset:12},"iphone-hands-1":{width:3436,height:5354,offset:12}}},MSFTLumia950BaseDevice={deviceImageWidth:1660,deviceImageHeight:3292,deviceImageCompression:!0,screenWidth:1440,screenHeight:2560,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:4494,height:7003,offset:-84},"iphone-hands-1":{width:4494,height:7003,offset:-84}}},SamsungGalaxyNote5BaseDevice={deviceImageWidth:1572,deviceImageHeight:3140,deviceImageCompression:!0,screenWidth:1440,screenHeight:2560,deviceType:"phone",minStudioVersion:newDeviceMinVersion,hands:{"iphone-hands-2":{width:4279,height:6668,offset:-24},"iphone-hands-1":{width:4279,height:6668,offset:-84}}},AppleWatchSeries242Device={deviceImageWidth:512,deviceImageHeight:990,deviceImageCompression:!0,screenWidth:312,screenHeight:390,minStudioVersion:71},AppleWatchSeries238Device={deviceImageWidth:472,deviceImageHeight:772,deviceImageCompression:!0,screenWidth:272,screenHeight:340,minStudioVersion:71},AppleWatch42Device={deviceImageWidth:512,deviceImageHeight:990,deviceImageCompression:!0,screenWidth:312,screenHeight:390,minStudioVersion:newDeviceMinVersion},AppleWatch38Device={deviceImageWidth:472,deviceImageHeight:772,deviceImageCompression:!0,screenWidth:272,screenHeight:340,minStudioVersion:newDeviceMinVersion},AppleWatch38BlackLeatherDevice={deviceImageWidth:472,deviceImageHeight:796,deviceImageCompression:!0,screenWidth:272,screenHeight:340,minStudioVersion:newDeviceMinVersion},AppleMacBook={deviceImageWidth:3084,deviceImageHeight:1860,deviceImageCompression:!0,screenWidth:2304,screenHeight:1440,deviceType:"computer",minStudioVersion:desktopReleaseVersion},AppleMacBookAir={deviceImageWidth:2e3,deviceImageHeight:1220,deviceImageCompression:!0,screenWidth:1440,screenHeight:900,deviceType:"computer",minStudioVersion:desktopReleaseVersion},AppleMacBookPro={deviceImageWidth:3820,deviceImageHeight:2320,deviceImageCompression:!0,screenWidth:2880,screenHeight:1800,deviceType:"computer",minStudioVersion:desktopReleaseVersion},AppleIMac={deviceImageWidth:2800,deviceImageHeight:2940,deviceImageCompression:!0,screenWidth:2560,screenHeight:1440,deviceType:"computer",minStudioVersion:desktopReleaseVersion},DellXPS={deviceImageWidth:5200,deviceImageHeight:3040,deviceImageCompression:!0,screenWidth:3840,screenHeight:2160,deviceType:"computer",minStudioVersion:desktopReleaseVersion},SonyW85OC={deviceImageWidth:1320,deviceImageHeight:860,deviceImageCompression:!0,screenWidth:1280,screenHeight:720,minStudioVersion:desktopReleaseVersion},old_iPhone6BaseDevice={deviceImageWidth:870,deviceImageHeight:1738,deviceImageCompression:!0,screenWidth:750,screenHeight:1334,deviceType:"phone",maxStudioVersion:oldDeviceMaxVersion},old_iPhone6BaseDeviceHand=_.extend({},old_iPhone6BaseDevice,{deviceImageWidth:1988,deviceImageHeight:2368,deviceImageCompression:!0,paddingOffset:-150,maxStudioVersion:oldDeviceMaxVersion}),old_iPhone6PlusBaseDevice={deviceImageWidth:1460,deviceImageHeight:2900,deviceImageCompression:!0,screenWidth:1242,screenHeight:2208,deviceType:"phone",maxStudioVersion:oldDeviceMaxVersion},old_iPhone6PlusBaseDeviceHand=_.extend({},old_iPhone6PlusBaseDevice,{deviceImageWidth:3128,deviceImageHeight:3487,deviceImageCompression:!0,paddingOffset:-150,maxStudioVersion:oldDeviceMaxVersion}),old_iPhone5BaseDevice={deviceImageWidth:780,deviceImageHeight:1608,deviceImageCompression:!0,screenWidth:640,screenHeight:1136,deviceType:"phone",maxStudioVersion:oldDeviceMaxVersion},old_iPhone5BaseDeviceHand=_.extend({},old_iPhone5BaseDevice,{deviceImageWidth:1884,deviceImageHeight:2234,deviceImageCompression:!0,paddingOffset:-200,maxStudioVersion:oldDeviceMaxVersion}),old_iPhone5CBaseDevice={deviceImageWidth:776,deviceImageHeight:1612,deviceImageCompression:!0,screenWidth:640,screenHeight:1136,deviceType:"phone",maxStudioVersion:oldDeviceMaxVersion},old_iPhone5CBaseDeviceHand=_.extend({},old_iPhone5CBaseDevice,{deviceImageWidth:1894,deviceImageHeight:2244,deviceImageCompression:!0,paddingOffset:-200,maxStudioVersion:oldDeviceMaxVersion}),old_iPadMiniBaseDevice={deviceImageWidth:872,deviceImageHeight:1292,deviceImageCompression:!0,screenWidth:768,screenHeight:1024,deviceType:"tablet",maxStudioVersion:oldDeviceMaxVersion},old_iPadMiniBaseDeviceHand=_.extend({},old_iPadMiniBaseDevice,{deviceImageWidth:1380,deviceImageHeight:2072,deviceImageCompression:!0,paddingOffset:-120,maxStudioVersion:oldDeviceMaxVersion}),old_iPadAirBaseDevice={deviceImageWidth:1769,deviceImageHeight:2509,deviceImageCompression:!0,screenWidth:1536,screenHeight:2048,deviceType:"tablet",maxStudioVersion:oldDeviceMaxVersion},old_iPadAirBaseDeviceHand=_.extend({},old_iPadAirBaseDevice,{deviceImageWidth:4744,deviceImageHeight:4101,deviceImageCompression:!0,paddingOffset:-120,maxStudioVersion:oldDeviceMaxVersion}),old_Nexus5BaseDevice={deviceImageWidth:1208,deviceImageHeight:2440,deviceImageCompression:!0,screenWidth:1080,screenHeight:1920,deviceType:"phone",maxStudioVersion:oldDeviceMaxVersion},old_Nexus5BaseDeviceHand=_.extend({},old_Nexus5BaseDevice,{deviceImageWidth:2692,deviceImageHeight:2996,deviceImageCompression:!0,paddingOffset:-120,maxStudioVersion:oldDeviceMaxVersion}),old_Nexus9BaseDevice={deviceImageWidth:1733,deviceImageHeight:2575,deviceImageCompression:!0,screenWidth:1536,screenHeight:2048,deviceType:"tablet",maxStudioVersion:oldDeviceMaxVersion},old_AppleWatch42Device={deviceImageWidth:552,deviceImageHeight:938,deviceImageCompression:!0,screenWidth:312,screenHeight:390,maxStudioVersion:oldDeviceMaxVersion},old_AppleWatch38Device={deviceImageWidth:508,deviceImageHeight:900,deviceImageCompression:!0,screenWidth:272,screenHeight:340,maxStudioVersion:oldDeviceMaxVersion},Devices={fullscreen:{name:"Fullscreen",deviceType:"desktop",backgroundColor:"transparent"},custom:{name:"Custom",deviceImageWidth:874,deviceImageHeight:1792,screenWidth:750,screenHeight:1334,deviceType:"phone"},"apple-ipad-air-2-silver":_.clone(iPadAir2BaseDevice),"apple-ipad-air-2-gold":_.clone(iPadAir2BaseDevice),"apple-ipad-air-2-space-gray":_.clone(iPadAir2BaseDevice),"apple-ipad-mini-4-silver":_.clone(iPadMini4BaseDevice),"apple-ipad-mini-4-gold":_.clone(iPadMini4BaseDevice),"apple-ipad-mini-4-space-gray":_.clone(iPadMini4BaseDevice),"apple-ipad-pro-silver":_.clone(iPadProBaseDevice),"apple-ipad-pro-gold":_.clone(iPadProBaseDevice),"apple-ipad-pro-space-gray":_.clone(iPadProBaseDevice),"apple-iphone-7-gold":_.clone(iPhone7BaseDevice),"apple-iphone-7-rose-gold":_.clone(iPhone7BaseDevice),"apple-iphone-7-silver":_.clone(iPhone7BaseDevice),"apple-iphone-7-black":_.clone(iPhone7BaseDevice),"apple-iphone-7-jet-black":_.clone(iPhone7BaseDevice),"apple-iphone-7-plus-gold":_.clone(iPhone7PlusBaseDevice),"apple-iphone-7-plus-rose-gold":_.clone(iPhone7PlusBaseDevice),"apple-iphone-7-plus-silver":_.clone(iPhone7PlusBaseDevice),"apple-iphone-7-plus-black":_.clone(iPhone7PlusBaseDevice),"apple-iphone-7-plus-jet-black":_.clone(iPhone7PlusBaseDevice),"apple-iphone-6s-gold":_.clone(iPhone6BaseDevice),"apple-iphone-6s-rose-gold":_.clone(iPhone6BaseDevice),"apple-iphone-6s-silver":_.clone(iPhone6BaseDevice),"apple-iphone-6s-space-gray":_.clone(iPhone6BaseDevice),"apple-iphone-6s-plus-gold":_.clone(iPhone6PlusBaseDevice),"apple-iphone-6s-plus-rose-gold":_.clone(iPhone6PlusBaseDevice),"apple-iphone-6s-plus-silver":_.clone(iPhone6PlusBaseDevice),"apple-iphone-6s-plus-space-gray":_.clone(iPhone6PlusBaseDevice),"apple-iphone-5s-gold":_.clone(iPhone5BaseDevice),"apple-iphone-5s-silver":_.clone(iPhone5BaseDevice),"apple-iphone-5s-space-gray":_.clone(iPhone5BaseDevice),"apple-iphone-5c-blue":_.clone(iPhone5CBaseDevice),"apple-iphone-5c-green":_.clone(iPhone5CBaseDevice),"apple-iphone-5c-red":_.clone(iPhone5CBaseDevice),"apple-iphone-5c-white":_.clone(iPhone5CBaseDevice),"apple-iphone-5c-yellow":_.clone(iPhone5CBaseDevice),"apple-watch-series-2-38mm-black-steel-black":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-edition":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-rose-gold-aluminum-midnight-blue":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-cocoa":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-concrete":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-ocean-blue":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-red":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-turquoise":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-white":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-silver-aluminum-yellow":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-space-gray-aluminum-black":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-sport-aluminum-walnut":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-38mm-steel-white":_.clone(AppleWatchSeries238Device),"apple-watch-series-2-42mm-edition":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-gold-aluminum-cocoa":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-rose-gold-aluminum-midnight-blue":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-concrete":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-green":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-light-pink":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-ocean-blue":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-pink-sand":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-red":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-turquoise":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-white":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-silver-aluminum-yellow":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-space-black-steel-black":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-space-gray-aluminum-black":_.clone(AppleWatchSeries242Device),"apple-watch-series-2-42mm-steel-white":_.clone(AppleWatchSeries242Device),"apple-watch-nike-plus-38mm-silver-aluminum-flat-silver-volt":_.clone(AppleWatchSeries238Device), | |
"apple-watch-nike-plus-38mm-silver-aluminum-flat-silver-white":_.clone(AppleWatchSeries238Device),"apple-watch-nike-plus-38mm-space-gray-aluminum-black-cool-gray":_.clone(AppleWatchSeries238Device),"apple-watch-nike-plus-38mm-space-gray-aluminum-black-volt":_.clone(AppleWatchSeries238Device),"apple-watch-nike-plus-42mm-silver-aluminum-flat-silver-volt":_.clone(AppleWatchSeries242Device),"apple-watch-nike-plus-42mm-silver-aluminum-flat-silver-white":_.clone(AppleWatchSeries242Device),"apple-watch-nike-plus-42mm-space-gray-aluminum-black-cool-gray":_.clone(AppleWatchSeries242Device),"apple-watch-nike-plus-42mm-space-gray-aluminum-black-volt":_.clone(AppleWatchSeries242Device),"apple-watch-38mm-gold-black-leather-closed":_.clone(AppleWatch38BlackLeatherDevice),"apple-watch-38mm-rose-gold-black-leather-closed":_.clone(AppleWatch38BlackLeatherDevice),"apple-watch-38mm-stainless-steel-black-leather-closed":_.clone(AppleWatch38BlackLeatherDevice),"apple-watch-38mm-black-steel-black-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-gold-midnight-blue-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-rose-gold-lavender-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-blue-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-fog-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-green-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-red-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-walnut-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-white-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-gold-antique-white-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-aluminum-rose-gold-stone-closed":_.clone(AppleWatch38Device),"apple-watch-38mm-sport-space-gray-black-closed":_.clone(AppleWatch38Device),"apple-watch-42mm-black-steel-black-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-gold-black-leather-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-gold-midnight-blue-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-rose-gold-black-leather-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-rose-gold-lavender-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-blue-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-fog-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-green-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-red-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-walnut-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-white-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-gold-antique-white-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-aluminum-rose-gold-stone-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-sport-space-gray-black-closed":_.clone(AppleWatch42Device),"apple-watch-42mm-stainless-steel-black-leather-closed":_.clone(AppleWatch42Device),"google-nexus-4":_.clone(Nexus4BaseDevice),"google-nexus-5x":_.clone(Nexus5BaseDevice),"google-nexus-6p":_.clone(Nexus6BaseDevice),"google-nexus-9":_.clone(Nexus9BaseDevice),"google-pixel-quite-black":_.clone(PixelBaseDevice),"google-pixel-really-blue":_.clone(PixelBaseDevice),"google-pixel-very-silver":_.clone(PixelBaseDevice),"htc-one-a9-black":_.clone(HTCa9BaseDevice),"htc-one-a9-white":_.clone(HTCa9BaseDevice),"htc-one-m8-black":_.clone(HTCm8BaseDevice),"htc-one-m8-gold":_.clone(HTCm8BaseDevice),"htc-one-m8-silver":_.clone(HTCm8BaseDevice),"microsoft-lumia-950-black":_.clone(MSFTLumia950BaseDevice),"microsoft-lumia-950-white":_.clone(MSFTLumia950BaseDevice),"samsung-galaxy-note-5-black":_.clone(SamsungGalaxyNote5BaseDevice),"samsung-galaxy-note-5-gold":_.clone(SamsungGalaxyNote5BaseDevice),"samsung-galaxy-note-5-pink":_.clone(SamsungGalaxyNote5BaseDevice),"samsung-galaxy-note-5-silver-titanium":_.clone(SamsungGalaxyNote5BaseDevice),"samsung-galaxy-note-5-white":_.clone(SamsungGalaxyNote5BaseDevice),"apple-macbook":_.clone(AppleMacBook),"apple-macbook-air":_.clone(AppleMacBookAir),"apple-macbook-pro":_.clone(AppleMacBookPro),"dell-xps":_.clone(DellXPS),"apple-imac":_.clone(AppleIMac),"sony-w85Oc":_.clone(SonyW85OC),"desktop-safari-1024-600":{deviceType:"browser",name:"Desktop Safari 1024 x 600",screenWidth:1024,screenHeight:600,deviceImageWidth:1136,deviceImageHeight:760,deviceImageCompression:!0,backgroundColor:"white"},"desktop-safari-1280-800":{deviceType:"browser",name:"Desktop Safari 1280 x 800",screenWidth:1280,screenHeight:800,deviceImageWidth:1392,deviceImageHeight:960,deviceImageCompression:!0,backgroundColor:"white"},"desktop-safari-1440-900":{deviceType:"browser",name:"Desktop Safari 1440 x 900",screenWidth:1440,screenHeight:900,deviceImageWidth:1552,deviceImageHeight:1060,deviceImageCompression:!0,backgroundColor:"white"},"iphone-6-spacegray":_.clone(old_iPhone6BaseDevice),"iphone-6-spacegray-hand":_.clone(old_iPhone6BaseDeviceHand),"iphone-6-silver":_.clone(old_iPhone6BaseDevice),"iphone-6-silver-hand":_.clone(old_iPhone6BaseDeviceHand),"iphone-6-gold":_.clone(old_iPhone6BaseDevice),"iphone-6-gold-hand":_.clone(old_iPhone6BaseDeviceHand),"iphone-6plus-spacegray":_.clone(old_iPhone6PlusBaseDevice),"iphone-6plus-spacegray-hand":_.clone(old_iPhone6PlusBaseDeviceHand),"iphone-6plus-silver":_.clone(old_iPhone6PlusBaseDevice),"iphone-6plus-silver-hand":_.clone(old_iPhone6PlusBaseDeviceHand),"iphone-6plus-gold":_.clone(old_iPhone6PlusBaseDevice),"iphone-6plus-gold-hand":_.clone(old_iPhone6PlusBaseDeviceHand),"iphone-5s-spacegray":_.clone(old_iPhone5BaseDevice),"iphone-5s-spacegray-hand":_.clone(old_iPhone5BaseDeviceHand),"iphone-5s-silver":_.clone(old_iPhone5BaseDevice),"iphone-5s-silver-hand":_.clone(old_iPhone5BaseDeviceHand),"iphone-5s-gold":_.clone(old_iPhone5BaseDevice),"iphone-5s-gold-hand":_.clone(old_iPhone5BaseDeviceHand),"iphone-5c-green":_.clone(old_iPhone5CBaseDevice),"iphone-5c-green-hand":_.clone(old_iPhone5CBaseDeviceHand),"iphone-5c-blue":_.clone(old_iPhone5CBaseDevice),"iphone-5c-blue-hand":_.clone(old_iPhone5CBaseDeviceHand),"iphone-5c-pink":_.clone(old_iPhone5CBaseDevice),"iphone-5c-pink-hand":_.clone(old_iPhone5CBaseDeviceHand),"iphone-5c-white":_.clone(old_iPhone5CBaseDevice),"iphone-5c-white-hand":_.clone(old_iPhone5CBaseDeviceHand),"iphone-5c-yellow":_.clone(old_iPhone5CBaseDevice),"iphone-5c-yellow-hand":_.clone(old_iPhone5CBaseDeviceHand),"ipad-mini-spacegray":_.clone(old_iPadMiniBaseDevice),"ipad-mini-spacegray-hand":_.clone(old_iPadMiniBaseDeviceHand),"ipad-mini-silver":_.clone(old_iPadMiniBaseDevice),"ipad-mini-silver-hand":_.clone(old_iPadMiniBaseDeviceHand),"ipad-air-spacegray":_.clone(old_iPadAirBaseDevice),"ipad-air-spacegray-hand":_.clone(old_iPadAirBaseDeviceHand),"ipad-air-silver":_.clone(old_iPadAirBaseDevice),"ipad-air-silver-hand":_.clone(old_iPadAirBaseDeviceHand),"nexus-5-black":_.clone(old_Nexus5BaseDevice),"nexus-5-black-hand":_.clone(old_Nexus5BaseDeviceHand),"nexus-9":_.clone(old_Nexus9BaseDevice),"applewatchsport-38-aluminum-sportband-black":_.clone(old_AppleWatch38Device),"applewatchsport-38-aluminum-sportband-blue":_.clone(old_AppleWatch38Device),"applewatchsport-38-aluminum-sportband-green":_.clone(old_AppleWatch38Device),"applewatchsport-38-aluminum-sportband-pink":_.clone(old_AppleWatch38Device),"applewatchsport-38-aluminum-sportband-white":_.clone(old_AppleWatch38Device),"applewatch-38-black-bracelet":_.clone(old_AppleWatch38Device),"applewatch-38-steel-bracelet":_.clone(old_AppleWatch38Device),"applewatchedition-38-gold-buckle-blue":_.clone(old_AppleWatch38Device),"applewatchedition-38-gold-buckle-gray":_.clone(old_AppleWatch38Device),"applewatchedition-38-gold-buckle-red":_.clone(old_AppleWatch38Device),"applewatchedition-38-gold-sportband-black":_.clone(old_AppleWatch38Device),"applewatchedition-38-gold-sportband-white":_.clone(old_AppleWatch38Device),"applewatchsport-42-aluminum-sportband-black":_.clone(old_AppleWatch42Device),"applewatchsport-42-aluminum-sportband-blue":_.clone(old_AppleWatch42Device),"applewatchsport-42-aluminum-sportband-green":_.clone(old_AppleWatch42Device),"applewatchsport-42-aluminum-sportband-pink":_.clone(old_AppleWatch42Device),"applewatchsport-42-aluminum-sportband-white":_.clone(old_AppleWatch42Device),"applewatch-42-black-bracelet":_.clone(old_AppleWatch42Device),"applewatch-42-steel-bracelet":_.clone(old_AppleWatch42Device),"applewatchedition-42-gold-buckle-blue":_.clone(old_AppleWatch42Device),"applewatchedition-42-gold-buckle-gray":_.clone(old_AppleWatch42Device),"applewatchedition-42-gold-buckle-red":_.clone(old_AppleWatch42Device),"applewatchedition-42-gold-sportband-black":_.clone(old_AppleWatch42Device),"applewatchedition-42-gold-sportband-white":_.clone(old_AppleWatch42Device)},exports.DeviceComponent.Devices=Devices,BuiltInDevices=_.keys(Devices)},function(module,exports,__webpack_require__){var Defaults,Layer,Utils,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),Defaults=__webpack_require__(17).Defaults,Layer=__webpack_require__(13).Layer,exports.GridComponent=function(superClass){function GridComponent(options){null==options&&(options={}),GridComponent.__super__.constructor.call(this,Defaults.getDefaults("GridComponent",options))}return extend(GridComponent,superClass),GridComponent.define("rows",{get:function(){return this._rows},set:function(value){return this._rows=value,this._render()}}),GridComponent.define("columns",{get:function(){return this._columns},set:function(value){return this._columns=value,this._render()}}),GridComponent.define("spacing",{get:function(){return this._spacing||{horizontal:0,vertical:0}},set:function(value){return _.isNumber(value)&&(value={horizontal:value,vertical:value}),this._spacing=value,this._render()}}),GridComponent.define("renderCell",{get:function(){return this._renderCell||this._defaultRenderCell},set:function(f){if(f!==this._renderCell){if(!_.isFunction(f))throw Error("GridComponent.renderCell should be a function, not "+typeof f);return this._renderCell=f,this.render()}}}),GridComponent.define("cellWidth",{get:function(){return(this.width-this.spacing.horizontal*(this.columns-1))/this.columns}}),GridComponent.define("cellHeight",{get:function(){return(this.height-this.spacing.vertical*(this.rows-1))/this.rows}}),GridComponent.define("cells",{get:function(){return _.values(this._cells)}}),GridComponent.prototype.cellX=function(row){return row*(this.cellWidth+this.spacing.horizontal)},GridComponent.prototype.cellY=function(column){return column*(this.cellHeight+this.spacing.vertical)},GridComponent.prototype.cellFrame=function(column,row){var frame;return frame={x:this.cellX(column),y:this.cellY(row),width:this.cellWidth,height:this.cellHeight}},GridComponent.prototype.cell=function(column,row){return this._cells[column+":"+row]},GridComponent.prototype.render=function(){return this._render()},GridComponent.prototype._render=function(){var cell,column,frame,i,ref,results,row;for(this._reset(),results=[],row=i=ref=this.rows-1;ref<=0?i<=0:i>=0;row=ref<=0?++i:--i)results.push(function(){var j,ref1,results1;for(results1=[],column=j=ref1=this.columns-1;ref1<=0?j<=0:j>=0;column=ref1<=0?++j:--j)frame=this.cellFrame(column,row),cell=new Layer({parent:this,frame:frame,name:"Cell "+column+":"+row}),this.renderCell(cell,row,column),results1.push(this._cells[column+":"+row]=cell);return results1}.call(this));return results},GridComponent.prototype._defaultRenderCell=function(cell,column,row){var fraction;return fraction=column/this.columns+row/this.rows/2,cell.backgroundColor="#28affa",cell.hueRotate=20*column+row%this.columns*(20/(this.columns+1)),Utils.labelLayer(cell,row+":"+column),cell.style.fontSize="30px"},GridComponent.prototype._reset=function(){return _.invokeMap(this.cells,"destroy"),this._cells={}},GridComponent}(Layer)},function(module,exports,__webpack_require__){var AnimationGroup,Events,FlowComponentLayerScrollKey,Layer,LayerStateMachine,LayerStates,Transitions,Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,slice=[].slice;Utils=__webpack_require__(4),Layer=__webpack_require__(13).Layer,Events=__webpack_require__(15).Events,LayerStates=__webpack_require__(26).LayerStates,LayerStateMachine=__webpack_require__(27).LayerStateMachine,AnimationGroup=__webpack_require__(39).AnimationGroup,FlowComponentLayerScrollKey="_flowComponentWrapped",Events.TransitionStart="transitionstart",Events.TransitionHalt="transitionhalt",Events.TransitionStop="transitionstop",Events.TransitionEnd="transitionend",exports.FlowComponent=function(superClass){function FlowComponent(layerOrOptions,options){var layer;null==layerOrOptions&&(layerOrOptions={}),null==options&&(options={}),this._runTransition=bind(this._runTransition,this),this._handleOverlayTap=bind(this._handleOverlayTap,this),this.showPrevious=bind(this.showPrevious,this),layer=null,layerOrOptions instanceof Layer?(layer=layerOrOptions,options=options):options=layerOrOptions,options=_.defaults({},options,{backgroundColor:"black"}),options.size||(null==options.width&&(options.width=Screen.width),null==options.height&&(options.height=Screen.height)),null==options.clip&&(options.clip=!0),FlowComponent.__super__.constructor.call(this,options),this.reset(),this.overlay=new Layer({name:"overlay",parent:this,size:0,backgroundColor:"black",visible:!1}),this.overlay.onTap(this._handleOverlayTap),layer?this.showNext(layer):this._tempScroll=new ScrollComponent({name:"scrollComponent",parent:this,width:this.width,height:this.height})}return extend(FlowComponent,superClass),FlowComponent.prototype.reset=function(){var i,item,len,ref;if(this._stack)for(ref=this._stack,i=0,len=ref.length;i<len;i++)item=ref[i],item.layer!==this._initial&&(item.layer.visible=!1);if(this._stack=[],this._seen=[],this._current=null,this._isModal=!1,this._initial)return this.showNext(this._initial,{animate:!1})},FlowComponent.define("isModal",{get:function(){return this._isModal}}),FlowComponent.define("stack",{get:function(){return this._stack.map(function(item){return item.layer})}}),FlowComponent.define("current",{get:function(){var ref;return null!=(ref=this._stack[this._stack.length-1])?ref.layer:void 0}}),FlowComponent.define("previous",{get:function(){var ref;return null!=(ref=this._stack[this._stack.length-2])?ref.layer:void 0}}),FlowComponent.define("header",{get:function(){return this._header},set:function(layer){if(layer instanceof Layer)return this._header=layer,this._header.name="header",this._header.parent=this,this._header.x=Align.center,this._header.y=Align.top,this.current?this._wrapLayer(this.current):void 0}}),FlowComponent.define("footer",{get:function(){return this._footer},set:function(layer){if(layer instanceof Layer)return this._footer=layer,this._footer.name="footer",this._footer.parent=this,this._footer.x=Align.center,this._footer.y=Align.bottom,this.current?this._wrapLayer(this.current):void 0}}),FlowComponent.prototype.transition=function(layer,transitionFunction,options){var layerA,layerB,overlay,ref,template,transition,wrappedLayer;if(null==options&&(options={}),!layer)throw new Error("FlowComponent.transition expects a layer");if(!transitionFunction)throw new Error("FlowComponent.transition expects transitionFunction");if(layer!==this.current)return null!=(ref=this._tempScroll)&&ref.destroy(),options=_.defaults({},options,{animate:this._firstTransition===!0,scroll:!0,modal:!1}),this._isModal=options.modal,layer.visible=!0,layer.opacity=1,layer.ignoreEvents=!1,wrappedLayer=layer,options.scroll&&(wrappedLayer=this._wrapLayer(layer)),wrappedLayer.parent=this,wrappedLayer.visible=!options.animate,layerA=this._wrappedLayer(this.current),layerB=wrappedLayer,overlay=this.overlay,template=transitionFunction(this,layerA,layerB,overlay),transition=this._buildTransition(template,layerA,layerB,overlay),this._runTransition(transition,"forward",options.animate,this.current,layer),this._stack.push({layer:layer,transition:transition})},FlowComponent.prototype.showNext=function(layer,options){return null==options&&(options={}),null==this._initial&&(this._initial=layer),this.transition(layer,Transitions.show,options)},FlowComponent.prototype.showPrevious=function(options){var count,i,n,previous,ref;if(null==options&&(options={}),this.previous&&!this.isTransitioning){if(options instanceof Framer._Layer&&(options={}),options=_.defaults({},options,{count:1,animate:!0}),options.count>1)for(count=options.count,n=i=2,ref=count;2<=ref?i<=ref:i>=ref;n=2<=ref?++i:--i)this.showPrevious({animate:!1,count:1});return previous=this._stack.pop(),this._runTransition(null!=previous?previous.transition:void 0,"back",options.animate,this.current,previous.layer)}},FlowComponent.prototype.showOverlayCenter=function(layer,options){return null==options&&(options={}),this._showOverlay(layer,Transitions.overlayCenter,options)},FlowComponent.prototype.showOverlayTop=function(layer,options){return null==options&&(options={}),this._showOverlay(layer,Transitions.overlayTop,options)},FlowComponent.prototype.showOverlayRight=function(layer,options){return null==options&&(options={}),this._showOverlay(layer,Transitions.overlayRight,options)},FlowComponent.prototype.showOverlayBottom=function(layer,options){return null==options&&(options={}),this._showOverlay(layer,Transitions.overlayBottom,options)},FlowComponent.prototype.showOverlayLeft=function(layer,options){return null==options&&(options={}),this._showOverlay(layer,Transitions.overlayLeft,options)},FlowComponent.prototype._showOverlay=function(layer,transition,options){return null==options&&(options={}),this.transition(layer,transition,_.defaults({},options,{animate:!0,scroll:!1,modal:!1}))},FlowComponent.prototype._handleOverlayTap=function(){if(!this.isModal)return this.showPrevious()},FlowComponent.prototype._wrapLayer=function(layer){var _addListener,contentInset,height,ref,ref1,ref2,ref3,scroll,width;if(scroll=null,width=this.width,height=this.height,this.header&&(height=-this.header.height),this.footer&&(height=-this.footer.height),layer[FlowComponentLayerScrollKey])scroll=layer[FlowComponentLayerScrollKey];else{if(layer.width===this.width&&layer.height===height)return layer;if(layer.width<this.width&&layer.height<height)return layer}return layer instanceof ScrollComponent&&(scroll=layer,null==scroll._originalContentInset&&(scroll._originalContentInset=scroll.contentInset)),layer.point=Utils.pointZero(),scroll||(scroll=new ScrollComponent,scroll.name="scrollComponent",scroll.backgroundColor=this.backgroundColor,layer[FlowComponentLayerScrollKey]=scroll,layer.parent=scroll.content,_addListener=layer.addListener,layer.on=function(){var args,event;if(event=arguments[0],args=2<=arguments.length?slice.call(arguments,1):[],_addListener.apply(layer,[event].concat(slice.call(args))),event===Events.ScrollStart||event===Events.Scroll||event===Events.ScrollMove||event===Events.ScrollEnd||event===Events.ScrollAnimationDidStart||event===Events.ScrollAnimationDidEnd)return scroll.addListener.apply(scroll,[event].concat(slice.call(args)))}),scroll.parent=this,scroll.size=this.size,scroll.scrollHorizontal=layer.width>width,scroll.scrollVertical=layer.height>height,contentInset={top:null!=(ref=null!=(ref1=scroll._originalContentInset)?ref1.top:void 0)?ref:0,bottom:null!=(ref2=null!=(ref3=scroll._originalContentInset)?ref3.bottom:void 0)?ref2:0},this.header&&(contentInset.top+=this.header.height),this.footer&&(contentInset.bottom+=this.footer.height),scroll.contentInset=contentInset,scroll},FlowComponent.prototype._wrappedLayer=function(layer){return layer?layer[FlowComponentLayerScrollKey]||layer:null},FlowComponent.prototype._runTransition=function(transition,direction,animate,from,to){var a,b;return"forward"===direction?(a=from,b=to):(a=to,b=from),this.emit(Events.TransitionStart,a,b,direction),Utils.delay(0,function(_this){return function(){return _this._firstTransition=!0,transition[direction](animate)}}(this))},FlowComponent.prototype._buildTransition=function(template,layerA,layerB,overlay){var transition;return transition={},transition.forward=function(_this){return function(animate,callback){var animations,forwardEvents,group,options;return null==animate&&(animate=!0),forwardEvents=function(group,direction){return group.once(Events.AnimationHalt,function(){return _this.emit(Events.TransitionHalt,layerA,layerB,direction)}),group.once(Events.AnimationStop,function(){return _this.emit(Events.TransitionStop,layerA,layerB,direction)}),group.once(Events.AnimationEnd,function(){return _this.emit(Events.TransitionEnd,layerA,layerB,direction)})},animations=[],options={instant:!animate},layerA&&template.layerA&&(layerA.visible=!0,animations.push(new Animation(layerA,template.layerA.hide,options))),layerB&&template.layerB&&(layerB.props=template.layerB.hide,layerB.bringToFront(),layerB.visible=!0,animations.push(new Animation(layerB,template.layerB.show,options))),overlay&&template.overlay&&(overlay.visible=!0,overlay.ignoreEvents=!1,overlay.placeBehind(layerB),overlay.props=template.overlay.hide,animations.push(new Animation(overlay,template.overlay.show,options))),overlay&&template.overlay?(_this.header&&_this.header.placeBehind(overlay),_this.footer&&_this.footer.placeBehind(overlay)):(_this.header&&_this.header.bringToFront(),_this.footer&&_this.footer.bringToFront()),group=new AnimationGroup(animations),forwardEvents(group,"forward"),group.once(Events.AnimationEnd,function(){if(layerA&&template.layerA&&(!overlay||!template.overlay))return layerA.visible=!1}),group.start()}}(this),transition.back=function(_this){return function(animate,callback){var animations,forwardEvents,group,options;return null==animate&&(animate=!0),forwardEvents=function(group,direction){return group.once(Events.AnimationHalt,function(){return _this.emit(Events.TransitionHalt,layerB,layerA,direction)}),group.once(Events.AnimationStop,function(){return _this.emit(Events.TransitionStop,layerB,layerA,direction)}),group.once(Events.AnimationEnd,function(){return _this.emit(Events.TransitionEnd,layerB,layerA,direction)})},animations=[],options={instant:!animate},overlay&&template.overlay&&(overlay.visible=!0,overlay.ignoreEvents=!0,animations.push(new Animation(overlay,template.overlay.hide,options))),layerA&&template.layerA&&(layerA.visible=!0,animations.push(new Animation(layerA,template.layerA.show,options))),layerB&&template.layerB&&(layerB.visible=!0,animations.push(new Animation(layerB,template.layerB.hide,options))),group=new AnimationGroup(animations),group.stopAnimations=!1,forwardEvents(group,"back"),group.once(Events.AnimationEnd,function(){if(layerB&&template.layerB)return layerB.visible=!1}),group.start()}}(this),transition},FlowComponent.prototype.onTransitionStart=function(cb){return this.on(Events.TransitionStart,cb)},FlowComponent.prototype.onTransitionHalt=function(cb){return this.on(Events.TransitionHalt,cb)},FlowComponent.prototype.onTransitionStop=function(cb){return this.on(Events.TransitionStop,cb)},FlowComponent.prototype.onTransitionEnd=function(cb){return this.on(Events.TransitionEnd,cb)},FlowComponent.prototype.onStart=function(cb){return this.onTransitionStart(cb)},FlowComponent.prototype.onHalt=function(cb){return this.onTransitionHalt(cb)},FlowComponent.prototype.onStop=function(cb){return this.onTransitionStop(cb)},FlowComponent.prototype.onEnd=function(cb){return this.onTransitionEnd(cb)},FlowComponent}(Layer),Transitions={},Transitions.show=function(nav,layerA,layerB,overlay){var options,transition;return options={curve:"spring(300, 35, 0)"},transition={layerA:{show:{options:options,x:0,y:0},hide:{options:options,x:0-(null!=layerA?layerA.width:void 0)/2,y:0}},layerB:{show:{options:options,x:0,y:0},hide:{options:options,x:layerB.width,y:0}}}},Transitions.overlayCenter=function(nav,layerA,layerB,overlay){var transition;return transition={layerB:{show:{options:{curve:"spring(500, 35, 0)"},x:Align.center,y:Align.center,scale:1,opacity:1},hide:{options:{curve:"spring(500, 35, 0)"},x:Align.center,y:Align.center,scale:.5,opacity:0}},overlay:{show:{options:{time:.1},opacity:.5,x:0,y:0,size:nav.size},hide:{options:{time:.1},opacity:0,x:0,y:0,size:nav.size}}}},Transitions.overlayLeft=function(nav,layerA,layerB,overlay){var transition;return transition={layerB:{show:{options:{curve:"spring(300, 35, 0)"},y:0,x:0},hide:{options:{curve:"spring(300, 35, 0)"},y:0,x:0-(null!=layerB?layerB.width:void 0)}},overlay:{show:{options:{time:.1},opacity:.5,x:0,y:0,size:nav.size},hide:{options:{time:.1},opacity:0,x:0,y:0,size:nav.size}}}},Transitions.overlayRight=function(nav,layerA,layerB,overlay){var transition;return transition={layerB:{show:{options:{curve:"spring(300, 35, 0)"},y:0,x:(null!=nav?nav.width:void 0)-(null!=layerB?layerB.width:void 0)},hide:{options:{curve:"spring(300, 35, 0)"},y:0,x:null!=nav?nav.width:void 0}},overlay:{show:{options:{time:.1},opacity:.5,x:0,y:0,size:nav.size},hide:{options:{time:.1},opacity:0,x:0,y:0,size:nav.size}}}},Transitions.overlayTop=function(nav,layerA,layerB,overlay){var transition;return transition={layerB:{show:{options:{curve:"spring(300, 35, 0)"},x:Align.center,y:0},hide:{options:{curve:"spring(300, 35, 0)"},x:Align.center,maxY:0}},overlay:{show:{options:{time:.1},opacity:.5,x:0,y:0,size:nav.size},hide:{options:{time:.1},opacity:0,x:0,y:0,size:nav.size}}}},Transitions.overlayBottom=function(nav,layerA,layerB,overlay){var transition;return transition={layerB:{show:{options:{curve:"spring(300, 35, 0)"},x:Align.center,y:(null!=nav?nav.height:void 0)-(null!=layerB?layerB.height:void 0)},hide:{options:{curve:"spring(300, 35, 0)"},x:Align.center,y:null!=nav?nav.height:void 0}},overlay:{show:{options:{time:.1},opacity:.5,x:0,y:0,size:nav.size},hide:{options:{time:.1},opacity:0,x:0,y:0,size:nav.size}}}}},function(module,exports,__webpack_require__){var SVGLayer,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;SVGLayer=__webpack_require__(38).SVGLayer,exports.CircularProgressComponent=function(superClass){function CircularProgressComponent(options){null==options&&(options={}),CircularProgressComponent.__super__.constructor.apply(this,arguments),this.backgroundColor=null,this.rotation=-90,this.rails=this.addShape("circle"),this.rails.setAttribute("fill","transparent"),this.circle=this.addShape("circle"),this.circle.setAttribute("fill","transparent"),this.strokeWidth=1,this.progress=0,this.railsColor=Color.grey(.2),this.progressColor=Color.grey(1),this.svg.appendChild(this.rails),this.svg.appendChild(this.circle),this._element.appendChild(this.svg)}return extend(CircularProgressComponent,superClass),CircularProgressComponent.define("radius",{get:function(){return this.width/2-this.strokeWidth/2}}),CircularProgressComponent.define("strokeWidth",{get:function(){return this._strokeWidth||1},set:function(value){return this._strokeWidth=value,this.rails.cx.baseVal.value=this.width/2,this.rails.cy.baseVal.value=this.width/2,this.rails.r.baseVal.value=this.radius,this.rails.setAttribute("stroke-width",value),this.circle.cx.baseVal.value=this.width/2,this.circle.cy.baseVal.value=this.width/2,this.circle.r.baseVal.value=this.radius,this.circle.setAttribute("stroke-width",value)}}),CircularProgressComponent.define("progressColor",{get:function(){return this._progressColor||Color.grey(1)},set:function(value){return this.circle.setAttribute("stroke",value)}}),CircularProgressComponent.define("railsColor",{get:function(){return this._progressColor||Color.grey(.1)},set:function(value){return this.rails.setAttribute("stroke",value)}}),CircularProgressComponent.define("progress",{get:function(){return this._progress||0},set:function(value){var strokeDashArray,strokeDashOffset;return this._progress=Utils.clamp(value,0,1),strokeDashArray=this.radius*Math.PI*2,strokeDashOffset=(1-this.progress)*strokeDashArray,this.circle.setAttribute("stroke-dasharray",strokeDashArray),this.circle.setAttribute("stroke-dashoffset",strokeDashOffset)}}),CircularProgressComponent.prototype.setProgress=function(value,animated,animationOptions){var animationProperties,dynamicTime;return null==animated&&(animated=!0),null==animationOptions&&(animationOptions={}),animated?(dynamicTime=.3*Math.abs(this.progress-value),animationOptions=_.defaults(animationOptions,{curve:"linear",time:dynamicTime}),animationProperties={progress:Utils.clamp(value,0,1)},this.animate(animationProperties,animationOptions)):this.progress=value},CircularProgressComponent}(SVGLayer)},function(module,exports,__webpack_require__){var BaseClass,Events,MIDIComponent,MIDIInput,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(15).Events,MIDIInput=__webpack_require__(52).MIDIInput,Events.MIDIComponentValueChange="MIDIComponentValueChange",MIDIComponent=function(superClass){function MIDIComponent(options){null==options&&(options={}),MIDIComponent.__super__.constructor.call(this,options),MIDIInput.enabled=!0,MIDIInput.onCommand(function(_this){return function(source,timeStamp,data){var b1,b2,b3,channel,command,data1,data2,info;if(b1=data[0],b2=data[1],b3=data[2],command=240&b1,channel=(15&b1)+1,data1=127&b2,data2=127&b3,!(176!==command&&144!==command&&128!==command||null!=_this.source&&_this.source!==source||null!=_this.channel&&_this.channel!==channel||null!=_this.control&&_this.control!==data1))return info={source:source,channel:channel,control:data1},144!==command&&128!==command||(info=_.defaults(info,{type:"note"})),_this.emit(Events.MIDIComponentValueChange,_this._modulate(data2),info)}}(this))}return extend(MIDIComponent,superClass),MIDIComponent.define("min",MIDIComponent.simpleProperty("min",0)),MIDIComponent.define("max",MIDIComponent.simpleProperty("max",127)),MIDIComponent.define("control",MIDIComponent.simpleProperty("control",null)),MIDIComponent.define("channel",MIDIComponent.simpleProperty("channel",null)),MIDIComponent.define("source",MIDIComponent.simpleProperty("source",null)),MIDIComponent.prototype._modulate=function(value){return Utils.modulate(value,[0,127],[this.min,this.max])},MIDIComponent.prototype.onValueChange=function(cb){return this.on(Events.MIDIComponentValueChange,cb)},MIDIComponent}(BaseClass),exports.MIDIComponent=MIDIComponent},function(module,exports,__webpack_require__){var BaseClass,Events,MIDIInput,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(15).Events,Events.MIDICommand="midiCommand",MIDIInput=function(superClass){function MIDIInput(){return this._onmidimessage=bind(this._onmidimessage,this),this._requestResolved=bind(this._requestResolved,this),MIDIInput.__super__.constructor.apply(this,arguments)}return extend(MIDIInput,superClass),MIDIInput.define("enabled",{ | |
get:function(){var ref;return(null!=(ref=this._inputs)?ref.length:void 0)||this._request},set:function(value){var ref;if(value!==this.enabled)return navigator.requestMIDIAccess?value?this._request=navigator.requestMIDIAccess().then(this._requestResolved,this._requestRejected):(null!=(ref=this._inputs)&&ref.map(close),this._request=null,this._inputs=[]):this._requestRejected()}}),MIDIInput.prototype._requestResolved=function(access){return null==this._inputs&&(this._inputs=[]),access.inputs.forEach(function(_this){return function(input){return _this._inputs.push(input),input.onmidimessage=_this._onmidimessage(input.id)}}(this))},MIDIInput.prototype._requestRejected=function(error){throw Error("Requesting MIDI access failed: "+(null!=error?error:"not supported by browser"))},MIDIInput.prototype._onmidimessage=function(sourceID){return function(_this){return function(message){return _this.emit(Events.MIDICommand,sourceID,message.timeStamp,message.data)}}(this)},MIDIInput.prototype.onCommand=function(cb){return this.on(Events.MIDICommand,cb)},MIDIInput}(BaseClass),exports.MIDIInput=new MIDIInput},function(module,exports,__webpack_require__){var Config,EventEmitter,Utils,_,getTime,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,Utils=__webpack_require__(4),Config=__webpack_require__(14).Config,EventEmitter=__webpack_require__(7).EventEmitter,getTime=function(){return 1e3*Utils.getTime()},exports.AnimationLoop=function(superClass){function AnimationLoop(){this.start=bind(this.start,this),this.delta=1/60,this.raf=!0,Utils.webkitVersion()>600&&Utils.webkitVersion()<601&&(Utils.isFramerStudio()||Utils.isDesktop())&&(this.raf=!1),this.maximumListeners=Infinity}return extend(AnimationLoop,superClass),AnimationLoop.prototype.start=function(){var _timestamp,animationLoop,tick,update;return animationLoop=this,_timestamp=getTime(),update=function(){var delta,timestamp;return animationLoop.delta?delta=animationLoop.delta:(timestamp=getTime(),delta=(timestamp-_timestamp)/1e3,_timestamp=timestamp),animationLoop.emit("update",delta),animationLoop.emit("render",delta)},(tick=function(timestamp){return animationLoop.raf?(update(),window.requestAnimationFrame(tick)):window.setTimeout(function(){return update(),window.requestAnimationFrame(tick)},0)})()},AnimationLoop}(EventEmitter)},function(module,exports,__webpack_require__){var ChromeAlert,Utils,_,getScaleFromName,resizeFrame,sanitizeLayerName,startsWithNumber;_=__webpack_require__(1)._,Utils=__webpack_require__(4),ChromeAlert="Importing layers is currently only supported on Safari. If you really want it to work with Chrome quit it, open a terminal and run:\nopen -a Google Chrome -–allow-file-access-from-files",resizeFrame=function(scale,frame){var i,key,len,ref,result;if(1===scale)return frame;for(result={},ref=["x","y","width","height"],i=0,len=ref.length;i<len;i++)key=ref[i],frame.hasOwnProperty(key)&&(result[key]=frame[key]*scale);return result},getScaleFromName=function(str){var m,re;return re=/@([\d]+|[\d]+.[\d]+)x/,m=void 0,null!==(m=re.exec(str))&&m[1]?parseFloat(m[1]):null},startsWithNumber=function(str){return new RegExp("^[0-9]").test(str)},sanitizeLayerName=function(name){var i,len,ref,suffix;for(ref=["*","-",".png",".jpg",".pdf"],i=0,len=ref.length;i<len;i++)suffix=ref[i],_.endsWith(name.toLowerCase(),suffix)&&(name=name.slice(0,+(name.length-suffix.length-1)+1||9e9));return name},exports.Importer=function(){function Importer(path1,scale1,extraLayerProperties){this.path=path1,this.scale=null!=scale1?scale1:1,this.extraLayerProperties=null!=extraLayerProperties?extraLayerProperties:{},this.paths={layerInfo:Utils.pathJoin(this.path,"layers.json"),images:Utils.pathJoin(this.path,"images"),documentName:this.path.split("/").pop()},this._createdLayers=[],this._createdLayersByName={}}return Importer.prototype.load=function(){var i,j,layer,layerInfo,layersByName,len,len1,ref,ref1;if(layersByName={},layerInfo=this._loadlayerInfo(),0===layerInfo.length)throw new Error("Importer: no layers. Do you have at least one layer group?");for(layerInfo.map(function(_this){return function(layerItemInfo){return _this._createLayer(layerItemInfo)}}(this)),ref=this._createdLayers,i=0,len=ref.length;i<len;i++)layer=ref[i],this._correctLayer(layer);for(this._correctArtboards(this._createdLayers),ref1=this._createdLayers,j=0,len1=ref1.length;j<len1;j++)layer=ref1[j],layer.parent||(layer.parent=null);return this._createdLayersByName},Importer.prototype._loadlayerInfo=function(){var importedKey,ref;return importedKey=this.paths.documentName+"/layers.json.js",(null!=(ref=window.__imported__)?ref.hasOwnProperty(importedKey):void 0)?_.cloneDeep(window.__imported__[importedKey]):Framer.Utils.domLoadJSONSync(this.paths.layerInfo)},Importer.prototype._createLayer=function(info,parent){var LayerClass,layer,layerInfo,ref,ref1;if(info.layerFrame&&(info.layerFrame=resizeFrame(this.scale,info.layerFrame)),info.maskFrame&&(info.maskFrame=resizeFrame(this.scale,info.maskFrame)),null!=(null!=(ref=info.image)?ref.frame:void 0)&&(info.image.frame=resizeFrame(this.scale,info.image.frame)),info.children||(info.children=[]),LayerClass=Layer,layerInfo={shadow:!0,name:sanitizeLayerName(info.name),frame:info.layerFrame,clip:!1,backgroundColor:null,visible:null==(ref1=info.visible)||ref1},_.extend(layerInfo,this.extraLayerProperties),info.image&&(layerInfo.frame=info.image.frame,layerInfo.image=Utils.pathJoin(this.path,info.image.path)),info.maskFrame&&(layerInfo.clip=!0),"artboard"===info.kind&&(layerInfo.backgroundColor=info.backgroundColor),(null!=parent?parent.contentLayer:void 0)?layerInfo.parent=parent.contentLayer:parent&&(layerInfo.parent=parent),startsWithNumber(layerInfo.name))throw new Error("Layer or Artboard names can not start with a number: '"+layerInfo.name+"'");return layer=new LayerClass(layerInfo),layer.name=layerInfo.name,layer.__framerImportedFromPath=this.path,layerInfo.name.toLowerCase().indexOf("scroll")!==-1&&(layer.scroll=!0),layerInfo.name.toLowerCase().indexOf("draggable")!==-1&&(layer.draggable.enabled=!0),layer.image||info.children.length||info.maskFrame||(layer.frame=Utils.frameZero()),_.clone(info.children).reverse().map(function(_this){return function(info){return _this._createLayer(info,layer)}}(this)),"artboard"===info.kind?layer.point={x:0,y:0}:layer.image||info.maskFrame||(layer.frame=layer.contentFrame()),layer._info=info,this._createdLayers.push(layer),this._createdLayersByName[layer.name]=layer},Importer.prototype._correctArtboards=function(layers){var i,j,layer,leftMostLayer,len,len1,pointOffset,results;for(leftMostLayer=null,i=0,len=layers.length;i<len;i++)layer=layers[i],"artboard"===layer._info.kind&&(layer.point=layer._info.layerFrame,layer.visible=!0,(null===leftMostLayer||layer.x<leftMostLayer.x)&&(leftMostLayer=layer));if(leftMostLayer){for(pointOffset=leftMostLayer.point,results=[],j=0,len1=layers.length;j<len1;j++)layer=layers[j],"artboard"===layer._info.kind?(layer.x-=pointOffset.x,results.push(layer.y-=pointOffset.y)):results.push(void 0);return results}},Importer.prototype._correctLayer=function(layer){var traverse;if(traverse=function(layer){var child,i,len,ref,results;for(layer.parent&&(layer.frame=Utils.convertPoint(layer.frame,null,layer.parent)),ref=layer.children,results=[],i=0,len=ref.length;i<len;i++)child=ref[i],results.push(traverse(child));return results},!layer.parent)return traverse(layer)},Importer}(),exports.Importer.load=function(path,scale){var importer;return null==scale&&(scale=getScaleFromName(path)),null==scale&&(scale=1),importer=new exports.Importer(path,scale),importer.load()}},function(module,exports,__webpack_require__){exports.TouchEmulator=__webpack_require__(56),exports.MobileScrollFix=__webpack_require__(57),exports.ErrorDisplay=__webpack_require__(58),exports.OmitNew=__webpack_require__(59),exports.Hints=__webpack_require__(60),exports.Preloader=__webpack_require__(61),exports.ShareInfo=__webpack_require__(62)},function(module,exports,__webpack_require__){var BaseClass,TouchEmulator,Utils,cancelEvent,createTouch,dispatchTouchEvent,touchEmulator,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),BaseClass=__webpack_require__(6).BaseClass,createTouch=function(event,identifier,offset){var touch;return null==offset&&(offset={x:0,y:0}),touch={identifier:identifier,target:event.target,pageX:event.pageX-offset.x,pageY:event.pageY-offset.y,clientX:event.clientX-offset.x,clientY:event.clientY-offset.y,screenX:event.screenX-offset.x,screenY:event.screenY-offset.y}},dispatchTouchEvent=function(type,target,event,offset){var touchEvent,touches;return null==target&&(target=event.target),touchEvent=document.createEvent("MouseEvent"),touchEvent.initMouseEvent(type,!0,!0,window,event.detail,event.screenX,event.screenY,event.clientX,event.clientY,event.ctrlKey,event.shiftKey,event.altKey,event.metaKey,event.button,event.relatedTarget),touches=[],touches.push(createTouch(event,1)),offset&&touches.push(createTouch(event,2,offset)),touchEvent.touches=touchEvent.changedTouches=touchEvent.targetTouches=touches,target.dispatchEvent(touchEvent)},cancelEvent=function(event){return event.preventDefault(),event.stopPropagation()},TouchEmulator=function(superClass){function TouchEmulator(){this.mousemovePosition=bind(this.mousemovePosition,this),this.mouseout=bind(this.mouseout,this),this.mouseup=bind(this.mouseup,this),this.mousemove=bind(this.mousemove,this),this.mousedown=bind(this.mousedown,this),this.keyup=bind(this.keyup,this),this.keydown=bind(this.keydown,this);var touchPointerInitialOffset;this.touchPointerImage="url('framer/images/[email protected]')",this.touchPointerImageActive="url('framer/images/[email protected]')",this.touchPointerImageSize=64,this.touchPointerInitialOffset={x:0,y:0},this.keyPinchCode=18,this.keyPanCode=91,this.context=new Framer.Context({name:"TouchEmulator"}),this.context._element.style.zIndex=1e4,this.wrap=this.context.domEventManager.wrap,this.wrap(document).addEventListener("mousedown",this.mousedown,!0),this.wrap(document).addEventListener("mousemove",this.mousemove,!0),this.wrap(document).addEventListener("mouseup",this.mouseup,!0),this.wrap(document).addEventListener("keydown",this.keydown,!0),this.wrap(document).addEventListener("keyup",this.keyup,!0),this.wrap(document).addEventListener("mouseout",this.mouseout,!0),this.isMouseDown=!1,this.isPinchKeyDown=!1,this.isPanKeyDown=!1,touchPointerInitialOffset=this.touchPointerInitialOffset,this.context.run(function(_this){return function(){return _this.touchPointLayer=new Layer({width:_this.touchPointerImageSize,height:_this.touchPointerImageSize,backgroundColor:null,opacity:0}),_this.touchPointLayer.style.backgroundImage=_this.touchPointerImage}}(this))}return extend(TouchEmulator,superClass),TouchEmulator.prototype.destroy=function(){return this.context.reset(),this.context=null},TouchEmulator.prototype.keydown=function(event){if(event.keyCode===this.keyPinchCode&&(this.isPinchKeyDown=!0,this.startPoint=this.centerPoint=null,this.showTouchCursor(),this.touchPointLayer.midX=this.point.x,this.touchPointLayer.midY=this.point.y),event.keyCode===this.keyPanCode)return this.isPanKeyDown=!0,cancelEvent(event)},TouchEmulator.prototype.keyup=function(event){if(event.keyCode===this.keyPinchCode&&(cancelEvent(event),this.isPinchKeyDown=!1,this.hideTouchCursor()),event.keyCode===this.keyPanCode&&(cancelEvent(event),this.touchPoint&&this.point))return this.centerPoint=Utils.pointCenter(this.touchPoint,this.point),this.isPanKeyDown=!1},TouchEmulator.prototype.mousedown=function(event){return this.isMouseDown=!0,this.target=event.target,this.isPinchKeyDown?dispatchTouchEvent("touchstart",this.target,event,this.touchPointDelta):dispatchTouchEvent("touchstart",this.target,event),this.touchPointLayer.style.backgroundImage=this.touchPointerImageActive},TouchEmulator.prototype.mousemove=function(event){if(this.point={x:event.pageX,y:event.pageY},null==this.startPoint&&(this.startPoint=this.point),null==this.centerPoint&&(this.centerPoint=this.point),this.isPinchKeyDown&&!this.isPanKeyDown&&this.touchPointerInitialOffset&&this.centerPoint&&(this.touchPoint=Utils.pointAdd(this.touchPointerInitialOffset,this.pinchPoint(this.point,this.centerPoint)),this.touchPointDelta=Utils.pointSubtract(this.point,this.touchPoint)),this.isPinchKeyDown&&this.isPanKeyDown&&this.touchPoint&&this.touchPointDelta&&(this.touchPoint=this.panPoint(this.point,this.touchPointDelta)),(this.isPinchKeyDown||this.isPanKeyDown)&&this.touchPoint&&(this.touchPointLayer.visible=!0,this.touchPointLayer.midX=this.touchPoint.x,this.touchPointLayer.midY=this.touchPoint.y),this.isMouseDown)return(this.isPinchKeyDown||this.isPanKeyDown)&&this.touchPointDelta?dispatchTouchEvent("touchmove",this.target,event,this.touchPointDelta):dispatchTouchEvent("touchmove",this.target,event)},TouchEmulator.prototype.mouseup=function(event){return this.isPinchKeyDown||this.isPanKeyDown?dispatchTouchEvent("touchend",this.target,event,this.touchPointDelta):dispatchTouchEvent("touchend",this.target,event),this.endMultiTouch()},TouchEmulator.prototype.mouseout=function(event){var fromElement;if(!this.isMouseDown)return fromElement=event.relatedTarget||event.toElement,fromElement&&"HTML"!==fromElement.nodeName?void 0:this.endMultiTouch()},TouchEmulator.prototype.showTouchCursor=function(){return this.point||(this.point={x:event.pageX,y:event.pageY}),this.touchPointLayer.animateStop(),this.touchPointLayer.midX=this.point.x,this.touchPointLayer.midY=this.point.y,this.touchPointLayer.scale=1.8,this.touchPointLayer.animate({opacity:1,scale:1,options:{time:.1,curve:"ease-out"}})},TouchEmulator.prototype.hideTouchCursor=function(){if(this.touchPointLayer.opacity>0)return this.touchPointLayer.animateStop(),this.touchPointLayer.animate({opacity:0,scale:1.2,options:{time:.08}})},TouchEmulator.prototype.mousemovePosition=function(event){return this.point={x:event.pageX,y:event.pageY}},TouchEmulator.prototype.endMultiTouch=function(){return this.isMouseDown=!1,this.touchPointLayer.style.backgroundImage=this.touchPointerImage,this.hideTouchCursor()},TouchEmulator.prototype.pinchPoint=function(point,centerPoint){return Utils.pointSubtract(centerPoint,Utils.pointSubtract(point,centerPoint))},TouchEmulator.prototype.panPoint=function(point,offsetPoint){return Utils.pointSubtract(point,offsetPoint)},TouchEmulator}(BaseClass),touchEmulator=null,exports.enable=function(){if(!Utils.isTouch())return null==touchEmulator&&(touchEmulator=new TouchEmulator),Events.enableEmulatedTouchEvents(!0)},exports.disable=function(){if(touchEmulator)return touchEmulator.destroy(),touchEmulator=null,Events.enableEmulatedTouchEvents(!1)},exports.reset=function(){if(touchEmulator)return touchEmulator.endMultiTouch()}},function(module,exports,__webpack_require__){var Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),exports.enable=function(){var MobileScrollFixLayer,handleScrollingLayerTouchMove,handleScrollingLayerTouchStart;return document.ontouchmove=function(event){if(event.target===document.body)return event.preventDefault()},handleScrollingLayerTouchMove=function(event){return event.stopPropagation()},handleScrollingLayerTouchStart=function(event){var element,startTopScroll;if(element=this._element,startTopScroll=element.scrollTop,startTopScroll<=0&&(element.scrollTop=1),startTopScroll+element.offsetHeight>=element.scrollHeight)return element.scrollTop=element.scrollHeight-element.offsetHeight-1},MobileScrollFixLayer=function(superClass){function MobileScrollFixLayer(options){this._updateScrollListeners=bind(this._updateScrollListeners,this),MobileScrollFixLayer.__super__.constructor.call(this,options),"Layer"===this.constructor.name&&(this.on("change:scrollVertical",this._updateScrollListeners),this._updateScrollListeners())}return extend(MobileScrollFixLayer,superClass),MobileScrollFixLayer.prototype._updateScrollListeners=function(){return this.scrollVertical===!0?(this.on("touchmove",handleScrollingLayerTouchMove),this.on("touchstart",handleScrollingLayerTouchStart)):(this.off("touchmove",handleScrollingLayerTouchMove),this.off("touchstart",handleScrollingLayerTouchStart))},MobileScrollFixLayer.prototype.toInspect=function(){return"MobileScrollFixLayer"===this.constructor.name?MobileScrollFixLayer.__super__.toInspect.call(this,"Layer"):MobileScrollFixLayer.__super__.toInspect.apply(this,arguments)},MobileScrollFixLayer}(Framer.Layer),window.Layer=window.Framer.Layer=MobileScrollFixLayer}},function(module,exports,__webpack_require__){var BaseClass,Config,Context,ErrorDisplay,Layer,Utils,_context,_error,_errorDisplay,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;Utils=__webpack_require__(4),BaseClass=__webpack_require__(6).BaseClass,Context=__webpack_require__(42).Context,Layer=__webpack_require__(13).Layer,_error=null,_context=null,Config={},Utils.isMobile()?(Config.height=100,Config.textInset=20,Config.fontSize=32):(Config.height=40,Config.textInset=12,Config.fontSize=14),ErrorDisplay=function(superClass){function ErrorDisplay(){this.resize=bind(this.resize,this),null==this._context&&(this._context=new Context({name:"ErrorDisplay"})),this._context.index=1e3,this._context.run(function(_this){return function(){return Events.wrap(window).addEventListener("error",function(e){return _this.showError(e.message)}),Events.wrap(window).addEventListener("resize",function(e){return _this.resize()})}}(this))}return extend(ErrorDisplay,superClass),ErrorDisplay.prototype.createLayer=function(){return this._errorLayer?this._errorLayer:(this._context.run(function(_this){return function(){var error;return error=new Layer({name:"error",y:Align.bottom,width:Canvas.width,height:Config.height,backgroundColor:"rgba(255, 0, 0, 1)"}),error.text=new Layer({name:"text",parent:error,size:Utils.frameInset(error,Config.textInset),point:Align.center,backgroundColor:null,clip:!0}),error.text.style={font:Config.fontSize+"px/1em "+Utils.deviceFont(),lineHeight:parseInt(error.text.height-2)+"px",textAlign:"center",wordWrap:"break-word",textOverflow:"ellipsis"},error.onTap(function(){var ref;return null!=(ref=_this._errorLayer)&&ref.destroy(),_this._errorLayer=null}),_this._errorLayer=error,_this.resize()}}(this)),this._errorLayer)},ErrorDisplay.prototype.resize=function(){if(this._errorLayer)return this._errorLayer.width=Canvas.width,this._errorLayer.y=Canvas.height-this._errorLayer.height,this._errorLayer.text.size=Utils.frameInset(this._errorLayer,Config.textInset),this._errorLayer.text.point=Align.center},ErrorDisplay.prototype.showError=function(message){var animation,error;return error=this.createLayer(),error.scale=1.1,error.text.html=message,animation=error.animate({scale:1,options:{curve:"spring(800, 55, 10)"}})},ErrorDisplay.prototype.destroy=function(){var ref;return null!=(ref=this._context)?ref.destroy():void 0},ErrorDisplay}(BaseClass),_errorDisplay=null,exports.enable=function(){if(!_errorDisplay)return _errorDisplay=new ErrorDisplay},exports.disable=function(){if(_errorDisplay)return _errorDisplay.destroy(),_errorDisplay=null}},function(module,exports){var slice=[].slice;exports.enable=function(module){var ClassWrapper;return null==module&&(module=window),ClassWrapper=function(Klass){return function(){var args;return args=1<=arguments.length?slice.call(arguments,0):[],this.prototype=function(func,args,ctor){ctor.prototype=func.prototype;var child=new ctor,result=func.apply(child,args);return Object(result)===result?result:child}(Klass,args,function(){})}},module.Frame=ClassWrapper(Framer.Frame),module.Layer=ClassWrapper(Framer.Layer),module.BackgroundLayer=ClassWrapper(Framer.BackgroundLayer),module.VideoLayer=ClassWrapper(Framer.VideoLayer),module.Animation=ClassWrapper(Framer.Animation)}},function(module,exports,__webpack_require__){var Context,Hints,hints,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};Context=__webpack_require__(42).Context,Hints=function(){function Hints(){this._handleUp=bind(this._handleUp,this),this._handleDown=bind(this._handleDown,this),this._context=new Framer.Context({name:"Hints"}),this._context.index=1e4,this._context.run(function(_this){return function(){var capture;return Utils.isTouch()?(Events.wrap(document).addEventListener("touchstart",_this._handleDown,capture=!0),Events.wrap(document).addEventListener("touchend",_this._handleUp,capture=!0)):(Events.wrap(document).addEventListener("mousedown",_this._handleDown,capture=!0),Events.wrap(document).addEventListener("mouseup",_this._handleUp,capture=!0))}}(this))}return Hints.prototype._handleDown=function(event){if(!this._isPreloading())return this._target=event.target},Hints.prototype._handleUp=function(event){var context,i,layer,len,ref;if(!this._isPreloading()){if(layer=Framer.CurrentContext.layerForElement(this._target),!layer)for(ref=Context.all(),i=0,len=ref.length;i<len;i++)if(context=ref[i],context!==Framer.DefaultContext&&context!==Framer.CurrentContext&&context.layerForElement(this._target))return;if(!layer||!layer.willSeemToDoSomething())return this.showHints()}},Hints.prototype._isPreloading=function(){var ref;return(null!=(ref=Framer.Preloader)?ref.isLoading:void 0)===!0},Hints.prototype.showHints=function(){var context;return context=Framer.CurrentContext,this._context.run(function(){return _.invokeMap(context.rootLayers,"_showHint")})},Hints.prototype.destroy=function(){return this._context.destroy()},Hints}(),hints=null,exports.enable=function(){return null!=hints?hints:hints=new Hints(Framer.CurrentContext)},exports.disable=function(){if(hints)return hints.destroy(),hints=null},exports.showHints=function(){if(hints)return Utils.delay(.5,function(){return hints.showHints()})}},function(module,exports,__webpack_require__){var BaseClass,Context,Preloader,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};BaseClass=__webpack_require__(6).BaseClass,Context=__webpack_require__(42).Context,Preloader=function(superClass){function Preloader(options){null==options&&(options={}),this._setupContext=bind(this._setupContext,this),this._handleTimeout=bind(this._handleTimeout,this),this._handleProgress=bind(this._handleProgress,this),this._end=bind(this._end,this),this.end=bind(this.end,this),this._start=bind(this._start,this),this.start=bind(this.start,this),this.addPlayer=bind(this.addPlayer,this),this.addImage=bind(this.addImage,this),this.setLogo=bind(this.setLogo,this),this._media=[],this._mediaLoaded=[],this._isLoading=!1,this.timeout=30,this.start()}return extend(Preloader,superClass),Preloader.prototype.setupContext=function(){return this.context=new Context({name:"Preloader"}),this.context.run(this._setupContext)},Preloader.define("progress",{get:function(){return this._mediaLoaded.length/this._media.length||0}}),Preloader.define("time",{get:function(){return(Date.now()-this._startTime)/1e3}}),Preloader.define("isLoading",{get:function(){return this._isLoading}}),Preloader.define("isReady",{get:function(){return!!this.isLoading&&this._mediaLoaded.length===this._media.length}}),Preloader.prototype.setLogo=function(url){if(this._logo=url,this.brand)return this.brand.style["background-image"]="url('"+url+"')"},Preloader.prototype.addImagesFromContext=function(context){return _.pluck(context.layers,"image").map(this.addImage)},Preloader.prototype.addPlayersFromContext=function(context){return _.pluck(context.layers,"player").map(this.addPlayer)},Preloader.prototype.addImage=function(image){if(image&&indexOf.call(this._media,image)<0)return this._media.push(image),Utils.loadImage(image,function(_this){return function(error){return _this._mediaLoaded.push(image),_this._handleProgress()}}(this))},Preloader.prototype.addPlayer=function(player){if(player&&indexOf.call(this._media,player)<0&&null!=player.src&&"undefined"!==player.getAttribute("src")&&null!=player.readyState&&player.readyState<3)return this._media.push(player),Events.wrap(player).addEventListener("canplaythrough",function(_this){return function(){return _this._mediaLoaded.push(player),_this._handleProgress()}}(this))},Preloader.prototype.start=function(){if(!this.isLoading)return this._isLoading=!0,this._startTime=Date.now(),this.emit("start"),this.setupContext(),Utils.delay(.2,this._start)},Preloader.prototype._start=function(){return Utils.delay(.2,function(_this){return function(){return _this.cover.visible=!0}}(this)),this.addImagesFromContext(Framer.DefaultContext),this.addImagesFromContext(Framer.CurrentContext),this.addPlayersFromContext(Framer.DefaultContext),this.addPlayersFromContext(Framer.CurrentContext),this._media.length?Utils.delay(this.timeout,this._handleTimeout):this.end()},Preloader.prototype.end=function(){if(this.isLoading)return this._end()},Preloader.prototype._end=function(animated){var finalize,ref,ref1;return null==animated&&(animated=!0),Framer.DefaultContext.visible=!0,finalize=function(_this){return function(){var ref;return _this.emit("end"),_this._isLoading=!1,null!=(ref=_this.context)?ref.destroy():void 0}}(this),(null!=(ref=this.cover)?ref.visible:void 0)&&animated?(null!=(ref1=this.cover)&&ref1.animate({properties:{opacity:0},time:.13}),this.cover.onAnimationDidEnd(finalize)):finalize()},Preloader.prototype._handleProgress=function(){var ref;if(this.emit("progress",this.progress),null!=(ref=this.progressIndicator)&&ref.setProgress(this.progress),this.isReady)return this._handleLoaded()},Preloader.prototype._handleLoaded=function(){return this.time>.5?Utils.delay(.2,this.end):this.end()},Preloader.prototype._handleTimeout=function(){if(this.isLoading)return console.warn("Preloader timeout, ending"),this.end()},Preloader.prototype._setupContext=function(){var layout,logoUrl;return this.cover=new Layer({frame:Canvas,backgroundColor:"white",visible:!1}),this.progressIndicator=new CircularProgressComponent({size:160,point:Align.center,parent:this.cover}),this.progressIndicator.railsColor=Color.grey(0,.1),this.progressIndicator.progressColor="rgb(75, 169, 248)",this.progressIndicator.setProgress(this.progress),this.brand=new Layer({size:96,parent:this.cover,backgroundColor:null,style:{backgroundSize:"50%"}}),Utils.isMobile()&&(this.progressIndicator.scale=1.25,this.brand.scale=1.25),this._logo?this.setLogo(this._logo):(logoUrl="//resources.framerjs.com/static/images/preloader/framer-logo.png",_.startsWith(window.location.href,"file://")&&(logoUrl="http:"+logoUrl),this.setLogo(logoUrl)),(layout=function(_this){return function(){return _this.cover.frame=Canvas,_this.progressIndicator.point=Align.center,_this.brand.x=Align.center,_this.brand.y=Align.center(2)}}(this))(),Canvas.onResize(layout)},Preloader}(BaseClass),exports.enable=function(){return null!=Framer.Preloader?Framer.Preloader:Framer.Preloader=new Preloader},exports.disable=function(){if(Framer.Preloader)return Framer.Preloader._end(!1),Framer.Preloader=null},exports.addImage=function(url){var ref;return null!=(ref=Framer.Preloader)?ref.addImage(url):void 0},exports.setLogo=function(url){var ref;return null!=(ref=Framer.Preloader)?ref.setLogo(url):void 0}},function(module,exports,__webpack_require__){var BaseClass,Context,ShareComponent,ShareInfo,ShareInfoDisabled,_,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;_=__webpack_require__(1)._,BaseClass=__webpack_require__(6).BaseClass,Context=__webpack_require__(42).Context,ShareComponent=__webpack_require__(63).ShareComponent,ShareInfoDisabled=!1,ShareInfo=function(superClass){function ShareInfo(options){var run;null==options&&(options={}),this.context=new Framer.Context({name:"Sharing"}),this.context.index=2e4,run=function(_this){return function(){return _this.context.run(function(){var share;return share=new ShareComponent(Framer.Info)})}}(this),_.isEmpty(Framer.Info)?Utils.delay(0,run):run()}return extend(ShareInfo,superClass),ShareInfo.prototype.destroy=function(){return this.context.destroy()},ShareInfo}(BaseClass),exports.enable=function(){if(!ShareInfoDisabled)return null!=Framer.ShareInfo?Framer.ShareInfo:Framer.ShareInfo=new ShareInfo},exports.disable=function(force){if(null==force&&(force=!0),ShareInfoDisabled=force,Framer.ShareInfo)return Framer.ShareInfo.destroy(),Framer.ShareInfo=null}},function(module,exports,__webpack_require__){var Button,ShareComponent,ShareLayer,_,css,extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};_=__webpack_require__(1)._,css='@font-face {\n\tfont-family: "Roboto";\n\tfont-style: normal;\n\tfont-weight: 400;\n\tsrc: local("Roboto"), local("Roboto-Regular"), url("//fonts.gstatic.com/s/roboto/v15/zN7GBFwfMP4uA6AR0HCoLQ.ttf") format("truetype");\n}\n@font-face {\n\tfont-family: "Roboto";\n\tfont-style: normal;\n\tfont-weight: 500;\n\tsrc: local("Roboto Medium"), local("Roboto-Medium"), url("//fonts.gstatic.com/s/roboto/v15/RxZJdnzeo3R5zSexge8UUaCWcynf_cDxXwCLxiixG1c.ttf") format("truetype");\n}',Utils.insertCSS(css),ShareLayer=function(superClass){function ShareLayer(options){var defaultProps;ShareLayer.__super__.constructor.call(this,options),defaultProps={backgroundColor:null,ignoreEvents:!1,style:{fontFamily:"Roboto, Helvetica Neue, Helvetica, Arial, sans-serif",textAlign:"left",fontSize:"14px",color:"#111",lineHeight:"1",webkitFontSmoothing:"antialiased"}},options.parent&&(defaultProps.width=options.parent.width),this.props=_.merge(defaultProps,options)}return extend(ShareLayer,superClass),ShareLayer}(Layer),Button=function(superClass){function Button(options){var defaultProps;Button.__super__.constructor.call(this,options),options=_.defaults(options,{newWindow:!0}),defaultProps={height:33,style:{fontWeight:"500",webkitUserSelect:"text",borderRadius:3,textAlign:"center",paddingTop:"9px"}},this.props=_.merge(defaultProps,options),this.states={hover:{opacity:.8},full:{opacity:1}},this.animationOptions={time:.3},this.onMouseOver(function(){return this.style.cursor="pointer",this.animate("hover")}),this.onMouseOut(function(){return this.animate("full")}),this.onTap(function(){return options.shareButton?window.open(options.url,"Share","width=560, height=714"):window.open(options.url,"_blank"); | |
})}return extend(Button,superClass),Button}(ShareLayer),ShareComponent=function(){function ShareComponent(shareInfo){this.__calculateAvailableSpace=bind(this.__calculateAvailableSpace,this),this._openIfEnoughSpace=bind(this._openIfEnoughSpace,this);var projectId;this.shareInfo=_.clone(shareInfo),projectId=window.location.pathname.replace(/\//g,""),document.title=this.shareInfo.title,this.options={padding:20,width:250,minAvailableSpace:300,minAvailableSpaceFullScreen:500,maxDescriptionLength:145,id:projectId},this.state=localStorage.getItem("framerShareSheetState-"+this.options.id),this.options.fixed=!!this.state,this._checkData(),Utils.isMobile()||this.render()}return ShareComponent.prototype.render=function(){return this._renderSheet(),this._renderCTA(),this._renderToggleButtons(),this._renderInfo(),this.shareInfo.description&&this._renderDescription(),this.shareInfo.openInFramerURL&&this.shareInfo.date&&this._renderDate(),this.shareInfo.openInFramerURL&&this._renderButtons(),this._updateHeight(),this.sheet.minHeight=this.sheet.maxHeight,Utils.delay(.1,function(_this){return function(){return _this._calculateAvailableSpace(),"open"===_this.state?_this._openSheet():"closed"===_this.state?_this._closeSheet():_this._openIfEnoughSpace()}}(this)),this._startListening()},ShareComponent.prototype._truncateCredential=function(str){var maxLength,maxLengthWithAvatar;return maxLength=32,maxLengthWithAvatar=23,str=_.escape(str),this.shareInfo.twitter&&str.length>maxLengthWithAvatar?str=_.truncate(str,{length:maxLengthWithAvatar}):str.length>maxLength&&(str=_.truncate(str,{length:maxLength})),str},ShareComponent.prototype._checkData=function(){if(_.startsWith(this.shareInfo.twitter,"@")&&(this.shareInfo.twitter=_.trimStart(this.shareInfo.twitter,"@")),this.shareInfo.title)return this.shareInfo.title=this._truncateCredential(this.shareInfo.title)},ShareComponent.prototype._renderSheet=function(){return this.sheet=new ShareLayer({width:this.options.width,clip:!0,ignoreEvents:!1,point:10,borderRadius:4,backgroundColor:"#FFF",visible:!1,style:{boxShadow:"0 0 0 1px rgba(0, 0, 0, .12), 0 1px 3px rgba(0, 0, 0, .08)"}})},ShareComponent.prototype._renderToggleButtons=function(){var openLabel,openLogo;return this.open=new Layer({height:30,width:144,point:this.sheet.point,borderRadius:4,backgroundColor:"#FFF",visible:!1,style:{boxShadow:"0 0 0 1px rgba(0, 0, 0, .12), 0 1px 3px rgba(0, 0, 0, .08)"}}),openLogo=new Layer({parent:this.open,width:10,height:15,backgroundColor:null,style:{backgroundImage:"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABGdBTUEAALGPC/xhBQAAANRJREFUSA2t1dENgjAQBuA7wqsuoEs5hi5Bu4RsoQs4jiygvtceCgRoubZ3f0JI2t5HAy3FtnMGABp/qQRJ0UR7UBMdQS10BmqgK1CKBkEJGgVL0U2wBGXBXBQPN+eoiAsi2OcJDTeu4gYM/f6xzfHeb9OhKXhPBqk6Bc0CU9BskEOLwC20GIyhIjCEisElWlODRv5LCuru8bF+gfFnSrtP2qYVXHcGEK3GLMn4vUNFdPooSugE0nwV0DmogK5BIRoGhSiVx3N5Gzi/kv7qcWTZQ2hivjMmakz6/b3iAAAAAElFTkSuQmCC')"},y:Align.center(1),x:10}),openLabel=new ShareLayer({parent:this.open,width:this.open-40,height:14,x:30,y:Align.center(),html:"Made with Framer",style:{fontWeight:"500",fontSize:"13px"}}),this.close=new Layer({parent:this.cta,ignoreEvents:!1,size:9,point:6,backgroundColor:null,style:{backgroundImage:"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABGdBTUEAALGPC/xhBQAAAQxJREFUOBGt09sKgzAMBuB4Qr3Xe0Xf/4kUFXwB0QsFZdvfkWzWahEMuNm1/UjSznl9gh4I9wFDEQIty0J1XdO2bVYbRbRtS9M0yVqB+r5XE1VVXWJAmqahYRgIezgEyrKMoiiieZ7pDGNkHEcKgoDyPGeHBPI8j8qyPMV0pCgKCsNQIOezYHdq6BEyQmbIELjruqoczkRHoB0g/Liuq2o8YyjjCjmFMPGfGcbATJlgDiE9+g5/nygHmznQQ9/3eXj4NkJ6Y22nCfUA6QjKwWPDdpAJwRGjpKurscvoDOFm2O6ZZNR1nfWIdQz/TQ6BkiRRN/XqiLGJsTiOKU1TdswXUmZvvEhGN/YYl74B52DXxksJUvAAAAAASUVORK5CYII=')"}}),this._enableUserSelect(this.close),this._showPointer(this.close),this._showPointer(this.open)},ShareComponent.prototype._renderCTA=function(){var ctaLink,ctaLogo,ctaSlogan;return this.cta=new ShareLayer({parent:this.sheet,style:{borderBottom:"1px solid #E8E8E8"},height:118}),ctaLogo=new Layer({parent:this.cta,width:16,height:24,x:Align.center(),y:20,backgroundColor:null,style:{backgroundImage:"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAwCAYAAABwrHhvAAAABGdBTUEAALGPC/xhBQAAAShJREFUWAnF2MsNwjAMBmCngiPMgdiGMWAJ0iXoGB2APRALsACcAImAoaLqO3Fi21LU0+98iSKlrSkuzgLA/jNUyuCsmogvQBPxB2ghGgANRAcgjegFSCIGAVKIUYAEYhLAjfACcCK8AVyIIAAHIhiQGkECpESQAakQZlU+HDajVgYmP23mlp6nJqvcC9x+XT71AOiIQWTVQqIfVEQyAHUnkgIoiOSAUAQLIATBBvBFsAJ8EOyAKYQIYAwhBhhCiAL6EOKANiL6OsaG1MKrfHY+3nNwjv5/oFhGvdRkcFhYMCanriI29zsDioj6ECohagDupQKiCVBAdAHCiH6AIGIYIIQYBwggpgHMCD8AI8IfwIQIAzAhsG147W4WtteoL+vwSdsJRETWGylMpVP7hSF+AAAAAElFTkSuQmCC')"}}),ctaSlogan=new ShareLayer({parent:this.cta,y:ctaLogo.y+36,height:30,html:"Made with Framer",style:{textAlign:"center",fontSize:"18px"}}),this._enableUserSelect(ctaSlogan),ctaLink=new Button({url:"http://framerjs.com/?utm_source=share.framerjs.com&utm_medium=banner&utm_campaign=product",parent:this.cta,y:ctaSlogan.y+24,height:16,width:120,x:Align.center(),html:"Try it for free now",style:{textAlign:"center",color:"#00AAFF",padding:0}})},ShareComponent.prototype._renderInfo=function(){var avatarBorder,fallbackTitle,name,ref,showAuthor;if(this.info=new ShareLayer({parent:this.sheet,width:this.sheet.width-2*this.options.padding,y:this.cta.maxY+20,x:20}),this.credentials=new ShareLayer({parent:this.info,height:16}),fallbackTitle=_.replace("undefined"!=typeof FramerStudioInfo&&null!==FramerStudioInfo?FramerStudioInfo.documentTitle:void 0,/\.framer$/,""),this.credentialsTitle=new ShareLayer({parent:this.credentials,height:18,html:this.shareInfo.title||fallbackTitle,style:{fontWeight:"500",overflow:"hidden",whiteSpace:"nowrap",lineHeight:"1.3"}}),this._enableUserSelect(this.credentialsTitle),this.shareInfo.twitter&&(this.credentialsTitle.width=this.credentials-50),showAuthor=function(_this){return function(content){return null==content&&(content=_this.shareInfo.author),_this.credentials.height=40,_this.credentialsTitle.y=3,_this.credentialsAuthor=new ShareLayer({parent:_this.credentials,html:content,y:_this.credentialsTitle.maxY,height:18,style:{color:"#808080",overflow:"hidden",whiteSpace:"nowrap",lineHeight:"1.3"}}),_this._enableUserSelect(_this.credentialsAuthor),_this.shareInfo.twitter&&(_this.credentialsAuthor.width=_this.credentials-50),_this._showPointer(_this.credentialsAuthor)}}(this),this.shareInfo.twitter&&(this.credentials.x=50,this.avatar=new Button({url:"https://twitter.com/"+this.shareInfo.twitter,size:40,parent:this.info,borderRadius:100}),this.avatar.onImageLoadError(function(_this){return function(){return _this.credentials.x=0,_this.avatar.destroy()}}(this)),this.avatar.image="https://twitter.com/"+this.shareInfo.twitter+"/profile_image?size=bigger",avatarBorder=new ShareLayer({size:this.avatar.width-2,point:1,parent:this.avatar,borderRadius:100,style:{boxShadow:"0 0 0 1px rgba(0, 0, 0, .1)"}}),name=this.shareInfo.author?this.shareInfo.author:"@"+this.shareInfo.twitter,name=this._truncateCredential(name),showAuthor("<a href='http://twitter.com/"+this.shareInfo.twitter+"' style='text-decoration: none; -webkit-user-select: auto;' target='_blank'>"+name+"</a>"),this.credentialsTitle.width=155,null!=(ref=this.credentialsAuthor)&&(ref.width=155)),this.shareInfo.author&&!this.shareInfo.twitter)return showAuthor(this._truncateCredential(this.shareInfo.author))},ShareComponent.prototype._renderDate=function(){var date,months,verticalPosition;return verticalPosition=this.description?this.description.maxY:this.credentials.maxY,date=new Date(this.shareInfo.date),months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],this.date=new ShareLayer({parent:this.info,height:10,y:verticalPosition+12,html:"Shared on "+date.getDate()+" "+months[date.getMonth()]+" "+date.getFullYear(),style:{textTransform:"uppercase",fontSize:"11px",color:"#999",letterSpacing:".2px"}})},ShareComponent.prototype._enableUserSelect=function(layer){return layer.html||(layer.html=""),layer._elementHTML.style["-webkit-user-select"]="auto",layer._elementHTML.style.cursor="auto"},ShareComponent.prototype._renderDescription=function(){var descriptionStyle,parseDescription,showFullDescription;return parseDescription=function(text){var httpRegex,lineBreakRegex,removeAllTagsExceptBreaks,urlRegex,urlified;return urlRegex=/[-a-zA-Z0-9@:%_\+.~#?&\/\/=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)?/gi,httpRegex=/^((http|https):\/\/)/,lineBreakRegex=/(?:\r\n|\r|\n)/g,removeAllTagsExceptBreaks=/<(?!br\s*\/?)[^>]+>/g,text=_.escape(text),text=_.trimEnd(text),text=text.replace(lineBreakRegex,"<br>"),urlified=text.replace(urlRegex,function(url){var href;return href=url,httpRegex.test(url)||(href="//"+url),"<a href='"+href+"' style='-webkit-user-select: auto' target='_blank'>"+url+"</a>"})},this.description=new ShareLayer({parent:this.info,y:this.credentials.maxY+10,style:{lineHeight:"1.5",wordWrap:"break-word",color:"#111"}}),descriptionStyle={fontSize:"14px",fontFamily:"Roboto, Helvetica Neue, Helvetica, Arial, sans-serif",lineHeight:"1.5",wordWrap:"break-word"},this.descriptionSize=Utils.textSize(parseDescription(this.shareInfo.description),descriptionStyle,{width:""+this.description.width}),showFullDescription=function(_this){return function(){var ref;return _this.options.truncatedDescription=!1,_this.description.height=_this.descriptionSize.height,_this.description.html=parseDescription(_this.shareInfo.description),_this.shareInfo.openInFramerURL&&(null!=(ref=_this.date)&&(ref.y=_this.description.maxY+12),_this.buttons.y=(_this.date?_this.date:_this.description).maxY+18),_this._updateHeight(),_this._calculateAvailableSpace(),_this._enableUserSelect(_this.description)}}(this),this.shareInfo.description.length>this.options.maxDescriptionLength?(this.options.truncatedDescription=!0,this.options.shortDescription=_.truncate(this.shareInfo.description,{length:this.options.maxDescriptionLength,separator:" "}),this.descriptionTruncatedSize=Utils.textSize(parseDescription(this.options.shortDescription),descriptionStyle,{width:""+this.description.width}),this.description.height=this.descriptionTruncatedSize.height,this.description.html=parseDescription(this.options.shortDescription),this.description.once(Events.TapEnd,showFullDescription),this._showPointer(this.description)):(this.description.height=this.descriptionSize.height,this.description.html=parseDescription(this.shareInfo.description),this._enableUserSelect(this.description))},ShareComponent.prototype._renderButtons=function(){var tweet,verticalPosition;return verticalPosition=this.date?this.date.maxY:this.descripion?this.descripion.maxY:this.credentials.maxY,this.buttons=new ShareLayer({height:33,parent:this.info,y:verticalPosition+16}),this.buttonOpen=new Button({url:this.shareInfo.openInFramerURL,newWindow:!1,html:"Open in Framer",color:"#FFF",parent:this.buttons,width:139,borderRadius:3,backgroundColor:"00AAFF"}),this.buttonFacebook=new Button({shareButton:!0,url:"https://www.facebook.com/sharer/sharer.php?u="+window.location.href,parent:this.buttons,borderWidth:1,borderColor:"#D5D5D5",width:33,x:this.buttonOpen.maxX+6,style:{borderRadius:"3px 0 0 3px"}}),this.buttonFacebookIcon=new Layer({parent:this.buttonFacebook,width:7,height:14,point:Align.center(),backgroundColor:null,style:{backgroundImage:"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAABGdBTUEAALGPC/xhBQAAAO1JREFUOBFjZMABWltbJX///l0GlDYAYg1GRkZxIP3n////P4E0EyOQwABNTU05QAVtQMyLIQkVwNDY3Nzs9vfv3524NMDEmWAMED1z5kyuf//+zUEWw8VG0fjq1SsnoPNkcSlGFmdB5gA16SHzQWxgoPxnZma2UVNTOxkWFvYXJo+uUQwmAaOBhn2tqak5BuPDaBSnAhXJwySQaB4kNpyJohEoqgCXIcAgWyNjQ0PDfwKGY0gDA+w5uo0YirAJAMPiLFkagTaeIUsjExMTeTaCNGIkcmyBBRTDUEeWU0EBNqoRW7KBio0GDi0CBwAHJ0YrwGtXbwAAAABJRU5ErkJggg==')"}}),tweet="",(this.shareInfo.twitter||this.shareInfo.author)&&(tweet+=this.shareInfo.twitter?"A prototype by @"+this.shareInfo.twitter+". Design without limitations in @framerjs — ":this.shareInfo.author?"A prototype by "+this.shareInfo.author+". Design without limitations in @framerjs — ":"A @framerjs prototype by @"+this.shareInfo.author+". Design without limitations — "),tweet+=window.location.href,tweet=encodeURIComponent(tweet),this.buttonTwitter=new Button({shareButton:!0,url:"https://twitter.com/home?status="+tweet,parent:this.buttons,borderWidth:1,borderColor:"#D5D5D5",width:33,x:this.buttonFacebook.maxX-1,style:{borderRadius:"0 3px 3px 0"}}),this.buttonTwitterIcon=new Layer({parent:this.buttonTwitter,width:14,height:11,point:Align.center(),backgroundColor:null,style:{backgroundImage:"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAWCAYAAADTlvzyAAAABGdBTUEAALGPC/xhBQAAAr5JREFUSA2tlUloU1EUhpuhITFCAnUTR1zVgsQUF1pw4UbETUAq7tTiogUDKkiJSUjaTBvdFCliF5KVazdKigu3BYsjlEIcIOKEEgewTVoz+J2HCa8378UOuXC494z/O+e8e4+lZ4srk8kcq1arVywWyxChvI1Go8g573Q6p8Lh8IdmeOyO1uv1vZamYDN7MpnMABDB16r6A1qGLlut1gIfFOfsHhgYOK4BplKpq6APut3uS+Pj40uqsxGPzyg+M0Y6VQbYS4CHsfc3v+w5RueXl5efEuiw6qDy6XR6P5lNqXIT/hW2c4Dle3t7FzRA0N+JMYp+FE8mJydz1HyXSQCxOwe5zPSK3E+Gw9CFaDRa0AAB2a0zEtkIdS/Qo9tGGQN2Vmff8QjQfX6gQCKRmBNDrYe5XM5ZLBY/w3tNvF/g+BDdPM7zlUplGtDTJrZrxD6fzzE2NvanKbTLoVQqbaesN8k021QoewCAgMjK5bKi6syurKxI6VuAWkkR7iTgGRSPO7tvXEs1tum9tAwdDscXeuZHYdMru3Be9Xg8JX0cLUPu3lcyzOsV3TjT90V9/ySmBqgdrNbr7K2nSGRdWM/UGC1AftsFl8t1BINpvuytarhJ/p7q1wIUBY/tJzbpZVX4La4CSbT9hGsABYDsluhn/xbBJM4NqKHGaQPkPsqo+aUabpB/NDExcdfIpw0wHo+/ttlshzC+A72Bfhs5dpB9t9vtF830HechD/g+7uctnINmAfRyKvMNOknvZPoYLkNAgPbUarVreIzSz3VNBYA+0o4TVGjREOmf0MI0GMT4J7yDtzQIQBB+iH29r04d+xleq1gkEvnRCUx08rStks0Iu4ycA5DMO9n+tyoYzDJU07FYrO2CmzmvKWk2m/XTs1MAymQ4CO2AvGQgr73cUaH38LN9fX0PQqHQRn+onr9RuQfzn9jjeAAAAABJRU5ErkJggg==')"}})},ShareComponent.prototype._openIfEnoughSpace=function(){return this.availableSpace<this.threshold&&!this.options.fixed?this._closeSheet():this._openSheet()},ShareComponent.prototype._calculateAvailableSpace=_.debounce(function(){return this.__calculateAvailableSpace()},100,{maxWait:100}),ShareComponent.prototype.__calculateAvailableSpace=function(){var canvasHeight,device,verticalSpace;if(device=Framer.Device,this.threshold=this.options.minAvailableSpaceFullScreen,this.availableSpace=Canvas.width,"fullscreen"!==device.deviceType&&(this.threshold=this.options.minAvailableSpace,this.availableSpace=Screen.canvasFrame.x),canvasHeight=Canvas.height-this.options.padding,this.description&&canvasHeight<this.sheet.maxHeight&&canvasHeight>this.sheet.minHeight&&(this.sheet.height=canvasHeight,verticalSpace=this.sheet.height-this.cta.height-this.credentials.height,this.shareInfo.openInFramerURL?(verticalSpace-=this.buttons.height,verticalSpace-=this.date.height,verticalSpace-=95):verticalSpace-=36,this.description.height=verticalSpace,this.description.style.overflow="scroll",this.shareInfo.openInFramerURL&&(this.date.y=this.description.maxY+12,this.buttons.y=this.date.maxY+18)),this.description&&canvasHeight>this.sheet.maxHeight&&(this.sheet.height=this.sheet.maxHeight,this.options.truncatedDescription?this.description.height=this.descriptionTruncatedSize.height:this.description.height=this.descriptionSize.height,this.description.style.overflow="visible",this.shareInfo.openInFramerURL))return this.date.y=this.description.maxY+12,this.buttons.y=this.date.maxY+18},ShareComponent.prototype._startListening=function(){return this._calculateAvailableSpace(),this.sheet.onMouseOver(function(){return this.style={cursor:"default"}}),this.close.onClick(function(_this){return function(){return _this._closeSheet(),_this.options.fixed=!0,localStorage.setItem("framerShareSheetState-"+_this.options.id,"closed")}}(this)),this.sheet.onTouchStart(function(event){return event.stopPropagation()}),this.sheet.onTouchEnd(function(event){return event.stopPropagation()}),this.sheet.onTouchMove(function(event){return event.stopPropagation()}),this.open.onClick(function(_this){return function(event){return event.stopPropagation(),_this._openSheet(),_this.options.fixed=!0,localStorage.setItem("framerShareSheetState-"+_this.options.id,"open")}}(this)),Canvas.onResize(function(_this){return function(){if(_this._calculateAvailableSpace(),!_this.options.fixed)return _this._openIfEnoughSpace()}}(this))},ShareComponent.prototype._showPointer=function(layer){return layer.onMouseOver(function(){return this.style={cursor:"pointer"}})},ShareComponent.prototype._updateHeight=function(){return this.credentials.height=this.credentials.contentFrame().height,this.info.height=this.info.contentFrame().height,this.sheet.height=this.sheet.contentFrame().height+this.options.padding,this.sheet.maxHeight=this.sheet.height},ShareComponent.prototype._closeSheet=function(){return this.sheet.visible=!1,this.sheet.ignoreEvents=!0,this.open.visible=!0,this.open.ignoreEvents=!1},ShareComponent.prototype._openSheet=function(){return this.sheet.visible=!0,this.sheet.ignoreEvents=!1,this.open.visible=!1,this.open.ignoreEvents=!0},ShareComponent}(),exports.ShareComponent=ShareComponent},function(module,exports,__webpack_require__){var DOMEventManager,GestureInputDoubleTapTime,GestureInputEdgeSwipeDistance,GestureInputForceTapDesktop,GestureInputForceTapMobile,GestureInputForceTapMobilePollTime,GestureInputLongPressTime,GestureInputMinimumFingerDistance,GestureInputSwipeThreshold,GestureInputVelocityTime,Utils,bind=function(fn,me){return function(){return fn.apply(me,arguments)}};Utils=__webpack_require__(4),GestureInputLongPressTime=.5,GestureInputDoubleTapTime=.25,GestureInputSwipeThreshold=30,GestureInputEdgeSwipeDistance=30,GestureInputVelocityTime=.1,GestureInputForceTapDesktop=MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN,GestureInputForceTapMobile=.7,GestureInputForceTapMobilePollTime=1/30,GestureInputMinimumFingerDistance=30,DOMEventManager=__webpack_require__(43).DOMEventManager,exports.GestureInputRecognizer=function(){function GestureInputRecognizer(){this._process=bind(this._process,this),this.edgeswipedirectionend=bind(this.edgeswipedirectionend,this),this.edgeswipedirectionstart=bind(this.edgeswipedirectionstart,this),this.edgeswipedirection=bind(this.edgeswipedirection,this),this.swipedirectionend=bind(this.swipedirectionend,this),this.swipedirection=bind(this.swipedirection,this),this.swipedirectionstart=bind(this.swipedirectionstart,this),this.swipeend=bind(this.swipeend,this),this.swipe=bind(this.swipe,this),this.swipestart=bind(this.swipestart,this),this.rotateend=bind(this.rotateend,this),this.rotate=bind(this.rotate,this),this.rotatestart=bind(this.rotatestart,this),this.scaleend=bind(this.scaleend,this),this.scale=bind(this.scale,this),this.scalestart=bind(this.scalestart,this),this.pinchend=bind(this.pinchend,this),this.pinch=bind(this.pinch,this),this.pinchstart=bind(this.pinchstart,this),this.panright=bind(this.panright,this),this.panleft=bind(this.panleft,this),this.pandown=bind(this.pandown,this),this.panup=bind(this.panup,this),this.panend=bind(this.panend,this),this.pan=bind(this.pan,this),this.panstart=bind(this.panstart,this),this.forcetapend=bind(this.forcetapend,this),this.forcetapstart=bind(this.forcetapstart,this),this.forcetapchange=bind(this.forcetapchange,this),this._updateMacForce=bind(this._updateMacForce,this),this._updateTouchForce=bind(this._updateTouchForce,this),this.longpressend=bind(this.longpressend,this),this.longpressstart=bind(this.longpressstart,this),this.doubletap=bind(this.doubletap,this),this.tapend=bind(this.tapend,this),this.tapstart=bind(this.tapstart,this),this.tap=bind(this.tap,this),this.reset=bind(this.reset,this),this.touchend=bind(this.touchend,this),this.touchmove=bind(this.touchmove,this),this.touchstart=bind(this.touchstart,this),this.startTouch=bind(this.startTouch,this),this.startMouse=bind(this.startMouse,this),this.em=new DOMEventManager,this.em.wrap(window).addEventListener("mousedown",this.startMouse),this.em.wrap(window).addEventListener("touchstart",this.startTouch),this.session=null}return GestureInputRecognizer.prototype.destroy=function(){return this.em.removeAllListeners()},GestureInputRecognizer.prototype.cancel=function(){return window.clearTimeout(this.session.pressTimer),this.session=null},GestureInputRecognizer.prototype.startMouse=function(event){if(!this.session)return this.em.wrap(window).addEventListener("mousemove",this.touchmove),this.em.wrap(window).addEventListener("mouseup",this.touchend),this.touchstart(event)},GestureInputRecognizer.prototype.startTouch=function(event){if(!this.session)return this.em.wrap(window).addEventListener("touchmove",this.touchmove),this.em.wrap(window).addEventListener("touchend",this.touchend),this.touchstart(event)},GestureInputRecognizer.prototype.touchstart=function(event){if(!this.session)return this.em.wrap(window).addEventListener("webkitmouseforcechanged",this._updateMacForce),this.session={startEvent:this._getGestureEvent(event),lastEvent:null,startMultiEvent:null,startTime:Date.now(),pressTimer:window.setTimeout(this.longpressstart,1e3*GestureInputLongPressTime),started:{},events:[],eventCount:0},event=this._getGestureEvent(event),this.tapstart(event),Date.now()-this.doubleTapTime<1e3*GestureInputDoubleTapTime?this.doubletap(event):this.doubleTapTime=Date.now(),this._process(event),Utils.isTouch()?this._updateTouchForce():void 0},GestureInputRecognizer.prototype.touchmove=function(event){return this._process(this._getGestureEvent(event))},GestureInputRecognizer.prototype.touchend=function(event){var eventName,ref,ref1,value;if(null!=event.touches)if(Utils.isTouch()){if(0!==event.touches.length)return}else if(event.touches.length!==event.changedTouches.length)return;this.em.wrap(window).removeEventListener("mousemove",this.touchmove),this.em.wrap(window).removeEventListener("mouseup",this.touchend),this.em.wrap(window).removeEventListener("touchmove",this.touchmove),this.em.wrap(window).removeEventListener("touchend",this.touchend),this.em.wrap(window).removeEventListener("webkitmouseforcechanged",this._updateMacForce),event=this._getGestureEvent(event),ref=this.session.started;for(eventName in ref)value=ref[eventName],value&&this[eventName+"end"](event);return(null!=(ref1=this.session)?ref1.startEvent:void 0)?this.session.startEvent.target===event.target&&this.tap(event):this.tap(event),this.tapend(event),this.cancel()},GestureInputRecognizer.prototype.reset=function(){if(this.session)return this.touchend(this.session.lastEvent)},GestureInputRecognizer.prototype.tap=function(event){return this._dispatchEvent("tap",event)},GestureInputRecognizer.prototype.tapstart=function(event){return this._dispatchEvent("tapstart",event)},GestureInputRecognizer.prototype.tapend=function(event){return this._dispatchEvent("tapend",event)},GestureInputRecognizer.prototype.doubletap=function(event){return this._dispatchEvent("doubletap",event)},GestureInputRecognizer.prototype.longpressstart=function(){var event;if(this.session&&!this.session.started.longpress)return event=this._getGestureEvent(this.session.startEvent),this.session.started.longpress=event,this._dispatchEvent("longpressstart",event),this._dispatchEvent("longpress",event)},GestureInputRecognizer.prototype.longpressend=function(event){return this._dispatchEvent("longpressend",event)},GestureInputRecognizer.prototype._updateTouchForce=function(){var event,ref,ref1,ref2;if(null!=(ref=this.session)&&null!=(ref1=ref.lastEvent)&&null!=(ref2=ref1.touches)?ref2.length:void 0)return this.session.force=this.session.lastEvent.touches[0].force||0,event=this._getGestureEvent(this.session.lastEvent),this.forcetapchange(event),this.session.force>=GestureInputForceTapMobile?this.forcetapstart(event):this.forcetapend(event),setTimeout(this._updateTouchForce,GestureInputForceTapMobilePollTime)},GestureInputRecognizer.prototype._updateMacForce=function(event){if(this.session)return this.session.force=Utils.modulate(event.webkitForce,[0,3],[0,1]),this.forcetapchange(this._getGestureEvent(event)),event.webkitForce>=GestureInputForceTapDesktop?this.forcetapstart(event):this.forcetapend(event)},GestureInputRecognizer.prototype.forcetapchange=function(event){return this._dispatchEvent("forcetapchange",event)},GestureInputRecognizer.prototype.forcetapstart=function(event){if(this.session&&!this.session.started.forcetap)return this.session.started.forcetap=event,this._dispatchEvent("forcetapstart",event),this._dispatchEvent("forcetap",event)},GestureInputRecognizer.prototype.forcetapend=function(event){if(this.session&&this.session.started.forcetap)return this.session.started.forcetap=null,this._dispatchEvent("forcetapend",event)},GestureInputRecognizer.prototype.panstart=function(event){return this.session.started.pan=event,this._dispatchEvent("panstart",event,this.session.started.pan.target)},GestureInputRecognizer.prototype.pan=function(event){var direction;if(this._dispatchEvent("pan",event,this.session.started.pan.target),direction=this._getDirection(event.delta))return this["pan"+direction](event)},GestureInputRecognizer.prototype.panend=function(event){return this._dispatchEvent("panend",event,this.session.started.pan.target),this.session.started.pan=null},GestureInputRecognizer.prototype.panup=function(event){return this._dispatchEvent("panup",event,this.session.started.pan.target)},GestureInputRecognizer.prototype.pandown=function(event){return this._dispatchEvent("pandown",event,this.session.started.pan.target)},GestureInputRecognizer.prototype.panleft=function(event){return this._dispatchEvent("panleft",event,this.session.started.pan.target)},GestureInputRecognizer.prototype.panright=function(event){return this._dispatchEvent("panright",event,this.session.started.pan.target)},GestureInputRecognizer.prototype.pinchstart=function(event){return this.session.started.pinch=event,this.scalestart(event,this.session.started.pinch.target),this.rotatestart(event,this.session.started.pinch.target),this._dispatchEvent("pinchstart",event)},GestureInputRecognizer.prototype.pinch=function(event){return this._dispatchEvent("pinch",event),this.scale(event,this.session.started.pinch.target),this.rotate(event,this.session.started.pinch.target)},GestureInputRecognizer.prototype.pinchend=function(event){return this._dispatchEvent("pinchend",event),this.scaleend(event,this.session.started.pinch.target),this.rotateend(event,this.session.started.pinch.target),this.session.started.pinch=null},GestureInputRecognizer.prototype.scalestart=function(event){return this._dispatchEvent("scalestart",event)},GestureInputRecognizer.prototype.scale=function(event){return this._dispatchEvent("scale",event)},GestureInputRecognizer.prototype.scaleend=function(event){return this._dispatchEvent("scaleend",event)},GestureInputRecognizer.prototype.rotatestart=function(event){return this._dispatchEvent("rotatestart",event)},GestureInputRecognizer.prototype.rotate=function(event){return this._dispatchEvent("rotate",event)},GestureInputRecognizer.prototype.rotateend=function(event){return this._dispatchEvent("rotateend",event)},GestureInputRecognizer.prototype.swipestart=function(event){return this._dispatchEvent("swipestart",event),this.session.started.swipe=event,this.swipedirectionstart(event)},GestureInputRecognizer.prototype.swipe=function(event){return this._dispatchEvent("swipe",event),this.swipedirection(event)},GestureInputRecognizer.prototype.swipeend=function(event){return this._dispatchEvent("swipeend",event)},GestureInputRecognizer.prototype.swipedirectionstart=function(event){var direction,ref,ref1,ref2,ref3,swipeEdge;if(event.offsetDirection&&!this.session.started.swipedirection)return this.session.started.swipedirection=event,direction=this.session.started.swipedirection.offsetDirection,this._dispatchEvent("swipe"+direction+"start",event),swipeEdge=this._edgeForSwipeDirection(direction),"top"===swipeEdge&&0<(ref=event.start.y)&&ref<GestureInputEdgeSwipeDistance&&this.edgeswipedirectionstart(event),"right"===swipeEdge&&Screen.width-GestureInputEdgeSwipeDistance<(ref1=event.start.x)&&ref1<Screen.width&&this.edgeswipedirectionstart(event),"bottom"===swipeEdge&&Screen.height-GestureInputEdgeSwipeDistance<(ref2=event.start.y)&&ref2<Screen.height&&this.edgeswipedirectionstart(event),"left"===swipeEdge&&0<(ref3=event.start.x)&&ref3<GestureInputEdgeSwipeDistance?this.edgeswipedirectionstart(event):void 0},GestureInputRecognizer.prototype.swipedirection=function(event){var direction;if(this.session.started.swipedirection)return direction=this.session.started.swipedirection.offsetDirection,this._dispatchEvent("swipe"+direction,event),this.session.started.edgeswipedirection?this.edgeswipedirection(event):void 0},GestureInputRecognizer.prototype.swipedirectionend=function(event){var direction;if(this.session.started.swipedirection)return direction=this.session.started.swipedirection.offsetDirection,this._dispatchEvent("swipe"+direction+"end",event)},GestureInputRecognizer.prototype.edgeswipedirection=function(event){var swipeEdge;return swipeEdge=this._edgeForSwipeDirection(this.session.started.edgeswipedirection.offsetDirection),Screen.emit("edgeswipe",this._createEvent("edgeswipe",event)),Screen.emit("edgeswipe"+swipeEdge,this._createEvent("edgeswipe"+swipeEdge,event))},GestureInputRecognizer.prototype.edgeswipedirectionstart=function(event){var swipeEdge;if(!this.session.started.edgeswipedirection)return this.session.started.edgeswipedirection=event,swipeEdge=this._edgeForSwipeDirection(this.session.started.edgeswipedirection.offsetDirection),Screen.emit("edgeswipestart",this._createEvent("edgeswipestart",event)),Screen.emit("edgeswipe"+swipeEdge+"start",this._createEvent("edgeswipe"+swipeEdge+"start",event))},GestureInputRecognizer.prototype.edgeswipedirectionend=function(event){var swipeEdge;return swipeEdge=this._edgeForSwipeDirection(this.session.started.edgeswipedirection.offsetDirection),Screen.emit("edgeswipeend",this._createEvent("edgeswipeend",event)),Screen.emit("edgeswipe"+swipeEdge+"end",this._createEvent("edgeswipe"+swipeEdge+"end",event))},GestureInputRecognizer.prototype._process=function(event){if(this.session)return this.session.events.push(event),event.eventCount=this.session.eventCount++,(Math.abs(event.delta.x)>0||Math.abs(event.delta.y)>0)&&(this.session.started.pan?this.pan(event):this.panstart(event)),this.session.started.pinch&&1===event.fingers?this.pinchend(event):this.session.started.pinch||2!==event.fingers?this.session.started.pinch&&this.pinch(event):this.pinchstart(event),!this.session.started.swipe&&(Math.abs(event.offset.x)>GestureInputSwipeThreshold||Math.abs(event.offset.y)>GestureInputSwipeThreshold)?this.swipestart(event):this.session.started.swipe&&this.swipe(event),this.session.lastEvent=event},GestureInputRecognizer.prototype._getEventPoint=function(event){var ref;return(null!=(ref=event.touches)?ref.length:void 0)?this._getTouchPoint(event,0):{x:event.pageX,y:event.pageY}},GestureInputRecognizer.prototype._getGestureEvent=function(event){var eventPoint,events,i,len,pointKey,ref,ref1,ref2,ref3,ref4,ref5,ref6,ref7,ref8,ref9,touchPointA,touchPointB;for(eventPoint=Utils.convertPointFromContext(this._getEventPoint(event),Framer.CurrentContext,!0,!0),_.extend(event,{time:Date.now(),point:eventPoint,start:eventPoint,previous:eventPoint,offset:{x:0,y:0},offsetTime:0,offsetAngle:0,offsetDirection:null,delta:{x:0,y:0},deltaTime:0,deltaAngle:0,deltaDirection:null,force:0,velocity:{x:0,y:0},fingers:(null!=(ref=event.touches)?ref.length:void 0)||0,touchCenter:eventPoint,touchOffset:{x:0,y:0},touchDistance:0,scale:1,scaleDirection:null,rotation:0}),(null!=(ref1=this.session)?ref1.startEvent:void 0)&&(event.start=this.session.startEvent.point,event.offset=Utils.pointSubtract(event.point,event.start),event.offsetTime=event.time-this.session.startEvent.time,event.offsetAngle=Utils.pointAngle(this.session.startEvent.point,event.point),event.offsetDirection=this._getDirection(event.offset),event.touchCenterStart=this.session.startEvent.touchCenter),(null!=(ref2=this.session)?ref2.lastEvent:void 0)&&(event.previous=this.session.lastEvent.point,event.deltaTime=event.time-this.session.lastEvent.time,event.delta=Utils.pointSubtract(event.point,this.session.lastEvent.point), | |
event.deltaAngle=Utils.pointAngle(event.point,this.session.lastEvent.point),event.deltaDirection=this._getDirection(event.delta)),event.fingers>1&&(touchPointA=this._getTouchPoint(event,0),touchPointB=this._getTouchPoint(event,1),event.touchCenter=Utils.pointCenter(touchPointB,touchPointA),event.touchOffset=Utils.pointSubtract(touchPointB,touchPointA),event.touchDistance=_.max([GestureInputMinimumFingerDistance,Utils.pointDistance(touchPointA,touchPointB)]),event.rotation=Utils.pointAngle(touchPointA,touchPointB)),(null!=(ref3=this.session)?ref3.events:void 0)&&(events=_.filter(this.session.events,function(e){return 0!==e.eventCount&&e.time>event.time-1e3*GestureInputVelocityTime}),event.velocity=this._getVelocity(events)),(null!=(ref4=this.session)?ref4.started.pinch:void 0)&&(event.scale=event.touchDistance/this.session.started.pinch.touchDistance,event.scaleDirection=this._getScaleDirection(event.scale-this.session.lastEvent.scale),!event.scaleDirection&&(null!=(ref5=this.session)?ref5.lastEvent:void 0)&&(event.scaleDirection=this.session.lastEvent.scaleDirection)),(null!=(ref6=this.session)?ref6.lastEvent:void 0)&&(event.fingers!==(ref7=this.session.lastEvent.fingers)&&2===ref7&&(event.delta={x:0,y:0}),2===event.fingers&&2===this.session.lastEvent.fingers&&(event.delta=Utils.pointSubtract(event.touchCenter,this.session.lastEvent.touchCenter))),(null!=(ref8=this.session)?ref8.lastEvent:void 0)&&this.session.force&&(event.force=this.session.force),ref9=["point","start","previous","offset","delta","velocity","touchCenter","touchOffset"],i=0,len=ref9.length;i<len;i++)pointKey=ref9[i],event[pointKey+"X"]=event[pointKey].x,event[pointKey+"Y"]=event[pointKey].y;return event},GestureInputRecognizer.prototype._getTouchPoint=function(event,index){var point;return point={x:event.touches[index].pageX,y:event.touches[index].pageY}},GestureInputRecognizer.prototype._getDirection=function(offset){if(Math.abs(offset.x)>Math.abs(offset.y)){if(offset.x>0)return"right";if(offset.x<0)return"left"}if(Math.abs(offset.x)<Math.abs(offset.y)){if(offset.y<0)return"up";if(offset.y>0)return"down"}return null},GestureInputRecognizer.prototype._edgeForSwipeDirection=function(direction){return"down"===direction?"top":"left"===direction?"right":"up"===direction?"bottom":"right"===direction?"left":null},GestureInputRecognizer.prototype._getScaleDirection=function(offset){return offset>0?"up":offset<0?"down":null},GestureInputRecognizer.prototype._createEvent=function(type,event){var k,touchEvent,v;touchEvent=document.createEvent("MouseEvent"),touchEvent.initMouseEvent(type,!0,!0,window,event.detail,event.screenX,event.screenY,event.clientX,event.clientY,event.ctrlKey,event.shiftKey,event.altKey,event.metaKey,event.button,event.relatedTarget),touchEvent.touches=event.touches,touchEvent.changedTouches=event.touches,touchEvent.targetTouches=event.touches;for(k in event)v=event[k],touchEvent[k]=v;return touchEvent},GestureInputRecognizer.prototype._dispatchEvent=function(type,event,target){var ref,ref1,touchEvent;return touchEvent=this._createEvent(type,event),null==target&&(target=null!=(ref=this.session)&&null!=(ref1=ref.startEvent)?ref1.target:void 0),null==target&&(target=event.target),target.dispatchEvent(touchEvent)},GestureInputRecognizer.prototype._getVelocity=function(events){var current,first,time,velocity;return events.length<2?{x:0,y:0}:(current=events[events.length-1],first=events[0],time=current.time-first.time,velocity={x:(current.point.x-first.point.x)/time,y:(current.point.y-first.point.y)/time},Infinity===velocity.x&&(velocity.x=0),Infinity===velocity.y&&(velocity.y=0),velocity)},GestureInputRecognizer}()},function(module,exports){exports.date=1482499575,exports.branch="master",exports.hash="3821f65",exports.build=2466,exports.version=exports.branch+"/"+exports.hash},function(module,exports,__webpack_require__){var BaseClass,Canvas,Events,bind=function(fn,me){return function(){return fn.apply(me,arguments)}},extend=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},hasProp={}.hasOwnProperty;BaseClass=__webpack_require__(6).BaseClass,Events=__webpack_require__(15).Events,Canvas=function(superClass){function Canvas(options){null==options&&(options={}),this._handleResize=bind(this._handleResize,this),Canvas.__super__.constructor.call(this,options),Events.wrap(window).addEventListener("resize",this._handleResize)}return extend(Canvas,superClass),Canvas.define("width",{get:function(){return window.innerWidth}}),Canvas.define("height",{get:function(){return window.innerHeight}}),Canvas.define("size",{get:function(){return Utils.size(this)}}),Canvas.define("frame",{get:function(){return Utils.frame(this)}}),Canvas.define("backgroundColor",{importable:!1,exportable:!1,get:function(){return Framer.Device.background.backgroundColor},set:function(value){return Framer.Device.background.backgroundColor=value}}),Canvas.define("image",{importable:!1,exportable:!1,get:function(){return Framer.Device.background.image},set:function(value){return Framer.Device.background.image=value}}),Canvas.prototype.onResize=function(cb){return this.on("resize",cb)},Canvas.prototype._handleResize=function(event){return this.emit("resize"),this.emit("change:width"),this.emit("change:height"),this.emit("change:size"),this.emit("change:frame")},Canvas.prototype.toInspect=function(){return"<"+this.constructor.name+" "+this.width+"x"+this.height+">"},Canvas.prototype.convertPointToLayer=function(point,layer){return Utils.convertPointFromContext(point,layer,!0,!0)},Canvas.prototype.convertPointToScreen=function(point){var ctx;return ctx=Framer.Device.context,Utils.convertPointFromContext(point,ctx,!0,!0)},Canvas}(BaseClass),exports.Canvas=Canvas}]); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment