{"version":3,"sources":["webpack:///./node_modules/react-move/core/mergeKeys.js","webpack:///./node_modules/react-move/NodeGroup/index.js","webpack:///./node_modules/exenv/index.js","webpack:///./src/images/icons/next.svg","webpack:///./node_modules/react-move/Animate/index.js","webpack:///./src/utils/observer.js","webpack:///./src/images/icons/orangePrev.svg","webpack:///./node_modules/d3-ease/src/circle.js","webpack:///./node_modules/d3-ease/src/linear.js","webpack:///./node_modules/d3-ease/src/quad.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-ease/src/poly.js","webpack:///./node_modules/d3-ease/src/sin.js","webpack:///./node_modules/d3-ease/src/math.js","webpack:///./node_modules/d3-ease/src/exp.js","webpack:///./node_modules/d3-ease/src/bounce.js","webpack:///./node_modules/d3-ease/src/back.js","webpack:///./node_modules/d3-ease/src/elastic.js","webpack:///./node_modules/nuka-carousel/es/utilities/style-utilities.js","webpack:///./node_modules/nuka-carousel/es/default-controls.js","webpack:///./node_modules/nuka-carousel/es/utilities/utilities.js","webpack:///./node_modules/nuka-carousel/es/transitions/scroll-transition.js","webpack:///./node_modules/nuka-carousel/es/transitions/fade-transition.js","webpack:///./node_modules/nuka-carousel/es/transitions/3d-scroll-transition.js","webpack:///./node_modules/nuka-carousel/es/all-transitions.js","webpack:///./node_modules/nuka-carousel/es/announce-slide.js","webpack:///./node_modules/nuka-carousel/es/utilities/bootstrapping-utilities.js","webpack:///./node_modules/nuka-carousel/es/index.js","webpack:///./node_modules/react-move/utils.js","webpack:///./node_modules/react-move/core/types.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-timer/src/timeout.js","webpack:///./node_modules/kapellmeister/es/utils.js","webpack:///./node_modules/kapellmeister/es/Events.js","webpack:///./node_modules/kapellmeister/es/BaseNode.js","webpack:///./node_modules/d3-timer/src/interval.js","webpack:///./src/images/icons/prev.svg","webpack:///./src/images/icons/orangeNext.svg","webpack:///./node_modules/wicg-inert/dist/inert.esm.js"],"names":["Object","defineProperty","exports","value","_default","currNodeKeys","currKeyIndex","nextNodeKeys","nextKeyIndex","allKeys","i","length","_i","undefined","push","sort","a","b","nextOrderA","nextOrderB","currOrderA","currOrderB","_i2","pivot","_i3","_pivot","_typeof","obj","Symbol","iterator","constructor","prototype","_react","nodeInterop","__esModule","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","key","hasOwnProperty","call","desc","set","_interopRequireWildcard","_kapellmeister","_interopRequireDefault","_mergeKeys","_types","_utils","WeakMap","cacheBabelInterop","cacheNodeInterop","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","_inherits","subClass","superClass","create","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","this","arguments","apply","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","getPrototypeOf","_defineProperty","NodeGroup","_Component","protoProps","staticProps","_super","_this","_this$state","state","nodeKeys","nodeHash","unmounting","pending","k","n","isTransitioning","type","LEAVE","interval","stop","setState","nodes","map","interpolation","Node","_BaseNode","_super2","data","_this2","ENTER","BaseNode","nextProps","prevState","keyAccessor","start","enter","update","leave","keyIndex","d","node","_k","UPDATE","mergedNodeKeys","_k2","_n","_d","transition","startInterval","prevProps","restart","animate","_this$state2","forEach","stopTransitions","renderedChildren","children","Children","only","Component","propTypes","defaultProps","numeric","canUseDOM","window","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","module","_NodeGroup","Animate","_this$props","show","handleObserver","ref","setVisible","observer","IntersectionObserver","intersectionRatio","root","rootMargin","threshold","observe","unobserve","handleVideoObserver","isMuted","isPaused","entry","paused","pause","play","setTimeout","circleIn","t","Math","sqrt","circleOut","circleInOut","linear","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","polyIn","custom","pow","exponent","polyOut","polyInOut","pi","PI","halfPi","sinIn","cos","sinOut","sin","sinInOut","tpmt","x","expIn","expOut","expInOut","b0","bounceIn","bounceOut","bounceInOut","backIn","s","overshoot","backOut","backInOut","tau","asin","max","elasticIn","amplitude","period","elasticOut","elasticInOut","childCount","count","listWidth","slideWidth","spacingOffset","cellSpacing","calculatedHeight","vertical","slideHeight","heightMode","getAlignmentOffset","slideIndex","config","offset","cellAlign","frameWidth","getDecoratorStyles","position","top","left","transform","WebkitTransform","msTransform","right","bottom","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","_objectSpread","source","getOwnPropertyDescriptors","defineProperties","defaultButtonStyles","disabled","border","background","color","padding","textTransform","opacity","cursor","_props$defaultControl","defaultControlsConfig","prevButtonClassName","_props$defaultControl2","prevButtonStyle","prevButtonText","currentSlide","wrapAround","slideCount","className","style","onClick","event","preventDefault","previousSlide","slidesToShow","scrollMode","slidesToScroll","nextButtonClassName","_defaultControlsConfi","nextButtonStyle","nextButtonText","_ref","positionValue","buttonDisabled","alignmentOffset","relativePosition","width","endPosition","abs","nextSlide","indexes","dotIndexes","lastDotIndex","slidesToShowIsDecimal","scrollSlides","includes","getDotIndexes","_props$defaultControl3","pagingDotsContainerClassName","pagingDotsClassName","_props$defaultControl4","pagingDotsStyle","display","margin","listStyleType","index","active","isActive","fill","goToSlide","bind","concat","height","focusable","cx","cy","r","addEvent","elem","eventHandle","removeEvent","removeEventListener","detachEvent","getSlideClassName","getPropsByTransitionMode","transitionMode","updatedDefaults","parseInt","swipeDirection","x1","x2","y1","y2","xDist","yDist","atan2","swipeAngle","round","calcSomeInitialState","_getPropsByTransition","initialSlideHeight","initialSlideWidth","frameHeight","handleSelfFocus","currentTarget","focus","_extends","assign","Date","toString","_React$Component","ScrollTransition","getListStyles","currentSlideIndex","childrenLength","peekSlide","animation","slideOffset","targetPosition","startSlideIndex","min","floor","slidesOutOfView","ceil","slidesOutOfViewBefore","slidesOutOfViewAfter","end","isWrapping","direction","getSlideDirection","isWrappingAround","temp","slidesBefore","slidesAfter","distanceFromStart","isDistanceBiggerThanSlides","child","inert","fullSlideWidth","offsetWidth","remainingWidth","fullSlidesBefore","fullSlidesAfter","fullSlidesAuto","fullyVisibleSlides","role","getSlideStyles","tabIndex","getSlideTargetPosition","transformScale","zoomScale","boxSizing","marginBottom","marginLeft","marginRight","marginTop","MozBoxSizing","verticalAlign","styles","deltaX","deltaY","hasInteraction","dragging","touchAction","formatChildren","FadeTransition","fadeFromSlide","fadeFrom","fadeTo","fade","fadeToPosition","distance","visibility","opacityAndLeftMap","getSlideOpacityAndLeftMap","getContainerStyles","ScrollTransition3D","relativeDistanceToCurrentSlide","getRelativeDistanceToCurrentSlide","getZoomOffsetFor","visible","getDistanceToCurrentSlide","current","relativeDistanceToCurrent","referenceIndex","_this$props2","getDistance","_this$props3","distanceByLeftEge","distanceByRightEdge","absoluteDirectDistance","opacityScale","_this$props4","getTransformScale","getOpacityScale","zIndex","slideListMargin","scroll","scroll3d","message","overflow","clip","whiteSpace","toArray","getMax","getHeightOfSlide","slide","totalHeight","offsetHeight","findMaxHeightSlideInRange","slides","maxHeight","ensureIndexInBounds","newIndex","findCurrentHeightSlide","alignment","startIndex","lastIndex","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_arr","_e","_s","next","done","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","slice","name","from","test","_unsupportedIterableToArray","_nonIterableRest","len","arr2","Carousel","displayName","clickDisabled","latestTransitioningIndex","timers","touchObject","controlsMap","funcName","keyCodeConfig","firstSlide","lastSlide","childNodesMutationObs","easing","disableAnimation","resetWrapAroundPosition","wrapToIndex","hasFocus","autoplayIterator","calcSlideHeightAndWidth","getChildNodes","getMouseEvents","getOffsetDeltas","getTargetLeft","getTouchEvents","blockEvent","handleFocus","handleBlur","handleClick","handleKeyPress","handleMouseOut","handleMouseOver","handleSwipe","onResize","onVisibilityChange","renderControls","resetAutoplay","setDimensions","setLeft","setSlideHeightAndWidth","startAutoplay","stopAutoplay","establishChildNodesMutationObserver","mounted","bindEvents","autoplay","keyCodeMap","getKeyCodeMap","getLockScrollEvents","lockTouchScroll","initializeCarouselHeight","slideChanged","heightModeChanged","axisChanged","childrenChanged","image","getCurrentChildNodeImg","isWrapped","prevSlideCount","slideCountChanged","heightMismatches","curr","shouldUpdate","unbindEvents","disconnectChildNodesMutationObserver","clearTimeout","unlockTouchScroll","timesChecked","initializeHeight","delay","_this3","childNodes","MutationObserver","_childNodesArray","childNode","attributeFilter","attributeOldValue","attributes","characterData","characterDataOldValue","childList","subtree","disconnect","startX","touches","pageX","startY","pageY","_this4","passive","_this5","swiping","onTouchStart","onTouchEnd","onTouchMove","onDragStart","endX","endY","onTouchCancel","_this6","onMouseOver","onMouseOut","onMouseDown","clientX","clientY","onMouseMove","onMouseUp","onMouseLeave","autoplayPaused","pauseOnHover","pauseAutoplay","unpauseAutoplay","metaKey","shiftKey","altKey","ctrlKey","stopPropagation","nativeEvent","_this7","touchLength","edgeEasing","enableKeyboardControls","keyCode","actionName","autoplayReverse","autoplayID","setInterval","autoplayInterval","clearInterval","touchOffset","isNaN","tx","ty","_this$getOffsetDeltas","lastSlideLimit","offsetTy","offsetTx","_this8","beforeSlide","afterSlide","speed","endSlide","targetSlideIndex","swipeDistance","leftAlignSlideIndex","nextSlideIndex","_this$state3","hidden","calculateSlideHeight","frame","_this$calcSlideHeight2","stateCb","_getPropsByTransition2","_this$calcSlideHeight3","_getPropsByTransition3","currentChildNode","getElementsByTagName","newLeft","newTop","_this9","withoutControls","func","controlChildren","toLowerCase","containerClassName","join","trim","getControlsContainerStyles","propVertical","stateFrameWidth","propWidth","propHeight","_this10","_this$state4","frameOverflow","framePadding","renderAnnounceSlideMessage","duration","frameStyles","touchEvents","mouseEvents","TransitionControl","validChildren","_this$getOffsetDeltas2","startTx","startTy","onFocus","onBlur","innerRef","onClickCapture","_this10$getOffsetDelt","disableEdgeSwiping","isEdgeSwiping","timing","ease","events","_ref2","ariaProps","cloneElement","autoGenerateStyleTag","dangerouslySetInnerHTML","__html","renderBottomCenterControls","renderCenterLeftControls","renderCenterRightControls","beg","taskHead","taskTail","timeout","clockLast","clockNow","clockSkew","clock","performance","now","setFrame","requestAnimationFrame","f","clearNow","Timer","_call","_time","_next","timer","callback","time","wake","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","elapsed","transitionId","extend","timingDefaults","Events","interrupt","Error","called","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","item","parse","return","transitionData","transitions","clone","stateKey","_this$setState","prop","tweens","attr","val","getTween","_objectSpread2","_objectSpread3","_objectSpread4","_ref3","_this$setState2","_this$setState3","status","endValue","nameSpace","begValue","getInterpolator","_this2$setState","_objectSpread5","_ref4","init","id","tid","tick","j","res","_","total","_createClass","matches","Element","msMatchesSelector","_focusableElementsString","InertRoot","rootElement","inertManager","_inertManager","_rootElement","_managedNodes","Set","hasAttribute","_savedAriaHidden","getAttribute","setAttribute","_makeSubtreeUnfocusable","_observer","_onMutation","removeAttribute","inertNode","_unmanageNode","startNode","composedTreeWalk","_visitNode","activeElement","body","contains","nodeType","DOCUMENT_FRAGMENT_NODE","parentNode","blur","ELEMENT_NODE","element","_adoptInertRoot","_manageNode","register","add","deregister","inertSubroot","getInertRoot","setInert","managedNodes","savedInertNode","records","record","addedNodes","removedNodes","_unmanageSubtree","attributeName","managedNode","ariaHidden","InertNode","inertRoot","_node","_overrodeFocusMethod","_inertRoots","_savedTabIndex","_destroyed","ensureUntabbable","_throwIfDestroyed","destroyed","hasSavedTabIndex","size","destructor","InertManager","_document","Map","_watchForInert","addInertStyle","head","documentElement","readyState","_onDocumentLoaded","parent","addInertRoot","removeInertRoot","querySelectorAll","inertElement","inertElements","unshift","HTMLElement","shadowRootAncestor","shadowRoot","localName","content","distributedNodes","getDistributedNodes","slot","_distributedNodes","assignedNodes","flatten","firstChild","nextSibling","querySelector","textContent","appendChild"],"mappings":"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","file":"cd76733287acd4bb63cde1a27d704dd953f87610-2846059e646283860425.js","sourcesContent":["\"use strict\";\n\nrequire(\"core-js/modules/es.array.sort.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction mergeKeys(currNodeKeys, currKeyIndex, nextNodeKeys, nextKeyIndex) {\n var allKeys = [];\n\n for (var i = 0; i < nextNodeKeys.length; i++) {\n allKeys[i] = nextNodeKeys[i];\n }\n\n for (var _i = 0; _i < currNodeKeys.length; _i++) {\n if (nextKeyIndex[currNodeKeys[_i]] === undefined) {\n allKeys.push(currNodeKeys[_i]);\n }\n }\n\n return allKeys.sort(function (a, b) {\n var nextOrderA = nextKeyIndex[a];\n var nextOrderB = nextKeyIndex[b];\n var currOrderA = currKeyIndex[a];\n var currOrderB = currKeyIndex[b];\n\n if (nextOrderA != null && nextOrderB != null) {\n return nextKeyIndex[a] - nextKeyIndex[b];\n } else if (currOrderA != null && currOrderB != null) {\n return currKeyIndex[a] - currKeyIndex[b];\n } else if (nextOrderA != null) {\n for (var _i2 = 0; _i2 < nextNodeKeys.length; _i2++) {\n var pivot = nextNodeKeys[_i2];\n\n if (!currKeyIndex[pivot]) {\n continue;\n }\n\n if (nextOrderA < nextKeyIndex[pivot] && currOrderB > currKeyIndex[pivot]) {\n return -1;\n } else if (nextOrderA > nextKeyIndex[pivot] && currOrderB < currKeyIndex[pivot]) {\n return 1;\n }\n }\n\n return 1;\n }\n\n for (var _i3 = 0; _i3 < nextNodeKeys.length; _i3++) {\n var _pivot = nextNodeKeys[_i3];\n\n if (!currKeyIndex[_pivot]) {\n continue;\n }\n\n if (nextOrderB < nextKeyIndex[_pivot] && currOrderA > currKeyIndex[_pivot]) {\n return 1;\n } else if (nextOrderB > nextKeyIndex[_pivot] && currOrderA < currKeyIndex[_pivot]) {\n return -1;\n }\n }\n\n return -1;\n });\n}\n\nvar _default = mergeKeys;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _kapellmeister = require(\"kapellmeister\");\n\nvar _mergeKeys = _interopRequireDefault(require(\"../core/mergeKeys\"));\n\nvar _types = require(\"../core/types\");\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar NodeGroup = function (_Component) {\n _inherits(NodeGroup, _Component);\n\n var _super = _createSuper(NodeGroup);\n\n function NodeGroup(props) {\n var _this;\n\n _classCallCheck(this, NodeGroup);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"animate\", function () {\n var _this$state = _this.state,\n nodeKeys = _this$state.nodeKeys,\n nodeHash = _this$state.nodeHash;\n\n if (_this.unmounting) {\n return;\n }\n\n var pending = false;\n var nextNodeKeys = [];\n var length = nodeKeys.length;\n\n for (var i = 0; i < length; i++) {\n var k = nodeKeys[i];\n var n = nodeHash[k];\n var isTransitioning = n.isTransitioning();\n\n if (isTransitioning) {\n pending = true;\n }\n\n if (n.type === _types.LEAVE && !isTransitioning) {\n delete nodeHash[k];\n } else {\n nextNodeKeys.push(k);\n }\n }\n\n if (!pending) {\n _this.interval.stop();\n }\n\n _this.setState(function () {\n return {\n nodeKeys: nextNodeKeys,\n nodes: nextNodeKeys.map(function (key) {\n return nodeHash[key];\n })\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"interval\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"unmounting\", false);\n\n var interpolation = props.interpolation;\n\n var Node = function (_BaseNode) {\n _inherits(Node, _BaseNode);\n\n var _super2 = _createSuper(Node);\n\n function Node(key, data) {\n var _this2;\n\n _classCallCheck(this, Node);\n\n _this2 = _super2.call(this);\n\n _defineProperty(_assertThisInitialized(_this2), \"getInterpolator\", interpolation);\n\n _this2.key = key;\n _this2.data = data;\n _this2.type = _types.ENTER;\n return _this2;\n }\n\n return Node;\n }(_kapellmeister.BaseNode);\n\n _this.state = {\n Node: Node,\n nodeKeys: [],\n nodeHash: {},\n nodes: [],\n data: null\n };\n return _this;\n }\n\n _createClass(NodeGroup, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startInterval();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.data !== this.props.data && !this.unmounting) {\n this.startInterval();\n }\n }\n }, {\n key: \"startInterval\",\n value: function startInterval() {\n if (!this.interval) {\n this.interval = (0, _kapellmeister.interval)(this.animate);\n } else {\n this.interval.restart(this.animate);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this$state2 = this.state,\n nodeKeys = _this$state2.nodeKeys,\n nodeHash = _this$state2.nodeHash;\n this.unmounting = true;\n\n if (this.interval) {\n this.interval.stop();\n }\n\n nodeKeys.forEach(function (key) {\n nodeHash[key].stopTransitions();\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var renderedChildren = this.props.children(this.state.nodes);\n return renderedChildren && _react[\"default\"].Children.only(renderedChildren);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.data !== prevState.data) {\n var data = nextProps.data,\n keyAccessor = nextProps.keyAccessor,\n start = nextProps.start,\n enter = nextProps.enter,\n update = nextProps.update,\n leave = nextProps.leave;\n var Node = prevState.Node,\n nodeKeys = prevState.nodeKeys,\n nodeHash = prevState.nodeHash;\n var keyIndex = {};\n\n for (var i = 0; i < nodeKeys.length; i++) {\n keyIndex[nodeKeys[i]] = i;\n }\n\n var nextKeyIndex = {};\n var nextNodeKeys = [];\n\n for (var _i = 0; _i < data.length; _i++) {\n var d = data[_i];\n var k = keyAccessor(d, _i);\n nextKeyIndex[k] = _i;\n nextNodeKeys.push(k);\n\n if (keyIndex[k] === undefined) {\n var node = new Node();\n node.key = k;\n node.data = d;\n node.type = _types.ENTER;\n nodeHash[k] = node;\n }\n }\n\n for (var _i2 = 0; _i2 < nodeKeys.length; _i2++) {\n var _k = nodeKeys[_i2];\n var n = nodeHash[_k];\n\n if (nextKeyIndex[_k] !== undefined) {\n n.data = data[nextKeyIndex[_k]];\n n.type = _types.UPDATE;\n } else {\n n.type = _types.LEAVE;\n }\n }\n\n var mergedNodeKeys = (0, _mergeKeys[\"default\"])(nodeKeys, keyIndex, nextNodeKeys, nextKeyIndex);\n\n for (var _i3 = 0; _i3 < mergedNodeKeys.length; _i3++) {\n var _k2 = mergedNodeKeys[_i3];\n var _n = nodeHash[_k2];\n var _d = _n.data;\n\n if (_n.type === _types.ENTER) {\n _n.setState(start(_d, nextKeyIndex[_k2]));\n\n _n.transition(enter(_d, nextKeyIndex[_k2]));\n } else if (_n.type === _types.LEAVE) {\n _n.transition(leave(_d, keyIndex[_k2]));\n } else {\n _n.transition(update(_d, nextKeyIndex[_k2]));\n }\n }\n\n return {\n data: data,\n nodes: mergedNodeKeys.map(function (key) {\n return nodeHash[key];\n }),\n nodeHash: nodeHash,\n nodeKeys: mergedNodeKeys\n };\n }\n\n return null;\n }\n }]);\n\n return NodeGroup;\n}(_react.Component);\n\nNodeGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n data: _propTypes[\"default\"].array.isRequired,\n keyAccessor: _propTypes[\"default\"].func.isRequired,\n interpolation: _propTypes[\"default\"].func,\n start: _propTypes[\"default\"].func.isRequired,\n enter: _propTypes[\"default\"].func,\n update: _propTypes[\"default\"].func,\n leave: _propTypes[\"default\"].func,\n children: _propTypes[\"default\"].func.isRequired\n} : {};\nNodeGroup.defaultProps = {\n enter: function enter() {},\n update: function update() {},\n leave: function leave() {},\n interpolation: _utils.numeric\n};\nvar _default = NodeGroup;\nexports[\"default\"] = _default;","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n var ExecutionEnvironment = {\n canUseDOM: canUseDOM,\n canUseWorkers: typeof Worker !== 'undefined',\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen\n };\n\n if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n define(function () {\n return ExecutionEnvironment;\n });\n } else if (typeof module !== 'undefined' && module.exports) {\n module.exports = ExecutionEnvironment;\n } else {\n window.ExecutionEnvironment = ExecutionEnvironment;\n }\n})();","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCAyMSA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0yMSAzMkwwLjc0OTk5NyA2My4xNzY5TDAuNzUgMC44MjMwODVMMjEgMzJaIiBmaWxsPSIjMDAwMDAwIi8+DQo8L3N2Zz4NCg==\"","\"use strict\";\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _NodeGroup = _interopRequireDefault(require(\"../NodeGroup\"));\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nvar keyAccessor = function keyAccessor() {\n return '$$key$$';\n};\n\nvar Animate = function (_Component) {\n _inherits(Animate, _Component);\n\n var _super = _createSuper(Animate);\n\n function Animate() {\n _classCallCheck(this, Animate);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Animate, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n show = _this$props.show,\n start = _this$props.start,\n enter = _this$props.enter,\n update = _this$props.update,\n leave = _this$props.leave,\n interpolation = _this$props.interpolation,\n children = _this$props.children;\n var data = typeof start === 'function' ? start() : start;\n return _react[\"default\"].createElement(_NodeGroup[\"default\"], {\n data: show ? [data] : [],\n start: function start() {\n return data;\n },\n keyAccessor: keyAccessor,\n interpolation: interpolation,\n enter: typeof enter === 'function' ? enter : function () {\n return enter;\n },\n update: typeof update === 'function' ? update : function () {\n return update;\n },\n leave: typeof leave === 'function' ? leave : function () {\n return leave;\n }\n }, function (nodes) {\n if (!nodes[0]) {\n return null;\n }\n\n var renderedChildren = children(nodes[0].state);\n return renderedChildren && _react[\"default\"].Children.only(renderedChildren);\n });\n }\n }]);\n\n return Animate;\n}(_react.Component);\n\nAnimate.propTypes = process.env.NODE_ENV !== \"production\" ? {\n show: _propTypes[\"default\"].bool,\n interpolation: _propTypes[\"default\"].func,\n start: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].object]),\n enter: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].array, _propTypes[\"default\"].object]),\n update: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].array, _propTypes[\"default\"].object]),\n leave: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].array, _propTypes[\"default\"].object]),\n children: _propTypes[\"default\"].func.isRequired\n} : {};\nAnimate.defaultProps = {\n show: true,\n interpolation: _utils.numeric\n};\nvar _default = Animate;\nexports[\"default\"] = _default;","export const handleObserver = (ref, setVisible) => {\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry.intersectionRatio >= 0.3) {\r\n setVisible(true);\r\n } else {\r\n setVisible(false);\r\n }\r\n },\r\n {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: [0, 0.3, 1.0],\r\n },\r\n );\r\n if (ref) {\r\n observer.observe(ref);\r\n }\r\n return () => {\r\n observer.unobserve(ref);\r\n };\r\n};\r\n\r\nexport const handleVideoObserver = (ref, isMuted, setVisible) => {\r\n let isPaused = false;\r\n\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (\r\n entry.intersectionRatio > 1.0 &&\r\n entry.intersectionRatio < 0 &&\r\n !ref.paused\r\n ) {\r\n ref.pause();\r\n isPaused = true;\r\n } else if (isPaused) {\r\n ref.play();\r\n isPaused = false;\r\n } else if (entry.intersectionRatio >= 0.5 && isMuted) {\r\n setTimeout(() => {\r\n setVisible(false);\r\n }, 4000);\r\n }\r\n },\r\n {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: [0.5, 1],\r\n },\r\n );\r\n\r\n if (ref) {\r\n observer.observe(ref);\r\n }\r\n return () => {\r\n observer.unobserve(ref);\r\n };\r\n};\r\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCAyMSA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik00LjI5Mjk2ZS0wNyAzMkwyMC4yNSAwLjgyMzA5TDIwLjI1IDYzLjE3NjlMNC4yOTI5NmUtMDcgMzJaIiBmaWxsPSIjRkE3ODAwIi8+DQo8L3N2Zz4NCg==\"","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}","export function linear(t) {\n return +t;\n}","export function quadIn(t) {\n return t * t;\n}\nexport function quadOut(t) {\n return t * (2 - t);\n}\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}","export function cubicIn(t) {\n return t * t * t;\n}\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}","var exponent = 3;\nexport var polyIn = function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n return polyIn;\n}(exponent);\nexport var polyOut = function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n return polyOut;\n}(exponent);\nexport var polyInOut = function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n return polyInOut;\n}(exponent);","var pi = Math.PI,\n halfPi = pi / 2;\nexport function sinIn(t) {\n return +t === 1 ? 1 : 1 - Math.cos(t * halfPi);\n}\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}","import { tpmt } from \"./math.js\";\nexport function expIn(t) {\n return tpmt(1 - +t);\n}\nexport function expOut(t) {\n return 1 - tpmt(t);\n}\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;\n}","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}","var overshoot = 1.70158;\nexport var backIn = function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n return backIn;\n}(overshoot);\nexport var backOut = function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n return backOut;\n}(overshoot);\nexport var backInOut = function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n return backInOut;\n}(overshoot);","import { tpmt } from \"./math.js\";\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\nexport var elasticIn = function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(- --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function (a) {\n return custom(a, p * tau);\n };\n\n elasticIn.period = function (p) {\n return custom(a, p);\n };\n\n return elasticIn;\n}(amplitude, period);\nexport var elasticOut = function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function (a) {\n return custom(a, p * tau);\n };\n\n elasticOut.period = function (p) {\n return custom(a, p);\n };\n\n return elasticOut;\n}(amplitude, period);\nexport var elasticInOut = function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0 ? a * tpmt(-t) * Math.sin((s - t) / p) : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function (a) {\n return custom(a, p * tau);\n };\n\n elasticInOut.period = function (p) {\n return custom(a, p);\n };\n\n return elasticInOut;\n}(amplitude, period);","import React from 'react';\nexport var getImgTagStyles = function getImgTagStyles() {\n return \".slider-slide > img { width: 100%; display: block; }\\n .slider-slide > img:focus { margin: auto; }\";\n};\nexport var getSlideHeight = function getSlideHeight(props) {\n var childCount = React.Children.count(props.children);\n var listWidth = props.slideWidth * childCount;\n var spacingOffset = props.cellSpacing * childCount;\n var calculatedHeight = props.vertical ? listWidth + spacingOffset : props.slideHeight;\n return calculatedHeight > 0 && props.heightMode !== 'current' ? calculatedHeight : 'auto';\n};\nexport var getAlignmentOffset = function getAlignmentOffset(slideIndex, config) {\n var offset = 0;\n\n switch (config.cellAlign) {\n case 'left':\n {\n offset = 0;\n offset -= config.cellSpacing * slideIndex;\n break;\n }\n\n case 'center':\n {\n offset = (config.frameWidth - config.slideWidth) / 2;\n offset -= config.cellSpacing * slideIndex;\n break;\n }\n\n case 'right':\n {\n offset = config.frameWidth - config.slideWidth;\n offset -= config.cellSpacing * slideIndex;\n break;\n }\n }\n\n return offset;\n};\nexport var getDecoratorStyles = function getDecoratorStyles(position) {\n switch (position) {\n case 'TopLeft':\n {\n return {\n position: 'absolute',\n top: 0,\n left: 0\n };\n }\n\n case 'TopCenter':\n {\n return {\n position: 'absolute',\n top: 0,\n left: '50%',\n transform: 'translateX(-50%)',\n WebkitTransform: 'translateX(-50%)',\n msTransform: 'translateX(-50%)'\n };\n }\n\n case 'TopRight':\n {\n return {\n position: 'absolute',\n top: 0,\n right: 0\n };\n }\n\n case 'CenterLeft':\n {\n return {\n position: 'absolute',\n top: '50%',\n left: 0,\n transform: 'translateY(-50%)',\n WebkitTransform: 'translateY(-50%)',\n msTransform: 'translateY(-50%)'\n };\n }\n\n case 'CenterCenter':\n {\n return {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%,-50%)',\n WebkitTransform: 'translate(-50%, -50%)',\n msTransform: 'translate(-50%, -50%)'\n };\n }\n\n case 'CenterRight':\n {\n return {\n position: 'absolute',\n top: '50%',\n right: 0,\n transform: 'translateY(-50%)',\n WebkitTransform: 'translateY(-50%)',\n msTransform: 'translateY(-50%)'\n };\n }\n\n case 'BottomLeft':\n {\n return {\n position: 'absolute',\n bottom: 0,\n left: 0\n };\n }\n\n case 'BottomCenter':\n {\n return {\n position: 'absolute',\n bottom: 0,\n left: '50%',\n transform: 'translateX(-50%)',\n WebkitTransform: 'translateX(-50%)',\n msTransform: 'translateX(-50%)'\n };\n }\n\n case 'BottomRight':\n {\n return {\n position: 'absolute',\n bottom: 0,\n right: 0\n };\n }\n\n default:\n {\n return {\n position: 'absolute',\n top: 0,\n left: 0\n };\n }\n }\n};\nexport var getSliderStyles = function getSliderStyles(propWidth, propHeight) {\n return {\n boxSizing: 'border-box',\n display: 'block',\n height: propHeight,\n MozBoxSizing: 'border-box',\n position: 'relative',\n width: propWidth\n };\n};\nexport var getFrameStyles = function getFrameStyles(propFrameOverFlow, propVertical, propFramePadding, stateFrameWidth) {\n return {\n boxSizing: 'border-box',\n display: 'block',\n height: propVertical ? stateFrameWidth || 'initial' : '100%',\n margin: propFramePadding,\n MozBoxSizing: 'border-box',\n msTransform: 'translate(0, 0)',\n overflow: propFrameOverFlow,\n padding: 0,\n position: 'relative',\n touchAction: \"pinch-zoom \".concat(propVertical ? 'pan-x' : 'pan-y'),\n transform: 'translate3d(0, 0, 0)',\n WebkitTransform: 'translate3d(0, 0, 0)'\n };\n};\nexport var getTransitionProps = function getTransitionProps(props, state) {\n return {\n animation: props.animation,\n cellAlign: props.cellAlign,\n cellSpacing: props.cellSpacing,\n currentSlide: state.currentSlide,\n dragging: props.dragging,\n frameWidth: parseInt(state.frameWidth),\n hasInteraction: state.hasInteraction,\n heightMode: props.heightMode,\n isWrappingAround: state.isWrappingAround,\n left: state.left,\n opacityScale: props.opacityScale,\n slideCount: state.slideCount,\n slideHeight: state.slideHeight,\n slideListMargin: props.slideListMargin,\n slideOffset: props.slideOffset,\n slidesToScroll: props.scrollMode === 'page' ? state.slidesToShow : props.slidesToScroll,\n slidesToShow: state.slidesToShow,\n slideWidth: state.slideWidth,\n top: state.top,\n vertical: props.vertical,\n wrapAround: props.wrapAround,\n zoomScale: props.zoomScale\n };\n};","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/* eslint-disable complexity */\n\n\nimport React from 'react';\nimport { getAlignmentOffset } from './utilities/style-utilities';\n\nvar defaultButtonStyles = function defaultButtonStyles(disabled) {\n return {\n border: 0,\n background: 'rgba(0,0,0,0.4)',\n color: 'white',\n padding: 10,\n textTransform: 'uppercase',\n opacity: disabled && 0.3,\n cursor: disabled ? 'not-allowed' : 'pointer'\n };\n};\n\nexport var PreviousButton = function PreviousButton(props) {\n var handleClick = function handleClick(event) {\n event.preventDefault();\n props.previousSlide();\n };\n\n var _props$defaultControl = props.defaultControlsConfig,\n prevButtonClassName = _props$defaultControl.prevButtonClassName,\n _props$defaultControl2 = _props$defaultControl.prevButtonStyle,\n prevButtonStyle = _props$defaultControl2 === void 0 ? {} : _props$defaultControl2,\n prevButtonText = _props$defaultControl.prevButtonText;\n var disabled = props.currentSlide === 0 && !props.wrapAround || props.slideCount === 0;\n return /*#__PURE__*/React.createElement(\"button\", {\n className: prevButtonClassName,\n style: _objectSpread(_objectSpread({}, defaultButtonStyles(disabled)), prevButtonStyle),\n disabled: disabled,\n onClick: handleClick,\n \"aria-label\": \"previous\",\n type: \"button\"\n }, prevButtonText || 'Prev');\n};\nexport var nextButtonDisabled = function nextButtonDisabled(_ref) {\n var cellAlign = _ref.cellAlign,\n cellSpacing = _ref.cellSpacing,\n currentSlide = _ref.currentSlide,\n frameWidth = _ref.frameWidth,\n positionValue = _ref.positionValue,\n slideCount = _ref.slideCount,\n slidesToShow = _ref.slidesToShow,\n slideWidth = _ref.slideWidth,\n wrapAround = _ref.wrapAround,\n scrollMode = _ref.scrollMode,\n slidesToScroll = _ref.slidesToScroll;\n var buttonDisabled = false;\n\n if (!wrapAround) {\n var alignmentOffset = getAlignmentOffset(currentSlide, {\n cellAlign: cellAlign,\n cellSpacing: cellSpacing,\n frameWidth: frameWidth,\n slideWidth: slideWidth\n });\n var relativePosition = positionValue - alignmentOffset;\n var width = slideWidth + cellSpacing;\n var endOffset = cellAlign === 'center' ? 2 * alignmentOffset : alignmentOffset;\n var endPosition = -width * slideCount + width * slidesToShow - endOffset;\n buttonDisabled = relativePosition < endPosition || Math.abs(relativePosition - endPosition) < 0.01;\n } // return true if its last slide or slideCount =0\n\n\n var lastSlide = currentSlide > 0 && currentSlide + slidesToScroll >= slideCount;\n\n if (lastSlide && !wrapAround && scrollMode === 'remainder' || slideCount === 0) {\n return buttonDisabled = true;\n }\n\n return buttonDisabled;\n};\nexport var NextButton = function NextButton(props) {\n var handleClick = function handleClick(event) {\n event.preventDefault();\n props.nextSlide();\n };\n\n var cellAlign = props.cellAlign,\n cellSpacing = props.cellSpacing,\n currentSlide = props.currentSlide,\n defaultControlsConfig = props.defaultControlsConfig,\n frameWidth = props.frameWidth,\n left = props.left,\n slideCount = props.slideCount,\n slidesToShow = props.slidesToShow,\n slideWidth = props.slideWidth,\n top = props.top,\n vertical = props.vertical,\n wrapAround = props.wrapAround,\n scrollMode = props.scrollMode,\n slidesToScroll = props.slidesToScroll;\n var nextButtonClassName = defaultControlsConfig.nextButtonClassName,\n _defaultControlsConfi = defaultControlsConfig.nextButtonStyle,\n nextButtonStyle = _defaultControlsConfi === void 0 ? {} : _defaultControlsConfi,\n nextButtonText = defaultControlsConfig.nextButtonText;\n var disabled = nextButtonDisabled({\n cellAlign: cellAlign,\n cellSpacing: cellSpacing,\n currentSlide: currentSlide,\n frameWidth: frameWidth,\n positionValue: vertical ? top : left,\n slideCount: slideCount,\n slidesToShow: slidesToShow,\n slideWidth: slideWidth,\n wrapAround: wrapAround,\n scrollMode: scrollMode,\n slidesToScroll: slidesToScroll\n });\n return /*#__PURE__*/React.createElement(\"button\", {\n className: nextButtonClassName,\n style: _objectSpread(_objectSpread({}, defaultButtonStyles(disabled)), nextButtonStyle),\n disabled: disabled,\n onClick: handleClick,\n \"aria-label\": \"next\",\n type: \"button\"\n }, nextButtonText || 'Next');\n};\nexport var getDotIndexes = function getDotIndexes(slideCount, slidesToScroll, slidesToShow, cellAlign) {\n var dotIndexes = [];\n var lastDotIndex = slideCount - slidesToShow;\n var slidesToShowIsDecimal = slidesToShow % 1 !== 0;\n\n switch (cellAlign) {\n case 'center':\n case 'right':\n lastDotIndex += slidesToShow - 1;\n break;\n } // the below condition includes the last index if slidesToShow is decimal\n\n\n if (cellAlign === 'left' && slidesToShowIsDecimal) {\n lastDotIndex += slidesToShow - 1;\n }\n\n if (lastDotIndex < 0) {\n return [0];\n }\n\n var scrollSlides = slidesToScroll === 0 ? 1 : slidesToScroll;\n\n for (var i = 0; i < lastDotIndex; i += scrollSlides) {\n dotIndexes.push(i);\n } // the below condition includes the last index if slidesToShow is not decimal and cellAlign = left\n\n\n if (cellAlign === 'left' && !slidesToShowIsDecimal) {\n lastDotIndex = slideCount - (slideCount % slidesToShow || slidesToShow);\n }\n\n if (!dotIndexes.includes(lastDotIndex)) {\n dotIndexes.push(lastDotIndex);\n }\n\n return dotIndexes;\n};\nexport var PagingDots = function PagingDots(props) {\n var getListStyles = function getListStyles() {\n return {\n position: 'relative',\n top: -10,\n display: 'flex',\n margin: 0,\n padding: 0,\n listStyleType: 'none'\n };\n };\n\n var getButtonStyles = function getButtonStyles(active) {\n return {\n cursor: 'pointer',\n opacity: active ? 1 : 0.5,\n background: 'transparent',\n border: 'none',\n fill: 'black'\n };\n };\n\n var indexes = getDotIndexes(props.slideCount, props.slidesToScroll, props.slidesToShow, props.cellAlign);\n var _props$defaultControl3 = props.defaultControlsConfig,\n pagingDotsContainerClassName = _props$defaultControl3.pagingDotsContainerClassName,\n pagingDotsClassName = _props$defaultControl3.pagingDotsClassName,\n _props$defaultControl4 = _props$defaultControl3.pagingDotsStyle,\n pagingDotsStyle = _props$defaultControl4 === void 0 ? {} : _props$defaultControl4;\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: pagingDotsContainerClassName,\n style: getListStyles()\n }, indexes.map(function (index, i) {\n var isActive = props.currentSlide === index; // the below condition checks and sets navigation dots active if the current slide falls in the current index range\n\n if (props.currentSlide < index && props.currentSlide > indexes[i - 1]) {\n isActive = true;\n }\n\n return /*#__PURE__*/React.createElement(\"li\", {\n key: index,\n className: isActive ? 'paging-item active' : 'paging-item'\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: pagingDotsClassName,\n type: \"button\",\n style: _objectSpread(_objectSpread({}, getButtonStyles(isActive)), pagingDotsStyle),\n onClick: props.goToSlide.bind(null, index),\n \"aria-label\": \"slide \".concat(index + 1, \" bullet\"),\n \"aria-selected\": isActive\n }, /*#__PURE__*/React.createElement(\"svg\", {\n className: \"paging-dot\",\n width: \"6\",\n height: \"6\",\n \"aria-hidden\": \"true\",\n focusable: \"false\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"3\",\n cy: \"3\",\n r: \"3\"\n }))));\n }));\n};","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport React from 'react';\nimport { getAlignmentOffset } from './style-utilities';\nexport var addEvent = function addEvent(elem, type, eventHandle) {\n if (elem === null || typeof elem === 'undefined') {\n return;\n }\n\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle, false);\n } else if (elem.attachEvent) {\n elem.attachEvent(\"on\".concat(type), eventHandle);\n } else {\n elem[\"on\".concat(type)] = eventHandle;\n }\n};\nexport var removeEvent = function removeEvent(elem, type, eventHandle) {\n if (elem === null || typeof elem === 'undefined') {\n return;\n }\n\n if (elem.removeEventListener) {\n elem.removeEventListener(type, eventHandle, false);\n } else if (elem.detachEvent) {\n elem.detachEvent(\"on\".concat(type), eventHandle);\n } else {\n elem[\"on\".concat(type)] = null;\n }\n};\nexport var addAccessibility = function addAccessibility(children, slidesToShow, currentSlide) {\n var needsTabIndex;\n\n if (slidesToShow > 1) {\n return React.Children.map(children, function (child, index) {\n var firstVisibleSlide = index >= currentSlide;\n var lastVisibleSlide = index < slidesToShow + currentSlide;\n needsTabIndex = firstVisibleSlide && lastVisibleSlide;\n var ariaProps = needsTabIndex ? {\n 'aria-hidden': 'false',\n tabIndex: 0\n } : {\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, ariaProps), child.props));\n });\n } else {\n return React.Children.map(children, function (child, index) {\n needsTabIndex = index !== currentSlide;\n var ariaProps = needsTabIndex ? {\n 'aria-hidden': 'true'\n } : {\n 'aria-hidden': 'false',\n tabIndex: 0\n };\n return /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, ariaProps), child.props));\n });\n }\n};\nexport var getSlideClassName = function getSlideClassName(index, currentSlide, slidesToShow) {\n var className = '';\n var visible = index >= currentSlide && index < currentSlide + slidesToShow;\n var current = index === currentSlide;\n\n if (visible) {\n className = ' slide-visible';\n\n if (current) {\n className = className.concat(' slide-current');\n }\n }\n\n return className;\n};\nexport var getPropsByTransitionMode = function getPropsByTransitionMode(props, keys) {\n var slidesToShow = props.slidesToShow,\n transitionMode = props.transitionMode;\n var updatedDefaults = {};\n\n if (transitionMode === 'fade') {\n keys.forEach(function (key) {\n switch (key) {\n case 'slidesToShow':\n updatedDefaults[key] = Math.max(parseInt(slidesToShow), 1);\n break;\n\n case 'slidesToScroll':\n updatedDefaults[key] = Math.max(parseInt(slidesToShow), 1);\n break;\n\n case 'cellAlign':\n updatedDefaults[key] = 'left';\n break;\n\n default:\n updatedDefaults[key] = props[key];\n break;\n }\n });\n } else {\n keys.forEach(function (key) {\n updatedDefaults[key] = props[key];\n });\n }\n\n return updatedDefaults;\n};\nexport var swipeDirection = function swipeDirection(x1, x2, y1, y2, vertical) {\n var xDist = x1 - x2;\n var yDist = y1 - y2;\n var r = Math.atan2(yDist, xDist);\n var swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0) {\n return 1;\n }\n\n if (swipeAngle <= 360 && swipeAngle >= 315) {\n return 1;\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return -1;\n }\n\n if (vertical === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return 1;\n } else {\n return -1;\n }\n }\n\n return 0;\n};\nexport var getSlideDirection = function getSlideDirection(start, end, isWrapping) {\n var direction = 0;\n if (start === end) return direction;\n\n if (isWrapping) {\n direction = start < end ? -1 : 1;\n } else {\n direction = start < end ? 1 : -1;\n }\n\n return direction;\n};\nexport var shouldUpdate = function shouldUpdate(curr, next, keys) {\n var update = false;\n\n for (var i = 0; i < keys.length; i++) {\n if (curr[keys[i]] !== next[keys[i]]) {\n update = true;\n break;\n }\n }\n\n return update;\n};\nexport var calcSomeInitialState = function calcSomeInitialState(props) {\n var _getPropsByTransition = getPropsByTransitionMode(props, ['slidesToScroll', 'slidesToShow', 'cellAlign']),\n slidesToScroll = _getPropsByTransition.slidesToScroll,\n slidesToShow = _getPropsByTransition.slidesToShow,\n cellAlign = _getPropsByTransition.cellAlign;\n\n var slideWidth = props.vertical ? props.initialSlideHeight || 0 : props.initialSlideWidth || 0;\n var slideHeight = props.vertical ? (props.initialSlideHeight || 0) * props.slidesToShow : props.initialSlideHeight || 0;\n var frameHeight = slideHeight + props.cellSpacing * (slidesToShow - 1);\n var frameWidth = props.vertical ? frameHeight : null;\n return {\n slideWidth: slideWidth,\n slideHeight: slideHeight,\n frameWidth: frameWidth,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n cellAlign: cellAlign\n };\n};\nexport var handleSelfFocus = function handleSelfFocus(e) {\n if (e && e.currentTarget) {\n e.currentTarget.focus();\n }\n};\nexport var isFullyVisible = function isFullyVisible(slideIndex, config) {\n var currentSlide = config.currentSlide,\n cellSpacing = config.cellSpacing,\n slideCount = config.slideCount,\n slideWidth = config.slideWidth,\n frameWidth = config.frameWidth,\n wrapAround = config.wrapAround,\n cellAlign = config.cellAlign; // Slide width can't be 0\n\n var fullSlideWidth = slideWidth || 1; // Calculate offset without cellSpacing\n\n var offsetWidth = getAlignmentOffset(currentSlide, config) + cellSpacing * currentSlide;\n var remainingWidth = frameWidth - offsetWidth;\n var fullSlidesBefore = 0;\n\n if (cellAlign !== 'left') {\n fullSlidesBefore = Math.max(Math.floor(offsetWidth / fullSlideWidth) + 1, 0);\n } else {\n fullSlidesBefore = Math.max(Math.floor(offsetWidth / fullSlideWidth), 0);\n }\n\n var fullSlidesAfter = Math.max(Math.floor(remainingWidth / fullSlideWidth), 0); // when slidesToScroll is auto enable clicking of all fully visible slides\n\n if (fullSlidesAfter + fullSlidesBefore + currentSlide >= slideCount && !wrapAround) {\n var fullSlidesAuto = fullSlidesBefore + fullSlidesAfter;\n fullSlidesAfter = fullSlidesAuto;\n fullSlidesBefore = fullSlidesAuto;\n }\n\n var currentSlideIndex = Math.ceil(currentSlide);\n var fullyVisibleSlides = [];\n\n for (var i = currentSlideIndex - fullSlidesBefore; i < currentSlideIndex + fullSlidesAfter + 1; i++) {\n if (i < 0) {\n // -1 won't match a slide index\n fullyVisibleSlides.push(wrapAround ? slideCount + i : -1);\n } else {\n fullyVisibleSlides.push(i > slideCount - 1 ? i - slideCount : i);\n }\n }\n\n return fullyVisibleSlides.includes(slideIndex);\n};","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport React from 'react';\nimport { getSlideHeight, getAlignmentOffset } from '../utilities/style-utilities';\nimport { getSlideDirection, handleSelfFocus, getSlideClassName, isFullyVisible } from '../utilities/utilities';\nvar MIN_ZOOM_SCALE = 0;\nvar MAX_ZOOM_SCALE = 1;\n\nvar ScrollTransition = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollTransition, _React$Component);\n\n var _super = _createSuper(ScrollTransition);\n\n function ScrollTransition(props) {\n var _this;\n\n _classCallCheck(this, ScrollTransition);\n\n _this = _super.call(this, props);\n _this.getListStyles = _this.getListStyles.bind(_assertThisInitialized(_this));\n return _this;\n }\n /* eslint-disable complexity */\n\n\n _createClass(ScrollTransition, [{\n key: \"getSlideTargetPosition\",\n value: function getSlideTargetPosition(currentSlideIndex, positionValue, childrenLength, slidesToShow) {\n var offset = 0; // Below lines help to display peeking slides when number of slides is less than 3.\n\n var peekSlide = true;\n\n switch (this.props.cellAlign) {\n case 'left':\n peekSlide = this.props.children.length <= 2 && currentSlideIndex !== 0 ? false : true;\n break;\n\n case 'center':\n peekSlide = this.props.children.length > 2 || this.props.currentSlide !== currentSlideIndex - 1 ? true : false;\n break;\n }\n\n if (this.props.animation === 'zoom' && peekSlide && (this.props.currentSlide === currentSlideIndex + 1 || this.props.currentSlide === 0 && currentSlideIndex === this.props.children.length - 1)) {\n offset = this.props.slideOffset;\n } else if (this.props.animation === 'zoom' && (this.props.currentSlide === currentSlideIndex - 1 || this.props.currentSlide === this.props.children.length - 1 && currentSlideIndex === 0)) {\n offset = -this.props.slideOffset;\n }\n\n var targetPosition = (this.props.slideWidth + this.props.cellSpacing) * currentSlideIndex;\n var alignmentOffset = getAlignmentOffset(currentSlideIndex, this.props);\n var relativePosition = positionValue - alignmentOffset;\n var startSlideIndex = Math.min(Math.abs(Math.floor(relativePosition / this.props.slideWidth)), this.props.slideCount - 1);\n\n if (this.props.wrapAround && currentSlideIndex !== startSlideIndex) {\n var slidesOutOfView = Math.max(this.props.slideCount - Math.ceil(this.props.frameWidth / this.props.slideWidth), // Total slides in view\n 0);\n var slidesOutOfViewBefore = Math.floor(slidesOutOfView / 2);\n var slidesOutOfViewAfter = slidesOutOfView - slidesOutOfViewBefore;\n var direction = getSlideDirection(startSlideIndex, this.props.currentSlide, this.props.isWrappingAround);\n\n if (direction < 0) {\n var temp = slidesOutOfViewBefore;\n slidesOutOfViewBefore = slidesOutOfViewAfter;\n slidesOutOfViewAfter = temp;\n }\n\n var slidesInViewBefore = Math.ceil(alignmentOffset / this.props.slideWidth);\n var slidesBefore = slidesInViewBefore + slidesOutOfViewBefore;\n var slidesInViewAfter = Math.ceil((this.props.frameWidth - alignmentOffset) / this.props.slideWidth) - 1;\n var slidesAfter = slidesInViewAfter + slidesOutOfViewAfter;\n var distanceFromStart = Math.abs(startSlideIndex - currentSlideIndex);\n var isDistanceBiggerThanSlides = childrenLength === slidesToShow ? distanceFromStart > slidesAfter : distanceFromStart >= slidesAfter;\n\n if (currentSlideIndex < startSlideIndex) {\n if (distanceFromStart > slidesBefore) {\n targetPosition = (this.props.slideWidth + this.props.cellSpacing) * (this.props.slideCount + currentSlideIndex);\n }\n } else if (isDistanceBiggerThanSlides) {\n targetPosition = (this.props.slideWidth + this.props.cellSpacing) * (this.props.slideCount - currentSlideIndex) * -1;\n }\n }\n\n return targetPosition + offset || 0;\n }\n /* eslint-enable complexity */\n\n }, {\n key: \"formatChildren\",\n value: function formatChildren(children) {\n var _this2 = this;\n\n var _this$props = this.props,\n top = _this$props.top,\n left = _this$props.left,\n currentSlide = _this$props.currentSlide,\n slidesToShow = _this$props.slidesToShow,\n vertical = _this$props.vertical;\n var positionValue = vertical ? top : left;\n var childrenLength = React.Children.count(children);\n return React.Children.map(children, function (child, index) {\n var isVisible = isFullyVisible(index, _this2.props);\n var inert = isVisible ? {} : {\n inert: 'true'\n };\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"slider-slide\".concat(getSlideClassName(index, currentSlide, slidesToShow)),\n \"aria-label\": \"slide \".concat(index + 1, \" of \").concat(children.length),\n role: \"group\",\n style: _this2.getSlideStyles(index, positionValue, childrenLength, slidesToShow),\n key: index,\n onClick: handleSelfFocus,\n tabIndex: -1\n }, inert), child);\n });\n }\n }, {\n key: \"getSlideStyles\",\n value: function getSlideStyles(index, positionValue, childrenLength, slidesToShow) {\n var targetPosition = this.getSlideTargetPosition(index, positionValue, childrenLength, slidesToShow);\n var transformScale = this.props.animation === 'zoom' && this.props.currentSlide !== index ? Math.max(Math.min(this.props.zoomScale, MAX_ZOOM_SCALE), MIN_ZOOM_SCALE) : 1.0;\n return {\n boxSizing: 'border-box',\n display: this.props.vertical ? 'block' : 'inline-block',\n height: getSlideHeight(this.props),\n left: this.props.vertical ? 0 : targetPosition,\n listStyleType: 'none',\n marginBottom: this.props.vertical ? this.props.cellSpacing / 2 : 'auto',\n marginLeft: this.props.vertical ? 'auto' : this.props.cellSpacing / 2,\n marginRight: this.props.vertical ? 'auto' : this.props.cellSpacing / 2,\n marginTop: this.props.vertical ? this.props.cellSpacing / 2 : 'auto',\n MozBoxSizing: 'border-box',\n position: 'absolute',\n top: this.props.vertical ? targetPosition : 0,\n transform: \"scale(\".concat(transformScale, \")\"),\n transition: 'transform .4s linear',\n verticalAlign: 'top',\n width: this.props.vertical ? '100%' : this.props.slideWidth\n };\n }\n }, {\n key: \"getListStyles\",\n value: function getListStyles(styles) {\n var deltaX = styles.deltaX,\n deltaY = styles.deltaY;\n var listWidth = this.props.slideWidth * React.Children.count(this.props.children);\n var spacingOffset = this.props.cellSpacing * React.Children.count(this.props.children);\n var transform = \"translate3d(\".concat(deltaX, \"px, \").concat(deltaY, \"px, 0)\");\n var transition = this.props.heightMode === 'current' && this.props.hasInteraction ? 'height 0.2s ease-out' : '0s';\n return {\n boxSizing: 'border-box',\n cursor: this.props.dragging === true ? 'pointer' : 'inherit',\n display: 'block',\n height: this.props.vertical ? listWidth + spacingOffset : this.props.slideHeight,\n margin: this.props.vertical ? \"\".concat(this.props.cellSpacing / 2 * -1, \"px 0px\") : \"0px \".concat(this.props.cellSpacing / 2 * -1, \"px\"),\n padding: 0,\n position: 'relative',\n MozBoxSizing: 'border-box',\n msTransform: \"translate(\".concat(deltaX, \"px, \").concat(deltaY, \"px)\"),\n touchAction: \"pinch-zoom \".concat(this.props.vertical ? 'pan-x' : 'pan-y'),\n transform: transform,\n WebkitTransform: transform,\n width: 'auto',\n transition: transition\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.formatChildren(this.props.children);\n var deltaX = this.props.deltaX;\n var deltaY = this.props.deltaY;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"slider-list\",\n style: this.getListStyles({\n deltaX: deltaX,\n deltaY: deltaY\n })\n }, children);\n }\n }]);\n\n return ScrollTransition;\n}(React.Component);\n\nexport { ScrollTransition as default };\nScrollTransition.defaultProps = {\n cellAlign: 'left',\n cellSpacing: 0,\n currentSlide: 0,\n deltaX: 0,\n deltaY: 0,\n dragging: false,\n frameWidth: 0,\n heightMode: 'max',\n isWrappingAround: false,\n left: 0,\n slideCount: 0,\n slideHeight: 0,\n slidesToScroll: 1,\n slideWidth: 0,\n top: 0,\n vertical: false,\n wrapAround: false,\n zoomScale: 0.85\n};","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport React from 'react';\nimport { getSlideHeight } from '../utilities/style-utilities';\nimport { handleSelfFocus, getSlideClassName } from '../utilities/utilities';\n\nvar FadeTransition = /*#__PURE__*/function (_React$Component) {\n _inherits(FadeTransition, _React$Component);\n\n var _super = _createSuper(FadeTransition);\n\n function FadeTransition(props) {\n var _this;\n\n _classCallCheck(this, FadeTransition);\n\n _this = _super.call(this, props);\n _this.fadeFromSlide = props.currentSlide;\n return _this;\n }\n\n _createClass(FadeTransition, [{\n key: \"formatChildren\",\n value: function formatChildren(children, opacity) {\n var _this2 = this;\n\n var _this$props = this.props,\n currentSlide = _this$props.currentSlide,\n slidesToShow = _this$props.slidesToShow;\n return React.Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"slider-slide\".concat(getSlideClassName(index, currentSlide, slidesToShow)),\n style: _this2.getSlideStyles(index, opacity),\n key: index,\n \"aria-label\": \"slide \".concat(index + 1, \" of \").concat(children.length),\n role: \"group\",\n onClick: handleSelfFocus,\n tabIndex: -1\n }, child);\n });\n }\n }, {\n key: \"getSlideOpacityAndLeftMap\",\n value: function getSlideOpacityAndLeftMap(fadeFrom, fadeTo, fade) {\n // Figure out which position to fade to\n var fadeToPosition = fadeTo;\n\n if (fadeFrom > fade && fadeFrom === 0) {\n fadeToPosition = fadeFrom - this.props.slidesToShow;\n } else if (fadeFrom < fade && fadeFrom + this.props.slidesToShow > this.props.slideCount - 1) {\n fadeToPosition = fadeFrom + this.props.slidesToShow;\n } // Calculate opacity for active slides\n\n\n var opacity = {};\n\n if (fadeFrom === fadeTo) {\n opacity[fadeFrom] = 1;\n } else {\n var distance = fadeFrom - fadeToPosition;\n opacity[fadeFrom] = (fade - fadeToPosition) / distance;\n opacity[fadeTo] = (fadeFrom - fade) / distance;\n } // Calculate left for slides and merge in opacity\n\n\n var map = {};\n\n for (var i = 0; i < this.props.slidesToShow; i++) {\n map[fadeFrom + i] = {\n opacity: opacity[fadeFrom],\n left: this.props.slideWidth * i\n };\n map[fadeTo + i] = {\n opacity: opacity[fadeTo],\n left: this.props.slideWidth * i\n };\n }\n\n return map;\n }\n }, {\n key: \"getSlideStyles\",\n value: function getSlideStyles(index, data) {\n return {\n boxSizing: 'border-box',\n display: 'block',\n height: getSlideHeight(this.props),\n left: data[index] ? data[index].left : 0,\n listStyleType: 'none',\n marginBottom: 'auto',\n marginLeft: this.props.cellSpacing / 2,\n marginRight: this.props.cellSpacing / 2,\n marginTop: 'auto',\n MozBoxSizing: 'border-box',\n opacity: data[index] ? data[index].opacity : 0,\n position: 'absolute',\n top: 0,\n verticalAlign: 'top',\n visibility: data[index] ? 'inherit' : 'hidden',\n width: this.props.slideWidth\n };\n }\n }, {\n key: \"getContainerStyles\",\n value: function getContainerStyles() {\n var width = this.props.slideWidth * this.props.slidesToShow;\n return {\n boxSizing: 'border-box',\n cursor: this.props.dragging === true ? 'pointer' : 'inherit',\n display: 'block',\n height: this.props.slideHeight,\n margin: this.props.vertical ? \"\".concat(this.props.cellSpacing / 2 * -1, \"px 0px\") : \"0px \".concat(this.props.cellSpacing / 2 * -1, \"px\"),\n MozBoxSizing: 'border-box',\n padding: 0,\n touchAction: \"pinch-zoom \".concat(this.props.vertical ? 'pan-x' : 'pan-y'),\n width: width\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var fade = -(this.props.deltaX || this.props.deltaY) / this.props.slideWidth % this.props.slideCount;\n\n if (parseInt(fade) === fade) {\n this.fadeFromSlide = fade;\n }\n\n var opacityAndLeftMap = this.getSlideOpacityAndLeftMap(this.fadeFromSlide, this.props.currentSlide, fade);\n var children = this.formatChildren(this.props.children, opacityAndLeftMap);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"slider-list\",\n style: this.getContainerStyles()\n }, children);\n }\n }]);\n\n return FadeTransition;\n}(React.Component);\n\nexport { FadeTransition as default };\nFadeTransition.defaultProps = {\n cellSpacing: 0,\n currentSlide: 0,\n deltaX: 0,\n deltaY: 0,\n dragging: false,\n heightMode: 'max',\n isWrappingAround: false,\n left: 0,\n slideCount: 0,\n slideHeight: 0,\n slidesToShow: 1,\n slideWidth: 0,\n top: 0,\n vertical: false,\n wrapAround: false\n};","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport React from 'react';\nimport { getSlideHeight } from '../utilities/style-utilities';\nimport { handleSelfFocus } from '../utilities/utilities';\nvar MIN_ZOOM_SCALE = 0;\nvar MAX_ZOOM_SCALE = 1;\n\nvar ScrollTransition3D = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollTransition3D, _React$Component);\n\n var _super = _createSuper(ScrollTransition3D);\n\n function ScrollTransition3D(props) {\n var _this;\n\n _classCallCheck(this, ScrollTransition3D);\n\n _this = _super.call(this, props);\n _this.getListStyles = _this.getListStyles.bind(_assertThisInitialized(_this));\n return _this;\n }\n /* eslint-disable complexity */\n\n\n _createClass(ScrollTransition3D, [{\n key: \"getSlideTargetPosition\",\n value: function getSlideTargetPosition(index) {\n var targetPosition = 0;\n var offset = 0;\n\n if (index !== this.props.currentSlide) {\n var relativeDistanceToCurrentSlide = this.getRelativeDistanceToCurrentSlide(index);\n targetPosition = (this.props.slideWidth + this.props.cellSpacing) * relativeDistanceToCurrentSlide - this.getZoomOffsetFor(relativeDistanceToCurrentSlide);\n offset = 0;\n\n if (this.props.animation === 'zoom' && (this.props.currentSlide === index + 1 || this.props.currentSlide === 0 && index === this.props.children.length - 1)) {\n offset = this.props.slideOffset;\n } else if (this.props.animation === 'zoom' && (this.props.currentSlide === index - 1 || this.props.currentSlide === this.props.children.length - 1 && index === 0)) {\n offset = -this.props.slideOffset;\n }\n }\n\n return targetPosition + offset;\n }\n /* eslint-enable complexity */\n\n }, {\n key: \"formatChildren\",\n value: function formatChildren(children) {\n var _this2 = this;\n\n var _this$props = this.props,\n top = _this$props.top,\n left = _this$props.left,\n currentSlide = _this$props.currentSlide,\n slidesToShow = _this$props.slidesToShow,\n vertical = _this$props.vertical;\n var positionValue = vertical ? top : left;\n return React.Children.map(children, function (child, index) {\n var visible = _this2.getDistanceToCurrentSlide(index) <= slidesToShow / 2;\n var current = currentSlide === index;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"slider-slide\".concat(visible ? ' slide-visible' : '').concat(current ? ' slide-current' : ''),\n style: _this2.getSlideStyles(index, positionValue),\n key: index,\n \"aria-label\": \"slide \".concat(index + 1, \" of \").concat(children.length),\n role: \"group\",\n onClick: handleSelfFocus,\n tabIndex: -1\n }, child);\n });\n }\n }, {\n key: \"getZoomOffsetFor\",\n value: function getZoomOffsetFor(relativeDistanceToCurrent) {\n if (relativeDistanceToCurrent === 0) {\n return 0;\n }\n\n var marginGeneratedByZoom = (1 - Math.pow(this.props.zoomScale, Math.abs(relativeDistanceToCurrent))) * this.props.slideWidth;\n var direction = relativeDistanceToCurrent < 0 ? -1 : 1;\n var result = marginGeneratedByZoom * direction + this.getZoomOffsetFor(relativeDistanceToCurrent < 0 ? relativeDistanceToCurrent + 1 : relativeDistanceToCurrent - 1);\n return result;\n }\n }, {\n key: \"getDistance\",\n value: function getDistance(index, referenceIndex) {\n return Math.abs(index - referenceIndex);\n }\n }, {\n key: \"getDistanceToCurrentSlide\",\n value: function getDistanceToCurrentSlide(index) {\n var _this$props2 = this.props,\n wrapAround = _this$props2.wrapAround,\n currentSlide = _this$props2.currentSlide,\n slideCount = _this$props2.slideCount;\n return wrapAround ? Math.min(Math.min(this.getDistance(index, 0) + this.getDistance(currentSlide, slideCount), this.getDistance(index, slideCount) + this.getDistance(currentSlide, 0)), this.getDistance(index, currentSlide)) : this.getDistance(index, currentSlide);\n }\n }, {\n key: \"getRelativeDistanceToCurrentSlide\",\n value: function getRelativeDistanceToCurrentSlide(index) {\n var _this$props3 = this.props,\n wrapAround = _this$props3.wrapAround,\n currentSlide = _this$props3.currentSlide,\n slideCount = _this$props3.slideCount;\n\n if (wrapAround) {\n var distanceByLeftEge = this.getDistance(index, 0) + this.getDistance(currentSlide, slideCount);\n var distanceByRightEdge = this.getDistance(index, slideCount) + this.getDistance(currentSlide, 0);\n var absoluteDirectDistance = this.getDistance(index, currentSlide);\n var minimumDistance = Math.min(Math.min(distanceByLeftEge, distanceByRightEdge), absoluteDirectDistance);\n\n switch (minimumDistance) {\n case absoluteDirectDistance:\n return index - currentSlide;\n\n case distanceByLeftEge:\n return distanceByLeftEge;\n\n case distanceByRightEdge:\n return -distanceByRightEdge;\n\n default:\n return 0;\n }\n } else {\n return index - currentSlide;\n }\n }\n }, {\n key: \"getTransformScale\",\n value: function getTransformScale(index) {\n return this.props.currentSlide !== index ? Math.max(Math.min(Math.pow(this.props.zoomScale, this.getDistanceToCurrentSlide(index)), MAX_ZOOM_SCALE), MIN_ZOOM_SCALE) : 1.0;\n }\n }, {\n key: \"getOpacityScale\",\n value: function getOpacityScale(index) {\n return this.props.currentSlide !== index ? Math.max(Math.min(Math.pow(this.props.opacityScale, this.getDistanceToCurrentSlide(index)), MAX_ZOOM_SCALE), MIN_ZOOM_SCALE) : 1.0;\n }\n }, {\n key: \"getSlideStyles\",\n value: function getSlideStyles(index, positionValue) {\n var _this$props4 = this.props,\n vertical = _this$props4.vertical,\n slideCount = _this$props4.slideCount,\n cellSpacing = _this$props4.cellSpacing,\n slideWidth = _this$props4.slideWidth;\n var targetPosition = this.getSlideTargetPosition(index, positionValue);\n var transformScale = this.getTransformScale(index);\n return {\n boxSizing: 'border-box',\n display: vertical ? 'block' : 'inline-block',\n height: getSlideHeight(this.props),\n left: vertical ? 0 : targetPosition,\n listStyleType: 'none',\n marginBottom: vertical ? cellSpacing / 2 : 'auto',\n marginLeft: vertical ? 'auto' : cellSpacing / 2,\n marginRight: vertical ? 'auto' : cellSpacing / 2,\n marginTop: vertical ? cellSpacing / 2 : 'auto',\n MozBoxSizing: 'border-box',\n opacity: this.getOpacityScale(index),\n position: 'absolute',\n top: vertical ? targetPosition : 0,\n transform: \"scale(\".concat(transformScale, \")\"),\n transition: 'left 0.4s ease-out, transform 0.4s ease-out, opacity 0.4s ease-out',\n verticalAlign: 'top',\n width: vertical ? '100%' : slideWidth,\n zIndex: slideCount - this.getDistanceToCurrentSlide(index)\n };\n }\n }, {\n key: \"getListStyles\",\n value: function getListStyles() {\n var listWidth = this.props.slideWidth * React.Children.count(this.props.children);\n var spacingOffset = this.props.cellSpacing * React.Children.count(this.props.children);\n return {\n boxSizing: 'border-box',\n cursor: this.props.dragging === true ? 'pointer' : 'inherit',\n height: this.props.vertical ? listWidth + spacingOffset : this.props.slideHeight,\n left: \"calc(50% - (\".concat(this.props.slideWidth, \"px / 2))\"),\n margin: this.props.vertical ? \"\".concat(this.props.cellSpacing / 2 * -1, \"px 0px\") : \"\".concat(this.props.slideListMargin, \"px \").concat(this.props.cellSpacing / 2 * -1, \"px\"),\n MozBoxSizing: 'border-box',\n padding: 0,\n position: 'relative',\n touchAction: \"pinch-zoom \".concat(this.props.vertical ? 'pan-x' : 'pan-y'),\n width: this.props.vertical ? 'auto' : '100%'\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.formatChildren(this.props.children);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"slider-list\",\n style: this.getListStyles()\n }, children);\n }\n }]);\n\n return ScrollTransition3D;\n}(React.Component);\n\nexport { ScrollTransition3D as default };\nScrollTransition3D.defaultProps = {\n cellSpacing: 0,\n currentSlide: 0,\n dragging: false,\n heightMode: 'max',\n isWrappingAround: false,\n left: 0,\n opacityScale: 0.65,\n slideCount: 0,\n slideHeight: 0,\n slideListMargin: 0,\n slidesToShow: 3,\n slideWidth: 0,\n top: 0,\n vertical: false,\n wrapAround: true,\n zoomScale: 0.75\n};","import ScrollTransition from './transitions/scroll-transition';\nimport FadeTransition from './transitions/fade-transition';\nimport ScrollTransition3D from './transitions/3d-scroll-transition';\nexport default {\n fade: FadeTransition,\n scroll: ScrollTransition,\n scroll3d: ScrollTransition3D\n};","import React from 'react';\n\nvar AnnounceSlide = function AnnounceSlide(_ref) {\n var message = _ref.message;\n var styles = {\n position: 'absolute',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n padding: 0,\n margin: '-1px',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n border: 0\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\",\n style: styles,\n tabIndex: -1\n }, message);\n};\n\nexport var defaultRenderAnnounceSlideMessage = function defaultRenderAnnounceSlideMessage(_ref2) {\n var currentSlide = _ref2.currentSlide,\n slideCount = _ref2.slideCount;\n return \"Slide \".concat(currentSlide + 1, \" of \").concat(slideCount);\n};\nexport default AnnounceSlide;","import React from 'react';\nexport var getValidChildren = function getValidChildren(children) {\n // .toArray automatically removes invalid React children\n return React.Children.toArray(children);\n};\n\nvar getMax = function getMax(a, b) {\n return a > b ? a : b;\n};\n\nvar getHeightOfSlide = function getHeightOfSlide(slide) {\n if (!slide) {\n return 0;\n }\n\n if (slide.children && slide.children.length > 0) {\n var totalHeight = 0;\n\n for (var i = 0; i < slide.children.length; ++i) {\n totalHeight += slide.children[i].offsetHeight;\n }\n\n return totalHeight;\n } else {\n return slide.offsetHeight;\n }\n}; // end - is exclusive\n\n\nexport var findMaxHeightSlideInRange = function findMaxHeightSlideInRange(slides, start, end) {\n var maxHeight = 0;\n\n if (slides.length === 0 || start < 0 || end < 0 || start > slides.length - 1 || end > slides.length) {\n return maxHeight;\n }\n\n if (start < end) {\n for (var i = start; i < end; i++) {\n maxHeight = getMax(getHeightOfSlide(slides[i]), maxHeight);\n }\n } else if (start > end) {\n // Finding max in a wrap around\n for (var _i = start; _i < slides.length; _i++) {\n maxHeight = getMax(getHeightOfSlide(slides[_i]), maxHeight);\n }\n\n for (var _i2 = 0; _i2 < end; _i2++) {\n maxHeight = getMax(getHeightOfSlide(slides[_i2]), maxHeight);\n }\n } else {\n // start === end\n maxHeight = getHeightOfSlide(slides[start]);\n }\n\n return maxHeight;\n};\n\nvar ensureIndexInBounds = function ensureIndexInBounds(index, slideCount) {\n var newIndex = index;\n\n while (newIndex < 0) {\n newIndex += slideCount;\n }\n\n while (newIndex > slideCount) {\n newIndex -= slideCount;\n }\n\n return newIndex;\n};\n\nexport var findCurrentHeightSlide = function findCurrentHeightSlide(currentSlide, slidesToShow, alignment, wrapAround, slides) {\n if (slidesToShow > 1) {\n var startIndex = currentSlide;\n var lastIndex = Math.min(Math.ceil(slidesToShow) + currentSlide, slides.length);\n var offset = alignment === 'center' ? (slidesToShow - 1) / 2 : slidesToShow - 1;\n\n switch (alignment) {\n case 'center':\n startIndex = Math.floor(currentSlide - offset);\n lastIndex = Math.ceil(currentSlide + offset) + 1;\n break;\n\n case 'right':\n startIndex = Math.floor(currentSlide - offset);\n lastIndex = currentSlide + 1;\n break;\n\n case 'left':\n startIndex = currentSlide;\n lastIndex = Math.ceil(currentSlide + offset) + 1;\n break;\n } // inclusive\n\n\n startIndex = wrapAround ? ensureIndexInBounds(startIndex, slides.length) : Math.max(startIndex, 0); // exclusive\n\n lastIndex = wrapAround ? ensureIndexInBounds(lastIndex, slides.length) : Math.min(lastIndex, slides.length);\n return findMaxHeightSlideInRange(slides, startIndex, lastIndex);\n } else {\n return getHeightOfSlide(slides[currentSlide]);\n }\n};\nexport var calculateSlideHeight = function calculateSlideHeight(props, state) {\n var childNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var heightMode = props.heightMode,\n vertical = props.vertical,\n initialSlideHeight = props.initialSlideHeight,\n wrapAround = props.wrapAround;\n var slidesToShow = state.slidesToShow,\n currentSlide = state.currentSlide,\n cellAlign = state.cellAlign;\n var firstSlide = childNodes[0];\n\n if (firstSlide && heightMode === 'first') {\n return vertical ? getHeightOfSlide(firstSlide) * slidesToShow : getHeightOfSlide(firstSlide);\n }\n\n if (heightMode === 'max') {\n return findMaxHeightSlideInRange(childNodes, 0, childNodes.length);\n }\n\n if (heightMode === 'current') {\n return findCurrentHeightSlide(currentSlide, slidesToShow, cellAlign, wrapAround, childNodes);\n }\n\n return initialSlideHeight || 100;\n};","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nimport React from 'react';\nimport 'wicg-inert';\nimport ExecutionEnvironment from 'exenv';\nimport Animate from 'react-move/Animate';\nimport * as easing from 'd3-ease';\nimport { PagingDots, PreviousButton, NextButton } from './default-controls';\nimport Transitions from './all-transitions';\nimport AnnounceSlide, { defaultRenderAnnounceSlideMessage } from './announce-slide';\nimport { addAccessibility, addEvent, removeEvent, getPropsByTransitionMode, swipeDirection, shouldUpdate, calcSomeInitialState } from './utilities/utilities';\nimport { getAlignmentOffset, getImgTagStyles, getDecoratorStyles, getSliderStyles, getFrameStyles, getTransitionProps } from './utilities/style-utilities';\nimport { getValidChildren, calculateSlideHeight } from './utilities/bootstrapping-utilities';\n\nvar Carousel = /*#__PURE__*/function (_React$Component) {\n _inherits(Carousel, _React$Component);\n\n var _super = _createSuper(Carousel);\n\n function Carousel() {\n var _this;\n\n _classCallCheck(this, Carousel);\n\n _this = _super.apply(this, arguments);\n _this.displayName = 'Carousel';\n _this.clickDisabled = false;\n _this.latestTransitioningIndex = null;\n _this.timers = [];\n _this.touchObject = {};\n _this.controlsMap = [{\n funcName: 'renderTopLeftControls',\n key: 'TopLeft'\n }, {\n funcName: 'renderTopCenterControls',\n key: 'TopCenter'\n }, {\n funcName: 'renderTopRightControls',\n key: 'TopRight'\n }, {\n funcName: 'renderCenterLeftControls',\n key: 'CenterLeft'\n }, {\n funcName: 'renderCenterCenterControls',\n key: 'CenterCenter'\n }, {\n funcName: 'renderCenterRightControls',\n key: 'CenterRight'\n }, {\n funcName: 'renderBottomLeftControls',\n key: 'BottomLeft'\n }, {\n funcName: 'renderBottomCenterControls',\n key: 'BottomCenter'\n }, {\n funcName: 'renderBottomRightControls',\n key: 'BottomRight'\n }];\n _this.keyCodeConfig = {\n nextSlide: [39, 68, 38, 87],\n previousSlide: [37, 65, 40, 83],\n firstSlide: [81],\n lastSlide: [69],\n pause: [32]\n };\n _this.childNodesMutationObs = null;\n _this.state = _objectSpread({\n currentSlide: _this.props.slideIndex,\n dragging: false,\n easing: _this.props.disableAnimation ? '' : easing.easeCircleOut,\n hasInteraction: false,\n // to remove animation from the initial slide on the page load when non-default slideIndex is used\n isWrappingAround: false,\n left: 0,\n resetWrapAroundPosition: false,\n slideCount: getValidChildren(_this.props.children).length,\n top: 0,\n wrapToIndex: null,\n hasFocus: false\n }, calcSomeInitialState(_this.props));\n _this.autoplayIterator = _this.autoplayIterator.bind(_assertThisInitialized(_this));\n _this.calcSlideHeightAndWidth = _this.calcSlideHeightAndWidth.bind(_assertThisInitialized(_this));\n _this.getChildNodes = _this.getChildNodes.bind(_assertThisInitialized(_this));\n _this.getMouseEvents = _this.getMouseEvents.bind(_assertThisInitialized(_this));\n _this.getOffsetDeltas = _this.getOffsetDeltas.bind(_assertThisInitialized(_this));\n _this.getTargetLeft = _this.getTargetLeft.bind(_assertThisInitialized(_this));\n _this.getTouchEvents = _this.getTouchEvents.bind(_assertThisInitialized(_this));\n _this.blockEvent = _this.blockEvent.bind(_assertThisInitialized(_this));\n _this.goToSlide = _this.goToSlide.bind(_assertThisInitialized(_this));\n _this.handleFocus = _this.handleFocus.bind(_assertThisInitialized(_this));\n _this.handleBlur = _this.handleBlur.bind(_assertThisInitialized(_this));\n _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_this));\n _this.handleKeyPress = _this.handleKeyPress.bind(_assertThisInitialized(_this));\n _this.handleMouseOut = _this.handleMouseOut.bind(_assertThisInitialized(_this));\n _this.handleMouseOver = _this.handleMouseOver.bind(_assertThisInitialized(_this));\n _this.handleSwipe = _this.handleSwipe.bind(_assertThisInitialized(_this));\n _this.nextSlide = _this.nextSlide.bind(_assertThisInitialized(_this));\n _this.onResize = _this.onResize.bind(_assertThisInitialized(_this));\n _this.onVisibilityChange = _this.onVisibilityChange.bind(_assertThisInitialized(_this));\n _this.previousSlide = _this.previousSlide.bind(_assertThisInitialized(_this));\n _this.renderControls = _this.renderControls.bind(_assertThisInitialized(_this));\n _this.resetAutoplay = _this.resetAutoplay.bind(_assertThisInitialized(_this));\n _this.setDimensions = _this.setDimensions.bind(_assertThisInitialized(_this));\n _this.setLeft = _this.setLeft.bind(_assertThisInitialized(_this));\n _this.setSlideHeightAndWidth = _this.setSlideHeightAndWidth.bind(_assertThisInitialized(_this));\n _this.startAutoplay = _this.startAutoplay.bind(_assertThisInitialized(_this));\n _this.stopAutoplay = _this.stopAutoplay.bind(_assertThisInitialized(_this));\n _this.establishChildNodesMutationObserver = _this.establishChildNodesMutationObserver.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Carousel, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // see https://github.com/facebook/react/issues/3417#issuecomment-121649937\n this.mounted = true;\n this.setLeft();\n this.setDimensions();\n this.bindEvents();\n this.establishChildNodesMutationObserver();\n\n if (this.props.autoplay) {\n this.startAutoplay();\n }\n\n var keyCodeConfig = _extends({}, this.keyCodeConfig, this.props.keyCodeConfig);\n\n this.keyCodeMap = this.getKeyCodeMap(keyCodeConfig);\n this.getLockScrollEvents().lockTouchScroll();\n this.initializeCarouselHeight();\n } // eslint-disable-next-line complexity\n\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var slideChanged = prevState.currentSlide !== this.state.currentSlide;\n var heightModeChanged = prevProps.heightMode !== this.props.heightMode;\n var axisChanged = prevProps.vertical !== this.props.vertical;\n var childrenChanged = prevProps.children !== this.props.children;\n\n if (axisChanged) {\n this.onResize();\n } else if (slideChanged || heightModeChanged) {\n var image = this.getCurrentChildNodeImg();\n\n if (image) {\n image.addEventListener('load', this.setSlideHeightAndWidth);\n image.removeEventListener('load', this.setSlideHeightAndWidth);\n } else {\n this.setSlideHeightAndWidth();\n }\n }\n\n if (this.state.isWrappingAround) {\n this.isWrapped = true;\n }\n\n var prevSlideCount = getValidChildren(prevProps.children).length;\n var slideCount = getValidChildren(this.props.children).length;\n var slideCountChanged = prevSlideCount !== slideCount;\n\n if (slideCountChanged) {\n this.setState({\n slideCount: slideCount,\n currentSlide: this.props.slideIndex\n });\n }\n\n var _this$calcSlideHeight = this.calcSlideHeightAndWidth(),\n slideHeight = _this$calcSlideHeight.slideHeight;\n\n var heightMismatches = slideHeight !== prevState.slideHeight;\n\n if (this.mounted && heightMismatches) {\n this.setDimensions();\n } else {\n var updateDimensions = slideCountChanged || shouldUpdate(prevProps, this.props, ['cellSpacing', 'vertical', 'slideWidth', 'slideHeight', 'heightMode', 'slidesToScroll', 'slidesToShow', 'transitionMode', 'cellAlign']);\n\n if (updateDimensions) {\n this.setDimensions(this.props);\n }\n }\n\n if (childrenChanged) {\n this.initializeCarouselHeight();\n }\n\n if (slideCountChanged && slideCount <= this.state.currentSlide) {\n this.goToSlide(Math.max(slideCount - 1, 0), this.props);\n } else if (prevProps.slideIndex !== this.props.slideIndex && this.props.slideIndex !== this.state.currentSlide && !this.state.isWrappingAround) {\n this.goToSlide(this.props.slideIndex, this.props);\n }\n\n if (prevProps.autoplay !== this.props.autoplay) {\n if (this.props.autoplay) {\n this.startAutoplay();\n } else {\n this.stopAutoplay();\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unbindEvents();\n this.disconnectChildNodesMutationObserver();\n this.stopAutoplay(); // see https://github.com/facebook/react/issues/3417#issuecomment-121649937\n\n this.mounted = false;\n\n for (var i = 0; i < this.timers.length; i++) {\n clearTimeout(this.timers[i]);\n }\n\n this.getLockScrollEvents().unlockTouchScroll();\n }\n }, {\n key: \"initializeCarouselHeight\",\n value: function initializeCarouselHeight() {\n var _this2 = this;\n\n var initialDelay = 200;\n var timesChecked = 0;\n\n var initializeHeight = function initializeHeight(delay) {\n _this2.timers.push(setTimeout(function () {\n // If slideHeight is greater than zero and matches calculated slideHeight,\n // assume the app has been initialized. If not,\n // keep trying to set dimensions until things work.\n var _this2$calcSlideHeigh = _this2.calcSlideHeightAndWidth(),\n slideHeight = _this2$calcSlideHeigh.slideHeight;\n\n if (_this2.state.slideHeight > 0 && _this2.state.slideHeight === slideHeight) {\n return;\n }\n\n _this2.setDimensions();\n\n ++timesChecked; // Increase delay per attempt so the checks\n // slowly decrease if content is taking forever to load.\n //\n // If we've checked more than 10 times, it's probably never going\n // to load, so we stop checking. Otherwise, the page will freeze\n // after a long period:\n // See https://github.com/FormidableLabs/nuka-carousel/issues/798\n\n if (timesChecked < 10) {\n // Add exponential backoff to check more slowly\n initializeHeight(delay * 1.5);\n }\n }, delay));\n };\n\n initializeHeight(initialDelay);\n }\n }, {\n key: \"establishChildNodesMutationObserver\",\n value: function establishChildNodesMutationObserver() {\n var _this3 = this;\n\n var childNodes = this.getChildNodes();\n\n if (childNodes.length && 'MutationObserver' in window) {\n this.childNodesMutationObs = new MutationObserver(function () {\n _this3.setSlideHeightAndWidth();\n });\n\n var observeChildNodeMutation = function observeChildNodeMutation(node) {\n _this3.childNodesMutationObs.observe(node, {\n attributeFilter: ['style'],\n attributeOldValue: false,\n attributes: true,\n characterData: false,\n characterDataOldValue: false,\n childList: false,\n subtree: false\n });\n };\n\n var childNodesArray = Array.from(childNodes);\n\n for (var _i = 0, _childNodesArray = childNodesArray; _i < _childNodesArray.length; _i++) {\n var childNode = _childNodesArray[_i];\n observeChildNodeMutation(childNode);\n }\n }\n }\n }, {\n key: \"disconnectChildNodesMutationObserver\",\n value: function disconnectChildNodesMutationObserver() {\n if (this.childNodesMutationObs instanceof MutationObserver) {\n this.childNodesMutationObs.disconnect();\n }\n }\n }, {\n key: \"blockEvent\",\n value: function blockEvent(e) {\n if (this.state.dragging) {\n var direction = swipeDirection(this.touchObject.startX, e.touches[0].pageX, this.touchObject.startY, e.touches[0].pageY, this.props.vertical);\n\n if (direction !== 0) {\n e.preventDefault();\n }\n }\n }\n }, {\n key: \"getLockScrollEvents\",\n value: function getLockScrollEvents() {\n var _this4 = this;\n\n var lockTouchScroll = function lockTouchScroll() {\n document.addEventListener('touchmove', _this4.blockEvent, {\n passive: false\n });\n };\n\n var unlockTouchScroll = function unlockTouchScroll() {\n document.removeEventListener('touchmove', _this4.blockEvent, {\n passive: false\n });\n };\n\n return {\n lockTouchScroll: lockTouchScroll,\n unlockTouchScroll: unlockTouchScroll\n };\n }\n }, {\n key: \"getTouchEvents\",\n value: function getTouchEvents() {\n var _this5 = this;\n\n if (this.props.swiping === false) {\n return {\n onTouchStart: this.handleMouseOver,\n onTouchEnd: this.handleMouseOut\n };\n }\n\n return {\n onTouchStart: function onTouchStart(e) {\n //detect pinch zoom\n if (e.touches.length === 2) {\n _this5.handleMouseOver();\n\n return;\n }\n\n _this5.touchObject = {\n startX: e.touches[0].pageX,\n startY: e.touches[0].pageY\n };\n\n _this5.handleMouseOver();\n\n _this5.setState({\n dragging: true\n });\n },\n onTouchMove: function onTouchMove(e) {\n if (e.touches.length === 2) {\n return;\n }\n\n var direction = swipeDirection(_this5.touchObject.startX, e.touches[0].pageX, _this5.touchObject.startY, e.touches[0].pageY, _this5.props.vertical);\n var length = _this5.props.vertical ? Math.round(Math.sqrt(Math.pow(e.touches[0].pageY - _this5.touchObject.startY, 2))) : Math.round(Math.sqrt(Math.pow(e.touches[0].pageX - _this5.touchObject.startX, 2)));\n\n if (length >= 10) {\n if (_this5.clickDisabled === false) _this5.props.onDragStart(e);\n _this5.clickDisabled = true;\n }\n\n _this5.touchObject = {\n startX: _this5.touchObject.startX,\n startY: _this5.touchObject.startY,\n endX: e.touches[0].pageX,\n endY: e.touches[0].pageY,\n length: length,\n direction: direction\n };\n\n _this5.setState({\n left: _this5.props.vertical ? 0 : _this5.getTargetLeft(_this5.touchObject.length * _this5.touchObject.direction),\n top: _this5.props.vertical ? _this5.getTargetLeft(_this5.touchObject.length * _this5.touchObject.direction) : 0\n });\n },\n onTouchEnd: function onTouchEnd(e) {\n if (e.touches.length === 2) {\n _this5.handleMouseOut();\n\n return;\n }\n\n _this5.handleSwipe(e);\n\n _this5.handleMouseOut();\n },\n onTouchCancel: function onTouchCancel(e) {\n _this5.handleSwipe(e);\n }\n };\n }\n }, {\n key: \"getMouseEvents\",\n value: function getMouseEvents() {\n var _this6 = this;\n\n if (this.props.dragging === false) {\n return {\n onMouseOver: this.handleMouseOver,\n onMouseOut: this.handleMouseOut\n };\n }\n\n return {\n onMouseOver: this.handleMouseOver,\n onMouseOut: this.handleMouseOut,\n onMouseDown: function onMouseDown(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n _this6.touchObject = {\n startX: e.clientX,\n startY: e.clientY\n };\n\n _this6.setState({\n dragging: true\n });\n },\n onMouseMove: function onMouseMove(e) {\n if (!_this6.state.dragging) {\n return;\n }\n\n var direction = swipeDirection(_this6.touchObject.startX, e.clientX, _this6.touchObject.startY, e.clientY, _this6.props.vertical);\n\n if (direction !== 0) {\n e.preventDefault();\n }\n\n var length = _this6.props.vertical ? Math.round(Math.sqrt(Math.pow(e.clientY - _this6.touchObject.startY, 2))) : Math.round(Math.sqrt(Math.pow(e.clientX - _this6.touchObject.startX, 2))); // prevents disabling click just because mouse moves a fraction of a pixel\n\n if (length >= 10) {\n if (_this6.clickDisabled === false) _this6.props.onDragStart(e);\n _this6.clickDisabled = true;\n }\n\n _this6.touchObject = {\n startX: _this6.touchObject.startX,\n startY: _this6.touchObject.startY,\n endX: e.clientX,\n endY: e.clientY,\n length: length,\n direction: direction\n };\n\n _this6.setState({\n left: _this6.props.vertical ? 0 : _this6.getTargetLeft(_this6.touchObject.length * _this6.touchObject.direction),\n top: _this6.props.vertical ? _this6.getTargetLeft(_this6.touchObject.length * _this6.touchObject.direction) : 0\n });\n },\n onMouseUp: function onMouseUp(e) {\n if (_this6.touchObject.length === 0 || _this6.touchObject.length === undefined) {\n _this6.setState({\n dragging: false\n });\n\n return;\n }\n\n _this6.handleSwipe(e);\n },\n onMouseLeave: function onMouseLeave(e) {\n if (!_this6.state.dragging) {\n return;\n }\n\n _this6.handleSwipe(e);\n }\n };\n }\n }, {\n key: \"pauseAutoplay\",\n value: function pauseAutoplay() {\n if (this.props.autoplay) {\n this.autoplayPaused = true;\n this.stopAutoplay();\n }\n }\n }, {\n key: \"unpauseAutoplay\",\n value: function unpauseAutoplay() {\n if (this.props.autoplay && this.autoplayPaused) {\n this.startAutoplay();\n this.autoplayPaused = null;\n }\n }\n }, {\n key: \"handleMouseOver\",\n value: function handleMouseOver() {\n if (this.props.pauseOnHover) {\n this.pauseAutoplay();\n }\n }\n }, {\n key: \"handleMouseOut\",\n value: function handleMouseOut() {\n if (this.autoplayPaused) {\n this.unpauseAutoplay();\n }\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus() {\n this.setState({\n hasFocus: true\n });\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur() {\n this.setState({\n hasFocus: false\n });\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(event) {\n if (this.clickDisabled === true) {\n if (event.metaKey || event.shiftKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (event.nativeEvent) {\n event.nativeEvent.stopPropagation();\n }\n }\n }\n }, {\n key: \"handleSwipe\",\n value: function handleSwipe() {\n var _this7 = this;\n\n var slidesToShow = this.state.slidesToShow;\n\n if (this.props.slidesToScroll === 'auto') {\n slidesToShow = this.state.slidesToScroll;\n }\n\n var touchLength = this.touchObject.length || 0; // touchLength must be longer than 1/5 the slideWidth / slidesToShow\n // for swiping to be initiated\n\n if (touchLength > this.state.slideWidth / slidesToShow / 5) {\n if (this.touchObject.direction === 1) {\n if (this.state.currentSlide + 1 >= this.state.slideCount && !this.props.wrapAround) {\n this.setState({\n easing: easing[this.props.edgeEasing]\n });\n } else {\n this.nextSlide();\n }\n } else if (this.touchObject.direction === -1) {\n if (this.state.currentSlide <= 0 && !this.props.wrapAround) {\n this.setState({\n easing: easing[this.props.edgeEasing]\n });\n } else {\n this.previousSlide();\n }\n }\n } else if (touchLength > 0) {\n this.goToSlide(this.state.currentSlide);\n } // wait for `handleClick` event before resetting clickDisabled\n\n\n this.timers.push(setTimeout(function () {\n _this7.clickDisabled = false;\n }, 0));\n this.touchObject = {};\n this.setState({\n dragging: false\n });\n } // eslint-disable-next-line complexity\n\n }, {\n key: \"handleKeyPress\",\n value: function handleKeyPress(e) {\n if (this.state.hasFocus && this.props.enableKeyboardControls) {\n var actionName = this.keyCodeMap[e.keyCode];\n\n switch (actionName) {\n case 'nextSlide':\n this.nextSlide();\n break;\n\n case 'previousSlide':\n this.previousSlide();\n break;\n\n case 'firstSlide':\n this.goToSlide(0, this.props);\n break;\n\n case 'lastSlide':\n this.goToSlide(this.state.slideCount - 1, this.props);\n break;\n\n case 'pause':\n if (this.state.pauseOnHover && this.props.autoplay) {\n this.setState({\n pauseOnHover: false\n });\n this.pauseAutoplay();\n break;\n } else {\n this.setState({\n pauseOnHover: true\n });\n this.unpauseAutoplay();\n break;\n }\n\n }\n }\n }\n }, {\n key: \"getKeyCodeMap\",\n value: function getKeyCodeMap(keyCodeConfig) {\n var keyCodeMap = {};\n Object.keys(keyCodeConfig).forEach(function (actionName) {\n keyCodeConfig[actionName].forEach(function (keyCode) {\n return keyCodeMap[keyCode] = actionName;\n });\n });\n return keyCodeMap;\n }\n }, {\n key: \"autoplayIterator\",\n value: function autoplayIterator() {\n if (this.props.wrapAround) {\n if (this.props.autoplayReverse) {\n this.previousSlide();\n } else {\n this.nextSlide();\n }\n\n return;\n }\n\n if (this.props.autoplayReverse) {\n if (this.state.currentSlide !== 0) {\n this.previousSlide();\n } else {\n this.stopAutoplay();\n }\n } else if (this.state.currentSlide !== this.state.slideCount - this.state.slidesToShow) {\n this.nextSlide();\n } else {\n this.stopAutoplay();\n }\n }\n }, {\n key: \"startAutoplay\",\n value: function startAutoplay() {\n this.autoplayID = setInterval(this.autoplayIterator, this.props.autoplayInterval);\n }\n }, {\n key: \"resetAutoplay\",\n value: function resetAutoplay() {\n if (this.props.autoplay && !this.autoplayPaused) {\n this.stopAutoplay();\n this.startAutoplay();\n }\n }\n }, {\n key: \"stopAutoplay\",\n value: function stopAutoplay() {\n if (this.autoplayID) {\n clearInterval(this.autoplayID);\n }\n } // Animation Method\n\n }, {\n key: \"getTargetLeft\",\n value: function getTargetLeft(touchOffset, slide) {\n var target = slide || this.state.currentSlide;\n var offset = getAlignmentOffset(target, _objectSpread(_objectSpread({}, this.props), this.state));\n var left = this.state.slideWidth * target;\n var lastSlide = this.state.currentSlide > 0 && target + this.state.slidesToScroll >= this.state.slideCount;\n\n if (lastSlide && !this.props.wrapAround && this.props.scrollMode === 'remainder') {\n left = this.state.slideWidth * this.state.slideCount - this.state.frameWidth;\n offset = 0;\n offset -= this.props.cellSpacing * (this.state.slideCount - 1);\n }\n\n if (!isNaN(touchOffset)) {\n offset -= touchOffset;\n } else {\n offset -= 0;\n }\n\n return (left - offset) * -1;\n }\n }, {\n key: \"getOffsetDeltas\",\n value: function getOffsetDeltas() {\n var offset = 0;\n\n if (this.state.isWrappingAround) {\n offset = this.getTargetLeft(null, this.state.wrapToIndex);\n } else {\n offset = this.getTargetLeft(this.touchObject.length * this.touchObject.direction);\n }\n\n return {\n tx: [this.props.vertical ? 0 : offset],\n ty: [this.props.vertical ? offset : 0]\n };\n }\n }, {\n key: \"isEdgeSwiping\",\n value: function isEdgeSwiping() {\n var _this$state = this.state,\n currentSlide = _this$state.currentSlide,\n slideCount = _this$state.slideCount,\n slideWidth = _this$state.slideWidth,\n slideHeight = _this$state.slideHeight,\n slidesToShow = _this$state.slidesToShow;\n\n var _this$getOffsetDeltas = this.getOffsetDeltas(),\n tx = _this$getOffsetDeltas.tx,\n ty = _this$getOffsetDeltas.ty;\n\n var offset = getAlignmentOffset(currentSlide, _objectSpread(_objectSpread({}, this.props), this.state));\n\n if (this.props.vertical) {\n var rowHeight = slideHeight / slidesToShow;\n var slidesLeftToShow = slideCount - slidesToShow;\n var lastSlideLimit = rowHeight * slidesLeftToShow;\n var offsetTy = ty[0] - offset; // returns true if ty offset is outside first or last slide\n\n return offsetTy > 0 || -offsetTy > lastSlideLimit;\n }\n\n var offsetTx = tx[0] - offset; // returns true if tx offset is outside first or last slide\n\n return offsetTx > 0 || -offsetTx > slideWidth * (slideCount - 1);\n } // Action Methods\n\n }, {\n key: \"goToSlide\",\n value: function goToSlide(index, props) {\n var _this8 = this;\n\n if (props === undefined) {\n props = this.props;\n }\n\n this.latestTransitioningIndex = index;\n this.setState({\n hasInteraction: true,\n easing: easing[props.easing]\n });\n var previousSlide = this.state.currentSlide;\n\n if (index >= this.state.slideCount || index < 0) {\n if (!props.wrapAround) {\n return;\n }\n\n if (index >= this.state.slideCount) {\n props.beforeSlide(this.state.currentSlide, 0);\n this.setState(function (prevState) {\n return {\n left: props.vertical ? 0 : _this8.getTargetLeft(_this8.state.slideWidth, prevState.currentSlide),\n top: props.vertical ? _this8.getTargetLeft(_this8.state.slideWidth, prevState.currentSlide) : 0,\n currentSlide: 0,\n isWrappingAround: true,\n wrapToIndex: _this8.state.slideCount\n };\n }, function () {\n _this8.timers.push(setTimeout(function () {\n if (index === _this8.latestTransitioningIndex) {\n _this8.resetAutoplay();\n\n if (index !== previousSlide) {\n _this8.props.afterSlide(0);\n }\n }\n }, props.speed));\n });\n return;\n } else {\n var endSlide = index < 0 ? this.state.slideCount + index : this.state.slideCount - this.state.slidesToScroll;\n props.beforeSlide(this.state.currentSlide, endSlide);\n this.setState(function (prevState) {\n return {\n left: props.vertical ? 0 : _this8.getTargetLeft(0, prevState.currentSlide),\n top: props.vertical ? _this8.getTargetLeft(0, prevState.currentSlide) : 0,\n currentSlide: endSlide,\n isWrappingAround: true,\n wrapToIndex: index\n };\n }, function () {\n _this8.timers.push(setTimeout(function () {\n if (index === _this8.latestTransitioningIndex) {\n _this8.resetAutoplay();\n\n if (index !== previousSlide) {\n _this8.props.afterSlide(_this8.state.slideCount - 1);\n }\n }\n }, props.speed));\n });\n return;\n }\n }\n\n this.props.beforeSlide(this.state.currentSlide, index);\n this.setState({\n currentSlide: index\n }, function () {\n _this8.timers.push(setTimeout(function () {\n if (index === _this8.latestTransitioningIndex) {\n _this8.resetAutoplay();\n\n if (index !== previousSlide) {\n _this8.props.afterSlide(index);\n }\n }\n }, props.speed));\n });\n }\n }, {\n key: \"nextSlide\",\n value: function nextSlide() {\n var _this$state2 = this.state,\n slidesToScroll = _this$state2.slidesToScroll,\n currentSlide = _this$state2.currentSlide,\n slideWidth = _this$state2.slideWidth,\n slideCount = _this$state2.slideCount;\n var targetSlideIndex = currentSlide + slidesToScroll;\n var slidesToShow = this.state.slidesToShow;\n\n if (this.props.slidesToScroll === 'auto') {\n var swipeDistance = this.touchObject.length;\n\n if (swipeDistance > 0) {\n targetSlideIndex = Math.round(swipeDistance / slideWidth) + currentSlide;\n } else {\n slidesToShow = slidesToScroll;\n }\n }\n\n if (currentSlide >= slideCount - slidesToShow && !this.props.wrapAround && this.props.cellAlign === 'left') {\n return;\n }\n\n if (this.props.wrapAround) {\n this.goToSlide(targetSlideIndex);\n } else {\n if (this.props.slideWidth !== 1) {\n this.goToSlide(targetSlideIndex);\n return;\n }\n\n var offset = targetSlideIndex;\n var leftAlignSlideIndex = this.props.scrollMode === 'page' ? offset : Math.min(offset, slideCount - Math.floor(slidesToShow));\n var nextSlideIndex = this.props.cellAlign !== 'left' ? offset : leftAlignSlideIndex; // If nextSlideIndex is larger than last index, then\n // just navigate to last index\n\n this.goToSlide(Math.min(nextSlideIndex, slideCount - 1));\n }\n }\n }, {\n key: \"previousSlide\",\n value: function previousSlide() {\n var _this$state3 = this.state,\n slidesToScroll = _this$state3.slidesToScroll,\n slideWidth = _this$state3.slideWidth,\n currentSlide = _this$state3.currentSlide;\n var targetSlideIndex = currentSlide - slidesToScroll;\n var swipeDistance = this.touchObject.length;\n\n if (this.props.slidesToScroll === 'auto' && swipeDistance > 0) {\n targetSlideIndex = currentSlide - Math.round(swipeDistance / slideWidth);\n }\n\n if (currentSlide <= 0 && !this.props.wrapAround) {\n return;\n }\n\n if (this.props.wrapAround) {\n this.goToSlide(targetSlideIndex);\n } else {\n this.goToSlide(Math.max(0, targetSlideIndex));\n }\n } // Bootstrapping\n\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n if (ExecutionEnvironment.canUseDOM) {\n addEvent(window, 'resize', this.onResize);\n addEvent(document, 'visibilitychange', this.onVisibilityChange);\n addEvent(document, 'keydown', this.handleKeyPress);\n }\n }\n }, {\n key: \"onResize\",\n value: function onResize() {\n this.setDimensions(null, this.props.onResize);\n }\n }, {\n key: \"onVisibilityChange\",\n value: function onVisibilityChange() {\n if (document.hidden) {\n this.pauseAutoplay();\n } else {\n this.unpauseAutoplay();\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n if (ExecutionEnvironment.canUseDOM) {\n removeEvent(window, 'resize', this.onResize);\n removeEvent(document, 'visibilitychange', this.onVisibilityChange);\n removeEvent(document, 'keydown', this.handleKeyPress);\n }\n }\n }, {\n key: \"calcSlideHeightAndWidth\",\n value: function calcSlideHeightAndWidth(props) {\n // slide height\n props = props || this.props;\n var childNodes = this.getChildNodes();\n var slideHeight = calculateSlideHeight(props, this.state, childNodes); //slide width\n\n var _getPropsByTransition = getPropsByTransitionMode(props, ['slidesToShow']),\n slidesToShow = _getPropsByTransition.slidesToShow;\n\n var frame = this.frame;\n var slideWidth;\n\n if (this.props.animation === 'zoom') {\n slideWidth = frame.offsetWidth - frame.offsetWidth * 15 / 100;\n } else if (typeof props.slideWidth !== 'number') {\n slideWidth = parseInt(props.slideWidth);\n } else if (props.vertical) {\n slideWidth = slideHeight / slidesToShow * props.slideWidth;\n } else {\n slideWidth = frame.offsetWidth / slidesToShow * props.slideWidth;\n }\n\n if (!props.vertical) {\n slideWidth -= props.cellSpacing * ((100 - 100 / slidesToShow) / 100);\n }\n\n return {\n slideHeight: slideHeight,\n slideWidth: slideWidth\n };\n }\n }, {\n key: \"setSlideHeightAndWidth\",\n value: function setSlideHeightAndWidth() {\n var _this$calcSlideHeight2 = this.calcSlideHeightAndWidth(),\n slideHeight = _this$calcSlideHeight2.slideHeight,\n slideWidth = _this$calcSlideHeight2.slideWidth;\n\n if (slideHeight !== this.state.slideHeight || slideWidth !== this.state.slideWidth || this.isWrapped) {\n this.isWrapped = false;\n this.setState({\n slideHeight: slideHeight,\n slideWidth: slideWidth\n });\n }\n } // eslint-disable-next-line complexity\n\n }, {\n key: \"setDimensions\",\n value: function setDimensions(props) {\n var stateCb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n props = props || this.props;\n\n var _getPropsByTransition2 = getPropsByTransitionMode(props, ['slidesToShow', 'cellAlign', 'scrollMode']),\n slidesToShow = _getPropsByTransition2.slidesToShow,\n cellAlign = _getPropsByTransition2.cellAlign,\n scrollMode = _getPropsByTransition2.scrollMode;\n\n var frame = this.frame;\n\n var _this$calcSlideHeight3 = this.calcSlideHeightAndWidth(props),\n slideHeight = _this$calcSlideHeight3.slideHeight,\n slideWidth = _this$calcSlideHeight3.slideWidth;\n\n var frameHeight = slideHeight + props.cellSpacing * (slidesToShow - 1);\n var frameWidth = props.vertical ? frameHeight : frame.offsetWidth;\n\n var _getPropsByTransition3 = getPropsByTransitionMode(props, ['slidesToScroll']),\n slidesToScroll = _getPropsByTransition3.slidesToScroll;\n\n if (slidesToScroll === 'auto' || scrollMode === 'page') {\n slidesToScroll = Math.floor(frameWidth / (slideWidth + props.cellSpacing));\n }\n\n if ((props.slideWidth !== 1 || props.cellSpacing > 0) && scrollMode === 'page' && cellAlign === 'left') {\n slidesToShow = slidesToScroll;\n }\n\n this.setState({\n frameWidth: frameWidth,\n slideHeight: slideHeight,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n slideWidth: slideWidth,\n cellAlign: cellAlign\n }, function () {\n stateCb();\n });\n }\n }, {\n key: \"getChildNodes\",\n value: function getChildNodes() {\n return this.frame.childNodes[0].childNodes;\n }\n }, {\n key: \"getCurrentChildNodeImg\",\n value: function getCurrentChildNodeImg() {\n var childNodes = this.getChildNodes();\n var currentChildNode = childNodes[this.props.slideIndex];\n return currentChildNode ? currentChildNode.getElementsByTagName('img')[0] : null;\n }\n }, {\n key: \"setLeft\",\n value: function setLeft() {\n var newLeft = this.props.vertical ? 0 : this.getTargetLeft();\n var newTop = this.props.vertical ? this.getTargetLeft() : 0;\n\n if (newLeft !== this.state.left || newTop !== this.state.top) {\n this.setState({\n left: newLeft,\n top: newTop\n });\n }\n }\n }, {\n key: \"renderControls\",\n value: function renderControls() {\n var _this9 = this;\n\n if (this.props.withoutControls) {\n return this.controlsMap.map(function () {\n return null;\n });\n } else {\n return this.controlsMap.map(function (_ref) {\n var funcName = _ref.funcName,\n key = _ref.key;\n var func = _this9.props[funcName];\n var controlChildren = func && typeof func === 'function' && func({\n cellAlign: _this9.props.cellAlign,\n cellSpacing: _this9.props.cellSpacing,\n currentSlide: _this9.state.currentSlide,\n defaultControlsConfig: _this9.props.defaultControlsConfig,\n frameWidth: _this9.state.frameWidth,\n goToSlide: function goToSlide(index) {\n return _this9.goToSlide(index);\n },\n left: _this9.state.left,\n nextSlide: function nextSlide() {\n return _this9.nextSlide();\n },\n previousSlide: function previousSlide() {\n return _this9.previousSlide();\n },\n scrollMode: _this9.props.scrollMode,\n slideCount: _this9.state.slideCount,\n slidesToScroll: _this9.state.slidesToScroll,\n slidesToShow: _this9.state.slidesToShow,\n slideWidth: _this9.state.slideWidth,\n top: _this9.state.top,\n vertical: _this9.props.vertical,\n wrapAround: _this9.props.wrapAround\n });\n return controlChildren && /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: [\"slider-control-\".concat(key.toLowerCase()), _this9.props.defaultControlsConfig.containerClassName || ''].join(' ').trim(),\n style: _objectSpread(_objectSpread({}, getDecoratorStyles(key)), _this9.props.getControlsContainerStyles(key))\n }, controlChildren);\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this10 = this;\n\n var _this$state4 = this.state,\n currentSlide = _this$state4.currentSlide,\n slideCount = _this$state4.slideCount,\n frameWidth = _this$state4.frameWidth,\n hasInteraction = _this$state4.hasInteraction;\n var _this$props = this.props,\n disableAnimation = _this$props.disableAnimation,\n frameOverflow = _this$props.frameOverflow,\n framePadding = _this$props.framePadding,\n renderAnnounceSlideMessage = _this$props.renderAnnounceSlideMessage,\n slidesToShow = _this$props.slidesToShow,\n vertical = _this$props.vertical;\n var duration = this.state.dragging || !this.state.dragging && this.state.resetWrapAroundPosition && this.props.wrapAround || disableAnimation || !hasInteraction ? 0 : this.props.speed;\n var frameStyles = getFrameStyles(frameOverflow, vertical, framePadding, frameWidth);\n var touchEvents = this.getTouchEvents();\n var mouseEvents = this.getMouseEvents();\n var TransitionControl = Transitions[this.props.transitionMode];\n var validChildren = getValidChildren(this.props.children);\n\n var _this$getOffsetDeltas2 = this.getOffsetDeltas(),\n _this$getOffsetDeltas3 = _slicedToArray(_this$getOffsetDeltas2.tx, 1),\n startTx = _this$getOffsetDeltas3[0],\n _this$getOffsetDeltas4 = _slicedToArray(_this$getOffsetDeltas2.ty, 1),\n startTy = _this$getOffsetDeltas4[0];\n\n return /*#__PURE__*/React.createElement(\"section\", {\n className: ['slider', this.props.className || ''].join(' ').trim(),\n onFocus: this.handleFocus,\n \"aria-label\": \"carousel-slider\",\n role: \"region\",\n onBlur: this.handleBlur,\n ref: this.props.innerRef,\n tabIndex: 0,\n style: _extends({}, getSliderStyles(this.props.width, this.props.height), this.props.style)\n }, !this.props.autoplay && /*#__PURE__*/React.createElement(AnnounceSlide, {\n message: renderAnnounceSlideMessage({\n currentSlide: currentSlide,\n slideCount: slideCount\n })\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"slider-frame\",\n ref: function ref(frame) {\n return _this10.frame = frame;\n },\n style: frameStyles\n }, touchEvents, mouseEvents, {\n onClickCapture: this.handleClick\n }), /*#__PURE__*/React.createElement(Animate, {\n show: true,\n start: {\n tx: startTx,\n ty: startTy\n },\n update: function update() {\n var _this10$getOffsetDelt = _this10.getOffsetDeltas(),\n tx = _this10$getOffsetDelt.tx,\n ty = _this10$getOffsetDelt.ty;\n\n if (_this10.props.disableEdgeSwiping && !_this10.props.wrapAround && _this10.isEdgeSwiping()) {\n return {};\n } else {\n return {\n tx: tx,\n ty: ty,\n timing: {\n duration: duration,\n ease: _this10.state.easing\n },\n events: {\n end: function end() {\n var newLeft = _this10.props.vertical ? 0 : _this10.getTargetLeft();\n var newTop = _this10.props.vertical ? _this10.getTargetLeft() : 0;\n\n if (newLeft !== _this10.state.left || newTop !== _this10.state.top) {\n _this10.setState({\n left: newLeft,\n top: newTop,\n isWrappingAround: false,\n resetWrapAroundPosition: true\n }, function () {\n _this10.setState({\n resetWrapAroundPosition: false\n });\n });\n }\n }\n }\n };\n }\n }\n }, function (_ref2) {\n var tx = _ref2.tx,\n ty = _ref2.ty;\n return /*#__PURE__*/React.createElement(TransitionControl, _extends({}, getTransitionProps(_this10.props, _this10.state), {\n deltaX: tx,\n deltaY: ty\n }), addAccessibility(validChildren, slidesToShow, currentSlide));\n })), this.renderControls(), this.props.autoGenerateStyleTag && /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\",\n dangerouslySetInnerHTML: {\n __html: getImgTagStyles()\n }\n }));\n }\n }]);\n\n return Carousel;\n}(React.Component);\n\nexport { Carousel as default };\nCarousel.defaultProps = {\n afterSlide: function afterSlide() {},\n autoGenerateStyleTag: true,\n autoplay: false,\n autoplayInterval: 3000,\n autoplayReverse: false,\n beforeSlide: function beforeSlide() {},\n cellAlign: 'left',\n cellSpacing: 0,\n getControlsContainerStyles: function getControlsContainerStyles() {},\n defaultControlsConfig: {},\n disableAnimation: false,\n disableEdgeSwiping: false,\n dragging: true,\n easing: 'easeCircleOut',\n edgeEasing: 'easeElasticOut',\n enableKeyboardControls: false,\n frameOverflow: 'hidden',\n framePadding: '0px',\n height: 'inherit',\n heightMode: 'max',\n keyCodeConfig: {},\n onDragStart: function onDragStart() {},\n onResize: function onResize() {},\n pauseOnHover: true,\n renderAnnounceSlideMessage: defaultRenderAnnounceSlideMessage,\n renderBottomCenterControls: function renderBottomCenterControls(props) {\n return /*#__PURE__*/React.createElement(PagingDots, props);\n },\n renderCenterLeftControls: function renderCenterLeftControls(props) {\n return /*#__PURE__*/React.createElement(PreviousButton, props);\n },\n renderCenterRightControls: function renderCenterRightControls(props) {\n return /*#__PURE__*/React.createElement(NextButton, props);\n },\n scrollMode: 'remainder',\n slideIndex: 0,\n slideListMargin: 10,\n slideOffset: 25,\n slidesToScroll: 1,\n slidesToShow: 1,\n slideWidth: 1,\n speed: 500,\n style: {},\n swiping: true,\n transitionMode: 'scroll',\n vertical: false,\n width: '100%',\n withoutControls: false,\n wrapAround: false\n};\nexport { NextButton, PreviousButton, PagingDots };","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.numeric = numeric;\n\nfunction numeric(beg, end) {\n var a = +beg;\n var b = +end - a;\n return function (t) {\n return a + b * t;\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEAVE = exports.UPDATE = exports.ENTER = void 0;\nvar ENTER = 'ENTER';\nexports.ENTER = ENTER;\nvar UPDATE = 'UPDATE';\nexports.UPDATE = UPDATE;\nvar LEAVE = 'LEAVE';\nexports.LEAVE = LEAVE;","var frame = 0,\n // is an animation frame pending?\ntimeout = 0,\n // is a timeout pending?\ninterval = 0,\n // are any timers active?\npokeDelay = 1000,\n // how frequently we check for clock skew\ntaskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function (f) {\n setTimeout(f, 17);\n};\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function restart(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;else taskHead = this;\n taskTail = this;\n }\n\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function stop() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nexport function timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n\n var t = taskHead,\n e;\n\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(),\n delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0,\n t1 = taskHead,\n t2,\n time = Infinity;\n\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}","import { Timer } from \"./timer.js\";\nexport default function (callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart(function (elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar transitionId = 0;\nexport function getTransitionId() {\n return ++transitionId;\n}\nexport function extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }\n}\nexport function once(func) {\n var called = false;\n return function transitionEvent() {\n if (!called) {\n called = true;\n func.call(this);\n }\n };\n}\nexport function isNamespace(prop) {\n return _typeof(prop) === 'object' && Array.isArray(prop) === false;\n}\n\nvar linear = function linear(t) {\n return +t;\n};\n\nexport var timingDefaults = {\n delay: 0,\n duration: 250,\n ease: linear\n};","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nimport { once } from './utils';\nexport var Events = function Events(config) {\n var _this = this;\n\n _classCallCheck(this, Events);\n\n this.start = null;\n this.interrupt = null;\n this.end = null;\n\n if (config.events) {\n Object.keys(config.events).forEach(function (d) {\n if (typeof config.events[d] !== 'function') {\n throw new Error('Event handlers must be a function');\n } else {\n _this[d] = once(config.events[d]);\n }\n });\n }\n};\nexport default Events;","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nimport { now, timer, timeout } from 'd3-timer';\nimport { timingDefaults, extend, getTransitionId, isNamespace } from './utils';\nimport Events from './Events';\n\nvar BaseNode = function () {\n function BaseNode(state) {\n _classCallCheck(this, BaseNode);\n\n this.state = state || {};\n }\n\n _createClass(BaseNode, [{\n key: \"transition\",\n value: function transition(config) {\n if (Array.isArray(config)) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = config[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var item = _step.value;\n this.parse(item);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n } else {\n this.parse(config);\n }\n }\n }, {\n key: \"isTransitioning\",\n value: function isTransitioning() {\n return !!this.transitionData;\n }\n }, {\n key: \"stopTransitions\",\n value: function stopTransitions() {\n var transitions = this.transitionData;\n\n if (transitions) {\n Object.keys(transitions).forEach(function (t) {\n transitions[t].timer.stop();\n });\n }\n }\n }, {\n key: \"setState\",\n value: function setState(update) {\n if (typeof update === 'function') {\n extend(this.state, update(this.state));\n } else {\n extend(this.state, update);\n }\n }\n }, {\n key: \"parse\",\n value: function parse(config) {\n var _this = this;\n\n var clone = _objectSpread({}, config);\n\n var events = new Events(clone);\n\n if (clone.events) {\n delete clone.events;\n }\n\n var timing = _objectSpread({}, timingDefaults, clone.timing || {}, {\n time: now()\n });\n\n if (clone.timing) {\n delete clone.timing;\n }\n\n Object.keys(clone).forEach(function (stateKey) {\n var tweens = [];\n var next = clone[stateKey];\n\n if (isNamespace(next)) {\n Object.keys(next).forEach(function (attr) {\n var val = next[attr];\n\n if (Array.isArray(val)) {\n if (val.length === 1) {\n tweens.push(_this.getTween(attr, val[0], stateKey));\n } else {\n _this.setState(function (state) {\n var _objectSpread2, _ref;\n\n return _ref = {}, _ref[stateKey] = _objectSpread({}, state[stateKey], (_objectSpread2 = {}, _objectSpread2[attr] = val[0], _objectSpread2)), _ref;\n });\n\n tweens.push(_this.getTween(attr, val[1], stateKey));\n }\n } else if (typeof val === 'function') {\n var getNameSpacedCustomTween = function getNameSpacedCustomTween() {\n var kapellmeisterNamespacedTween = function kapellmeisterNamespacedTween(t) {\n _this.setState(function (state) {\n var _objectSpread3, _ref2;\n\n return _ref2 = {}, _ref2[stateKey] = _objectSpread({}, state[stateKey], (_objectSpread3 = {}, _objectSpread3[attr] = val(t), _objectSpread3)), _ref2;\n });\n };\n\n return kapellmeisterNamespacedTween;\n };\n\n tweens.push(getNameSpacedCustomTween);\n } else {\n _this.setState(function (state) {\n var _objectSpread4, _ref3;\n\n return _ref3 = {}, _ref3[stateKey] = _objectSpread({}, state[stateKey], (_objectSpread4 = {}, _objectSpread4[attr] = val, _objectSpread4)), _ref3;\n });\n\n tweens.push(_this.getTween(attr, val, stateKey));\n }\n });\n } else {\n if (Array.isArray(next)) {\n if (next.length === 1) {\n tweens.push(_this.getTween(stateKey, next[0], null));\n } else {\n var _this$setState;\n\n _this.setState((_this$setState = {}, _this$setState[stateKey] = next[0], _this$setState));\n\n tweens.push(_this.getTween(stateKey, next[1], null));\n }\n } else if (typeof next === 'function') {\n var getCustomTween = function getCustomTween() {\n var kapellmeisterTween = function kapellmeisterTween(t) {\n var _this$setState2;\n\n _this.setState((_this$setState2 = {}, _this$setState2[stateKey] = next(t), _this$setState2));\n };\n\n return kapellmeisterTween;\n };\n\n tweens.push(getCustomTween);\n } else {\n var _this$setState3;\n\n _this.setState((_this$setState3 = {}, _this$setState3[stateKey] = next, _this$setState3));\n\n tweens.push(_this.getTween(stateKey, next, null));\n }\n }\n\n _this.update({\n stateKey: stateKey,\n timing: timing,\n tweens: tweens,\n events: events,\n status: 0\n });\n });\n }\n }, {\n key: \"getTween\",\n value: function getTween(attr, endValue, nameSpace) {\n var _this2 = this;\n\n return function () {\n var begValue = nameSpace ? _this2.state[nameSpace][attr] : _this2.state[attr];\n\n if (begValue === endValue) {\n return null;\n }\n\n var i = _this2.getInterpolator(begValue, endValue, attr, nameSpace);\n\n var stateTween;\n\n if (nameSpace === null) {\n stateTween = function stateTween(t) {\n var _this2$setState;\n\n _this2.setState((_this2$setState = {}, _this2$setState[attr] = i(t), _this2$setState));\n };\n } else {\n stateTween = function stateTween(t) {\n _this2.setState(function (state) {\n var _objectSpread5, _ref4;\n\n return _ref4 = {}, _ref4[nameSpace] = _objectSpread({}, state[nameSpace], (_objectSpread5 = {}, _objectSpread5[attr] = i(t), _objectSpread5)), _ref4;\n });\n };\n }\n\n return stateTween;\n };\n }\n }, {\n key: \"update\",\n value: function update(transition) {\n if (!this.transitionData) {\n this.transitionData = {};\n }\n\n this.init(getTransitionId(), transition);\n }\n }, {\n key: \"init\",\n value: function init(id, transition) {\n var _this3 = this;\n\n var n = transition.tweens.length;\n var tweens = new Array(n);\n\n var queue = function queue(elapsed) {\n transition.status = 1;\n transition.timer.restart(start, transition.timing.delay, transition.timing.time);\n\n if (transition.timing.delay <= elapsed) {\n start(elapsed - transition.timing.delay);\n }\n };\n\n this.transitionData[id] = transition;\n transition.timer = timer(queue, 0, transition.timing.time);\n\n var start = function start(elapsed) {\n if (transition.status !== 1) return stop();\n\n for (var tid in _this3.transitionData) {\n var t = _this3.transitionData[tid];\n\n if (t.stateKey !== transition.stateKey) {\n continue;\n }\n\n if (t.status === 3) {\n return timeout(start);\n }\n\n if (t.status === 4) {\n t.status = 6;\n t.timer.stop();\n\n if (t.events.interrupt) {\n t.events.interrupt.call(_this3);\n }\n\n delete _this3.transitionData[tid];\n } else if (+tid < id) {\n t.status = 6;\n t.timer.stop();\n delete _this3.transitionData[tid];\n }\n }\n\n timeout(function () {\n if (transition.status === 3) {\n transition.status = 4;\n transition.timer.restart(tick, transition.timing.delay, transition.timing.time);\n tick(elapsed);\n }\n });\n transition.status = 2;\n\n if (transition.events.start) {\n transition.events.start.call(_this3);\n }\n\n if (transition.status !== 2) {\n return;\n }\n\n transition.status = 3;\n var j = -1;\n\n for (var i = 0; i < n; ++i) {\n var res = transition.tweens[i]();\n\n if (res) {\n tweens[++j] = res;\n }\n }\n\n tweens.length = j + 1;\n };\n\n var tick = function tick(elapsed) {\n var t = 1;\n\n if (elapsed < transition.timing.duration) {\n t = transition.timing.ease(elapsed / transition.timing.duration);\n } else {\n transition.timer.restart(stop);\n transition.status = 5;\n }\n\n var i = -1;\n\n while (++i < tweens.length) {\n tweens[i](t);\n }\n\n if (transition.status === 5) {\n if (transition.events.end) {\n transition.events.end.call(_this3);\n }\n\n stop();\n }\n };\n\n var stop = function stop() {\n transition.status = 6;\n transition.timer.stop();\n delete _this3.transitionData[id];\n\n for (var _ in _this3.transitionData) {\n return;\n }\n\n delete _this3.transitionData;\n };\n }\n }]);\n\n return BaseNode;\n}();\n\nexport default BaseNode;","import { Timer, now } from \"./timer.js\";\nexport default function (callback, delay, time) {\n var t = new Timer(),\n total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n}","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCAyMSA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik00LjI5Mjk2ZS0wNyAzMkwyMC4yNSAwLjgyMzA5TDIwLjI1IDYzLjE3NjlMNC4yOTI5NmUtMDcgMzJaIiBmaWxsPSIjMDAwMDAwIi8+DQo8L3N2Zz4NCg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCAyMSA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0yMSAzMkwwLjc0OTk5NyA2My4xNzY5TDAuNzUgMC44MjMwODVMMjEgMzJaIiBmaWxsPSIjRkE3ODAwIi8+DQo8L3N2Zz4NCg==\"","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/**\n * This work is licensed under the W3C Software and Document License\n * (http://www.w3.org/Consortium/Legal/2015/copyright-software-and-document).\n */\n\n\n(function () {\n // Return early if we're not running inside of the browser.\n if (typeof window === 'undefined') {\n return;\n } // Convenience function for converting NodeLists.\n\n /** @type {typeof Array.prototype.slice} */\n\n\n var slice = Array.prototype.slice;\n /**\n * IE has a non-standard name for \"matches\".\n * @type {typeof Element.prototype.matches}\n */\n\n var matches = Element.prototype.matches || Element.prototype.msMatchesSelector;\n /** @type {string} */\n\n var _focusableElementsString = ['a[href]', 'area[href]', 'input:not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'details', 'summary', 'iframe', 'object', 'embed', '[contenteditable]'].join(',');\n /**\n * `InertRoot` manages a single inert subtree, i.e. a DOM subtree whose root element has an `inert`\n * attribute.\n *\n * Its main functions are:\n *\n * - to create and maintain a set of managed `InertNode`s, including when mutations occur in the\n * subtree. The `makeSubtreeUnfocusable()` method handles collecting `InertNode`s via registering\n * each focusable node in the subtree with the singleton `InertManager` which manages all known\n * focusable nodes within inert subtrees. `InertManager` ensures that a single `InertNode`\n * instance exists for each focusable node which has at least one inert root as an ancestor.\n *\n * - to notify all managed `InertNode`s when this subtree stops being inert (i.e. when the `inert`\n * attribute is removed from the root node). This is handled in the destructor, which calls the\n * `deregister` method on `InertManager` for each managed inert node.\n */\n\n\n var InertRoot = function () {\n /**\n * @param {!HTMLElement} rootElement The HTMLElement at the root of the inert subtree.\n * @param {!InertManager} inertManager The global singleton InertManager object.\n */\n function InertRoot(rootElement, inertManager) {\n _classCallCheck(this, InertRoot);\n /** @type {!InertManager} */\n\n\n this._inertManager = inertManager;\n /** @type {!HTMLElement} */\n\n this._rootElement = rootElement;\n /**\n * @type {!Set}\n * All managed focusable nodes in this InertRoot's subtree.\n */\n\n this._managedNodes = new Set(); // Make the subtree hidden from assistive technology\n\n if (this._rootElement.hasAttribute('aria-hidden')) {\n /** @type {?string} */\n this._savedAriaHidden = this._rootElement.getAttribute('aria-hidden');\n } else {\n this._savedAriaHidden = null;\n }\n\n this._rootElement.setAttribute('aria-hidden', 'true'); // Make all focusable elements in the subtree unfocusable and add them to _managedNodes\n\n\n this._makeSubtreeUnfocusable(this._rootElement); // Watch for:\n // - any additions in the subtree: make them unfocusable too\n // - any removals from the subtree: remove them from this inert root's managed nodes\n // - attribute changes: if `tabindex` is added, or removed from an intrinsically focusable\n // element, make that node a managed node.\n\n\n this._observer = new MutationObserver(this._onMutation.bind(this));\n\n this._observer.observe(this._rootElement, {\n attributes: true,\n childList: true,\n subtree: true\n });\n }\n /**\n * Call this whenever this object is about to become obsolete. This unwinds all of the state\n * stored in this object and updates the state of all of the managed nodes.\n */\n\n\n _createClass(InertRoot, [{\n key: 'destructor',\n value: function destructor() {\n this._observer.disconnect();\n\n if (this._rootElement) {\n if (this._savedAriaHidden !== null) {\n this._rootElement.setAttribute('aria-hidden', this._savedAriaHidden);\n } else {\n this._rootElement.removeAttribute('aria-hidden');\n }\n }\n\n this._managedNodes.forEach(function (inertNode) {\n this._unmanageNode(inertNode.node);\n }, this); // Note we cast the nulls to the ANY type here because:\n // 1) We want the class properties to be declared as non-null, or else we\n // need even more casts throughout this code. All bets are off if an\n // instance has been destroyed and a method is called.\n // 2) We don't want to cast \"this\", because we want type-aware optimizations\n // to know which properties we're setting.\n\n\n this._observer =\n /** @type {?} */\n null;\n this._rootElement =\n /** @type {?} */\n null;\n this._managedNodes =\n /** @type {?} */\n null;\n this._inertManager =\n /** @type {?} */\n null;\n }\n /**\n * @return {!Set} A copy of this InertRoot's managed nodes set.\n */\n\n }, {\n key: '_makeSubtreeUnfocusable',\n\n /**\n * @param {!Node} startNode\n */\n value: function _makeSubtreeUnfocusable(startNode) {\n var _this2 = this;\n\n composedTreeWalk(startNode, function (node) {\n return _this2._visitNode(node);\n });\n var activeElement = document.activeElement;\n\n if (!document.body.contains(startNode)) {\n // startNode may be in shadow DOM, so find its nearest shadowRoot to get the activeElement.\n var node = startNode;\n /** @type {!ShadowRoot|undefined} */\n\n var root = undefined;\n\n while (node) {\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n root =\n /** @type {!ShadowRoot} */\n node;\n break;\n }\n\n node = node.parentNode;\n }\n\n if (root) {\n activeElement = root.activeElement;\n }\n }\n\n if (startNode.contains(activeElement)) {\n activeElement.blur(); // In IE11, if an element is already focused, and then set to tabindex=-1\n // calling blur() will not actually move the focus.\n // To work around this we call focus() on the body instead.\n\n if (activeElement === document.activeElement) {\n document.body.focus();\n }\n }\n }\n /**\n * @param {!Node} node\n */\n\n }, {\n key: '_visitNode',\n value: function _visitNode(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n\n var element =\n /** @type {!HTMLElement} */\n node; // If a descendant inert root becomes un-inert, its descendants will still be inert because of\n // this inert root, so all of its managed nodes need to be adopted by this InertRoot.\n\n if (element !== this._rootElement && element.hasAttribute('inert')) {\n this._adoptInertRoot(element);\n }\n\n if (matches.call(element, _focusableElementsString) || element.hasAttribute('tabindex')) {\n this._manageNode(element);\n }\n }\n /**\n * Register the given node with this InertRoot and with InertManager.\n * @param {!Node} node\n */\n\n }, {\n key: '_manageNode',\n value: function _manageNode(node) {\n var inertNode = this._inertManager.register(node, this);\n\n this._managedNodes.add(inertNode);\n }\n /**\n * Unregister the given node with this InertRoot and with InertManager.\n * @param {!Node} node\n */\n\n }, {\n key: '_unmanageNode',\n value: function _unmanageNode(node) {\n var inertNode = this._inertManager.deregister(node, this);\n\n if (inertNode) {\n this._managedNodes['delete'](inertNode);\n }\n }\n /**\n * Unregister the entire subtree starting at `startNode`.\n * @param {!Node} startNode\n */\n\n }, {\n key: '_unmanageSubtree',\n value: function _unmanageSubtree(startNode) {\n var _this3 = this;\n\n composedTreeWalk(startNode, function (node) {\n return _this3._unmanageNode(node);\n });\n }\n /**\n * If a descendant node is found with an `inert` attribute, adopt its managed nodes.\n * @param {!HTMLElement} node\n */\n\n }, {\n key: '_adoptInertRoot',\n value: function _adoptInertRoot(node) {\n var inertSubroot = this._inertManager.getInertRoot(node); // During initialisation this inert root may not have been registered yet,\n // so register it now if need be.\n\n\n if (!inertSubroot) {\n this._inertManager.setInert(node, true);\n\n inertSubroot = this._inertManager.getInertRoot(node);\n }\n\n inertSubroot.managedNodes.forEach(function (savedInertNode) {\n this._manageNode(savedInertNode.node);\n }, this);\n }\n /**\n * Callback used when mutation observer detects subtree additions, removals, or attribute changes.\n * @param {!Array} records\n * @param {!MutationObserver} self\n */\n\n }, {\n key: '_onMutation',\n value: function _onMutation(records, self) {\n records.forEach(function (record) {\n var target =\n /** @type {!HTMLElement} */\n record.target;\n\n if (record.type === 'childList') {\n // Manage added nodes\n slice.call(record.addedNodes).forEach(function (node) {\n this._makeSubtreeUnfocusable(node);\n }, this); // Un-manage removed nodes\n\n slice.call(record.removedNodes).forEach(function (node) {\n this._unmanageSubtree(node);\n }, this);\n } else if (record.type === 'attributes') {\n if (record.attributeName === 'tabindex') {\n // Re-initialise inert node if tabindex changes\n this._manageNode(target);\n } else if (target !== this._rootElement && record.attributeName === 'inert' && target.hasAttribute('inert')) {\n // If a new inert root is added, adopt its managed nodes and make sure it knows about the\n // already managed nodes from this inert subroot.\n this._adoptInertRoot(target);\n\n var inertSubroot = this._inertManager.getInertRoot(target);\n\n this._managedNodes.forEach(function (managedNode) {\n if (target.contains(managedNode.node)) {\n inertSubroot._manageNode(managedNode.node);\n }\n });\n }\n }\n }, this);\n }\n }, {\n key: 'managedNodes',\n get: function get() {\n return new Set(this._managedNodes);\n }\n /** @return {boolean} */\n\n }, {\n key: 'hasSavedAriaHidden',\n get: function get() {\n return this._savedAriaHidden !== null;\n }\n /** @param {?string} ariaHidden */\n\n }, {\n key: 'savedAriaHidden',\n set: function set(ariaHidden) {\n this._savedAriaHidden = ariaHidden;\n }\n /** @return {?string} */\n ,\n get: function get() {\n return this._savedAriaHidden;\n }\n }]);\n\n return InertRoot;\n }();\n /**\n * `InertNode` initialises and manages a single inert node.\n * A node is inert if it is a descendant of one or more inert root elements.\n *\n * On construction, `InertNode` saves the existing `tabindex` value for the node, if any, and\n * either removes the `tabindex` attribute or sets it to `-1`, depending on whether the element\n * is intrinsically focusable or not.\n *\n * `InertNode` maintains a set of `InertRoot`s which are descendants of this `InertNode`. When an\n * `InertRoot` is destroyed, and calls `InertManager.deregister()`, the `InertManager` notifies the\n * `InertNode` via `removeInertRoot()`, which in turn destroys the `InertNode` if no `InertRoot`s\n * remain in the set. On destruction, `InertNode` reinstates the stored `tabindex` if one exists,\n * or removes the `tabindex` attribute if the element is intrinsically focusable.\n */\n\n\n var InertNode = function () {\n /**\n * @param {!Node} node A focusable element to be made inert.\n * @param {!InertRoot} inertRoot The inert root element associated with this inert node.\n */\n function InertNode(node, inertRoot) {\n _classCallCheck(this, InertNode);\n /** @type {!Node} */\n\n\n this._node = node;\n /** @type {boolean} */\n\n this._overrodeFocusMethod = false;\n /**\n * @type {!Set} The set of descendant inert roots.\n * If and only if this set becomes empty, this node is no longer inert.\n */\n\n this._inertRoots = new Set([inertRoot]);\n /** @type {?number} */\n\n this._savedTabIndex = null;\n /** @type {boolean} */\n\n this._destroyed = false; // Save any prior tabindex info and make this node untabbable\n\n this.ensureUntabbable();\n }\n /**\n * Call this whenever this object is about to become obsolete.\n * This makes the managed node focusable again and deletes all of the previously stored state.\n */\n\n\n _createClass(InertNode, [{\n key: 'destructor',\n value: function destructor() {\n this._throwIfDestroyed();\n\n if (this._node && this._node.nodeType === Node.ELEMENT_NODE) {\n var element =\n /** @type {!HTMLElement} */\n this._node;\n\n if (this._savedTabIndex !== null) {\n element.setAttribute('tabindex', this._savedTabIndex);\n } else {\n element.removeAttribute('tabindex');\n } // Use `delete` to restore native focus method.\n\n\n if (this._overrodeFocusMethod) {\n delete element.focus;\n }\n } // See note in InertRoot.destructor for why we cast these nulls to ANY.\n\n\n this._node =\n /** @type {?} */\n null;\n this._inertRoots =\n /** @type {?} */\n null;\n this._destroyed = true;\n }\n /**\n * @type {boolean} Whether this object is obsolete because the managed node is no longer inert.\n * If the object has been destroyed, any attempt to access it will cause an exception.\n */\n\n }, {\n key: '_throwIfDestroyed',\n\n /**\n * Throw if user tries to access destroyed InertNode.\n */\n value: function _throwIfDestroyed() {\n if (this.destroyed) {\n throw new Error('Trying to access destroyed InertNode');\n }\n }\n /** @return {boolean} */\n\n }, {\n key: 'ensureUntabbable',\n\n /** Save the existing tabindex value and make the node untabbable and unfocusable */\n value: function ensureUntabbable() {\n if (this.node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n\n var element =\n /** @type {!HTMLElement} */\n this.node;\n\n if (matches.call(element, _focusableElementsString)) {\n if (\n /** @type {!HTMLElement} */\n element.tabIndex === -1 && this.hasSavedTabIndex) {\n return;\n }\n\n if (element.hasAttribute('tabindex')) {\n this._savedTabIndex =\n /** @type {!HTMLElement} */\n element.tabIndex;\n }\n\n element.setAttribute('tabindex', '-1');\n\n if (element.nodeType === Node.ELEMENT_NODE) {\n element.focus = function () {};\n\n this._overrodeFocusMethod = true;\n }\n } else if (element.hasAttribute('tabindex')) {\n this._savedTabIndex =\n /** @type {!HTMLElement} */\n element.tabIndex;\n element.removeAttribute('tabindex');\n }\n }\n /**\n * Add another inert root to this inert node's set of managing inert roots.\n * @param {!InertRoot} inertRoot\n */\n\n }, {\n key: 'addInertRoot',\n value: function addInertRoot(inertRoot) {\n this._throwIfDestroyed();\n\n this._inertRoots.add(inertRoot);\n }\n /**\n * Remove the given inert root from this inert node's set of managing inert roots.\n * If the set of managing inert roots becomes empty, this node is no longer inert,\n * so the object should be destroyed.\n * @param {!InertRoot} inertRoot\n */\n\n }, {\n key: 'removeInertRoot',\n value: function removeInertRoot(inertRoot) {\n this._throwIfDestroyed();\n\n this._inertRoots['delete'](inertRoot);\n\n if (this._inertRoots.size === 0) {\n this.destructor();\n }\n }\n }, {\n key: 'destroyed',\n get: function get() {\n return (\n /** @type {!InertNode} */\n this._destroyed\n );\n }\n }, {\n key: 'hasSavedTabIndex',\n get: function get() {\n return this._savedTabIndex !== null;\n }\n /** @return {!Node} */\n\n }, {\n key: 'node',\n get: function get() {\n this._throwIfDestroyed();\n\n return this._node;\n }\n /** @param {?number} tabIndex */\n\n }, {\n key: 'savedTabIndex',\n set: function set(tabIndex) {\n this._throwIfDestroyed();\n\n this._savedTabIndex = tabIndex;\n }\n /** @return {?number} */\n ,\n get: function get() {\n this._throwIfDestroyed();\n\n return this._savedTabIndex;\n }\n }]);\n\n return InertNode;\n }();\n /**\n * InertManager is a per-document singleton object which manages all inert roots and nodes.\n *\n * When an element becomes an inert root by having an `inert` attribute set and/or its `inert`\n * property set to `true`, the `setInert` method creates an `InertRoot` object for the element.\n * The `InertRoot` in turn registers itself as managing all of the element's focusable descendant\n * nodes via the `register()` method. The `InertManager` ensures that a single `InertNode` instance\n * is created for each such node, via the `_managedNodes` map.\n */\n\n\n var InertManager = function () {\n /**\n * @param {!Document} document\n */\n function InertManager(document) {\n _classCallCheck(this, InertManager);\n\n if (!document) {\n throw new Error('Missing required argument; InertManager needs to wrap a document.');\n }\n /** @type {!Document} */\n\n\n this._document = document;\n /**\n * All managed nodes known to this InertManager. In a map to allow looking up by Node.\n * @type {!Map}\n */\n\n this._managedNodes = new Map();\n /**\n * All inert roots known to this InertManager. In a map to allow looking up by Node.\n * @type {!Map}\n */\n\n this._inertRoots = new Map();\n /**\n * Observer for mutations on `document.body`.\n * @type {!MutationObserver}\n */\n\n this._observer = new MutationObserver(this._watchForInert.bind(this)); // Add inert style.\n\n addInertStyle(document.head || document.body || document.documentElement); // Wait for document to be loaded.\n\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', this._onDocumentLoaded.bind(this));\n } else {\n this._onDocumentLoaded();\n }\n }\n /**\n * Set whether the given element should be an inert root or not.\n * @param {!HTMLElement} root\n * @param {boolean} inert\n */\n\n\n _createClass(InertManager, [{\n key: 'setInert',\n value: function setInert(root, inert) {\n if (inert) {\n if (this._inertRoots.has(root)) {\n // element is already inert\n return;\n }\n\n var inertRoot = new InertRoot(root, this);\n root.setAttribute('inert', '');\n\n this._inertRoots.set(root, inertRoot); // If not contained in the document, it must be in a shadowRoot.\n // Ensure inert styles are added there.\n\n\n if (!this._document.body.contains(root)) {\n var parent = root.parentNode;\n\n while (parent) {\n if (parent.nodeType === 11) {\n addInertStyle(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n } else {\n if (!this._inertRoots.has(root)) {\n // element is already non-inert\n return;\n }\n\n var _inertRoot = this._inertRoots.get(root);\n\n _inertRoot.destructor();\n\n this._inertRoots['delete'](root);\n\n root.removeAttribute('inert');\n }\n }\n /**\n * Get the InertRoot object corresponding to the given inert root element, if any.\n * @param {!Node} element\n * @return {!InertRoot|undefined}\n */\n\n }, {\n key: 'getInertRoot',\n value: function getInertRoot(element) {\n return this._inertRoots.get(element);\n }\n /**\n * Register the given InertRoot as managing the given node.\n * In the case where the node has a previously existing inert root, this inert root will\n * be added to its set of inert roots.\n * @param {!Node} node\n * @param {!InertRoot} inertRoot\n * @return {!InertNode} inertNode\n */\n\n }, {\n key: 'register',\n value: function register(node, inertRoot) {\n var inertNode = this._managedNodes.get(node);\n\n if (inertNode !== undefined) {\n // node was already in an inert subtree\n inertNode.addInertRoot(inertRoot);\n } else {\n inertNode = new InertNode(node, inertRoot);\n }\n\n this._managedNodes.set(node, inertNode);\n\n return inertNode;\n }\n /**\n * De-register the given InertRoot as managing the given inert node.\n * Removes the inert root from the InertNode's set of managing inert roots, and remove the inert\n * node from the InertManager's set of managed nodes if it is destroyed.\n * If the node is not currently managed, this is essentially a no-op.\n * @param {!Node} node\n * @param {!InertRoot} inertRoot\n * @return {?InertNode} The potentially destroyed InertNode associated with this node, if any.\n */\n\n }, {\n key: 'deregister',\n value: function deregister(node, inertRoot) {\n var inertNode = this._managedNodes.get(node);\n\n if (!inertNode) {\n return null;\n }\n\n inertNode.removeInertRoot(inertRoot);\n\n if (inertNode.destroyed) {\n this._managedNodes['delete'](node);\n }\n\n return inertNode;\n }\n /**\n * Callback used when document has finished loading.\n */\n\n }, {\n key: '_onDocumentLoaded',\n value: function _onDocumentLoaded() {\n // Find all inert roots in document and make them actually inert.\n var inertElements = slice.call(this._document.querySelectorAll('[inert]'));\n inertElements.forEach(function (inertElement) {\n this.setInert(inertElement, true);\n }, this); // Comment this out to use programmatic API only.\n\n this._observer.observe(this._document.body || this._document.documentElement, {\n attributes: true,\n subtree: true,\n childList: true\n });\n }\n /**\n * Callback used when mutation observer detects attribute changes.\n * @param {!Array} records\n * @param {!MutationObserver} self\n */\n\n }, {\n key: '_watchForInert',\n value: function _watchForInert(records, self) {\n var _this = this;\n\n records.forEach(function (record) {\n switch (record.type) {\n case 'childList':\n slice.call(record.addedNodes).forEach(function (node) {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n\n var inertElements = slice.call(node.querySelectorAll('[inert]'));\n\n if (matches.call(node, '[inert]')) {\n inertElements.unshift(node);\n }\n\n inertElements.forEach(function (inertElement) {\n this.setInert(inertElement, true);\n }, _this);\n }, _this);\n break;\n\n case 'attributes':\n if (record.attributeName !== 'inert') {\n return;\n }\n\n var target =\n /** @type {!HTMLElement} */\n record.target;\n var inert = target.hasAttribute('inert');\n\n _this.setInert(target, inert);\n\n break;\n }\n }, this);\n }\n }]);\n\n return InertManager;\n }();\n /**\n * Recursively walk the composed tree from |node|.\n * @param {!Node} node\n * @param {(function (!HTMLElement))=} callback Callback to be called for each element traversed,\n * before descending into child nodes.\n * @param {?ShadowRoot=} shadowRootAncestor The nearest ShadowRoot ancestor, if any.\n */\n\n\n function composedTreeWalk(node, callback, shadowRootAncestor) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n var element =\n /** @type {!HTMLElement} */\n node;\n\n if (callback) {\n callback(element);\n } // Descend into node:\n // If it has a ShadowRoot, ignore all child elements - these will be picked\n // up by the or elements. Descend straight into the\n // ShadowRoot.\n\n\n var shadowRoot =\n /** @type {!HTMLElement} */\n element.shadowRoot;\n\n if (shadowRoot) {\n composedTreeWalk(shadowRoot, callback, shadowRoot);\n return;\n } // If it is a element, descend into distributed elements - these\n // are elements from outside the shadow root which are rendered inside the\n // shadow DOM.\n\n\n if (element.localName == 'content') {\n var content =\n /** @type {!HTMLContentElement} */\n element; // Verifies if ShadowDom v0 is supported.\n\n var distributedNodes = content.getDistributedNodes ? content.getDistributedNodes() : [];\n\n for (var i = 0; i < distributedNodes.length; i++) {\n composedTreeWalk(distributedNodes[i], callback, shadowRootAncestor);\n }\n\n return;\n } // If it is a element, descend into assigned nodes - these\n // are elements from outside the shadow root which are rendered inside the\n // shadow DOM.\n\n\n if (element.localName == 'slot') {\n var slot =\n /** @type {!HTMLSlotElement} */\n element; // Verify if ShadowDom v1 is supported.\n\n var _distributedNodes = slot.assignedNodes ? slot.assignedNodes({\n flatten: true\n }) : [];\n\n for (var _i = 0; _i < _distributedNodes.length; _i++) {\n composedTreeWalk(_distributedNodes[_i], callback, shadowRootAncestor);\n }\n\n return;\n }\n } // If it is neither the parent of a ShadowRoot, a element, a \n // element, nor a element recurse normally.\n\n\n var child = node.firstChild;\n\n while (child != null) {\n composedTreeWalk(child, callback, shadowRootAncestor);\n child = child.nextSibling;\n }\n }\n /**\n * Adds a style element to the node containing the inert specific styles\n * @param {!Node} node\n */\n\n\n function addInertStyle(node) {\n if (node.querySelector('style#inert-style, link#inert-style')) {\n return;\n }\n\n var style = document.createElement('style');\n style.setAttribute('id', 'inert-style');\n style.textContent = '\\n' + '[inert] {\\n' + ' pointer-events: none;\\n' + ' cursor: default;\\n' + '}\\n' + '\\n' + '[inert], [inert] * {\\n' + ' -webkit-user-select: none;\\n' + ' -moz-user-select: none;\\n' + ' -ms-user-select: none;\\n' + ' user-select: none;\\n' + '}\\n';\n node.appendChild(style);\n }\n\n if (!HTMLElement.prototype.hasOwnProperty('inert')) {\n /** @type {!InertManager} */\n var inertManager = new InertManager(document);\n Object.defineProperty(HTMLElement.prototype, 'inert', {\n enumerable: true,\n\n /** @this {!HTMLElement} */\n get: function get() {\n return this.hasAttribute('inert');\n },\n\n /** @this {!HTMLElement} */\n set: function set(inert) {\n inertManager.setInert(this, inert);\n }\n });\n }\n})();"],"sourceRoot":""}