mirror of
https://github.com/niklasvh/html2canvas.git
synced 2023-08-10 21:13:10 +03:00
1 line
86 KiB
Plaintext
1 line
86 KiB
Plaintext
{"version":3,"sources":["webpack:///./node_modules/exenv/index.js","webpack:///./src/images/ic_close_black_24px.svg","webpack:///./node_modules/react-side-effect/lib/index.js","webpack:///./src/components/layout.js","webpack:///./src/images/ic_camera_alt_black_24px.svg","webpack:///./src/components/example.js","webpack:///./node_modules/shallowequal/index.js","webpack:///./node_modules/deep-equal/lib/keys.js","webpack:///./node_modules/react-helmet/lib/Helmet.js","webpack:///./node_modules/deep-equal/index.js","webpack:///./node_modules/react-helmet/lib/HelmetConstants.js","webpack:///./node_modules/deep-equal/lib/is_arguments.js","webpack:///./node_modules/react-helmet/lib/HelmetUtils.js"],"names":["canUseDOM","window","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","module","exports","_interopDefault","ex","React","React__default","shallowEqual","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","call","ReferenceError","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","Error","WrappedComponent","mountedInstances","state","emitChange","map","props","SideEffect","_Component","this","apply","arguments","subClass","superClass","prototype","Object","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","_inherits","peek","rewind","recordedState","undefined","shouldComponentUpdate","nextProps","componentWillMount","push","componentDidUpdate","componentWillUnmount","index","indexOf","splice","render","Component","displayName","name","getDisplayName","require","TemplateWrapper","children","title","CanvasContainer","open","complete","componentDidMount","container","appendChild","canvas","setTimeout","style","opacity","transform","css","background","position","top","left","zIndex","width","height","ref","onClick","onClose","src","close","alt","right","cursor","Example","data-html2canvas-ignore","setState","bottom","visibility","transition","borderRadius","content","backgroundColor","id","display","justifyContent","alignItems","boxShadow","icon","flex","margin","padding","color","border","html2canvas","body","allowTaint","innerWidth","innerHeight","scrollX","pageXOffset","scrollY","pageYOffset","x","y","then","catch","e","console","log","objA","objB","compare","compareContext","ret","keysA","keys","keysB","length","bHasOwnProperty","hasOwnProperty","bind","idx","key","valueA","valueB","shim","obj","__esModule","Helmet","_extends","assign","target","i","source","_createClass","defineProperties","descriptor","defineProperty","protoProps","staticProps","_react2","_interopRequireDefault","_propTypes2","_reactSideEffect2","_deepEqual2","_HelmetUtils","_HelmetConstants","default","_objectWithoutProperties","_class","_temp","HelmetSideEffects","handleClientStateChange","HelmetExport","_React$Component","HelmetWrapper","mapNestedChildrenToProps","child","nestedChildren","type","TAG_NAMES","SCRIPT","NOSCRIPT","innerHTML","STYLE","cssText","flattenArrayTypeChildren","_ref","_extends2","arrayTypeChildren","newChildProps","concat","mapObjectTypeChildren","_ref2","_extends3","_extends4","newProps","TITLE","titleAttributes","BODY","bodyAttributes","HTML","htmlAttributes","mapArrayTypeChildrenToProps","newFlattenedProps","forEach","arrayChildName","_extends5","warnOnInvalidChildren","mapChildrenToProps","_this2","Children","_child$props","childProps","convertReactPropstoHtmlAttributes","LINK","META","_props","set","propTypes","base","object","oneOfType","arrayOf","node","defaultTitle","string","defer","bool","encodeSpecialCharacters","link","meta","noscript","onChangeClientState","func","script","titleTemplate","defaultProps","mappedState","baseTag","linkTags","metaTags","noscriptTags","scriptTags","styleTags","renderStatic","pSlice","Array","slice","objectKeys","isArguments","deepEqual","actual","expected","opts","Date","getTime","strict","a","b","isUndefinedOrNull","isBuffer","ka","kb","sort","objEquiv","copy","ATTRIBUTE_NAMES","BASE","HEAD","REACT_TAG_MAP","VALID_TAG_NAMES","TAG_PROPERTIES","CHARSET","CSS_TEXT","HREF","HTTPEQUIV","INNER_HTML","ITEM_PROP","NAME","PROPERTY","REL","SRC","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","DEFAULT_TITLE","DEFER","ENCODE_SPECIAL_CHARACTERS","ON_CHANGE_CLIENT_STATE","TITLE_TEMPLATE","HTML_TAG_MAP","reduce","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","supportsArgumentsClass","toString","supported","unsupported","propertyIsEnumerable","warn","requestAnimationFrame","_typeof","Symbol","iterator","_objectAssign2","clock","str","encode","String","replace","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","filter","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","tag","lowerCaseAttributeKey","toLowerCase","getTagsFromPropsList","tagName","approvedSeenTags","isArray","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","property","rafPolyfill","now","callback","currentTime","cafPolyfill","clearTimeout","webkitRequestAnimationFrame","mozRequestAnimationFrame","global","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","cb","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","join","attributes","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","split","attributesToRemove","attributeKeys","attribute","setAttribute","indexToSave","_i","removeAttribute","tags","headElement","head","querySelector","tagNodes","querySelectorAll","indexToDelete","newElement","styleSheet","createTextNode","some","existingTag","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","initAttributes","_ref$title"],"mappings":";gFAAA,OAOA,WACE,aAEA,IAAIA,IAAiC,oBAAXC,SAA0BA,OAAOC,WAAYD,OAAOC,SAASC,eACnFC,EAAuB,CACzBJ,UAAWA,EACXK,cAAiC,oBAAXC,OACtBC,qBAAsBP,MAAgBC,OAAOO,mBAAoBP,OAAOQ,aACxEC,eAAgBV,KAAeC,OAAOU,aAMrC,KAFD,aACE,OAAOP,GACR,8BAdL,I,qBCPAQ,EAAOC,QAAU,kY,oCCEjB,SAASC,EAAgBC,GACvB,OAAOA,GAAoB,iBAAPA,GAAmB,YAAaA,EAAKA,EAAY,QAAIA,EAG3E,IAAIC,EAAQ,EAAQ,QAEhBC,EAAiBH,EAAgBE,GAEjCZ,EAAuBU,EAAgB,EAAQ,SAE/CI,EAAeJ,EAAgB,EAAQ,SAE3C,SAASK,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCAIxB,SAASC,EAA2BC,EAAMC,GACxC,IAAKD,EACH,MAAM,IAAIE,eAAe,6DAG3B,OAAOD,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BD,EAAPC,EAkH5Eb,EAAOC,QA/FP,SAAwBc,EAAoBC,EAA2BC,GACrE,GAAkC,mBAAvBF,EACT,MAAM,IAAIG,MAAM,iDAGlB,GAAyC,mBAA9BF,EACT,MAAM,IAAIE,MAAM,wDAGlB,QAAgC,IAArBD,GAAgE,mBAArBA,EACpD,MAAM,IAAIC,MAAM,mEAOlB,OAAO,SAAcC,GACnB,GAAgC,mBAArBA,EACT,MAAM,IAAID,MAAM,sDAGlB,IAAIE,EAAmB,GACnBC,OAAQ,EAEZ,SAASC,IACPD,EAAQN,EAAmBK,EAAiBG,KAAI,SAAUf,GACxD,OAAOA,EAASgB,UAGdC,EAAWrC,UACb4B,EAA0BK,GACjBJ,IACTI,EAAQJ,EAAiBI,IAI7B,IAAII,EAAa,SAAUC,GAGzB,SAASD,IAGP,OAFAlB,EAAgBoB,KAAMF,GAEfd,EAA2BgB,KAAMD,EAAWE,MAAMD,KAAME,YA2CjE,OAtGN,SAAmBC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIrB,UAAU,kEAAoEqB,GAG1FD,EAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,UAAW,CACrEG,YAAa,CACXC,MAAON,EACPO,YAAY,EACZC,UAAU,EACVC,cAAc,KAGdR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAyCvGW,CAAUjB,EAAYC,GAStBD,EAAWkB,KAAO,WAChB,OAAOtB,GAITI,EAAWmB,OAAS,WAClB,GAAInB,EAAWrC,UACb,MAAM,IAAI8B,MAAM,oFAGlB,IAAI2B,EAAgBxB,EAGpB,OAFAA,OAAQyB,EACR1B,EAAmB,GACZyB,GAGTpB,EAAWO,UAAUe,sBAAwB,SAA+BC,GAC1E,OAAQ1C,EAAa0C,EAAWrB,KAAKH,QAGvCC,EAAWO,UAAUiB,mBAAqB,WACxC7B,EAAiB8B,KAAKvB,MACtBL,KAGFG,EAAWO,UAAUmB,mBAAqB,WACxC7B,KAGFG,EAAWO,UAAUoB,qBAAuB,WAC1C,IAAIC,EAAQjC,EAAiBkC,QAAQ3B,MACrCP,EAAiBmC,OAAOF,EAAO,GAC/B/B,KAGFG,EAAWO,UAAUwB,OAAS,WAC5B,OAAOnD,EAAed,cAAc4B,EAAkBQ,KAAKH,QAGtDC,EAjDQ,CAkDfrB,EAAMqD,WAIR,OAFAhC,EAAWiC,YAAc,cA5E3B,SAAwBvC,GACtB,OAAOA,EAAiBuC,aAAevC,EAAiBwC,MAAQ,YA2EvBC,CAAezC,GAAoB,IAC5EM,EAAWrC,UAAYI,EAAqBJ,UACrCqC,K,4DCvIX,uEAKAoC,EAAQ,QAQOC,IAPS,SAAC,GAAD,IAAEC,EAAF,EAAEA,SAAF,OACpB,2BACI,gBAAC,IAAD,CAAQC,MAAM,8CACbD,EACD,gBAAC,IAAD,U,yCCVR/D,EAAOC,QAAU,0f,wLCMXgE,E,YACF,WAAYzC,GAAQ,IAAD,SACf,cAAMA,IAAN,MACKH,MAAQ,CAAC6C,MAAM,EAAOC,UAAU,GAFtB,E,4CAKnBC,kBAAA,WAAqB,IAAD,OACZzC,KAAK0C,YACL1C,KAAK0C,UAAUC,YAAY3C,KAAKH,MAAM+C,QACtCC,YAAW,WACP,EAAKhD,MAAM+C,OAAOE,MAAMC,QAAU,IAClC,EAAKlD,MAAM+C,OAAOE,MAAME,UAAY,eACrC,M,EAIXnB,OAAA,WAAU,IAAD,OACL,OACI,uBACIoB,IAAK,CACDC,WAAY,qBACZC,SAAU,QACVC,IAAK,EACLC,KAAM,EACNC,OAAQ,WACRC,MAAO,OACPC,OAAQ,QAEZC,IAAK,SAAAf,GAAS,OAAK,EAAKA,UAAYA,GACpCgB,QAAS,kBAAM,EAAK7D,MAAM8D,YAE1B,uBACIC,IAAKC,IACLC,IAAI,QACJb,IAAK,CAACE,SAAU,WAAYY,MAAO,OAAQX,IAAK,OAAQY,OAAQ,e,GAlCtDlC,aAyCTmC,E,YACjB,WAAYpE,GAAQ,IAAD,SACf,cAAMA,IAAN,MACKH,MAAQ,CAAC6C,MAAM,EAAOK,OAAQ,MAFpB,E,oCAKnBf,OAAA,WAAU,IAAD,OACL,OACI,uBAAKqC,2BAAA,GACAlE,KAAKN,MAAMkD,OACN,gBAACN,EAAD,CACIM,OAAQ5C,KAAKN,MAAMkD,OACnBe,QAAS,kBAAM,EAAKQ,SAAS,CAACvB,OAAQ,UAE1C,KACN,uBACIK,IAAK,CACDM,MAAO,QACPC,OAAQ,QACRL,SAAU,QACVG,OAAQ,OACRS,MAAO,WACPK,OAAQ,WACRC,WAAYrE,KAAKN,MAAM6C,KAAO,UAAY,SAC1C+B,WAAY,mDAGhB,uBACIrB,IAAK,CACDE,SAAU,WACVC,IAAK,QACLC,KAAM,QACNE,MAAO,QACPC,OAAQ,QACRe,aAAc,MACdjB,OAAQ,OACR,UAAW,CACPkB,QAAS,IACTC,gBAAiB,OACjBF,aAAc,MACdpB,SAAU,WACVI,MAAO,OACPC,OAAQ,OACRT,QAAS/C,KAAKN,MAAM6C,KAAO,EAAI,EAC/B+B,WACI,kJACJtB,UAAWhD,KAAKN,MAAM6C,KAAO,WAAa,cAIlD,uBACImC,GAAG,iBACHzB,IAAK,CACD0B,QAAS,OACTC,eAAgB,SAChBC,WAAY,SACZtB,MAAO,OACPC,OAAQ,OACRiB,gBAAiB,UACjBtB,SAAU,WACVE,KAAM,MACND,IAAK,MACLY,OAAQ,UACRhB,UAAW,wBACXuB,aAAc,MACdF,WAAY,UACZS,UACI,8FAERpB,QAAS,kBAAM,EAAKS,UAAS,kBAAa,CAAC5B,MAAd,EAAEA,WAE/B,uBACIqB,IAAKmB,IACL9B,IAAK,CACDM,MAAO,OACPC,OAAQ,OACRwB,KAAM,EACNC,OAAQ,GAEZnB,IAAI,sBAIhB,uBACIb,IAAK,CACDwB,gBAAiB,UACjBF,aAAc,MACdxB,QAAS/C,KAAKN,MAAM6C,KAAO,IAAO,EAClC+B,WACI,kJACJtB,UAAWhD,KAAKN,MAAM6C,KAAO,WAAa,WAC1CY,SAAU,WACVI,MAAO,OACPC,OAAQ,OACRF,OAAQ,MAGZ,uBACIL,IAAK,CACDM,MAAO,QACPC,OAAQ,QACRO,MAAO,OACPK,OAAQ,OACRc,QAAS,OACT/B,SAAU,QACVE,KAAM,EACN8B,MAAO,SAGX,iDACA,qBAAGlC,IAAK,CAACkC,MAAO,SAAhB,yEAIA,uBACIlC,IAAK,CACDiC,QAAS,UACTD,OAAQ,OACRG,OAAQ,iBACRD,MAAO,OACPR,QAAS,eACTX,OAAQ,WAEZN,QAAS,WACL2B,IAAY1H,SAAS2H,KAAM,CACvBC,YAAY,EACZhC,MAAO7F,OAAO8H,WACdhC,OAAQ9F,OAAO+H,YACfC,QAAShI,OAAOiI,YAChBC,QAASlI,OAAOmI,YAChBC,EAAGpI,OAAOiI,YACVI,EAAGrI,OAAOmI,cAETG,MAAK,SAAApD,GACF,EAAKuB,SAAS,CAACvB,WAEfA,EAAOE,MAAMK,SAAW,QACxBP,EAAOE,MAAMM,IAAM,IACnBR,EAAOE,MAAMO,KAAO,IACpBT,EAAOE,MAAMC,QAAU,IACvBH,EAAOE,MAAME,UAAY,WACzBJ,EAAOE,MAAMQ,OAAS,WACtBV,EAAOE,MAAMwB,WACT,qJAEP2B,OAAM,SAAAC,GACHC,QAAQC,IAAIF,QAhC5B,gB,GAlHSpE,e,kEC9CrCzD,EAAOC,QAAU,SAAsB+H,EAAMC,EAAMC,EAASC,GAC1D,IAAIC,EAAMF,EAAUA,EAAQrH,KAAKsH,EAAgBH,EAAMC,QAAQ,EAE/D,QAAY,IAARG,EACF,QAASA,EAGX,GAAIJ,IAASC,EACX,OAAO,EAGT,GAAoB,iBAATD,IAAsBA,GAAwB,iBAATC,IAAsBA,EACpE,OAAO,EAGT,IAAII,EAAQpG,OAAOqG,KAAKN,GACpBO,EAAQtG,OAAOqG,KAAKL,GAExB,GAAII,EAAMG,SAAWD,EAAMC,OACzB,OAAO,EAKT,IAFA,IAAIC,EAAkBxG,OAAOD,UAAU0G,eAAeC,KAAKV,GAElDW,EAAM,EAAGA,EAAMP,EAAMG,OAAQI,IAAO,CAC3C,IAAIC,EAAMR,EAAMO,GAEhB,IAAKH,EAAgBI,GACnB,OAAO,EAGT,IAAIC,EAASd,EAAKa,GACdE,EAASd,EAAKY,GAGlB,IAAY,KAFZT,EAAMF,EAAUA,EAAQrH,KAAKsH,EAAgBW,EAAQC,EAAQF,QAAO,SAEvC,IAART,GAAkBU,IAAWC,EAChD,OAAO,EAIX,OAAO,I,mBCtCT,SAASC,EAAKC,GACZ,IAAIX,EAAO,GAEX,IAAK,IAAIO,KAAOI,EACdX,EAAKpF,KAAK2F,GAGZ,OAAOP,GAVCtI,EAAOC,QAAiC,mBAAhBgC,OAAOqG,KAAsBrG,OAAOqG,KAAOU,GACrEA,KAAOA,G,4CCDf/I,EAAQiJ,YAAa,EACrBjJ,EAAQkJ,YAASrG,EAEjB,IAAIsG,EAAWnH,OAAOoH,QAAU,SAAUC,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAI1H,UAAU2G,OAAQe,IAAK,CACzC,IAAIC,EAAS3H,UAAU0H,GAEvB,IAAK,IAAIV,KAAOW,EACVvH,OAAOD,UAAU0G,eAAe7H,KAAK2I,EAAQX,KAC/CS,EAAOT,GAAOW,EAAOX,IAK3B,OAAOS,GAGLG,EAAe,WACjB,SAASC,EAAiBJ,EAAQ9H,GAChC,IAAK,IAAI+H,EAAI,EAAGA,EAAI/H,EAAMgH,OAAQe,IAAK,CACrC,IAAII,EAAanI,EAAM+H,GACvBI,EAAWtH,WAAasH,EAAWtH,aAAc,EACjDsH,EAAWpH,cAAe,EACtB,UAAWoH,IAAYA,EAAWrH,UAAW,GACjDL,OAAO2H,eAAeN,EAAQK,EAAWd,IAAKc,IAIlD,OAAO,SAAUlJ,EAAaoJ,EAAYC,GAGxC,OAFID,GAAYH,EAAiBjJ,EAAYuB,UAAW6H,GACpDC,GAAaJ,EAAiBjJ,EAAaqJ,GACxCrJ,GAdQ,GAoBfsJ,EAAUC,EAFD,EAAQ,SAMjBC,EAAcD,EAFD,EAAQ,SAMrBE,EAAoBF,EAFD,EAAQ,SAM3BG,EAAcH,EAFD,EAAQ,SAIrBI,EAAe,EAAQ,QAEvBC,EAAmB,EAAQ,QAE/B,SAASL,EAAuBf,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnCqB,QAASrB,GAIb,SAASsB,EAAyBtB,EAAKX,GACrC,IAAIgB,EAAS,GAEb,IAAK,IAAIC,KAAKN,EACRX,EAAKhF,QAAQiG,IAAM,GAClBtH,OAAOD,UAAU0G,eAAe7H,KAAKoI,EAAKM,KAC/CD,EAAOC,GAAKN,EAAIM,IAGlB,OAAOD,EAGT,SAAS/I,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCAIxB,SAASC,EAA2BC,EAAMC,GACxC,IAAKD,EACH,MAAM,IAAIE,eAAe,6DAG3B,OAAOD,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BD,EAAPC,EAmB5E,IAA6B4C,EACvB+G,EAAQC,EAoPVC,GAAoB,EAAIR,EAAkBI,SAASF,EAAarJ,mBAAoBqJ,EAAaO,wBAAyBP,EAAanJ,iBAAnH,EAJJ,WAClB,OAAO,QAIL2J,GAtPyBnH,EAsPHiH,EAnPjBD,EAAQD,EAAS,SAAUK,GAGhC,SAASC,IAGP,OAFAvK,EAAgBoB,KAAMmJ,GAEfnK,EAA2BgB,KAAMkJ,EAAiBjJ,MAAMD,KAAME,YA2LvE,OApNJ,SAAmBC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIrB,UAAU,kEAAoEqB,GAG1FD,EAASE,UAAYC,OAAOC,OAAOH,GAAcA,EAAWC,UAAW,CACrEG,YAAa,CACXC,MAAON,EACPO,YAAY,EACZC,UAAU,EACVC,cAAc,KAGdR,IAAYE,OAAOO,eAAiBP,OAAOO,eAAeV,EAAUC,GAAcD,EAASW,UAAYV,GAOzGW,CAAUoI,EAAeD,GAQzBC,EAAc9I,UAAUe,sBAAwB,SAA+BC,GAC7E,QAAQ,EAAImH,EAAYG,SAAS3I,KAAKH,MAAOwB,IAG/C8H,EAAc9I,UAAU+I,yBAA2B,SAAkCC,EAAOC,GAC1F,IAAKA,EACH,OAAO,KAGT,OAAQD,EAAME,MACZ,KAAKb,EAAiBc,UAAUC,OAChC,KAAKf,EAAiBc,UAAUE,SAC9B,MAAO,CACLC,UAAWL,GAGf,KAAKZ,EAAiBc,UAAUI,MAC9B,MAAO,CACLC,QAASP,GAIf,MAAM,IAAI/J,MAAM,IAAM8J,EAAME,KAAO,uGAGrCJ,EAAc9I,UAAUyJ,yBAA2B,SAAkCC,GACnF,IAAIC,EAEAX,EAAQU,EAAKV,MACbY,EAAoBF,EAAKE,kBACzBC,EAAgBH,EAAKG,cACrBZ,EAAiBS,EAAKT,eAC1B,OAAO7B,EAAS,GAAIwC,IAAoBD,EAAY,IAAcX,EAAME,MAAQ,GAAGY,OAAOF,EAAkBZ,EAAME,OAAS,GAAI,CAAC9B,EAAS,GAAIyC,EAAelK,KAAKoJ,yBAAyBC,EAAOC,MAAoBU,KAGvNb,EAAc9I,UAAU+J,sBAAwB,SAA+BC,GAC7E,IAAIC,EAAWC,EAEXlB,EAAQgB,EAAMhB,MACdmB,EAAWH,EAAMG,SACjBN,EAAgBG,EAAMH,cACtBZ,EAAiBe,EAAMf,eAE3B,OAAQD,EAAME,MACZ,KAAKb,EAAiBc,UAAUiB,MAC9B,OAAOhD,EAAS,GAAI+C,IAAWF,EAAY,IAAcjB,EAAME,MAAQD,EAAgBgB,EAAUI,gBAAkBjD,EAAS,GAAIyC,GAAgBI,IAElJ,KAAK5B,EAAiBc,UAAUmB,KAC9B,OAAOlD,EAAS,GAAI+C,EAAU,CAC5BI,eAAgBnD,EAAS,GAAIyC,KAGjC,KAAKxB,EAAiBc,UAAUqB,KAC9B,OAAOpD,EAAS,GAAI+C,EAAU,CAC5BM,eAAgBrD,EAAS,GAAIyC,KAInC,OAAOzC,EAAS,GAAI+C,IAAWD,EAAY,IAAclB,EAAME,MAAQ9B,EAAS,GAAIyC,GAAgBK,KAGtGpB,EAAc9I,UAAU0K,4BAA8B,SAAqCd,EAAmBO,GAC5G,IAAIQ,EAAoBvD,EAAS,GAAI+C,GAOrC,OALAlK,OAAOqG,KAAKsD,GAAmBgB,SAAQ,SAAUC,GAC/C,IAAIC,EAEJH,EAAoBvD,EAAS,GAAIuD,IAAoBG,EAAY,IAAcD,GAAkBjB,EAAkBiB,GAAiBC,OAE/HH,GAGT7B,EAAc9I,UAAU+K,sBAAwB,SAA+B/B,EAAOC,GAmBpF,OAAO,GAGTH,EAAc9I,UAAUgL,mBAAqB,SAA4BjJ,EAAUoI,GACjF,IAAIc,EAAStL,KAETiK,EAAoB,GAyCxB,OAvCA7B,EAAQO,QAAQ4C,SAASN,QAAQ7I,GAAU,SAAUiH,GACnD,GAAKA,GAAUA,EAAMxJ,MAArB,CAIA,IAAI2L,EAAenC,EAAMxJ,MACrByJ,EAAiBkC,EAAapJ,SAC9BqJ,EAAa7C,EAAyB4C,EAAc,CAAC,aAErDtB,GAAgB,EAAIzB,EAAaiD,mCAAmCD,GAIxE,OAFAH,EAAOF,sBAAsB/B,EAAOC,GAE5BD,EAAME,MACZ,KAAKb,EAAiBc,UAAUmC,KAChC,KAAKjD,EAAiBc,UAAUoC,KAChC,KAAKlD,EAAiBc,UAAUE,SAChC,KAAKhB,EAAiBc,UAAUC,OAChC,KAAKf,EAAiBc,UAAUI,MAC9BK,EAAoBqB,EAAOxB,yBAAyB,CAClDT,MAAOA,EACPY,kBAAmBA,EACnBC,cAAeA,EACfZ,eAAgBA,IAElB,MAEF,QACEkB,EAAWc,EAAOlB,sBAAsB,CACtCf,MAAOA,EACPmB,SAAUA,EACVN,cAAeA,EACfZ,eAAgBA,SAMxBkB,EAAWxK,KAAK+K,4BAA4Bd,EAAmBO,IAIjErB,EAAc9I,UAAUwB,OAAS,WAC/B,IAAIgK,EAAS7L,KAAKH,MACduC,EAAWyJ,EAAOzJ,SAClBvC,EAAQ+I,EAAyBiD,EAAQ,CAAC,aAE1CrB,EAAW/C,EAAS,GAAI5H,GAM5B,OAJIuC,IACFoI,EAAWxK,KAAKqL,mBAAmBjJ,EAAUoI,IAGxCpC,EAAQO,QAAQ/K,cAAckE,EAAW0I,IAGlD1C,EAAaqB,EAAe,KAAM,CAAC,CACjCjC,IAAK,YAuBL4E,IAAK,SAAarO,GAChBqE,EAAUrE,UAAYA,MAInB0L,EAjMe,CAkMtBf,EAAQO,QAAQ7G,WAAY+G,EAAOkD,UAAY,CAC/CC,KAAM1D,EAAYK,QAAQsD,OAC1BrB,eAAgBtC,EAAYK,QAAQsD,OACpC7J,SAAUkG,EAAYK,QAAQuD,UAAU,CAAC5D,EAAYK,QAAQwD,QAAQ7D,EAAYK,QAAQyD,MAAO9D,EAAYK,QAAQyD,OACpHC,aAAc/D,EAAYK,QAAQ2D,OAClCC,MAAOjE,EAAYK,QAAQ6D,KAC3BC,wBAAyBnE,EAAYK,QAAQ6D,KAC7C1B,eAAgBxC,EAAYK,QAAQsD,OACpCS,KAAMpE,EAAYK,QAAQwD,QAAQ7D,EAAYK,QAAQsD,QACtDU,KAAMrE,EAAYK,QAAQwD,QAAQ7D,EAAYK,QAAQsD,QACtDW,SAAUtE,EAAYK,QAAQwD,QAAQ7D,EAAYK,QAAQsD,QAC1DY,oBAAqBvE,EAAYK,QAAQmE,KACzCC,OAAQzE,EAAYK,QAAQwD,QAAQ7D,EAAYK,QAAQsD,QACxDnJ,MAAOwF,EAAYK,QAAQwD,QAAQ7D,EAAYK,QAAQsD,QACvD5J,MAAOiG,EAAYK,QAAQ2D,OAC3B5B,gBAAiBpC,EAAYK,QAAQsD,OACrCe,cAAe1E,EAAYK,QAAQ2D,QAClCzD,EAAOoE,aAAe,CACvBV,OAAO,EACPE,yBAAyB,GACxB5D,EAAO7H,KAAOc,EAAUd,KAAM6H,EAAO5H,OAAS,WAC/C,IAAIiM,EAAcpL,EAAUb,SAmB5B,OAjBKiM,IAEHA,GAAc,EAAIzE,EAAanJ,kBAAkB,CAC/C6N,QAAS,GACTvC,eAAgB,GAChB6B,yBAAyB,EACzB3B,eAAgB,GAChBsC,SAAU,GACVC,SAAU,GACVC,aAAc,GACdC,WAAY,GACZC,UAAW,GACXnL,MAAO,GACPqI,gBAAiB,MAIdwC,GACNpE,GASLG,EAAawE,aAAexE,EAAahI,OACzC3C,EAAQkJ,OAASyB,EACjB3K,EAAQqK,QAAUM,G,qBChWlB,IAAIyE,EAASC,MAAMtN,UAAUuN,MAEzBC,EAAa,EAAQ,QAErBC,EAAc,EAAQ,QAEtBC,EAAY1P,EAAOC,QAAU,SAAU0P,EAAQC,EAAUC,GAG3D,OAFKA,IAAMA,EAAO,IAEdF,IAAWC,IAEJD,aAAkBG,MAAQF,aAAoBE,KAChDH,EAAOI,YAAcH,EAASG,WAE3BJ,IAAWC,GAA6B,iBAAVD,GAAyC,iBAAZC,EAC9DC,EAAKG,OAASL,IAAWC,EAAWD,GAAUC,EA0BzD,SAAkBK,EAAGC,EAAGL,GACtB,IAAItG,EAAGV,EACP,GAAIsH,EAAkBF,IAAME,EAAkBD,GAAI,OAAO,EAEzD,GAAID,EAAEjO,YAAckO,EAAElO,UAAW,OAAO,EAGxC,GAAIyN,EAAYQ,GACd,QAAKR,EAAYS,KAIjBD,EAAIZ,EAAOxO,KAAKoP,GAChBC,EAAIb,EAAOxO,KAAKqP,GACTR,EAAUO,EAAGC,EAAGL,IAGzB,GAAIO,EAASH,GAAI,CACf,IAAKG,EAASF,GACZ,OAAO,EAGT,GAAID,EAAEzH,SAAW0H,EAAE1H,OAAQ,OAAO,EAElC,IAAKe,EAAI,EAAGA,EAAI0G,EAAEzH,OAAQe,IACxB,GAAI0G,EAAE1G,KAAO2G,EAAE3G,GAAI,OAAO,EAG5B,OAAO,EAGT,IACE,IAAI8G,EAAKb,EAAWS,GAChBK,EAAKd,EAAWU,GACpB,MAAOrI,GAEP,OAAO,EAKT,GAAIwI,EAAG7H,QAAU8H,EAAG9H,OAAQ,OAAO,EAKnC,IAHA6H,EAAGE,OACHD,EAAGC,OAEEhH,EAAI8G,EAAG7H,OAAS,EAAGe,GAAK,EAAGA,IAC9B,GAAI8G,EAAG9G,IAAM+G,EAAG/G,GAAI,OAAO,EAK7B,IAAKA,EAAI8G,EAAG7H,OAAS,EAAGe,GAAK,EAAGA,IAE9B,GADAV,EAAMwH,EAAG9G,IACJmG,EAAUO,EAAEpH,GAAMqH,EAAErH,GAAMgH,GAAO,OAAO,EAG/C,cAAcI,UAAaC,EA5ElBM,CAASb,EAAQC,EAAUC,KAItC,SAASM,EAAkB/N,GACzB,OAAOA,QAGT,SAASgO,EAAS3I,GAChB,SAAKA,GAAkB,iBAANA,GAAsC,iBAAbA,EAAEe,UAEtB,mBAAXf,EAAEgJ,MAA0C,mBAAZhJ,EAAE8H,SAIzC9H,EAAEe,OAAS,GAAqB,iBAATf,EAAE,O,qBCrC/BxH,EAAQiJ,YAAa,EACCjJ,EAAQyQ,gBAAkB,CAC9CpE,KAAM,iBACNE,KAAM,iBACNJ,MAAO,mBAHT,IAKIjB,EAAYlL,EAAQkL,UAAY,CAClCwF,KAAM,OACNrE,KAAM,OACNsE,KAAM,OACNpE,KAAM,OACNc,KAAM,OACNC,KAAM,OACNlC,SAAU,WACVD,OAAQ,SACRG,MAAO,QACPa,MAAO,SAiBLyE,GAfkB5Q,EAAQ6Q,gBAAkB7O,OAAOqG,KAAK6C,GAAW5J,KAAI,SAAUoC,GACnF,OAAOwH,EAAUxH,MAEE1D,EAAQ8Q,eAAiB,CAC5CC,QAAS,UACTC,SAAU,UACVC,KAAM,OACNC,UAAW,aACXC,WAAY,YACZC,UAAW,WACXC,KAAM,OACNC,SAAU,WACVC,IAAK,MACLC,IAAK,OAEaxR,EAAQ4Q,cAAgB,CAC1Ca,UAAW,YACXC,QAAS,UACTC,MAAO,YACPC,gBAAiB,kBACjBC,YAAa,cACb,aAAc,YACdC,SAAU,WACVC,SAAU,aAEO/R,EAAQgS,aAAe,CACxCC,cAAe,eACfC,MAAO,QACPC,0BAA2B,0BAC3BC,uBAAwB,sBACxBC,eAAgB,iBAECrS,EAAQsS,aAAetQ,OAAOqG,KAAKuI,GAAe2B,QAAO,SAAUvJ,EAAKJ,GAEzF,OADAI,EAAI4H,EAAchI,IAAQA,EACnBI,IACN,IACqBhJ,EAAQwS,kBAAoB,CAACtH,EAAUE,SAAUF,EAAUC,OAAQD,EAAUI,OAC9EtL,EAAQyS,iBAAmB,qB,mBCvDlD,IAAIC,EAEG,sBAFsB,WAC3B,OAAO1Q,OAAOD,UAAU4Q,SAAS/R,KAAKgB,WADX,GAO7B,SAASgR,EAAUjF,GACjB,MAAiD,sBAA1C3L,OAAOD,UAAU4Q,SAAS/R,KAAK+M,GAMxC,SAASkF,EAAYlF,GACnB,OAAOA,GAA2B,iBAAVA,GAA8C,iBAAjBA,EAAOpF,QAAsBvG,OAAOD,UAAU0G,eAAe7H,KAAK+M,EAAQ,YAAc3L,OAAOD,UAAU+Q,qBAAqBlS,KAAK+M,EAAQ,YAAa,GAX/M3N,EAAUD,EAAOC,QAAU0S,EAAyBE,EAAYC,GACxDD,UAAYA,EAOpB5S,EAAQ6S,YAAcA,G,sBCZtB,YAAA7S,EAAA,cACAA,EAAQ+S,KAAO/S,EAAQgT,sBAAwBhT,EAAQc,mBAAqBd,EAAQgB,iBAAmBhB,EAAQ0K,wBAA0B1K,EAAQoN,uCAAoCvK,EAErL,IAAIoQ,EAA4B,mBAAXC,QAAoD,iBAApBA,OAAOC,SAAwB,SAAUnK,GAC5F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAyB,mBAAXkK,QAAyBlK,EAAI9G,cAAgBgR,QAAUlK,IAAQkK,OAAOnR,UAAY,gBAAkBiH,GAGvHG,EAAWnH,OAAOoH,QAAU,SAAUC,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAI1H,UAAU2G,OAAQe,IAAK,CACzC,IAAIC,EAAS3H,UAAU0H,GAEvB,IAAK,IAAIV,KAAOW,EACVvH,OAAOD,UAAU0G,eAAe7H,KAAK2I,EAAQX,KAC/CS,EAAOT,GAAOW,EAAOX,IAK3B,OAAOS,GAKLS,EAAUC,EAFD,EAAQ,SAMjBqJ,EAAiBrJ,EAFD,EAAQ,SAIxBK,EAAmB,EAAQ,QAE/B,SAASL,EAAuBf,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnCqB,QAASrB,GAIb,IAoKMqK,EApKFlF,EAA0B,SAAiCmF,GAC7D,IAAIC,IAAS3R,UAAU2G,OAAS,QAAsB1F,IAAjBjB,UAAU,KAAmBA,UAAU,GAE5E,OAAe,IAAX2R,EACKC,OAAOF,GAGTE,OAAOF,GAAKG,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,WAG1HC,EAAwB,SAA+BC,GACzD,IAAIC,EAAiBC,EAAqBF,EAAWvJ,EAAiBc,UAAUiB,OAC5E2H,EAAoBD,EAAqBF,EAAWvJ,EAAiB4H,aAAaK,gBAEtF,GAAIyB,GAAqBF,EAEvB,OAAOE,EAAkBL,QAAQ,OAAO,WACtC,OAAOG,KAIX,IAAIG,EAAwBF,EAAqBF,EAAWvJ,EAAiB4H,aAAaC,eAC1F,OAAO2B,GAAkBG,QAAyBlR,GAGhDmR,EAAyB,SAAgCL,GAC3D,OAAOE,EAAqBF,EAAWvJ,EAAiB4H,aAAaI,yBAA2B,cAG9F6B,EAA6B,SAAoCC,EAASP,GAC5E,OAAOA,EAAUQ,QAAO,SAAU5S,GAChC,YAAiC,IAAnBA,EAAM2S,MACnB5S,KAAI,SAAUC,GACf,OAAOA,EAAM2S,MACZ3B,QAAO,SAAU6B,EAAUC,GAC5B,OAAOlL,EAAS,GAAIiL,EAAUC,KAC7B,KAGDC,EAA0B,SAAiCC,EAAmBZ,GAChF,OAAOA,EAAUQ,QAAO,SAAU5S,GAChC,YAAyD,IAA3CA,EAAM6I,EAAiBc,UAAUwF,SAC9CpP,KAAI,SAAUC,GACf,OAAOA,EAAM6I,EAAiBc,UAAUwF,SACvC8D,UAAUjC,QAAO,SAAUkC,EAAkBC,GAC9C,IAAKD,EAAiBlM,OAGpB,IAFA,IAAIF,EAAOrG,OAAOqG,KAAKqM,GAEdpL,EAAI,EAAGA,EAAIjB,EAAKE,OAAQe,IAAK,CACpC,IACIqL,EADetM,EAAKiB,GACiBsL,cAEzC,IAA0D,IAAtDL,EAAkBlR,QAAQsR,IAAiCD,EAAIC,GACjE,OAAOF,EAAiB5I,OAAO6I,GAKrC,OAAOD,IACN,KAGDI,EAAuB,SAA8BC,EAASP,EAAmBZ,GAEnF,IAAIoB,EAAmB,GACvB,OAAOpB,EAAUQ,QAAO,SAAU5S,GAChC,QAAI8N,MAAM2F,QAAQzT,EAAMuT,WAIM,IAAnBvT,EAAMuT,IACf/B,EAAK,WAAa+B,EAAU,mDAAwD7B,EAAQ1R,EAAMuT,IAAY,MAGzG,MACNxT,KAAI,SAAUC,GACf,OAAOA,EAAMuT,MACZN,UAAUjC,QAAO,SAAU0C,EAAcC,GAC1C,IAAIC,EAAmB,GACvBD,EAAaf,QAAO,SAAUO,GAI5B,IAHA,IAAIU,OAAsB,EACtB/M,EAAOrG,OAAOqG,KAAKqM,GAEdpL,EAAI,EAAGA,EAAIjB,EAAKE,OAAQe,IAAK,CACpC,IAAI+L,EAAehN,EAAKiB,GACpBqL,EAAwBU,EAAaT,eAEiB,IAAtDL,EAAkBlR,QAAQsR,IAAmCS,IAAwBhL,EAAiB0G,eAAeS,KAAkD,cAA3CmD,EAAIU,GAAqBR,eAAoCD,IAA0BvK,EAAiB0G,eAAeS,KAAoD,eAA7CmD,EAAIC,GAAuBC,gBACvRQ,EAAsBT,IAIyB,IAA7CJ,EAAkBlR,QAAQgS,IAAyBA,IAAiBjL,EAAiB0G,eAAeK,YAAckE,IAAiBjL,EAAiB0G,eAAeE,UAAYqE,IAAiBjL,EAAiB0G,eAAeM,YAClOgE,EAAsBC,GAI1B,IAAKD,IAAwBV,EAAIU,GAC/B,OAAO,EAGT,IAAIjT,EAAQuS,EAAIU,GAAqBR,cAUrC,OARKG,EAAiBK,KACpBL,EAAiBK,GAAuB,IAGrCD,EAAiBC,KACpBD,EAAiBC,GAAuB,KAGrCL,EAAiBK,GAAqBjT,KACzCgT,EAAiBC,GAAqBjT,IAAS,GACxC,MAIRqS,UAAU7H,SAAQ,SAAU+H,GAC7B,OAAOO,EAAahS,KAAKyR,MAK3B,IAFA,IAAIrM,EAAOrG,OAAOqG,KAAK8M,GAEd7L,EAAI,EAAGA,EAAIjB,EAAKE,OAAQe,IAAK,CACpC,IAAI+L,EAAehN,EAAKiB,GACpBgM,GAAW,EAAIlC,EAAe/I,SAAS,GAAI0K,EAAiBM,GAAeF,EAAiBE,IAChGN,EAAiBM,GAAgBC,EAGnC,OAAOL,IACN,IAAIT,WAGLX,EAAuB,SAA8BF,EAAW4B,GAClE,IAAK,IAAIjM,EAAIqK,EAAUpL,OAAS,EAAGe,GAAK,EAAGA,IAAK,CAC9C,IAAI/H,EAAQoS,EAAUrK,GAEtB,GAAI/H,EAAMkH,eAAe8M,GACvB,OAAOhU,EAAMgU,GAIjB,OAAO,MAqBLC,GACEnC,EAAQxD,KAAK4F,MACV,SAAUC,GACf,IAAIC,EAAc9F,KAAK4F,MAEnBE,EAActC,EAAQ,IACxBA,EAAQsC,EACRD,EAASC,IAETpR,YAAW,WACTiR,EAAYE,KACX,KAKLE,EAAc,SAAqBxP,GACrC,OAAOyP,aAAazP,IAGlB4M,EAA0C,oBAAX5T,OAAyBA,OAAO4T,uBAAyB5T,OAAO0W,6BAA+B1W,OAAO2W,0BAA4BP,EAAcQ,EAAOhD,uBAAyBwC,EAC/MS,EAAyC,oBAAX7W,OAAyBA,OAAO6W,sBAAwB7W,OAAO8W,4BAA8B9W,OAAO+W,yBAA2BP,EAAcI,EAAOC,sBAAwBL,EAE1M7C,EAAO,SAAcqD,GACvB,OAAOvO,SAAmC,mBAAjBA,QAAQkL,MAAuBlL,QAAQkL,KAAKqD,IAGnEC,EAAkB,KAmBlBC,EAAmB,SAA0BC,EAAUC,GACzD,IAAI3H,EAAU0H,EAAS1H,QACnBvC,EAAiBiK,EAASjK,eAC1BE,EAAiB+J,EAAS/J,eAC1BsC,EAAWyH,EAASzH,SACpBC,EAAWwH,EAASxH,SACpBC,EAAeuH,EAASvH,aACxBT,EAAsBgI,EAAShI,oBAC/BU,EAAasH,EAAStH,WACtBC,EAAYqH,EAASrH,UACrBnL,EAAQwS,EAASxS,MACjBqI,EAAkBmK,EAASnK,gBAC/BqK,EAAiBrM,EAAiBc,UAAUmB,KAAMC,GAClDmK,EAAiBrM,EAAiBc,UAAUqB,KAAMC,GAClDkK,EAAY3S,EAAOqI,GACnB,IAAIuK,EAAa,CACf9H,QAAS+H,EAAWxM,EAAiBc,UAAUwF,KAAM7B,GACrDC,SAAU8H,EAAWxM,EAAiBc,UAAUmC,KAAMyB,GACtDC,SAAU6H,EAAWxM,EAAiBc,UAAUoC,KAAMyB,GACtDC,aAAc4H,EAAWxM,EAAiBc,UAAUE,SAAU4D,GAC9DC,WAAY2H,EAAWxM,EAAiBc,UAAUC,OAAQ8D,GAC1DC,UAAW0H,EAAWxM,EAAiBc,UAAUI,MAAO4D,IAEtD2H,EAAY,GACZC,EAAc,GAClB9U,OAAOqG,KAAKsO,GAAYhK,SAAQ,SAAUuH,GACxC,IAAI6C,EAAsBJ,EAAWzC,GACjC8C,EAAUD,EAAoBC,QAC9BC,EAAUF,EAAoBE,QAE9BD,EAAQzO,SACVsO,EAAU3C,GAAW8C,GAGnBC,EAAQ1O,SACVuO,EAAY5C,GAAWyC,EAAWzC,GAAS+C,YAG/CT,GAAMA,IACNjI,EAAoBgI,EAAUM,EAAWC,IAGvCI,EAAe,SAAsBC,GACvC,OAAO9H,MAAM2F,QAAQmC,GAAiBA,EAAcC,KAAK,IAAMD,GAG7DT,EAAc,SAAqB3S,EAAOsT,QACvB,IAAVtT,GAAyB1E,SAAS0E,QAAUA,IACrD1E,SAAS0E,MAAQmT,EAAanT,IAGhC0S,EAAiBrM,EAAiBc,UAAUiB,MAAOkL,IAGjDZ,EAAmB,SAA0B3B,EAASuC,GACxD,IAAIC,EAAajY,SAASkY,qBAAqBzC,GAAS,GAExD,GAAKwC,EAAL,CASA,IALA,IAAIE,EAAwBF,EAAWG,aAAarN,EAAiBqI,kBACjEiF,EAAmBF,EAAwBA,EAAsBG,MAAM,KAAO,GAC9EC,EAAqB,GAAG/L,OAAO6L,GAC/BG,EAAgB7V,OAAOqG,KAAKgP,GAEvB/N,EAAI,EAAGA,EAAIuO,EAActP,OAAQe,IAAK,CAC7C,IAAIwO,EAAYD,EAAcvO,GAC1BnH,EAAQkV,EAAWS,IAAc,GAEjCR,EAAWG,aAAaK,KAAe3V,GACzCmV,EAAWS,aAAaD,EAAW3V,IAGQ,IAAzCuV,EAAiBrU,QAAQyU,IAC3BJ,EAAiBzU,KAAK6U,GAGxB,IAAIE,EAAcJ,EAAmBvU,QAAQyU,IAExB,IAAjBE,GACFJ,EAAmBtU,OAAO0U,EAAa,GAI3C,IAAK,IAAIC,EAAKL,EAAmBrP,OAAS,EAAG0P,GAAM,EAAGA,IACpDX,EAAWY,gBAAgBN,EAAmBK,IAG5CP,EAAiBnP,SAAWqP,EAAmBrP,OACjD+O,EAAWY,gBAAgB9N,EAAiBqI,kBACnC6E,EAAWG,aAAarN,EAAiBqI,oBAAsBoF,EAAcT,KAAK,MAC3FE,EAAWS,aAAa3N,EAAiBqI,iBAAkBoF,EAAcT,KAAK,QAI9ER,EAAa,SAAoB3L,EAAMkN,GACzC,IAAIC,EAAc/Y,SAASgZ,MAAQhZ,SAASiZ,cAAclO,EAAiBc,UAAUyF,MACjF4H,EAAWH,EAAYI,iBAAiBvN,EAAO,IAAMb,EAAiBqI,iBAAmB,KACzFwE,EAAU5H,MAAMtN,UAAUuN,MAAM1O,KAAK2X,GACrCvB,EAAU,GACVyB,OAAgB,EA0CpB,OAxCIN,GAAQA,EAAK5P,QACf4P,EAAKxL,SAAQ,SAAU+H,GACrB,IAAIgE,EAAarZ,SAASC,cAAc2L,GAExC,IAAK,IAAI6M,KAAapD,EACpB,GAAIA,EAAIjM,eAAeqP,GACrB,GAAIA,IAAc1N,EAAiB0G,eAAeK,WAChDuH,EAAWrN,UAAYqJ,EAAIrJ,eACtB,GAAIyM,IAAc1N,EAAiB0G,eAAeE,SACnD0H,EAAWC,WACbD,EAAWC,WAAWpN,QAAUmJ,EAAInJ,QAEpCmN,EAAWrU,YAAYhF,SAASuZ,eAAelE,EAAInJ,cAEhD,CACL,IAAIpJ,OAAkC,IAAnBuS,EAAIoD,GAA6B,GAAKpD,EAAIoD,GAC7DY,EAAWX,aAAaD,EAAW3V,GAKzCuW,EAAWX,aAAa3N,EAAiBqI,iBAAkB,QAEvDwE,EAAQ4B,MAAK,SAAUC,EAAa1V,GAEtC,OADAqV,EAAgBrV,EACTsV,EAAWK,YAAYD,MAE9B7B,EAAQ3T,OAAOmV,EAAe,GAE9BzB,EAAQ/T,KAAKyV,MAKnBzB,EAAQtK,SAAQ,SAAU+H,GACxB,OAAOA,EAAIsE,WAAWC,YAAYvE,MAEpCsC,EAAQrK,SAAQ,SAAU+H,GACxB,OAAO0D,EAAY/T,YAAYqQ,MAE1B,CACLuC,QAASA,EACTD,QAASA,IAITkC,EAAoC,SAA2C7B,GACjF,OAAOrV,OAAOqG,KAAKgP,GAAY9E,QAAO,SAAUe,EAAK1K,GACnD,IAAIuQ,OAAkC,IAApB9B,EAAWzO,GAAuBA,EAAM,KAAQyO,EAAWzO,GAAO,IAAO,GAAKA,EAChG,OAAO0K,EAAMA,EAAM,IAAM6F,EAAOA,IAC/B,KAuBDC,EAAuC,SAA8C/B,GACvF,IAAIgC,EAAYzX,UAAU2G,OAAS,QAAsB1F,IAAjBjB,UAAU,GAAmBA,UAAU,GAAK,GACpF,OAAOI,OAAOqG,KAAKgP,GAAY9E,QAAO,SAAUvJ,EAAKJ,GAEnD,OADAI,EAAIoB,EAAiBwG,cAAchI,IAAQA,GAAOyO,EAAWzO,GACtDI,IACNqQ,IA6CDC,EAAmB,SAA0BrO,EAAMkN,EAAM5E,GAC3D,OAAQtI,GACN,KAAKb,EAAiBc,UAAUiB,MAC9B,MAAO,CACLoN,YAAa,WACX,OAvCuExV,EAuC5BoU,EAAKpU,MAvC8BsT,EAuCvBc,EAAK/L,iBAnCnDoN,EAAa,CAC5B5Q,IAAK7E,IACOqG,EAAiBqI,mBAAoB,EAC/ClR,EAAQ6X,EAAqC/B,EADQmC,GAElD,CAAC1P,EAAQO,QAAQ/K,cAAc8K,EAAiBc,UAAUiB,MAAO5K,EAAOwC,IAR7C,IAA6CA,EAAOsT,EAClFmC,EAMAjY,GAkCEoR,SAAU,WACR,OA9EkB,SAA+B1H,EAAMlH,EAAOsT,EAAY9D,GAClF,IAAIkG,EAAkBP,EAAkC7B,GACpDqC,EAAiBxC,EAAanT,GAClC,OAAO0V,EAAkB,IAAMxO,EAAO,IAAMb,EAAiBqI,iBAAmB,WAAegH,EAAkB,IAAMtL,EAAwBuL,EAAgBnG,GAAU,KAAOtI,EAAO,IAAM,IAAMA,EAAO,IAAMb,EAAiBqI,iBAAmB,WAAetE,EAAwBuL,EAAgBnG,GAAU,KAAOtI,EAAO,IA2EpT0O,CAAsB1O,EAAMkN,EAAKpU,MAAOoU,EAAK/L,gBAAiBmH,KAI3E,KAAKnJ,EAAiBqG,gBAAgBpE,KACtC,KAAKjC,EAAiBqG,gBAAgBlE,KACpC,MAAO,CACLgN,YAAa,WACX,OAAOH,EAAqCjB,IAE9CxF,SAAU,WACR,OAAOuG,EAAkCf,KAI/C,QACE,MAAO,CACLoB,YAAa,WACX,OAjDyB,SAAsCtO,EAAMkN,GAC7E,OAAOA,EAAK7W,KAAI,SAAUoT,EAAKpL,GAC7B,IAAIsQ,EAEAC,IAAaD,EAAa,CAC5BhR,IAAKU,IACOc,EAAiBqI,mBAAoB,EAAMmH,GAazD,OAZA5X,OAAOqG,KAAKqM,GAAK/H,SAAQ,SAAUmL,GACjC,IAAIgC,EAAkB1P,EAAiBwG,cAAckH,IAAcA,EAEnE,GAAIgC,IAAoB1P,EAAiB0G,eAAeK,YAAc2I,IAAoB1P,EAAiB0G,eAAeE,SAAU,CAClI,IAAI9K,EAAUwO,EAAIrJ,WAAaqJ,EAAInJ,QACnCsO,EAAUE,wBAA0B,CAClCC,OAAQ9T,QAGV2T,EAAUC,GAAmBpF,EAAIoD,MAG9BhO,EAAQO,QAAQ/K,cAAc2L,EAAM4O,MA8B9BI,CAA6BhP,EAAMkN,IAE5CxF,SAAU,WACR,OA7FiB,SAA8B1H,EAAMkN,EAAM5E,GACnE,OAAO4E,EAAK5F,QAAO,SAAUe,EAAKoB,GAChC,IAAIwF,EAAgBlY,OAAOqG,KAAKqM,GAAKP,QAAO,SAAU2D,GACpD,QAASA,IAAc1N,EAAiB0G,eAAeK,YAAc2G,IAAc1N,EAAiB0G,eAAeE,aAClHuB,QAAO,SAAUvE,EAAQ8J,GAC1B,IAAIqB,OAAiC,IAAnBzE,EAAIoD,GAA6BA,EAAYA,EAAY,KAAQ3J,EAAwBuG,EAAIoD,GAAYvE,GAAU,IACrI,OAAOvF,EAASA,EAAS,IAAMmL,EAAOA,IACrC,IACCgB,EAAazF,EAAIrJ,WAAaqJ,EAAInJ,SAAW,GAC7C6O,GAAsE,IAAtDhQ,EAAiBoI,kBAAkBnP,QAAQ4H,GAC/D,OAAOqI,EAAM,IAAMrI,EAAO,IAAMb,EAAiBqI,iBAAmB,WAAeyH,GAAiBE,EAAgB,KAAO,IAAMD,EAAa,KAAOlP,EAAO,OAC3J,IAkFYoP,CAAqBpP,EAAMkN,EAAM5E,OAmClDvT,EAAQoN,kCA1GgC,SAA2C7L,GACjF,IAAI+Y,EAAiB1Y,UAAU2G,OAAS,QAAsB1F,IAAjBjB,UAAU,GAAmBA,UAAU,GAAK,GACzF,OAAOI,OAAOqG,KAAK9G,GAAOgR,QAAO,SAAUvJ,EAAKJ,GAE9C,OADAI,EAAIoB,EAAiBkI,aAAa1J,IAAQA,GAAOrH,EAAMqH,GAChDI,IACNsR,IAsGLta,EAAQ0K,wBApTsB,SAAiC6L,GACzDF,GACFJ,EAAqBI,GAGnBE,EAAStI,MACXoI,EAAkBrD,GAAsB,WACtCsD,EAAiBC,GAAU,WACzBF,EAAkB,YAItBC,EAAiBC,GACjBF,EAAkB,OAwStBrW,EAAQgB,iBA/Be,SAA0ByK,GAC/C,IAAIoD,EAAUpD,EAAKoD,QACfvC,EAAiBb,EAAKa,eACtBiH,EAAS9H,EAAK8H,OACd/G,EAAiBf,EAAKe,eACtBsC,EAAWrD,EAAKqD,SAChBC,EAAWtD,EAAKsD,SAChBC,EAAevD,EAAKuD,aACpBC,EAAaxD,EAAKwD,WAClBC,EAAYzD,EAAKyD,UACjBqL,EAAa9O,EAAK1H,MAClBA,OAAuBlB,IAAf0X,EAA2B,GAAKA,EACxCnO,EAAkBX,EAAKW,gBAC3B,MAAO,CACLsB,KAAM4L,EAAiBlP,EAAiBc,UAAUwF,KAAM7B,EAAS0E,GACjEjH,eAAgBgN,EAAiBlP,EAAiBqG,gBAAgBpE,KAAMC,EAAgBiH,GACxF/G,eAAgB8M,EAAiBlP,EAAiBqG,gBAAgBlE,KAAMC,EAAgB+G,GACxFnF,KAAMkL,EAAiBlP,EAAiBc,UAAUmC,KAAMyB,EAAUyE,GAClElF,KAAMiL,EAAiBlP,EAAiBc,UAAUoC,KAAMyB,EAAUwE,GAClEjF,SAAUgL,EAAiBlP,EAAiBc,UAAUE,SAAU4D,EAAcuE,GAC9E9E,OAAQ6K,EAAiBlP,EAAiBc,UAAUC,OAAQ8D,EAAYsE,GACxE/O,MAAO8U,EAAiBlP,EAAiBc,UAAUI,MAAO4D,EAAWqE,GACrExP,MAAOuV,EAAiBlP,EAAiBc,UAAUiB,MAAO,CACxDpI,MAAOA,EACPqI,gBAAiBA,GAChBmH,KAOPvT,EAAQc,mBArWiB,SAA4B6S,GACnD,MAAO,CACL9E,QAASyF,EAAwB,CAAClK,EAAiB0G,eAAeG,MAAO0C,GACzErH,eAAgB2H,EAA2B7J,EAAiBqG,gBAAgBpE,KAAMsH,GAClF1F,MAAO4F,EAAqBF,EAAWvJ,EAAiB4H,aAAaE,OACrEqB,OAAQM,EAAqBF,EAAWvJ,EAAiB4H,aAAaG,2BACtE3F,eAAgByH,EAA2B7J,EAAiBqG,gBAAgBlE,KAAMoH,GAClF7E,SAAU+F,EAAqBzK,EAAiBc,UAAUmC,KAAM,CAACjD,EAAiB0G,eAAeS,IAAKnH,EAAiB0G,eAAeG,MAAO0C,GAC7I5E,SAAU8F,EAAqBzK,EAAiBc,UAAUoC,KAAM,CAAClD,EAAiB0G,eAAeO,KAAMjH,EAAiB0G,eAAeC,QAAS3G,EAAiB0G,eAAeI,UAAW9G,EAAiB0G,eAAeQ,SAAUlH,EAAiB0G,eAAeM,WAAYuC,GACjR3E,aAAc6F,EAAqBzK,EAAiBc,UAAUE,SAAU,CAAChB,EAAiB0G,eAAeK,YAAawC,GACtHpF,oBAAqByF,EAAuBL,GAC5C1E,WAAY4F,EAAqBzK,EAAiBc,UAAUC,OAAQ,CAACf,EAAiB0G,eAAeU,IAAKpH,EAAiB0G,eAAeK,YAAawC,GACvJzE,UAAW2F,EAAqBzK,EAAiBc,UAAUI,MAAO,CAAClB,EAAiB0G,eAAeE,UAAW2C,GAC9G5P,MAAO2P,EAAsBC,GAC7BvH,gBAAiB6H,EAA2B7J,EAAiBqG,gBAAgBtE,MAAOwH,KAwVxF3T,EAAQgT,sBAAwBA,EAChChT,EAAQ+S,KAAOA,I","file":"commons-715ad6f0da92704b0fb1.js","sourcesContent":["/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n var ExecutionEnvironment = {\n canUseDOM: canUseDOM,\n canUseWorkers: typeof Worker !== 'undefined',\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen\n };\n\n if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n define(function () {\n return ExecutionEnvironment;\n });\n } else if (typeof module !== 'undefined' && module.exports) {\n module.exports = ExecutionEnvironment;\n } else {\n window.ExecutionEnvironment = ExecutionEnvironment;\n }\n})();","module.exports = \"data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjZmZmZmZmIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6Ii8+CiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+Cjwvc3ZnPgo=\"","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nvar ExecutionEnvironment = _interopDefault(require('exenv'));\n\nvar shallowEqual = _interopDefault(require('shallowequal'));\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state = void 0;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = function (_Component) {\n _inherits(SideEffect, _Component);\n\n function SideEffect() {\n _classCallCheck(this, SideEffect);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n } // Try to use displayName of wrapped component\n\n\n SideEffect.peek = function peek() {\n return state;\n }; // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n SideEffect.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n };\n\n SideEffect.prototype.componentWillMount = function componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n SideEffect.prototype.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n SideEffect.prototype.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n SideEffect.prototype.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.Component);\n\n SideEffect.displayName = 'SideEffect(' + getDisplayName(WrappedComponent) + ')';\n SideEffect.canUseDOM = ExecutionEnvironment.canUseDOM;\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","import React from 'react';\nimport Helmet from 'react-helmet';\nimport './layout.css';\nimport Example from '../components/example';\n\nrequire('prismjs/themes/prism-solarizedlight.css');\nconst TemplateWrapper = ({children}) =>\n <div>\n <Helmet title=\"html2canvas - Screenshots with JavaScript\" />\n {children}\n <Example />\n </div>;\n\nexport default TemplateWrapper;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjZmZmZmZmIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMuMiIvPgogICAgPHBhdGggZD0iTTkgMkw3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yaC0zLjE3TDE1IDJIOXptMyAxNWMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6Ii8+CiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+Cjwvc3ZnPgo=\"","import React, {Component} from 'react';\nimport './example.css';\nimport icon from '../images/ic_camera_alt_black_24px.svg';\nimport close from '../images/ic_close_black_24px.svg';\nimport html2canvas from 'html2canvas';\n\nclass CanvasContainer extends Component {\n constructor(props) {\n super(props);\n this.state = {open: false, complete: false};\n }\n\n componentDidMount() {\n if (this.container) {\n this.container.appendChild(this.props.canvas);\n setTimeout(() => {\n this.props.canvas.style.opacity = '1';\n this.props.canvas.style.transform = 'scale(0.8)';\n }, 10);\n }\n }\n\n render() {\n return (\n <div\n css={{\n background: 'rgba(0, 0, 0, 0.5)',\n position: 'fixed',\n top: 0,\n left: 0,\n zIndex: '99999998',\n width: '100%',\n height: '100%'\n }}\n ref={container => (this.container = container)}\n onClick={() => this.props.onClose()}\n >\n <img\n src={close}\n alt=\"Close\"\n css={{position: 'absolute', right: '20px', top: '20px', cursor: 'pointer'}}\n />\n </div>\n );\n }\n}\n\nexport default class Example extends Component {\n constructor(props) {\n super(props);\n this.state = {open: false, canvas: null};\n }\n\n render() {\n return (\n <div data-html2canvas-ignore>\n {this.state.canvas\n ? <CanvasContainer\n canvas={this.state.canvas}\n onClose={() => this.setState({canvas: null})}\n />\n : null}\n <div\n css={{\n width: '800px',\n height: '800px',\n position: 'fixed',\n zIndex: '1000',\n right: '-348.4px',\n bottom: '-327.2px',\n visibility: this.state.open ? 'visible' : 'hidden',\n transition: 'visibility 0.3s cubic-bezier(0.42, 0, 0.58, 1)'\n }}\n >\n <div\n css={{\n position: 'absolute',\n top: '344px',\n left: '344px',\n width: '112px',\n height: '112px',\n borderRadius: '50%',\n zIndex: 100001,\n ':before': {\n content: ' ',\n backgroundColor: '#fff',\n borderRadius: '50%',\n position: 'absolute',\n width: '100%',\n height: '100%',\n opacity: this.state.open ? 1 : 0,\n transition:\n 'transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1)',\n transform: this.state.open ? 'scale(1)' : 'scale(0)'\n }\n }}\n >\n <div\n id=\"tryhtml2canvas\"\n css={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: '56px',\n height: '56px',\n backgroundColor: '#33691e',\n position: 'absolute',\n left: '50%',\n top: '50%',\n cursor: 'pointer',\n transform: 'translate(-50%, -50%)',\n borderRadius: '50%',\n visibility: 'visible',\n boxShadow:\n '0 2px 2px 0 rgba(0,0,0,0.14), 0 1px 5px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.2)'\n }}\n onClick={() => this.setState(({open}) => ({open: !open}))}\n >\n <img\n src={icon}\n css={{\n width: '30px',\n height: '30px',\n flex: 1,\n margin: 0\n }}\n alt=\"Try html2canvas\"\n />\n </div>\n </div>\n <div\n css={{\n backgroundColor: '#33691e',\n borderRadius: '50%',\n opacity: this.state.open ? 0.95 : 0,\n transition:\n 'transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1)',\n transform: this.state.open ? 'scale(1)' : 'scale(0)',\n position: 'absolute',\n width: '100%',\n height: '100%',\n zIndex: 100000\n }}\n >\n <div\n css={{\n width: '456px',\n height: '600px',\n right: '56px',\n bottom: '56px',\n padding: '56px',\n position: 'fixed',\n left: 0,\n color: '#fff'\n }}\n >\n <h4>Try out html2canvas</h4>\n <p css={{color: '#fff'}}>\n Test out html2canvas by rendering the viewport from the current\n page.\n </p>\n <div\n css={{\n padding: '4px 8px',\n margin: '10px',\n border: '2px solid #fff',\n color: '#fff',\n display: 'inline-block',\n cursor: 'pointer'\n }}\n onClick={() => {\n html2canvas(document.body, {\n allowTaint: true,\n width: window.innerWidth,\n height: window.innerHeight,\n scrollX: window.pageXOffset,\n scrollY: window.pageYOffset,\n x: window.pageXOffset,\n y: window.pageYOffset\n })\n .then(canvas => {\n this.setState({canvas});\n\n canvas.style.position = 'fixed';\n canvas.style.top = '0';\n canvas.style.left = '0';\n canvas.style.opacity = '0';\n canvas.style.transform = 'scale(0)';\n canvas.style.zIndex = '99999999';\n canvas.style.transition =\n 'transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1)';\n })\n .catch(e => {\n console.log(e);\n });\n }}\n >\n Capture\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n","//\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n};","exports = module.exports = typeof Object.keys === 'function' ? Object.keys : shim;\nexports.shim = shim;\n\nfunction shim(obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n}","exports.__esModule = true;\nexports.Helmet = undefined;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactSideEffect = require(\"react-side-effect\");\n\nvar _reactSideEffect2 = _interopRequireDefault(_reactSideEffect);\n\nvar _deepEqual = require(\"deep-equal\");\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _HelmetUtils = require(\"./HelmetUtils.js\");\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n _inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n _classCallCheck(this, HelmetWrapper);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !(0, _deepEqual2.default)(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case _HelmetConstants.TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _extends2;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_extends2 = {}, _extends2[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _extends2));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _extends3, _extends4;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return _extends({}, newProps, (_extends3 = {}, _extends3[child.type] = nestedChildren, _extends3.titleAttributes = _extends({}, newChildProps), _extends3));\n\n case _HelmetConstants.TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case _HelmetConstants.TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_extends4 = {}, _extends4[child.type] = _extends({}, newChildProps), _extends4));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _extends5;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_extends5 = {}, _extends5[arrayChildName] = arrayTypeChildren[arrayChildName], _extends5));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!_HelmetConstants.VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return (0, _HelmetUtils.warn)(\"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return (0, _HelmetUtils.warn)(\"Only elements types \" + _HelmetConstants.VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}</\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n _react2.default.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = _objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = (0, _HelmetUtils.convertReactPropstoHtmlAttributes)(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.LINK:\n case _HelmetConstants.TAG_NAMES.META:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = _objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return _react2.default.createElement(Component, newProps);\n };\n\n _createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \"<img src='http://mysite.com/js/test.js'\"}]\n * @param {Function} onChangeClientState: \"(newState) => console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n\n return HelmetWrapper;\n }(_react2.default.Component), _class.propTypes = {\n base: _propTypes2.default.object,\n bodyAttributes: _propTypes2.default.object,\n children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.node), _propTypes2.default.node]),\n defaultTitle: _propTypes2.default.string,\n defer: _propTypes2.default.bool,\n encodeSpecialCharacters: _propTypes2.default.bool,\n htmlAttributes: _propTypes2.default.object,\n link: _propTypes2.default.arrayOf(_propTypes2.default.object),\n meta: _propTypes2.default.arrayOf(_propTypes2.default.object),\n noscript: _propTypes2.default.arrayOf(_propTypes2.default.object),\n onChangeClientState: _propTypes2.default.func,\n script: _propTypes2.default.arrayOf(_propTypes2.default.object),\n style: _propTypes2.default.arrayOf(_propTypes2.default.object),\n title: _propTypes2.default.string,\n titleAttributes: _propTypes2.default.object,\n titleTemplate: _propTypes2.default.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = (0, _HelmetUtils.mapStateOnServer)({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = (0, _reactSideEffect2.default)(_HelmetUtils.reducePropsToState, _HelmetUtils.handleClientStateChange, _HelmetUtils.mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexports.Helmet = HelmetExport;\nexports.default = HelmetExport;","var pSlice = Array.prototype.slice;\n\nvar objectKeys = require('./lib/keys.js');\n\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {}; // 7.1. All identical values are equivalent, as determined by ===.\n\n if (actual === expected) {\n return true;\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime(); // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected; // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n};\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) return false; // an identical 'prototype' property.\n\n if (a.prototype !== b.prototype) return false; //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n\n if (a.length !== b.length) return false;\n\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {\n //happens when one is a string literal and the other isn't\n return false;\n } // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n\n\n if (ka.length != kb.length) return false; //the same set of keys (although not necessarily the same order),\n\n ka.sort();\n kb.sort(); //~~~cheap key test\n\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) return false;\n } //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n\n\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n\n return typeof a === typeof b;\n}","exports.__esModule = true;\nvar ATTRIBUTE_NAMES = exports.ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = exports.TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = exports.VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = exports.TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\"\n};\nvar REACT_TAG_MAP = exports.REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = exports.HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = exports.HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = exports.SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = exports.HELMET_ATTRIBUTE = \"data-react-helmet\";","var supportsArgumentsClass = function () {\n return Object.prototype.toString.call(arguments);\n}() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\nexports.supported = supported;\n\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\n;\nexports.unsupported = unsupported;\n\nfunction unsupported(object) {\n return object && typeof object == 'object' && typeof object.length == 'number' && Object.prototype.hasOwnProperty.call(object, 'callee') && !Object.prototype.propertyIsEnumerable.call(object, 'callee') || false;\n}\n\n;","exports.__esModule = true;\nexports.warn = exports.requestAnimationFrame = exports.reducePropsToState = exports.mapStateOnServer = exports.handleClientStateChange = exports.convertReactPropstoHtmlAttributes = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _objectAssign = require(\"object-assign\");\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, _HelmetConstants.TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[_HelmetConstants.TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[_HelmetConstants.TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attributeKey === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT || attributeKey === _HelmetConstants.TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = (0, _objectAssign2.default)({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([_HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n bodyAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.LINK, [_HelmetConstants.TAG_PROPERTIES.REL, _HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.META, [_HelmetConstants.TAG_PROPERTIES.NAME, _HelmetConstants.TAG_PROPERTIES.CHARSET, _HelmetConstants.TAG_PROPERTIES.HTTPEQUIV, _HelmetConstants.TAG_PROPERTIES.PROPERTY, _HelmetConstants.TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.NOSCRIPT, [_HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.SCRIPT, [_HelmetConstants.TAG_PROPERTIES.SRC, _HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.STYLE, [_HelmetConstants.TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(_HelmetConstants.TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(_HelmetConstants.TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(_HelmetConstants.TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(_HelmetConstants.TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(_HelmetConstants.TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(_HelmetConstants.TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(_HelmetConstants.TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(_HelmetConstants.TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + _HelmetConstants.HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\" : \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = _HelmetConstants.SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"</\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[_HelmetConstants.REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[_HelmetConstants.HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[_HelmetConstants.HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [_react2.default.createElement(_HelmetConstants.TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[_HelmetConstants.HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = _HelmetConstants.REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || mappedAttribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return _react2.default.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case _HelmetConstants.ATTRIBUTE_NAMES.BODY:\n case _HelmetConstants.ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(_HelmetConstants.TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(_HelmetConstants.TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(_HelmetConstants.TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(_HelmetConstants.TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(_HelmetConstants.TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nexports.convertReactPropstoHtmlAttributes = convertReactPropstoHtmlAttributes;\nexports.handleClientStateChange = handleClientStateChange;\nexports.mapStateOnServer = mapStateOnServer;\nexports.reducePropsToState = reducePropsToState;\nexports.requestAnimationFrame = requestAnimationFrame;\nexports.warn = warn;"],"sourceRoot":""} |