-
Notifications
You must be signed in to change notification settings - Fork 0
/
26-da4dfc4360a3aae78cad.js.map
1 lines (1 loc) · 244 KB
/
26-da4dfc4360a3aae78cad.js.map
1
{"version":3,"sources":["webpack:///./node_modules/unipointer/unipointer.js","webpack:///./node_modules/unidragger/unidragger.js","webpack:///./node_modules/flickity/js/animate.js","webpack:///./node_modules/flickity/js/page-dots.js","webpack:///./node_modules/ev-emitter/ev-emitter.js","webpack:///./node_modules/flickity/js/flickity.js","webpack:///./node_modules/flickity/js/index.js","webpack:///./node_modules/get-size/get-size.js","webpack:///./node_modules/flickity/js/drag.js","webpack:///./node_modules/fizzy-ui-utils/utils.js","webpack:///./node_modules/flickity/js/slide.js","webpack:///./src/components/atoms/Carousel.js","webpack:///./src/images/banner/zh/dummies.png","webpack:///./src/images/banner/zh/apple.png","webpack:///./src/images/banner/zh/world.png","webpack:///./src/images/banner/en/world.png","webpack:///./src/components/molecules/dashboard/Carousel.js","webpack:///./node_modules/flickity/js/lazyload.js","webpack:///./node_modules/react-responsive/dist/react-responsive.js","webpack:///./node_modules/flickity/js/player.js","webpack:///./node_modules/flickity/js/add-remove-cell.js","webpack:///./node_modules/desandro-matches-selector/matches-selector.js","webpack:///./node_modules/flickity/js/cell.js","webpack:///./node_modules/flickity/js/prev-next-button.js"],"names":["window","factory","EvEmitter","Unipointer","proto","prototype","Object","create","bindStartEvent","elem","this","_bindStartEvent","unbindStartEvent","isAdd","bindMethod","undefined","startEvent","PointerEvent","handleEvent","event","method","type","getTouch","touches","i","length","touch","identifier","pointerIdentifier","onmousedown","button","_pointerDown","ontouchstart","changedTouches","onpointerdown","pointer","isPointerDown","pointerId","pointerDown","_bindPostStartEvents","emitEvent","postStartEvents","mousedown","touchstart","pointerdown","events","forEach","eventName","addEventListener","_boundPointerEvents","_unbindPostStartEvents","removeEventListener","onmousemove","_pointerMove","onpointermove","ontouchmove","pointerMove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerUp","_pointerReset","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","getPointerPoint","x","pageX","y","pageY","Unidragger","bindHandles","_bindHandles","unbindHandles","touchAction","_touchActionValue","handles","handle","style","okayPointerDown","pointerDownPointer","preventDefault","pointerDownBlur","cursorNodes","TEXTAREA","INPUT","SELECT","OPTION","clickTypes","radio","checkbox","submit","image","file","isCursorNode","target","nodeName","isClickType","isOkay","focused","document","activeElement","blur","body","moveVector","_dragPointerMove","_dragMove","isDragging","hasDragStarted","_dragStart","Math","abs","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","dragStart","dragMove","setTimeout","bind","dragEnd","onclick","isIgnoringMouseUp","staticClick","utils","isAnimating","restingFrames","animate","applyDragForce","applySelectedAttraction","previousX","integratePhysics","positionSlider","settle","_this","requestAnimationFrame","options","wrapAround","cells","modulo","slideableWidth","shiftWrapCells","setTranslateX","dispatchScrollEvent","is3d","cursorPosition","rightToLeft","translateX","getPositionValue","slider","transform","firstSlide","slides","positionX","progress","slidesWidth","dispatchEvent","selectedSlide","velocity","position","percentPosition","round","size","innerWidth","isFreeScrolling","selectedIndex","beforeGap","_shiftCells","beforeShiftCells","afterGap","afterShiftCells","gap","shift","cell","cellShift","wrapShift","outerWidth","getFrictionFactor","force","isDraggable","dragForce","dragX","applyForce","selectedAttraction","Flickity","PageDots","parent","_create","holder","createElement","className","dots","handleClick","onClick","on","childUIPointerDown","activate","setDots","element","appendChild","deactivate","removeChild","delta","addDots","removeDots","count","fragment","createDocumentFragment","newDots","max","dot","setAttribute","push","concat","splice","updateSelected","selectedDot","removeAttribute","onTap","uiChange","index","indexOf","select","destroy","allOff","extend","defaults","pageDots","createMethods","_createPageDots","activatePageDots","updateSelectedPageDots","updatePageDots","deactivatePageDots","listener","_events","listeners","once","onceEvents","_onceEvents","off","args","slice","onceListeners","apply","getSize","Cell","Slide","animatePrototype","jQuery","getComputedStyle","console","moveElements","elems","toElem","makeArray","GUID","instances","queryElement","getQueryElement","flickityGUID","instance","option","$element","constructor","error","accessibility","cellAlign","freeScrollFriction","friction","namespaceJQueryEvents","resize","setGallerySize","id","guid","originSide","viewport","_createSlider","watchCSS","opts","isActive","classList","add","_filterFindCellElements","children","reloadCells","tabIndex","selectInitialIndex","isInitActivated","filterFindElements","cellSelector","_makeCells","positionCells","_getWrapShiftCells","map","cellElem","getLastCell","getLastSlide","_sizeCells","_positionCells","maxCellHeight","cellX","startCell","len","setPosition","outerHeight","updateSlides","_containSlides","slide","nextMargin","canCellFit","_getCanCellFit","slideWidth","firstMargin","call","addCell","updateTarget","updateSelectedSlide","groupCells","number","parseInt","percentMatch","match","percent","_init","reposition","positionSliderAtSelected","setCellAlign","cellAlignShorthands","center","left","right","shorthand","height","adaptiveHeight","_unshiftCells","gapX","cellIndex","_getGapCells","increment","contain","isRightToLeft","beginMargin","endMargin","contentWidth","isContentSmaller","beginBound","endBound","min","emitArgs","$event","jQEvent","Event","trigger","isWrap","isInstant","_wrapSelect","prevIndex","startAnimation","wrapIndex","backWrapDelta","forewardWrapDelta","isDragSelect","previous","next","unselectSelectedSlide","selectedCells","selectedElements","getCellElements","selectedCell","selectedElement","unselect","initialIndex","queryCell","selectCell","value","getCellSlideIndex","getCell","getCells","getParentCell","getParent","getAdjacentCellElements","adjCount","cellElems","slideIndex","selector","querySelector","focus","onresize","debounceMethod","content","onkeydown","isNotFocused","handler","keyboardHandlers","keyCode","37","leftMethod","39","rightMethod","prevScrollY","pageYOffset","preventScroll","scrollTo","pageXOffset","remove","removeData","data","htmlInit","bridget","setJQuery","jq","getStyleSize","num","parseFloat","isNaN","logError","message","measurements","measurementsLength","getStyle","isBoxSizeOuter","isSetup","div","width","padding","borderStyle","borderWidth","boxSizing","documentElement","setup","nodeType","display","innerHeight","getZeroSize","offsetWidth","offsetHeight","isBorderBox","measurement","paddingWidth","paddingLeft","paddingRight","paddingHeight","paddingTop","paddingBottom","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","draggable","dragThreshold","isTouch","isTouchmoveScrollCanceled","_createDrag","onActivateDrag","_uiChangeDrag","onDeactivateDrag","updateDraggable","bindDrag","unbindDrag","_pointerDownPreventDefault","pointerDownFocus","pointerDownScroll","getScrollPosition","_pointerDownDefault","focusNodes","isTouchStart","isTouchPointer","pointerType","isFocusNode","isTouchScrolling","dragStartPosition","previousDragX","direction","originBound","dragMoveTime","Date","freeScroll","dragEndRestingSelect","restingX","getRestingPosition","dragEndBoostSelect","distance","getSlideDistance","positiveResting","_getClosestResting","negativeResting","minDistance","Infinity","condition","d","md","isWrapAround","wrap","floor","clickedCell","onscroll","scroll","scrollMoveX","scrollMoveY","matchesSelector","a","b","prop","arraySlice","Array","obj","isArray","removeFrom","ary","parentNode","ffElems","HTMLElement","childElems","querySelectorAll","_class","methodName","threshold","timeoutName","timeout","clearTimeout","arguments","docReady","callback","readyState","toDashed","str","replace","$1","$2","toLowerCase","WidgetClass","namespace","dashedNamespace","dataAttr","dataAttrElems","jsDashElems","dataOptionsAttr","attr","getAttribute","JSON","parse","isOriginLeft","lastCell","lastMargin","Carousel","props","state","flickityReady","refreshFlickity","componentDidMount","flickity","flickityNode","setState","componentWillUnmount","componentDidUpdate","prevProps","prevState","flickityDidBecomeActive","childrenDidChange","renderPortal","mountNode","ReactDOM","createPortal","render","key","ref","node","filter","Boolean","React","Component","CarouselContainer","styled","CarouselCell","img","i18n","useTranslation","isMobile","useMediaQuery","maxWidth","bannerImages","zh","ImageZh1","isExternal","url","ImageZh3","ImageZh4","en","ImageEn2","bannerImagesArray","language","autoPlay","prevNextButtons","trackCustomEvent","category","action","label","open","src","alt","LazyLoader","load","_createLazyload","lazyLoad","lazyImages","lazyCellImages","lazyloadAttr","srcAttr","srcsetAttr","imgs","getCellLazyImages","srcset","onload","complete","onerror","cellSizeChange","__WEBPACK_EXTERNAL_MODULE_1__","self","module","exports","modules","__webpack_require__","moduleId","installedModules","l","m","c","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","hasOwnProperty","p","s","__webpack_exports__","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","Symbol","iterator","done","err","_iterableToArrayLimit","TypeError","_nonIterableRest","__WEBPACK_IMPORTED_MODULE_0_react__","__WEBPACK_IMPORTED_MODULE_0_react___default","__WEBPACK_IMPORTED_MODULE_1_matchmediaquery__","__WEBPACK_IMPORTED_MODULE_1_matchmediaquery___default","__WEBPACK_IMPORTED_MODULE_2_hyphenate_style_name__","__WEBPACK_IMPORTED_MODULE_3_shallow_equal_objects__","__WEBPACK_IMPORTED_MODULE_3_shallow_equal_objects___default","__WEBPACK_IMPORTED_MODULE_4__toQuery__","__WEBPACK_IMPORTED_MODULE_5__Context__","hyphenateKeys","keys","reduce","result","useIsUpdate","useRef","useEffect","current","useQuery","settings","getQuery","query","makeQuery","_React$useState4","useState","setQuery","newQuery","device","onChange","deviceSettings","deviceFromProps","deviceFromContext","useContext","getDevice","_React$useState2","setDevice","newDevice","useDevice","Error","matches","mediaQuery","_React$useState8","setMatches","updateMatches","addListener","removeListener","useMatches","getMatchMedia","_React$useState6","mq","setMq","isUpdate","dispose","useMatchMedia","toHyphenLower","uppercasePattern","msPattern","cache","hName","test","Context","createContext","__WEBPACK_IMPORTED_MODULE_0__useMediaQuery__","__WEBPACK_IMPORTED_MODULE_1__Component__","__WEBPACK_IMPORTED_MODULE_2__Context__","Mql","values","forceStatic","update","evt","media","dynamicMatch","mql","staticMatch","matchMedia","parseQuery","split","captures","trim","RE_MEDIA_QUERY","modifier","expressions","parsed","inverse","expression","RE_MQ_EXPRESSION","feature","RE_MQ_FEATURE","toDecimal","ratio","numbers","decimal","Number","toDpi","resolution","String","RE_RESOLUTION_UNIT","toPx","RE_LENGTH_UNIT","some","typeMatch","expressionsMatch","every","expValue","objA","objB","aKeys","bKeys","__WEBPACK_IMPORTED_MODULE_0_hyphenate_style_name__","__WEBPACK_IMPORTED_MODULE_1__mediaQuery__","rules","all","k","v","realKey","keyVal","join","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","writable","__WEBPACK_IMPORTED_MODULE_0_prop_types__","__WEBPACK_IMPORTED_MODULE_0_prop_types___default","stringOrNumber","oneOfType","string","matchers","orientation","oneOf","scan","aspectRatio","deviceAspectRatio","deviceHeight","deviceWidth","color","bool","colorIndex","monochrome","features","minAspectRatio","maxAspectRatio","minDeviceAspectRatio","maxDeviceAspectRatio","minHeight","maxHeight","minDeviceHeight","maxDeviceHeight","minWidth","minDeviceWidth","maxDeviceWidth","minColor","maxColor","minColorIndex","maxColorIndex","minMonochrome","maxMonochrome","minResolution","maxResolution","types","grid","aural","braille","handheld","print","projection","screen","tty","tv","embossed","ReactIs","isElement","typeOf","$$typeof","REACT_ELEMENT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","$$typeofType","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_PROVIDER_TYPE","REACT_LAZY_TYPE","REACT_MEMO_TYPE","REACT_PORTAL_TYPE","isConcurrentMode","hasSymbol","REACT_SUSPENSE_LIST_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","printWarning","format","_len","_key","argIndex","warn","lowPriorityWarning$1","_len2","_key2","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isValidElementType","isAsyncMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","emptyFunctionThatReturnsNull","assign","ReactPropTypesSecret","checkPropTypes","has","Function","text","isValidElement","throwOnDirectAccess","PropTypeError","stack","createChainableTypeChecker","validate","checkType","isRequired","propName","componentName","location","propFullName","secret","ANONYMOUS","cacheKey","manualPropTypeCallCache","manualPropTypeWarningCount","chainedCheckType","createPrimitiveTypeChecker","expectedType","propValue","getPropType","getPreciseType","isNode","iteratorFn","maybeIterable","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","step","entries","entry","propType","RegExp","isSymbol","getPostfixForTypeWarning","ReactPropTypes","array","func","symbol","any","arrayOf","typeChecker","elementType","instanceOf","expectedClass","expectedClassName","objectOf","expectedValues","valuesString","stringify","arrayOfTypeCheckers","checker","shape","shapeTypes","exact","allKeys","resetWarningCache","PropTypes","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","from","to","typeSpecs","getStack","typeSpecName","ex","loggedTypeFailures","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_ref","Player","onVisibilityChange","visibilityChange","onVisibilityPlay","visibilityPlay","play","hidden","tick","time","clear","stop","pause","unpause","pauseAutoPlayOnHover","_createPlayer","player","activatePlayer","stopPlayer","deactivatePlayer","playPlayer","pausePlayer","unpausePlayer","onmouseenter","onmouseleave","insert","getCellsFragment","isAppend","insertCellElement","insertBefore","endCells","cellChange","append","prepend","minCellIndex","changedCellIndex","isPositioningSlider","prevSelectedElem","matchesMethod","ElemProto","prefixes","side","renderPosition","setDefaultTarget","marginProperty","svgURI","PrevNextButton","isEnabled","isPrevious","leftDirection","isLeft","disable","svg","createSVG","createElementNS","path","pathMovements","arrowShape","x0","x1","y1","x2","y2","x3","enable","disabled","lastIndex","boundIndex","_createPrevNextButtons","prevButton","nextButton","activatePrevNextButtons","deactivatePrevNextButtons"],"mappings":"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","file":"26-da4dfc4360a3aae78cad.js","sourcesContent":["require(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\n/*!\n * Unipointer v2.3.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n\n /*global define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['ev-emitter/ev-emitter'], function (EvEmitter) {\n return factory(window, EvEmitter);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('ev-emitter'));\n } else {\n // browser global\n window.Unipointer = factory(window, window.EvEmitter);\n }\n})(window, function factory(window, EvEmitter) {\n 'use strict';\n\n function noop() {}\n\n function Unipointer() {} // inherit EvEmitter\n\n\n var proto = Unipointer.prototype = Object.create(EvEmitter.prototype);\n\n proto.bindStartEvent = function (elem) {\n this._bindStartEvent(elem, true);\n };\n\n proto.unbindStartEvent = function (elem) {\n this._bindStartEvent(elem, false);\n };\n /**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\n\n\n proto._bindStartEvent = function (elem, isAdd) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener'; // default to mouse events\n\n var startEvent = 'mousedown';\n\n if (window.PointerEvent) {\n // Pointer Events\n startEvent = 'pointerdown';\n } else if ('ontouchstart' in window) {\n // Touch Events. iOS Safari\n startEvent = 'touchstart';\n }\n\n elem[bindMethod](startEvent, this);\n }; // trigger handler methods for events\n\n\n proto.handleEvent = function (event) {\n var method = 'on' + event.type;\n\n if (this[method]) {\n this[method](event);\n }\n }; // returns the touch that we're keeping track of\n\n\n proto.getTouch = function (touches) {\n for (var i = 0; i < touches.length; i++) {\n var touch = touches[i];\n\n if (touch.identifier == this.pointerIdentifier) {\n return touch;\n }\n }\n }; // ----- start event ----- //\n\n\n proto.onmousedown = function (event) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n\n if (button && button !== 0 && button !== 1) {\n return;\n }\n\n this._pointerDown(event, event);\n };\n\n proto.ontouchstart = function (event) {\n this._pointerDown(event, event.changedTouches[0]);\n };\n\n proto.onpointerdown = function (event) {\n this._pointerDown(event, event);\n };\n /**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\n\n\n proto._pointerDown = function (event, pointer) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if (event.button || this.isPointerDown) {\n return;\n }\n\n this.isPointerDown = true; // save pointer identifier to match up touch events\n\n this.pointerIdentifier = pointer.pointerId !== undefined ? // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n this.pointerDown(event, pointer);\n };\n\n proto.pointerDown = function (event, pointer) {\n this._bindPostStartEvents(event);\n\n this.emitEvent('pointerDown', [event, pointer]);\n }; // hash of events to be bound after start event\n\n\n var postStartEvents = {\n mousedown: ['mousemove', 'mouseup'],\n touchstart: ['touchmove', 'touchend', 'touchcancel'],\n pointerdown: ['pointermove', 'pointerup', 'pointercancel']\n };\n\n proto._bindPostStartEvents = function (event) {\n if (!event) {\n return;\n } // get proper events to match start event\n\n\n var events = postStartEvents[event.type]; // bind events to node\n\n events.forEach(function (eventName) {\n window.addEventListener(eventName, this);\n }, this); // save these arguments\n\n this._boundPointerEvents = events;\n };\n\n proto._unbindPostStartEvents = function () {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if (!this._boundPointerEvents) {\n return;\n }\n\n this._boundPointerEvents.forEach(function (eventName) {\n window.removeEventListener(eventName, this);\n }, this);\n\n delete this._boundPointerEvents;\n }; // ----- move event ----- //\n\n\n proto.onmousemove = function (event) {\n this._pointerMove(event, event);\n };\n\n proto.onpointermove = function (event) {\n if (event.pointerId == this.pointerIdentifier) {\n this._pointerMove(event, event);\n }\n };\n\n proto.ontouchmove = function (event) {\n var touch = this.getTouch(event.changedTouches);\n\n if (touch) {\n this._pointerMove(event, touch);\n }\n };\n /**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\n\n\n proto._pointerMove = function (event, pointer) {\n this.pointerMove(event, pointer);\n }; // public\n\n\n proto.pointerMove = function (event, pointer) {\n this.emitEvent('pointerMove', [event, pointer]);\n }; // ----- end event ----- //\n\n\n proto.onmouseup = function (event) {\n this._pointerUp(event, event);\n };\n\n proto.onpointerup = function (event) {\n if (event.pointerId == this.pointerIdentifier) {\n this._pointerUp(event, event);\n }\n };\n\n proto.ontouchend = function (event) {\n var touch = this.getTouch(event.changedTouches);\n\n if (touch) {\n this._pointerUp(event, touch);\n }\n };\n /**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\n\n\n proto._pointerUp = function (event, pointer) {\n this._pointerDone();\n\n this.pointerUp(event, pointer);\n }; // public\n\n\n proto.pointerUp = function (event, pointer) {\n this.emitEvent('pointerUp', [event, pointer]);\n }; // ----- pointer done ----- //\n // triggered on pointer up & pointer cancel\n\n\n proto._pointerDone = function () {\n this._pointerReset();\n\n this._unbindPostStartEvents();\n\n this.pointerDone();\n };\n\n proto._pointerReset = function () {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n };\n\n proto.pointerDone = noop; // ----- pointer cancel ----- //\n\n proto.onpointercancel = function (event) {\n if (event.pointerId == this.pointerIdentifier) {\n this._pointerCancel(event, event);\n }\n };\n\n proto.ontouchcancel = function (event) {\n var touch = this.getTouch(event.changedTouches);\n\n if (touch) {\n this._pointerCancel(event, touch);\n }\n };\n /**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\n\n\n proto._pointerCancel = function (event, pointer) {\n this._pointerDone();\n\n this.pointerCancel(event, pointer);\n }; // public\n\n\n proto.pointerCancel = function (event, pointer) {\n this.emitEvent('pointerCancel', [event, pointer]);\n }; // ----- ----- //\n // utility function for getting x/y coords from event\n\n\n Unipointer.getPointerPoint = function (pointer) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n }; // ----- ----- //\n\n\n return Unipointer;\n});","require(\"core-js/modules/es6.function.bind\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\n/*!\n * Unidragger v2.3.0\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n(function (window, factory) {\n // universal module definition\n\n /*jshint strict: false */\n\n /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['unipointer/unipointer'], function (Unipointer) {\n return factory(window, Unipointer);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('unipointer'));\n } else {\n // browser global\n window.Unidragger = factory(window, window.Unipointer);\n }\n})(window, function factory(window, Unipointer) {\n 'use strict'; // -------------------------- Unidragger -------------------------- //\n\n function Unidragger() {} // inherit Unipointer & EvEmitter\n\n\n var proto = Unidragger.prototype = Object.create(Unipointer.prototype); // ----- bind start ----- //\n\n proto.bindHandles = function () {\n this._bindHandles(true);\n };\n\n proto.unbindHandles = function () {\n this._bindHandles(false);\n };\n /**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\n\n\n proto._bindHandles = function (isAdd) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd; // bind each handle\n\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n\n for (var i = 0; i < this.handles.length; i++) {\n var handle = this.handles[i];\n\n this._bindStartEvent(handle, isAdd);\n\n handle[bindMethod]('click', this); // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n\n if (window.PointerEvent) {\n handle.style.touchAction = touchAction;\n }\n }\n }; // prototype so it can be overwriteable by Flickity\n\n\n proto._touchActionValue = 'none'; // ----- start event ----- //\n\n /**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\n\n proto.pointerDown = function (event, pointer) {\n var isOkay = this.okayPointerDown(event);\n\n if (!isOkay) {\n return;\n } // track start event position\n\n\n this.pointerDownPointer = pointer;\n event.preventDefault();\n this.pointerDownBlur(); // bind move and end events\n\n this._bindPostStartEvents(event);\n\n this.emitEvent('pointerDown', [event, pointer]);\n }; // nodes that have text fields\n\n\n var cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true\n }; // input types that do not have text fields\n\n var clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true\n }; // dismiss inputs with text fields. flickity#403, flickity#404\n\n proto.okayPointerDown = function (event) {\n var isCursorNode = cursorNodes[event.target.nodeName];\n var isClickType = clickTypes[event.target.type];\n var isOkay = !isCursorNode || isClickType;\n\n if (!isOkay) {\n this._pointerReset();\n }\n\n return isOkay;\n }; // kludge to blur previously focused input\n\n\n proto.pointerDownBlur = function () {\n var focused = document.activeElement; // do not blur body for IE10, metafizzy/flickity#117\n\n var canBlur = focused && focused.blur && focused != document.body;\n\n if (canBlur) {\n focused.blur();\n }\n }; // ----- move event ----- //\n\n /**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\n\n\n proto.pointerMove = function (event, pointer) {\n var moveVector = this._dragPointerMove(event, pointer);\n\n this.emitEvent('pointerMove', [event, pointer, moveVector]);\n\n this._dragMove(event, pointer, moveVector);\n }; // base pointer move logic\n\n\n proto._dragPointerMove = function (event, pointer) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n }; // start drag if pointer has moved far enough to start drag\n\n if (!this.isDragging && this.hasDragStarted(moveVector)) {\n this._dragStart(event, pointer);\n }\n\n return moveVector;\n }; // condition if pointer has moved far enough to start drag\n\n\n proto.hasDragStarted = function (moveVector) {\n return Math.abs(moveVector.x) > 3 || Math.abs(moveVector.y) > 3;\n }; // ----- end event ----- //\n\n /**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\n\n\n proto.pointerUp = function (event, pointer) {\n this.emitEvent('pointerUp', [event, pointer]);\n\n this._dragPointerUp(event, pointer);\n };\n\n proto._dragPointerUp = function (event, pointer) {\n if (this.isDragging) {\n this._dragEnd(event, pointer);\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick(event, pointer);\n }\n }; // -------------------------- drag -------------------------- //\n // dragStart\n\n\n proto._dragStart = function (event, pointer) {\n this.isDragging = true; // prevent clicks\n\n this.isPreventingClicks = true;\n this.dragStart(event, pointer);\n };\n\n proto.dragStart = function (event, pointer) {\n this.emitEvent('dragStart', [event, pointer]);\n }; // dragMove\n\n\n proto._dragMove = function (event, pointer, moveVector) {\n // do not drag if not dragging yet\n if (!this.isDragging) {\n return;\n }\n\n this.dragMove(event, pointer, moveVector);\n };\n\n proto.dragMove = function (event, pointer, moveVector) {\n event.preventDefault();\n this.emitEvent('dragMove', [event, pointer, moveVector]);\n }; // dragEnd\n\n\n proto._dragEnd = function (event, pointer) {\n // set flags\n this.isDragging = false; // re-enable clicking async\n\n setTimeout(function () {\n delete this.isPreventingClicks;\n }.bind(this));\n this.dragEnd(event, pointer);\n };\n\n proto.dragEnd = function (event, pointer) {\n this.emitEvent('dragEnd', [event, pointer]);\n }; // ----- onclick ----- //\n // handle all clicks and prevent clicks when dragging\n\n\n proto.onclick = function (event) {\n if (this.isPreventingClicks) {\n event.preventDefault();\n }\n }; // ----- staticClick ----- //\n // triggered after pointer down & up with no/tiny movement\n\n\n proto._staticClick = function (event, pointer) {\n // ignore emulated mouse up clicks\n if (this.isIgnoringMouseUp && event.type == 'mouseup') {\n return;\n }\n\n this.staticClick(event, pointer); // set flag for emulated clicks 300ms after touchend\n\n if (event.type != 'mouseup') {\n this.isIgnoringMouseUp = true; // reset flag after 300ms\n\n setTimeout(function () {\n delete this.isIgnoringMouseUp;\n }.bind(this), 400);\n }\n };\n\n proto.staticClick = function (event, pointer) {\n this.emitEvent('staticClick', [event, pointer]);\n }; // ----- utils ----- //\n\n\n Unidragger.getPointerPoint = Unipointer.getPointerPoint; // ----- ----- //\n\n return Unidragger;\n});","// animate\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['fizzy-ui-utils/utils'], function (utils) {\n return factory(window, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('fizzy-ui-utils'));\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(window, window.fizzyUIUtils);\n }\n})(window, function factory(window, utils) {\n 'use strict'; // -------------------------- animate -------------------------- //\n\n var proto = {};\n\n proto.startAnimation = function () {\n if (this.isAnimating) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n };\n\n proto.animate = function () {\n this.applyDragForce();\n this.applySelectedAttraction();\n var previousX = this.x;\n this.integratePhysics();\n this.positionSlider();\n this.settle(previousX); // animate next frame\n\n if (this.isAnimating) {\n var _this = this;\n\n requestAnimationFrame(function animateFrame() {\n _this.animate();\n });\n }\n };\n\n proto.positionSlider = function () {\n var x = this.x; // wrap position around\n\n if (this.options.wrapAround && this.cells.length > 1) {\n x = utils.modulo(x, this.slideableWidth);\n x = x - this.slideableWidth;\n this.shiftWrapCells(x);\n }\n\n this.setTranslateX(x, this.isAnimating);\n this.dispatchScrollEvent();\n };\n\n proto.setTranslateX = function (x, is3d) {\n x += this.cursorPosition; // reverse if right-to-left and using transform\n\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue(x); // use 3D tranforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n\n this.slider.style.transform = is3d ? 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n };\n\n proto.dispatchScrollEvent = function () {\n var firstSlide = this.slides[0];\n\n if (!firstSlide) {\n return;\n }\n\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent('scroll', null, [progress, positionX]);\n };\n\n proto.positionSliderAtSelected = function () {\n if (!this.cells.length) {\n return;\n }\n\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n\n this.positionSlider();\n };\n\n proto.getPositionValue = function (position) {\n if (this.options.percentPosition) {\n // percent position, round to 2 digits, like 12.34%\n return Math.round(position / this.size.innerWidth * 10000) * 0.01 + '%';\n } else {\n // pixel positioning\n return Math.round(position) + 'px';\n }\n };\n\n proto.settle = function (previousX) {\n // keep track of frames where x hasn't moved\n if (!this.isPointerDown && Math.round(this.x * 100) == Math.round(previousX * 100)) {\n this.restingFrames++;\n } // stop animating if resting for 3 or more frames\n\n\n if (this.restingFrames > 2) {\n this.isAnimating = false;\n delete this.isFreeScrolling; // render position with translateX when settled\n\n this.positionSlider();\n this.dispatchEvent('settle', null, [this.selectedIndex]);\n }\n };\n\n proto.shiftWrapCells = function (x) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n\n this._shiftCells(this.beforeShiftCells, beforeGap, -1); // shift after cells\n\n\n var afterGap = this.size.innerWidth - (x + this.slideableWidth + this.cursorPosition);\n\n this._shiftCells(this.afterShiftCells, afterGap, 1);\n };\n\n proto._shiftCells = function (cells, gap, shift) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift(cellShift);\n gap -= cell.size.outerWidth;\n }\n };\n\n proto._unshiftCells = function (cells) {\n if (!cells || !cells.length) {\n return;\n }\n\n for (var i = 0; i < cells.length; i++) {\n cells[i].wrapShift(0);\n }\n }; // -------------------------- physics -------------------------- //\n\n\n proto.integratePhysics = function () {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n };\n\n proto.applyForce = function (force) {\n this.velocity += force;\n };\n\n proto.getFrictionFactor = function () {\n return 1 - this.options[this.isFreeScrolling ? 'freeScrollFriction' : 'friction'];\n };\n\n proto.getRestingPosition = function () {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / (1 - this.getFrictionFactor());\n };\n\n proto.applyDragForce = function () {\n if (!this.isDraggable || !this.isPointerDown) {\n return;\n } // change the position to drag position by applying force\n\n\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce(dragForce);\n };\n\n proto.applySelectedAttraction = function () {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n\n if (dragDown || this.isFreeScrolling || !this.slides.length) {\n return;\n }\n\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce(force);\n };\n\n return proto;\n});","require(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.function.bind\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\n// page dots\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'unipointer/unipointer', 'fizzy-ui-utils/utils'], function (Flickity, Unipointer, utils) {\n return factory(window, Flickity, Unipointer, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('unipointer'), require('fizzy-ui-utils'));\n } else {\n // browser global\n factory(window, window.Flickity, window.Unipointer, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, Unipointer, utils) {\n // -------------------------- PageDots -------------------------- //\n 'use strict';\n\n function PageDots(parent) {\n this.parent = parent;\n\n this._create();\n }\n\n PageDots.prototype = Object.create(Unipointer.prototype);\n\n PageDots.prototype._create = function () {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots'; // create dots, array of elements\n\n this.dots = []; // events\n\n this.handleClick = this.onClick.bind(this);\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\n };\n\n PageDots.prototype.activate = function () {\n this.setDots();\n this.holder.addEventListener('click', this.handleClick);\n this.bindStartEvent(this.holder); // add to DOM\n\n this.parent.element.appendChild(this.holder);\n };\n\n PageDots.prototype.deactivate = function () {\n this.holder.removeEventListener('click', this.handleClick);\n this.unbindStartEvent(this.holder); // remove from DOM\n\n this.parent.element.removeChild(this.holder);\n };\n\n PageDots.prototype.setDots = function () {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n\n if (delta > 0) {\n this.addDots(delta);\n } else if (delta < 0) {\n this.removeDots(-delta);\n }\n };\n\n PageDots.prototype.addDots = function (count) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for (var i = length; i < max; i++) {\n var dot = document.createElement('li');\n dot.className = 'dot';\n dot.setAttribute('aria-label', 'Page dot ' + (i + 1));\n fragment.appendChild(dot);\n newDots.push(dot);\n }\n\n this.holder.appendChild(fragment);\n this.dots = this.dots.concat(newDots);\n };\n\n PageDots.prototype.removeDots = function (count) {\n // remove from this.dots collection\n var removeDots = this.dots.splice(this.dots.length - count, count); // remove from DOM\n\n removeDots.forEach(function (dot) {\n this.holder.removeChild(dot);\n }, this);\n };\n\n PageDots.prototype.updateSelected = function () {\n // remove selected class on previous\n if (this.selectedDot) {\n this.selectedDot.className = 'dot';\n this.selectedDot.removeAttribute('aria-current');\n } // don't proceed if no dots\n\n\n if (!this.dots.length) {\n return;\n }\n\n this.selectedDot = this.dots[this.parent.selectedIndex];\n this.selectedDot.className = 'dot is-selected';\n this.selectedDot.setAttribute('aria-current', 'step');\n };\n\n PageDots.prototype.onTap = // old method name, backwards-compatible\n PageDots.prototype.onClick = function (event) {\n var target = event.target; // only care about dot clicks\n\n if (target.nodeName != 'LI') {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf(target);\n this.parent.select(index);\n };\n\n PageDots.prototype.destroy = function () {\n this.deactivate();\n this.allOff();\n };\n\n Flickity.PageDots = PageDots; // -------------------------- Flickity -------------------------- //\n\n utils.extend(Flickity.defaults, {\n pageDots: true\n });\n Flickity.createMethods.push('_createPageDots');\n var proto = Flickity.prototype;\n\n proto._createPageDots = function () {\n if (!this.options.pageDots) {\n return;\n }\n\n this.pageDots = new PageDots(this); // events\n\n this.on('activate', this.activatePageDots);\n this.on('select', this.updateSelectedPageDots);\n this.on('cellChange', this.updatePageDots);\n this.on('resize', this.updatePageDots);\n this.on('deactivate', this.deactivatePageDots);\n };\n\n proto.activatePageDots = function () {\n this.pageDots.activate();\n };\n\n proto.updateSelectedPageDots = function () {\n this.pageDots.updateSelected();\n };\n\n proto.updatePageDots = function () {\n this.pageDots.setDots();\n };\n\n proto.deactivatePageDots = function () {\n this.pageDots.deactivate();\n }; // ----- ----- //\n\n\n Flickity.PageDots = PageDots;\n return Flickity;\n});","require(\"core-js/modules/es6.array.index-of\");\n\n/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n(function (global, factory) {\n // universal module definition\n\n /* jshint strict: false */\n\n /* globals define, module, window */\n if (typeof define == 'function' && define.amd) {\n // AMD - RequireJS\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n})(typeof window != 'undefined' ? window : this, function () {\n \"use strict\";\n\n function EvEmitter() {}\n\n var proto = EvEmitter.prototype;\n\n proto.on = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n } // set events hash\n\n\n var events = this._events = this._events || {}; // set listeners array\n\n var listeners = events[eventName] = events[eventName] || []; // only add once\n\n if (listeners.indexOf(listener) == -1) {\n listeners.push(listener);\n }\n\n return this;\n };\n\n proto.once = function (eventName, listener) {\n if (!eventName || !listener) {\n return;\n } // add event\n\n\n this.on(eventName, listener); // set once flag\n // set onceEvents hash\n\n var onceEvents = this._onceEvents = this._onceEvents || {}; // set onceListeners object\n\n var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {}; // set flag\n\n onceListeners[listener] = true;\n return this;\n };\n\n proto.off = function (eventName, listener) {\n var listeners = this._events && this._events[eventName];\n\n if (!listeners || !listeners.length) {\n return;\n }\n\n var index = listeners.indexOf(listener);\n\n if (index != -1) {\n listeners.splice(index, 1);\n }\n\n return this;\n };\n\n proto.emitEvent = function (eventName, args) {\n var listeners = this._events && this._events[eventName];\n\n if (!listeners || !listeners.length) {\n return;\n } // copy over to avoid interference if .off() in listener\n\n\n listeners = listeners.slice(0);\n args = args || []; // once stuff\n\n var onceListeners = this._onceEvents && this._onceEvents[eventName];\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n var isOnce = onceListeners && onceListeners[listener];\n\n if (isOnce) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off(eventName, listener); // unset once flag\n\n delete onceListeners[listener];\n } // trigger listener\n\n\n listener.apply(this, args);\n }\n\n return this;\n };\n\n proto.allOff = function () {\n delete this._events;\n delete this._onceEvents;\n };\n\n return EvEmitter;\n});","require(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.array.map\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\n// Flickity main\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['ev-emitter/ev-emitter', 'get-size/get-size', 'fizzy-ui-utils/utils', './cell', './slide', './animate'], function (EvEmitter, getSize, utils, Cell, Slide, animatePrototype) {\n return factory(window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('ev-emitter'), require('get-size'), require('fizzy-ui-utils'), require('./cell'), require('./slide'), require('./animate'));\n } else {\n // browser global\n var _Flickity = window.Flickity;\n window.Flickity = factory(window, window.EvEmitter, window.getSize, window.fizzyUIUtils, _Flickity.Cell, _Flickity.Slide, _Flickity.animatePrototype);\n }\n})(window, function factory(window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype) {\n 'use strict'; // vars\n\n var jQuery = window.jQuery;\n var getComputedStyle = window.getComputedStyle;\n var console = window.console;\n\n function moveElements(elems, toElem) {\n elems = utils.makeArray(elems);\n\n while (elems.length) {\n toElem.appendChild(elems.shift());\n }\n } // -------------------------- Flickity -------------------------- //\n // globally unique identifiers\n\n\n var GUID = 0; // internal store of all Flickity intances\n\n var instances = {};\n\n function Flickity(element, options) {\n var queryElement = utils.getQueryElement(element);\n\n if (!queryElement) {\n if (console) {\n console.error('Bad element for Flickity: ' + (queryElement || element));\n }\n\n return;\n }\n\n this.element = queryElement; // do not initialize twice on same element\n\n if (this.element.flickityGUID) {\n var instance = instances[this.element.flickityGUID];\n instance.option(options);\n return instance;\n } // add jQuery\n\n\n if (jQuery) {\n this.$element = jQuery(this.element);\n } // options\n\n\n this.options = utils.extend({}, this.constructor.defaults);\n this.option(options); // kick things off\n\n this._create();\n }\n\n Flickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075,\n // friction when free-scrolling\n friction: 0.28,\n // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true // watchCSS: false,\n // wrapAround: false\n\n }; // hash of methods triggered on _create()\n\n Flickity.createMethods = [];\n var proto = Flickity.prototype; // inherit EventEmitter\n\n utils.extend(proto, EvEmitter.prototype);\n\n proto._create = function () {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n\n instances[id] = this; // associate via id\n // initial properties\n\n this.selectedIndex = 0; // how many frames slider has been in same position\n\n this.restingFrames = 0; // initial physics properties\n\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left'; // create viewport & slider\n\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n\n this._createSlider();\n\n if (this.options.resize || this.options.watchCSS) {\n window.addEventListener('resize', this);\n } // add listeners from on option\n\n\n for (var eventName in this.options.on) {\n var listener = this.options.on[eventName];\n this.on(eventName, listener);\n }\n\n Flickity.createMethods.forEach(function (method) {\n this[method]();\n }, this);\n\n if (this.options.watchCSS) {\n this.watchCSS();\n } else {\n this.activate();\n }\n };\n /**\n * set options\n * @param {Object} opts\n */\n\n\n proto.option = function (opts) {\n utils.extend(this.options, opts);\n };\n\n proto.activate = function () {\n if (this.isActive) {\n return;\n }\n\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n\n if (this.options.rightToLeft) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize(); // move initial cell elements so they can be loaded as cells\n\n var cellElems = this._filterFindCellElements(this.element.children);\n\n moveElements(cellElems, this.slider);\n this.viewport.appendChild(this.slider);\n this.element.appendChild(this.viewport); // get cells from children\n\n this.reloadCells();\n\n if (this.options.accessibility) {\n // allow element to focusable\n this.element.tabIndex = 0; // listen for key presses\n\n this.element.addEventListener('keydown', this);\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex(); // flag for initial activation, for using initialIndex\n\n this.isInitActivated = true; // ready event. #493\n\n this.dispatchEvent('ready');\n }; // slider positions the cells\n\n\n proto._createSlider = function () {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[this.originSide] = 0;\n this.slider = slider;\n };\n\n proto._filterFindCellElements = function (elems) {\n return utils.filterFindElements(elems, this.options.cellSelector);\n }; // goes through all children\n\n\n proto.reloadCells = function () {\n // collection of item elements\n this.cells = this._makeCells(this.slider.children);\n this.positionCells();\n\n this._getWrapShiftCells();\n\n this.setGallerySize();\n };\n /**\n * turn elements into Flickity.Cells\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - collection of new Flickity Cells\n */\n\n\n proto._makeCells = function (elems) {\n var cellElems = this._filterFindCellElements(elems); // create new Flickity for collection\n\n\n var cells = cellElems.map(function (cellElem) {\n return new Cell(cellElem, this);\n }, this);\n return cells;\n };\n\n proto.getLastCell = function () {\n return this.cells[this.cells.length - 1];\n };\n\n proto.getLastSlide = function () {\n return this.slides[this.slides.length - 1];\n }; // positions all cells\n\n\n proto.positionCells = function () {\n // size all cells\n this._sizeCells(this.cells); // position all cells\n\n\n this._positionCells(0);\n };\n /**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\n\n\n proto._positionCells = function (index) {\n index = index || 0; // also measure maxCellHeight\n // start 0 if positioning all cells\n\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0; // get cellX\n\n if (index > 0) {\n var startCell = this.cells[index - 1];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n\n var len = this.cells.length;\n\n for (var i = index; i < len; i++) {\n var cell = this.cells[i];\n cell.setPosition(cellX);\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max(cell.size.outerHeight, this.maxCellHeight);\n } // keep track of cellX for wrap-around\n\n\n this.slideableWidth = cellX; // slides\n\n this.updateSlides(); // contain slides target\n\n this._containSlides(); // update slidesWidth\n\n\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n };\n /**\n * cell.getSize() on multiple cells\n * @param {Array} cells\n */\n\n\n proto._sizeCells = function (cells) {\n cells.forEach(function (cell) {\n cell.getSize();\n });\n }; // -------------------------- -------------------------- //\n\n\n proto.updateSlides = function () {\n this.slides = [];\n\n if (!this.cells.length) {\n return;\n }\n\n var slide = new Slide(this);\n this.slides.push(slide);\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach(function (cell, i) {\n // just add cell if first cell in slide\n if (!slide.cells.length) {\n slide.addCell(cell);\n return;\n }\n\n var slideWidth = slide.outerWidth - slide.firstMargin + (cell.size.outerWidth - cell.size[nextMargin]);\n\n if (canCellFit.call(this, i, slideWidth)) {\n slide.addCell(cell);\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n slide = new Slide(this);\n this.slides.push(slide);\n slide.addCell(cell);\n }\n }, this); // last slide\n\n slide.updateTarget(); // update .selectedSlide\n\n this.updateSelectedSlide();\n };\n\n proto._getCanCellFit = function () {\n var groupCells = this.options.groupCells;\n\n if (!groupCells) {\n return function () {\n return false;\n };\n } else if (typeof groupCells == 'number') {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt(groupCells, 10);\n return function (i) {\n return i % number !== 0;\n };\n } // default, group by width of slide\n // parse '75%\n\n\n var percentMatch = typeof groupCells == 'string' && groupCells.match(/^(\\d+)%$/);\n var percent = percentMatch ? parseInt(percentMatch[1], 10) / 100 : 1;\n return function (i, slideWidth) {\n return slideWidth <= (this.size.innerWidth + 1) * percent;\n };\n }; // alias _init for jQuery plugin .flickity()\n\n\n proto._init = proto.reposition = function () {\n this.positionCells();\n this.positionSliderAtSelected();\n };\n\n proto.getSize = function () {\n this.size = getSize(this.element);\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n };\n\n var cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5\n },\n left: {\n left: 0,\n right: 1\n },\n right: {\n right: 0,\n left: 1\n }\n };\n\n proto.setCellAlign = function () {\n var shorthand = cellAlignShorthands[this.options.cellAlign];\n this.cellAlign = shorthand ? shorthand[this.originSide] : this.options.cellAlign;\n };\n\n proto.setGallerySize = function () {\n if (this.options.setGallerySize) {\n var height = this.options.adaptiveHeight && this.selectedSlide ? this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n };\n\n proto._getWrapShiftCells = function () {\n // only for wrap-around\n if (!this.options.wrapAround) {\n return;\n } // unshift previous cells\n\n\n this._unshiftCells(this.beforeShiftCells);\n\n this._unshiftCells(this.afterShiftCells); // get before cells\n // initial gap\n\n\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells(gapX, cellIndex, -1); // get after cells\n // ending gap between last cell and end of gallery viewport\n\n gapX = this.size.innerWidth - this.cursorPosition; // start cloning at first cell, working forwards\n\n this.afterShiftCells = this._getGapCells(gapX, 0, 1);\n };\n\n proto._getGapCells = function (gapX, cellIndex, increment) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n\n while (gapX > 0) {\n var cell = this.cells[cellIndex];\n\n if (!cell) {\n break;\n }\n\n cells.push(cell);\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n\n return cells;\n }; // ----- contain ----- //\n // contain cell targets so no excess sliding\n\n\n proto._containSlides = function () {\n if (!this.options.contain || this.options.wrapAround || !this.cells.length) {\n return;\n }\n\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[endMargin]; // content is less than gallery size\n\n var isContentSmaller = contentWidth < this.size.innerWidth; // bounds\n\n var beginBound = this.cursorPosition + this.cells[0].size[beginMargin];\n var endBound = contentWidth - this.size.innerWidth * (1 - this.cellAlign); // contain each cell target\n\n this.slides.forEach(function (slide) {\n if (isContentSmaller) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max(slide.target, beginBound);\n slide.target = Math.min(slide.target, endBound);\n }\n }, this);\n }; // ----- ----- //\n\n /**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\n\n\n proto.dispatchEvent = function (type, event, args) {\n var emitArgs = event ? [event].concat(args) : args;\n this.emitEvent(type, emitArgs);\n\n if (jQuery && this.$element) {\n // default trigger with type if no event\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n var $event = type;\n\n if (event) {\n // create jQuery event\n var jQEvent = jQuery.Event(event);\n jQEvent.type = type;\n $event = jQEvent;\n }\n\n this.$element.trigger($event, args);\n }\n }; // -------------------------- select -------------------------- //\n\n /**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\n\n\n proto.select = function (index, isWrap, isInstant) {\n if (!this.isActive) {\n return;\n }\n\n index = parseInt(index, 10);\n\n this._wrapSelect(index);\n\n if (this.options.wrapAround || isWrap) {\n index = utils.modulo(index, this.slides.length);\n } // bail if invalid index\n\n\n if (!this.slides[index]) {\n return;\n }\n\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n\n if (isInstant) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n\n if (this.options.adaptiveHeight) {\n this.setGallerySize();\n } // events\n\n\n this.dispatchEvent('select', null, [index]); // change event if new index\n\n if (index != prevIndex) {\n this.dispatchEvent('change', null, [index]);\n } // old v1 event name, remove in v3\n\n\n this.dispatchEvent('cellSelect');\n }; // wraps position for wrapAround, to move to closest slide. #113\n\n\n proto._wrapSelect = function (index) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n\n if (!isWrapping) {\n return index;\n }\n\n var wrapIndex = utils.modulo(index, len); // go to shortest\n\n var delta = Math.abs(wrapIndex - this.selectedIndex);\n var backWrapDelta = Math.abs(wrapIndex + len - this.selectedIndex);\n var forewardWrapDelta = Math.abs(wrapIndex - len - this.selectedIndex);\n\n if (!this.isDragSelect && backWrapDelta < delta) {\n index += len;\n } else if (!this.isDragSelect && forewardWrapDelta < delta) {\n index -= len;\n } // wrap position so slider is within normal area\n\n\n if (index < 0) {\n this.x -= this.slideableWidth;\n } else if (index >= len) {\n this.x += this.slideableWidth;\n }\n };\n\n proto.previous = function (isWrap, isInstant) {\n this.select(this.selectedIndex - 1, isWrap, isInstant);\n };\n\n proto.next = function (isWrap, isInstant) {\n this.select(this.selectedIndex + 1, isWrap, isInstant);\n };\n\n proto.updateSelectedSlide = function () {\n var slide = this.slides[this.selectedIndex]; // selectedIndex could be outside of slides, if triggered before resize()\n\n if (!slide) {\n return;\n } // unselect previous selected slide\n\n\n this.unselectSelectedSlide(); // update new selected slide\n\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements(); // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n };\n\n proto.unselectSelectedSlide = function () {\n if (this.selectedSlide) {\n this.selectedSlide.unselect();\n }\n };\n\n proto.selectInitialIndex = function () {\n var initialIndex = this.options.initialIndex; // already activated, select previous selectedIndex\n\n if (this.isInitActivated) {\n this.select(this.selectedIndex, false, true);\n return;\n } // select with selector string\n\n\n if (initialIndex && typeof initialIndex == 'string') {\n var cell = this.queryCell(initialIndex);\n\n if (cell) {\n this.selectCell(initialIndex, false, true);\n return;\n }\n }\n\n var index = 0; // select with number\n\n if (initialIndex && this.slides[initialIndex]) {\n index = initialIndex;\n } // select instantly\n\n\n this.select(index, false, true);\n };\n /**\n * select slide from number or cell element\n * @param {Element or Number} elem\n */\n\n\n proto.selectCell = function (value, isWrap, isInstant) {\n // get cell\n var cell = this.queryCell(value);\n\n if (!cell) {\n return;\n }\n\n var index = this.getCellSlideIndex(cell);\n this.select(index, isWrap, isInstant);\n };\n\n proto.getCellSlideIndex = function (cell) {\n // get index of slides that has cell\n for (var i = 0; i < this.slides.length; i++) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf(cell);\n\n if (index != -1) {\n return i;\n }\n }\n }; // -------------------------- get cells -------------------------- //\n\n /**\n * get Flickity.Cell, given an Element\n * @param {Element} elem\n * @returns {Flickity.Cell} item\n */\n\n\n proto.getCell = function (elem) {\n // loop through cells to get the one that matches\n for (var i = 0; i < this.cells.length; i++) {\n var cell = this.cells[i];\n\n if (cell.element == elem) {\n return cell;\n }\n }\n };\n /**\n * get collection of Flickity.Cells, given Elements\n * @param {Element, Array, NodeList} elems\n * @returns {Array} cells - Flickity.Cells\n */\n\n\n proto.getCells = function (elems) {\n elems = utils.makeArray(elems);\n var cells = [];\n elems.forEach(function (elem) {\n var cell = this.getCell(elem);\n\n if (cell) {\n cells.push(cell);\n }\n }, this);\n return cells;\n };\n /**\n * get cell elements\n * @returns {Array} cellElems\n */\n\n\n proto.getCellElements = function () {\n return this.cells.map(function (cell) {\n return cell.element;\n });\n };\n /**\n * get parent cell from an element\n * @param {Element} elem\n * @returns {Flickit.Cell} cell\n */\n\n\n proto.getParentCell = function (elem) {\n // first check if elem is cell\n var cell = this.getCell(elem);\n\n if (cell) {\n return cell;\n } // try to get parent cell elem\n\n\n elem = utils.getParent(elem, '.flickity-slider > *');\n return this.getCell(elem);\n };\n /**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\n\n\n proto.getAdjacentCellElements = function (adjCount, index) {\n if (!adjCount) {\n return this.selectedSlide.getCellElements();\n }\n\n index = index === undefined ? this.selectedIndex : index;\n var len = this.slides.length;\n\n if (1 + adjCount * 2 >= len) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n\n for (var i = index - adjCount; i <= index + adjCount; i++) {\n var slideIndex = this.options.wrapAround ? utils.modulo(i, len) : i;\n var slide = this.slides[slideIndex];\n\n if (slide) {\n cellElems = cellElems.concat(slide.getCellElements());\n }\n }\n\n return cellElems;\n };\n /**\n * select slide from number or cell element\n * @param {Element, Selector String, or Number} selector\n */\n\n\n proto.queryCell = function (selector) {\n if (typeof selector == 'number') {\n // use number as index\n return this.cells[selector];\n }\n\n if (typeof selector == 'string') {\n // do not select invalid selectors from hash: #123, #/. #791\n if (selector.match(/^[#\\.]?[\\d\\/]/)) {\n return;\n } // use string as selector, get element\n\n\n selector = this.element.querySelector(selector);\n } // get cell from element\n\n\n return this.getCell(selector);\n }; // -------------------------- events -------------------------- //\n\n\n proto.uiChange = function () {\n this.emitEvent('uiChange');\n }; // keep focus on element when child UI elements are clicked\n\n\n proto.childUIPointerDown = function (event) {\n // HACK iOS does not allow touch events to bubble up?!\n if (event.type != 'touchstart') {\n event.preventDefault();\n }\n\n this.focus();\n }; // ----- resize ----- //\n\n\n proto.onresize = function () {\n this.watchCSS();\n this.resize();\n };\n\n utils.debounceMethod(Flickity, 'onresize', 150);\n\n proto.resize = function () {\n if (!this.isActive) {\n return;\n }\n\n this.getSize(); // wrap values\n\n if (this.options.wrapAround) {\n this.x = utils.modulo(this.x, this.slideableWidth);\n }\n\n this.positionCells();\n\n this._getWrapShiftCells();\n\n this.setGallerySize();\n this.emitEvent('resize'); // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell(selectedElement, false, true);\n }; // watches the :after property, activates/deactivates\n\n\n proto.watchCSS = function () {\n var watchOption = this.options.watchCSS;\n\n if (!watchOption) {\n return;\n }\n\n var afterContent = getComputedStyle(this.element, ':after').content; // activate if :after { content: 'flickity' }\n\n if (afterContent.indexOf('flickity') != -1) {\n this.activate();\n } else {\n this.deactivate();\n }\n }; // ----- keydown ----- //\n // go previous/next if left/right keys pressed\n\n\n proto.onkeydown = function (event) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n\n if (!this.options.accessibility || isNotFocused) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[event.keyCode];\n\n if (handler) {\n handler.call(this);\n }\n };\n\n Flickity.keyboardHandlers = {\n // left arrow\n 37: function _() {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[leftMethod]();\n },\n // right arrow\n 39: function _() {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[rightMethod]();\n }\n }; // ----- focus ----- //\n\n proto.focus = function () {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({\n preventScroll: true\n }); // hack to fix scroll jump after focus, #76\n\n if (window.pageYOffset != prevScrollY) {\n window.scrollTo(window.pageXOffset, prevScrollY);\n }\n }; // -------------------------- destroy -------------------------- //\n // deactivate all Flickity functionality, but keep stuff available\n\n\n proto.deactivate = function () {\n if (!this.isActive) {\n return;\n }\n\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide(); // destroy cells\n\n this.cells.forEach(function (cell) {\n cell.destroy();\n });\n this.element.removeChild(this.viewport); // move child elements back into element\n\n moveElements(this.slider.children, this.element);\n\n if (this.options.accessibility) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener('keydown', this);\n } // set flags\n\n\n this.isActive = false;\n this.emitEvent('deactivate');\n };\n\n proto.destroy = function () {\n this.deactivate();\n window.removeEventListener('resize', this);\n this.allOff();\n this.emitEvent('destroy');\n\n if (jQuery && this.$element) {\n jQuery.removeData(this.element, 'flickity');\n }\n\n delete this.element.flickityGUID;\n delete instances[this.guid];\n }; // -------------------------- prototype -------------------------- //\n\n\n utils.extend(proto, animatePrototype); // -------------------------- extras -------------------------- //\n\n /**\n * get Flickity instance from element\n * @param {Element} elem\n * @returns {Flickity}\n */\n\n Flickity.data = function (elem) {\n elem = utils.getQueryElement(elem);\n var id = elem && elem.flickityGUID;\n return id && instances[id];\n };\n\n utils.htmlInit(Flickity, 'flickity');\n\n if (jQuery && jQuery.bridget) {\n jQuery.bridget('flickity', Flickity);\n } // set internal jQuery, for Webpack + jQuery v3, #478\n\n\n Flickity.setJQuery = function (jq) {\n jQuery = jq;\n };\n\n Flickity.Cell = Cell;\n Flickity.Slide = Slide;\n return Flickity;\n});","/*!\n * Flickity v2.2.1\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2019 Metafizzy\n */\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', './drag', './prev-next-button', './page-dots', './player', './add-remove-cell', './lazyload'], factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('./flickity'), require('./drag'), require('./prev-next-button'), require('./page-dots'), require('./player'), require('./add-remove-cell'), require('./lazyload'));\n }\n})(window, function factory(Flickity) {\n /*jshint strict: false*/\n return Flickity;\n});","require(\"core-js/modules/es6.array.index-of\");\n\n/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n/* globals console: false */\n(function (window, factory) {\n /* jshint strict: false */\n\n /* globals define, module */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n})(window, function factory() {\n 'use strict'; // -------------------------- helpers -------------------------- //\n // get a number from a string, not a percentage\n\n function getStyleSize(value) {\n var num = parseFloat(value); // not a percent like '100%', and a number\n\n var isValid = value.indexOf('%') == -1 && !isNaN(num);\n return isValid && num;\n }\n\n function noop() {}\n\n var logError = typeof console == 'undefined' ? noop : function (message) {\n console.error(message);\n }; // -------------------------- measurements -------------------------- //\n\n var measurements = ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'borderBottomWidth'];\n var measurementsLength = measurements.length;\n\n function getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n\n for (var i = 0; i < measurementsLength; i++) {\n var measurement = measurements[i];\n size[measurement] = 0;\n }\n\n return size;\n } // -------------------------- getStyle -------------------------- //\n\n /**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\n\n\n function getStyle(elem) {\n var style = getComputedStyle(elem);\n\n if (!style) {\n logError('Style returned ' + style + '. Are you running this code in a hidden iframe on Firefox? ' + 'See https://bit.ly/getsizebug1');\n }\n\n return style;\n } // -------------------------- setup -------------------------- //\n\n\n var isSetup = false;\n var isBoxSizeOuter;\n /**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\n\n function setup() {\n // setup once\n if (isSetup) {\n return;\n }\n\n isSetup = true; // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n var body = document.body || document.documentElement;\n body.appendChild(div);\n var style = getStyle(div); // round value for browser zoom. desandro/masonry#928\n\n isBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n body.removeChild(div);\n } // -------------------------- getSize -------------------------- //\n\n\n function getSize(elem) {\n setup(); // use querySeletor if elem is string\n\n if (typeof elem == 'string') {\n elem = document.querySelector(elem);\n } // do not proceed on non-objects\n\n\n if (!elem || typeof elem != 'object' || !elem.nodeType) {\n return;\n }\n\n var style = getStyle(elem); // if hidden, everything is 0\n\n if (style.display == 'none') {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box'; // get all measurements\n\n for (var i = 0; i < measurementsLength; i++) {\n var measurement = measurements[i];\n var value = style[measurement];\n var num = parseFloat(value); // any 'auto', 'medium' value will be 0\n\n size[measurement] = !isNaN(num) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; // overwrite width and height if we can get it from style\n\n var styleWidth = getStyleSize(style.width);\n\n if (styleWidth !== false) {\n size.width = styleWidth + ( // add padding and border unless it's already including it\n isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth);\n }\n\n var styleHeight = getStyleSize(style.height);\n\n if (styleHeight !== false) {\n size.height = styleHeight + ( // add padding and border unless it's already including it\n isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight);\n }\n\n size.innerWidth = size.width - (paddingWidth + borderWidth);\n size.innerHeight = size.height - (paddingHeight + borderHeight);\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n return size;\n }\n\n return getSize;\n});","require(\"core-js/modules/es6.array.index-of\");\n\n// drag\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'unidragger/unidragger', 'fizzy-ui-utils/utils'], function (Flickity, Unidragger, utils) {\n return factory(window, Flickity, Unidragger, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('unidragger'), require('fizzy-ui-utils'));\n } else {\n // browser global\n window.Flickity = factory(window, window.Flickity, window.Unidragger, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, Unidragger, utils) {\n 'use strict'; // ----- defaults ----- //\n\n utils.extend(Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3\n }); // ----- create ----- //\n\n Flickity.createMethods.push('_createDrag'); // -------------------------- drag prototype -------------------------- //\n\n var proto = Flickity.prototype;\n utils.extend(proto, Unidragger.prototype);\n proto._touchActionValue = 'pan-y'; // -------------------------- -------------------------- //\n\n var isTouch = 'createTouch' in document;\n var isTouchmoveScrollCanceled = false;\n\n proto._createDrag = function () {\n this.on('activate', this.onActivateDrag);\n this.on('uiChange', this._uiChangeDrag);\n this.on('deactivate', this.onDeactivateDrag);\n this.on('cellChange', this.updateDraggable); // TODO updateDraggable on resize? if groupCells & slides change\n // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\n // #457, RubaXa/Sortable#973\n\n if (isTouch && !isTouchmoveScrollCanceled) {\n window.addEventListener('touchmove', function () {});\n isTouchmoveScrollCanceled = true;\n }\n };\n\n proto.onActivateDrag = function () {\n this.handles = [this.viewport];\n this.bindHandles();\n this.updateDraggable();\n };\n\n proto.onDeactivateDrag = function () {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n };\n\n proto.updateDraggable = function () {\n // disable dragging if less than 2 slides. #278\n if (this.options.draggable == '>1') {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n\n if (this.isDraggable) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n }; // backwards compatibility\n\n\n proto.bindDrag = function () {\n this.options.draggable = true;\n this.updateDraggable();\n };\n\n proto.unbindDrag = function () {\n this.options.draggable = false;\n this.updateDraggable();\n };\n\n proto._uiChangeDrag = function () {\n delete this.isFreeScrolling;\n }; // -------------------------- pointer events -------------------------- //\n\n\n proto.pointerDown = function (event, pointer) {\n if (!this.isDraggable) {\n this._pointerDownDefault(event, pointer);\n\n return;\n }\n\n var isOkay = this.okayPointerDown(event);\n\n if (!isOkay) {\n return;\n }\n\n this._pointerDownPreventDefault(event);\n\n this.pointerDownFocus(event); // blur\n\n if (document.activeElement != this.element) {\n // do not blur if already focused\n this.pointerDownBlur();\n } // stop if it was moving\n\n\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down'); // track scrolling\n\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener('scroll', this);\n\n this._pointerDownDefault(event, pointer);\n }; // default pointerDown logic, used for staticClick\n\n\n proto._pointerDownDefault = function (event, pointer) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY\n }; // bind move and end events\n\n this._bindPostStartEvents(event);\n\n this.dispatchEvent('pointerDown', event, [pointer]);\n };\n\n var focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true\n };\n\n proto.pointerDownFocus = function (event) {\n var isFocusNode = focusNodes[event.target.nodeName];\n\n if (!isFocusNode) {\n this.focus();\n }\n };\n\n proto._pointerDownPreventDefault = function (event) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[event.target.nodeName];\n\n if (!isTouchStart && !isTouchPointer && !isFocusNode) {\n event.preventDefault();\n }\n }; // ----- move ----- //\n\n\n proto.hasDragStarted = function (moveVector) {\n return Math.abs(moveVector.x) > this.options.dragThreshold;\n }; // ----- up ----- //\n\n\n proto.pointerUp = function (event, pointer) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent('pointerUp', event, [pointer]);\n\n this._dragPointerUp(event, pointer);\n };\n\n proto.pointerDone = function () {\n window.removeEventListener('scroll', this);\n delete this.pointerDownScroll;\n }; // -------------------------- dragging -------------------------- //\n\n\n proto.dragStart = function (event, pointer) {\n if (!this.isDraggable) {\n return;\n }\n\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener('scroll', this);\n this.dispatchEvent('dragStart', event, [pointer]);\n };\n\n proto.pointerMove = function (event, pointer) {\n var moveVector = this._dragPointerMove(event, pointer);\n\n this.dispatchEvent('pointerMove', event, [pointer, moveVector]);\n\n this._dragMove(event, pointer, moveVector);\n };\n\n proto.dragMove = function (event, pointer, moveVector) {\n if (!this.isDraggable) {\n return;\n }\n\n event.preventDefault();\n this.previousDragX = this.dragX; // reverse if right-to-left\n\n var direction = this.options.rightToLeft ? -1 : 1;\n\n if (this.options.wrapAround) {\n // wrap around move. #589\n moveVector.x = moveVector.x % this.slideableWidth;\n }\n\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if (!this.options.wrapAround && this.slides.length) {\n // slow drag\n var originBound = Math.max(-this.slides[0].target, this.dragStartPosition);\n dragX = dragX > originBound ? (dragX + originBound) * 0.5 : dragX;\n var endBound = Math.min(-this.getLastSlide().target, this.dragStartPosition);\n dragX = dragX < endBound ? (dragX + endBound) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n this.dragMoveTime = new Date();\n this.dispatchEvent('dragMove', event, [pointer, moveVector]);\n };\n\n proto.dragEnd = function (event, pointer) {\n if (!this.isDraggable) {\n return;\n }\n\n if (this.options.freeScroll) {\n this.isFreeScrolling = true;\n } // set selectedIndex based on where flick will end up\n\n\n var index = this.dragEndRestingSelect();\n\n if (this.options.freeScroll && !this.options.wrapAround) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling = -restingX > this.slides[0].target && -restingX < this.getLastSlide().target;\n } else if (!this.options.freeScroll && index == this.selectedIndex) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n\n delete this.previousDragX; // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n\n this.isDragSelect = this.options.wrapAround;\n this.select(index);\n delete this.isDragSelect;\n this.dispatchEvent('dragEnd', event, [pointer]);\n };\n\n proto.dragEndRestingSelect = function () {\n var restingX = this.getRestingPosition(); // how far away from selected slide\n\n var distance = Math.abs(this.getSlideDistance(-restingX, this.selectedIndex)); // get closet resting going up and going down\n\n var positiveResting = this._getClosestResting(restingX, distance, 1);\n\n var negativeResting = this._getClosestResting(restingX, distance, -1); // use closer resting for wrap-around\n\n\n var index = positiveResting.distance < negativeResting.distance ? positiveResting.index : negativeResting.index;\n return index;\n };\n /**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\n\n\n proto._getClosestResting = function (restingX, distance, increment) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ? // if contain, keep going if distance is equal to minDistance\n function (d, md) {\n return d <= md;\n } : function (d, md) {\n return d < md;\n };\n\n while (condition(distance, minDistance)) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance(-restingX, index);\n\n if (distance === null) {\n break;\n }\n\n distance = Math.abs(distance);\n }\n\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment\n };\n };\n /**\n * measure distance between x and a slide target\n * @param {Number} x\n * @param {Integer} index - slide index\n */\n\n\n proto.getSlideDistance = function (x, index) {\n var len = this.slides.length; // wrap around if at least 2 slides\n\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo(index, len) : index;\n var slide = this.slides[slideIndex];\n\n if (!slide) {\n return null;\n } // add distance for wrap-around slides\n\n\n var wrap = isWrapAround ? this.slideableWidth * Math.floor(index / len) : 0;\n return x - (slide.target + wrap);\n };\n\n proto.dragEndBoostSelect = function () {\n // do not boost if no previousDragX or dragMoveTime\n if (this.previousDragX === undefined || !this.dragMoveTime || // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100) {\n return 0;\n }\n\n var distance = this.getSlideDistance(-this.dragX, this.selectedIndex);\n var delta = this.previousDragX - this.dragX;\n\n if (distance > 0 && delta > 0) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if (distance < 0 && delta < 0) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n\n return 0;\n }; // ----- staticClick ----- //\n\n\n proto.staticClick = function (event, pointer) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell(event.target);\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf(clickedCell);\n this.dispatchEvent('staticClick', event, [pointer, cellElem, cellIndex]);\n }; // ----- scroll ----- //\n\n\n proto.onscroll = function () {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y; // cancel click/tap if scroll is too much\n\n if (Math.abs(scrollMoveX) > 3 || Math.abs(scrollMoveY) > 3) {\n this._pointerDone();\n }\n }; // ----- utils ----- //\n\n\n function getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n } // ----- ----- //\n\n\n return Flickity;\n});","require(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.array.is-array\");\n\n/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n(function (window, factory) {\n // universal module definition\n\n /*jshint strict: false */\n\n /*globals define, module, require */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['desandro-matches-selector/matches-selector'], function (matchesSelector) {\n return factory(window, matchesSelector);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('desandro-matches-selector'));\n } else {\n // browser global\n window.fizzyUIUtils = factory(window, window.matchesSelector);\n }\n})(window, function factory(window, matchesSelector) {\n 'use strict';\n\n var utils = {}; // ----- extend ----- //\n // extends objects\n\n utils.extend = function (a, b) {\n for (var prop in b) {\n a[prop] = b[prop];\n }\n\n return a;\n }; // ----- modulo ----- //\n\n\n utils.modulo = function (num, div) {\n return (num % div + div) % div;\n }; // ----- makeArray ----- //\n\n\n var arraySlice = Array.prototype.slice; // turn element or nodeList into an array\n\n utils.makeArray = function (obj) {\n if (Array.isArray(obj)) {\n // use object if already an array\n return obj;\n } // return empty array if undefined or null. #6\n\n\n if (obj === null || obj === undefined) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n\n if (isArrayLike) {\n // convert nodeList to array\n return arraySlice.call(obj);\n } // array of single index\n\n\n return [obj];\n }; // ----- removeFrom ----- //\n\n\n utils.removeFrom = function (ary, obj) {\n var index = ary.indexOf(obj);\n\n if (index != -1) {\n ary.splice(index, 1);\n }\n }; // ----- getParent ----- //\n\n\n utils.getParent = function (elem, selector) {\n while (elem.parentNode && elem != document.body) {\n elem = elem.parentNode;\n\n if (matchesSelector(elem, selector)) {\n return elem;\n }\n }\n }; // ----- getQueryElement ----- //\n // use element as selector string\n\n\n utils.getQueryElement = function (elem) {\n if (typeof elem == 'string') {\n return document.querySelector(elem);\n }\n\n return elem;\n }; // ----- handleEvent ----- //\n // enable .ontype to trigger from .addEventListener( elem, 'type' )\n\n\n utils.handleEvent = function (event) {\n var method = 'on' + event.type;\n\n if (this[method]) {\n this[method](event);\n }\n }; // ----- filterFindElements ----- //\n\n\n utils.filterFindElements = function (elems, selector) {\n // make array of elems\n elems = utils.makeArray(elems);\n var ffElems = [];\n elems.forEach(function (elem) {\n // check that elem is an actual element\n if (!(elem instanceof HTMLElement)) {\n return;\n } // add elem if no selector\n\n\n if (!selector) {\n ffElems.push(elem);\n return;\n } // filter & find items if we have a selector\n // filter\n\n\n if (matchesSelector(elem, selector)) {\n ffElems.push(elem);\n } // find children\n\n\n var childElems = elem.querySelectorAll(selector); // concat childElems to filterFound array\n\n for (var i = 0; i < childElems.length; i++) {\n ffElems.push(childElems[i]);\n }\n });\n return ffElems;\n }; // ----- debounceMethod ----- //\n\n\n utils.debounceMethod = function (_class, methodName, threshold) {\n threshold = threshold || 100; // original method\n\n var method = _class.prototype[methodName];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[methodName] = function () {\n var timeout = this[timeoutName];\n clearTimeout(timeout);\n var args = arguments;\n\n var _this = this;\n\n this[timeoutName] = setTimeout(function () {\n method.apply(_this, args);\n delete _this[timeoutName];\n }, threshold);\n };\n }; // ----- docReady ----- //\n\n\n utils.docReady = function (callback) {\n var readyState = document.readyState;\n\n if (readyState == 'complete' || readyState == 'interactive') {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout(callback);\n } else {\n document.addEventListener('DOMContentLoaded', callback);\n }\n }; // ----- htmlInit ----- //\n // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\n\n\n utils.toDashed = function (str) {\n return str.replace(/(.)([A-Z])/g, function (match, $1, $2) {\n return $1 + '-' + $2;\n }).toLowerCase();\n };\n\n var console = window.console;\n /**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\n\n utils.htmlInit = function (WidgetClass, namespace) {\n utils.docReady(function () {\n var dashedNamespace = utils.toDashed(namespace);\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll('[' + dataAttr + ']');\n var jsDashElems = document.querySelectorAll('.js-' + dashedNamespace);\n var elems = utils.makeArray(dataAttrElems).concat(utils.makeArray(jsDashElems));\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n elems.forEach(function (elem) {\n var attr = elem.getAttribute(dataAttr) || elem.getAttribute(dataOptionsAttr);\n var options;\n\n try {\n options = attr && JSON.parse(attr);\n } catch (error) {\n // log error, do not initialize\n if (console) {\n console.error('Error parsing ' + dataAttr + ' on ' + elem.className + ': ' + error);\n }\n\n return;\n } // initialize\n\n\n var instance = new WidgetClass(elem, options); // make available via $().data('namespace')\n\n if (jQuery) {\n jQuery.data(elem, namespace, instance);\n }\n });\n });\n }; // ----- ----- //\n\n\n return utils;\n});","require(\"core-js/modules/es6.array.map\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\n// slide\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n})(window, function factory() {\n 'use strict';\n\n function Slide(parent) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n }\n\n var proto = Slide.prototype;\n\n proto.addCell = function (cell) {\n this.cells.push(cell);\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max(cell.size.outerHeight, this.height); // first cell stuff\n\n if (this.cells.length == 1) {\n this.x = cell.x; // x comes from first cell\n\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[beginMargin];\n }\n };\n\n proto.updateTarget = function () {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[endMargin] : 0;\n var slideWidth = this.outerWidth - (this.firstMargin + lastMargin);\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n };\n\n proto.getLastCell = function () {\n return this.cells[this.cells.length - 1];\n };\n\n proto.select = function () {\n this.cells.forEach(function (cell) {\n cell.select();\n });\n };\n\n proto.unselect = function () {\n this.cells.forEach(function (cell) {\n cell.unselect();\n });\n };\n\n proto.getCellElements = function () {\n return this.cells.map(function (cell) {\n return cell.element;\n });\n };\n\n return Slide;\n});","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport \"flickity/dist/flickity.min.css\"\nimport Flickity from \"flickity\"\n\nexport default class Carousel extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n flickityReady: false,\n }\n\n this.refreshFlickity = this.refreshFlickity.bind(this)\n }\n\n componentDidMount() {\n this.flickity = new Flickity(this.flickityNode, this.props.options || {})\n\n this.setState({\n flickityReady: true,\n })\n }\n\n refreshFlickity() {\n if (this.flickity) {\n this.flickity.reloadCells()\n this.flickity.resize()\n this.flickity.updateDraggable()\n }\n }\n\n componentWillUnmount() {\n // this.flickity.destroy()\n }\n\n componentDidUpdate(prevProps, prevState) {\n const flickityDidBecomeActive =\n !prevState.flickityReady && this.state.flickityReady\n const childrenDidChange =\n prevProps.children.length !== this.props.children.length\n\n if (flickityDidBecomeActive || childrenDidChange) {\n this.refreshFlickity()\n }\n }\n\n renderPortal() {\n if (!this.flickityNode) {\n return null\n }\n\n const mountNode = this.flickityNode.querySelector(\".flickity-slider\")\n\n if (mountNode) {\n return ReactDOM.createPortal(this.props.children, mountNode)\n }\n }\n\n render() {\n return [\n <div\n className={\"test\"}\n key=\"flickityBase\"\n ref={node => (this.flickityNode = node)}\n />,\n this.renderPortal(),\n ].filter(Boolean)\n }\n}\n","export default __webpack_public_path__ + \"static/dummies-237c991b3a29b621b6d8a5db5b780413.png\";","export default __webpack_public_path__ + \"static/apple-cee5060991bc1dac935040097effd51f.png\";","export default __webpack_public_path__ + \"static/world-cfe7b77327057a15a570a2d5b48a8ced.png\";","export default __webpack_public_path__ + \"static/world-de2514e213f61c0941ed1511dd1b9b89.png\";","import React from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useMediaQuery } from \"react-responsive\"\nimport Carousel from \"@components/atoms/Carousel\"\nimport styled from \"styled-components\"\nimport { trackCustomEvent } from \"gatsby-plugin-google-analytics\"\n\nimport ImageZh1 from \"@/images/banner/zh/dummies.png\"\n// import ImageZh2 from \"@/images/banner/zh/searcher.png\"\nimport ImageZh3 from \"@/images/banner/zh/apple.png\"\nimport ImageZh4 from \"@/images/banner/zh/world.png\"\n// import ImageEn1 from \"@/images/banner/en/searcher.png\"\nimport ImageEn2 from \"@/images/banner/en/world.png\"\n\nconst CarouselContainer = styled.div`\n margin: 16px 0;\n`\n\nconst CarouselCell = styled.img`\n width: 66%;\n max-width: 220px;\n height: 120px;\n margin-right: 12px;\n`\n\nexport default props => {\n const { i18n } = useTranslation()\n\n const isMobile = useMediaQuery({ maxWidth: 960 })\n\n const bannerImages = {\n zh: [\n { img: ImageZh1, isExternal: true, url: \"https://bit.ly/wars1001\" },\n // { img: ImageZh2, isExternal: true, url: \"http://bit.ly/2x7PctV\" },\n { img: ImageZh3, isExternal: true, url: \"http://bit.ly/3cLtKeL\" },\n { img: ImageZh4, isExternal: false, url: \"https://wars.vote4.hk/world\" },\n ],\n en: [\n // { img: ImageEn1, isExternal: true, url: \"http://bit.ly/2x7PctV\" },\n {\n img: ImageEn2,\n isExternal: false,\n url: \"https://wars.vote4.hk/en/world\",\n },\n {\n img: ImageEn2,\n isExternal: false,\n url: \"https://wars.vote4.hk/en/world\",\n },\n ],\n }\n\n const bannerImagesArray =\n bannerImages[i18n.language].length < 4\n ? [...bannerImages[i18n.language], ...bannerImages[i18n.language]]\n : bannerImages[i18n.language]\n\n return (\n <CarouselContainer>\n <Carousel\n options={{\n autoPlay: false,\n wrapAround: true,\n adaptiveHeight: false,\n prevNextButtons: isMobile ? false : true,\n pageDots: false,\n }}\n >\n {bannerImagesArray.map((b, index) => (\n <CarouselCell\n key={index}\n onClick={() => {\n trackCustomEvent({\n category: \"carousel_banner\",\n action: \"click\",\n label: b.url,\n })\n window.open(b.url, b.isExternal ? \"_blank\" : \"_self\")\n }}\n src={b.img}\n alt=\"\"\n />\n ))}\n </Carousel>\n </CarouselContainer>\n )\n}\n","require(\"core-js/modules/es6.array.for-each\");\n\n// lazyload\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'fizzy-ui-utils/utils'], function (Flickity, utils) {\n return factory(window, Flickity, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('fizzy-ui-utils'));\n } else {\n // browser global\n factory(window, window.Flickity, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, utils) {\n 'use strict';\n\n Flickity.createMethods.push('_createLazyload');\n var proto = Flickity.prototype;\n\n proto._createLazyload = function () {\n this.on('select', this.lazyLoad);\n };\n\n proto.lazyLoad = function () {\n var lazyLoad = this.options.lazyLoad;\n\n if (!lazyLoad) {\n return;\n } // get adjacent cells, use lazyLoad option for adjacent count\n\n\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements(adjCount); // get lazy images in those cells\n\n var lazyImages = [];\n cellElems.forEach(function (cellElem) {\n var lazyCellImages = getCellLazyImages(cellElem);\n lazyImages = lazyImages.concat(lazyCellImages);\n }); // load lazy images\n\n lazyImages.forEach(function (img) {\n new LazyLoader(img, this);\n }, this);\n };\n\n function getCellLazyImages(cellElem) {\n // check if cell element is lazy image\n if (cellElem.nodeName == 'IMG') {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n\n if (lazyloadAttr || srcAttr || srcsetAttr) {\n return [cellElem];\n }\n } // select lazy images in cell\n\n\n var lazySelector = 'img[data-flickity-lazyload], ' + 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll(lazySelector);\n return utils.makeArray(imgs);\n } // -------------------------- LazyLoader -------------------------- //\n\n /**\n * class to handle loading images\n */\n\n\n function LazyLoader(img, flickity) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n }\n\n LazyLoader.prototype.handleEvent = utils.handleEvent;\n\n LazyLoader.prototype.load = function () {\n this.img.addEventListener('load', this);\n this.img.addEventListener('error', this); // get src & srcset\n\n var src = this.img.getAttribute('data-flickity-lazyload') || this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset'); // set src & serset\n\n this.img.src = src;\n\n if (srcset) {\n this.img.setAttribute('srcset', srcset);\n } // remove attr\n\n\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n };\n\n LazyLoader.prototype.onload = function (event) {\n this.complete(event, 'flickity-lazyloaded');\n };\n\n LazyLoader.prototype.onerror = function (event) {\n this.complete(event, 'flickity-lazyerror');\n };\n\n LazyLoader.prototype.complete = function (event, className) {\n // unbind events\n this.img.removeEventListener('load', this);\n this.img.removeEventListener('error', this);\n var cell = this.flickity.getParentCell(this.img);\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange(cellElem);\n this.img.classList.add(className);\n this.flickity.dispatchEvent('lazyLoad', event, cellElem);\n }; // ----- ----- //\n\n\n Flickity.LazyLoader = LazyLoader;\n return Flickity;\n});","require(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.object.assign\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nrequire(\"core-js/modules/es6.function.name\");\n\nrequire(\"core-js/modules/es6.function.bind\");\n\nrequire(\"core-js/modules/es6.object.define-properties\");\n\nrequire(\"core-js/modules/es7.object.get-own-property-descriptors\");\n\nrequire(\"core-js/modules/es6.array.filter\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.number.constructor\");\n\nrequire(\"core-js/modules/es6.string.trim\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/es6.array.map\");\n\nrequire(\"core-js/modules/es6.array.some\");\n\nrequire(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.array.reduce\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.array.is-array\");\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\n!function (root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory(require(\"react\")) : \"function\" == typeof define && define.amd ? define([\"react\"], factory) : \"object\" == typeof exports ? exports.MediaQuery = factory(require(\"react\")) : root.MediaQuery = factory(root.React);\n}(\"undefined\" != typeof self ? self : this, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n return function (modules) {\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), module.l = !0, module.exports;\n }\n\n var installedModules = {};\n return __webpack_require__.m = modules, __webpack_require__.c = installedModules, __webpack_require__.d = function (exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n configurable: !1,\n enumerable: !0,\n get: getter\n });\n }, __webpack_require__.n = function (module) {\n var getter = module && module.__esModule ? function () {\n return module[\"default\"];\n } : function () {\n return module;\n };\n return __webpack_require__.d(getter, \"a\", getter), getter;\n }, __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n }, __webpack_require__.p = \"\", __webpack_require__(__webpack_require__.s = 6);\n }([function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _arr = [],\n _n = !0,\n _d = !1,\n _e = void 0;\n\n try {\n for (var _s, _i = arr[Symbol.iterator](); !(_n = (_s = _i.next()).done) && (_arr.push(_s.value), !i || _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n _n || null == _i[\"return\"] || _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(1),\n __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__),\n __WEBPACK_IMPORTED_MODULE_1_matchmediaquery__ = __webpack_require__(7),\n __WEBPACK_IMPORTED_MODULE_1_matchmediaquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_matchmediaquery__),\n __WEBPACK_IMPORTED_MODULE_2_hyphenate_style_name__ = __webpack_require__(2),\n __WEBPACK_IMPORTED_MODULE_3_shallow_equal_objects__ = __webpack_require__(9),\n __WEBPACK_IMPORTED_MODULE_3_shallow_equal_objects___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_shallow_equal_objects__),\n __WEBPACK_IMPORTED_MODULE_4__toQuery__ = __webpack_require__(10),\n __WEBPACK_IMPORTED_MODULE_5__Context__ = __webpack_require__(5),\n makeQuery = function makeQuery(settings) {\n return settings.query || Object(__WEBPACK_IMPORTED_MODULE_4__toQuery__.a)(settings);\n },\n hyphenateKeys = function hyphenateKeys(obj) {\n if (!obj) return null;\n var keys = Object.keys(obj);\n return 0 === keys.length ? null : keys.reduce(function (result, key) {\n return result[Object(__WEBPACK_IMPORTED_MODULE_2_hyphenate_style_name__.a)(key)] = obj[key], result;\n }, {});\n },\n useIsUpdate = function useIsUpdate() {\n var ref = __WEBPACK_IMPORTED_MODULE_0_react___default.a.useRef(!1);\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.useEffect(function () {\n ref.current = !0;\n }, []), ref.current;\n },\n useDevice = function useDevice(deviceFromProps) {\n var deviceFromContext = __WEBPACK_IMPORTED_MODULE_0_react___default.a.useContext(__WEBPACK_IMPORTED_MODULE_5__Context__.a),\n getDevice = function getDevice() {\n return hyphenateKeys(deviceFromProps) || hyphenateKeys(deviceFromContext);\n },\n _React$useState = __WEBPACK_IMPORTED_MODULE_0_react___default.a.useState(getDevice),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n device = _React$useState2[0],\n setDevice = _React$useState2[1];\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.useEffect(function () {\n var newDevice = getDevice();\n __WEBPACK_IMPORTED_MODULE_3_shallow_equal_objects___default()(device, newDevice) || setDevice(newDevice);\n }, [deviceFromProps, deviceFromContext]), device;\n },\n useQuery = function useQuery(settings) {\n var getQuery = function getQuery() {\n return makeQuery(settings);\n },\n _React$useState3 = __WEBPACK_IMPORTED_MODULE_0_react___default.a.useState(getQuery),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n query = _React$useState4[0],\n setQuery = _React$useState4[1];\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.useEffect(function () {\n var newQuery = getQuery();\n query !== newQuery && setQuery(newQuery);\n }, [settings]), query;\n },\n useMatchMedia = function useMatchMedia(query, device) {\n var getMatchMedia = function getMatchMedia() {\n return __WEBPACK_IMPORTED_MODULE_1_matchmediaquery___default()(query, device || {}, !!device);\n },\n _React$useState5 = __WEBPACK_IMPORTED_MODULE_0_react___default.a.useState(getMatchMedia),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n mq = _React$useState6[0],\n setMq = _React$useState6[1],\n isUpdate = useIsUpdate();\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.useEffect(function () {\n return isUpdate && setMq(getMatchMedia()), function () {\n mq.dispose();\n };\n }, [query, device]), mq;\n },\n useMatches = function useMatches(mediaQuery) {\n var _React$useState7 = __WEBPACK_IMPORTED_MODULE_0_react___default.a.useState(mediaQuery.matches),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n matches = _React$useState8[0],\n setMatches = _React$useState8[1];\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.useEffect(function () {\n var updateMatches = function updateMatches() {\n setMatches(mediaQuery.matches);\n };\n\n return mediaQuery.addListener(updateMatches), updateMatches(), function () {\n mediaQuery.removeListener(updateMatches);\n };\n }, [mediaQuery]), matches;\n },\n useMediaQuery = function useMediaQuery(settings, device, onChange) {\n var deviceSettings = useDevice(device),\n query = useQuery(settings);\n if (!query) throw new Error(\"Invalid or missing MediaQuery!\");\n var mq = useMatchMedia(query, deviceSettings),\n matches = useMatches(mq),\n isUpdate = useIsUpdate();\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.useEffect(function () {\n isUpdate && onChange && onChange(matches);\n }, [matches]), matches;\n };\n\n __webpack_exports__.a = useMediaQuery;\n }, function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n }, function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n function toHyphenLower(match) {\n return \"-\" + match.toLowerCase();\n }\n\n function hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) return cache[name];\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? \"-\" + hName : hName;\n }\n\n var uppercasePattern = /[A-Z]/g,\n msPattern = /^ms-/,\n cache = {};\n __webpack_exports__.a = hyphenateStyleName;\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n module.exports = __webpack_require__(13);\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n module.exports = \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";\n }, function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(1),\n __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__),\n Context = __WEBPACK_IMPORTED_MODULE_0_react___default.a.createContext();\n\n __webpack_exports__.a = Context;\n }, function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n Object.defineProperty(__webpack_exports__, \"__esModule\", {\n value: !0\n });\n\n var __WEBPACK_IMPORTED_MODULE_0__useMediaQuery__ = __webpack_require__(0),\n __WEBPACK_IMPORTED_MODULE_1__Component__ = __webpack_require__(17),\n __WEBPACK_IMPORTED_MODULE_2__Context__ = __webpack_require__(5);\n\n __webpack_require__.d(__webpack_exports__, \"default\", function () {\n return __WEBPACK_IMPORTED_MODULE_1__Component__.a;\n }), __webpack_require__.d(__webpack_exports__, \"useMediaQuery\", function () {\n return __WEBPACK_IMPORTED_MODULE_0__useMediaQuery__.a;\n }), __webpack_require__.d(__webpack_exports__, \"Context\", function () {\n return __WEBPACK_IMPORTED_MODULE_2__Context__.a;\n });\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n function Mql(query, values, forceStatic) {\n function addListener(listener) {\n mql && mql.addListener(listener);\n }\n\n function removeListener(listener) {\n mql && mql.removeListener(listener);\n }\n\n function update(evt) {\n self.matches = evt.matches, self.media = evt.media;\n }\n\n function dispose() {\n mql && mql.removeListener(update);\n }\n\n var self = this;\n\n if (dynamicMatch && !forceStatic) {\n var mql = dynamicMatch.call(window, query);\n this.matches = mql.matches, this.media = mql.media, mql.addListener(update);\n } else this.matches = staticMatch(query, values), this.media = query;\n\n this.addListener = addListener, this.removeListener = removeListener, this.dispose = dispose;\n }\n\n function matchMedia(query, values, forceStatic) {\n return new Mql(query, values, forceStatic);\n }\n\n var staticMatch = __webpack_require__(8).match,\n dynamicMatch = \"undefined\" != typeof window ? window.matchMedia : null;\n\n module.exports = matchMedia;\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n function matchQuery(mediaQuery, values) {\n return parseQuery(mediaQuery).some(function (query) {\n var inverse = query.inverse,\n typeMatch = \"all\" === query.type || values.type === query.type;\n if (typeMatch && inverse || !typeMatch && !inverse) return !1;\n var expressionsMatch = query.expressions.every(function (expression) {\n var feature = expression.feature,\n modifier = expression.modifier,\n expValue = expression.value,\n value = values[feature];\n if (!value) return !1;\n\n switch (feature) {\n case \"orientation\":\n case \"scan\":\n return value.toLowerCase() === expValue.toLowerCase();\n\n case \"width\":\n case \"height\":\n case \"device-width\":\n case \"device-height\":\n expValue = toPx(expValue), value = toPx(value);\n break;\n\n case \"resolution\":\n expValue = toDpi(expValue), value = toDpi(value);\n break;\n\n case \"aspect-ratio\":\n case \"device-aspect-ratio\":\n case \"device-pixel-ratio\":\n expValue = toDecimal(expValue), value = toDecimal(value);\n break;\n\n case \"grid\":\n case \"color\":\n case \"color-index\":\n case \"monochrome\":\n expValue = parseInt(expValue, 10) || 1, value = parseInt(value, 10) || 0;\n }\n\n switch (modifier) {\n case \"min\":\n return value >= expValue;\n\n case \"max\":\n return value <= expValue;\n\n default:\n return value === expValue;\n }\n });\n return expressionsMatch && !inverse || !expressionsMatch && inverse;\n });\n }\n\n function parseQuery(mediaQuery) {\n return mediaQuery.split(\",\").map(function (query) {\n query = query.trim();\n var captures = query.match(RE_MEDIA_QUERY),\n modifier = captures[1],\n type = captures[2],\n expressions = captures[3] || \"\",\n parsed = {};\n return parsed.inverse = !!modifier && \"not\" === modifier.toLowerCase(), parsed.type = type ? type.toLowerCase() : \"all\", expressions = expressions.match(/\\([^\\)]+\\)/g) || [], parsed.expressions = expressions.map(function (expression) {\n var captures = expression.match(RE_MQ_EXPRESSION),\n feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n return {\n modifier: feature[1],\n feature: feature[2],\n value: captures[2]\n };\n }), parsed;\n });\n }\n\n function toDecimal(ratio) {\n var numbers,\n decimal = Number(ratio);\n return decimal || (numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/), decimal = numbers[1] / numbers[2]), decimal;\n }\n\n function toDpi(resolution) {\n var value = parseFloat(resolution);\n\n switch (String(resolution).match(RE_RESOLUTION_UNIT)[1]) {\n case \"dpcm\":\n return value / 2.54;\n\n case \"dppx\":\n return 96 * value;\n\n default:\n return value;\n }\n }\n\n function toPx(length) {\n var value = parseFloat(length);\n\n switch (String(length).match(RE_LENGTH_UNIT)[1]) {\n case \"em\":\n case \"rem\":\n return 16 * value;\n\n case \"cm\":\n return 96 * value / 2.54;\n\n case \"mm\":\n return 96 * value / 2.54 / 10;\n\n case \"in\":\n return 96 * value;\n\n case \"pt\":\n return 72 * value;\n\n case \"pc\":\n return 72 * value / 12;\n\n default:\n return value;\n }\n }\n\n exports.match = matchQuery, exports.parse = parseQuery;\n var RE_MEDIA_QUERY = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i,\n RE_MQ_EXPRESSION = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/,\n RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/,\n RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/,\n RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n function shallowEqualObjects(objA, objB) {\n if (objA === objB) return !0;\n if (!objA || !objB) return !1;\n var aKeys = Object.keys(objA),\n bKeys = Object.keys(objB),\n len = aKeys.length;\n if (bKeys.length !== len) return !1;\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key]) return !1;\n }\n\n return !0;\n }\n\n module.exports = shallowEqualObjects;\n }, function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n var __WEBPACK_IMPORTED_MODULE_0_hyphenate_style_name__ = __webpack_require__(2),\n __WEBPACK_IMPORTED_MODULE_1__mediaQuery__ = __webpack_require__(11),\n negate = function negate(cond) {\n return \"not \".concat(cond);\n },\n keyVal = function keyVal(k, v) {\n var realKey = Object(__WEBPACK_IMPORTED_MODULE_0_hyphenate_style_name__.a)(k);\n return \"number\" == typeof v && (v = \"\".concat(v, \"px\")), !0 === v ? realKey : !1 === v ? negate(realKey) : \"(\".concat(realKey, \": \").concat(v, \")\");\n },\n join = function join(conds) {\n return conds.join(\" and \");\n };\n\n __webpack_exports__.a = function (obj) {\n var rules = [];\n return Object.keys(__WEBPACK_IMPORTED_MODULE_1__mediaQuery__.a.all).forEach(function (k) {\n var v = obj[k];\n null != v && rules.push(keyVal(k, v));\n }), join(rules);\n };\n }, function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(source, !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n }\n\n function _defineProperty(obj, key, value) {\n return key in obj ? Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : obj[key] = value, obj;\n }\n\n var __WEBPACK_IMPORTED_MODULE_0_prop_types__ = __webpack_require__(12),\n __WEBPACK_IMPORTED_MODULE_0_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_prop_types__),\n stringOrNumber = __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number]),\n matchers = {\n orientation: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOf([\"portrait\", \"landscape\"]),\n scan: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.oneOf([\"progressive\", \"interlace\"]),\n aspectRatio: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string,\n deviceAspectRatio: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string,\n height: stringOrNumber,\n deviceHeight: stringOrNumber,\n width: stringOrNumber,\n deviceWidth: stringOrNumber,\n color: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n colorIndex: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n monochrome: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n resolution: stringOrNumber\n },\n features = _objectSpread({\n minAspectRatio: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string,\n maxAspectRatio: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string,\n minDeviceAspectRatio: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string,\n maxDeviceAspectRatio: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.string,\n minHeight: stringOrNumber,\n maxHeight: stringOrNumber,\n minDeviceHeight: stringOrNumber,\n maxDeviceHeight: stringOrNumber,\n minWidth: stringOrNumber,\n maxWidth: stringOrNumber,\n minDeviceWidth: stringOrNumber,\n maxDeviceWidth: stringOrNumber,\n minColor: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n maxColor: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n minColorIndex: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n maxColorIndex: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n minMonochrome: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n maxMonochrome: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.number,\n minResolution: stringOrNumber,\n maxResolution: stringOrNumber\n }, matchers),\n types = {\n all: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n grid: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n aural: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n braille: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n handheld: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n print: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n projection: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n screen: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n tty: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n tv: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool,\n embossed: __WEBPACK_IMPORTED_MODULE_0_prop_types___default.a.bool\n },\n all = _objectSpread({}, types, {}, features);\n\n matchers.type = Object.keys(types), __webpack_exports__.a = {\n all: all,\n types: types,\n matchers: matchers,\n features: features\n };\n }, function (module, exports, __webpack_require__) {\n var ReactIs = __webpack_require__(3);\n\n module.exports = __webpack_require__(14)(ReactIs.isElement, !0);\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n !function () {\n function isValidElementType(type) {\n return \"string\" == typeof type || \"function\" == typeof type || type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || \"object\" == typeof type && null !== type && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE);\n }\n\n function typeOf(object) {\n if (\"object\" == typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n\n function isAsyncMode(object) {\n return hasWarnedAboutDeprecatedIsAsyncMode || (hasWarnedAboutDeprecatedIsAsyncMode = !0, lowPriorityWarning$1(!1, \"The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.\")), isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n }\n\n function isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n }\n\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n\n function isElement(object) {\n return \"object\" == typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n\n var hasSymbol = \"function\" == typeof Symbol && Symbol[\"for\"],\n REACT_ELEMENT_TYPE = hasSymbol ? Symbol[\"for\"](\"react.element\") : 60103,\n REACT_PORTAL_TYPE = hasSymbol ? Symbol[\"for\"](\"react.portal\") : 60106,\n REACT_FRAGMENT_TYPE = hasSymbol ? Symbol[\"for\"](\"react.fragment\") : 60107,\n REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol[\"for\"](\"react.strict_mode\") : 60108,\n REACT_PROFILER_TYPE = hasSymbol ? Symbol[\"for\"](\"react.profiler\") : 60114,\n REACT_PROVIDER_TYPE = hasSymbol ? Symbol[\"for\"](\"react.provider\") : 60109,\n REACT_CONTEXT_TYPE = hasSymbol ? Symbol[\"for\"](\"react.context\") : 60110,\n REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol[\"for\"](\"react.async_mode\") : 60111,\n REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol[\"for\"](\"react.concurrent_mode\") : 60111,\n REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol[\"for\"](\"react.forward_ref\") : 60112,\n REACT_SUSPENSE_TYPE = hasSymbol ? Symbol[\"for\"](\"react.suspense\") : 60113,\n REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol[\"for\"](\"react.suspense_list\") : 60120,\n REACT_MEMO_TYPE = hasSymbol ? Symbol[\"for\"](\"react.memo\") : 60115,\n REACT_LAZY_TYPE = hasSymbol ? Symbol[\"for\"](\"react.lazy\") : 60116,\n REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol[\"for\"](\"react.fundamental\") : 60117,\n REACT_RESPONDER_TYPE = hasSymbol ? Symbol[\"for\"](\"react.responder\") : 60118,\n lowPriorityWarning = function lowPriorityWarning() {},\n printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0,\n message = \"Warning: \" + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n \"undefined\" != typeof console && console.warn(message);\n\n try {\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function lowPriorityWarning(condition, format) {\n if (void 0 === format) throw new Error(\"`lowPriorityWarning(condition, format, ...args)` requires a warning message argument\");\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n };\n\n var lowPriorityWarning$1 = lowPriorityWarning,\n AsyncMode = REACT_ASYNC_MODE_TYPE,\n ConcurrentMode = REACT_CONCURRENT_MODE_TYPE,\n ContextConsumer = REACT_CONTEXT_TYPE,\n ContextProvider = REACT_PROVIDER_TYPE,\n Element = REACT_ELEMENT_TYPE,\n ForwardRef = REACT_FORWARD_REF_TYPE,\n Fragment = REACT_FRAGMENT_TYPE,\n Lazy = REACT_LAZY_TYPE,\n Memo = REACT_MEMO_TYPE,\n Portal = REACT_PORTAL_TYPE,\n Profiler = REACT_PROFILER_TYPE,\n StrictMode = REACT_STRICT_MODE_TYPE,\n Suspense = REACT_SUSPENSE_TYPE,\n hasWarnedAboutDeprecatedIsAsyncMode = !1;\n exports.typeOf = typeOf, exports.AsyncMode = AsyncMode, exports.ConcurrentMode = ConcurrentMode, exports.ContextConsumer = ContextConsumer, exports.ContextProvider = ContextProvider, exports.Element = Element, exports.ForwardRef = ForwardRef, exports.Fragment = Fragment, exports.Lazy = Lazy, exports.Memo = Memo, exports.Portal = Portal, exports.Profiler = Profiler, exports.StrictMode = StrictMode, exports.Suspense = Suspense, exports.isValidElementType = isValidElementType, exports.isAsyncMode = isAsyncMode, exports.isConcurrentMode = isConcurrentMode, exports.isContextConsumer = isContextConsumer, exports.isContextProvider = isContextProvider, exports.isElement = isElement, exports.isForwardRef = isForwardRef, exports.isFragment = isFragment, exports.isLazy = isLazy, exports.isMemo = isMemo, exports.isPortal = isPortal, exports.isProfiler = isProfiler, exports.isStrictMode = isStrictMode, exports.isSuspense = isSuspense;\n }();\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n function emptyFunctionThatReturnsNull() {\n return null;\n }\n\n var ReactIs = __webpack_require__(3),\n assign = __webpack_require__(15),\n ReactPropTypesSecret = __webpack_require__(4),\n checkPropTypes = __webpack_require__(16),\n has = Function.call.bind(Object.prototype.hasOwnProperty),\n printWarning = function printWarning() {};\n\n printWarning = function printWarning(text) {\n var message = \"Warning: \" + text;\n \"undefined\" != typeof console && console.error(message);\n\n try {\n throw new Error(message);\n } catch (x) {}\n }, module.exports = function (isValidElement, throwOnDirectAccess) {\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (\"function\" == typeof iteratorFn) return iteratorFn;\n }\n\n function is(x, y) {\n return x === y ? 0 !== x || 1 / x == 1 / y : x !== x && y !== y;\n }\n\n function PropTypeError(message) {\n this.message = message, this.stack = \"\";\n }\n\n function createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n if (componentName = componentName || ANONYMOUS, propFullName = propFullName || propName, secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n var err = new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types\");\n throw err.name = \"Invariant Violation\", err;\n }\n\n if (\"undefined\" != typeof console) {\n var cacheKey = componentName + \":\" + propName;\n !manualPropTypeCallCache[cacheKey] && manualPropTypeWarningCount < 3 && (printWarning(\"You are manually calling a React.PropTypes validation function for the `\" + propFullName + \"` prop on `\" + componentName + \"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.\"), manualPropTypeCallCache[cacheKey] = !0, manualPropTypeWarningCount++);\n }\n }\n\n return null == props[propName] ? isRequired ? new PropTypeError(null === props[propName] ? \"The \" + location + \" `\" + propFullName + \"` is marked as required in `\" + componentName + \"`, but its value is `null`.\" : \"The \" + location + \" `\" + propFullName + \"` is marked as required in `\" + componentName + \"`, but its value is `undefined`.\") : null : validate(props, propName, componentName, location, propFullName);\n }\n\n var manualPropTypeCallCache = {},\n manualPropTypeWarningCount = 0,\n chainedCheckType = checkType.bind(null, !1);\n return chainedCheckType.isRequired = checkType.bind(null, !0), chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n if (getPropType(propValue) !== expectedType) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getPreciseType(propValue) + \"` supplied to `\" + componentName + \"`, expected `\" + expectedType + \"`.\");\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (\"function\" != typeof typeChecker) return new PropTypeError(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has invalid PropType notation inside arrayOf.\");\n var propValue = props[propName];\n\n if (!Array.isArray(propValue)) {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getPropType(propValue) + \"` supplied to `\" + componentName + \"`, expected an array.\");\n }\n\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + \"[\" + i + \"]\", ReactPropTypesSecret);\n if (error instanceof Error) return error;\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getClassName(props[propName]) + \"` supplied to `\" + componentName + \"`, expected instance of `\" + expectedClassName + \"`.\");\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n function validate(props, propName, componentName, location, propFullName) {\n for (var propValue = props[propName], i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) return null;\n }\n\n var valuesString = JSON.stringify(expectedValues, function (key, value) {\n return \"symbol\" === getPreciseType(value) ? String(value) : value;\n });\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of value `\" + String(propValue) + \"` supplied to `\" + componentName + \"`, expected one of \" + valuesString + \".\");\n }\n\n return Array.isArray(expectedValues) ? createChainableTypeChecker(validate) : (printWarning(arguments.length > 1 ? \"Invalid arguments supplied to oneOf, expected an array, got \" + arguments.length + \" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).\" : \"Invalid argument supplied to oneOf, expected an array.\"), emptyFunctionThatReturnsNull);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (\"function\" != typeof typeChecker) return new PropTypeError(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has invalid PropType notation inside objectOf.\");\n var propValue = props[propName],\n propType = getPropType(propValue);\n if (\"object\" !== propType) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + propType + \"` supplied to `\" + componentName + \"`, expected an object.\");\n\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + \".\" + key, ReactPropTypesSecret);\n if (error instanceof Error) return error;\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n if (null == (0, arrayOfTypeCheckers[i])(props, propName, componentName, location, propFullName, ReactPropTypesSecret)) return null;\n }\n\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` supplied to `\" + componentName + \"`.\");\n }\n\n if (!Array.isArray(arrayOfTypeCheckers)) return printWarning(\"Invalid argument supplied to oneOfType, expected an instance of array.\"), emptyFunctionThatReturnsNull;\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (\"function\" != typeof checker) return printWarning(\"Invalid argument supplied to oneOfType. Expected an array of check functions, but received \" + getPostfixForTypeWarning(checker) + \" at index \" + i + \".\"), emptyFunctionThatReturnsNull;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName],\n propType = getPropType(propValue);\n if (\"object\" !== propType) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + propType + \"` supplied to `\" + componentName + \"`, expected `object`.\");\n\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n\n if (checker) {\n var error = checker(propValue, key, componentName, location, propFullName + \".\" + key, ReactPropTypesSecret);\n if (error) return error;\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName],\n propType = getPropType(propValue);\n if (\"object\" !== propType) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + propType + \"` supplied to `\" + componentName + \"`, expected `object`.\");\n var allKeys = assign({}, props[propName], shapeTypes);\n\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` key `\" + key + \"` supplied to `\" + componentName + \"`.\\nBad object: \" + JSON.stringify(props[propName], null, \" \") + \"\\nValid keys: \" + JSON.stringify(Object.keys(shapeTypes), null, \" \"));\n var error = checker(propValue, key, componentName, location, propFullName + \".\" + key, ReactPropTypesSecret);\n if (error) return error;\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case \"number\":\n case \"string\":\n case \"undefined\":\n return !0;\n\n case \"boolean\":\n return !propValue;\n\n case \"object\":\n if (Array.isArray(propValue)) return propValue.every(isNode);\n if (null === propValue || isValidElement(propValue)) return !0;\n var iteratorFn = getIteratorFn(propValue);\n if (!iteratorFn) return !1;\n var step,\n iterator = iteratorFn.call(propValue);\n\n if (iteratorFn !== propValue.entries) {\n for (; !(step = iterator.next()).done;) {\n if (!isNode(step.value)) return !1;\n }\n } else for (; !(step = iterator.next()).done;) {\n var entry = step.value;\n if (entry && !isNode(entry[1])) return !1;\n }\n\n return !0;\n\n default:\n return !1;\n }\n }\n\n function isSymbol(propType, propValue) {\n return \"symbol\" === propType || !!propValue && (\"Symbol\" === propValue[\"@@toStringTag\"] || \"function\" == typeof Symbol && propValue instanceof Symbol);\n }\n\n function getPropType(propValue) {\n var propType = typeof propValue;\n return Array.isArray(propValue) ? \"array\" : propValue instanceof RegExp ? \"object\" : isSymbol(propType, propValue) ? \"symbol\" : propType;\n }\n\n function getPreciseType(propValue) {\n if (void 0 === propValue || null === propValue) return \"\" + propValue;\n var propType = getPropType(propValue);\n\n if (\"object\" === propType) {\n if (propValue instanceof Date) return \"date\";\n if (propValue instanceof RegExp) return \"regexp\";\n }\n\n return propType;\n }\n\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n\n switch (type) {\n case \"array\":\n case \"object\":\n return \"an \" + type;\n\n case \"boolean\":\n case \"date\":\n case \"regexp\":\n return \"a \" + type;\n\n default:\n return type;\n }\n }\n\n function getClassName(propValue) {\n return propValue.constructor && propValue.constructor.name ? propValue.constructor.name : ANONYMOUS;\n }\n\n var ITERATOR_SYMBOL = \"function\" == typeof Symbol && Symbol.iterator,\n FAUX_ITERATOR_SYMBOL = \"@@iterator\",\n ANONYMOUS = \"<<anonymous>>\",\n ReactPropTypes = {\n array: createPrimitiveTypeChecker(\"array\"),\n bool: createPrimitiveTypeChecker(\"boolean\"),\n func: createPrimitiveTypeChecker(\"function\"),\n number: createPrimitiveTypeChecker(\"number\"),\n object: createPrimitiveTypeChecker(\"object\"),\n string: createPrimitiveTypeChecker(\"string\"),\n symbol: createPrimitiveTypeChecker(\"symbol\"),\n any: function () {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }(),\n arrayOf: createArrayOfTypeChecker,\n element: function () {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n if (!isValidElement(propValue)) {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getPropType(propValue) + \"` supplied to `\" + componentName + \"`, expected a single ReactElement.\");\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }(),\n elementType: function () {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n if (!ReactIs.isValidElementType(propValue)) {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getPropType(propValue) + \"` supplied to `\" + componentName + \"`, expected a single ReactElement type.\");\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }(),\n instanceOf: createInstanceTypeChecker,\n node: function () {\n function validate(props, propName, componentName, location, propFullName) {\n return isNode(props[propName]) ? null : new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` supplied to `\" + componentName + \"`, expected a ReactNode.\");\n }\n\n return createChainableTypeChecker(validate);\n }(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker\n };\n return PropTypeError.prototype = Error.prototype, ReactPropTypes.checkPropTypes = checkPropTypes, ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache, ReactPropTypes.PropTypes = ReactPropTypes, ReactPropTypes;\n };\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n function toObject(val) {\n if (null === val || void 0 === val) throw new TypeError(\"Object.assign cannot be called with null or undefined\");\n return Object(val);\n }\n /*\n object-assign\n (c) Sindre Sorhus\n @license MIT\n */\n\n\n var getOwnPropertySymbols = Object.getOwnPropertySymbols,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n propIsEnumerable = Object.prototype.propertyIsEnumerable;\n module.exports = function () {\n try {\n if (!Object.assign) return !1;\n var test1 = new String(\"abc\");\n if (test1[5] = \"de\", \"5\" === Object.getOwnPropertyNames(test1)[0]) return !1;\n\n for (var test2 = {}, i = 0; i < 10; i++) {\n test2[\"_\" + String.fromCharCode(i)] = i;\n }\n\n if (\"0123456789\" !== Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n }).join(\"\")) return !1;\n var test3 = {};\n return \"abcdefghijklmnopqrst\".split(\"\").forEach(function (letter) {\n test3[letter] = letter;\n }), \"abcdefghijklmnopqrst\" === Object.keys(Object.assign({}, test3)).join(\"\");\n } catch (err) {\n return !1;\n }\n }() ? Object.assign : function (target, source) {\n for (var from, symbols, to = toObject(target), s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n hasOwnProperty.call(from, key) && (to[key] = from[key]);\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n propIsEnumerable.call(from, symbols[i]) && (to[symbols[i]] = from[symbols[i]]);\n }\n }\n }\n\n return to;\n };\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n function checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n\n try {\n if (\"function\" != typeof typeSpecs[typeSpecName]) {\n var err = Error((componentName || \"React class\") + \": \" + location + \" type `\" + typeSpecName + \"` is invalid; it must be a function, usually from the `prop-types` package, but received `\" + typeof typeSpecs[typeSpecName] + \"`.\");\n throw err.name = \"Invariant Violation\", err;\n }\n\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n\n if (!error || error instanceof Error || printWarning((componentName || \"React class\") + \": type specification of \" + location + \" `\" + typeSpecName + \"` is invalid; the type checker function must return `null` or an `Error` but returned a \" + typeof error + \". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\"), error instanceof Error && !(error.message in loggedTypeFailures)) {\n loggedTypeFailures[error.message] = !0;\n var stack = getStack ? getStack() : \"\";\n printWarning(\"Failed \" + location + \" type: \" + error.message + (null != stack ? stack : \"\"));\n }\n }\n }\n }\n\n var printWarning = function printWarning() {},\n ReactPropTypesSecret = __webpack_require__(4),\n loggedTypeFailures = {},\n has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function printWarning(text) {\n var message = \"Warning: \" + text;\n \"undefined\" != typeof console && console.error(message);\n\n try {\n throw new Error(message);\n } catch (x) {}\n }, checkPropTypes.resetWarningCache = function () {\n loggedTypeFailures = {};\n }, module.exports = checkPropTypes;\n }, function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n function _objectWithoutProperties(source, excluded) {\n if (null == source) return {};\n\n var key,\n i,\n target = _objectWithoutPropertiesLoose(source, excluded);\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i], excluded.indexOf(key) >= 0 || Object.prototype.propertyIsEnumerable.call(source, key) && (target[key] = source[key]);\n }\n }\n\n return target;\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (null == source) return {};\n var key,\n i,\n target = {},\n sourceKeys = Object.keys(source);\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i], excluded.indexOf(key) >= 0 || (target[key] = source[key]);\n }\n\n return target;\n }\n\n function MediaQuery(_ref) {\n var children = _ref.children,\n device = _ref.device,\n onChange = _ref.onChange,\n settings = _objectWithoutProperties(_ref, [\"children\", \"device\", \"onChange\"]),\n matches = Object(__WEBPACK_IMPORTED_MODULE_0__useMediaQuery__.a)(settings, device, onChange);\n\n return \"function\" == typeof children ? children(matches) : matches ? children : null;\n }\n\n __webpack_exports__.a = MediaQuery;\n\n var __WEBPACK_IMPORTED_MODULE_0__useMediaQuery__ = __webpack_require__(0);\n }]);\n});","require(\"core-js/modules/es6.object.create\");\n\nrequire(\"core-js/modules/es6.function.bind\");\n\n// player & autoPlay\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['ev-emitter/ev-emitter', 'fizzy-ui-utils/utils', './flickity'], function (EvEmitter, utils, Flickity) {\n return factory(EvEmitter, utils, Flickity);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(require('ev-emitter'), require('fizzy-ui-utils'), require('./flickity'));\n } else {\n // browser global\n factory(window.EvEmitter, window.fizzyUIUtils, window.Flickity);\n }\n})(window, function factory(EvEmitter, utils, Flickity) {\n 'use strict'; // -------------------------- Player -------------------------- //\n\n function Player(parent) {\n this.parent = parent;\n this.state = 'stopped'; // visibility change event handler\n\n this.onVisibilityChange = this.visibilityChange.bind(this);\n this.onVisibilityPlay = this.visibilityPlay.bind(this);\n }\n\n Player.prototype = Object.create(EvEmitter.prototype); // start play\n\n Player.prototype.play = function () {\n if (this.state == 'playing') {\n return;\n } // do not play if page is hidden, start playing when page is visible\n\n\n var isPageHidden = document.hidden;\n\n if (isPageHidden) {\n document.addEventListener('visibilitychange', this.onVisibilityPlay);\n return;\n }\n\n this.state = 'playing'; // listen to visibility change\n\n document.addEventListener('visibilitychange', this.onVisibilityChange); // start ticking\n\n this.tick();\n };\n\n Player.prototype.tick = function () {\n // do not tick if not playing\n if (this.state != 'playing') {\n return;\n }\n\n var time = this.parent.options.autoPlay; // default to 3 seconds\n\n time = typeof time == 'number' ? time : 3000;\n\n var _this = this; // HACK: reset ticks if stopped and started within interval\n\n\n this.clear();\n this.timeout = setTimeout(function () {\n _this.parent.next(true);\n\n _this.tick();\n }, time);\n };\n\n Player.prototype.stop = function () {\n this.state = 'stopped';\n this.clear(); // remove visibility change event\n\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n };\n\n Player.prototype.clear = function () {\n clearTimeout(this.timeout);\n };\n\n Player.prototype.pause = function () {\n if (this.state == 'playing') {\n this.state = 'paused';\n this.clear();\n }\n };\n\n Player.prototype.unpause = function () {\n // re-start play if paused\n if (this.state == 'paused') {\n this.play();\n }\n }; // pause if page visibility is hidden, unpause if visible\n\n\n Player.prototype.visibilityChange = function () {\n var isPageHidden = document.hidden;\n this[isPageHidden ? 'pause' : 'unpause']();\n };\n\n Player.prototype.visibilityPlay = function () {\n this.play();\n document.removeEventListener('visibilitychange', this.onVisibilityPlay);\n }; // -------------------------- Flickity -------------------------- //\n\n\n utils.extend(Flickity.defaults, {\n pauseAutoPlayOnHover: true\n });\n Flickity.createMethods.push('_createPlayer');\n var proto = Flickity.prototype;\n\n proto._createPlayer = function () {\n this.player = new Player(this);\n this.on('activate', this.activatePlayer);\n this.on('uiChange', this.stopPlayer);\n this.on('pointerDown', this.stopPlayer);\n this.on('deactivate', this.deactivatePlayer);\n };\n\n proto.activatePlayer = function () {\n if (!this.options.autoPlay) {\n return;\n }\n\n this.player.play();\n this.element.addEventListener('mouseenter', this);\n }; // Player API, don't hate the ... thanks I know where the door is\n\n\n proto.playPlayer = function () {\n this.player.play();\n };\n\n proto.stopPlayer = function () {\n this.player.stop();\n };\n\n proto.pausePlayer = function () {\n this.player.pause();\n };\n\n proto.unpausePlayer = function () {\n this.player.unpause();\n };\n\n proto.deactivatePlayer = function () {\n this.player.stop();\n this.element.removeEventListener('mouseenter', this);\n }; // ----- mouseenter/leave ----- //\n // pause auto-play on hover\n\n\n proto.onmouseenter = function () {\n if (!this.options.pauseAutoPlayOnHover) {\n return;\n }\n\n this.player.pause();\n this.element.addEventListener('mouseleave', this);\n }; // resume auto-play on hover off\n\n\n proto.onmouseleave = function () {\n this.player.unpause();\n this.element.removeEventListener('mouseleave', this);\n }; // ----- ----- //\n\n\n Flickity.Player = Player;\n return Flickity;\n});","require(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\n// add, remove cell\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'fizzy-ui-utils/utils'], function (Flickity, utils) {\n return factory(window, Flickity, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('fizzy-ui-utils'));\n } else {\n // browser global\n factory(window, window.Flickity, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, utils) {\n 'use strict'; // append cells to a document fragment\n\n function getCellsFragment(cells) {\n var fragment = document.createDocumentFragment();\n cells.forEach(function (cell) {\n fragment.appendChild(cell.element);\n });\n return fragment;\n } // -------------------------- add/remove cell prototype -------------------------- //\n\n\n var proto = Flickity.prototype;\n /**\n * Insert, prepend, or append cells\n * @param {Element, Array, NodeList} elems\n * @param {Integer} index\n */\n\n proto.insert = function (elems, index) {\n var cells = this._makeCells(elems);\n\n if (!cells || !cells.length) {\n return;\n }\n\n var len = this.cells.length; // default to append\n\n index = index === undefined ? len : index; // add cells with document fragment\n\n var fragment = getCellsFragment(cells); // append to slider\n\n var isAppend = index == len;\n\n if (isAppend) {\n this.slider.appendChild(fragment);\n } else {\n var insertCellElement = this.cells[index].element;\n this.slider.insertBefore(fragment, insertCellElement);\n } // add to this.cells\n\n\n if (index === 0) {\n // prepend, add to start\n this.cells = cells.concat(this.cells);\n } else if (isAppend) {\n // append, add to end\n this.cells = this.cells.concat(cells);\n } else {\n // insert in this.cells\n var endCells = this.cells.splice(index, len - index);\n this.cells = this.cells.concat(cells).concat(endCells);\n }\n\n this._sizeCells(cells);\n\n this.cellChange(index, true);\n };\n\n proto.append = function (elems) {\n this.insert(elems, this.cells.length);\n };\n\n proto.prepend = function (elems) {\n this.insert(elems, 0);\n };\n /**\n * Remove cells\n * @param {Element, Array, NodeList} elems\n */\n\n\n proto.remove = function (elems) {\n var cells = this.getCells(elems);\n\n if (!cells || !cells.length) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1; // remove cells from collection & DOM\n\n cells.forEach(function (cell) {\n cell.remove();\n var index = this.cells.indexOf(cell);\n minCellIndex = Math.min(index, minCellIndex);\n utils.removeFrom(this.cells, cell);\n }, this);\n this.cellChange(minCellIndex, true);\n };\n /**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\n\n\n proto.cellSizeChange = function (elem) {\n var cell = this.getCell(elem);\n\n if (!cell) {\n return;\n }\n\n cell.getSize();\n var index = this.cells.indexOf(cell);\n this.cellChange(index);\n };\n /**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n */\n\n\n proto.cellChange = function (changedCellIndex, isPositioningSlider) {\n var prevSelectedElem = this.selectedElement;\n\n this._positionCells(changedCellIndex);\n\n this._getWrapShiftCells();\n\n this.setGallerySize(); // update selectedIndex\n // try to maintain position & select previous selected element\n\n var cell = this.getCell(prevSelectedElem);\n\n if (cell) {\n this.selectedIndex = this.getCellSlideIndex(cell);\n }\n\n this.selectedIndex = Math.min(this.slides.length - 1, this.selectedIndex);\n this.emitEvent('cellChange', [changedCellIndex]); // position slider\n\n this.select(this.selectedIndex); // do not position slider after lazy load\n\n if (isPositioningSlider) {\n this.positionSliderAtSelected();\n }\n }; // ----- ----- //\n\n\n return Flickity;\n});","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n(function (window, factory) {\n /*global define: false, module: false */\n 'use strict'; // universal module definition\n\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(factory);\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n})(window, function factory() {\n 'use strict';\n\n var matchesMethod = function () {\n var ElemProto = window.Element.prototype; // check for the standard method name first\n\n if (ElemProto.matches) {\n return 'matches';\n } // check un-prefixed\n\n\n if (ElemProto.matchesSelector) {\n return 'matchesSelector';\n } // check vendor prefixes\n\n\n var prefixes = ['webkit', 'moz', 'ms', 'o'];\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n\n if (ElemProto[method]) {\n return method;\n }\n }\n }();\n\n return function matchesSelector(elem, selector) {\n return elem[matchesMethod](selector);\n };\n});","// Flickity.Cell\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['get-size/get-size'], function (getSize) {\n return factory(window, getSize);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('get-size'));\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(window, window.getSize);\n }\n})(window, function factory(window, getSize) {\n 'use strict';\n\n function Cell(elem, parent) {\n this.element = elem;\n this.parent = parent;\n this.create();\n }\n\n var proto = Cell.prototype;\n\n proto.create = function () {\n this.element.style.position = 'absolute';\n this.element.setAttribute('aria-hidden', 'true');\n this.x = 0;\n this.shift = 0;\n };\n\n proto.destroy = function () {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[side] = '';\n };\n\n proto.getSize = function () {\n this.size = getSize(this.element);\n };\n\n proto.setPosition = function (x) {\n this.x = x;\n this.updateTarget();\n this.renderPosition(x);\n }; // setDefaultTarget v1 method, backwards compatibility, remove in v3\n\n\n proto.updateTarget = proto.setDefaultTarget = function () {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[marginProperty] + this.size.width * this.parent.cellAlign;\n };\n\n proto.renderPosition = function (x) {\n // render position of cell with in slider\n var side = this.parent.originSide;\n this.element.style[side] = this.parent.getPositionValue(x);\n };\n\n proto.select = function () {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n };\n\n proto.unselect = function () {\n this.element.classList.remove('is-selected');\n this.element.setAttribute('aria-hidden', 'true');\n };\n /**\n * @param {Integer} factor - 0, 1, or -1\n **/\n\n\n proto.wrapShift = function (shift) {\n this.shift = shift;\n this.renderPosition(this.x + this.parent.slideableWidth * shift);\n };\n\n proto.remove = function () {\n this.element.parentNode.removeChild(this.element);\n };\n\n return Cell;\n});","require(\"core-js/modules/es6.function.bind\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\n// prev/next buttons\n(function (window, factory) {\n // universal module definition\n\n /* jshint strict: false */\n if (typeof define == 'function' && define.amd) {\n // AMD\n define(['./flickity', 'unipointer/unipointer', 'fizzy-ui-utils/utils'], function (Flickity, Unipointer, utils) {\n return factory(window, Flickity, Unipointer, utils);\n });\n } else if (typeof module == 'object' && module.exports) {\n // CommonJS\n module.exports = factory(window, require('./flickity'), require('unipointer'), require('fizzy-ui-utils'));\n } else {\n // browser global\n factory(window, window.Flickity, window.Unipointer, window.fizzyUIUtils);\n }\n})(window, function factory(window, Flickity, Unipointer, utils) {\n 'use strict';\n\n var svgURI = 'http://www.w3.org/2000/svg'; // -------------------------- PrevNextButton -------------------------- //\n\n function PrevNextButton(direction, parent) {\n this.direction = direction;\n this.parent = parent;\n\n this._create();\n }\n\n PrevNextButton.prototype = Object.create(Unipointer.prototype);\n\n PrevNextButton.prototype._create = function () {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next'; // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n\n element.setAttribute('type', 'button'); // init as disabled\n\n this.disable();\n element.setAttribute('aria-label', this.isPrevious ? 'Previous' : 'Next'); // create arrow\n\n var svg = this.createSVG();\n element.appendChild(svg); // events\n\n this.parent.on('select', this.update.bind(this));\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\n };\n\n PrevNextButton.prototype.activate = function () {\n this.bindStartEvent(this.element);\n this.element.addEventListener('click', this); // add to DOM\n\n this.parent.element.appendChild(this.element);\n };\n\n PrevNextButton.prototype.deactivate = function () {\n // remove from DOM\n this.parent.element.removeChild(this.element); // click events\n\n this.unbindStartEvent(this.element);\n this.element.removeEventListener('click', this);\n };\n\n PrevNextButton.prototype.createSVG = function () {\n var svg = document.createElementNS(svgURI, 'svg');\n svg.setAttribute('class', 'flickity-button-icon');\n svg.setAttribute('viewBox', '0 0 100 100');\n var path = document.createElementNS(svgURI, 'path');\n var pathMovements = getArrowMovements(this.parent.options.arrowShape);\n path.setAttribute('d', pathMovements);\n path.setAttribute('class', 'arrow'); // rotate arrow\n\n if (!this.isLeft) {\n path.setAttribute('transform', 'translate(100, 100) rotate(180) ');\n }\n\n svg.appendChild(path);\n return svg;\n }; // get SVG path movmement\n\n\n function getArrowMovements(shape) {\n // use shape as movement if string\n if (typeof shape == 'string') {\n return shape;\n } // create movement string\n\n\n return 'M ' + shape.x0 + ',50' + ' L ' + shape.x1 + ',' + (shape.y1 + 50) + ' L ' + shape.x2 + ',' + (shape.y2 + 50) + ' L ' + shape.x3 + ',50 ' + ' L ' + shape.x2 + ',' + (50 - shape.y2) + ' L ' + shape.x1 + ',' + (50 - shape.y1) + ' Z';\n }\n\n PrevNextButton.prototype.handleEvent = utils.handleEvent;\n\n PrevNextButton.prototype.onclick = function () {\n if (!this.isEnabled) {\n return;\n }\n\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[method]();\n }; // ----- ----- //\n\n\n PrevNextButton.prototype.enable = function () {\n if (this.isEnabled) {\n return;\n }\n\n this.element.disabled = false;\n this.isEnabled = true;\n };\n\n PrevNextButton.prototype.disable = function () {\n if (!this.isEnabled) {\n return;\n }\n\n this.element.disabled = true;\n this.isEnabled = false;\n };\n\n PrevNextButton.prototype.update = function () {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides; // enable is wrapAround and at least 2 slides\n\n if (this.parent.options.wrapAround && slides.length > 1) {\n this.enable();\n return;\n }\n\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[method]();\n };\n\n PrevNextButton.prototype.destroy = function () {\n this.deactivate();\n this.allOff();\n }; // -------------------------- Flickity prototype -------------------------- //\n\n\n utils.extend(Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60,\n y1: 50,\n x2: 70,\n y2: 40,\n x3: 30\n }\n });\n Flickity.createMethods.push('_createPrevNextButtons');\n var proto = Flickity.prototype;\n\n proto._createPrevNextButtons = function () {\n if (!this.options.prevNextButtons) {\n return;\n }\n\n this.prevButton = new PrevNextButton(-1, this);\n this.nextButton = new PrevNextButton(1, this);\n this.on('activate', this.activatePrevNextButtons);\n };\n\n proto.activatePrevNextButtons = function () {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on('deactivate', this.deactivatePrevNextButtons);\n };\n\n proto.deactivatePrevNextButtons = function () {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off('deactivate', this.deactivatePrevNextButtons);\n }; // -------------------------- -------------------------- //\n\n\n Flickity.PrevNextButton = PrevNextButton;\n return Flickity;\n});"],"sourceRoot":""}