{"version":3,"file":"static/js/main.2fef0c09.js","mappings":"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","sources":["../node_modules/classnames/index.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/eve/eve.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/invariant/browser.js","../node_modules/json2mq/index.js","../node_modules/lodash.debounce/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-burger-menu/lib/BurgerMenu.js","../node_modules/react-burger-menu/lib/components/BurgerIcon.js","../node_modules/react-burger-menu/lib/components/CrossIcon.js","../node_modules/react-burger-menu/lib/helpers/baseStyles.js","../node_modules/react-burger-menu/lib/helpers/dom.js","../node_modules/react-burger-menu/lib/helpers/snapsvgImporter.js","../node_modules/react-burger-menu/lib/helpers/utils.js","../node_modules/react-burger-menu/lib/menuFactory.js","../node_modules/react-burger-menu/lib/menus/bubble.js","../node_modules/react-burger-menu/lib/menus/elastic.js","../node_modules/react-burger-menu/lib/menus/fallDown.js","../node_modules/react-burger-menu/lib/menus/push.js","../node_modules/react-burger-menu/lib/menus/pushRotate.js","../node_modules/react-burger-menu/lib/menus/reveal.js","../node_modules/react-burger-menu/lib/menus/scaleDown.js","../node_modules/react-burger-menu/lib/menus/scaleRotate.js","../node_modules/react-burger-menu/lib/menus/slide.js","../node_modules/react-burger-menu/lib/menus/stack.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/snapsvg-cjs/dist/snap.svg-cjs.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/textfit/textFit.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","Menu.js","Sidebar.js","About.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/tslib/tslib.es6.js","../node_modules/framesync/dist/es/on-next-frame.mjs","../node_modules/framesync/dist/es/index.mjs","../node_modules/framesync/dist/es/create-render-step.mjs","../node_modules/popmotion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/value/use-motion-value.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs","../node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/framer-motion/dist/es/events/use-dom-event.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/events/use-pointer-event.mjs","../node_modules/framer-motion/dist/es/events/utils.mjs","../node_modules/popmotion/dist/es/utils/is-point.mjs","../node_modules/popmotion/dist/es/utils/is-point-3d.mjs","../node_modules/popmotion/dist/es/utils/inc.mjs","../node_modules/popmotion/dist/es/utils/distance.mjs","../node_modules/popmotion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/gestures/PanSession.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/popmotion/dist/es/utils/mix.mjs","../node_modules/popmotion/dist/es/utils/progress.mjs","../node_modules/popmotion/dist/es/utils/clamp.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/render/utils/types.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/popmotion/dist/es/animations/utils/find-spring.mjs","../node_modules/popmotion/dist/es/animations/generators/spring.mjs","../node_modules/style-value-types/dist/es/utils.mjs","../node_modules/style-value-types/dist/es/numbers/index.mjs","../node_modules/style-value-types/dist/es/color/utils.mjs","../node_modules/style-value-types/dist/es/color/rgba.mjs","../node_modules/style-value-types/dist/es/color/hex.mjs","../node_modules/style-value-types/dist/es/numbers/units.mjs","../node_modules/style-value-types/dist/es/color/hsla.mjs","../node_modules/popmotion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/popmotion/dist/es/utils/mix-color.mjs","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/style-value-types/dist/es/color/index.mjs","../node_modules/style-value-types/dist/es/complex/index.mjs","../node_modules/popmotion/dist/es/utils/mix-complex.mjs","../node_modules/popmotion/dist/es/utils/interpolate.mjs","../node_modules/popmotion/dist/es/easing/utils.mjs","../node_modules/popmotion/dist/es/easing/index.mjs","../node_modules/popmotion/dist/es/animations/generators/keyframes.mjs","../node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.mjs","../node_modules/popmotion/dist/es/animations/generators/decay.mjs","../node_modules/popmotion/dist/es/animations/utils/elapsed.mjs","../node_modules/popmotion/dist/es/animations/index.mjs","../node_modules/popmotion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/animation/utils/easing.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/style-value-types/dist/es/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/popmotion/dist/es/animations/inertia.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/use-pan-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/drag/use-drag.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/utils/use-id.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/animation/animate.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/index.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/utils/variants.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/render/utils/animation.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs","../node_modules/framer-motion/dist/es/render/utils/lifecycles.mjs","../node_modules/framer-motion/dist/es/render/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/visual-element.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/visual-element.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/render/dom/features-animation.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/render/dom/features-max.mjs","../node_modules/framer-motion/dist/es/motion/features/use-features.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/utils/use-reduced-motion.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/projection/node/id.mjs","../node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/use-projection.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-minimal.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","../node_modules/framer-motion/dist/es/utils/transform.mjs","../node_modules/framer-motion/dist/es/value/use-combine-values.mjs","../node_modules/framer-motion/dist/es/value/use-on-change.mjs","../node_modules/framer-motion/dist/es/value/use-transform.mjs","../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Prefixer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-cbed451f.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@anatoliygatt/numeric-stepper/src/style.ts","../node_modules/@anatoliygatt/numeric-stepper/src/icons/MinusIcon.tsx","../node_modules/@anatoliygatt/numeric-stepper/src/icons/XIcon.tsx","../node_modules/@anatoliygatt/numeric-stepper/src/icons/PlusIcon.tsx","../node_modules/@anatoliygatt/numeric-stepper/src/NumericStepper.tsx","../node_modules/@anatoliygatt/numeric-stepper/src/hooks/useFirstMountState.ts","../node_modules/@anatoliygatt/numeric-stepper/src/hooks/transforms/useButtonOpacityTransform.ts","../node_modules/@anatoliygatt/numeric-stepper/src/hooks/transforms/useMinusIconColorTransform.ts","../node_modules/@anatoliygatt/numeric-stepper/src/hooks/transforms/usePlusIconColorTransform.ts","../node_modules/@anatoliygatt/numeric-stepper/src/hooks/transforms/useTrackColorTransform.ts","../node_modules/@anatoliygatt/numeric-stepper/src/hooks/transforms/useTrackPositionTransform.ts","../node_modules/@anatoliygatt/numeric-stepper/src/hooks/transforms/useXIconContainerOpacityTransform.ts","Dhikr.js","Pages/SingleCard.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/dom-helpers/esm/camelize.js","../node_modules/react-bootstrap/esm/createWithBsPrefix.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/Alert.js","Pages/Fatiha/FatihaPage.js","../../packages/react-router-dom/index.tsx","App.js","index.js"],"sourcesContent":["/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ┌────────────────────────────────────────────────────────────┐ \\\\\n// │ Eve 0.5.4 - JavaScript Events Library │ \\\\\n// ├────────────────────────────────────────────────────────────┤ \\\\\n// │ Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\\\\n// └────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob) {\n var version = \"0.5.4\",\n has = \"hasOwnProperty\",\n separator = /[\\.\\/]/,\n comaseparator = /\\s*,\\s*/,\n wildcard = \"*\",\n numsort = function (a, b) {\n return a - b;\n },\n current_event,\n stop,\n events = {n: {}},\n firstDefined = function () {\n for (var i = 0, ii = this.length; i < ii; i++) {\n if (typeof this[i] != \"undefined\") {\n return this[i];\n }\n }\n },\n lastDefined = function () {\n var i = this.length;\n while (--i) {\n if (typeof this[i] != \"undefined\") {\n return this[i];\n }\n }\n },\n objtos = Object.prototype.toString,\n Str = String,\n isArray = Array.isArray || function (ar) {\n return ar instanceof Array || objtos.call(ar) == \"[object Array]\";\n },\n /*\\\n * eve\n [ method ]\n\n * Fires event with given `name`, given scope and other parameters.\n\n - name (string) name of the *event*, dot (`.`) or slash (`/`) separated\n - scope (object) context for the event handlers\n - varargs (...) the rest of arguments will be sent to event handlers\n\n = (object) array of returned values from the listeners. Array has two methods `.firstDefined()` and `.lastDefined()` to get first or last not `undefined` value.\n \\*/\n eve = function (name, scope) {\n var oldstop = stop,\n args = Array.prototype.slice.call(arguments, 2),\n listeners = eve.listeners(name),\n z = 0,\n l,\n indexed = [],\n queue = {},\n out = [],\n ce = current_event;\n out.firstDefined = firstDefined;\n out.lastDefined = lastDefined;\n current_event = name;\n stop = 0;\n for (var i = 0, ii = listeners.length; i < ii; i++) if (\"zIndex\" in listeners[i]) {\n indexed.push(listeners[i].zIndex);\n if (listeners[i].zIndex < 0) {\n queue[listeners[i].zIndex] = listeners[i];\n }\n }\n indexed.sort(numsort);\n while (indexed[z] < 0) {\n l = queue[indexed[z++]];\n out.push(l.apply(scope, args));\n if (stop) {\n stop = oldstop;\n return out;\n }\n }\n for (i = 0; i < ii; i++) {\n l = listeners[i];\n if (\"zIndex\" in l) {\n if (l.zIndex == indexed[z]) {\n out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n do {\n z++;\n l = queue[indexed[z]];\n l && out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n } while (l)\n } else {\n queue[l.zIndex] = l;\n }\n } else {\n out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n }\n }\n stop = oldstop;\n current_event = ce;\n return out;\n };\n // Undocumented. Debug only.\n eve._events = events;\n /*\\\n * eve.listeners\n [ method ]\n\n * Internal method which gives you array of all event handlers that will be triggered by the given `name`.\n\n - name (string) name of the event, dot (`.`) or slash (`/`) separated\n\n = (array) array of event handlers\n \\*/\n eve.listeners = function (name) {\n var names = isArray(name) ? name : name.split(separator),\n e = events,\n item,\n items,\n k,\n i,\n ii,\n j,\n jj,\n nes,\n es = [e],\n out = [];\n for (i = 0, ii = names.length; i < ii; i++) {\n nes = [];\n for (j = 0, jj = es.length; j < jj; j++) {\n e = es[j].n;\n items = [e[names[i]], e[wildcard]];\n k = 2;\n while (k--) {\n item = items[k];\n if (item) {\n nes.push(item);\n out = out.concat(item.f || []);\n }\n }\n }\n es = nes;\n }\n return out;\n };\n /*\\\n * eve.separator\n [ method ]\n\n * If for some reasons you don’t like default separators (`.` or `/`) you can specify yours\n * here. Be aware that if you pass a string longer than one character it will be treated as\n * a list of characters.\n\n - separator (string) new separator. Empty string resets to default: `.` or `/`.\n \\*/\n eve.separator = function (sep) {\n if (sep) {\n sep = Str(sep).replace(/(?=[\\.\\^\\]\\[\\-])/g, \"\\\\\");\n sep = \"[\" + sep + \"]\";\n separator = new RegExp(sep);\n } else {\n separator = /[\\.\\/]/;\n }\n };\n /*\\\n * eve.on\n [ method ]\n **\n * Binds given event handler with a given name. You can use wildcards “`*`” for the names:\n | eve.on(\"*.under.*\", f);\n | eve(\"mouse.under.floor\"); // triggers f\n * Use @eve to trigger the listener.\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n **\n - name (array) if you don’t want to use separators, you can use array of strings\n - f (function) event handler function\n **\n = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment.\n > Example:\n | eve.on(\"mouse\", eatIt)(2);\n | eve.on(\"mouse\", scream);\n | eve.on(\"mouse\", catchIt)(1);\n * This will ensure that `catchIt` function will be called before `eatIt`.\n *\n * If you want to put your handler before non-indexed handlers, specify a negative value.\n * Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in case”.\n \\*/\n eve.on = function (name, f) {\n if (typeof f != \"function\") {\n return function () {};\n }\n var names = isArray(name) ? isArray(name[0]) ? name : [name] : Str(name).split(comaseparator);\n for (var i = 0, ii = names.length; i < ii; i++) {\n (function (name) {\n var names = isArray(name) ? name : Str(name).split(separator),\n e = events,\n exist;\n for (var i = 0, ii = names.length; i < ii; i++) {\n e = e.n;\n e = e.hasOwnProperty(names[i]) && e[names[i]] || (e[names[i]] = {n: {}});\n }\n e.f = e.f || [];\n for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) {\n exist = true;\n break;\n }\n !exist && e.f.push(f);\n }(names[i]));\n }\n return function (zIndex) {\n if (+zIndex == +zIndex) {\n f.zIndex = +zIndex;\n }\n };\n };\n /*\\\n * eve.f\n [ method ]\n **\n * Returns function that will fire given event with optional arguments.\n * Arguments that will be passed to the result function will be also\n * concated to the list of final arguments.\n | el.onclick = eve.f(\"click\", 1, 2);\n | eve.on(\"click\", function (a, b, c) {\n | console.log(a, b, c); // 1, 2, [event object]\n | });\n - event (string) event name\n - varargs (…) and any other arguments\n = (function) possible event handler function\n \\*/\n eve.f = function (event) {\n var attrs = [].slice.call(arguments, 1);\n return function () {\n eve.apply(null, [event, null].concat(attrs).concat([].slice.call(arguments, 0)));\n };\n };\n /*\\\n * eve.stop\n [ method ]\n **\n * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing.\n \\*/\n eve.stop = function () {\n stop = 1;\n };\n /*\\\n * eve.nt\n [ method ]\n **\n * Could be used inside event handler to figure out actual name of the event.\n **\n - subname (string) #optional subname of the event\n **\n = (string) name of the event, if `subname` is not specified\n * or\n = (boolean) `true`, if current event’s name contains `subname`\n \\*/\n eve.nt = function (subname) {\n var cur = isArray(current_event) ? current_event.join(\".\") : current_event;\n if (subname) {\n return new RegExp(\"(?:\\\\.|\\\\/|^)\" + subname + \"(?:\\\\.|\\\\/|$)\").test(cur);\n }\n return cur;\n };\n /*\\\n * eve.nts\n [ method ]\n **\n * Could be used inside event handler to figure out actual name of the event.\n **\n **\n = (array) names of the event\n \\*/\n eve.nts = function () {\n return isArray(current_event) ? current_event : current_event.split(separator);\n };\n /*\\\n * eve.off\n [ method ]\n **\n * Removes given function from the list of event listeners assigned to given name.\n * If no arguments specified all the events will be cleared.\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n \\*/\n /*\\\n * eve.unbind\n [ method ]\n **\n * See @eve.off\n \\*/\n eve.off = eve.unbind = function (name, f) {\n if (!name) {\n eve._events = events = {n: {}};\n return;\n }\n var names = isArray(name) ? isArray(name[0]) ? name : [name] : Str(name).split(comaseparator);\n if (names.length > 1) {\n for (var i = 0, ii = names.length; i < ii; i++) {\n eve.off(names[i], f);\n }\n return;\n }\n names = isArray(name) ? name : Str(name).split(separator);\n var e,\n key,\n splice,\n i, ii, j, jj,\n cur = [events],\n inodes = [];\n for (i = 0, ii = names.length; i < ii; i++) {\n for (j = 0; j < cur.length; j += splice.length - 2) {\n splice = [j, 1];\n e = cur[j].n;\n if (names[i] != wildcard) {\n if (e[names[i]]) {\n splice.push(e[names[i]]);\n inodes.unshift({\n n: e,\n name: names[i]\n });\n }\n } else {\n for (key in e) if (e[has](key)) {\n splice.push(e[key]);\n inodes.unshift({\n n: e,\n name: key\n });\n }\n }\n cur.splice.apply(cur, splice);\n }\n }\n for (i = 0, ii = cur.length; i < ii; i++) {\n e = cur[i];\n while (e.n) {\n if (f) {\n if (e.f) {\n for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) {\n e.f.splice(j, 1);\n break;\n }\n !e.f.length && delete e.f;\n }\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n var funcs = e.n[key].f;\n for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) {\n funcs.splice(j, 1);\n break;\n }\n !funcs.length && delete e.n[key].f;\n }\n } else {\n delete e.f;\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n delete e.n[key].f;\n }\n }\n e = e.n;\n }\n }\n // prune inner nodes in path\n prune: for (i = 0, ii = inodes.length; i < ii; i++) {\n e = inodes[i];\n for (key in e.n[e.name].f) {\n // not empty (has listeners)\n continue prune;\n }\n for (key in e.n[e.name].n) {\n // not empty (has children)\n continue prune;\n }\n // is empty\n delete e.n[e.name];\n }\n };\n /*\\\n * eve.once\n [ method ]\n **\n * Binds given event handler with a given name to only run once then unbind itself.\n | eve.once(\"login\", f);\n | eve(\"login\"); // triggers f\n | eve(\"login\"); // no listeners\n * Use @eve to trigger the listener.\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n **\n = (function) same return function as @eve.on\n \\*/\n eve.once = function (name, f) {\n var f2 = function () {\n eve.off(name, f2);\n return f.apply(this, arguments);\n };\n return eve.on(name, f2);\n };\n /*\\\n * eve.version\n [ property (string) ]\n **\n * Current version of the library.\n \\*/\n eve.version = version;\n eve.toString = function () {\n return \"You are running Eve \" + version;\n };\n glob.eve = eve;\n typeof module != \"undefined\" && module.exports ? module.exports = eve : typeof define === \"function\" && define.amd ? define(\"eve\", [], function () { return eve; }) : glob.eve = eve;\n})(typeof window != \"undefined\" ? window : this);\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = {\n slide: require('./menus/slide'),\n stack: require('./menus/stack'),\n elastic: require('./menus/elastic'),\n bubble: require('./menus/bubble'),\n push: require('./menus/push'),\n pushRotate: require('./menus/pushRotate'),\n scaleDown: require('./menus/scaleDown'),\n scaleRotate: require('./menus/scaleRotate'),\n fallDown: require('./menus/fallDown'),\n reveal: require('./menus/reveal')\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar BurgerIcon = (function (_Component) {\n _inherits(BurgerIcon, _Component);\n\n function BurgerIcon(props) {\n _classCallCheck(this, BurgerIcon);\n\n _get(Object.getPrototypeOf(BurgerIcon.prototype), 'constructor', this).call(this, props);\n this.state = {\n hover: false\n };\n }\n\n _createClass(BurgerIcon, [{\n key: 'getLineStyle',\n value: function getLineStyle(index) {\n return _extends({\n position: 'absolute',\n height: '20%',\n left: 0,\n right: 0,\n top: 20 * (index * 2) + '%',\n opacity: this.state.hover ? 0.6 : 1\n }, this.state.hover && this.props.styles.bmBurgerBarsHover);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this = this;\n\n var icon = undefined;\n var buttonStyle = {\n position: 'absolute',\n left: 0,\n top: 0,\n zIndex: 1,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n border: 'none',\n fontSize: 0,\n background: 'transparent',\n cursor: 'pointer'\n };\n\n if (this.props.customIcon) {\n var extraProps = {\n className: ('bm-icon ' + (this.props.customIcon.props.className || '')).trim(),\n style: _extends({ width: '100%', height: '100%' }, this.props.styles.bmIcon)\n };\n icon = _react2['default'].cloneElement(this.props.customIcon, extraProps);\n } else {\n icon = _react2['default'].createElement(\n 'span',\n null,\n [0, 1, 2].map(function (bar) {\n return _react2['default'].createElement('span', {\n key: bar,\n className: ('bm-burger-bars ' + _this.props.barClassName + ' ' + (_this.state.hover ? 'bm-burger-bars-hover' : '')).trim(),\n style: _extends({}, _this.getLineStyle(bar), _this.props.styles.bmBurgerBars)\n });\n })\n );\n }\n\n return _react2['default'].createElement(\n 'div',\n {\n className: ('bm-burger-button ' + this.props.className).trim(),\n style: _extends({ zIndex: 1000 }, this.props.styles.bmBurgerButton)\n },\n _react2['default'].createElement(\n 'button',\n {\n id: 'react-burger-menu-btn',\n onClick: this.props.onClick,\n onMouseOver: function () {\n _this.setState({ hover: true });\n if (_this.props.onIconHoverChange) {\n _this.props.onIconHoverChange({ isMouseIn: true });\n }\n },\n onMouseOut: function () {\n _this.setState({ hover: false });\n if (_this.props.onIconHoverChange) {\n _this.props.onIconHoverChange({ isMouseIn: false });\n }\n },\n style: buttonStyle\n },\n 'Open Menu'\n ),\n icon\n );\n }\n }]);\n\n return BurgerIcon;\n})(_react.Component);\n\nexports['default'] = BurgerIcon;\n\nBurgerIcon.propTypes = {\n barClassName: _propTypes2['default'].string,\n customIcon: _propTypes2['default'].element,\n styles: _propTypes2['default'].object\n};\n\nBurgerIcon.defaultProps = {\n barClassName: '',\n className: '',\n styles: {}\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar CrossIcon = (function (_Component) {\n _inherits(CrossIcon, _Component);\n\n function CrossIcon() {\n _classCallCheck(this, CrossIcon);\n\n _get(Object.getPrototypeOf(CrossIcon.prototype), 'constructor', this).apply(this, arguments);\n }\n\n _createClass(CrossIcon, [{\n key: 'getCrossStyle',\n value: function getCrossStyle(type) {\n return {\n position: 'absolute',\n width: 3,\n height: 14,\n transform: type === 'before' ? 'rotate(45deg)' : 'rotate(-45deg)'\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _this = this;\n\n var icon;\n var buttonWrapperStyle = {\n position: 'absolute',\n width: 24,\n height: 24,\n right: 8,\n top: 8\n };\n var buttonStyle = {\n position: 'absolute',\n left: 0,\n top: 0,\n zIndex: 1,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n border: 'none',\n fontSize: 0,\n background: 'transparent',\n cursor: 'pointer'\n };\n\n if (this.props.customIcon) {\n var extraProps = {\n className: ('bm-cross ' + (this.props.customIcon.props.className || '')).trim(),\n style: _extends({ width: '100%', height: '100%' }, this.props.styles.bmCross)\n };\n icon = _react2['default'].cloneElement(this.props.customIcon, extraProps);\n } else {\n icon = _react2['default'].createElement(\n 'span',\n { style: { position: 'absolute', top: '6px', right: '14px' } },\n ['before', 'after'].map(function (type, i) {\n return _react2['default'].createElement('span', {\n key: i,\n className: ('bm-cross ' + _this.props.crossClassName).trim(),\n style: _extends({}, _this.getCrossStyle(type), _this.props.styles.bmCross)\n });\n })\n );\n }\n\n return _react2['default'].createElement(\n 'div',\n {\n className: ('bm-cross-button ' + this.props.className).trim(),\n style: _extends({}, buttonWrapperStyle, this.props.styles.bmCrossButton)\n },\n _react2['default'].createElement(\n 'button',\n {\n id: 'react-burger-cross-btn',\n onClick: this.props.onClick,\n style: buttonStyle,\n tabIndex: this.props.isOpen ? 0 : -1\n },\n 'Close Menu'\n ),\n icon\n );\n }\n }]);\n\n return CrossIcon;\n})(_react.Component);\n\nexports['default'] = CrossIcon;\n\nCrossIcon.propTypes = {\n crossClassName: _propTypes2['default'].string,\n customIcon: _propTypes2['default'].element,\n isOpen: _propTypes2['default'].bool,\n styles: _propTypes2['default'].object\n};\n\nCrossIcon.defaultProps = {\n crossClassName: '',\n className: '',\n styles: {},\n isOpen: false\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar styles = {\n overlay: function overlay(isOpen) {\n return {\n position: 'fixed',\n zIndex: 1000,\n width: '100%',\n height: '100%',\n background: 'rgba(0, 0, 0, 0.3)',\n opacity: isOpen ? 1 : 0,\n MozTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n MsTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n OTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n WebkitTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n transform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n transition: isOpen ? 'opacity 0.3s' : 'opacity 0.3s, transform 0s 0.3s'\n };\n },\n\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n position: 'fixed',\n right: right ? 0 : 'inherit',\n zIndex: 1100,\n width: width,\n height: '100%',\n MozTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transition: 'all 0.5s'\n };\n },\n\n menu: function menu() {\n return {\n height: '100%',\n boxSizing: 'border-box',\n overflow: 'auto'\n };\n },\n\n itemList: function itemList() {\n return {\n height: '100%'\n };\n },\n\n item: function item() {\n return {\n display: 'block'\n };\n }\n};\n\nexports['default'] = styles;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports.focusOnFirstMenuItem = focusOnFirstMenuItem;\nexports.focusOnLastMenuItem = focusOnLastMenuItem;\nexports.focusOnCrossButton = focusOnCrossButton;\nexports.focusOnMenuButton = focusOnMenuButton;\nexports.focusOnMenuItem = focusOnMenuItem;\nexports.focusOnNextMenuItem = focusOnNextMenuItem;\nexports.focusOnPreviousMenuItem = focusOnPreviousMenuItem;\n\nfunction focusOnFirstMenuItem() {\n var firstItem = Array.from(document.getElementsByClassName('bm-item')).shift();\n if (firstItem) {\n firstItem.focus();\n }\n}\n\nfunction focusOnLastMenuItem() {\n var lastItem = Array.from(document.getElementsByClassName('bm-item')).pop();\n if (lastItem) {\n lastItem.focus();\n }\n}\n\nfunction focusOnCrossButton() {\n var crossButton = document.getElementById('react-burger-cross-btn');\n if (crossButton) {\n crossButton.focus();\n }\n}\n\nfunction focusOnMenuButton() {\n var menuButton = document.getElementById('react-burger-menu-btn');\n if (menuButton) {\n menuButton.focus();\n }\n}\n\nfunction focusOnMenuItem(siblingType) {\n if (document.activeElement.className.includes('bm-item')) {\n var sibling = document.activeElement[siblingType];\n if (sibling) {\n sibling.focus();\n } else {\n focusOnCrossButton();\n }\n } else {\n if (siblingType === 'previousElementSibling') {\n focusOnLastMenuItem();\n } else {\n focusOnFirstMenuItem();\n }\n }\n}\n\nfunction focusOnNextMenuItem() {\n focusOnMenuItem('nextElementSibling');\n}\n\nfunction focusOnPreviousMenuItem() {\n focusOnMenuItem('previousElementSibling');\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nexports['default'] = function () {\n var Snap = undefined;\n try {\n Snap = require('snapsvg-cjs');\n } finally {\n return Snap;\n }\n};\n\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar pxToNum = function pxToNum(val) {\n return parseInt(val.slice(0, -2), 10);\n};\nexports.pxToNum = pxToNum;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _helpersBaseStyles = require('./helpers/baseStyles');\n\nvar _helpersBaseStyles2 = _interopRequireDefault(_helpersBaseStyles);\n\nvar _helpersDom = require('./helpers/dom');\n\nvar _componentsBurgerIcon = require('./components/BurgerIcon');\n\nvar _componentsBurgerIcon2 = _interopRequireDefault(_componentsBurgerIcon);\n\nvar _componentsCrossIcon = require('./components/CrossIcon');\n\nvar _componentsCrossIcon2 = _interopRequireDefault(_componentsCrossIcon);\n\nexports['default'] = function (styles) {\n if (!styles) {\n throw new Error('No styles supplied');\n }\n\n var ARROW_DOWN = 'ArrowDown';\n var ARROW_UP = 'ArrowUp';\n var ESCAPE = 'Escape';\n var SPACE = ' ';\n var HOME = 'Home';\n var END = 'End';\n\n function usePrevious(value) {\n var ref = _react2['default'].useRef(value);\n _react2['default'].useEffect(function () {\n ref.current = value;\n });\n return ref.current;\n }\n\n var Menu = function Menu(props) {\n var _React$useState = _react2['default'].useState(false);\n\n var _React$useState2 = _slicedToArray(_React$useState, 2);\n\n var isOpen = _React$useState2[0];\n var setIsOpen = _React$useState2[1];\n\n var timeoutId = _react2['default'].useRef();\n var toggleOptions = _react2['default'].useRef({});\n var prevIsOpenProp = usePrevious(props.isOpen);\n\n _react2['default'].useEffect(function () {\n if (props.isOpen) {\n toggleMenu({ isOpen: true, noStateChange: true });\n }\n\n return function cleanup() {\n applyWrapperStyles(false);\n clearCurrentTimeout();\n };\n }, []);\n\n _react2['default'].useEffect(function () {\n var wasToggled = typeof props.isOpen !== 'undefined' && props.isOpen !== isOpen && props.isOpen !== prevIsOpenProp;\n\n if (wasToggled) {\n toggleMenu();\n // Toggling changes SVG animation requirements, so defer these until next update\n return;\n }\n\n if (styles.svg) {\n (function () {\n var morphShape = document.getElementById('bm-morph-shape');\n var path = styles.svg.lib(morphShape).select('path');\n\n if (isOpen) {\n // Animate SVG path\n styles.svg.animate(path);\n } else {\n // Reset path (timeout ensures animation happens off screen)\n setTimeout(function () {\n path.attr('d', styles.svg.pathInitial);\n }, 300);\n }\n })();\n }\n });\n\n _react2['default'].useEffect(function () {\n var _toggleOptions$current = toggleOptions.current;\n var noStateChange = _toggleOptions$current.noStateChange;\n var focusOnLastItem = _toggleOptions$current.focusOnLastItem;\n\n if (!noStateChange) {\n props.onStateChange({ isOpen: isOpen });\n }\n\n if (!props.disableAutoFocus) {\n // For accessibility reasons, ensures that when we toggle open,\n // we focus the first or last menu item according to given parameter\n if (isOpen) {\n focusOnLastItem ? (0, _helpersDom.focusOnLastMenuItem)() : (0, _helpersDom.focusOnFirstMenuItem)();\n } else {\n if (document.activeElement) {\n document.activeElement.blur();\n } else {\n document.body.blur(); // Needed for IE\n }\n }\n }\n\n // Timeout ensures wrappers are cleared after animation finishes\n clearCurrentTimeout();\n timeoutId.current = setTimeout(function () {\n timeoutId.current = null;\n if (!isOpen) {\n applyWrapperStyles(false);\n }\n }, 500);\n\n // Bind keydown handlers (or custom function if supplied)\n var defaultOnKeyDown = isOpen ? onKeyDownOpen : onKeyDownClosed;\n var onKeyDown = props.customOnKeyDown || defaultOnKeyDown;\n window.addEventListener('keydown', onKeyDown);\n\n return function cleanup() {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [isOpen]);\n\n function toggleMenu() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n toggleOptions.current = options;\n\n applyWrapperStyles();\n\n // Ensures wrapper styles are applied before the menu is toggled\n setTimeout(function () {\n setIsOpen(function (open) {\n return typeof options.isOpen !== 'undefined' ? options.isOpen : !open;\n });\n });\n }\n\n function open() {\n if (typeof props.onOpen === 'function') {\n props.onOpen();\n } else {\n toggleMenu();\n }\n }\n\n function close() {\n if (typeof props.onClose === 'function') {\n props.onClose();\n } else {\n toggleMenu();\n }\n }\n\n function getStyle(style, index) {\n var width = props.width;\n var right = props.right;\n\n var formattedWidth = typeof width !== 'string' ? width + 'px' : width;\n return style(isOpen, formattedWidth, right, index);\n }\n\n // Builds styles incrementally for a given element\n function getStyles(el, index, inline) {\n var propName = 'bm' + el.replace(el.charAt(0), el.charAt(0).toUpperCase());\n\n // Set base styles\n var output = _helpersBaseStyles2['default'][el] ? getStyle(_helpersBaseStyles2['default'][el]) : {};\n\n // Add animation-specific styles\n if (styles[el]) {\n output = _extends({}, output, getStyle(styles[el], index + 1));\n }\n\n // Add custom styles\n if (props.styles[propName]) {\n output = _extends({}, output, props.styles[propName]);\n }\n\n // Add element inline styles\n if (inline) {\n output = _extends({}, output, inline);\n }\n\n // Remove transition if required\n // (useful if rendering open initially)\n if (props.noTransition) {\n delete output.transition;\n }\n\n return output;\n }\n\n // Sets or unsets styles on DOM elements outside the menu component\n // This is necessary for correct page interaction with some of the menus\n // Throws and returns if the required external elements don't exist,\n // which means any external page animations won't be applied\n function handleExternalWrapper(id, wrapperStyles, set) {\n var wrapper = document.getElementById(id);\n\n if (!wrapper) {\n console.error(\"Element with ID '\" + id + \"' not found\");\n return;\n }\n\n var builtStyles = getStyle(wrapperStyles);\n\n for (var prop in builtStyles) {\n if (builtStyles.hasOwnProperty(prop)) {\n wrapper.style[prop] = set ? builtStyles[prop] : '';\n }\n }\n\n // Prevent any horizontal scroll\n // Only set overflow-x as an inline style if htmlClassName or\n // bodyClassName is not passed in. Otherwise, it is up to the caller to\n // decide if they want to set the overflow style in CSS using the custom\n // class names\n var applyOverflow = function applyOverflow(el) {\n return el.style['overflow-x'] = set ? 'hidden' : '';\n };\n if (!props.htmlClassName) {\n applyOverflow(document.querySelector('html'));\n }\n if (!props.bodyClassName) {\n applyOverflow(document.querySelector('body'));\n }\n }\n\n // Applies component-specific styles to external wrapper elements\n function applyWrapperStyles() {\n var set = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\n var applyClass = function applyClass(el, className) {\n return el.classList[set ? 'add' : 'remove'](className);\n };\n\n if (props.htmlClassName) {\n applyClass(document.querySelector('html'), props.htmlClassName);\n }\n if (props.bodyClassName) {\n applyClass(document.querySelector('body'), props.bodyClassName);\n }\n\n if (styles.pageWrap && props.pageWrapId) {\n handleExternalWrapper(props.pageWrapId, styles.pageWrap, set);\n }\n\n if (styles.outerContainer && props.outerContainerId) {\n handleExternalWrapper(props.outerContainerId, styles.outerContainer, set);\n }\n\n var menuWrap = document.querySelector('.bm-menu-wrap');\n if (menuWrap) {\n if (set) {\n menuWrap.removeAttribute('hidden');\n } else {\n menuWrap.setAttribute('hidden', true);\n }\n }\n }\n\n // Avoids potentially attempting to update an unmounted component\n function clearCurrentTimeout() {\n if (timeoutId.current) {\n clearTimeout(timeoutId.current);\n }\n }\n\n function onKeyDownOpen(e) {\n e = e || window.event;\n switch (e.key) {\n case ESCAPE:\n // Close on ESC, unless disabled\n if (!props.disableCloseOnEsc) {\n close();\n (0, _helpersDom.focusOnMenuButton)();\n }\n break;\n case ARROW_DOWN:\n (0, _helpersDom.focusOnNextMenuItem)();\n break;\n case ARROW_UP:\n (0, _helpersDom.focusOnPreviousMenuItem)();\n break;\n case HOME:\n (0, _helpersDom.focusOnFirstMenuItem)();\n break;\n case END:\n (0, _helpersDom.focusOnLastMenuItem)();\n break;\n }\n }\n\n function onKeyDownClosed(e) {\n e = e || window.event;\n // Key downs came from menu button\n if (e.target === document.getElementById('react-burger-menu-btn')) {\n switch (e.key) {\n case ARROW_DOWN:\n case SPACE:\n // If down arrow, space or enter, open menu and focus on first menuitem\n toggleMenu();\n break;\n case ARROW_UP:\n // If arrow up, open menu and focus on last menuitem\n toggleMenu({ focusOnLastItem: true });\n break;\n }\n }\n }\n\n function handleOverlayClick() {\n if (props.disableOverlayClick === true || typeof props.disableOverlayClick === 'function' && props.disableOverlayClick()) {\n return;\n } else {\n close();\n }\n }\n\n return _react2['default'].createElement(\n 'div',\n null,\n !props.noOverlay && _react2['default'].createElement('div', {\n className: ('bm-overlay ' + props.overlayClassName).trim(),\n onClick: handleOverlayClick,\n style: getStyles('overlay')\n }),\n props.customBurgerIcon !== false && _react2['default'].createElement(\n 'div',\n { style: getStyles('burgerIcon') },\n _react2['default'].createElement(_componentsBurgerIcon2['default'], {\n onClick: open,\n styles: props.styles,\n customIcon: props.customBurgerIcon,\n className: props.burgerButtonClassName,\n barClassName: props.burgerBarClassName,\n onIconStateChange: props.onIconStateChange\n })\n ),\n _react2['default'].createElement(\n 'div',\n {\n id: props.id,\n className: ('bm-menu-wrap ' + props.className).trim(),\n style: getStyles('menuWrap'),\n 'aria-hidden': !isOpen\n },\n styles.svg && _react2['default'].createElement(\n 'div',\n {\n id: 'bm-morph-shape',\n className: ('bm-morph-shape ' + props.morphShapeClassName).trim(),\n style: getStyles('morphShape')\n },\n _react2['default'].createElement(\n 'svg',\n {\n width: '100%',\n height: '100%',\n viewBox: '0 0 100 800',\n preserveAspectRatio: 'none'\n },\n _react2['default'].createElement('path', { d: styles.svg.pathInitial })\n )\n ),\n _react2['default'].createElement(\n 'div',\n {\n className: ('bm-menu ' + props.menuClassName).trim(),\n style: getStyles('menu')\n },\n _react2['default'].createElement(props.itemListElement, {\n className: ('bm-item-list ' + props.itemListClassName).trim(),\n style: getStyles('itemList')\n }, _react2['default'].Children.map(props.children, function (item, index) {\n if (item) {\n var classList = ['bm-item', props.itemClassName, item.props.className].filter(function (className) {\n return !!className;\n }).join(' ');\n var extraProps = {\n key: index,\n className: classList,\n style: getStyles('item', index, item.props.style),\n tabIndex: isOpen ? 0 : -1\n };\n return _react2['default'].cloneElement(item, extraProps);\n }\n }))\n ),\n props.customCrossIcon !== false && _react2['default'].createElement(\n 'div',\n { style: getStyles('closeButton') },\n _react2['default'].createElement(_componentsCrossIcon2['default'], {\n onClick: close,\n styles: props.styles,\n customIcon: props.customCrossIcon,\n className: props.crossButtonClassName,\n crossClassName: props.crossClassName,\n isOpen: isOpen\n })\n )\n )\n );\n };\n\n Menu.propTypes = {\n bodyClassName: _propTypes2['default'].string,\n burgerBarClassName: _propTypes2['default'].string,\n burgerButtonClassName: _propTypes2['default'].string,\n className: _propTypes2['default'].string,\n crossButtonClassName: _propTypes2['default'].string,\n crossClassName: _propTypes2['default'].string,\n customBurgerIcon: _propTypes2['default'].oneOfType([_propTypes2['default'].element, _propTypes2['default'].oneOf([false])]),\n customCrossIcon: _propTypes2['default'].oneOfType([_propTypes2['default'].element, _propTypes2['default'].oneOf([false])]),\n customOnKeyDown: _propTypes2['default'].func,\n disableAutoFocus: _propTypes2['default'].bool,\n disableCloseOnEsc: _propTypes2['default'].bool,\n disableOverlayClick: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].func]),\n htmlClassName: _propTypes2['default'].string,\n id: _propTypes2['default'].string,\n isOpen: _propTypes2['default'].bool,\n itemClassName: _propTypes2['default'].string,\n itemListClassName: _propTypes2['default'].string,\n itemListElement: _propTypes2['default'].oneOf(['div', 'nav']),\n menuClassName: _propTypes2['default'].string,\n morphShapeClassName: _propTypes2['default'].string,\n noOverlay: _propTypes2['default'].bool,\n noTransition: _propTypes2['default'].bool,\n onClose: _propTypes2['default'].func,\n onIconHoverChange: _propTypes2['default'].func,\n onOpen: _propTypes2['default'].func,\n onStateChange: _propTypes2['default'].func,\n outerContainerId: styles && styles.outerContainer ? _propTypes2['default'].string.isRequired : _propTypes2['default'].string,\n overlayClassName: _propTypes2['default'].string,\n pageWrapId: styles && styles.pageWrap ? _propTypes2['default'].string.isRequired : _propTypes2['default'].string,\n right: _propTypes2['default'].bool,\n styles: _propTypes2['default'].object,\n width: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].string])\n };\n\n Menu.defaultProps = {\n bodyClassName: '',\n burgerBarClassName: '',\n burgerButtonClassName: '',\n className: '',\n crossButtonClassName: '',\n crossClassName: '',\n disableAutoFocus: false,\n disableCloseOnEsc: false,\n htmlClassName: '',\n id: '',\n itemClassName: '',\n itemListClassName: '',\n menuClassName: '',\n morphShapeClassName: '',\n noOverlay: false,\n noTransition: false,\n onStateChange: function onStateChange() {},\n outerContainerId: '',\n overlayClassName: '',\n pageWrapId: '',\n styles: {},\n width: 300,\n onIconHoverChange: function onIconHoverChange() {},\n itemListElement: 'nav'\n };\n\n return Menu;\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersSnapsvgImporter = require('../helpers/snapsvgImporter');\n\nvar _helpersSnapsvgImporter2 = _interopRequireDefault(_helpersSnapsvgImporter);\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar _helpersUtils = require('../helpers/utils');\n\nvar BUBBLE_WIDTH = 140;\n\nvar styles = {\n svg: {\n lib: _helpersSnapsvgImporter2['default'],\n pathInitial: 'M-7.312,0H0c0,0,0,113.839,0,400c0,264.506,0,400,0,400h-7.312V0z',\n pathOpen: 'M-7.312,0H15c0,0,66,113.339,66,399.5C81,664.006,15,800,15,800H-7.312V0z;M-7.312,0H100c0,0,0,113.839,0,400c0,264.506,0,400,0,400H-7.312V0z',\n animate: function animate(path) {\n var pos = 0;\n var steps = this.pathOpen.split(';');\n var stepsTotal = steps.length;\n var mina = window.mina;\n\n var nextStep = function nextStep() {\n if (pos > stepsTotal - 1) return;\n\n path.animate({ path: steps[pos] }, pos === 0 ? 400 : 500, pos === 0 ? mina.easein : mina.elastic, function () {\n nextStep();\n });\n\n pos++;\n };\n\n nextStep();\n }\n },\n\n morphShape: function morphShape(isOpen, width, right) {\n return {\n position: 'absolute',\n width: '100%',\n height: '100%',\n right: right ? 'inherit' : 0,\n left: right ? 0 : 'inherit',\n MozTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n MsTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n OTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n WebkitTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n transform: right ? 'rotateY(180deg)' : 'rotateY(0deg)'\n };\n },\n\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transition: isOpen ? 'transform 0.4s 0s' : 'transform 0.4s'\n };\n },\n\n menu: function menu(isOpen, width, right) {\n var finalWidth = (0, _helpersUtils.pxToNum)(width) - BUBBLE_WIDTH;\n return {\n position: 'fixed',\n MozTransform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transition: isOpen ? 'opacity 0.1s 0.4s cubic-bezier(.17, .67, .1, 1.27), transform 0.1s 0.4s cubic-bezier(.17, .67, .1, 1.27)' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',\n opacity: isOpen ? 1 : 0\n };\n },\n\n item: function item(isOpen, width, right, nthChild) {\n var finalWidth = (0, _helpersUtils.pxToNum)(width) - BUBBLE_WIDTH;\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transition: isOpen ? 'opacity 0.3s 0.4s, transform 0.3s 0.4s' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',\n opacity: isOpen ? 1 : 0\n };\n },\n\n closeButton: function closeButton(isOpen, width, right) {\n var finalWidth = (0, _helpersUtils.pxToNum)(width) - BUBBLE_WIDTH;\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + finalWidth + ', 0, 0)' : 'translate3d(-' + finalWidth + ', 0, 0)',\n transition: isOpen ? 'opacity 0.3s 0.4s cubic-bezier(.17, .67, .1, 1.27), transform 0.3s 0.4s cubic-bezier(.17, .67, .1, 1.27)' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',\n opacity: isOpen ? 1 : 0\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersSnapsvgImporter = require('../helpers/snapsvgImporter');\n\nvar _helpersSnapsvgImporter2 = _interopRequireDefault(_helpersSnapsvgImporter);\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar _helpersUtils = require('../helpers/utils');\n\nvar MORPH_SHAPE_WIDTH = 120;\n\nvar styles = {\n svg: {\n lib: _helpersSnapsvgImporter2['default'],\n pathInitial: 'M-1,0h101c0,0-97.833,153.603-97.833,396.167C2.167,627.579,100,800,100,800H-1V0z',\n pathOpen: 'M-1,0h101c0,0,0-1,0,395c0,404,0,405,0,405H-1V0z',\n animate: function animate(path) {\n path.animate({ path: this.pathOpen }, 400, window.mina.easeinout);\n }\n },\n\n morphShape: function morphShape(isOpen, width, right) {\n return {\n position: 'absolute',\n width: MORPH_SHAPE_WIDTH,\n height: '100%',\n right: right ? 'inherit' : 0,\n left: right ? 0 : 'inherit',\n MozTransform: right ? 'rotateY(180deg)' : '',\n MsTransform: right ? 'rotateY(180deg)' : '',\n OTransform: right ? 'rotateY(180deg)' : '',\n WebkitTransform: right ? 'rotateY(180deg)' : '',\n transform: right ? 'rotateY(180deg)' : ''\n };\n },\n\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transition: 'all 0.3s'\n };\n },\n\n menu: function menu(isOpen, width, right) {\n return {\n position: 'fixed',\n right: right ? 0 : 'inherit',\n width: (0, _helpersUtils.pxToNum)(width) - MORPH_SHAPE_WIDTH,\n whiteSpace: 'nowrap',\n boxSizing: 'border-box',\n overflow: 'visible'\n };\n },\n\n itemList: function itemList(isOpen, width, right) {\n if (right) {\n return {\n position: 'relative',\n left: '-110px',\n width: '170%',\n overflow: 'auto'\n };\n }\n },\n\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n transition: isOpen ? 'all 0.3s' : 'all 0.3s 0.1s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n menuWrap: function menuWrap(isOpen) {\n return {\n MozTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n MsTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n OTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n WebkitTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n transform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n transition: 'all 0.5s ease-in-out'\n };\n },\n\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n perspective: '1500px',\n perspectiveOrigin: '0% 50%',\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n transformOrigin: right ? '100% 50%' : '0% 50%',\n transformStyle: 'preserve-3d',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n perspective: '1500px',\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: 'translate3d(0, 0, 0)',\n MsTransform: 'translate3d(0, 0, 0)',\n OTransform: 'translate3d(0, 0, 0)',\n WebkitTransform: 'translate3d(0, 0, 0)',\n transform: 'translate3d(0, 0, 0)',\n zIndex: isOpen ? 1000 : -1\n };\n },\n\n overlay: function overlay(isOpen, width, right) {\n return {\n zIndex: 1400,\n MozTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n MsTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n OTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n WebkitTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transition: 'all 0.5s',\n visibility: isOpen ? 'visible' : 'hidden'\n };\n },\n\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transition: 'all 0.5s',\n zIndex: 1200,\n position: 'relative'\n };\n },\n\n burgerIcon: function burgerIcon(isOpen, width, right) {\n return {\n MozTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n MsTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n OTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n WebkitTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transition: 'all 0.1s',\n position: 'relative',\n zIndex: 1300\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width) {\n return {\n MozTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n MsTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n OTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n WebkitTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n transform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n transformOrigin: '100%',\n transformStyle: 'preserve-3d',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer() {\n return {\n perspective: '1500px'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n OTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n transform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n transformStyle: 'preserve-3d',\n transition: 'all 0.5s',\n overflow: isOpen ? '' : 'hidden'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n perspective: '1500px',\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transition: isOpen ? 'transform 0.8s cubic-bezier(0.7, 0, 0.3, 1)' : 'transform 0.4s cubic-bezier(0.7, 0, 0.3, 1)'\n };\n },\n\n item: function item(isOpen, width, right, nthChild) {\n return {\n MozTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n MsTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n OTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n WebkitTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n transform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n transition: isOpen ? 'transform 0.8s cubic-bezier(0.7, 0, 0.3, 1)' : 'transform 0s 0.2s cubic-bezier(0.7, 0, 0.3, 1)'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ba=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function q(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new q(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new q(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new q(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new q(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new q(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new q(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new q(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new q(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new q(a,5,!1,a.toLowerCase(),null,!1,!1)});var pa=/[\\-:]([a-z])/g;function qa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(pa,\nqa);z[b]=new q(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(pa,qa);z[b]=new q(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(pa,qa);z[b]=new q(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new q(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new q(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new q(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ra(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{La=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ka(a):\"\"}\nfunction Na(a){switch(a.tag){case 5:return Ka(a.type);case 16:return Ka(\"Lazy\");case 13:return Ka(\"Suspense\");case 19:return Ka(\"SuspenseList\");case 0:case 2:case 15:return a=Ma(a.type,!1),a;case 11:return a=Ma(a.type.render,!1),a;case 1:return a=Ma(a.type,!0),a;default:return\"\"}}\nfunction Oa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case va:return\"Fragment\";case ua:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ca:return\"Suspense\";case Da:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Aa:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Ba:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ea:return b=a.displayName||null,null!==b?b:Oa(a.type)||\"Memo\";case Fa:b=a._payload;a=a._init;try{return Oa(a(b))}catch(c){}}return null}\nfunction Pa(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Oa(b);case 8:return b===wa?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Qa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ra(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Sa(a){var b=Ra(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Ta(a){a._valueTracker||(a._valueTracker=Sa(a))}function Ua(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ra(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Va(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Wa(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Xa(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Qa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function Ya(a,b){b=b.checked;null!=b&&ra(a,\"checked\",b,!1)}\nfunction Za(a,b){Ya(a,b);var c=Qa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?$a(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&$a(a,b.type,Qa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction ab(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction $a(a,b,c){if(\"number\"!==b||Va(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var bb=Array.isArray;\nfunction cb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=jb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction lb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar mb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},nb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(mb).forEach(function(a){nb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);mb[b]=mb[a]})});function ob(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||mb.hasOwnProperty(a)&&mb[a]?(\"\"+b).trim():b+\"px\"}\nfunction pb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ob(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var qb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction rb(a,b){if(b){if(qb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction sb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var tb=null;function ub(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var vb=null,wb=null,xb=null;\nfunction yb(a){if(a=zb(a)){if(\"function\"!==typeof vb)throw Error(p(280));var b=a.stateNode;b&&(b=Ab(b),vb(a.stateNode,a.type,b))}}function Bb(a){wb?xb?xb.push(a):xb=[a]:wb=a}function Cb(){if(wb){var a=wb,b=xb;xb=wb=null;yb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(mc(a)/nc|0)|0}var oc=64,pc=4194304;\nfunction qc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function rc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=qc(h):(f&=g,0!==f&&(d=qc(f)))}else g=c&~e,0!==g?d=qc(g):0!==f&&(d=qc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}function wc(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-lc(b);a[b]=c}\nfunction xc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=Xd),$d=String.fromCharCode(32),ae=!1;\nfunction be(a,b){switch(a){case \"keyup\":return-1!==Vd.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function ce(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var de=!1;function ee(a,b){switch(a){case \"compositionend\":return ce(b);case \"keypress\":if(32!==b.which)return null;ae=!0;return $d;case \"textInput\":return a=b.data,a===$d&&ae?null:a;default:return null}}\nfunction fe(a,b){if(de)return\"compositionend\"===a||!Wd&&be(a,b)?(a=id(),hd=gd=fd=null,de=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ee(c)}}function Ge(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Ge(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction He(){for(var a=window,b=Va();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Va(a.document)}return b}function Ie(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Je(a){var b=He(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Ge(c.ownerDocument.documentElement,c)){if(null!==d&&Ie(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Fe(c,f);var g=Fe(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Le=null,Me=null,Ne=null,Oe=!1;\nfunction Pe(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Oe||null==Le||Le!==Va(d)||(d=Le,\"selectionStart\"in d&&Ie(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Ne&&De(Ne,d)||(Ne=d,d=je(Me,\"onSelect\"),0Nf||(a.current=Mf[Nf],Mf[Nf]=null,Nf--)}function H(a,b){Nf++;Mf[Nf]=a.current;a.current=b}var Pf={},I=Of(Pf),Qf=Of(!1),Rf=Pf;function Sf(a,b){var c=a.type.contextTypes;if(!c)return Pf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Tf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Uf(){G(Qf);G(I)}function Vf(a,b,c){if(I.current!==Pf)throw Error(p(168));H(I,b);H(Qf,c)}function Wf(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Pa(a)||\"Unknown\",e));return A({},c,d)}\nfunction Xf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Pf;Rf=I.current;H(I,a);H(Qf,Qf.current);return!0}function Yf(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=Wf(a,b,Rf),d.__reactInternalMemoizedMergedChildContext=a,G(Qf),G(I),H(I,a)):G(Qf);H(Qf,c)}var Zf=null,$f=!1,ag=!1;function bg(a){null===Zf?Zf=[a]:Zf.push(a)}function cg(a){$f=!0;bg(a)}\nfunction dg(){if(!ag&&null!==Zf){ag=!0;var a=0,b=E;try{var c=Zf;for(E=1;a>=g;e-=g;Rg=1<<32-lc(b)+e|c<r?(x=m,m=null):x=m.sibling;var t=u(e,m,h[r],k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,r);null===n?l=t:n.sibling=t;n=t;m=x}if(r===h.length)return c(e,m),N&&Tg(e,r),l;if(null===m){for(;rr?(x=n,n=null):x=n.sibling;var v=u(e,n,t.value,k);if(null===v){null===n&&(n=x);break}a&&n&&null===v.alternate&&b(e,n);g=f(v,g,r);null===m?l=v:m.sibling=v;m=v;n=x}if(t.done)return c(e,\nn),N&&Tg(e,r),l;if(null===n){for(;!t.done;r++,t=h.next())t=w(e,t.value,k),null!==t&&(g=f(t,g,r),null===m?l=t:m.sibling=t,m=t);N&&Tg(e,r);return l}for(n=d(e,n);!t.done;r++,t=h.next())t=y(n,e,r,t.value,k),null!==t&&(a&&null!==t.alternate&&n.delete(null===t.key?r:t.key),g=f(t,g,r),null===m?l=t:m.sibling=t,m=t);a&&n.forEach(function(a){return b(e,a)});N&&Tg(e,r);return l}function C(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===va&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case ta:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===va){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Fa&&kh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=ih(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===va?(d=qh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=oh(f.type,f.key,f.props,null,a.mode,h),h.ref=ih(a,d,f),h.return=a,a=h)}return g(a);case ua:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ph(f,a.mode,h);d.return=a;a=d}return g(a);case Fa:return l=f._init,C(a,d,l(f._payload),h)}if(bb(f))return n(a,d,f,h);if(Ia(f))return v(a,d,f,h);jh(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=nh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return C}var rh=lh(!0),sh=lh(!1),th={},uh=Of(th),vh=Of(th),wh=Of(th);function xh(a){if(a===th)throw Error(p(174));return a}function yh(a,b){H(wh,b);H(vh,a);H(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:ib(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=ib(b,a)}G(uh);H(uh,b)}function zh(){G(uh);G(vh);G(wh)}\nfunction Ah(a){xh(wh.current);var b=xh(uh.current);var c=ib(b,a.type);b!==c&&(H(vh,a),H(uh,c))}function Bh(a){vh.current===a&&(G(uh),G(vh))}var P=Of(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;ac?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{E=c,Gh.transition=d}}function ti(){return Uh().memoizedState}function ui(a,b,c){var d=Dg(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};vi(a)?wi(b,c):(xi(a,b,c),c=M(),a=Eg(a,d,c),null!==a&&yi(a,b,d))}\nfunction gi(a,b,c){var d=Dg(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(vi(a))wi(b,e);else{xi(a,b,e);var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(Ce(h,g))return}catch(k){}finally{}c=M();a=Eg(a,d,c);null!==a&&yi(a,b,d)}}function vi(a){var b=a.alternate;return a===Q||null!==b&&b===Q}\nfunction wi(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function xi(a,b,c){null!==J&&0!==(a.mode&1)&&0===(K&2)?(a=b.interleaved,null===a?(c.next=c,null===qg?qg=[b]:qg.push(b)):(c.next=a.next,a.next=c),b.interleaved=c):(a=b.pending,null===a?c.next=c:(c.next=a.next,a.next=c),b.pending=c)}function yi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;yc(a,c)}}\nvar Rh={readContext:pg,useCallback:U,useContext:U,useEffect:U,useImperativeHandle:U,useInsertionEffect:U,useLayoutEffect:U,useMemo:U,useReducer:U,useRef:U,useState:U,useDebugValue:U,useDeferredValue:U,useTransition:U,useMutableSource:U,useSyncExternalStore:U,useId:U,unstable_isNewReconciler:!1},Oh={readContext:pg,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:pg,useEffect:ki,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ii(4194308,\n4,ni.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ii(4194308,4,a,b)},useInsertionEffect:function(a,b){return ii(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=ui.bind(null,Q,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:fi,useDebugValue:pi,useDeferredValue:function(a){var b=fi(a),c=b[0],d=b[1];ki(function(){var b=Gh.transition;Gh.transition={};try{d(a)}finally{Gh.transition=b}},[a]);return c},useTransition:function(){var a=fi(!1),b=a[0];a=si.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=Q,e=Th();if(N){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===J)throw Error(p(349));\n0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;ki(ai.bind(null,d,f,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=J.identifierPrefix;if(N){var c=Sg;var d=Rg;c=(d&~(1<<32-lc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):\n(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[If]=b;a[Jf]=d;Li(a,b,!1,!1);b.stateNode=a;a:{g=sb(c,d);switch(c){case \"dialog\":F(\"cancel\",a);F(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":F(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eTi&&(b.flags|=128,d=!0,Pi(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,\nnull!==c&&(b.updateQueue=c,b.flags|=4),Pi(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!N)return V(b),null}else 2*D()-f.renderingStartTime>Ti&&1073741824!==c&&(b.flags|=128,d=!0,Pi(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=b,f.tail=b.sibling,f.renderingStartTime=D(),b.sibling=null,c=P.current,H(P,d?c&1|2:c&1),b;V(b);return null;case 22:case 23:return Ui(),d=null!==\nb.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(Vi&1073741824)&&(V(b),b.subtreeFlags&6&&(b.flags|=8192)):V(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}var Wi=sa.ReactCurrentOwner,og=!1;function Xi(a,b,c,d){b.child=null===a?sh(b,null,c,d):rh(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ng(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!og)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);N&&c&&Vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=oh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:De;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=mh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a&&De(a.memoizedProps,d)&&a.ref===b.ref)if(og=!1,0!==(a.lanes&e))0!==(a.flags&131072)&&(og=!0);else return b.lanes=a.lanes,Zi(a,b,e);return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null},H(ej,Vi),Vi|=c;else if(0!==(c&1073741824))b.memoizedState={baseLanes:0,cachePool:null},d=null!==f?f.baseLanes:c,H(ej,Vi),Vi|=d;else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null},b.updateQueue=null,H(ej,Vi),Vi|=a,null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):\nd=c,H(ej,Vi),Vi|=d;Xi(a,b,e,c);return b.child}function fj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Tf(c)?Rf:I.current;f=Sf(b,f);ng(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!og)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);N&&d&&Vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction gj(a,b,c,d,e){if(Tf(c)){var f=!0;Xf(b)}else f=!1;ng(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Hg(b,c,d),Jg(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=pg(l):(l=Tf(c)?Rf:I.current,l=Sf(b,l));var m=c.getDerivedStateFromProps,w=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;w||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ig(b,g,d,l);rg=!1;var u=b.memoizedState;g.state=u;yg(b,d,g,e);k=b.memoizedState;h!==d||u!==k||Qf.current||rg?(\"function\"===typeof m&&(Cg(b,c,m,d),k=b.memoizedState),(h=rg||Gg(b,c,h,d,u,k,l))?(w||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4194308)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;tg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:fg(b.type,h);g.props=l;w=b.pendingProps;u=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=pg(k):(k=Tf(c)?Rf:I.current,k=Sf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===\ntypeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==w||u!==k)&&Ig(b,g,d,k);rg=!1;u=b.memoizedState;g.state=u;yg(b,d,g,e);var n=b.memoizedState;h!==w||u!==n||Qf.current||rg?(\"function\"===typeof y&&(Cg(b,c,y,d),n=b.memoizedState),(l=rg||Gg(b,c,l,d,u,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&\ng.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=\nk,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=1024),d=!1)}return hj(a,b,c,d,f,e)}\nfunction hj(a,b,c,d,e,f){fj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&Yf(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=rh(b,a.child,null,f),b.child=rh(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&Yf(b,c,!0);return b.child}function ij(a){var b=a.stateNode;b.pendingContext?Vf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Vf(a,b.context,!1);yh(a,b.containerInfo)}\nfunction jj(a,b,c,d,e){gh();hh(e);b.flags|=256;Xi(a,b,c,d);return b.child}var kj={dehydrated:null,treeContext:null,retryLane:0};function lj(a){return{baseLanes:a,cachePool:null}}\nfunction mj(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;H(P,e&1);if(null===a){dh(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;e=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,e={mode:\"hidden\",children:e},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ne):f=nj(e,d,0,null),a=qh(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=lj(c),b.memoizedState=kj,a):oj(b,e)}e=a.memoizedState;if(null!==e){h=e.dehydrated;if(null!==h){if(g){if(b.flags&256)return b.flags&=-257,pj(a,b,c,Error(p(422)));if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=nj({mode:\"visible\",children:d.children},e,0,null);f=qh(f,e,c,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&rh(b,a.child,\nnull,c);b.child.memoizedState=lj(c);b.memoizedState=kj;return f}if(0===(b.mode&1))b=pj(a,b,c,null);else if(\"$!\"===h.data)b=pj(a,b,c,Error(p(419)));else if(d=0!==(c&a.childLanes),og||d){d=J;if(null!==d){switch(c&-c){case 4:f=2;break;case 16:f=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=\n268435456;break;default:f=0}d=0!==(f&(d.suspendedLanes|c))?0:f;0!==d&&d!==e.retryLane&&(e.retryLane=d,Eg(a,d,-1))}Si();b=pj(a,b,c,Error(p(421)))}else\"$?\"===h.data?(b.flags|=128,b.child=a.child,b=qj.bind(null,a),h._reactRetry=b,b=null):(c=e.treeContext,Yg=Ff(h.nextSibling),Xg=b,N=!0,Zg=null,null!==c&&(Og[Pg++]=Rg,Og[Pg++]=Sg,Og[Pg++]=Qg,Rg=c.id,Sg=c.overflow,Qg=b),b=oj(b,b.pendingProps.children),b.flags|=4096);return b}if(f)return d=rj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,\nf.memoizedState=null===e?lj(c):{baseLanes:e.baseLanes|c,cachePool:null},f.childLanes=a.childLanes&~c,b.memoizedState=kj,d;c=sj(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=rj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?lj(c):{baseLanes:e.baseLanes|c,cachePool:null},f.childLanes=a.childLanes&~c,b.memoizedState=kj,d;c=sj(a,b,d.children,c);b.memoizedState=null;return c}\nfunction oj(a,b){b=nj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){var e=a.child;a=e.sibling;c=mh(e,{mode:\"visible\",children:c});0===(b.mode&1)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(d=b.deletions,null===d?(b.deletions=[a],b.flags|=16):d.push(a));return b.child=c}\nfunction rj(a,b,c,d,e){var f=b.mode;a=a.child;var g=a.sibling,h={mode:\"hidden\",children:c};0===(f&1)&&b.child!==a?(c=b.child,c.childLanes=0,c.pendingProps=h,b.deletions=null):(c=mh(a,h),c.subtreeFlags=a.subtreeFlags&14680064);null!==g?d=mh(g,d):(d=qh(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function pj(a,b,c,d){null!==d&&hh(d);rh(b,a.child,null,c);a=oj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction tj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);mg(a.return,b,c)}function uj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction vj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&tj(a,c,b);else if(19===a.tag)tj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}H(P,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);uj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}uj(b,!0,c,null,f);break;case \"together\":uj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);zg|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=mh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=mh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction wj(a,b,c){switch(b.tag){case 3:ij(b);gh();break;case 5:Ah(b);break;case 1:Tf(b.type)&&Xf(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;H(gg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return H(P,P.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return mj(a,b,c);H(P,P.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}H(P,P.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return vj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);H(P,P.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}\nfunction xj(a,b){Wg(b);switch(b.tag){case 1:return Tf(b.type)&&Uf(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),G(Qf),G(I),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:G(P);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));gh()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return G(P),null;case 4:return zh(),null;case 10:return lg(b.type._context),null;case 22:case 23:return Ui(),\nnull;case 24:return null;default:return null}}var yj=!1,zj=!1,Aj=\"function\"===typeof WeakSet?WeakSet:Set,X=null;function Bj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){Cj(a,b,d)}else c.current=null}function Dj(a,b,c){try{c()}catch(d){Cj(a,b,d)}}var Ej=!1;\nfunction Fj(a,b){a=He();if(Ie(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(O){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,w=a,u=null;b:for(;;){for(var y;;){w!==c||0!==e&&3!==w.nodeType||(h=g+e);w!==f||0!==d&&3!==w.nodeType||(k=g+d);3===w.nodeType&&(g+=w.nodeValue.length);\nif(null===(y=w.firstChild))break;u=w;w=y}for(;;){if(w===a)break b;u===c&&++l===e&&(h=g);u===f&&++m===d&&(k=g);if(null!==(y=w.nextSibling))break;w=u;u=w.parentNode}w=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;xf={focusedElem:a,selectionRange:c};for(X=b;null!==X;)if(b=X,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,X=a;else for(;null!==X;){b=X;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;case 1:if(null!==\nn){var v=n.memoizedProps,C=n.memoizedState,t=b.stateNode,r=t.getSnapshotBeforeUpdate(b.elementType===b.type?v:fg(b.type,v),C);t.__reactInternalSnapshotBeforeUpdate=r}break;case 3:var x=b.stateNode.containerInfo;if(1===x.nodeType)x.textContent=\"\";else if(9===x.nodeType){var B=x.body;null!=B&&(B.textContent=\"\")}break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(O){Cj(b,b.return,O)}a=b.sibling;if(null!==a){a.return=b.return;X=a;break}X=b.return}n=Ej;Ej=!1;return n}\nfunction Gj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Dj(b,c,f)}e=e.next}while(e!==d)}}function Hj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Ij(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Jj(a,b,c){if(ic&&\"function\"===typeof ic.onCommitFiberUnmount)try{ic.onCommitFiberUnmount(hc,b)}catch(g){}switch(b.tag){case 0:case 11:case 14:case 15:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a=a.next;do{var e=d,f=e.destroy;e=e.tag;void 0!==f&&(0!==(e&2)?Dj(b,c,f):0!==(e&4)&&Dj(b,c,f));d=d.next}while(d!==a)}break;case 1:Bj(b,c);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(g){Cj(b,\nc,g)}break;case 5:Bj(b,c);break;case 4:Kj(a,b,c)}}function Lj(a){var b=a.alternate;null!==b&&(a.alternate=null,Lj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[If],delete b[Jf],delete b[jf],delete b[Kf],delete b[Lf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Mj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Nj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Mj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Oj(a){a:{for(var b=a.return;null!==b;){if(Mj(b))break a;b=b.return}throw Error(p(160));}var c=b;switch(c.tag){case 5:b=c.stateNode;c.flags&32&&(lb(b,\"\"),c.flags&=-33);c=Nj(a);Pj(a,c,b);break;case 3:case 4:b=c.stateNode.containerInfo;c=Nj(a);Qj(a,c,b);break;default:throw Error(p(161));}}\nfunction Qj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=wf));else if(4!==d&&(a=a.child,null!==a))for(Qj(a,b,c),a=a.sibling;null!==a;)Qj(a,b,c),a=a.sibling}\nfunction Pj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Pj(a,b,c),a=a.sibling;null!==a;)Pj(a,b,c),a=a.sibling}\nfunction Kj(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(p(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Jj(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break a;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=\nf,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(18===d.tag)g?(h=f,k=d.stateNode,8===h.nodeType?Ef(h.parentNode,k):1===h.nodeType&&Ef(h,k),Yc(h)):Ef(f,d.stateNode);else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Jj(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&\n(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Rj(a,b){switch(b.tag){case 0:case 11:case 14:case 15:Gj(3,b,b.return);Hj(3,b);Gj(5,b,b.return);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Ya(c,d);sb(a,e);b=sb(a,d);for(e=0;ee&&(e=g);d&=~f}d=e;d=D()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bk(d/1960))-d;if(10a?16:a;if(null===lk)var d=!1;else{a=lk;lk=null;mk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(X=a.current;null!==X;){var f=X,g=f.child;if(0!==(X.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kD()-Vj?Ak(a,0):hk|=c);tk(a,b)}function Ok(a,b){0===b&&(0===(a.mode&1)?b=1:(b=pc,pc<<=1,0===(pc&130023424)&&(pc=4194304)));var c=M();a=rk(a,b);null!==a&&(wc(a,b,c),tk(a,c))}function qj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Ok(a,c)}\nfunction Tj(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Ok(a,c)}var Lk;\nLk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Qf.current)og=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return og=!1,wj(a,b,c);og=0!==(a.flags&131072)?!0:!1}else og=!1,N&&0!==(b.flags&1048576)&&Ug(b,Ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;var e=Sf(b,I.current);ng(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?\n(b.tag=1,b.memoizedState=null,b.updateQueue=null,Tf(d)?(f=!0,Xf(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,sg(b),e.updater=Fg,b.stateNode=e,e._reactInternals=b,Jg(b,d,a,c),b=hj(null,b,d,!0,f,c)):(b.tag=0,N&&f&&Vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Pk(d);a=fg(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=gj(null,b,\nd,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,fg(d.type,a),c);break a}throw Error(p(306,d,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),gj(a,b,d,e,c);case 3:a:{ij(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;tg(a,b);yg(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,\ncache:g.cache,transitions:g.transitions},b.updateQueue.baseState=f,b.memoizedState=f,b.flags&256){e=Error(p(423));b=jj(a,b,d,c,e);break a}else if(d!==e){e=Error(p(424));b=jj(a,b,d,c,e);break a}else for(Yg=Ff(b.stateNode.containerInfo.firstChild),Xg=b,N=!0,Zg=null,c=sh(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{gh();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&dh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,\nyf(d,e)?g=null:null!==f&&yf(d,f)&&(b.flags|=32),fj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&dh(b),null;case 13:return mj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=rh(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=\nb.type._context;e=b.pendingProps;f=b.memoizedProps;g=e.value;H(gg,d._currentValue);d._currentValue=g;if(null!==f)if(Ce(f.value,g)){if(f.children===e.children&&!Qf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ug(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=\nc;k=f.alternate;null!==k&&(k.lanes|=c);mg(f.return,c,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);mg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,\nng(b,c),e=pg(e),d=d(e),b.flags|=1,Xi(a,b,d,c),b.child;case 14:return d=b.type,e=fg(d,b.pendingProps),e=fg(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Tf(d)?(a=!0,Xf(b)):a=!1,ng(b,c),Hg(b,d,e),Jg(b,d,e,c),hj(null,b,d,!0,a,c);case 19:return vj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function vk(a,b){return Yb(a,b)}\nfunction Qk(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function ah(a,b,c,d){return new Qk(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Pk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Ba)return 11;if(a===Ea)return 14}return 2}\nfunction mh(a,b){var c=a.alternate;null===c?(c=ah(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction oh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case va:return qh(c.children,e,f,b);case wa:g=8;e|=8;break;case xa:return a=ah(12,c,b,e|2),a.elementType=xa,a.lanes=f,a;case Ca:return a=ah(13,c,b,e),a.elementType=Ca,a.lanes=f,a;case Da:return a=ah(19,c,b,e),a.elementType=Da,a.lanes=f,a;case Ga:return nj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case Aa:g=9;break a;case Ba:g=11;\nbreak a;case Ea:g=14;break a;case Fa:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=ah(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function qh(a,b,c,d){a=ah(7,a,d,b);a.lanes=c;return a}function nj(a,b,c,d){a=ah(22,a,d,b);a.elementType=Ga;a.lanes=c;a.stateNode={};return a}function nh(a,b,c){a=ah(6,a,null,b);a.lanes=c;return a}\nfunction ph(a,b,c){b=ah(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction Rk(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=vc(0);this.expirationTimes=vc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=vc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function Sk(a,b,c,d,e,f,g,h,k){a=new Rk(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=ah(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null};sg(f);return a}function Tk(a,b,c){var d=3= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = exports.extractObject = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n 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 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","window.eve = require('eve')\n\n// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar mina = (function (eve) {\n var animations = {},\n requestAnimFrame = window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function (callback) {\n setTimeout(callback, 16, new Date().getTime());\n return true;\n },\n requestID,\n isArray = Array.isArray || function (a) {\n return a instanceof Array ||\n Object.prototype.toString.call(a) == \"[object Array]\";\n },\n idgen = 0,\n idprefix = \"M\" + (+new Date).toString(36),\n ID = function () {\n return idprefix + (idgen++).toString(36);\n },\n diff = function (a, b, A, B) {\n if (isArray(a)) {\n res = [];\n for (var i = 0, ii = a.length; i < ii; i++) {\n res[i] = diff(a[i], b, A[i], B);\n }\n return res;\n }\n var dif = (A - a) / (B - b);\n return function (bb) {\n return a + dif * (bb - b);\n };\n },\n timer = Date.now || function () {\n return +new Date;\n },\n sta = function (val) {\n var a = this;\n if (val == null) {\n return a.s;\n }\n var ds = a.s - val;\n a.b += a.dur * ds;\n a.B += a.dur * ds;\n a.s = val;\n },\n speed = function (val) {\n var a = this;\n if (val == null) {\n return a.spd;\n }\n a.spd = val;\n },\n duration = function (val) {\n var a = this;\n if (val == null) {\n return a.dur;\n }\n a.s = a.s * val / a.dur;\n a.dur = val;\n },\n stopit = function () {\n var a = this;\n delete animations[a.id];\n a.update();\n eve(\"mina.stop.\" + a.id, a);\n },\n pause = function () {\n var a = this;\n if (a.pdif) {\n return;\n }\n delete animations[a.id];\n a.update();\n a.pdif = a.get() - a.b;\n },\n resume = function () {\n var a = this;\n if (!a.pdif) {\n return;\n }\n a.b = a.get() - a.pdif;\n delete a.pdif;\n animations[a.id] = a;\n frame();\n },\n update = function () {\n var a = this,\n res;\n if (isArray(a.start)) {\n res = [];\n for (var j = 0, jj = a.start.length; j < jj; j++) {\n res[j] = +a.start[j] +\n (a.end[j] - a.start[j]) * a.easing(a.s);\n }\n } else {\n res = +a.start + (a.end - a.start) * a.easing(a.s);\n }\n a.set(res);\n },\n frame = function (timeStamp) {\n // Manual invokation?\n if (!timeStamp) {\n // Frame loop stopped?\n if (!requestID) {\n // Start frame loop...\n requestID = requestAnimFrame(frame);\n }\n return;\n }\n var len = 0;\n for (var i in animations) if (animations.hasOwnProperty(i)) {\n var a = animations[i],\n b = a.get(),\n res;\n len++;\n a.s = (b - a.b) / (a.dur / a.spd);\n if (a.s >= 1) {\n delete animations[i];\n a.s = 1;\n len--;\n (function (a) {\n setTimeout(function () {\n eve(\"mina.finish.\" + a.id, a);\n });\n }(a));\n }\n a.update();\n }\n requestID = len ? requestAnimFrame(frame) : false;\n },\n /*\\\n * mina\n [ method ]\n **\n * Generic animation of numbers\n **\n - a (number) start _slave_ number\n - A (number) end _slave_ number\n - b (number) start _master_ number (start time in general case)\n - B (number) end _master_ number (end time in general case)\n - get (function) getter of _master_ number (see @mina.time)\n - set (function) setter of _slave_ number\n - easing (function) #optional easing function, default is @mina.linear\n = (object) animation descriptor\n o {\n o id (string) animation id,\n o start (number) start _slave_ number,\n o end (number) end _slave_ number,\n o b (number) start _master_ number,\n o s (number) animation status (0..1),\n o dur (number) animation duration,\n o spd (number) animation speed,\n o get (function) getter of _master_ number (see @mina.time),\n o set (function) setter of _slave_ number,\n o easing (function) easing function, default is @mina.linear,\n o status (function) status getter/setter,\n o speed (function) speed getter/setter,\n o duration (function) duration getter/setter,\n o stop (function) animation stopper\n o pause (function) pauses the animation\n o resume (function) resumes the animation\n o update (function) calles setter with the right value of the animation\n o }\n \\*/\n mina = function (a, A, b, B, get, set, easing) {\n var anim = {\n id: ID(),\n start: a,\n end: A,\n b: b,\n s: 0,\n dur: B - b,\n spd: 1,\n get: get,\n set: set,\n easing: easing || mina.linear,\n status: sta,\n speed: speed,\n duration: duration,\n stop: stopit,\n pause: pause,\n resume: resume,\n update: update\n };\n animations[anim.id] = anim;\n var len = 0, i;\n for (i in animations) if (animations.hasOwnProperty(i)) {\n len++;\n if (len == 2) {\n break;\n }\n }\n len == 1 && frame();\n return anim;\n };\n /*\\\n * mina.time\n [ method ]\n **\n * Returns the current time. Equivalent to:\n | function () {\n | return (new Date).getTime();\n | }\n \\*/\n mina.time = timer;\n /*\\\n * mina.getById\n [ method ]\n **\n * Returns an animation by its id\n - id (string) animation's id\n = (object) See @mina\n \\*/\n mina.getById = function (id) {\n return animations[id] || null;\n };\n\n /*\\\n * mina.linear\n [ method ]\n **\n * Default linear easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.linear = function (n) {\n return n;\n };\n /*\\\n * mina.easeout\n [ method ]\n **\n * Easeout easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.easeout = function (n) {\n return Math.pow(n, 1.7);\n };\n /*\\\n * mina.easein\n [ method ]\n **\n * Easein easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.easein = function (n) {\n return Math.pow(n, .48);\n };\n /*\\\n * mina.easeinout\n [ method ]\n **\n * Easeinout easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.easeinout = function (n) {\n if (n == 1) {\n return 1;\n }\n if (n == 0) {\n return 0;\n }\n var q = .48 - n / 1.04,\n Q = Math.sqrt(.1734 + q * q),\n x = Q - q,\n X = Math.pow(Math.abs(x), 1 / 3) * (x < 0 ? -1 : 1),\n y = -Q - q,\n Y = Math.pow(Math.abs(y), 1 / 3) * (y < 0 ? -1 : 1),\n t = X + Y + .5;\n return (1 - t) * 3 * t * t + t * t * t;\n };\n /*\\\n * mina.backin\n [ method ]\n **\n * Backin easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.backin = function (n) {\n if (n == 1) {\n return 1;\n }\n var s = 1.70158;\n return n * n * ((s + 1) * n - s);\n };\n /*\\\n * mina.backout\n [ method ]\n **\n * Backout easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.backout = function (n) {\n if (n == 0) {\n return 0;\n }\n n = n - 1;\n var s = 1.70158;\n return n * n * ((s + 1) * n + s) + 1;\n };\n /*\\\n * mina.elastic\n [ method ]\n **\n * Elastic easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.elastic = function (n) {\n if (n == !!n) {\n return n;\n }\n return Math.pow(2, -10 * n) * Math.sin((n - .075) *\n (2 * Math.PI) / .3) + 1;\n };\n /*\\\n * mina.bounce\n [ method ]\n **\n * Bounce easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.bounce = function (n) {\n var s = 7.5625,\n p = 2.75,\n l;\n if (n < 1 / p) {\n l = s * n * n;\n } else {\n if (n < 2 / p) {\n n -= 1.5 / p;\n l = s * n * n + .75;\n } else {\n if (n < 2.5 / p) {\n n -= 2.25 / p;\n l = s * n * n + .9375;\n } else {\n n -= 2.625 / p;\n l = s * n * n + .984375;\n }\n }\n }\n return l;\n };\n window.mina = mina;\n return mina;\n})(typeof eve == \"undefined\" ? function () {} : eve);\n\n// Copyright (c) 2013 - 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nvar Snap = (function(root) {\nSnap.version = \"0.5.1\";\n/*\\\n * Snap\n [ method ]\n **\n * Creates a drawing surface or wraps existing SVG element.\n **\n - width (number|string) width of surface\n - height (number|string) height of surface\n * or\n - DOM (SVGElement) element to be wrapped into Snap structure\n * or\n - array (array) array of elements (will return set of elements)\n * or\n - query (string) CSS query selector\n = (object) @Element\n\\*/\nfunction Snap(w, h) {\n if (w) {\n if (w.nodeType) {\n return wrap(w);\n }\n if (is(w, \"array\") && Snap.set) {\n return Snap.set.apply(Snap, w);\n }\n if (w instanceof Element) {\n return w;\n }\n if (h == null) {\n try {\n w = glob.doc.querySelector(String(w));\n return wrap(w);\n } catch (e) {\n return null;\n }\n }\n }\n w = w == null ? \"100%\" : w;\n h = h == null ? \"100%\" : h;\n return new Paper(w, h);\n}\nSnap.toString = function () {\n return \"Snap v\" + this.version;\n};\nSnap._ = {};\nvar glob = {\n win: root.window,\n doc: root.window.document\n};\nSnap._.glob = glob;\nvar has = \"hasOwnProperty\",\n Str = String,\n toFloat = parseFloat,\n toInt = parseInt,\n math = Math,\n mmax = math.max,\n mmin = math.min,\n abs = math.abs,\n pow = math.pow,\n PI = math.PI,\n round = math.round,\n E = \"\",\n S = \" \",\n objectToString = Object.prototype.toString,\n ISURL = /^url\\(['\"]?([^\\)]+?)['\"]?\\)$/i,\n colourRegExp = /^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\))\\s*$/i,\n bezierrg = /^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/,\n separator = Snap._.separator = /[,\\s]+/,\n whitespace = /[\\s]/g,\n commaSpaces = /[\\s]*,[\\s]*/,\n hsrg = {hs: 1, rg: 1},\n pathCommand = /([a-z])[\\s,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\s]*,?[\\s]*)+)/ig,\n tCommand = /([rstm])[\\s,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\s]*,?[\\s]*)+)/ig,\n pathValues = /(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[\\s]*,?[\\s]*/ig,\n idgen = 0,\n idprefix = \"S\" + (+new Date).toString(36),\n ID = function (el) {\n return (el && el.type ? el.type : E) + idprefix + (idgen++).toString(36);\n },\n xlink = \"http://www.w3.org/1999/xlink\",\n xmlns = \"http://www.w3.org/2000/svg\",\n hub = {},\n /*\\\n * Snap.url\n [ method ]\n **\n * Wraps path into `\"url('')\"`.\n - value (string) path\n = (string) wrapped path\n \\*/\n URL = Snap.url = function (url) {\n return \"url('#\" + url + \"')\";\n };\n\nfunction $(el, attr) {\n if (attr) {\n if (el == \"#text\") {\n el = glob.doc.createTextNode(attr.text || attr[\"#text\"] || \"\");\n }\n if (el == \"#comment\") {\n el = glob.doc.createComment(attr.text || attr[\"#text\"] || \"\");\n }\n if (typeof el == \"string\") {\n el = $(el);\n }\n if (typeof attr == \"string\") {\n if (el.nodeType == 1) {\n if (attr.substring(0, 6) == \"xlink:\") {\n return el.getAttributeNS(xlink, attr.substring(6));\n }\n if (attr.substring(0, 4) == \"xml:\") {\n return el.getAttributeNS(xmlns, attr.substring(4));\n }\n return el.getAttribute(attr);\n } else if (attr == \"text\") {\n return el.nodeValue;\n } else {\n return null;\n }\n }\n if (el.nodeType == 1) {\n for (var key in attr) if (attr[has](key)) {\n var val = Str(attr[key]);\n if (val) {\n if (key.substring(0, 6) == \"xlink:\") {\n el.setAttributeNS(xlink, key.substring(6), val);\n } else if (key.substring(0, 4) == \"xml:\") {\n el.setAttributeNS(xmlns, key.substring(4), val);\n } else {\n el.setAttribute(key, val);\n }\n } else {\n el.removeAttribute(key);\n }\n }\n } else if (\"text\" in attr) {\n el.nodeValue = attr.text;\n }\n } else {\n el = glob.doc.createElementNS(xmlns, el);\n }\n return el;\n}\nSnap._.$ = $;\nSnap._.id = ID;\nfunction getAttrs(el) {\n var attrs = el.attributes,\n name,\n out = {};\n for (var i = 0; i < attrs.length; i++) {\n if (attrs[i].namespaceURI == xlink) {\n name = \"xlink:\";\n } else {\n name = \"\";\n }\n name += attrs[i].name;\n out[name] = attrs[i].textContent;\n }\n return out;\n}\nfunction is(o, type) {\n type = Str.prototype.toLowerCase.call(type);\n if (type == \"finite\") {\n return isFinite(o);\n }\n if (type == \"array\" &&\n (o instanceof Array || Array.isArray && Array.isArray(o))) {\n return true;\n }\n return type == \"null\" && o === null ||\n type == typeof o && o !== null ||\n type == \"object\" && o === Object(o) ||\n objectToString.call(o).slice(8, -1).toLowerCase() == type;\n}\n/*\\\n * Snap.format\n [ method ]\n **\n * Replaces construction of type `{}` to the corresponding argument\n **\n - token (string) string to format\n - json (object) object which properties are used as a replacement\n = (string) formatted string\n > Usage\n | // this draws a rectangular shape equivalent to \"M10,20h40v50h-40z\"\n | paper.path(Snap.format(\"M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z\", {\n | x: 10,\n | y: 20,\n | dim: {\n | width: 40,\n | height: 50,\n | \"negative width\": -40\n | }\n | }));\n\\*/\nSnap.format = (function () {\n var tokenRegex = /\\{([^\\}]+)\\}/g,\n objNotationRegex = /(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g, // matches .xxxxx or [\"xxxxx\"] to run over object properties\n replacer = function (all, key, obj) {\n var res = obj;\n key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) {\n name = name || quotedName;\n if (res) {\n if (name in res) {\n res = res[name];\n }\n typeof res == \"function\" && isFunc && (res = res());\n }\n });\n res = (res == null || res == obj ? all : res) + \"\";\n return res;\n };\n return function (str, obj) {\n return Str(str).replace(tokenRegex, function (all, key) {\n return replacer(all, key, obj);\n });\n };\n})();\nfunction clone(obj) {\n if (typeof obj == \"function\" || Object(obj) !== obj) {\n return obj;\n }\n var res = new obj.constructor;\n for (var key in obj) if (obj[has](key)) {\n res[key] = clone(obj[key]);\n }\n return res;\n}\nSnap._.clone = clone;\nfunction repush(array, item) {\n for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {\n return array.push(array.splice(i, 1)[0]);\n }\n}\nfunction cacher(f, scope, postprocessor) {\n function newf() {\n var arg = Array.prototype.slice.call(arguments, 0),\n args = arg.join(\"\\u2400\"),\n cache = newf.cache = newf.cache || {},\n count = newf.count = newf.count || [];\n if (cache[has](args)) {\n repush(count, args);\n return postprocessor ? postprocessor(cache[args]) : cache[args];\n }\n count.length >= 1e3 && delete cache[count.shift()];\n count.push(args);\n cache[args] = f.apply(scope, arg);\n return postprocessor ? postprocessor(cache[args]) : cache[args];\n }\n return newf;\n}\nSnap._.cacher = cacher;\nfunction angle(x1, y1, x2, y2, x3, y3) {\n if (x3 == null) {\n var x = x1 - x2,\n y = y1 - y2;\n if (!x && !y) {\n return 0;\n }\n return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360;\n } else {\n return angle(x1, y1, x3, y3) - angle(x2, y2, x3, y3);\n }\n}\nfunction rad(deg) {\n return deg % 360 * PI / 180;\n}\nfunction deg(rad) {\n return rad * 180 / PI % 360;\n}\nfunction x_y() {\n return this.x + S + this.y;\n}\nfunction x_y_w_h() {\n return this.x + S + this.y + S + this.width + \" \\xd7 \" + this.height;\n}\n\n/*\\\n * Snap.rad\n [ method ]\n **\n * Transform angle to radians\n - deg (number) angle in degrees\n = (number) angle in radians\n\\*/\nSnap.rad = rad;\n/*\\\n * Snap.deg\n [ method ]\n **\n * Transform angle to degrees\n - rad (number) angle in radians\n = (number) angle in degrees\n\\*/\nSnap.deg = deg;\n/*\\\n * Snap.sin\n [ method ]\n **\n * Equivalent to `Math.sin()` only works with degrees, not radians.\n - angle (number) angle in degrees\n = (number) sin\n\\*/\nSnap.sin = function (angle) {\n return math.sin(Snap.rad(angle));\n};\n/*\\\n * Snap.tan\n [ method ]\n **\n * Equivalent to `Math.tan()` only works with degrees, not radians.\n - angle (number) angle in degrees\n = (number) tan\n\\*/\nSnap.tan = function (angle) {\n return math.tan(Snap.rad(angle));\n};\n/*\\\n * Snap.cos\n [ method ]\n **\n * Equivalent to `Math.cos()` only works with degrees, not radians.\n - angle (number) angle in degrees\n = (number) cos\n\\*/\nSnap.cos = function (angle) {\n return math.cos(Snap.rad(angle));\n};\n/*\\\n * Snap.asin\n [ method ]\n **\n * Equivalent to `Math.asin()` only works with degrees, not radians.\n - num (number) value\n = (number) asin in degrees\n\\*/\nSnap.asin = function (num) {\n return Snap.deg(math.asin(num));\n};\n/*\\\n * Snap.acos\n [ method ]\n **\n * Equivalent to `Math.acos()` only works with degrees, not radians.\n - num (number) value\n = (number) acos in degrees\n\\*/\nSnap.acos = function (num) {\n return Snap.deg(math.acos(num));\n};\n/*\\\n * Snap.atan\n [ method ]\n **\n * Equivalent to `Math.atan()` only works with degrees, not radians.\n - num (number) value\n = (number) atan in degrees\n\\*/\nSnap.atan = function (num) {\n return Snap.deg(math.atan(num));\n};\n/*\\\n * Snap.atan2\n [ method ]\n **\n * Equivalent to `Math.atan2()` only works with degrees, not radians.\n - num (number) value\n = (number) atan2 in degrees\n\\*/\nSnap.atan2 = function (num) {\n return Snap.deg(math.atan2(num));\n};\n/*\\\n * Snap.angle\n [ method ]\n **\n * Returns an angle between two or three points\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n - x3 (number) #optional x coord of third point\n - y3 (number) #optional y coord of third point\n = (number) angle in degrees\n\\*/\nSnap.angle = angle;\n/*\\\n * Snap.len\n [ method ]\n **\n * Returns distance between two points\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n = (number) distance\n\\*/\nSnap.len = function (x1, y1, x2, y2) {\n return Math.sqrt(Snap.len2(x1, y1, x2, y2));\n};\n/*\\\n * Snap.len2\n [ method ]\n **\n * Returns squared distance between two points\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n = (number) distance\n\\*/\nSnap.len2 = function (x1, y1, x2, y2) {\n return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);\n};\n/*\\\n * Snap.closestPoint\n [ method ]\n **\n * Returns closest point to a given one on a given path.\n - path (Element) path element\n - x (number) x coord of a point\n - y (number) y coord of a point\n = (object) in format\n {\n x (number) x coord of the point on the path\n y (number) y coord of the point on the path\n length (number) length of the path to the point\n distance (number) distance from the given point to the path\n }\n\\*/\n// Copied from http://bl.ocks.org/mbostock/8027637\nSnap.closestPoint = function (path, x, y) {\n function distance2(p) {\n var dx = p.x - x,\n dy = p.y - y;\n return dx * dx + dy * dy;\n }\n var pathNode = path.node,\n pathLength = pathNode.getTotalLength(),\n precision = pathLength / pathNode.pathSegList.numberOfItems * .125,\n best,\n bestLength,\n bestDistance = Infinity;\n\n // linear scan for coarse approximation\n for (var scan, scanLength = 0, scanDistance; scanLength <= pathLength; scanLength += precision) {\n if ((scanDistance = distance2(scan = pathNode.getPointAtLength(scanLength))) < bestDistance) {\n best = scan;\n bestLength = scanLength;\n bestDistance = scanDistance;\n }\n }\n\n // binary search for precise estimate\n precision *= .5;\n while (precision > .5) {\n var before,\n after,\n beforeLength,\n afterLength,\n beforeDistance,\n afterDistance;\n if ((beforeLength = bestLength - precision) >= 0 && (beforeDistance = distance2(before = pathNode.getPointAtLength(beforeLength))) < bestDistance) {\n best = before;\n bestLength = beforeLength;\n bestDistance = beforeDistance;\n } else if ((afterLength = bestLength + precision) <= pathLength && (afterDistance = distance2(after = pathNode.getPointAtLength(afterLength))) < bestDistance) {\n best = after;\n bestLength = afterLength;\n bestDistance = afterDistance;\n } else {\n precision *= .5;\n }\n }\n\n best = {\n x: best.x,\n y: best.y,\n length: bestLength,\n distance: Math.sqrt(bestDistance)\n };\n return best;\n}\n/*\\\n * Snap.is\n [ method ]\n **\n * Handy replacement for the `typeof` operator\n - o (…) any object or primitive\n - type (string) name of the type, e.g., `string`, `function`, `number`, etc.\n = (boolean) `true` if given value is of given type\n\\*/\nSnap.is = is;\n/*\\\n * Snap.snapTo\n [ method ]\n **\n * Snaps given value to given grid\n - values (array|number) given array of values or step of the grid\n - value (number) value to adjust\n - tolerance (number) #optional maximum distance to the target value that would trigger the snap. Default is `10`.\n = (number) adjusted value\n\\*/\nSnap.snapTo = function (values, value, tolerance) {\n tolerance = is(tolerance, \"finite\") ? tolerance : 10;\n if (is(values, \"array\")) {\n var i = values.length;\n while (i--) if (abs(values[i] - value) <= tolerance) {\n return values[i];\n }\n } else {\n values = +values;\n var rem = value % values;\n if (rem < tolerance) {\n return value - rem;\n }\n if (rem > values - tolerance) {\n return value - rem + values;\n }\n }\n return value;\n};\n// Colour\n/*\\\n * Snap.getRGB\n [ method ]\n **\n * Parses color string as RGB object\n - color (string) color string in one of the following formats:\n #
    \n #
  • Color name (red, green, cornflowerblue, etc)
  • \n #
  • #••• — shortened HTML color: (#000, #fc0, etc.)
  • \n #
  • #•••••• — full length HTML color: (#000000, #bd2300)
  • \n #
  • rgb(•••, •••, •••) — red, green and blue channels values: (rgb(200, 100, 0))
  • \n #
  • rgba(•••, •••, •••, •••) — also with opacity
  • \n #
  • rgb(•••%, •••%, •••%) — same as above, but in %: (rgb(100%, 175%, 0%))
  • \n #
  • rgba(•••%, •••%, •••%, •••%) — also with opacity
  • \n #
  • hsb(•••, •••, •••) — hue, saturation and brightness values: (hsb(0.5, 0.25, 1))
  • \n #
  • hsba(•••, •••, •••, •••) — also with opacity
  • \n #
  • hsb(•••%, •••%, •••%) — same as above, but in %
  • \n #
  • hsba(•••%, •••%, •••%, •••%) — also with opacity
  • \n #
  • hsl(•••, •••, •••) — hue, saturation and luminosity values: (hsb(0.5, 0.25, 0.5))
  • \n #
  • hsla(•••, •••, •••, •••) — also with opacity
  • \n #
  • hsl(•••%, •••%, •••%) — same as above, but in %
  • \n #
  • hsla(•••%, •••%, •••%, •••%) — also with opacity
  • \n #
\n * Note that `%` can be used any time: `rgb(20%, 255, 50%)`.\n = (object) RGB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••,\n o error (boolean) true if string can't be parsed\n o }\n\\*/\nSnap.getRGB = cacher(function (colour) {\n if (!colour || !!((colour = Str(colour)).indexOf(\"-\") + 1)) {\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: rgbtoString};\n }\n if (colour == \"none\") {\n return {r: -1, g: -1, b: -1, hex: \"none\", toString: rgbtoString};\n }\n !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == \"#\") && (colour = toHex(colour));\n if (!colour) {\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: rgbtoString};\n }\n var res,\n red,\n green,\n blue,\n opacity,\n t,\n values,\n rgb = colour.match(colourRegExp);\n if (rgb) {\n if (rgb[2]) {\n blue = toInt(rgb[2].substring(5), 16);\n green = toInt(rgb[2].substring(3, 5), 16);\n red = toInt(rgb[2].substring(1, 3), 16);\n }\n if (rgb[3]) {\n blue = toInt((t = rgb[3].charAt(3)) + t, 16);\n green = toInt((t = rgb[3].charAt(2)) + t, 16);\n red = toInt((t = rgb[3].charAt(1)) + t, 16);\n }\n if (rgb[4]) {\n values = rgb[4].split(commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red *= 2.55);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green *= 2.55);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue *= 2.55);\n rgb[1].toLowerCase().slice(0, 4) == \"rgba\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n }\n if (rgb[5]) {\n values = rgb[5].split(commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red /= 100);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green /= 100);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue /= 100);\n (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n rgb[1].toLowerCase().slice(0, 4) == \"hsba\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n return Snap.hsb2rgb(red, green, blue, opacity);\n }\n if (rgb[6]) {\n values = rgb[6].split(commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red /= 100);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green /= 100);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue /= 100);\n (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n rgb[1].toLowerCase().slice(0, 4) == \"hsla\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n return Snap.hsl2rgb(red, green, blue, opacity);\n }\n red = mmin(math.round(red), 255);\n green = mmin(math.round(green), 255);\n blue = mmin(math.round(blue), 255);\n opacity = mmin(mmax(opacity, 0), 1);\n rgb = {r: red, g: green, b: blue, toString: rgbtoString};\n rgb.hex = \"#\" + (16777216 | blue | green << 8 | red << 16).toString(16).slice(1);\n rgb.opacity = is(opacity, \"finite\") ? opacity : 1;\n return rgb;\n }\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: rgbtoString};\n}, Snap);\n/*\\\n * Snap.hsb\n [ method ]\n **\n * Converts HSB values to a hex representation of the color\n - h (number) hue\n - s (number) saturation\n - b (number) value or brightness\n = (string) hex representation of the color\n\\*/\nSnap.hsb = cacher(function (h, s, b) {\n return Snap.hsb2rgb(h, s, b).hex;\n});\n/*\\\n * Snap.hsl\n [ method ]\n **\n * Converts HSL values to a hex representation of the color\n - h (number) hue\n - s (number) saturation\n - l (number) luminosity\n = (string) hex representation of the color\n\\*/\nSnap.hsl = cacher(function (h, s, l) {\n return Snap.hsl2rgb(h, s, l).hex;\n});\n/*\\\n * Snap.rgb\n [ method ]\n **\n * Converts RGB values to a hex representation of the color\n - r (number) red\n - g (number) green\n - b (number) blue\n = (string) hex representation of the color\n\\*/\nSnap.rgb = cacher(function (r, g, b, o) {\n if (is(o, \"finite\")) {\n var round = math.round;\n return \"rgba(\" + [round(r), round(g), round(b), +o.toFixed(2)] + \")\";\n }\n return \"#\" + (16777216 | b | g << 8 | r << 16).toString(16).slice(1);\n});\nvar toHex = function (color) {\n var i = glob.doc.getElementsByTagName(\"head\")[0] || glob.doc.getElementsByTagName(\"svg\")[0],\n red = \"rgb(255, 0, 0)\";\n toHex = cacher(function (color) {\n if (color.toLowerCase() == \"red\") {\n return red;\n }\n i.style.color = red;\n i.style.color = color;\n var out = glob.doc.defaultView.getComputedStyle(i, E).getPropertyValue(\"color\");\n return out == red ? null : out;\n });\n return toHex(color);\n},\nhsbtoString = function () {\n return \"hsb(\" + [this.h, this.s, this.b] + \")\";\n},\nhsltoString = function () {\n return \"hsl(\" + [this.h, this.s, this.l] + \")\";\n},\nrgbtoString = function () {\n return this.opacity == 1 || this.opacity == null ?\n this.hex :\n \"rgba(\" + [this.r, this.g, this.b, this.opacity] + \")\";\n},\nprepareRGB = function (r, g, b) {\n if (g == null && is(r, \"object\") && \"r\" in r && \"g\" in r && \"b\" in r) {\n b = r.b;\n g = r.g;\n r = r.r;\n }\n if (g == null && is(r, string)) {\n var clr = Snap.getRGB(r);\n r = clr.r;\n g = clr.g;\n b = clr.b;\n }\n if (r > 1 || g > 1 || b > 1) {\n r /= 255;\n g /= 255;\n b /= 255;\n }\n\n return [r, g, b];\n},\npackageRGB = function (r, g, b, o) {\n r = math.round(r * 255);\n g = math.round(g * 255);\n b = math.round(b * 255);\n var rgb = {\n r: r,\n g: g,\n b: b,\n opacity: is(o, \"finite\") ? o : 1,\n hex: Snap.rgb(r, g, b),\n toString: rgbtoString\n };\n is(o, \"finite\") && (rgb.opacity = o);\n return rgb;\n};\n/*\\\n * Snap.color\n [ method ]\n **\n * Parses the color string and returns an object featuring the color's component values\n - clr (string) color string in one of the supported formats (see @Snap.getRGB)\n = (object) Combined RGB/HSB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••,\n o error (boolean) `true` if string can't be parsed,\n o h (number) hue,\n o s (number) saturation,\n o v (number) value (brightness),\n o l (number) lightness\n o }\n\\*/\nSnap.color = function (clr) {\n var rgb;\n if (is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"b\" in clr) {\n rgb = Snap.hsb2rgb(clr);\n clr.r = rgb.r;\n clr.g = rgb.g;\n clr.b = rgb.b;\n clr.opacity = 1;\n clr.hex = rgb.hex;\n } else if (is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"l\" in clr) {\n rgb = Snap.hsl2rgb(clr);\n clr.r = rgb.r;\n clr.g = rgb.g;\n clr.b = rgb.b;\n clr.opacity = 1;\n clr.hex = rgb.hex;\n } else {\n if (is(clr, \"string\")) {\n clr = Snap.getRGB(clr);\n }\n if (is(clr, \"object\") && \"r\" in clr && \"g\" in clr && \"b\" in clr && !(\"error\" in clr)) {\n rgb = Snap.rgb2hsl(clr);\n clr.h = rgb.h;\n clr.s = rgb.s;\n clr.l = rgb.l;\n rgb = Snap.rgb2hsb(clr);\n clr.v = rgb.b;\n } else {\n clr = {hex: \"none\"};\n clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1;\n clr.error = 1;\n }\n }\n clr.toString = rgbtoString;\n return clr;\n};\n/*\\\n * Snap.hsb2rgb\n [ method ]\n **\n * Converts HSB values to an RGB object\n - h (number) hue\n - s (number) saturation\n - v (number) value or brightness\n = (object) RGB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••\n o }\n\\*/\nSnap.hsb2rgb = function (h, s, v, o) {\n if (is(h, \"object\") && \"h\" in h && \"s\" in h && \"b\" in h) {\n v = h.b;\n s = h.s;\n o = h.o;\n h = h.h;\n }\n h *= 360;\n var R, G, B, X, C;\n h = h % 360 / 60;\n C = v * s;\n X = C * (1 - abs(h % 2 - 1));\n R = G = B = v - C;\n\n h = ~~h;\n R += [C, X, 0, 0, X, C][h];\n G += [X, C, C, X, 0, 0][h];\n B += [0, 0, X, C, C, X][h];\n return packageRGB(R, G, B, o);\n};\n/*\\\n * Snap.hsl2rgb\n [ method ]\n **\n * Converts HSL values to an RGB object\n - h (number) hue\n - s (number) saturation\n - l (number) luminosity\n = (object) RGB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••\n o }\n\\*/\nSnap.hsl2rgb = function (h, s, l, o) {\n if (is(h, \"object\") && \"h\" in h && \"s\" in h && \"l\" in h) {\n l = h.l;\n s = h.s;\n h = h.h;\n }\n if (h > 1 || s > 1 || l > 1) {\n h /= 360;\n s /= 100;\n l /= 100;\n }\n h *= 360;\n var R, G, B, X, C;\n h = h % 360 / 60;\n C = 2 * s * (l < .5 ? l : 1 - l);\n X = C * (1 - abs(h % 2 - 1));\n R = G = B = l - C / 2;\n\n h = ~~h;\n R += [C, X, 0, 0, X, C][h];\n G += [X, C, C, X, 0, 0][h];\n B += [0, 0, X, C, C, X][h];\n return packageRGB(R, G, B, o);\n};\n/*\\\n * Snap.rgb2hsb\n [ method ]\n **\n * Converts RGB values to an HSB object\n - r (number) red\n - g (number) green\n - b (number) blue\n = (object) HSB object in the following format:\n o {\n o h (number) hue,\n o s (number) saturation,\n o b (number) brightness\n o }\n\\*/\nSnap.rgb2hsb = function (r, g, b) {\n b = prepareRGB(r, g, b);\n r = b[0];\n g = b[1];\n b = b[2];\n\n var H, S, V, C;\n V = mmax(r, g, b);\n C = V - mmin(r, g, b);\n H = C == 0 ? null :\n V == r ? (g - b) / C :\n V == g ? (b - r) / C + 2 :\n (r - g) / C + 4;\n H = (H + 360) % 6 * 60 / 360;\n S = C == 0 ? 0 : C / V;\n return {h: H, s: S, b: V, toString: hsbtoString};\n};\n/*\\\n * Snap.rgb2hsl\n [ method ]\n **\n * Converts RGB values to an HSL object\n - r (number) red\n - g (number) green\n - b (number) blue\n = (object) HSL object in the following format:\n o {\n o h (number) hue,\n o s (number) saturation,\n o l (number) luminosity\n o }\n\\*/\nSnap.rgb2hsl = function (r, g, b) {\n b = prepareRGB(r, g, b);\n r = b[0];\n g = b[1];\n b = b[2];\n\n var H, S, L, M, m, C;\n M = mmax(r, g, b);\n m = mmin(r, g, b);\n C = M - m;\n H = C == 0 ? null :\n M == r ? (g - b) / C :\n M == g ? (b - r) / C + 2 :\n (r - g) / C + 4;\n H = (H + 360) % 6 * 60 / 360;\n L = (M + m) / 2;\n S = C == 0 ? 0 :\n L < .5 ? C / (2 * L) :\n C / (2 - 2 * L);\n return {h: H, s: S, l: L, toString: hsltoString};\n};\n\n// Transformations\n/*\\\n * Snap.parsePathString\n [ method ]\n **\n * Utility method\n **\n * Parses given path string into an array of arrays of path segments\n - pathString (string|array) path string or array of segments (in the last case it is returned straight away)\n = (array) array of segments\n\\*/\nSnap.parsePathString = function (pathString) {\n if (!pathString) {\n return null;\n }\n var pth = Snap.path(pathString);\n if (pth.arr) {\n return Snap.path.clone(pth.arr);\n }\n\n var paramCounts = {a: 7, c: 6, o: 2, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, u: 3, z: 0},\n data = [];\n if (is(pathString, \"array\") && is(pathString[0], \"array\")) { // rough assumption\n data = Snap.path.clone(pathString);\n }\n if (!data.length) {\n Str(pathString).replace(pathCommand, function (a, b, c) {\n var params = [],\n name = b.toLowerCase();\n c.replace(pathValues, function (a, b) {\n b && params.push(+b);\n });\n if (name == \"m\" && params.length > 2) {\n data.push([b].concat(params.splice(0, 2)));\n name = \"l\";\n b = b == \"m\" ? \"l\" : \"L\";\n }\n if (name == \"o\" && params.length == 1) {\n data.push([b, params[0]]);\n }\n if (name == \"r\") {\n data.push([b].concat(params));\n } else while (params.length >= paramCounts[name]) {\n data.push([b].concat(params.splice(0, paramCounts[name])));\n if (!paramCounts[name]) {\n break;\n }\n }\n });\n }\n data.toString = Snap.path.toString;\n pth.arr = Snap.path.clone(data);\n return data;\n};\n/*\\\n * Snap.parseTransformString\n [ method ]\n **\n * Utility method\n **\n * Parses given transform string into an array of transformations\n - TString (string|array) transform string or array of transformations (in the last case it is returned straight away)\n = (array) array of transformations\n\\*/\nvar parseTransformString = Snap.parseTransformString = function (TString) {\n if (!TString) {\n return null;\n }\n var paramCounts = {r: 3, s: 4, t: 2, m: 6},\n data = [];\n if (is(TString, \"array\") && is(TString[0], \"array\")) { // rough assumption\n data = Snap.path.clone(TString);\n }\n if (!data.length) {\n Str(TString).replace(tCommand, function (a, b, c) {\n var params = [],\n name = b.toLowerCase();\n c.replace(pathValues, function (a, b) {\n b && params.push(+b);\n });\n data.push([b].concat(params));\n });\n }\n data.toString = Snap.path.toString;\n return data;\n};\nfunction svgTransform2string(tstr) {\n var res = [];\n tstr = tstr.replace(/(?:^|\\s)(\\w+)\\(([^)]+)\\)/g, function (all, name, params) {\n params = params.split(/\\s*,\\s*|\\s+/);\n if (name == \"rotate\" && params.length == 1) {\n params.push(0, 0);\n }\n if (name == \"scale\") {\n if (params.length > 2) {\n params = params.slice(0, 2);\n } else if (params.length == 2) {\n params.push(0, 0);\n }\n if (params.length == 1) {\n params.push(params[0], 0, 0);\n }\n }\n if (name == \"skewX\") {\n res.push([\"m\", 1, 0, math.tan(rad(params[0])), 1, 0, 0]);\n } else if (name == \"skewY\") {\n res.push([\"m\", 1, math.tan(rad(params[0])), 0, 1, 0, 0]);\n } else {\n res.push([name.charAt(0)].concat(params));\n }\n return all;\n });\n return res;\n}\nSnap._.svgTransform2string = svgTransform2string;\nSnap._.rgTransform = /^[a-z][\\s]*-?\\.?\\d/i;\nfunction transform2matrix(tstr, bbox) {\n var tdata = parseTransformString(tstr),\n m = new Snap.Matrix;\n if (tdata) {\n for (var i = 0, ii = tdata.length; i < ii; i++) {\n var t = tdata[i],\n tlen = t.length,\n command = Str(t[0]).toLowerCase(),\n absolute = t[0] != command,\n inver = absolute ? m.invert() : 0,\n x1,\n y1,\n x2,\n y2,\n bb;\n if (command == \"t\" && tlen == 2){\n m.translate(t[1], 0);\n } else if (command == \"t\" && tlen == 3) {\n if (absolute) {\n x1 = inver.x(0, 0);\n y1 = inver.y(0, 0);\n x2 = inver.x(t[1], t[2]);\n y2 = inver.y(t[1], t[2]);\n m.translate(x2 - x1, y2 - y1);\n } else {\n m.translate(t[1], t[2]);\n }\n } else if (command == \"r\") {\n if (tlen == 2) {\n bb = bb || bbox;\n m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n } else if (tlen == 4) {\n if (absolute) {\n x2 = inver.x(t[2], t[3]);\n y2 = inver.y(t[2], t[3]);\n m.rotate(t[1], x2, y2);\n } else {\n m.rotate(t[1], t[2], t[3]);\n }\n }\n } else if (command == \"s\") {\n if (tlen == 2 || tlen == 3) {\n bb = bb || bbox;\n m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n } else if (tlen == 4) {\n if (absolute) {\n x2 = inver.x(t[2], t[3]);\n y2 = inver.y(t[2], t[3]);\n m.scale(t[1], t[1], x2, y2);\n } else {\n m.scale(t[1], t[1], t[2], t[3]);\n }\n } else if (tlen == 5) {\n if (absolute) {\n x2 = inver.x(t[3], t[4]);\n y2 = inver.y(t[3], t[4]);\n m.scale(t[1], t[2], x2, y2);\n } else {\n m.scale(t[1], t[2], t[3], t[4]);\n }\n }\n } else if (command == \"m\" && tlen == 7) {\n m.add(t[1], t[2], t[3], t[4], t[5], t[6]);\n }\n }\n }\n return m;\n}\nSnap._.transform2matrix = transform2matrix;\nSnap._unit2px = unit2px;\nvar contains = glob.doc.contains || glob.doc.compareDocumentPosition ?\n function (a, b) {\n var adown = a.nodeType == 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a == bup || !!(bup && bup.nodeType == 1 && (\n adown.contains ?\n adown.contains(bup) :\n a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16\n ));\n } :\n function (a, b) {\n if (b) {\n while (b) {\n b = b.parentNode;\n if (b == a) {\n return true;\n }\n }\n }\n return false;\n };\nfunction getSomeDefs(el) {\n var p = el.node.ownerSVGElement && wrap(el.node.ownerSVGElement) ||\n el.node.parentNode && wrap(el.node.parentNode) ||\n Snap.select(\"svg\") ||\n Snap(0, 0),\n pdefs = p.select(\"defs\"),\n defs = pdefs == null ? false : pdefs.node;\n if (!defs) {\n defs = make(\"defs\", p.node).node;\n }\n return defs;\n}\nfunction getSomeSVG(el) {\n return el.node.ownerSVGElement && wrap(el.node.ownerSVGElement) || Snap.select(\"svg\");\n}\nSnap._.getSomeDefs = getSomeDefs;\nSnap._.getSomeSVG = getSomeSVG;\nfunction unit2px(el, name, value) {\n var svg = getSomeSVG(el).node,\n out = {},\n mgr = svg.querySelector(\".svg---mgr\");\n if (!mgr) {\n mgr = $(\"rect\");\n $(mgr, {x: -9e9, y: -9e9, width: 10, height: 10, \"class\": \"svg---mgr\", fill: \"none\"});\n svg.appendChild(mgr);\n }\n function getW(val) {\n if (val == null) {\n return E;\n }\n if (val == +val) {\n return val;\n }\n $(mgr, {width: val});\n try {\n return mgr.getBBox().width;\n } catch (e) {\n return 0;\n }\n }\n function getH(val) {\n if (val == null) {\n return E;\n }\n if (val == +val) {\n return val;\n }\n $(mgr, {height: val});\n try {\n return mgr.getBBox().height;\n } catch (e) {\n return 0;\n }\n }\n function set(nam, f) {\n if (name == null) {\n out[nam] = f(el.attr(nam) || 0);\n } else if (nam == name) {\n out = f(value == null ? el.attr(nam) || 0 : value);\n }\n }\n switch (el.type) {\n case \"rect\":\n set(\"rx\", getW);\n set(\"ry\", getH);\n case \"image\":\n set(\"width\", getW);\n set(\"height\", getH);\n case \"text\":\n set(\"x\", getW);\n set(\"y\", getH);\n break;\n case \"circle\":\n set(\"cx\", getW);\n set(\"cy\", getH);\n set(\"r\", getW);\n break;\n case \"ellipse\":\n set(\"cx\", getW);\n set(\"cy\", getH);\n set(\"rx\", getW);\n set(\"ry\", getH);\n break;\n case \"line\":\n set(\"x1\", getW);\n set(\"x2\", getW);\n set(\"y1\", getH);\n set(\"y2\", getH);\n break;\n case \"marker\":\n set(\"refX\", getW);\n set(\"markerWidth\", getW);\n set(\"refY\", getH);\n set(\"markerHeight\", getH);\n break;\n case \"radialGradient\":\n set(\"fx\", getW);\n set(\"fy\", getH);\n break;\n case \"tspan\":\n set(\"dx\", getW);\n set(\"dy\", getH);\n break;\n default:\n set(name, getW);\n }\n svg.removeChild(mgr);\n return out;\n}\n/*\\\n * Snap.select\n [ method ]\n **\n * Wraps a DOM element specified by CSS selector as @Element\n - query (string) CSS selector of the element\n = (Element) the current element\n\\*/\nSnap.select = function (query) {\n query = Str(query).replace(/([^\\\\]):/g, \"$1\\\\:\");\n return wrap(glob.doc.querySelector(query));\n};\n/*\\\n * Snap.selectAll\n [ method ]\n **\n * Wraps DOM elements specified by CSS selector as set or array of @Element\n - query (string) CSS selector of the element\n = (Element) the current element\n\\*/\nSnap.selectAll = function (query) {\n var nodelist = glob.doc.querySelectorAll(query),\n set = (Snap.set || Array)();\n for (var i = 0; i < nodelist.length; i++) {\n set.push(wrap(nodelist[i]));\n }\n return set;\n};\n\nfunction add2group(list) {\n if (!is(list, \"array\")) {\n list = Array.prototype.slice.call(arguments, 0);\n }\n var i = 0,\n j = 0,\n node = this.node;\n while (this[i]) delete this[i++];\n for (i = 0; i < list.length; i++) {\n if (list[i].type == \"set\") {\n list[i].forEach(function (el) {\n node.appendChild(el.node);\n });\n } else {\n node.appendChild(list[i].node);\n }\n }\n var children = node.childNodes;\n for (i = 0; i < children.length; i++) {\n this[j++] = wrap(children[i]);\n }\n return this;\n}\n// Hub garbage collector every 10s\nsetInterval(function () {\n for (var key in hub) if (hub[has](key)) {\n var el = hub[key],\n node = el.node;\n if (el.type != \"svg\" && !node.ownerSVGElement || el.type == \"svg\" && (!node.parentNode || \"ownerSVGElement\" in node.parentNode && !node.ownerSVGElement)) {\n delete hub[key];\n }\n }\n}, 1e4);\nfunction Element(el) {\n if (el.snap in hub) {\n return hub[el.snap];\n }\n var svg;\n try {\n svg = el.ownerSVGElement;\n } catch(e) {}\n /*\\\n * Element.node\n [ property (object) ]\n **\n * Gives you a reference to the DOM object, so you can assign event handlers or just mess around.\n > Usage\n | // draw a circle at coordinate 10,10 with radius of 10\n | var c = paper.circle(10, 10, 10);\n | c.node.onclick = function () {\n | c.attr(\"fill\", \"red\");\n | };\n \\*/\n this.node = el;\n if (svg) {\n this.paper = new Paper(svg);\n }\n /*\\\n * Element.type\n [ property (string) ]\n **\n * SVG tag name of the given element.\n \\*/\n this.type = el.tagName || el.nodeName;\n var id = this.id = ID(this);\n this.anims = {};\n this._ = {\n transform: []\n };\n el.snap = id;\n hub[id] = this;\n if (this.type == \"g\") {\n this.add = add2group;\n }\n if (this.type in {g: 1, mask: 1, pattern: 1, symbol: 1}) {\n for (var method in Paper.prototype) if (Paper.prototype[has](method)) {\n this[method] = Paper.prototype[method];\n }\n }\n}\n /*\\\n * Element.attr\n [ method ]\n **\n * Gets or sets given attributes of the element.\n **\n - params (object) contains key-value pairs of attributes you want to set\n * or\n - param (string) name of the attribute\n = (Element) the current element\n * or\n = (string) value of attribute\n > Usage\n | el.attr({\n | fill: \"#fc0\",\n | stroke: \"#000\",\n | strokeWidth: 2, // CamelCase...\n | \"fill-opacity\": 0.5, // or dash-separated names\n | width: \"*=2\" // prefixed values\n | });\n | console.log(el.attr(\"fill\")); // #fc0\n * Prefixed values in format `\"+=10\"` supported. All four operations\n * (`+`, `-`, `*` and `/`) could be used. Optionally you can use units for `+`\n * and `-`: `\"+=2em\"`.\n \\*/\n Element.prototype.attr = function (params, value) {\n var el = this,\n node = el.node;\n if (!params) {\n if (node.nodeType != 1) {\n return {\n text: node.nodeValue\n };\n }\n var attr = node.attributes,\n out = {};\n for (var i = 0, ii = attr.length; i < ii; i++) {\n out[attr[i].nodeName] = attr[i].nodeValue;\n }\n return out;\n }\n if (is(params, \"string\")) {\n if (arguments.length > 1) {\n var json = {};\n json[params] = value;\n params = json;\n } else {\n return eve(\"snap.util.getattr.\" + params, el).firstDefined();\n }\n }\n for (var att in params) {\n if (params[has](att)) {\n eve(\"snap.util.attr.\" + att, el, params[att]);\n }\n }\n return el;\n };\n/*\\\n * Snap.parse\n [ method ]\n **\n * Parses SVG fragment and converts it into a @Fragment\n **\n - svg (string) SVG string\n = (Fragment) the @Fragment\n\\*/\nSnap.parse = function (svg) {\n var f = glob.doc.createDocumentFragment(),\n full = true,\n div = glob.doc.createElement(\"div\");\n svg = Str(svg);\n if (!svg.match(/^\\s*<\\s*svg(?:\\s|>)/)) {\n svg = \"\" + svg + \"\";\n full = false;\n }\n div.innerHTML = svg;\n svg = div.getElementsByTagName(\"svg\")[0];\n if (svg) {\n if (full) {\n f = svg;\n } else {\n while (svg.firstChild) {\n f.appendChild(svg.firstChild);\n }\n }\n }\n return new Fragment(f);\n};\nfunction Fragment(frag) {\n this.node = frag;\n}\n/*\\\n * Snap.fragment\n [ method ]\n **\n * Creates a DOM fragment from a given list of elements or strings\n **\n - varargs (…) SVG string\n = (Fragment) the @Fragment\n\\*/\nSnap.fragment = function () {\n var args = Array.prototype.slice.call(arguments, 0),\n f = glob.doc.createDocumentFragment();\n for (var i = 0, ii = args.length; i < ii; i++) {\n var item = args[i];\n if (item.node && item.node.nodeType) {\n f.appendChild(item.node);\n }\n if (item.nodeType) {\n f.appendChild(item);\n }\n if (typeof item == \"string\") {\n f.appendChild(Snap.parse(item).node);\n }\n }\n return new Fragment(f);\n};\n\nfunction make(name, parent) {\n var res = $(name);\n parent.appendChild(res);\n var el = wrap(res);\n return el;\n}\nfunction Paper(w, h) {\n var res,\n desc,\n defs,\n proto = Paper.prototype;\n if (w && w.tagName && w.tagName.toLowerCase() == \"svg\") {\n if (w.snap in hub) {\n return hub[w.snap];\n }\n var doc = w.ownerDocument;\n res = new Element(w);\n desc = w.getElementsByTagName(\"desc\")[0];\n defs = w.getElementsByTagName(\"defs\")[0];\n if (!desc) {\n desc = $(\"desc\");\n desc.appendChild(doc.createTextNode(\"Created with Snap\"));\n res.node.appendChild(desc);\n }\n if (!defs) {\n defs = $(\"defs\");\n res.node.appendChild(defs);\n }\n res.defs = defs;\n for (var key in proto) if (proto[has](key)) {\n res[key] = proto[key];\n }\n res.paper = res.root = res;\n } else {\n res = make(\"svg\", glob.doc.body);\n $(res.node, {\n height: h,\n version: 1.1,\n width: w,\n xmlns: xmlns\n });\n }\n return res;\n}\nfunction wrap(dom) {\n if (!dom) {\n return dom;\n }\n if (dom instanceof Element || dom instanceof Fragment) {\n return dom;\n }\n if (dom.tagName && dom.tagName.toLowerCase() == \"svg\") {\n return new Paper(dom);\n }\n if (dom.tagName && dom.tagName.toLowerCase() == \"object\" && dom.type == \"image/svg+xml\") {\n return new Paper(dom.contentDocument.getElementsByTagName(\"svg\")[0]);\n }\n return new Element(dom);\n}\n\nSnap._.make = make;\nSnap._.wrap = wrap;\n/*\\\n * Paper.el\n [ method ]\n **\n * Creates an element on paper with a given name and no attributes\n **\n - name (string) tag name\n - attr (object) attributes\n = (Element) the current element\n > Usage\n | var c = paper.circle(10, 10, 10); // is the same as...\n | var c = paper.el(\"circle\").attr({\n | cx: 10,\n | cy: 10,\n | r: 10\n | });\n | // and the same as\n | var c = paper.el(\"circle\", {\n | cx: 10,\n | cy: 10,\n | r: 10\n | });\n\\*/\nPaper.prototype.el = function (name, attr) {\n var el = make(name, this.node);\n attr && el.attr(attr);\n return el;\n};\n/*\\\n * Element.children\n [ method ]\n **\n * Returns array of all the children of the element.\n = (array) array of Elements\n\\*/\nElement.prototype.children = function () {\n var out = [],\n ch = this.node.childNodes;\n for (var i = 0, ii = ch.length; i < ii; i++) {\n out[i] = Snap(ch[i]);\n }\n return out;\n};\nfunction jsonFiller(root, o) {\n for (var i = 0, ii = root.length; i < ii; i++) {\n var item = {\n type: root[i].type,\n attr: root[i].attr()\n },\n children = root[i].children();\n o.push(item);\n if (children.length) {\n jsonFiller(children, item.childNodes = []);\n }\n }\n}\n/*\\\n * Element.toJSON\n [ method ]\n **\n * Returns object representation of the given element and all its children.\n = (object) in format\n o {\n o type (string) this.type,\n o attr (object) attributes map,\n o childNodes (array) optional array of children in the same format\n o }\n\\*/\nElement.prototype.toJSON = function () {\n var out = [];\n jsonFiller([this], out);\n return out[0];\n};\n// default\neve.on(\"snap.util.getattr\", function () {\n var att = eve.nt();\n att = att.substring(att.lastIndexOf(\".\") + 1);\n var css = att.replace(/[A-Z]/g, function (letter) {\n return \"-\" + letter.toLowerCase();\n });\n if (cssAttr[has](css)) {\n return this.node.ownerDocument.defaultView.getComputedStyle(this.node, null).getPropertyValue(css);\n } else {\n return $(this.node, att);\n }\n});\nvar cssAttr = {\n \"alignment-baseline\": 0,\n \"baseline-shift\": 0,\n \"clip\": 0,\n \"clip-path\": 0,\n \"clip-rule\": 0,\n \"color\": 0,\n \"color-interpolation\": 0,\n \"color-interpolation-filters\": 0,\n \"color-profile\": 0,\n \"color-rendering\": 0,\n \"cursor\": 0,\n \"direction\": 0,\n \"display\": 0,\n \"dominant-baseline\": 0,\n \"enable-background\": 0,\n \"fill\": 0,\n \"fill-opacity\": 0,\n \"fill-rule\": 0,\n \"filter\": 0,\n \"flood-color\": 0,\n \"flood-opacity\": 0,\n \"font\": 0,\n \"font-family\": 0,\n \"font-size\": 0,\n \"font-size-adjust\": 0,\n \"font-stretch\": 0,\n \"font-style\": 0,\n \"font-variant\": 0,\n \"font-weight\": 0,\n \"glyph-orientation-horizontal\": 0,\n \"glyph-orientation-vertical\": 0,\n \"image-rendering\": 0,\n \"kerning\": 0,\n \"letter-spacing\": 0,\n \"lighting-color\": 0,\n \"marker\": 0,\n \"marker-end\": 0,\n \"marker-mid\": 0,\n \"marker-start\": 0,\n \"mask\": 0,\n \"opacity\": 0,\n \"overflow\": 0,\n \"pointer-events\": 0,\n \"shape-rendering\": 0,\n \"stop-color\": 0,\n \"stop-opacity\": 0,\n \"stroke\": 0,\n \"stroke-dasharray\": 0,\n \"stroke-dashoffset\": 0,\n \"stroke-linecap\": 0,\n \"stroke-linejoin\": 0,\n \"stroke-miterlimit\": 0,\n \"stroke-opacity\": 0,\n \"stroke-width\": 0,\n \"text-anchor\": 0,\n \"text-decoration\": 0,\n \"text-rendering\": 0,\n \"unicode-bidi\": 0,\n \"visibility\": 0,\n \"word-spacing\": 0,\n \"writing-mode\": 0\n};\n\neve.on(\"snap.util.attr\", function (value) {\n var att = eve.nt(),\n attr = {};\n att = att.substring(att.lastIndexOf(\".\") + 1);\n attr[att] = value;\n var style = att.replace(/-(\\w)/gi, function (all, letter) {\n return letter.toUpperCase();\n }),\n css = att.replace(/[A-Z]/g, function (letter) {\n return \"-\" + letter.toLowerCase();\n });\n if (cssAttr[has](css)) {\n this.node.style[style] = value == null ? E : value;\n } else {\n $(this.node, attr);\n }\n});\n(function (proto) {}(Paper.prototype));\n\n// simple ajax\n/*\\\n * Snap.ajax\n [ method ]\n **\n * Simple implementation of Ajax\n **\n - url (string) URL\n - postData (object|string) data for post request\n - callback (function) callback\n - scope (object) #optional scope of callback\n * or\n - url (string) URL\n - callback (function) callback\n - scope (object) #optional scope of callback\n = (XMLHttpRequest) the XMLHttpRequest object, just in case\n\\*/\nSnap.ajax = function (url, postData, callback, scope){\n var req = new XMLHttpRequest,\n id = ID();\n if (req) {\n if (is(postData, \"function\")) {\n scope = callback;\n callback = postData;\n postData = null;\n } else if (is(postData, \"object\")) {\n var pd = [];\n for (var key in postData) if (postData.hasOwnProperty(key)) {\n pd.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(postData[key]));\n }\n postData = pd.join(\"&\");\n }\n req.open(postData ? \"POST\" : \"GET\", url, true);\n if (postData) {\n req.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n req.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\n }\n if (callback) {\n eve.once(\"snap.ajax.\" + id + \".0\", callback);\n eve.once(\"snap.ajax.\" + id + \".200\", callback);\n eve.once(\"snap.ajax.\" + id + \".304\", callback);\n }\n req.onreadystatechange = function() {\n if (req.readyState != 4) return;\n eve(\"snap.ajax.\" + id + \".\" + req.status, scope, req);\n };\n if (req.readyState == 4) {\n return req;\n }\n req.send(postData);\n return req;\n }\n};\n/*\\\n * Snap.load\n [ method ]\n **\n * Loads external SVG file as a @Fragment (see @Snap.ajax for more advanced AJAX)\n **\n - url (string) URL\n - callback (function) callback\n - scope (object) #optional scope of callback\n\\*/\nSnap.load = function (url, callback, scope) {\n Snap.ajax(url, function (req) {\n var f = Snap.parse(req.responseText);\n scope ? callback.call(scope, f) : callback(f);\n });\n};\nvar getOffset = function (elem) {\n var box = elem.getBoundingClientRect(),\n doc = elem.ownerDocument,\n body = doc.body,\n docElem = doc.documentElement,\n clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,\n top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop,\n left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft;\n return {\n y: top,\n x: left\n };\n};\n/*\\\n * Snap.getElementByPoint\n [ method ]\n **\n * Returns you topmost element under given point.\n **\n = (object) Snap element object\n - x (number) x coordinate from the top left corner of the window\n - y (number) y coordinate from the top left corner of the window\n > Usage\n | Snap.getElementByPoint(mouseX, mouseY).attr({stroke: \"#f00\"});\n\\*/\nSnap.getElementByPoint = function (x, y) {\n var paper = this,\n svg = paper.canvas,\n target = glob.doc.elementFromPoint(x, y);\n if (glob.win.opera && target.tagName == \"svg\") {\n var so = getOffset(target),\n sr = target.createSVGRect();\n sr.x = x - so.x;\n sr.y = y - so.y;\n sr.width = sr.height = 1;\n var hits = target.getIntersectionList(sr, null);\n if (hits.length) {\n target = hits[hits.length - 1];\n }\n }\n if (!target) {\n return null;\n }\n return wrap(target);\n};\n/*\\\n * Snap.plugin\n [ method ]\n **\n * Let you write plugins. You pass in a function with five arguments, like this:\n | Snap.plugin(function (Snap, Element, Paper, global, Fragment) {\n | Snap.newmethod = function () {};\n | Element.prototype.newmethod = function () {};\n | Paper.prototype.newmethod = function () {};\n | });\n * Inside the function you have access to all main objects (and their\n * prototypes). This allow you to extend anything you want.\n **\n - f (function) your plugin body\n\\*/\nSnap.plugin = function (f) {\n f(Snap, Element, Paper, glob, Fragment);\n};\nglob.win.Snap = Snap;\nreturn Snap;\n}(window || this));\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var elproto = Element.prototype,\n is = Snap.is,\n Str = String,\n unit2px = Snap._unit2px,\n $ = Snap._.$,\n make = Snap._.make,\n getSomeDefs = Snap._.getSomeDefs,\n has = \"hasOwnProperty\",\n wrap = Snap._.wrap;\n /*\\\n * Element.getBBox\n [ method ]\n **\n * Returns the bounding box descriptor for the given element\n **\n = (object) bounding box descriptor:\n o {\n o cx: (number) x of the center,\n o cy: (number) x of the center,\n o h: (number) height,\n o height: (number) height,\n o path: (string) path command for the box,\n o r0: (number) radius of a circle that fully encloses the box,\n o r1: (number) radius of the smallest circle that can be enclosed,\n o r2: (number) radius of the largest circle that can be enclosed,\n o vb: (string) box as a viewbox command,\n o w: (number) width,\n o width: (number) width,\n o x2: (number) x of the right side,\n o x: (number) x of the left side,\n o y2: (number) y of the bottom edge,\n o y: (number) y of the top edge\n o }\n \\*/\n elproto.getBBox = function (isWithoutTransform) {\n if (this.type == \"tspan\") {\n return Snap._.box(this.node.getClientRects().item(0));\n }\n if (!Snap.Matrix || !Snap.path) {\n return this.node.getBBox();\n }\n var el = this,\n m = new Snap.Matrix;\n if (el.removed) {\n return Snap._.box();\n }\n while (el.type == \"use\") {\n if (!isWithoutTransform) {\n m = m.add(el.transform().localMatrix.translate(el.attr(\"x\") || 0, el.attr(\"y\") || 0));\n }\n if (el.original) {\n el = el.original;\n } else {\n var href = el.attr(\"xlink:href\");\n el = el.original = el.node.ownerDocument.getElementById(href.substring(href.indexOf(\"#\") + 1));\n }\n }\n var _ = el._,\n pathfinder = Snap.path.get[el.type] || Snap.path.get.deflt;\n try {\n if (isWithoutTransform) {\n _.bboxwt = pathfinder ? Snap.path.getBBox(el.realPath = pathfinder(el)) : Snap._.box(el.node.getBBox());\n return Snap._.box(_.bboxwt);\n } else {\n el.realPath = pathfinder(el);\n el.matrix = el.transform().localMatrix;\n _.bbox = Snap.path.getBBox(Snap.path.map(el.realPath, m.add(el.matrix)));\n return Snap._.box(_.bbox);\n }\n } catch (e) {\n // Firefox doesn’t give you bbox of hidden element\n return Snap._.box();\n }\n };\n var propString = function () {\n return this.string;\n };\n function extractTransform(el, tstr) {\n if (tstr == null) {\n var doReturn = true;\n if (el.type == \"linearGradient\" || el.type == \"radialGradient\") {\n tstr = el.node.getAttribute(\"gradientTransform\");\n } else if (el.type == \"pattern\") {\n tstr = el.node.getAttribute(\"patternTransform\");\n } else {\n tstr = el.node.getAttribute(\"transform\");\n }\n if (!tstr) {\n return new Snap.Matrix;\n }\n tstr = Snap._.svgTransform2string(tstr);\n } else {\n if (!Snap._.rgTransform.test(tstr)) {\n tstr = Snap._.svgTransform2string(tstr);\n } else {\n tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, el._.transform || \"\");\n }\n if (is(tstr, \"array\")) {\n tstr = Snap.path ? Snap.path.toString.call(tstr) : Str(tstr);\n }\n el._.transform = tstr;\n }\n var m = Snap._.transform2matrix(tstr, el.getBBox(1));\n if (doReturn) {\n return m;\n } else {\n el.matrix = m;\n }\n }\n /*\\\n * Element.transform\n [ method ]\n **\n * Gets or sets transformation of the element\n **\n - tstr (string) transform string in Snap or SVG format\n = (Element) the current element\n * or\n = (object) transformation descriptor:\n o {\n o string (string) transform string,\n o globalMatrix (Matrix) matrix of all transformations applied to element or its parents,\n o localMatrix (Matrix) matrix of transformations applied only to the element,\n o diffMatrix (Matrix) matrix of difference between global and local transformations,\n o global (string) global transformation as string,\n o local (string) local transformation as string,\n o toString (function) returns `string` property\n o }\n \\*/\n elproto.transform = function (tstr) {\n var _ = this._;\n if (tstr == null) {\n var papa = this,\n global = new Snap.Matrix(this.node.getCTM()),\n local = extractTransform(this),\n ms = [local],\n m = new Snap.Matrix,\n i,\n localString = local.toTransformString(),\n string = Str(local) == Str(this.matrix) ?\n Str(_.transform) : localString;\n while (papa.type != \"svg\" && (papa = papa.parent())) {\n ms.push(extractTransform(papa));\n }\n i = ms.length;\n while (i--) {\n m.add(ms[i]);\n }\n return {\n string: string,\n globalMatrix: global,\n totalMatrix: m,\n localMatrix: local,\n diffMatrix: global.clone().add(local.invert()),\n global: global.toTransformString(),\n total: m.toTransformString(),\n local: localString,\n toString: propString\n };\n }\n if (tstr instanceof Snap.Matrix) {\n this.matrix = tstr;\n this._.transform = tstr.toTransformString();\n } else {\n extractTransform(this, tstr);\n }\n\n if (this.node) {\n if (this.type == \"linearGradient\" || this.type == \"radialGradient\") {\n $(this.node, {gradientTransform: this.matrix});\n } else if (this.type == \"pattern\") {\n $(this.node, {patternTransform: this.matrix});\n } else {\n $(this.node, {transform: this.matrix});\n }\n }\n\n return this;\n };\n /*\\\n * Element.parent\n [ method ]\n **\n * Returns the element's parent\n **\n = (Element) the parent element\n \\*/\n elproto.parent = function () {\n return wrap(this.node.parentNode);\n };\n /*\\\n * Element.append\n [ method ]\n **\n * Appends the given element to current one\n **\n - el (Element|Set) element to append\n = (Element) the parent element\n \\*/\n /*\\\n * Element.add\n [ method ]\n **\n * See @Element.append\n \\*/\n elproto.append = elproto.add = function (el) {\n if (el) {\n if (el.type == \"set\") {\n var it = this;\n el.forEach(function (el) {\n it.add(el);\n });\n return this;\n }\n el = wrap(el);\n this.node.appendChild(el.node);\n el.paper = this.paper;\n }\n return this;\n };\n /*\\\n * Element.appendTo\n [ method ]\n **\n * Appends the current element to the given one\n **\n - el (Element) parent element to append to\n = (Element) the child element\n \\*/\n elproto.appendTo = function (el) {\n if (el) {\n el = wrap(el);\n el.append(this);\n }\n return this;\n };\n /*\\\n * Element.prepend\n [ method ]\n **\n * Prepends the given element to the current one\n **\n - el (Element) element to prepend\n = (Element) the parent element\n \\*/\n elproto.prepend = function (el) {\n if (el) {\n if (el.type == \"set\") {\n var it = this,\n first;\n el.forEach(function (el) {\n if (first) {\n first.after(el);\n } else {\n it.prepend(el);\n }\n first = el;\n });\n return this;\n }\n el = wrap(el);\n var parent = el.parent();\n this.node.insertBefore(el.node, this.node.firstChild);\n this.add && this.add();\n el.paper = this.paper;\n this.parent() && this.parent().add();\n parent && parent.add();\n }\n return this;\n };\n /*\\\n * Element.prependTo\n [ method ]\n **\n * Prepends the current element to the given one\n **\n - el (Element) parent element to prepend to\n = (Element) the child element\n \\*/\n elproto.prependTo = function (el) {\n el = wrap(el);\n el.prepend(this);\n return this;\n };\n /*\\\n * Element.before\n [ method ]\n **\n * Inserts given element before the current one\n **\n - el (Element) element to insert\n = (Element) the parent element\n \\*/\n elproto.before = function (el) {\n if (el.type == \"set\") {\n var it = this;\n el.forEach(function (el) {\n var parent = el.parent();\n it.node.parentNode.insertBefore(el.node, it.node);\n parent && parent.add();\n });\n this.parent().add();\n return this;\n }\n el = wrap(el);\n var parent = el.parent();\n this.node.parentNode.insertBefore(el.node, this.node);\n this.parent() && this.parent().add();\n parent && parent.add();\n el.paper = this.paper;\n return this;\n };\n /*\\\n * Element.after\n [ method ]\n **\n * Inserts given element after the current one\n **\n - el (Element) element to insert\n = (Element) the parent element\n \\*/\n elproto.after = function (el) {\n el = wrap(el);\n var parent = el.parent();\n if (this.node.nextSibling) {\n this.node.parentNode.insertBefore(el.node, this.node.nextSibling);\n } else {\n this.node.parentNode.appendChild(el.node);\n }\n this.parent() && this.parent().add();\n parent && parent.add();\n el.paper = this.paper;\n return this;\n };\n /*\\\n * Element.insertBefore\n [ method ]\n **\n * Inserts the element after the given one\n **\n - el (Element) element next to whom insert to\n = (Element) the parent element\n \\*/\n elproto.insertBefore = function (el) {\n el = wrap(el);\n var parent = this.parent();\n el.node.parentNode.insertBefore(this.node, el.node);\n this.paper = el.paper;\n parent && parent.add();\n el.parent() && el.parent().add();\n return this;\n };\n /*\\\n * Element.insertAfter\n [ method ]\n **\n * Inserts the element after the given one\n **\n - el (Element) element next to whom insert to\n = (Element) the parent element\n \\*/\n elproto.insertAfter = function (el) {\n el = wrap(el);\n var parent = this.parent();\n el.node.parentNode.insertBefore(this.node, el.node.nextSibling);\n this.paper = el.paper;\n parent && parent.add();\n el.parent() && el.parent().add();\n return this;\n };\n /*\\\n * Element.remove\n [ method ]\n **\n * Removes element from the DOM\n = (Element) the detached element\n \\*/\n elproto.remove = function () {\n var parent = this.parent();\n this.node.parentNode && this.node.parentNode.removeChild(this.node);\n delete this.paper;\n this.removed = true;\n parent && parent.add();\n return this;\n };\n /*\\\n * Element.select\n [ method ]\n **\n * Gathers the nested @Element matching the given set of CSS selectors\n **\n - query (string) CSS selector\n = (Element) result of query selection\n \\*/\n elproto.select = function (query) {\n return wrap(this.node.querySelector(query));\n };\n /*\\\n * Element.selectAll\n [ method ]\n **\n * Gathers nested @Element objects matching the given set of CSS selectors\n **\n - query (string) CSS selector\n = (Set|array) result of query selection\n \\*/\n elproto.selectAll = function (query) {\n var nodelist = this.node.querySelectorAll(query),\n set = (Snap.set || Array)();\n for (var i = 0; i < nodelist.length; i++) {\n set.push(wrap(nodelist[i]));\n }\n return set;\n };\n /*\\\n * Element.asPX\n [ method ]\n **\n * Returns given attribute of the element as a `px` value (not %, em, etc.)\n **\n - attr (string) attribute name\n - value (string) #optional attribute value\n = (Element) result of query selection\n \\*/\n elproto.asPX = function (attr, value) {\n if (value == null) {\n value = this.attr(attr);\n }\n return +unit2px(this, attr, value);\n };\n // SIERRA Element.use(): I suggest adding a note about how to access the original element the returned instantiates. It's a part of SVG with which ordinary web developers may be least familiar.\n /*\\\n * Element.use\n [ method ]\n **\n * Creates a `` element linked to the current element\n **\n = (Element) the `` element\n \\*/\n elproto.use = function () {\n var use,\n id = this.node.id;\n if (!id) {\n id = this.id;\n $(this.node, {\n id: id\n });\n }\n if (this.type == \"linearGradient\" || this.type == \"radialGradient\" ||\n this.type == \"pattern\") {\n use = make(this.type, this.node.parentNode);\n } else {\n use = make(\"use\", this.node.parentNode);\n }\n $(use.node, {\n \"xlink:href\": \"#\" + id\n });\n use.original = this;\n return use;\n };\n function fixids(el) {\n var els = el.selectAll(\"*\"),\n it,\n url = /^\\s*url\\((\"|'|)(.*)\\1\\)\\s*$/,\n ids = [],\n uses = {};\n function urltest(it, name) {\n var val = $(it.node, name);\n val = val && val.match(url);\n val = val && val[2];\n if (val && val.charAt() == \"#\") {\n val = val.substring(1);\n } else {\n return;\n }\n if (val) {\n uses[val] = (uses[val] || []).concat(function (id) {\n var attr = {};\n attr[name] = Snap.url(id);\n $(it.node, attr);\n });\n }\n }\n function linktest(it) {\n var val = $(it.node, \"xlink:href\");\n if (val && val.charAt() == \"#\") {\n val = val.substring(1);\n } else {\n return;\n }\n if (val) {\n uses[val] = (uses[val] || []).concat(function (id) {\n it.attr(\"xlink:href\", \"#\" + id);\n });\n }\n }\n for (var i = 0, ii = els.length; i < ii; i++) {\n it = els[i];\n urltest(it, \"fill\");\n urltest(it, \"stroke\");\n urltest(it, \"filter\");\n urltest(it, \"mask\");\n urltest(it, \"clip-path\");\n linktest(it);\n var oldid = $(it.node, \"id\");\n if (oldid) {\n $(it.node, {id: it.id});\n ids.push({\n old: oldid,\n id: it.id\n });\n }\n }\n for (i = 0, ii = ids.length; i < ii; i++) {\n var fs = uses[ids[i].old];\n if (fs) {\n for (var j = 0, jj = fs.length; j < jj; j++) {\n fs[j](ids[i].id);\n }\n }\n }\n }\n /*\\\n * Element.clone\n [ method ]\n **\n * Creates a clone of the element and inserts it after the element\n **\n = (Element) the clone\n \\*/\n elproto.clone = function () {\n var clone = wrap(this.node.cloneNode(true));\n if ($(clone.node, \"id\")) {\n $(clone.node, {id: clone.id});\n }\n fixids(clone);\n clone.insertAfter(this);\n return clone;\n };\n /*\\\n * Element.toDefs\n [ method ]\n **\n * Moves element to the shared `` area\n **\n = (Element) the element\n \\*/\n elproto.toDefs = function () {\n var defs = getSomeDefs(this);\n defs.appendChild(this.node);\n return this;\n };\n /*\\\n * Element.toPattern\n [ method ]\n **\n * Creates a `` element from the current element\n **\n * To create a pattern you have to specify the pattern rect:\n - x (string|number)\n - y (string|number)\n - width (string|number)\n - height (string|number)\n = (Element) the `` element\n * You can use pattern later on as an argument for `fill` attribute:\n | var p = paper.path(\"M10-5-10,15M15,0,0,15M0-5-20,15\").attr({\n | fill: \"none\",\n | stroke: \"#bada55\",\n | strokeWidth: 5\n | }).pattern(0, 0, 10, 10),\n | c = paper.circle(200, 200, 100);\n | c.attr({\n | fill: p\n | });\n \\*/\n elproto.pattern = elproto.toPattern = function (x, y, width, height) {\n var p = make(\"pattern\", getSomeDefs(this));\n if (x == null) {\n x = this.getBBox();\n }\n if (is(x, \"object\") && \"x\" in x) {\n y = x.y;\n width = x.width;\n height = x.height;\n x = x.x;\n }\n $(p.node, {\n x: x,\n y: y,\n width: width,\n height: height,\n patternUnits: \"userSpaceOnUse\",\n id: p.id,\n viewBox: [x, y, width, height].join(\" \")\n });\n p.node.appendChild(this.node);\n return p;\n };\n// SIERRA Element.marker(): clarify what a reference point is. E.g., helps you offset the object from its edge such as when centering it over a path.\n// SIERRA Element.marker(): I suggest the method should accept default reference point values. Perhaps centered with (refX = width/2) and (refY = height/2)? Also, couldn't it assume the element's current _width_ and _height_? And please specify what _x_ and _y_ mean: offsets? If so, from where? Couldn't they also be assigned default values?\n /*\\\n * Element.marker\n [ method ]\n **\n * Creates a `` element from the current element\n **\n * To create a marker you have to specify the bounding rect and reference point:\n - x (number)\n - y (number)\n - width (number)\n - height (number)\n - refX (number)\n - refY (number)\n = (Element) the `` element\n * You can specify the marker later as an argument for `marker-start`, `marker-end`, `marker-mid`, and `marker` attributes. The `marker` attribute places the marker at every point along the path, and `marker-mid` places them at every point except the start and end.\n \\*/\n // TODO add usage for markers\n elproto.marker = function (x, y, width, height, refX, refY) {\n var p = make(\"marker\", getSomeDefs(this));\n if (x == null) {\n x = this.getBBox();\n }\n if (is(x, \"object\") && \"x\" in x) {\n y = x.y;\n width = x.width;\n height = x.height;\n refX = x.refX || x.cx;\n refY = x.refY || x.cy;\n x = x.x;\n }\n $(p.node, {\n viewBox: [x, y, width, height].join(\" \"),\n markerWidth: width,\n markerHeight: height,\n orient: \"auto\",\n refX: refX || 0,\n refY: refY || 0,\n id: p.id\n });\n p.node.appendChild(this.node);\n return p;\n };\n var eldata = {};\n /*\\\n * Element.data\n [ method ]\n **\n * Adds or retrieves given value associated with given key. (Don’t confuse\n * with `data-` attributes)\n *\n * See also @Element.removeData\n - key (string) key to store data\n - value (any) #optional value to store\n = (object) @Element\n * or, if value is not specified:\n = (any) value\n > Usage\n | for (var i = 0, i < 5, i++) {\n | paper.circle(10 + 15 * i, 10, 10)\n | .attr({fill: \"#000\"})\n | .data(\"i\", i)\n | .click(function () {\n | alert(this.data(\"i\"));\n | });\n | }\n \\*/\n elproto.data = function (key, value) {\n var data = eldata[this.id] = eldata[this.id] || {};\n if (arguments.length == 0){\n eve(\"snap.data.get.\" + this.id, this, data, null);\n return data;\n }\n if (arguments.length == 1) {\n if (Snap.is(key, \"object\")) {\n for (var i in key) if (key[has](i)) {\n this.data(i, key[i]);\n }\n return this;\n }\n eve(\"snap.data.get.\" + this.id, this, data[key], key);\n return data[key];\n }\n data[key] = value;\n eve(\"snap.data.set.\" + this.id, this, value, key);\n return this;\n };\n /*\\\n * Element.removeData\n [ method ]\n **\n * Removes value associated with an element by given key.\n * If key is not provided, removes all the data of the element.\n - key (string) #optional key\n = (object) @Element\n \\*/\n elproto.removeData = function (key) {\n if (key == null) {\n eldata[this.id] = {};\n } else {\n eldata[this.id] && delete eldata[this.id][key];\n }\n return this;\n };\n /*\\\n * Element.outerSVG\n [ method ]\n **\n * Returns SVG code for the element, equivalent to HTML's `outerHTML`.\n *\n * See also @Element.innerSVG\n = (string) SVG code for the element\n \\*/\n /*\\\n * Element.toString\n [ method ]\n **\n * See @Element.outerSVG\n \\*/\n elproto.outerSVG = elproto.toString = toString(1);\n /*\\\n * Element.innerSVG\n [ method ]\n **\n * Returns SVG code for the element's contents, equivalent to HTML's `innerHTML`\n = (string) SVG code for the element\n \\*/\n elproto.innerSVG = toString();\n function toString(type) {\n return function () {\n var res = type ? \"<\" + this.type : \"\",\n attr = this.node.attributes,\n chld = this.node.childNodes;\n if (type) {\n for (var i = 0, ii = attr.length; i < ii; i++) {\n res += \" \" + attr[i].name + '=\"' +\n attr[i].value.replace(/\"/g, '\\\\\"') + '\"';\n }\n }\n if (chld.length) {\n type && (res += \">\");\n for (i = 0, ii = chld.length; i < ii; i++) {\n if (chld[i].nodeType == 3) {\n res += chld[i].nodeValue;\n } else if (chld[i].nodeType == 1) {\n res += wrap(chld[i]).toString();\n }\n }\n type && (res += \"\");\n } else {\n type && (res += \"/>\");\n }\n return res;\n };\n }\n elproto.toDataURL = function () {\n if (window && window.btoa) {\n var bb = this.getBBox(),\n svg = Snap.format('{contents}', {\n x: +bb.x.toFixed(3),\n y: +bb.y.toFixed(3),\n width: +bb.width.toFixed(3),\n height: +bb.height.toFixed(3),\n contents: this.outerSVG()\n });\n return \"data:image/svg+xml;base64,\" + btoa(unescape(encodeURIComponent(svg)));\n }\n };\n /*\\\n * Fragment.select\n [ method ]\n **\n * See @Element.select\n \\*/\n Fragment.prototype.select = elproto.select;\n /*\\\n * Fragment.selectAll\n [ method ]\n **\n * See @Element.selectAll\n \\*/\n Fragment.prototype.selectAll = elproto.selectAll;\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var objectToString = Object.prototype.toString,\n Str = String,\n math = Math,\n E = \"\";\n function Matrix(a, b, c, d, e, f) {\n if (b == null && objectToString.call(a) == \"[object SVGMatrix]\") {\n this.a = a.a;\n this.b = a.b;\n this.c = a.c;\n this.d = a.d;\n this.e = a.e;\n this.f = a.f;\n return;\n }\n if (a != null) {\n this.a = +a;\n this.b = +b;\n this.c = +c;\n this.d = +d;\n this.e = +e;\n this.f = +f;\n } else {\n this.a = 1;\n this.b = 0;\n this.c = 0;\n this.d = 1;\n this.e = 0;\n this.f = 0;\n }\n }\n (function (matrixproto) {\n /*\\\n * Matrix.add\n [ method ]\n **\n * Adds the given matrix to existing one\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n * or\n - matrix (object) @Matrix\n \\*/\n matrixproto.add = function (a, b, c, d, e, f) {\n if (a && a instanceof Matrix) {\n return this.add(a.a, a.b, a.c, a.d, a.e, a.f);\n }\n var aNew = a * this.a + b * this.c,\n bNew = a * this.b + b * this.d;\n this.e += e * this.a + f * this.c;\n this.f += e * this.b + f * this.d;\n this.c = c * this.a + d * this.c;\n this.d = c * this.b + d * this.d;\n\n this.a = aNew;\n this.b = bNew;\n return this;\n };\n /*\\\n * Matrix.multLeft\n [ method ]\n **\n * Multiplies a passed affine transform to the left: M * this.\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n * or\n - matrix (object) @Matrix\n \\*/\n Matrix.prototype.multLeft = function (a, b, c, d, e, f) {\n if (a && a instanceof Matrix) {\n return this.multLeft(a.a, a.b, a.c, a.d, a.e, a.f);\n }\n var aNew = a * this.a + c * this.b,\n cNew = a * this.c + c * this.d,\n eNew = a * this.e + c * this.f + e;\n this.b = b * this.a + d * this.b;\n this.d = b * this.c + d * this.d;\n this.f = b * this.e + d * this.f + f;\n\n this.a = aNew;\n this.c = cNew;\n this.e = eNew;\n return this;\n };\n /*\\\n * Matrix.invert\n [ method ]\n **\n * Returns an inverted version of the matrix\n = (object) @Matrix\n \\*/\n matrixproto.invert = function () {\n var me = this,\n x = me.a * me.d - me.b * me.c;\n return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x);\n };\n /*\\\n * Matrix.clone\n [ method ]\n **\n * Returns a copy of the matrix\n = (object) @Matrix\n \\*/\n matrixproto.clone = function () {\n return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\n };\n /*\\\n * Matrix.translate\n [ method ]\n **\n * Translate the matrix\n - x (number) horizontal offset distance\n - y (number) vertical offset distance\n \\*/\n matrixproto.translate = function (x, y) {\n this.e += x * this.a + y * this.c;\n this.f += x * this.b + y * this.d;\n return this;\n };\n /*\\\n * Matrix.scale\n [ method ]\n **\n * Scales the matrix\n - x (number) amount to be scaled, with `1` resulting in no change\n - y (number) #optional amount to scale along the vertical axis. (Otherwise `x` applies to both axes.)\n - cx (number) #optional horizontal origin point from which to scale\n - cy (number) #optional vertical origin point from which to scale\n * Default cx, cy is the middle point of the element.\n \\*/\n matrixproto.scale = function (x, y, cx, cy) {\n y == null && (y = x);\n (cx || cy) && this.translate(cx, cy);\n this.a *= x;\n this.b *= x;\n this.c *= y;\n this.d *= y;\n (cx || cy) && this.translate(-cx, -cy);\n return this;\n };\n /*\\\n * Matrix.rotate\n [ method ]\n **\n * Rotates the matrix\n - a (number) angle of rotation, in degrees\n - x (number) horizontal origin point from which to rotate\n - y (number) vertical origin point from which to rotate\n \\*/\n matrixproto.rotate = function (a, x, y) {\n a = Snap.rad(a);\n x = x || 0;\n y = y || 0;\n var cos = +math.cos(a).toFixed(9),\n sin = +math.sin(a).toFixed(9);\n this.add(cos, sin, -sin, cos, x, y);\n return this.add(1, 0, 0, 1, -x, -y);\n };\n /*\\\n * Matrix.skewX\n [ method ]\n **\n * Skews the matrix along the x-axis\n - x (number) Angle to skew along the x-axis (in degrees).\n \\*/\n matrixproto.skewX = function (x) {\n return this.skew(x, 0);\n };\n /*\\\n * Matrix.skewY\n [ method ]\n **\n * Skews the matrix along the y-axis\n - y (number) Angle to skew along the y-axis (in degrees).\n \\*/\n matrixproto.skewY = function (y) {\n return this.skew(0, y);\n };\n /*\\\n * Matrix.skew\n [ method ]\n **\n * Skews the matrix\n - y (number) Angle to skew along the y-axis (in degrees).\n - x (number) Angle to skew along the x-axis (in degrees).\n \\*/\n matrixproto.skew = function (x, y) {\n x = x || 0;\n y = y || 0;\n x = Snap.rad(x);\n y = Snap.rad(y);\n var c = math.tan(x).toFixed(9);\n var b = math.tan(y).toFixed(9);\n return this.add(1, b, c, 1, 0, 0);\n };\n /*\\\n * Matrix.x\n [ method ]\n **\n * Returns x coordinate for given point after transformation described by the matrix. See also @Matrix.y\n - x (number)\n - y (number)\n = (number) x\n \\*/\n matrixproto.x = function (x, y) {\n return x * this.a + y * this.c + this.e;\n };\n /*\\\n * Matrix.y\n [ method ]\n **\n * Returns y coordinate for given point after transformation described by the matrix. See also @Matrix.x\n - x (number)\n - y (number)\n = (number) y\n \\*/\n matrixproto.y = function (x, y) {\n return x * this.b + y * this.d + this.f;\n };\n matrixproto.get = function (i) {\n return +this[Str.fromCharCode(97 + i)].toFixed(4);\n };\n matrixproto.toString = function () {\n return \"matrix(\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + \")\";\n };\n matrixproto.offset = function () {\n return [this.e.toFixed(4), this.f.toFixed(4)];\n };\n function norm(a) {\n return a[0] * a[0] + a[1] * a[1];\n }\n function normalize(a) {\n var mag = math.sqrt(norm(a));\n a[0] && (a[0] /= mag);\n a[1] && (a[1] /= mag);\n }\n /*\\\n * Matrix.determinant\n [ method ]\n **\n * Finds determinant of the given matrix.\n = (number) determinant\n \\*/\n matrixproto.determinant = function () {\n return this.a * this.d - this.b * this.c;\n };\n /*\\\n * Matrix.split\n [ method ]\n **\n * Splits matrix into primitive transformations\n = (object) in format:\n o dx (number) translation by x\n o dy (number) translation by y\n o scalex (number) scale by x\n o scaley (number) scale by y\n o shear (number) shear\n o rotate (number) rotation in deg\n o isSimple (boolean) could it be represented via simple transformations\n \\*/\n matrixproto.split = function () {\n var out = {};\n // translation\n out.dx = this.e;\n out.dy = this.f;\n\n // scale and shear\n var row = [[this.a, this.b], [this.c, this.d]];\n out.scalex = math.sqrt(norm(row[0]));\n normalize(row[0]);\n\n out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];\n row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear];\n\n out.scaley = math.sqrt(norm(row[1]));\n normalize(row[1]);\n out.shear /= out.scaley;\n\n if (this.determinant() < 0) {\n out.scalex = -out.scalex;\n }\n\n // rotation\n var sin = row[0][1],\n cos = row[1][1];\n if (cos < 0) {\n out.rotate = Snap.deg(math.acos(cos));\n if (sin < 0) {\n out.rotate = 360 - out.rotate;\n }\n } else {\n out.rotate = Snap.deg(math.asin(sin));\n }\n\n out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);\n out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate;\n out.noRotation = !+out.shear.toFixed(9) && !out.rotate;\n return out;\n };\n /*\\\n * Matrix.toTransformString\n [ method ]\n **\n * Returns transform string that represents given matrix\n = (string) transform string\n \\*/\n matrixproto.toTransformString = function (shorter) {\n var s = shorter || this.split();\n if (!+s.shear.toFixed(9)) {\n s.scalex = +s.scalex.toFixed(4);\n s.scaley = +s.scaley.toFixed(4);\n s.rotate = +s.rotate.toFixed(4);\n return (s.dx || s.dy ? \"t\" + [+s.dx.toFixed(4), +s.dy.toFixed(4)] : E) +\n (s.rotate ? \"r\" + [+s.rotate.toFixed(4), 0, 0] : E) +\n (s.scalex != 1 || s.scaley != 1 ? \"s\" + [s.scalex, s.scaley, 0, 0] : E);\n } else {\n return \"m\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)];\n }\n };\n })(Matrix.prototype);\n /*\\\n * Snap.Matrix\n [ method ]\n **\n * Matrix constructor, extend on your own risk.\n * To create matrices use @Snap.matrix.\n \\*/\n Snap.Matrix = Matrix;\n /*\\\n * Snap.matrix\n [ method ]\n **\n * Utility method\n **\n * Returns a matrix based on the given parameters\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n * or\n - svgMatrix (SVGMatrix)\n = (object) @Matrix\n \\*/\n Snap.matrix = function (a, b, c, d, e, f) {\n return new Matrix(a, b, c, d, e, f);\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var has = \"hasOwnProperty\",\n make = Snap._.make,\n wrap = Snap._.wrap,\n is = Snap.is,\n getSomeDefs = Snap._.getSomeDefs,\n reURLValue = /^url\\((['\"]?)([^)]+)\\1\\)$/,\n $ = Snap._.$,\n URL = Snap.url,\n Str = String,\n separator = Snap._.separator,\n E = \"\";\n /*\\\n * Snap.deurl\n [ method ]\n **\n * Unwraps path from `\"url()\"`.\n - value (string) url path\n = (string) unwrapped path\n \\*/\n Snap.deurl = function (value) {\n var res = String(value).match(reURLValue);\n return res ? res[2] : value;\n }\n // Attributes event handlers\n eve.on(\"snap.util.attr.mask\", function (value) {\n if (value instanceof Element || value instanceof Fragment) {\n eve.stop();\n if (value instanceof Fragment && value.node.childNodes.length == 1) {\n value = value.node.firstChild;\n getSomeDefs(this).appendChild(value);\n value = wrap(value);\n }\n if (value.type == \"mask\") {\n var mask = value;\n } else {\n mask = make(\"mask\", getSomeDefs(this));\n mask.node.appendChild(value.node);\n }\n !mask.node.id && $(mask.node, {\n id: mask.id\n });\n $(this.node, {\n mask: URL(mask.id)\n });\n }\n });\n (function (clipIt) {\n eve.on(\"snap.util.attr.clip\", clipIt);\n eve.on(\"snap.util.attr.clip-path\", clipIt);\n eve.on(\"snap.util.attr.clipPath\", clipIt);\n }(function (value) {\n if (value instanceof Element || value instanceof Fragment) {\n eve.stop();\n var clip,\n node = value.node;\n while (node) {\n if (node.nodeName === \"clipPath\") {\n clip = new Element(node);\n break;\n }\n if (node.nodeName === \"svg\") {\n clip = undefined;\n break;\n }\n node = node.parentNode;\n }\n if (!clip) {\n clip = make(\"clipPath\", getSomeDefs(this));\n clip.node.appendChild(value.node);\n !clip.node.id && $(clip.node, {\n id: clip.id\n });\n }\n $(this.node, {\n \"clip-path\": URL(clip.node.id || clip.id)\n });\n }\n }));\n function fillStroke(name) {\n return function (value) {\n eve.stop();\n if (value instanceof Fragment && value.node.childNodes.length == 1 &&\n (value.node.firstChild.tagName == \"radialGradient\" ||\n value.node.firstChild.tagName == \"linearGradient\" ||\n value.node.firstChild.tagName == \"pattern\")) {\n value = value.node.firstChild;\n getSomeDefs(this).appendChild(value);\n value = wrap(value);\n }\n if (value instanceof Element) {\n if (value.type == \"radialGradient\" || value.type == \"linearGradient\"\n || value.type == \"pattern\") {\n if (!value.node.id) {\n $(value.node, {\n id: value.id\n });\n }\n var fill = URL(value.node.id);\n } else {\n fill = value.attr(name);\n }\n } else {\n fill = Snap.color(value);\n if (fill.error) {\n var grad = Snap(getSomeDefs(this).ownerSVGElement).gradient(value);\n if (grad) {\n if (!grad.node.id) {\n $(grad.node, {\n id: grad.id\n });\n }\n fill = URL(grad.node.id);\n } else {\n fill = value;\n }\n } else {\n fill = Str(fill);\n }\n }\n var attrs = {};\n attrs[name] = fill;\n $(this.node, attrs);\n this.node.style[name] = E;\n };\n }\n eve.on(\"snap.util.attr.fill\", fillStroke(\"fill\"));\n eve.on(\"snap.util.attr.stroke\", fillStroke(\"stroke\"));\n var gradrg = /^([lr])(?:\\(([^)]*)\\))?(.*)$/i;\n eve.on(\"snap.util.grad.parse\", function parseGrad(string) {\n string = Str(string);\n var tokens = string.match(gradrg);\n if (!tokens) {\n return null;\n }\n var type = tokens[1],\n params = tokens[2],\n stops = tokens[3];\n params = params.split(/\\s*,\\s*/).map(function (el) {\n return +el == el ? +el : el;\n });\n if (params.length == 1 && params[0] == 0) {\n params = [];\n }\n stops = stops.split(\"-\");\n stops = stops.map(function (el) {\n el = el.split(\":\");\n var out = {\n color: el[0]\n };\n if (el[1]) {\n out.offset = parseFloat(el[1]);\n }\n return out;\n });\n var len = stops.length,\n start = 0,\n j = 0;\n function seed(i, end) {\n var step = (end - start) / (i - j);\n for (var k = j; k < i; k++) {\n stops[k].offset = +(+start + step * (k - j)).toFixed(2);\n }\n j = i;\n start = end;\n }\n len--;\n for (var i = 0; i < len; i++) if (\"offset\" in stops[i]) {\n seed(i, stops[i].offset);\n }\n stops[len].offset = stops[len].offset || 100;\n seed(len, stops[len].offset);\n return {\n type: type,\n params: params,\n stops: stops\n };\n });\n\n eve.on(\"snap.util.attr.d\", function (value) {\n eve.stop();\n if (is(value, \"array\") && is(value[0], \"array\")) {\n value = Snap.path.toString.call(value);\n }\n value = Str(value);\n if (value.match(/[ruo]/i)) {\n value = Snap.path.toAbsolute(value);\n }\n $(this.node, {d: value});\n })(-1);\n eve.on(\"snap.util.attr.#text\", function (value) {\n eve.stop();\n value = Str(value);\n var txt = glob.doc.createTextNode(value);\n while (this.node.firstChild) {\n this.node.removeChild(this.node.firstChild);\n }\n this.node.appendChild(txt);\n })(-1);\n eve.on(\"snap.util.attr.path\", function (value) {\n eve.stop();\n this.attr({d: value});\n })(-1);\n eve.on(\"snap.util.attr.class\", function (value) {\n eve.stop();\n this.node.className.baseVal = value;\n })(-1);\n eve.on(\"snap.util.attr.viewBox\", function (value) {\n var vb;\n if (is(value, \"object\") && \"x\" in value) {\n vb = [value.x, value.y, value.width, value.height].join(\" \");\n } else if (is(value, \"array\")) {\n vb = value.join(\" \");\n } else {\n vb = value;\n }\n $(this.node, {\n viewBox: vb\n });\n eve.stop();\n })(-1);\n eve.on(\"snap.util.attr.transform\", function (value) {\n this.transform(value);\n eve.stop();\n })(-1);\n eve.on(\"snap.util.attr.r\", function (value) {\n if (this.type == \"rect\") {\n eve.stop();\n $(this.node, {\n rx: value,\n ry: value\n });\n }\n })(-1);\n eve.on(\"snap.util.attr.textpath\", function (value) {\n eve.stop();\n if (this.type == \"text\") {\n var id, tp, node;\n if (!value && this.textPath) {\n tp = this.textPath;\n while (tp.node.firstChild) {\n this.node.appendChild(tp.node.firstChild);\n }\n tp.remove();\n delete this.textPath;\n return;\n }\n if (is(value, \"string\")) {\n var defs = getSomeDefs(this),\n path = wrap(defs.parentNode).path(value);\n defs.appendChild(path.node);\n id = path.id;\n path.attr({id: id});\n } else {\n value = wrap(value);\n if (value instanceof Element) {\n id = value.attr(\"id\");\n if (!id) {\n id = value.id;\n value.attr({id: id});\n }\n }\n }\n if (id) {\n tp = this.textPath;\n node = this.node;\n if (tp) {\n tp.attr({\"xlink:href\": \"#\" + id});\n } else {\n tp = $(\"textPath\", {\n \"xlink:href\": \"#\" + id\n });\n while (node.firstChild) {\n tp.appendChild(node.firstChild);\n }\n node.appendChild(tp);\n this.textPath = wrap(tp);\n }\n }\n }\n })(-1);\n eve.on(\"snap.util.attr.text\", function (value) {\n if (this.type == \"text\") {\n var i = 0,\n node = this.node,\n tuner = function (chunk) {\n var out = $(\"tspan\");\n if (is(chunk, \"array\")) {\n for (var i = 0; i < chunk.length; i++) {\n out.appendChild(tuner(chunk[i]));\n }\n } else {\n out.appendChild(glob.doc.createTextNode(chunk));\n }\n out.normalize && out.normalize();\n return out;\n };\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n var tuned = tuner(value);\n while (tuned.firstChild) {\n node.appendChild(tuned.firstChild);\n }\n }\n eve.stop();\n })(-1);\n function setFontSize(value) {\n eve.stop();\n if (value == +value) {\n value += \"px\";\n }\n this.node.style.fontSize = value;\n }\n eve.on(\"snap.util.attr.fontSize\", setFontSize)(-1);\n eve.on(\"snap.util.attr.font-size\", setFontSize)(-1);\n\n\n eve.on(\"snap.util.getattr.transform\", function () {\n eve.stop();\n return this.transform();\n })(-1);\n eve.on(\"snap.util.getattr.textpath\", function () {\n eve.stop();\n return this.textPath;\n })(-1);\n // Markers\n (function () {\n function getter(end) {\n return function () {\n eve.stop();\n var style = glob.doc.defaultView.getComputedStyle(this.node, null).getPropertyValue(\"marker-\" + end);\n if (style == \"none\") {\n return style;\n } else {\n return Snap(glob.doc.getElementById(style.match(reURLValue)[1]));\n }\n };\n }\n function setter(end) {\n return function (value) {\n eve.stop();\n var name = \"marker\" + end.charAt(0).toUpperCase() + end.substring(1);\n if (value == \"\" || !value) {\n this.node.style[name] = \"none\";\n return;\n }\n if (value.type == \"marker\") {\n var id = value.node.id;\n if (!id) {\n $(value.node, {id: value.id});\n }\n this.node.style[name] = URL(id);\n return;\n }\n };\n }\n eve.on(\"snap.util.getattr.marker-end\", getter(\"end\"))(-1);\n eve.on(\"snap.util.getattr.markerEnd\", getter(\"end\"))(-1);\n eve.on(\"snap.util.getattr.marker-start\", getter(\"start\"))(-1);\n eve.on(\"snap.util.getattr.markerStart\", getter(\"start\"))(-1);\n eve.on(\"snap.util.getattr.marker-mid\", getter(\"mid\"))(-1);\n eve.on(\"snap.util.getattr.markerMid\", getter(\"mid\"))(-1);\n eve.on(\"snap.util.attr.marker-end\", setter(\"end\"))(-1);\n eve.on(\"snap.util.attr.markerEnd\", setter(\"end\"))(-1);\n eve.on(\"snap.util.attr.marker-start\", setter(\"start\"))(-1);\n eve.on(\"snap.util.attr.markerStart\", setter(\"start\"))(-1);\n eve.on(\"snap.util.attr.marker-mid\", setter(\"mid\"))(-1);\n eve.on(\"snap.util.attr.markerMid\", setter(\"mid\"))(-1);\n }());\n eve.on(\"snap.util.getattr.r\", function () {\n if (this.type == \"rect\" && $(this.node, \"rx\") == $(this.node, \"ry\")) {\n eve.stop();\n return $(this.node, \"rx\");\n }\n })(-1);\n function textExtract(node) {\n var out = [];\n var children = node.childNodes;\n for (var i = 0, ii = children.length; i < ii; i++) {\n var chi = children[i];\n if (chi.nodeType == 3) {\n out.push(chi.nodeValue);\n }\n if (chi.tagName == \"tspan\") {\n if (chi.childNodes.length == 1 && chi.firstChild.nodeType == 3) {\n out.push(chi.firstChild.nodeValue);\n } else {\n out.push(textExtract(chi));\n }\n }\n }\n return out;\n }\n eve.on(\"snap.util.getattr.text\", function () {\n if (this.type == \"text\" || this.type == \"tspan\") {\n eve.stop();\n var out = textExtract(this.node);\n return out.length == 1 ? out[0] : out;\n }\n })(-1);\n eve.on(\"snap.util.getattr.#text\", function () {\n return this.node.textContent;\n })(-1);\n eve.on(\"snap.util.getattr.fill\", function (internal) {\n if (internal) {\n return;\n }\n eve.stop();\n var value = eve(\"snap.util.getattr.fill\", this, true).firstDefined();\n return Snap(Snap.deurl(value)) || value;\n })(-1);\n eve.on(\"snap.util.getattr.stroke\", function (internal) {\n if (internal) {\n return;\n }\n eve.stop();\n var value = eve(\"snap.util.getattr.stroke\", this, true).firstDefined();\n return Snap(Snap.deurl(value)) || value;\n })(-1);\n eve.on(\"snap.util.getattr.viewBox\", function () {\n eve.stop();\n var vb = $(this.node, \"viewBox\");\n if (vb) {\n vb = vb.split(separator);\n return Snap._.box(+vb[0], +vb[1], +vb[2], +vb[3]);\n } else {\n return;\n }\n })(-1);\n eve.on(\"snap.util.getattr.points\", function () {\n var p = $(this.node, \"points\");\n eve.stop();\n if (p) {\n return p.split(separator);\n } else {\n return;\n }\n })(-1);\n eve.on(\"snap.util.getattr.path\", function () {\n var p = $(this.node, \"d\");\n eve.stop();\n return p;\n })(-1);\n eve.on(\"snap.util.getattr.class\", function () {\n return this.node.className.baseVal;\n })(-1);\n function getFontSize() {\n eve.stop();\n return this.node.style.fontSize;\n }\n eve.on(\"snap.util.getattr.fontSize\", getFontSize)(-1);\n eve.on(\"snap.util.getattr.font-size\", getFontSize)(-1);\n});\n\n// Copyright (c) 2014 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var rgNotSpace = /\\S+/g,\n rgBadSpace = /[\\t\\r\\n\\f]/g,\n rgTrim = /(^\\s+|\\s+$)/g,\n Str = String,\n elproto = Element.prototype;\n /*\\\n * Element.addClass\n [ method ]\n **\n * Adds given class name or list of class names to the element.\n - value (string) class name or space separated list of class names\n **\n = (Element) original element.\n \\*/\n elproto.addClass = function (value) {\n var classes = Str(value || \"\").match(rgNotSpace) || [],\n elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [],\n j,\n pos,\n clazz,\n finalValue;\n\n if (classes.length) {\n j = 0;\n while (clazz = classes[j++]) {\n pos = curClasses.indexOf(clazz);\n if (!~pos) {\n curClasses.push(clazz);\n }\n }\n\n finalValue = curClasses.join(\" \");\n if (className != finalValue) {\n elem.className.baseVal = finalValue;\n }\n }\n return this;\n };\n /*\\\n * Element.removeClass\n [ method ]\n **\n * Removes given class name or list of class names from the element.\n - value (string) class name or space separated list of class names\n **\n = (Element) original element.\n \\*/\n elproto.removeClass = function (value) {\n var classes = Str(value || \"\").match(rgNotSpace) || [],\n elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [],\n j,\n pos,\n clazz,\n finalValue;\n if (curClasses.length) {\n j = 0;\n while (clazz = classes[j++]) {\n pos = curClasses.indexOf(clazz);\n if (~pos) {\n curClasses.splice(pos, 1);\n }\n }\n\n finalValue = curClasses.join(\" \");\n if (className != finalValue) {\n elem.className.baseVal = finalValue;\n }\n }\n return this;\n };\n /*\\\n * Element.hasClass\n [ method ]\n **\n * Checks if the element has a given class name in the list of class names applied to it.\n - value (string) class name\n **\n = (boolean) `true` if the element has given class\n \\*/\n elproto.hasClass = function (value) {\n var elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [];\n return !!~curClasses.indexOf(value);\n };\n /*\\\n * Element.toggleClass\n [ method ]\n **\n * Add or remove one or more classes from the element, depending on either\n * the class’s presence or the value of the `flag` argument.\n - value (string) class name or space separated list of class names\n - flag (boolean) value to determine whether the class should be added or removed\n **\n = (Element) original element.\n \\*/\n elproto.toggleClass = function (value, flag) {\n if (flag != null) {\n if (flag) {\n return this.addClass(value);\n } else {\n return this.removeClass(value);\n }\n }\n var classes = (value || \"\").match(rgNotSpace) || [],\n elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [],\n j,\n pos,\n clazz,\n finalValue;\n j = 0;\n while (clazz = classes[j++]) {\n pos = curClasses.indexOf(clazz);\n if (~pos) {\n curClasses.splice(pos, 1);\n } else {\n curClasses.push(clazz);\n }\n }\n\n finalValue = curClasses.join(\" \");\n if (className != finalValue) {\n elem.className.baseVal = finalValue;\n }\n return this;\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var operators = {\n \"+\": function (x, y) {\n return x + y;\n },\n \"-\": function (x, y) {\n return x - y;\n },\n \"/\": function (x, y) {\n return x / y;\n },\n \"*\": function (x, y) {\n return x * y;\n }\n },\n Str = String,\n reUnit = /[a-z]+$/i,\n reAddon = /^\\s*([+\\-\\/*])\\s*=\\s*([\\d.eE+\\-]+)\\s*([^\\d\\s]+)?\\s*$/;\n function getNumber(val) {\n return val;\n }\n function getUnit(unit) {\n return function (val) {\n return +val.toFixed(3) + unit;\n };\n }\n eve.on(\"snap.util.attr\", function (val) {\n var plus = Str(val).match(reAddon);\n if (plus) {\n var evnt = eve.nt(),\n name = evnt.substring(evnt.lastIndexOf(\".\") + 1),\n a = this.attr(name),\n atr = {};\n eve.stop();\n var unit = plus[3] || \"\",\n aUnit = a.match(reUnit),\n op = operators[plus[1]];\n if (aUnit && aUnit == unit) {\n val = op(parseFloat(a), +plus[2]);\n } else {\n a = this.asPX(name);\n val = op(this.asPX(name), this.asPX(name, plus[2] + unit));\n }\n if (isNaN(a) || isNaN(val)) {\n return;\n }\n atr[name] = val;\n this.attr(atr);\n }\n })(-10);\n eve.on(\"snap.util.equal\", function (name, b) {\n var A, B, a = Str(this.attr(name) || \"\"),\n el = this,\n bplus = Str(b).match(reAddon);\n if (bplus) {\n eve.stop();\n var unit = bplus[3] || \"\",\n aUnit = a.match(reUnit),\n op = operators[bplus[1]];\n if (aUnit && aUnit == unit) {\n return {\n from: parseFloat(a),\n to: op(parseFloat(a), +bplus[2]),\n f: getUnit(aUnit)\n };\n } else {\n a = this.asPX(name);\n return {\n from: a,\n to: op(a, this.asPX(name, bplus[2] + unit)),\n f: getNumber\n };\n }\n }\n })(-10);\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var proto = Paper.prototype,\n is = Snap.is;\n /*\\\n * Paper.rect\n [ method ]\n *\n * Draws a rectangle\n **\n - x (number) x coordinate of the top left corner\n - y (number) y coordinate of the top left corner\n - width (number) width\n - height (number) height\n - rx (number) #optional horizontal radius for rounded corners, default is 0\n - ry (number) #optional vertical radius for rounded corners, default is rx or 0\n = (object) the `rect` element\n **\n > Usage\n | // regular rectangle\n | var c = paper.rect(10, 10, 50, 50);\n | // rectangle with rounded corners\n | var c = paper.rect(40, 40, 50, 50, 10);\n \\*/\n proto.rect = function (x, y, w, h, rx, ry) {\n var attr;\n if (ry == null) {\n ry = rx;\n }\n if (is(x, \"object\") && x == \"[object Object]\") {\n attr = x;\n } else if (x != null) {\n attr = {\n x: x,\n y: y,\n width: w,\n height: h\n };\n if (rx != null) {\n attr.rx = rx;\n attr.ry = ry;\n }\n }\n return this.el(\"rect\", attr);\n };\n /*\\\n * Paper.circle\n [ method ]\n **\n * Draws a circle\n **\n - x (number) x coordinate of the centre\n - y (number) y coordinate of the centre\n - r (number) radius\n = (object) the `circle` element\n **\n > Usage\n | var c = paper.circle(50, 50, 40);\n \\*/\n proto.circle = function (cx, cy, r) {\n var attr;\n if (is(cx, \"object\") && cx == \"[object Object]\") {\n attr = cx;\n } else if (cx != null) {\n attr = {\n cx: cx,\n cy: cy,\n r: r\n };\n }\n return this.el(\"circle\", attr);\n };\n\n var preload = (function () {\n function onerror() {\n this.parentNode.removeChild(this);\n }\n return function (src, f) {\n var img = glob.doc.createElement(\"img\"),\n body = glob.doc.body;\n img.style.cssText = \"position:absolute;left:-9999em;top:-9999em\";\n img.onload = function () {\n f.call(img);\n img.onload = img.onerror = null;\n body.removeChild(img);\n };\n img.onerror = onerror;\n body.appendChild(img);\n img.src = src;\n };\n }());\n\n /*\\\n * Paper.image\n [ method ]\n **\n * Places an image on the surface\n **\n - src (string) URI of the source image\n - x (number) x offset position\n - y (number) y offset position\n - width (number) width of the image\n - height (number) height of the image\n = (object) the `image` element\n * or\n = (object) Snap element object with type `image`\n **\n > Usage\n | var c = paper.image(\"apple.png\", 10, 10, 80, 80);\n \\*/\n proto.image = function (src, x, y, width, height) {\n var el = this.el(\"image\");\n if (is(src, \"object\") && \"src\" in src) {\n el.attr(src);\n } else if (src != null) {\n var set = {\n \"xlink:href\": src,\n preserveAspectRatio: \"none\"\n };\n if (x != null && y != null) {\n set.x = x;\n set.y = y;\n }\n if (width != null && height != null) {\n set.width = width;\n set.height = height;\n } else {\n preload(src, function () {\n Snap._.$(el.node, {\n width: this.offsetWidth,\n height: this.offsetHeight\n });\n });\n }\n Snap._.$(el.node, set);\n }\n return el;\n };\n /*\\\n * Paper.ellipse\n [ method ]\n **\n * Draws an ellipse\n **\n - x (number) x coordinate of the centre\n - y (number) y coordinate of the centre\n - rx (number) horizontal radius\n - ry (number) vertical radius\n = (object) the `ellipse` element\n **\n > Usage\n | var c = paper.ellipse(50, 50, 40, 20);\n \\*/\n proto.ellipse = function (cx, cy, rx, ry) {\n var attr;\n if (is(cx, \"object\") && cx == \"[object Object]\") {\n attr = cx;\n } else if (cx != null) {\n attr ={\n cx: cx,\n cy: cy,\n rx: rx,\n ry: ry\n };\n }\n return this.el(\"ellipse\", attr);\n };\n // SIERRA Paper.path(): Unclear from the link what a Catmull-Rom curveto is, and why it would make life any easier.\n /*\\\n * Paper.path\n [ method ]\n **\n * Creates a `` element using the given string as the path's definition\n - pathString (string) #optional path string in SVG format\n * Path string consists of one-letter commands, followed by comma seprarated arguments in numerical form. Example:\n | \"M10,20L30,40\"\n * This example features two commands: `M`, with arguments `(10, 20)` and `L` with arguments `(30, 40)`. Uppercase letter commands express coordinates in absolute terms, while lowercase commands express them in relative terms from the most recently declared coordinates.\n *\n #

Here is short list of commands available, for more details see SVG path string format or article about path strings at MDN.

\n # \n # \n # \n # \n # \n # \n # \n # \n # \n # \n # \n #
CommandNameParameters
Mmoveto(x y)+
Zclosepath(none)
Llineto(x y)+
Hhorizontal linetox+
Vvertical linetoy+
Ccurveto(x1 y1 x2 y2 x y)+
Ssmooth curveto(x2 y2 x y)+
Qquadratic Bézier curveto(x1 y1 x y)+
Tsmooth quadratic Bézier curveto(x y)+
Aelliptical arc(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+
RCatmull-Rom curveto*x1 y1 (x y)+
\n * * _Catmull-Rom curveto_ is a not standard SVG command and added to make life easier.\n * Note: there is a special case when a path consists of only three commands: `M10,10R…z`. In this case the path connects back to its starting point.\n > Usage\n | var c = paper.path(\"M10 10L90 90\");\n | // draw a diagonal line:\n | // move to 10,10, line to 90,90\n \\*/\n proto.path = function (d) {\n var attr;\n if (is(d, \"object\") && !is(d, \"array\")) {\n attr = d;\n } else if (d) {\n attr = {d: d};\n }\n return this.el(\"path\", attr);\n };\n /*\\\n * Paper.g\n [ method ]\n **\n * Creates a group element\n **\n - varargs (…) #optional elements to nest within the group\n = (object) the `g` element\n **\n > Usage\n | var c1 = paper.circle(),\n | c2 = paper.rect(),\n | g = paper.g(c2, c1); // note that the order of elements is different\n * or\n | var c1 = paper.circle(),\n | c2 = paper.rect(),\n | g = paper.g();\n | g.add(c2, c1);\n \\*/\n /*\\\n * Paper.group\n [ method ]\n **\n * See @Paper.g\n \\*/\n proto.group = proto.g = function (first) {\n var attr,\n el = this.el(\"g\");\n if (arguments.length == 1 && first && !first.type) {\n el.attr(first);\n } else if (arguments.length) {\n el.add(Array.prototype.slice.call(arguments, 0));\n }\n return el;\n };\n /*\\\n * Paper.svg\n [ method ]\n **\n * Creates a nested SVG element.\n - x (number) @optional X of the element\n - y (number) @optional Y of the element\n - width (number) @optional width of the element\n - height (number) @optional height of the element\n - vbx (number) @optional viewbox X\n - vby (number) @optional viewbox Y\n - vbw (number) @optional viewbox width\n - vbh (number) @optional viewbox height\n **\n = (object) the `svg` element\n **\n \\*/\n proto.svg = function (x, y, width, height, vbx, vby, vbw, vbh) {\n var attrs = {};\n if (is(x, \"object\") && y == null) {\n attrs = x;\n } else {\n if (x != null) {\n attrs.x = x;\n }\n if (y != null) {\n attrs.y = y;\n }\n if (width != null) {\n attrs.width = width;\n }\n if (height != null) {\n attrs.height = height;\n }\n if (vbx != null && vby != null && vbw != null && vbh != null) {\n attrs.viewBox = [vbx, vby, vbw, vbh];\n }\n }\n return this.el(\"svg\", attrs);\n };\n /*\\\n * Paper.mask\n [ method ]\n **\n * Equivalent in behaviour to @Paper.g, except it’s a mask.\n **\n = (object) the `mask` element\n **\n \\*/\n proto.mask = function (first) {\n var attr,\n el = this.el(\"mask\");\n if (arguments.length == 1 && first && !first.type) {\n el.attr(first);\n } else if (arguments.length) {\n el.add(Array.prototype.slice.call(arguments, 0));\n }\n return el;\n };\n /*\\\n * Paper.ptrn\n [ method ]\n **\n * Equivalent in behaviour to @Paper.g, except it’s a pattern.\n - x (number) @optional X of the element\n - y (number) @optional Y of the element\n - width (number) @optional width of the element\n - height (number) @optional height of the element\n - vbx (number) @optional viewbox X\n - vby (number) @optional viewbox Y\n - vbw (number) @optional viewbox width\n - vbh (number) @optional viewbox height\n **\n = (object) the `pattern` element\n **\n \\*/\n proto.ptrn = function (x, y, width, height, vx, vy, vw, vh) {\n if (is(x, \"object\")) {\n var attr = x;\n } else {\n attr = {patternUnits: \"userSpaceOnUse\"};\n if (x) {\n attr.x = x;\n }\n if (y) {\n attr.y = y;\n }\n if (width != null) {\n attr.width = width;\n }\n if (height != null) {\n attr.height = height;\n }\n if (vx != null && vy != null && vw != null && vh != null) {\n attr.viewBox = [vx, vy, vw, vh];\n } else {\n attr.viewBox = [x || 0, y || 0, width || 0, height || 0];\n }\n }\n return this.el(\"pattern\", attr);\n };\n /*\\\n * Paper.use\n [ method ]\n **\n * Creates a element.\n - id (string) @optional id of element to link\n * or\n - id (Element) @optional element to link\n **\n = (object) the `use` element\n **\n \\*/\n proto.use = function (id) {\n if (id != null) {\n if (id instanceof Element) {\n if (!id.attr(\"id\")) {\n id.attr({id: Snap._.id(id)});\n }\n id = id.attr(\"id\");\n }\n if (String(id).charAt() == \"#\") {\n id = id.substring(1);\n }\n return this.el(\"use\", {\"xlink:href\": \"#\" + id});\n } else {\n return Element.prototype.use.call(this);\n }\n };\n /*\\\n * Paper.symbol\n [ method ]\n **\n * Creates a element.\n - vbx (number) @optional viewbox X\n - vby (number) @optional viewbox Y\n - vbw (number) @optional viewbox width\n - vbh (number) @optional viewbox height\n = (object) the `symbol` element\n **\n \\*/\n proto.symbol = function (vx, vy, vw, vh) {\n var attr = {};\n if (vx != null && vy != null && vw != null && vh != null) {\n attr.viewBox = [vx, vy, vw, vh];\n }\n\n return this.el(\"symbol\", attr);\n };\n /*\\\n * Paper.text\n [ method ]\n **\n * Draws a text string\n **\n - x (number) x coordinate position\n - y (number) y coordinate position\n - text (string|array) The text string to draw or array of strings to nest within separate `` elements\n = (object) the `text` element\n **\n > Usage\n | var t1 = paper.text(50, 50, \"Snap\");\n | var t2 = paper.text(50, 50, [\"S\",\"n\",\"a\",\"p\"]);\n | // Text path usage\n | t1.attr({textpath: \"M10,10L100,100\"});\n | // or\n | var pth = paper.path(\"M10,10L100,100\");\n | t1.attr({textpath: pth});\n \\*/\n proto.text = function (x, y, text) {\n var attr = {};\n if (is(x, \"object\")) {\n attr = x;\n } else if (x != null) {\n attr = {\n x: x,\n y: y,\n text: text || \"\"\n };\n }\n return this.el(\"text\", attr);\n };\n /*\\\n * Paper.line\n [ method ]\n **\n * Draws a line\n **\n - x1 (number) x coordinate position of the start\n - y1 (number) y coordinate position of the start\n - x2 (number) x coordinate position of the end\n - y2 (number) y coordinate position of the end\n = (object) the `line` element\n **\n > Usage\n | var t1 = paper.line(50, 50, 100, 100);\n \\*/\n proto.line = function (x1, y1, x2, y2) {\n var attr = {};\n if (is(x1, \"object\")) {\n attr = x1;\n } else if (x1 != null) {\n attr = {\n x1: x1,\n x2: x2,\n y1: y1,\n y2: y2\n };\n }\n return this.el(\"line\", attr);\n };\n /*\\\n * Paper.polyline\n [ method ]\n **\n * Draws a polyline\n **\n - points (array) array of points\n * or\n - varargs (…) points\n = (object) the `polyline` element\n **\n > Usage\n | var p1 = paper.polyline([10, 10, 100, 100]);\n | var p2 = paper.polyline(10, 10, 100, 100);\n \\*/\n proto.polyline = function (points) {\n if (arguments.length > 1) {\n points = Array.prototype.slice.call(arguments, 0);\n }\n var attr = {};\n if (is(points, \"object\") && !is(points, \"array\")) {\n attr = points;\n } else if (points != null) {\n attr = {points: points};\n }\n return this.el(\"polyline\", attr);\n };\n /*\\\n * Paper.polygon\n [ method ]\n **\n * Draws a polygon. See @Paper.polyline\n \\*/\n proto.polygon = function (points) {\n if (arguments.length > 1) {\n points = Array.prototype.slice.call(arguments, 0);\n }\n var attr = {};\n if (is(points, \"object\") && !is(points, \"array\")) {\n attr = points;\n } else if (points != null) {\n attr = {points: points};\n }\n return this.el(\"polygon\", attr);\n };\n // gradients\n (function () {\n var $ = Snap._.$;\n // gradients' helpers\n /*\\\n * Element.stops\n [ method ]\n **\n * Only for gradients!\n * Returns array of gradient stops elements.\n = (array) the stops array.\n \\*/\n function Gstops() {\n return this.selectAll(\"stop\");\n }\n /*\\\n * Element.addStop\n [ method ]\n **\n * Only for gradients!\n * Adds another stop to the gradient.\n - color (string) stops color\n - offset (number) stops offset 0..100\n = (object) gradient element\n \\*/\n function GaddStop(color, offset) {\n var stop = $(\"stop\"),\n attr = {\n offset: +offset + \"%\"\n };\n color = Snap.color(color);\n attr[\"stop-color\"] = color.hex;\n if (color.opacity < 1) {\n attr[\"stop-opacity\"] = color.opacity;\n }\n $(stop, attr);\n var stops = this.stops(),\n inserted;\n for (var i = 0; i < stops.length; i++) {\n var stopOffset = parseFloat(stops[i].attr(\"offset\"));\n if (stopOffset > offset) {\n this.node.insertBefore(stop, stops[i].node);\n inserted = true;\n break;\n }\n }\n if (!inserted) {\n this.node.appendChild(stop);\n }\n return this;\n }\n function GgetBBox() {\n if (this.type == \"linearGradient\") {\n var x1 = $(this.node, \"x1\") || 0,\n x2 = $(this.node, \"x2\") || 1,\n y1 = $(this.node, \"y1\") || 0,\n y2 = $(this.node, \"y2\") || 0;\n return Snap._.box(x1, y1, math.abs(x2 - x1), math.abs(y2 - y1));\n } else {\n var cx = this.node.cx || .5,\n cy = this.node.cy || .5,\n r = this.node.r || 0;\n return Snap._.box(cx - r, cy - r, r * 2, r * 2);\n }\n }\n /*\\\n * Element.setStops\n [ method ]\n **\n * Only for gradients!\n * Updates stops of the gradient based on passed gradient descriptor. See @Ppaer.gradient\n - str (string) gradient descriptor part after `()`.\n = (object) gradient element\n | var g = paper.gradient(\"l(0, 0, 1, 1)#000-#f00-#fff\");\n | g.setStops(\"#fff-#000-#f00-#fc0\");\n \\*/\n function GsetStops(str) {\n var grad = str,\n stops = this.stops();\n if (typeof str == \"string\") {\n grad = eve(\"snap.util.grad.parse\", null, \"l(0,0,0,1)\" + str).firstDefined().stops;\n }\n if (!Snap.is(grad, \"array\")) {\n return;\n }\n for (var i = 0; i < stops.length; i++) {\n if (grad[i]) {\n var color = Snap.color(grad[i].color),\n attr = {\"offset\": grad[i].offset + \"%\"};\n attr[\"stop-color\"] = color.hex;\n if (color.opacity < 1) {\n attr[\"stop-opacity\"] = color.opacity;\n }\n stops[i].attr(attr);\n } else {\n stops[i].remove();\n }\n }\n for (i = stops.length; i < grad.length; i++) {\n this.addStop(grad[i].color, grad[i].offset);\n }\n return this;\n }\n function gradient(defs, str) {\n var grad = eve(\"snap.util.grad.parse\", null, str).firstDefined(),\n el;\n if (!grad) {\n return null;\n }\n grad.params.unshift(defs);\n if (grad.type.toLowerCase() == \"l\") {\n el = gradientLinear.apply(0, grad.params);\n } else {\n el = gradientRadial.apply(0, grad.params);\n }\n if (grad.type != grad.type.toLowerCase()) {\n $(el.node, {\n gradientUnits: \"userSpaceOnUse\"\n });\n }\n var stops = grad.stops,\n len = stops.length;\n for (var i = 0; i < len; i++) {\n var stop = stops[i];\n el.addStop(stop.color, stop.offset);\n }\n return el;\n }\n function gradientLinear(defs, x1, y1, x2, y2) {\n var el = Snap._.make(\"linearGradient\", defs);\n el.stops = Gstops;\n el.addStop = GaddStop;\n el.getBBox = GgetBBox;\n el.setStops = GsetStops;\n if (x1 != null) {\n $(el.node, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n }\n return el;\n }\n function gradientRadial(defs, cx, cy, r, fx, fy) {\n var el = Snap._.make(\"radialGradient\", defs);\n el.stops = Gstops;\n el.addStop = GaddStop;\n el.getBBox = GgetBBox;\n if (cx != null) {\n $(el.node, {\n cx: cx,\n cy: cy,\n r: r\n });\n }\n if (fx != null && fy != null) {\n $(el.node, {\n fx: fx,\n fy: fy\n });\n }\n return el;\n }\n /*\\\n * Paper.gradient\n [ method ]\n **\n * Creates a gradient element\n **\n - gradient (string) gradient descriptor\n > Gradient Descriptor\n * The gradient descriptor is an expression formatted as\n * follows: `()`. The `` can be\n * either linear or radial. The uppercase `L` or `R` letters\n * indicate absolute coordinates offset from the SVG surface.\n * Lowercase `l` or `r` letters indicate coordinates\n * calculated relative to the element to which the gradient is\n * applied. Coordinates specify a linear gradient vector as\n * `x1`, `y1`, `x2`, `y2`, or a radial gradient as `cx`, `cy`,\n * `r` and optional `fx`, `fy` specifying a focal point away\n * from the center of the circle. Specify `` as a list\n * of dash-separated CSS color values. Each color may be\n * followed by a custom offset value, separated with a colon\n * character.\n > Examples\n * Linear gradient, relative from top-left corner to bottom-right\n * corner, from black through red to white:\n | var g = paper.gradient(\"l(0, 0, 1, 1)#000-#f00-#fff\");\n * Linear gradient, absolute from (0, 0) to (100, 100), from black\n * through red at 25% to white:\n | var g = paper.gradient(\"L(0, 0, 100, 100)#000-#f00:25-#fff\");\n * Radial gradient, relative from the center of the element with radius\n * half the width, from black to white:\n | var g = paper.gradient(\"r(0.5, 0.5, 0.5)#000-#fff\");\n * To apply the gradient:\n | paper.circle(50, 50, 40).attr({\n | fill: g\n | });\n = (object) the `gradient` element\n \\*/\n proto.gradient = function (str) {\n return gradient(this.defs, str);\n };\n proto.gradientLinear = function (x1, y1, x2, y2) {\n return gradientLinear(this.defs, x1, y1, x2, y2);\n };\n proto.gradientRadial = function (cx, cy, r, fx, fy) {\n return gradientRadial(this.defs, cx, cy, r, fx, fy);\n };\n /*\\\n * Paper.toString\n [ method ]\n **\n * Returns SVG code for the @Paper\n = (string) SVG code for the @Paper\n \\*/\n proto.toString = function () {\n var doc = this.node.ownerDocument,\n f = doc.createDocumentFragment(),\n d = doc.createElement(\"div\"),\n svg = this.node.cloneNode(true),\n res;\n f.appendChild(d);\n d.appendChild(svg);\n Snap._.$(svg, {xmlns: \"http://www.w3.org/2000/svg\"});\n res = d.innerHTML;\n f.removeChild(f.firstChild);\n return res;\n };\n /*\\\n * Paper.toDataURL\n [ method ]\n **\n * Returns SVG code for the @Paper as Data URI string.\n = (string) Data URI string\n \\*/\n proto.toDataURL = function () {\n if (window && window.btoa) {\n return \"data:image/svg+xml;base64,\" + btoa(unescape(encodeURIComponent(this)));\n }\n };\n /*\\\n * Paper.clear\n [ method ]\n **\n * Removes all child nodes of the paper, except .\n \\*/\n proto.clear = function () {\n var node = this.node.firstChild,\n next;\n while (node) {\n next = node.nextSibling;\n if (node.tagName != \"defs\") {\n node.parentNode.removeChild(node);\n } else {\n proto.clear.call({node: node});\n }\n node = next;\n }\n };\n }());\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var elproto = Element.prototype,\n is = Snap.is,\n clone = Snap._.clone,\n has = \"hasOwnProperty\",\n p2s = /,?([a-z]),?/gi,\n toFloat = parseFloat,\n math = Math,\n PI = math.PI,\n mmin = math.min,\n mmax = math.max,\n pow = math.pow,\n abs = math.abs;\n function paths(ps) {\n var p = paths.ps = paths.ps || {};\n if (p[ps]) {\n p[ps].sleep = 100;\n } else {\n p[ps] = {\n sleep: 100\n };\n }\n setTimeout(function () {\n for (var key in p) if (p[has](key) && key != ps) {\n p[key].sleep--;\n !p[key].sleep && delete p[key];\n }\n });\n return p[ps];\n }\n function box(x, y, width, height) {\n if (x == null) {\n x = y = width = height = 0;\n }\n if (y == null) {\n y = x.y;\n width = x.width;\n height = x.height;\n x = x.x;\n }\n return {\n x: x,\n y: y,\n width: width,\n w: width,\n height: height,\n h: height,\n x2: x + width,\n y2: y + height,\n cx: x + width / 2,\n cy: y + height / 2,\n r1: math.min(width, height) / 2,\n r2: math.max(width, height) / 2,\n r0: math.sqrt(width * width + height * height) / 2,\n path: rectPath(x, y, width, height),\n vb: [x, y, width, height].join(\" \")\n };\n }\n function toString() {\n return this.join(\",\").replace(p2s, \"$1\");\n }\n function pathClone(pathArray) {\n var res = clone(pathArray);\n res.toString = toString;\n return res;\n }\n function getPointAtSegmentLength(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) {\n if (length == null) {\n return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y);\n } else {\n return findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y,\n getTotLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length));\n }\n }\n function getLengthFactory(istotal, subpath) {\n function O(val) {\n return +(+val).toFixed(3);\n }\n return Snap._.cacher(function (path, length, onlystart) {\n if (path instanceof Element) {\n path = path.attr(\"d\");\n }\n path = path2curve(path);\n var x, y, p, l, sp = \"\", subpaths = {}, point,\n len = 0;\n for (var i = 0, ii = path.length; i < ii; i++) {\n p = path[i];\n if (p[0] == \"M\") {\n x = +p[1];\n y = +p[2];\n } else {\n l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n if (len + l > length) {\n if (subpath && !subpaths.start) {\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n sp += [\n \"C\" + O(point.start.x),\n O(point.start.y),\n O(point.m.x),\n O(point.m.y),\n O(point.x),\n O(point.y)\n ];\n if (onlystart) {return sp;}\n subpaths.start = sp;\n sp = [\n \"M\" + O(point.x),\n O(point.y) + \"C\" + O(point.n.x),\n O(point.n.y),\n O(point.end.x),\n O(point.end.y),\n O(p[5]),\n O(p[6])\n ].join();\n len += l;\n x = +p[5];\n y = +p[6];\n continue;\n }\n if (!istotal && !subpath) {\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n return point;\n }\n }\n len += l;\n x = +p[5];\n y = +p[6];\n }\n sp += p.shift() + p;\n }\n subpaths.end = sp;\n point = istotal ? len : subpath ? subpaths : findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1);\n return point;\n }, null, Snap._.clone);\n }\n var getTotalLength = getLengthFactory(1),\n getPointAtLength = getLengthFactory(),\n getSubpathsAtLength = getLengthFactory(0, 1);\n function findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n var t1 = 1 - t,\n t13 = pow(t1, 3),\n t12 = pow(t1, 2),\n t2 = t * t,\n t3 = t2 * t,\n x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\n y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y,\n mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x),\n my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y),\n nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x),\n ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y),\n ax = t1 * p1x + t * c1x,\n ay = t1 * p1y + t * c1y,\n cx = t1 * c2x + t * p2x,\n cy = t1 * c2y + t * p2y,\n alpha = 90 - math.atan2(mx - nx, my - ny) * 180 / PI;\n // (mx > nx || my < ny) && (alpha += 180);\n return {\n x: x,\n y: y,\n m: {x: mx, y: my},\n n: {x: nx, y: ny},\n start: {x: ax, y: ay},\n end: {x: cx, y: cy},\n alpha: alpha\n };\n }\n function bezierBBox(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n if (!Snap.is(p1x, \"array\")) {\n p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];\n }\n var bbox = curveDim.apply(null, p1x);\n return box(\n bbox.min.x,\n bbox.min.y,\n bbox.max.x - bbox.min.x,\n bbox.max.y - bbox.min.y\n );\n }\n function isPointInsideBBox(bbox, x, y) {\n return x >= bbox.x &&\n x <= bbox.x + bbox.width &&\n y >= bbox.y &&\n y <= bbox.y + bbox.height;\n }\n function isBBoxIntersect(bbox1, bbox2) {\n bbox1 = box(bbox1);\n bbox2 = box(bbox2);\n return isPointInsideBBox(bbox2, bbox1.x, bbox1.y)\n || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y)\n || isPointInsideBBox(bbox2, bbox1.x, bbox1.y2)\n || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y2)\n || isPointInsideBBox(bbox1, bbox2.x, bbox2.y)\n || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y)\n || isPointInsideBBox(bbox1, bbox2.x, bbox2.y2)\n || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y2)\n || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x\n || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)\n && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y\n || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\n }\n function base3(t, p1, p2, p3, p4) {\n var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\n t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\n return t * t2 - 3 * p1 + 3 * p2;\n }\n function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\n if (z == null) {\n z = 1;\n }\n z = z > 1 ? 1 : z < 0 ? 0 : z;\n var z2 = z / 2,\n n = 12,\n Tvalues = [-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],\n Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],\n sum = 0;\n for (var i = 0; i < n; i++) {\n var ct = z2 * Tvalues[i] + z2,\n xbase = base3(ct, x1, x2, x3, x4),\n ybase = base3(ct, y1, y2, y3, y4),\n comb = xbase * xbase + ybase * ybase;\n sum += Cvalues[i] * math.sqrt(comb);\n }\n return z2 * sum;\n }\n function getTotLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) {\n if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) {\n return;\n }\n var t = 1,\n step = t / 2,\n t2 = t - step,\n l,\n e = .01;\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n while (abs(l - ll) > e) {\n step /= 2;\n t2 += (l < ll ? 1 : -1) * step;\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n }\n return t2;\n }\n function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n if (\n mmax(x1, x2) < mmin(x3, x4) ||\n mmin(x1, x2) > mmax(x3, x4) ||\n mmax(y1, y2) < mmin(y3, y4) ||\n mmin(y1, y2) > mmax(y3, y4)\n ) {\n return;\n }\n var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n\n if (!denominator) {\n return;\n }\n var px = nx / denominator,\n py = ny / denominator,\n px2 = +px.toFixed(2),\n py2 = +py.toFixed(2);\n if (\n px2 < +mmin(x1, x2).toFixed(2) ||\n px2 > +mmax(x1, x2).toFixed(2) ||\n px2 < +mmin(x3, x4).toFixed(2) ||\n px2 > +mmax(x3, x4).toFixed(2) ||\n py2 < +mmin(y1, y2).toFixed(2) ||\n py2 > +mmax(y1, y2).toFixed(2) ||\n py2 < +mmin(y3, y4).toFixed(2) ||\n py2 > +mmax(y3, y4).toFixed(2)\n ) {\n return;\n }\n return {x: px, y: py};\n }\n function inter(bez1, bez2) {\n return interHelper(bez1, bez2);\n }\n function interCount(bez1, bez2) {\n return interHelper(bez1, bez2, 1);\n }\n function interHelper(bez1, bez2, justCount) {\n var bbox1 = bezierBBox(bez1),\n bbox2 = bezierBBox(bez2);\n if (!isBBoxIntersect(bbox1, bbox2)) {\n return justCount ? 0 : [];\n }\n var l1 = bezlen.apply(0, bez1),\n l2 = bezlen.apply(0, bez2),\n n1 = ~~(l1 / 8),\n n2 = ~~(l2 / 8),\n dots1 = [],\n dots2 = [],\n xy = {},\n res = justCount ? 0 : [];\n for (var i = 0; i < n1 + 1; i++) {\n var p = findDotsAtSegment.apply(0, bez1.concat(i / n1));\n dots1.push({x: p.x, y: p.y, t: i / n1});\n }\n for (i = 0; i < n2 + 1; i++) {\n p = findDotsAtSegment.apply(0, bez2.concat(i / n2));\n dots2.push({x: p.x, y: p.y, t: i / n2});\n }\n for (i = 0; i < n1; i++) {\n for (var j = 0; j < n2; j++) {\n var di = dots1[i],\n di1 = dots1[i + 1],\n dj = dots2[j],\n dj1 = dots2[j + 1],\n ci = abs(di1.x - di.x) < .001 ? \"y\" : \"x\",\n cj = abs(dj1.x - dj.x) < .001 ? \"y\" : \"x\",\n is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);\n if (is) {\n if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) {\n continue;\n }\n xy[is.x.toFixed(4)] = is.y.toFixed(4);\n var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\n t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\n if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1) {\n if (justCount) {\n res++;\n } else {\n res.push({\n x: is.x,\n y: is.y,\n t1: t1,\n t2: t2\n });\n }\n }\n }\n }\n }\n return res;\n }\n function pathIntersection(path1, path2) {\n return interPathHelper(path1, path2);\n }\n function pathIntersectionNumber(path1, path2) {\n return interPathHelper(path1, path2, 1);\n }\n function interPathHelper(path1, path2, justCount) {\n path1 = path2curve(path1);\n path2 = path2curve(path2);\n var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,\n res = justCount ? 0 : [];\n for (var i = 0, ii = path1.length; i < ii; i++) {\n var pi = path1[i];\n if (pi[0] == \"M\") {\n x1 = x1m = pi[1];\n y1 = y1m = pi[2];\n } else {\n if (pi[0] == \"C\") {\n bez1 = [x1, y1].concat(pi.slice(1));\n x1 = bez1[6];\n y1 = bez1[7];\n } else {\n bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\n x1 = x1m;\n y1 = y1m;\n }\n for (var j = 0, jj = path2.length; j < jj; j++) {\n var pj = path2[j];\n if (pj[0] == \"M\") {\n x2 = x2m = pj[1];\n y2 = y2m = pj[2];\n } else {\n if (pj[0] == \"C\") {\n bez2 = [x2, y2].concat(pj.slice(1));\n x2 = bez2[6];\n y2 = bez2[7];\n } else {\n bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\n x2 = x2m;\n y2 = y2m;\n }\n var intr = interHelper(bez1, bez2, justCount);\n if (justCount) {\n res += intr;\n } else {\n for (var k = 0, kk = intr.length; k < kk; k++) {\n intr[k].segment1 = i;\n intr[k].segment2 = j;\n intr[k].bez1 = bez1;\n intr[k].bez2 = bez2;\n }\n res = res.concat(intr);\n }\n }\n }\n }\n }\n return res;\n }\n function isPointInsidePath(path, x, y) {\n var bbox = pathBBox(path);\n return isPointInsideBBox(bbox, x, y) &&\n interPathHelper(path, [[\"M\", x, y], [\"H\", bbox.x2 + 10]], 1) % 2 == 1;\n }\n function pathBBox(path) {\n var pth = paths(path);\n if (pth.bbox) {\n return clone(pth.bbox);\n }\n if (!path) {\n return box();\n }\n path = path2curve(path);\n var x = 0,\n y = 0,\n X = [],\n Y = [],\n p;\n for (var i = 0, ii = path.length; i < ii; i++) {\n p = path[i];\n if (p[0] == \"M\") {\n x = p[1];\n y = p[2];\n X.push(x);\n Y.push(y);\n } else {\n var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n X = X.concat(dim.min.x, dim.max.x);\n Y = Y.concat(dim.min.y, dim.max.y);\n x = p[5];\n y = p[6];\n }\n }\n var xmin = mmin.apply(0, X),\n ymin = mmin.apply(0, Y),\n xmax = mmax.apply(0, X),\n ymax = mmax.apply(0, Y),\n bb = box(xmin, ymin, xmax - xmin, ymax - ymin);\n pth.bbox = clone(bb);\n return bb;\n }\n function rectPath(x, y, w, h, r) {\n if (r) {\n return [\n [\"M\", +x + +r, y],\n [\"l\", w - r * 2, 0],\n [\"a\", r, r, 0, 0, 1, r, r],\n [\"l\", 0, h - r * 2],\n [\"a\", r, r, 0, 0, 1, -r, r],\n [\"l\", r * 2 - w, 0],\n [\"a\", r, r, 0, 0, 1, -r, -r],\n [\"l\", 0, r * 2 - h],\n [\"a\", r, r, 0, 0, 1, r, -r],\n [\"z\"]\n ];\n }\n var res = [[\"M\", x, y], [\"l\", w, 0], [\"l\", 0, h], [\"l\", -w, 0], [\"z\"]];\n res.toString = toString;\n return res;\n }\n function ellipsePath(x, y, rx, ry, a) {\n if (a == null && ry == null) {\n ry = rx;\n }\n x = +x;\n y = +y;\n rx = +rx;\n ry = +ry;\n if (a != null) {\n var rad = Math.PI / 180,\n x1 = x + rx * Math.cos(-ry * rad),\n x2 = x + rx * Math.cos(-a * rad),\n y1 = y + rx * Math.sin(-ry * rad),\n y2 = y + rx * Math.sin(-a * rad),\n res = [[\"M\", x1, y1], [\"A\", rx, rx, 0, +(a - ry > 180), 0, x2, y2]];\n } else {\n res = [\n [\"M\", x, y],\n [\"m\", 0, -ry],\n [\"a\", rx, ry, 0, 1, 1, 0, 2 * ry],\n [\"a\", rx, ry, 0, 1, 1, 0, -2 * ry],\n [\"z\"]\n ];\n }\n res.toString = toString;\n return res;\n }\n var unit2px = Snap._unit2px,\n getPath = {\n path: function (el) {\n return el.attr(\"path\");\n },\n circle: function (el) {\n var attr = unit2px(el);\n return ellipsePath(attr.cx, attr.cy, attr.r);\n },\n ellipse: function (el) {\n var attr = unit2px(el);\n return ellipsePath(attr.cx || 0, attr.cy || 0, attr.rx, attr.ry);\n },\n rect: function (el) {\n var attr = unit2px(el);\n return rectPath(attr.x || 0, attr.y || 0, attr.width, attr.height, attr.rx, attr.ry);\n },\n image: function (el) {\n var attr = unit2px(el);\n return rectPath(attr.x || 0, attr.y || 0, attr.width, attr.height);\n },\n line: function (el) {\n return \"M\" + [el.attr(\"x1\") || 0, el.attr(\"y1\") || 0, el.attr(\"x2\"), el.attr(\"y2\")];\n },\n polyline: function (el) {\n return \"M\" + el.attr(\"points\");\n },\n polygon: function (el) {\n return \"M\" + el.attr(\"points\") + \"z\";\n },\n deflt: function (el) {\n var bbox = el.node.getBBox();\n return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n }\n };\n function pathToRelative(pathArray) {\n var pth = paths(pathArray),\n lowerCase = String.prototype.toLowerCase;\n if (pth.rel) {\n return pathClone(pth.rel);\n }\n if (!Snap.is(pathArray, \"array\") || !Snap.is(pathArray && pathArray[0], \"array\")) {\n pathArray = Snap.parsePathString(pathArray);\n }\n var res = [],\n x = 0,\n y = 0,\n mx = 0,\n my = 0,\n start = 0;\n if (pathArray[0][0] == \"M\") {\n x = pathArray[0][1];\n y = pathArray[0][2];\n mx = x;\n my = y;\n start++;\n res.push([\"M\", x, y]);\n }\n for (var i = start, ii = pathArray.length; i < ii; i++) {\n var r = res[i] = [],\n pa = pathArray[i];\n if (pa[0] != lowerCase.call(pa[0])) {\n r[0] = lowerCase.call(pa[0]);\n switch (r[0]) {\n case \"a\":\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +(pa[6] - x).toFixed(3);\n r[7] = +(pa[7] - y).toFixed(3);\n break;\n case \"v\":\n r[1] = +(pa[1] - y).toFixed(3);\n break;\n case \"m\":\n mx = pa[1];\n my = pa[2];\n default:\n for (var j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +(pa[j] - (j % 2 ? x : y)).toFixed(3);\n }\n }\n } else {\n r = res[i] = [];\n if (pa[0] == \"m\") {\n mx = pa[1] + x;\n my = pa[2] + y;\n }\n for (var k = 0, kk = pa.length; k < kk; k++) {\n res[i][k] = pa[k];\n }\n }\n var len = res[i].length;\n switch (res[i][0]) {\n case \"z\":\n x = mx;\n y = my;\n break;\n case \"h\":\n x += +res[i][len - 1];\n break;\n case \"v\":\n y += +res[i][len - 1];\n break;\n default:\n x += +res[i][len - 2];\n y += +res[i][len - 1];\n }\n }\n res.toString = toString;\n pth.rel = pathClone(res);\n return res;\n }\n function pathToAbsolute(pathArray) {\n var pth = paths(pathArray);\n if (pth.abs) {\n return pathClone(pth.abs);\n }\n if (!is(pathArray, \"array\") || !is(pathArray && pathArray[0], \"array\")) { // rough assumption\n pathArray = Snap.parsePathString(pathArray);\n }\n if (!pathArray || !pathArray.length) {\n return [[\"M\", 0, 0]];\n }\n var res = [],\n x = 0,\n y = 0,\n mx = 0,\n my = 0,\n start = 0,\n pa0;\n if (pathArray[0][0] == \"M\") {\n x = +pathArray[0][1];\n y = +pathArray[0][2];\n mx = x;\n my = y;\n start++;\n res[0] = [\"M\", x, y];\n }\n var crz = pathArray.length == 3 &&\n pathArray[0][0] == \"M\" &&\n pathArray[1][0].toUpperCase() == \"R\" &&\n pathArray[2][0].toUpperCase() == \"Z\";\n for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\n res.push(r = []);\n pa = pathArray[i];\n pa0 = pa[0];\n if (pa0 != pa0.toUpperCase()) {\n r[0] = pa0.toUpperCase();\n switch (r[0]) {\n case \"A\":\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +pa[6] + x;\n r[7] = +pa[7] + y;\n break;\n case \"V\":\n r[1] = +pa[1] + y;\n break;\n case \"H\":\n r[1] = +pa[1] + x;\n break;\n case \"R\":\n var dots = [x, y].concat(pa.slice(1));\n for (var j = 2, jj = dots.length; j < jj; j++) {\n dots[j] = +dots[j] + x;\n dots[++j] = +dots[j] + y;\n }\n res.pop();\n res = res.concat(catmullRom2bezier(dots, crz));\n break;\n case \"O\":\n res.pop();\n dots = ellipsePath(x, y, pa[1], pa[2]);\n dots.push(dots[0]);\n res = res.concat(dots);\n break;\n case \"U\":\n res.pop();\n res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3]));\n r = [\"U\"].concat(res[res.length - 1].slice(-2));\n break;\n case \"M\":\n mx = +pa[1] + x;\n my = +pa[2] + y;\n default:\n for (j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +pa[j] + (j % 2 ? x : y);\n }\n }\n } else if (pa0 == \"R\") {\n dots = [x, y].concat(pa.slice(1));\n res.pop();\n res = res.concat(catmullRom2bezier(dots, crz));\n r = [\"R\"].concat(pa.slice(-2));\n } else if (pa0 == \"O\") {\n res.pop();\n dots = ellipsePath(x, y, pa[1], pa[2]);\n dots.push(dots[0]);\n res = res.concat(dots);\n } else if (pa0 == \"U\") {\n res.pop();\n res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3]));\n r = [\"U\"].concat(res[res.length - 1].slice(-2));\n } else {\n for (var k = 0, kk = pa.length; k < kk; k++) {\n r[k] = pa[k];\n }\n }\n pa0 = pa0.toUpperCase();\n if (pa0 != \"O\") {\n switch (r[0]) {\n case \"Z\":\n x = +mx;\n y = +my;\n break;\n case \"H\":\n x = r[1];\n break;\n case \"V\":\n y = r[1];\n break;\n case \"M\":\n mx = r[r.length - 2];\n my = r[r.length - 1];\n default:\n x = r[r.length - 2];\n y = r[r.length - 1];\n }\n }\n }\n res.toString = toString;\n pth.abs = pathClone(res);\n return res;\n }\n function l2c(x1, y1, x2, y2) {\n return [x1, y1, x2, y2, x2, y2];\n }\n function q2c(x1, y1, ax, ay, x2, y2) {\n var _13 = 1 / 3,\n _23 = 2 / 3;\n return [\n _13 * x1 + _23 * ax,\n _13 * y1 + _23 * ay,\n _13 * x2 + _23 * ax,\n _13 * y2 + _23 * ay,\n x2,\n y2\n ];\n }\n function a2c(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n // for more information of where this math came from visit:\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n var _120 = PI * 120 / 180,\n rad = PI / 180 * (+angle || 0),\n res = [],\n xy,\n rotate = Snap._.cacher(function (x, y, rad) {\n var X = x * math.cos(rad) - y * math.sin(rad),\n Y = x * math.sin(rad) + y * math.cos(rad);\n return {x: X, y: Y};\n });\n if (!rx || !ry) {\n return [x1, y1, x2, y2, x2, y2];\n }\n if (!recursive) {\n xy = rotate(x1, y1, -rad);\n x1 = xy.x;\n y1 = xy.y;\n xy = rotate(x2, y2, -rad);\n x2 = xy.x;\n y2 = xy.y;\n var cos = math.cos(PI / 180 * angle),\n sin = math.sin(PI / 180 * angle),\n x = (x1 - x2) / 2,\n y = (y1 - y2) / 2;\n var h = x * x / (rx * rx) + y * y / (ry * ry);\n if (h > 1) {\n h = math.sqrt(h);\n rx = h * rx;\n ry = h * ry;\n }\n var rx2 = rx * rx,\n ry2 = ry * ry,\n k = (large_arc_flag == sweep_flag ? -1 : 1) *\n math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),\n cx = k * rx * y / ry + (x1 + x2) / 2,\n cy = k * -ry * x / rx + (y1 + y2) / 2,\n f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\n f2 = math.asin(((y2 - cy) / ry).toFixed(9));\n\n f1 = x1 < cx ? PI - f1 : f1;\n f2 = x2 < cx ? PI - f2 : f2;\n f1 < 0 && (f1 = PI * 2 + f1);\n f2 < 0 && (f2 = PI * 2 + f2);\n if (sweep_flag && f1 > f2) {\n f1 = f1 - PI * 2;\n }\n if (!sweep_flag && f2 > f1) {\n f2 = f2 - PI * 2;\n }\n } else {\n f1 = recursive[0];\n f2 = recursive[1];\n cx = recursive[2];\n cy = recursive[3];\n }\n var df = f2 - f1;\n if (abs(df) > _120) {\n var f2old = f2,\n x2old = x2,\n y2old = y2;\n f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n x2 = cx + rx * math.cos(f2);\n y2 = cy + ry * math.sin(f2);\n res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\n }\n df = f2 - f1;\n var c1 = math.cos(f1),\n s1 = math.sin(f1),\n c2 = math.cos(f2),\n s2 = math.sin(f2),\n t = math.tan(df / 4),\n hx = 4 / 3 * rx * t,\n hy = 4 / 3 * ry * t,\n m1 = [x1, y1],\n m2 = [x1 + hx * s1, y1 - hy * c1],\n m3 = [x2 + hx * s2, y2 - hy * c2],\n m4 = [x2, y2];\n m2[0] = 2 * m1[0] - m2[0];\n m2[1] = 2 * m1[1] - m2[1];\n if (recursive) {\n return [m2, m3, m4].concat(res);\n } else {\n res = [m2, m3, m4].concat(res).join().split(\",\");\n var newres = [];\n for (var i = 0, ii = res.length; i < ii; i++) {\n newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\n }\n return newres;\n }\n }\n function findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n var t1 = 1 - t;\n return {\n x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x,\n y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y\n };\n }\n\n // Returns bounding box of cubic bezier curve.\n // Source: http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n // Original version: NISHIO Hirokazu\n // Modifications: https://github.com/timo22345\n function curveDim(x0, y0, x1, y1, x2, y2, x3, y3) {\n var tvalues = [],\n bounds = [[], []],\n a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (var i = 0; i < 2; ++i) {\n if (i == 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (abs(a) < 1e-12) {\n if (abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var x, y, j = tvalues.length,\n jlen = j,\n mt;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n\n return {\n min: {x: mmin.apply(0, bounds[0]), y: mmin.apply(0, bounds[1])},\n max: {x: mmax.apply(0, bounds[0]), y: mmax.apply(0, bounds[1])}\n };\n }\n\n function path2curve(path, path2) {\n var pth = !path2 && paths(path);\n if (!path2 && pth.curve) {\n return pathClone(pth.curve);\n }\n var p = pathToAbsolute(path),\n p2 = path2 && pathToAbsolute(path2),\n attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n processPath = function (path, d, pcom) {\n var nx, ny;\n if (!path) {\n return [\"C\", d.x, d.y, d.x, d.y, d.x, d.y];\n }\n !(path[0] in {T: 1, Q: 1}) && (d.qx = d.qy = null);\n switch (path[0]) {\n case \"M\":\n d.X = path[1];\n d.Y = path[2];\n break;\n case \"A\":\n path = [\"C\"].concat(a2c.apply(0, [d.x, d.y].concat(path.slice(1))));\n break;\n case \"S\":\n if (pcom == \"C\" || pcom == \"S\") { // In \"S\" case we have to take into account, if the previous command is C/S.\n nx = d.x * 2 - d.bx; // And reflect the previous\n ny = d.y * 2 - d.by; // command's control point relative to the current point.\n }\n else { // or some else or nothing\n nx = d.x;\n ny = d.y;\n }\n path = [\"C\", nx, ny].concat(path.slice(1));\n break;\n case \"T\":\n if (pcom == \"Q\" || pcom == \"T\") { // In \"T\" case we have to take into account, if the previous command is Q/T.\n d.qx = d.x * 2 - d.qx; // And make a reflection similar\n d.qy = d.y * 2 - d.qy; // to case \"S\".\n }\n else { // or something else or nothing\n d.qx = d.x;\n d.qy = d.y;\n }\n path = [\"C\"].concat(q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));\n break;\n case \"Q\":\n d.qx = path[1];\n d.qy = path[2];\n path = [\"C\"].concat(q2c(d.x, d.y, path[1], path[2], path[3], path[4]));\n break;\n case \"L\":\n path = [\"C\"].concat(l2c(d.x, d.y, path[1], path[2]));\n break;\n case \"H\":\n path = [\"C\"].concat(l2c(d.x, d.y, path[1], d.y));\n break;\n case \"V\":\n path = [\"C\"].concat(l2c(d.x, d.y, d.x, path[1]));\n break;\n case \"Z\":\n path = [\"C\"].concat(l2c(d.x, d.y, d.X, d.Y));\n break;\n }\n return path;\n },\n fixArc = function (pp, i) {\n if (pp[i].length > 7) {\n pp[i].shift();\n var pi = pp[i];\n while (pi.length) {\n pcoms1[i] = \"A\"; // if created multiple C:s, their original seg is saved\n p2 && (pcoms2[i] = \"A\"); // the same as above\n pp.splice(i++, 0, [\"C\"].concat(pi.splice(0, 6)));\n }\n pp.splice(i, 1);\n ii = mmax(p.length, p2 && p2.length || 0);\n }\n },\n fixM = function (path1, path2, a1, a2, i) {\n if (path1 && path2 && path1[i][0] == \"M\" && path2[i][0] != \"M\") {\n path2.splice(i, 0, [\"M\", a2.x, a2.y]);\n a1.bx = 0;\n a1.by = 0;\n a1.x = path1[i][1];\n a1.y = path1[i][2];\n ii = mmax(p.length, p2 && p2.length || 0);\n }\n },\n pcoms1 = [], // path commands of original path p\n pcoms2 = [], // path commands of original path p2\n pfirst = \"\", // temporary holder for original path command\n pcom = \"\"; // holder for previous path command of original path\n for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) {\n p[i] && (pfirst = p[i][0]); // save current path command\n\n if (pfirst != \"C\") // C is not saved yet, because it may be result of conversion\n {\n pcoms1[i] = pfirst; // Save current path command\n i && ( pcom = pcoms1[i - 1]); // Get previous path command pcom\n }\n p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath\n\n if (pcoms1[i] != \"A\" && pfirst == \"C\") pcoms1[i] = \"C\"; // A is the only command\n // which may produce multiple C:s\n // so we have to make sure that C is also C in original path\n\n fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1\n\n if (p2) { // the same procedures is done to p2\n p2[i] && (pfirst = p2[i][0]);\n if (pfirst != \"C\") {\n pcoms2[i] = pfirst;\n i && (pcom = pcoms2[i - 1]);\n }\n p2[i] = processPath(p2[i], attrs2, pcom);\n\n if (pcoms2[i] != \"A\" && pfirst == \"C\") {\n pcoms2[i] = \"C\";\n }\n\n fixArc(p2, i);\n }\n fixM(p, p2, attrs, attrs2, i);\n fixM(p2, p, attrs2, attrs, i);\n var seg = p[i],\n seg2 = p2 && p2[i],\n seglen = seg.length,\n seg2len = p2 && seg2.length;\n attrs.x = seg[seglen - 2];\n attrs.y = seg[seglen - 1];\n attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\n attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\n attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x);\n attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y);\n attrs2.x = p2 && seg2[seg2len - 2];\n attrs2.y = p2 && seg2[seg2len - 1];\n }\n if (!p2) {\n pth.curve = pathClone(p);\n }\n return p2 ? [p, p2] : p;\n }\n function mapPath(path, matrix) {\n if (!matrix) {\n return path;\n }\n var x, y, i, j, ii, jj, pathi;\n path = path2curve(path);\n for (i = 0, ii = path.length; i < ii; i++) {\n pathi = path[i];\n for (j = 1, jj = pathi.length; j < jj; j += 2) {\n x = matrix.x(pathi[j], pathi[j + 1]);\n y = matrix.y(pathi[j], pathi[j + 1]);\n pathi[j] = x;\n pathi[j + 1] = y;\n }\n }\n return path;\n }\n\n // http://schepers.cc/getting-to-the-point\n function catmullRom2bezier(crp, z) {\n var d = [];\n for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {\n var p = [\n {x: +crp[i - 2], y: +crp[i - 1]},\n {x: +crp[i], y: +crp[i + 1]},\n {x: +crp[i + 2], y: +crp[i + 3]},\n {x: +crp[i + 4], y: +crp[i + 5]}\n ];\n if (z) {\n if (!i) {\n p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]};\n } else if (iLen - 4 == i) {\n p[3] = {x: +crp[0], y: +crp[1]};\n } else if (iLen - 2 == i) {\n p[2] = {x: +crp[0], y: +crp[1]};\n p[3] = {x: +crp[2], y: +crp[3]};\n }\n } else {\n if (iLen - 4 == i) {\n p[3] = p[2];\n } else if (!i) {\n p[0] = {x: +crp[i], y: +crp[i + 1]};\n }\n }\n d.push([\"C\",\n (-p[0].x + 6 * p[1].x + p[2].x) / 6,\n (-p[0].y + 6 * p[1].y + p[2].y) / 6,\n (p[1].x + 6 * p[2].x - p[3].x) / 6,\n (p[1].y + 6*p[2].y - p[3].y) / 6,\n p[2].x,\n p[2].y\n ]);\n }\n\n return d;\n }\n\n // export\n Snap.path = paths;\n\n /*\\\n * Snap.path.getTotalLength\n [ method ]\n **\n * Returns the length of the given path in pixels\n **\n - path (string) SVG path string\n **\n = (number) length\n \\*/\n Snap.path.getTotalLength = getTotalLength;\n /*\\\n * Snap.path.getPointAtLength\n [ method ]\n **\n * Returns the coordinates of the point located at the given length along the given path\n **\n - path (string) SVG path string\n - length (number) length, in pixels, from the start of the path, excluding non-rendering jumps\n **\n = (object) representation of the point:\n o {\n o x: (number) x coordinate,\n o y: (number) y coordinate,\n o alpha: (number) angle of derivative\n o }\n \\*/\n Snap.path.getPointAtLength = getPointAtLength;\n /*\\\n * Snap.path.getSubpath\n [ method ]\n **\n * Returns the subpath of a given path between given start and end lengths\n **\n - path (string) SVG path string\n - from (number) length, in pixels, from the start of the path to the start of the segment\n - to (number) length, in pixels, from the start of the path to the end of the segment\n **\n = (string) path string definition for the segment\n \\*/\n Snap.path.getSubpath = function (path, from, to) {\n if (this.getTotalLength(path) - to < 1e-6) {\n return getSubpathsAtLength(path, from).end;\n }\n var a = getSubpathsAtLength(path, to, 1);\n return from ? getSubpathsAtLength(a, from).end : a;\n };\n /*\\\n * Element.getTotalLength\n [ method ]\n **\n * Returns the length of the path in pixels (only works for `path` elements)\n = (number) length\n \\*/\n elproto.getTotalLength = function () {\n if (this.node.getTotalLength) {\n return this.node.getTotalLength();\n }\n };\n // SIERRA Element.getPointAtLength()/Element.getTotalLength(): If a is broken into different segments, is the jump distance to the new coordinates set by the _M_ or _m_ commands calculated as part of the path's total length?\n /*\\\n * Element.getPointAtLength\n [ method ]\n **\n * Returns coordinates of the point located at the given length on the given path (only works for `path` elements)\n **\n - length (number) length, in pixels, from the start of the path, excluding non-rendering jumps\n **\n = (object) representation of the point:\n o {\n o x: (number) x coordinate,\n o y: (number) y coordinate,\n o alpha: (number) angle of derivative\n o }\n \\*/\n elproto.getPointAtLength = function (length) {\n return getPointAtLength(this.attr(\"d\"), length);\n };\n // SIERRA Element.getSubpath(): Similar to the problem for Element.getPointAtLength(). Unclear how this would work for a segmented path. Overall, the concept of _subpath_ and what I'm calling a _segment_ (series of non-_M_ or _Z_ commands) is unclear.\n /*\\\n * Element.getSubpath\n [ method ]\n **\n * Returns subpath of a given element from given start and end lengths (only works for `path` elements)\n **\n - from (number) length, in pixels, from the start of the path to the start of the segment\n - to (number) length, in pixels, from the start of the path to the end of the segment\n **\n = (string) path string definition for the segment\n \\*/\n elproto.getSubpath = function (from, to) {\n return Snap.path.getSubpath(this.attr(\"d\"), from, to);\n };\n Snap._.box = box;\n /*\\\n * Snap.path.findDotsAtSegment\n [ method ]\n **\n * Utility method\n **\n * Finds dot coordinates on the given cubic beziér curve at the given t\n - p1x (number) x of the first point of the curve\n - p1y (number) y of the first point of the curve\n - c1x (number) x of the first anchor of the curve\n - c1y (number) y of the first anchor of the curve\n - c2x (number) x of the second anchor of the curve\n - c2y (number) y of the second anchor of the curve\n - p2x (number) x of the second point of the curve\n - p2y (number) y of the second point of the curve\n - t (number) position on the curve (0..1)\n = (object) point information in format:\n o {\n o x: (number) x coordinate of the point,\n o y: (number) y coordinate of the point,\n o m: {\n o x: (number) x coordinate of the left anchor,\n o y: (number) y coordinate of the left anchor\n o },\n o n: {\n o x: (number) x coordinate of the right anchor,\n o y: (number) y coordinate of the right anchor\n o },\n o start: {\n o x: (number) x coordinate of the start of the curve,\n o y: (number) y coordinate of the start of the curve\n o },\n o end: {\n o x: (number) x coordinate of the end of the curve,\n o y: (number) y coordinate of the end of the curve\n o },\n o alpha: (number) angle of the curve derivative at the point\n o }\n \\*/\n Snap.path.findDotsAtSegment = findDotsAtSegment;\n /*\\\n * Snap.path.bezierBBox\n [ method ]\n **\n * Utility method\n **\n * Returns the bounding box of a given cubic beziér curve\n - p1x (number) x of the first point of the curve\n - p1y (number) y of the first point of the curve\n - c1x (number) x of the first anchor of the curve\n - c1y (number) y of the first anchor of the curve\n - c2x (number) x of the second anchor of the curve\n - c2y (number) y of the second anchor of the curve\n - p2x (number) x of the second point of the curve\n - p2y (number) y of the second point of the curve\n * or\n - bez (array) array of six points for beziér curve\n = (object) bounding box\n o {\n o x: (number) x coordinate of the left top point of the box,\n o y: (number) y coordinate of the left top point of the box,\n o x2: (number) x coordinate of the right bottom point of the box,\n o y2: (number) y coordinate of the right bottom point of the box,\n o width: (number) width of the box,\n o height: (number) height of the box\n o }\n \\*/\n Snap.path.bezierBBox = bezierBBox;\n /*\\\n * Snap.path.isPointInsideBBox\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if given point is inside bounding box\n - bbox (string) bounding box\n - x (string) x coordinate of the point\n - y (string) y coordinate of the point\n = (boolean) `true` if point is inside\n \\*/\n Snap.path.isPointInsideBBox = isPointInsideBBox;\n Snap.closest = function (x, y, X, Y) {\n var r = 100,\n b = box(x - r / 2, y - r / 2, r, r),\n inside = [],\n getter = X[0].hasOwnProperty(\"x\") ? function (i) {\n return {\n x: X[i].x,\n y: X[i].y\n };\n } : function (i) {\n return {\n x: X[i],\n y: Y[i]\n };\n },\n found = 0;\n while (r <= 1e6 && !found) {\n for (var i = 0, ii = X.length; i < ii; i++) {\n var xy = getter(i);\n if (isPointInsideBBox(b, xy.x, xy.y)) {\n found++;\n inside.push(xy);\n break;\n }\n }\n if (!found) {\n r *= 2;\n b = box(x - r / 2, y - r / 2, r, r)\n }\n }\n if (r == 1e6) {\n return;\n }\n var len = Infinity,\n res;\n for (i = 0, ii = inside.length; i < ii; i++) {\n var l = Snap.len(x, y, inside[i].x, inside[i].y);\n if (len > l) {\n len = l;\n inside[i].len = l;\n res = inside[i];\n }\n }\n return res;\n };\n /*\\\n * Snap.path.isBBoxIntersect\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if two bounding boxes intersect\n - bbox1 (string) first bounding box\n - bbox2 (string) second bounding box\n = (boolean) `true` if bounding boxes intersect\n \\*/\n Snap.path.isBBoxIntersect = isBBoxIntersect;\n /*\\\n * Snap.path.intersection\n [ method ]\n **\n * Utility method\n **\n * Finds intersections of two paths\n - path1 (string) path string\n - path2 (string) path string\n = (array) dots of intersection\n o [\n o {\n o x: (number) x coordinate of the point,\n o y: (number) y coordinate of the point,\n o t1: (number) t value for segment of path1,\n o t2: (number) t value for segment of path2,\n o segment1: (number) order number for segment of path1,\n o segment2: (number) order number for segment of path2,\n o bez1: (array) eight coordinates representing beziér curve for the segment of path1,\n o bez2: (array) eight coordinates representing beziér curve for the segment of path2\n o }\n o ]\n \\*/\n Snap.path.intersection = pathIntersection;\n Snap.path.intersectionNumber = pathIntersectionNumber;\n /*\\\n * Snap.path.isPointInside\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if given point is inside a given closed path.\n *\n * Note: fill mode doesn’t affect the result of this method.\n - path (string) path string\n - x (number) x of the point\n - y (number) y of the point\n = (boolean) `true` if point is inside the path\n \\*/\n Snap.path.isPointInside = isPointInsidePath;\n /*\\\n * Snap.path.getBBox\n [ method ]\n **\n * Utility method\n **\n * Returns the bounding box of a given path\n - path (string) path string\n = (object) bounding box\n o {\n o x: (number) x coordinate of the left top point of the box,\n o y: (number) y coordinate of the left top point of the box,\n o x2: (number) x coordinate of the right bottom point of the box,\n o y2: (number) y coordinate of the right bottom point of the box,\n o width: (number) width of the box,\n o height: (number) height of the box\n o }\n \\*/\n Snap.path.getBBox = pathBBox;\n Snap.path.get = getPath;\n /*\\\n * Snap.path.toRelative\n [ method ]\n **\n * Utility method\n **\n * Converts path coordinates into relative values\n - path (string) path string\n = (array) path string\n \\*/\n Snap.path.toRelative = pathToRelative;\n /*\\\n * Snap.path.toAbsolute\n [ method ]\n **\n * Utility method\n **\n * Converts path coordinates into absolute values\n - path (string) path string\n = (array) path string\n \\*/\n Snap.path.toAbsolute = pathToAbsolute;\n /*\\\n * Snap.path.toCubic\n [ method ]\n **\n * Utility method\n **\n * Converts path to a new path where all segments are cubic beziér curves\n - pathString (string|array) path string or array of segments\n = (array) array of segments\n \\*/\n Snap.path.toCubic = path2curve;\n /*\\\n * Snap.path.map\n [ method ]\n **\n * Transform the path string with the given matrix\n - path (string) path string\n - matrix (object) see @Matrix\n = (string) transformed path string\n \\*/\n Snap.path.map = mapPath;\n Snap.path.toString = toString;\n Snap.path.clone = pathClone;\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var mmax = Math.max,\n mmin = Math.min;\n\n // Set\n var Set = function (items) {\n this.items = [];\n\tthis.bindings = {};\n this.length = 0;\n this.type = \"set\";\n if (items) {\n for (var i = 0, ii = items.length; i < ii; i++) {\n if (items[i]) {\n this[this.items.length] = this.items[this.items.length] = items[i];\n this.length++;\n }\n }\n }\n },\n setproto = Set.prototype;\n /*\\\n * Set.push\n [ method ]\n **\n * Adds each argument to the current set\n = (object) original element\n \\*/\n setproto.push = function () {\n var item,\n len;\n for (var i = 0, ii = arguments.length; i < ii; i++) {\n item = arguments[i];\n if (item) {\n len = this.items.length;\n this[len] = this.items[len] = item;\n this.length++;\n }\n }\n return this;\n };\n /*\\\n * Set.pop\n [ method ]\n **\n * Removes last element and returns it\n = (object) element\n \\*/\n setproto.pop = function () {\n this.length && delete this[this.length--];\n return this.items.pop();\n };\n /*\\\n * Set.forEach\n [ method ]\n **\n * Executes given function for each element in the set\n *\n * If the function returns `false`, the loop stops running.\n **\n - callback (function) function to run\n - thisArg (object) context object for the callback\n = (object) Set object\n \\*/\n setproto.forEach = function (callback, thisArg) {\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n if (callback.call(thisArg, this.items[i], i) === false) {\n return this;\n }\n }\n return this;\n };\n /*\\\n * Set.animate\n [ method ]\n **\n * Animates each element in set in sync.\n *\n **\n - attrs (object) key-value pairs of destination attributes\n - duration (number) duration of the animation in milliseconds\n - easing (function) #optional easing function from @mina or custom\n - callback (function) #optional callback function that executes when the animation ends\n * or\n - animation (array) array of animation parameter for each element in set in format `[attrs, duration, easing, callback]`\n > Usage\n | // animate all elements in set to radius 10\n | set.animate({r: 10}, 500, mina.easein);\n | // or\n | // animate first element to radius 10, but second to radius 20 and in different time\n | set.animate([{r: 10}, 500, mina.easein], [{r: 20}, 1500, mina.easein]);\n = (Element) the current element\n \\*/\n setproto.animate = function (attrs, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n if (attrs instanceof Snap._.Animation) {\n callback = attrs.callback;\n easing = attrs.easing;\n ms = easing.dur;\n attrs = attrs.attr;\n }\n var args = arguments;\n if (Snap.is(attrs, \"array\") && Snap.is(args[args.length - 1], \"array\")) {\n var each = true;\n }\n var begin,\n handler = function () {\n if (begin) {\n this.b = begin;\n } else {\n begin = this.b;\n }\n },\n cb = 0,\n set = this,\n callbacker = callback && function () {\n if (++cb == set.length) {\n callback.call(this);\n }\n };\n return this.forEach(function (el, i) {\n eve.once(\"snap.animcreated.\" + el.id, handler);\n if (each) {\n args[i] && el.animate.apply(el, args[i]);\n } else {\n el.animate(attrs, ms, easing, callbacker);\n }\n });\n };\n /*\\\n * Set.remove\n [ method ]\n **\n * Removes all children of the set.\n *\n = (object) Set object\n \\*/\n setproto.remove = function () {\n while (this.length) {\n this.pop().remove();\n }\n return this;\n };\n /*\\\n * Set.bind\n [ method ]\n **\n * Specifies how to handle a specific attribute when applied\n * to a set.\n *\n **\n - attr (string) attribute name\n - callback (function) function to run\n * or\n - attr (string) attribute name\n - element (Element) specific element in the set to apply the attribute to\n * or\n - attr (string) attribute name\n - element (Element) specific element in the set to apply the attribute to\n - eattr (string) attribute on the element to bind the attribute to\n = (object) Set object\n \\*/\n setproto.bind = function (attr, a, b) {\n var data = {};\n if (typeof a == \"function\") {\n this.bindings[attr] = a;\n } else {\n var aname = b || attr;\n this.bindings[attr] = function (v) {\n data[aname] = v;\n a.attr(data);\n };\n }\n return this;\n };\n /*\\\n * Set.attr\n [ method ]\n **\n * Equivalent of @Element.attr.\n = (object) Set object\n \\*/\n setproto.attr = function (value) {\n var unbound = {};\n for (var k in value) {\n if (this.bindings[k]) {\n this.bindings[k](value[k]);\n } else {\n unbound[k] = value[k];\n }\n }\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n this.items[i].attr(unbound);\n }\n return this;\n };\n /*\\\n * Set.clear\n [ method ]\n **\n * Removes all elements from the set\n \\*/\n setproto.clear = function () {\n while (this.length) {\n this.pop();\n }\n };\n /*\\\n * Set.splice\n [ method ]\n **\n * Removes range of elements from the set\n **\n - index (number) position of the deletion\n - count (number) number of element to remove\n - insertion… (object) #optional elements to insert\n = (object) set elements that were deleted\n \\*/\n setproto.splice = function (index, count, insertion) {\n index = index < 0 ? mmax(this.length + index, 0) : index;\n count = mmax(0, mmin(this.length - index, count));\n var tail = [],\n todel = [],\n args = [],\n i;\n for (i = 2; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n for (i = 0; i < count; i++) {\n todel.push(this[index + i]);\n }\n for (; i < this.length - index; i++) {\n tail.push(this[index + i]);\n }\n var arglen = args.length;\n for (i = 0; i < arglen + tail.length; i++) {\n this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen];\n }\n i = this.items.length = this.length -= count - arglen;\n while (this[i]) {\n delete this[i++];\n }\n return new Set(todel);\n };\n /*\\\n * Set.exclude\n [ method ]\n **\n * Removes given element from the set\n **\n - element (object) element to remove\n = (boolean) `true` if object was found and removed from the set\n \\*/\n setproto.exclude = function (el) {\n for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) {\n this.splice(i, 1);\n return true;\n }\n return false;\n };\n /*\\\n * Set.insertAfter\n [ method ]\n **\n * Inserts set elements after given element.\n **\n - element (object) set will be inserted after this element\n = (object) Set object\n \\*/\n setproto.insertAfter = function (el) {\n var i = this.items.length;\n while (i--) {\n this.items[i].insertAfter(el);\n }\n return this;\n };\n /*\\\n * Set.getBBox\n [ method ]\n **\n * Union of all bboxes of the set. See @Element.getBBox.\n = (object) bounding box descriptor. See @Element.getBBox.\n \\*/\n setproto.getBBox = function () {\n var x = [],\n y = [],\n x2 = [],\n y2 = [];\n for (var i = this.items.length; i--;) if (!this.items[i].removed) {\n var box = this.items[i].getBBox();\n x.push(box.x);\n y.push(box.y);\n x2.push(box.x + box.width);\n y2.push(box.y + box.height);\n }\n x = mmin.apply(0, x);\n y = mmin.apply(0, y);\n x2 = mmax.apply(0, x2);\n y2 = mmax.apply(0, y2);\n return {\n x: x,\n y: y,\n x2: x2,\n y2: y2,\n width: x2 - x,\n height: y2 - y,\n cx: x + (x2 - x) / 2,\n cy: y + (y2 - y) / 2\n };\n };\n /*\\\n * Set.insertAfter\n [ method ]\n **\n * Creates a clone of the set.\n **\n = (object) New Set object\n \\*/\n setproto.clone = function (s) {\n s = new Set;\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n s.push(this.items[i].clone());\n }\n return s;\n };\n setproto.toString = function () {\n return \"Snap\\u2018s set\";\n };\n setproto.type = \"set\";\n // export\n /*\\\n * Snap.Set\n [ property ]\n **\n * Set constructor.\n \\*/\n Snap.Set = Set;\n /*\\\n * Snap.set\n [ method ]\n **\n * Creates a set and fills it with list of arguments.\n **\n = (object) New Set object\n | var r = paper.rect(0, 0, 10, 10),\n | s1 = Snap.set(), // empty set\n | s2 = Snap.set(r, paper.circle(100, 100, 20)); // prefilled set\n \\*/\n Snap.set = function () {\n var set = new Set;\n if (arguments.length) {\n set.push.apply(set, Array.prototype.slice.call(arguments, 0));\n }\n return set;\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var names = {},\n reUnit = /[%a-z]+$/i,\n Str = String;\n names.stroke = names.fill = \"colour\";\n function getEmpty(item) {\n var l = item[0];\n switch (l.toLowerCase()) {\n case \"t\": return [l, 0, 0];\n case \"m\": return [l, 1, 0, 0, 1, 0, 0];\n case \"r\": if (item.length == 4) {\n return [l, 0, item[2], item[3]];\n } else {\n return [l, 0];\n }\n case \"s\": if (item.length == 5) {\n return [l, 1, 1, item[3], item[4]];\n } else if (item.length == 3) {\n return [l, 1, 1];\n } else {\n return [l, 1];\n }\n }\n }\n function equaliseTransform(t1, t2, getBBox) {\n t1 = t1 || new Snap.Matrix;\n t2 = t2 || new Snap.Matrix;\n t1 = Snap.parseTransformString(t1.toTransformString()) || [];\n t2 = Snap.parseTransformString(t2.toTransformString()) || [];\n var maxlength = Math.max(t1.length, t2.length),\n from = [],\n to = [],\n i = 0, j, jj,\n tt1, tt2;\n for (; i < maxlength; i++) {\n tt1 = t1[i] || getEmpty(t2[i]);\n tt2 = t2[i] || getEmpty(tt1);\n if (tt1[0] != tt2[0] ||\n tt1[0].toLowerCase() == \"r\" && (tt1[2] != tt2[2] || tt1[3] != tt2[3]) ||\n tt1[0].toLowerCase() == \"s\" && (tt1[3] != tt2[3] || tt1[4] != tt2[4])\n ) {\n t1 = Snap._.transform2matrix(t1, getBBox());\n t2 = Snap._.transform2matrix(t2, getBBox());\n from = [[\"m\", t1.a, t1.b, t1.c, t1.d, t1.e, t1.f]];\n to = [[\"m\", t2.a, t2.b, t2.c, t2.d, t2.e, t2.f]];\n break;\n }\n from[i] = [];\n to[i] = [];\n for (j = 0, jj = Math.max(tt1.length, tt2.length); j < jj; j++) {\n j in tt1 && (from[i][j] = tt1[j]);\n j in tt2 && (to[i][j] = tt2[j]);\n }\n }\n return {\n from: path2array(from),\n to: path2array(to),\n f: getPath(from)\n };\n }\n function getNumber(val) {\n return val;\n }\n function getUnit(unit) {\n return function (val) {\n return +val.toFixed(3) + unit;\n };\n }\n function getViewBox(val) {\n return val.join(\" \");\n }\n function getColour(clr) {\n return Snap.rgb(clr[0], clr[1], clr[2], clr[3]);\n }\n function getPath(path) {\n var k = 0, i, ii, j, jj, out, a, b = [];\n for (i = 0, ii = path.length; i < ii; i++) {\n out = \"[\";\n a = ['\"' + path[i][0] + '\"'];\n for (j = 1, jj = path[i].length; j < jj; j++) {\n a[j] = \"val[\" + k++ + \"]\";\n }\n out += a + \"]\";\n b[i] = out;\n }\n return Function(\"val\", \"return Snap.path.toString.call([\" + b + \"])\");\n }\n function path2array(path) {\n var out = [];\n for (var i = 0, ii = path.length; i < ii; i++) {\n for (var j = 1, jj = path[i].length; j < jj; j++) {\n out.push(path[i][j]);\n }\n }\n return out;\n }\n function isNumeric(obj) {\n return isFinite(obj);\n }\n function arrayEqual(arr1, arr2) {\n if (!Snap.is(arr1, \"array\") || !Snap.is(arr2, \"array\")) {\n return false;\n }\n return arr1.toString() == arr2.toString();\n }\n Element.prototype.equal = function (name, b) {\n return eve(\"snap.util.equal\", this, name, b).firstDefined();\n };\n eve.on(\"snap.util.equal\", function (name, b) {\n var A, B, a = Str(this.attr(name) || \"\"),\n el = this;\n if (names[name] == \"colour\") {\n A = Snap.color(a);\n B = Snap.color(b);\n return {\n from: [A.r, A.g, A.b, A.opacity],\n to: [B.r, B.g, B.b, B.opacity],\n f: getColour\n };\n }\n if (name == \"viewBox\") {\n A = this.attr(name).vb.split(\" \").map(Number);\n B = b.split(\" \").map(Number);\n return {\n from: A,\n to: B,\n f: getViewBox\n };\n }\n if (name == \"transform\" || name == \"gradientTransform\" || name == \"patternTransform\") {\n if (typeof b == \"string\") {\n b = Str(b).replace(/\\.{3}|\\u2026/g, a);\n }\n a = this.matrix;\n if (!Snap._.rgTransform.test(b)) {\n b = Snap._.transform2matrix(Snap._.svgTransform2string(b), this.getBBox());\n } else {\n b = Snap._.transform2matrix(b, this.getBBox());\n }\n return equaliseTransform(a, b, function () {\n return el.getBBox(1);\n });\n }\n if (name == \"d\" || name == \"path\") {\n A = Snap.path.toCubic(a, b);\n return {\n from: path2array(A[0]),\n to: path2array(A[1]),\n f: getPath(A[0])\n };\n }\n if (name == \"points\") {\n A = Str(a).split(Snap._.separator);\n B = Str(b).split(Snap._.separator);\n return {\n from: A,\n to: B,\n f: function (val) { return val; }\n };\n }\n if (isNumeric(a) && isNumeric(b)) {\n return {\n from: parseFloat(a),\n to: parseFloat(b),\n f: getNumber\n };\n }\n var aUnit = a.match(reUnit),\n bUnit = Str(b).match(reUnit);\n if (aUnit && arrayEqual(aUnit, bUnit)) {\n return {\n from: parseFloat(a),\n to: parseFloat(b),\n f: getUnit(aUnit)\n };\n } else {\n return {\n from: this.asPX(name),\n to: this.asPX(name, b),\n f: getNumber\n };\n }\n });\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n// \n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n// \n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var elproto = Element.prototype,\n has = \"hasOwnProperty\",\n supportsTouch = \"createTouch\" in glob.doc,\n events = [\n \"click\", \"dblclick\", \"mousedown\", \"mousemove\", \"mouseout\",\n \"mouseover\", \"mouseup\", \"touchstart\", \"touchmove\", \"touchend\",\n \"touchcancel\"\n ],\n touchMap = {\n mousedown: \"touchstart\",\n mousemove: \"touchmove\",\n mouseup: \"touchend\"\n },\n getScroll = function (xy, el) {\n var name = xy == \"y\" ? \"scrollTop\" : \"scrollLeft\",\n doc = el && el.node ? el.node.ownerDocument : glob.doc;\n return doc[name in doc.documentElement ? \"documentElement\" : \"body\"][name];\n },\n preventDefault = function () {\n this.returnValue = false;\n },\n preventTouch = function () {\n return this.originalEvent.preventDefault();\n },\n stopPropagation = function () {\n this.cancelBubble = true;\n },\n stopTouch = function () {\n return this.originalEvent.stopPropagation();\n },\n addEvent = function (obj, type, fn, element) {\n var realName = supportsTouch && touchMap[type] ? touchMap[type] : type,\n f = function (e) {\n var scrollY = getScroll(\"y\", element),\n scrollX = getScroll(\"x\", element);\n if (supportsTouch && touchMap[has](type)) {\n for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) {\n if (e.targetTouches[i].target == obj || obj.contains(e.targetTouches[i].target)) {\n var olde = e;\n e = e.targetTouches[i];\n e.originalEvent = olde;\n e.preventDefault = preventTouch;\n e.stopPropagation = stopTouch;\n break;\n }\n }\n }\n var x = e.clientX + scrollX,\n y = e.clientY + scrollY;\n return fn.call(element, e, x, y);\n };\n\n if (type !== realName) {\n obj.addEventListener(type, f, false);\n }\n\n obj.addEventListener(realName, f, false);\n\n return function () {\n if (type !== realName) {\n obj.removeEventListener(type, f, false);\n }\n\n obj.removeEventListener(realName, f, false);\n return true;\n };\n },\n drag = [],\n dragMove = function (e) {\n var x = e.clientX,\n y = e.clientY,\n scrollY = getScroll(\"y\"),\n scrollX = getScroll(\"x\"),\n dragi,\n j = drag.length;\n while (j--) {\n dragi = drag[j];\n if (supportsTouch) {\n var i = e.touches && e.touches.length,\n touch;\n while (i--) {\n touch = e.touches[i];\n if (touch.identifier == dragi.el._drag.id || dragi.el.node.contains(touch.target)) {\n x = touch.clientX;\n y = touch.clientY;\n (e.originalEvent ? e.originalEvent : e).preventDefault();\n break;\n }\n }\n } else {\n e.preventDefault();\n }\n var node = dragi.el.node,\n o,\n next = node.nextSibling,\n parent = node.parentNode,\n display = node.style.display;\n // glob.win.opera && parent.removeChild(node);\n // node.style.display = \"none\";\n // o = dragi.el.paper.getElementByPoint(x, y);\n // node.style.display = display;\n // glob.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node));\n // o && eve(\"snap.drag.over.\" + dragi.el.id, dragi.el, o);\n x += scrollX;\n y += scrollY;\n eve(\"snap.drag.move.\" + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e);\n }\n },\n dragUp = function (e) {\n Snap.unmousemove(dragMove).unmouseup(dragUp);\n var i = drag.length,\n dragi;\n while (i--) {\n dragi = drag[i];\n dragi.el._drag = {};\n eve(\"snap.drag.end.\" + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e);\n eve.off(\"snap.drag.*.\" + dragi.el.id);\n }\n drag = [];\n };\n /*\\\n * Element.click\n [ method ]\n **\n * Adds a click event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unclick\n [ method ]\n **\n * Removes a click event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.dblclick\n [ method ]\n **\n * Adds a double click event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.undblclick\n [ method ]\n **\n * Removes a double click event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mousedown\n [ method ]\n **\n * Adds a mousedown event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmousedown\n [ method ]\n **\n * Removes a mousedown event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mousemove\n [ method ]\n **\n * Adds a mousemove event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmousemove\n [ method ]\n **\n * Removes a mousemove event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mouseout\n [ method ]\n **\n * Adds a mouseout event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseout\n [ method ]\n **\n * Removes a mouseout event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mouseover\n [ method ]\n **\n * Adds a mouseover event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseover\n [ method ]\n **\n * Removes a mouseover event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mouseup\n [ method ]\n **\n * Adds a mouseup event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseup\n [ method ]\n **\n * Removes a mouseup event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchstart\n [ method ]\n **\n * Adds a touchstart event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchstart\n [ method ]\n **\n * Removes a touchstart event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchmove\n [ method ]\n **\n * Adds a touchmove event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchmove\n [ method ]\n **\n * Removes a touchmove event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchend\n [ method ]\n **\n * Adds a touchend event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchend\n [ method ]\n **\n * Removes a touchend event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchcancel\n [ method ]\n **\n * Adds a touchcancel event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchcancel\n [ method ]\n **\n * Removes a touchcancel event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n for (var i = events.length; i--;) {\n (function (eventName) {\n Snap[eventName] = elproto[eventName] = function (fn, scope) {\n if (Snap.is(fn, \"function\")) {\n this.events = this.events || [];\n this.events.push({\n name: eventName,\n f: fn,\n unbind: addEvent(this.node || document, eventName, fn, scope || this)\n });\n } else {\n for (var i = 0, ii = this.events.length; i < ii; i++) if (this.events[i].name == eventName) {\n try {\n this.events[i].f.call(this);\n } catch (e) {}\n }\n }\n return this;\n };\n Snap[\"un\" + eventName] =\n elproto[\"un\" + eventName] = function (fn) {\n var events = this.events || [],\n l = events.length;\n while (l--) if (events[l].name == eventName &&\n (events[l].f == fn || !fn)) {\n events[l].unbind();\n events.splice(l, 1);\n !events.length && delete this.events;\n return this;\n }\n return this;\n };\n })(events[i]);\n }\n /*\\\n * Element.hover\n [ method ]\n **\n * Adds hover event handlers to the element\n - f_in (function) handler for hover in\n - f_out (function) handler for hover out\n - icontext (object) #optional context for hover in handler\n - ocontext (object) #optional context for hover out handler\n = (object) @Element\n \\*/\n elproto.hover = function (f_in, f_out, scope_in, scope_out) {\n return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in);\n };\n /*\\\n * Element.unhover\n [ method ]\n **\n * Removes hover event handlers from the element\n - f_in (function) handler for hover in\n - f_out (function) handler for hover out\n = (object) @Element\n \\*/\n elproto.unhover = function (f_in, f_out) {\n return this.unmouseover(f_in).unmouseout(f_out);\n };\n var draggable = [];\n // SIERRA unclear what _context_ refers to for starting, ending, moving the drag gesture.\n // SIERRA Element.drag(): _x position of the mouse_: Where are the x/y values offset from?\n // SIERRA Element.drag(): much of this member's doc appears to be duplicated for some reason.\n // SIERRA Unclear about this sentence: _Additionally following drag events will be triggered: drag.start. on start, drag.end. on end and drag.move. on every move._ Is there a global _drag_ object to which you can assign handlers keyed by an element's ID?\n /*\\\n * Element.drag\n [ method ]\n **\n * Adds event handlers for an element's drag gesture\n **\n - onmove (function) handler for moving\n - onstart (function) handler for drag start\n - onend (function) handler for drag end\n - mcontext (object) #optional context for moving handler\n - scontext (object) #optional context for drag start handler\n - econtext (object) #optional context for drag end handler\n * Additionaly following `drag` events are triggered: `drag.start.` on start, \n * `drag.end.` on end and `drag.move.` on every move. When element is dragged over another element \n * `drag.over.` fires as well.\n *\n * Start event and start handler are called in specified context or in context of the element with following parameters:\n o x (number) x position of the mouse\n o y (number) y position of the mouse\n o event (object) DOM event object\n * Move event and move handler are called in specified context or in context of the element with following parameters:\n o dx (number) shift by x from the start point\n o dy (number) shift by y from the start point\n o x (number) x position of the mouse\n o y (number) y position of the mouse\n o event (object) DOM event object\n * End event and end handler are called in specified context or in context of the element with following parameters:\n o event (object) DOM event object\n = (object) @Element\n \\*/\n elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) {\n var el = this;\n if (!arguments.length) {\n var origTransform;\n return el.drag(function (dx, dy) {\n this.attr({\n transform: origTransform + (origTransform ? \"T\" : \"t\") + [dx, dy]\n });\n }, function () {\n origTransform = this.transform().local;\n });\n }\n function start(e, x, y) {\n (e.originalEvent || e).preventDefault();\n el._drag.x = x;\n el._drag.y = y;\n el._drag.id = e.identifier;\n !drag.length && Snap.mousemove(dragMove).mouseup(dragUp);\n drag.push({el: el, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope});\n onstart && eve.on(\"snap.drag.start.\" + el.id, onstart);\n onmove && eve.on(\"snap.drag.move.\" + el.id, onmove);\n onend && eve.on(\"snap.drag.end.\" + el.id, onend);\n eve(\"snap.drag.start.\" + el.id, start_scope || move_scope || el, x, y, e);\n }\n function init(e, x, y) {\n eve(\"snap.draginit.\" + el.id, el, e, x, y);\n }\n eve.on(\"snap.draginit.\" + el.id, start);\n el._drag = {};\n draggable.push({el: el, start: start, init: init});\n el.mousedown(init);\n return el;\n };\n /*\n * Element.onDragOver\n [ method ]\n **\n * Shortcut to assign event handler for `drag.over.` event, where `id` is the element's `id` (see @Element.id)\n - f (function) handler for event, first argument would be the element you are dragging over\n \\*/\n // elproto.onDragOver = function (f) {\n // f ? eve.on(\"snap.drag.over.\" + this.id, f) : eve.unbind(\"snap.drag.over.\" + this.id);\n // };\n /*\\\n * Element.undrag\n [ method ]\n **\n * Removes all drag event handlers from the given element\n \\*/\n elproto.undrag = function () {\n var i = draggable.length;\n while (i--) if (draggable[i].el == this) {\n this.unmousedown(draggable[i].init);\n draggable.splice(i, 1);\n eve.unbind(\"snap.drag.*.\" + this.id);\n eve.unbind(\"snap.draginit.\" + this.id);\n }\n !draggable.length && Snap.unmousemove(dragMove).unmouseup(dragUp);\n return this;\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var elproto = Element.prototype,\n pproto = Paper.prototype,\n rgurl = /^\\s*url\\((.+)\\)/,\n Str = String,\n $ = Snap._.$;\n Snap.filter = {};\n /*\\\n * Paper.filter\n [ method ]\n **\n * Creates a `` element\n **\n - filstr (string) SVG fragment of filter provided as a string\n = (object) @Element\n * Note: It is recommended to use filters embedded into the page inside an empty SVG element.\n > Usage\n | var f = paper.filter(''),\n | c = paper.circle(10, 10, 10).attr({\n | filter: f\n | });\n \\*/\n pproto.filter = function (filstr) {\n var paper = this;\n if (paper.type != \"svg\") {\n paper = paper.paper;\n }\n var f = Snap.parse(Str(filstr)),\n id = Snap._.id(),\n width = paper.node.offsetWidth,\n height = paper.node.offsetHeight,\n filter = $(\"filter\");\n $(filter, {\n id: id,\n filterUnits: \"userSpaceOnUse\"\n });\n filter.appendChild(f.node);\n paper.defs.appendChild(filter);\n return new Element(filter);\n };\n\n eve.on(\"snap.util.getattr.filter\", function () {\n eve.stop();\n var p = $(this.node, \"filter\");\n if (p) {\n var match = Str(p).match(rgurl);\n return match && Snap.select(match[1]);\n }\n });\n eve.on(\"snap.util.attr.filter\", function (value) {\n if (value instanceof Element && value.type == \"filter\") {\n eve.stop();\n var id = value.node.id;\n if (!id) {\n $(value.node, {id: value.id});\n id = value.id;\n }\n $(this.node, {\n filter: Snap.url(id)\n });\n }\n if (!value || value == \"none\") {\n eve.stop();\n this.node.removeAttribute(\"filter\");\n }\n });\n /*\\\n * Snap.filter.blur\n [ method ]\n **\n * Returns an SVG markup string for the blur filter\n **\n - x (number) amount of horizontal blur, in pixels\n - y (number) #optional amount of vertical blur, in pixels\n = (string) filter representation\n > Usage\n | var f = paper.filter(Snap.filter.blur(5, 10)),\n | c = paper.circle(10, 10, 10).attr({\n | filter: f\n | });\n \\*/\n Snap.filter.blur = function (x, y) {\n if (x == null) {\n x = 2;\n }\n var def = y == null ? x : [x, y];\n return Snap.format('\\', {\n def: def\n });\n };\n Snap.filter.blur.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.shadow\n [ method ]\n **\n * Returns an SVG markup string for the shadow filter\n **\n - dx (number) #optional horizontal shift of the shadow, in pixels\n - dy (number) #optional vertical shift of the shadow, in pixels\n - blur (number) #optional amount of blur\n - color (string) #optional color of the shadow\n - opacity (number) #optional `0..1` opacity of the shadow\n * or\n - dx (number) #optional horizontal shift of the shadow, in pixels\n - dy (number) #optional vertical shift of the shadow, in pixels\n - color (string) #optional color of the shadow\n - opacity (number) #optional `0..1` opacity of the shadow\n * which makes blur default to `4`. Or\n - dx (number) #optional horizontal shift of the shadow, in pixels\n - dy (number) #optional vertical shift of the shadow, in pixels\n - opacity (number) #optional `0..1` opacity of the shadow\n = (string) filter representation\n > Usage\n | var f = paper.filter(Snap.filter.shadow(0, 2, .3)),\n | c = paper.circle(10, 10, 10).attr({\n | filter: f\n | });\n \\*/\n Snap.filter.shadow = function (dx, dy, blur, color, opacity) {\n if (opacity == null) {\n if (color == null) {\n opacity = blur;\n blur = 4;\n color = \"#000\";\n } else {\n opacity = color;\n color = blur;\n blur = 4;\n }\n }\n if (blur == null) {\n blur = 4;\n }\n if (opacity == null) {\n opacity = 1;\n }\n if (dx == null) {\n dx = 0;\n dy = 2;\n }\n if (dy == null) {\n dy = dx;\n }\n color = Snap.color(color);\n return Snap.format('', {\n color: color,\n dx: dx,\n dy: dy,\n blur: blur,\n opacity: opacity\n });\n };\n Snap.filter.shadow.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.grayscale\n [ method ]\n **\n * Returns an SVG markup string for the grayscale filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.grayscale = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n a: 0.2126 + 0.7874 * (1 - amount),\n b: 0.7152 - 0.7152 * (1 - amount),\n c: 0.0722 - 0.0722 * (1 - amount),\n d: 0.2126 - 0.2126 * (1 - amount),\n e: 0.7152 + 0.2848 * (1 - amount),\n f: 0.0722 - 0.0722 * (1 - amount),\n g: 0.2126 - 0.2126 * (1 - amount),\n h: 0.0722 + 0.9278 * (1 - amount)\n });\n };\n Snap.filter.grayscale.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.sepia\n [ method ]\n **\n * Returns an SVG markup string for the sepia filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.sepia = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n a: 0.393 + 0.607 * (1 - amount),\n b: 0.769 - 0.769 * (1 - amount),\n c: 0.189 - 0.189 * (1 - amount),\n d: 0.349 - 0.349 * (1 - amount),\n e: 0.686 + 0.314 * (1 - amount),\n f: 0.168 - 0.168 * (1 - amount),\n g: 0.272 - 0.272 * (1 - amount),\n h: 0.534 - 0.534 * (1 - amount),\n i: 0.131 + 0.869 * (1 - amount)\n });\n };\n Snap.filter.sepia.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.saturate\n [ method ]\n **\n * Returns an SVG markup string for the saturate filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.saturate = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n amount: 1 - amount\n });\n };\n Snap.filter.saturate.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.hueRotate\n [ method ]\n **\n * Returns an SVG markup string for the hue-rotate filter\n **\n - angle (number) angle of rotation\n = (string) filter representation\n \\*/\n Snap.filter.hueRotate = function (angle) {\n angle = angle || 0;\n return Snap.format('', {\n angle: angle\n });\n };\n Snap.filter.hueRotate.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.invert\n [ method ]\n **\n * Returns an SVG markup string for the invert filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.invert = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n// \n return Snap.format('', {\n amount: amount,\n amount2: 1 - amount\n });\n };\n Snap.filter.invert.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.brightness\n [ method ]\n **\n * Returns an SVG markup string for the brightness filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.brightness = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n amount: amount\n });\n };\n Snap.filter.brightness.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.contrast\n [ method ]\n **\n * Returns an SVG markup string for the contrast filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.contrast = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n amount: amount,\n amount2: .5 - amount / 2\n });\n };\n Snap.filter.contrast.toString = function () {\n return this();\n };\n});\n\n// Copyright (c) 2014 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var box = Snap._.box,\n is = Snap.is,\n firstLetter = /^[^a-z]*([tbmlrc])/i,\n toString = function () {\n return \"T\" + this.dx + \",\" + this.dy;\n };\n /*\\\n * Element.getAlign\n [ method ]\n **\n * Returns shift needed to align the element relatively to given element.\n * If no elements specified, parent `` container will be used.\n - el (object) @optional alignment element\n - way (string) one of six values: `\"top\"`, `\"middle\"`, `\"bottom\"`, `\"left\"`, `\"center\"`, `\"right\"`\n = (object|string) Object in format `{dx: , dy: }` also has a string representation as a transformation string\n > Usage\n | el.transform(el.getAlign(el2, \"top\"));\n * or\n | var dy = el.getAlign(el2, \"top\").dy;\n \\*/\n Element.prototype.getAlign = function (el, way) {\n if (way == null && is(el, \"string\")) {\n way = el;\n el = null;\n }\n el = el || this.paper;\n var bx = el.getBBox ? el.getBBox() : box(el),\n bb = this.getBBox(),\n out = {};\n way = way && way.match(firstLetter);\n way = way ? way[1].toLowerCase() : \"c\";\n switch (way) {\n case \"t\":\n out.dx = 0;\n out.dy = bx.y - bb.y;\n break;\n case \"b\":\n out.dx = 0;\n out.dy = bx.y2 - bb.y2;\n break;\n case \"m\":\n out.dx = 0;\n out.dy = bx.cy - bb.cy;\n break;\n case \"l\":\n out.dx = bx.x - bb.x;\n out.dy = 0;\n break;\n case \"r\":\n out.dx = bx.x2 - bb.x2;\n out.dy = 0;\n break;\n default:\n out.dx = bx.cx - bb.cx;\n out.dy = 0;\n break;\n }\n out.toString = toString;\n return out;\n };\n /*\\\n * Element.align\n [ method ]\n **\n * Aligns the element relatively to given one via transformation.\n * If no elements specified, parent `` container will be used.\n - el (object) @optional alignment element\n - way (string) one of six values: `\"top\"`, `\"middle\"`, `\"bottom\"`, `\"left\"`, `\"center\"`, `\"right\"`\n = (object) this element\n > Usage\n | el.align(el2, \"top\");\n * or\n | el.align(\"middle\");\n \\*/\n Element.prototype.align = function (el, way) {\n return this.transform(\"...\" + this.getAlign(el, way));\n };\n});\n\n// Copyright (c) 2016 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var elproto = Element.prototype,\n is = Snap.is,\n Str = String,\n has = \"hasOwnProperty\";\n function slice(from, to, f) {\n return function (arr) {\n var res = arr.slice(from, to);\n if (res.length == 1) {\n res = res[0];\n }\n return f ? f(res) : res;\n };\n }\n var Animation = function (attr, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n this.attr = attr;\n this.dur = ms;\n easing && (this.easing = easing);\n callback && (this.callback = callback);\n };\n Snap._.Animation = Animation;\n /*\\\n * Snap.animation\n [ method ]\n **\n * Creates an animation object\n **\n - attr (object) attributes of final destination\n - duration (number) duration of the animation, in milliseconds\n - easing (function) #optional one of easing functions of @mina or custom one\n - callback (function) #optional callback function that fires when animation ends\n = (object) animation object\n \\*/\n Snap.animation = function (attr, ms, easing, callback) {\n return new Animation(attr, ms, easing, callback);\n };\n /*\\\n * Element.inAnim\n [ method ]\n **\n * Returns a set of animations that may be able to manipulate the current element\n **\n = (object) in format:\n o {\n o anim (object) animation object,\n o mina (object) @mina object,\n o curStatus (number) 0..1 — status of the animation: 0 — just started, 1 — just finished,\n o status (function) gets or sets the status of the animation,\n o stop (function) stops the animation\n o }\n \\*/\n elproto.inAnim = function () {\n var el = this,\n res = [];\n for (var id in el.anims) if (el.anims[has](id)) {\n (function (a) {\n res.push({\n anim: new Animation(a._attrs, a.dur, a.easing, a._callback),\n mina: a,\n curStatus: a.status(),\n status: function (val) {\n return a.status(val);\n },\n stop: function () {\n a.stop();\n }\n });\n }(el.anims[id]));\n }\n return res;\n };\n /*\\\n * Snap.animate\n [ method ]\n **\n * Runs generic animation of one number into another with a caring function\n **\n - from (number|array) number or array of numbers\n - to (number|array) number or array of numbers\n - setter (function) caring function that accepts one number argument\n - duration (number) duration, in milliseconds\n - easing (function) #optional easing function from @mina or custom\n - callback (function) #optional callback function to execute when animation ends\n = (object) animation object in @mina format\n o {\n o id (string) animation id, consider it read-only,\n o duration (function) gets or sets the duration of the animation,\n o easing (function) easing,\n o speed (function) gets or sets the speed of the animation,\n o status (function) gets or sets the status of the animation,\n o stop (function) stops the animation\n o }\n | var rect = Snap().rect(0, 0, 10, 10);\n | Snap.animate(0, 10, function (val) {\n | rect.attr({\n | x: val\n | });\n | }, 1000);\n | // in given context is equivalent to\n | rect.animate({x: 10}, 1000);\n \\*/\n Snap.animate = function (from, to, setter, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n var now = mina.time(),\n anim = mina(from, to, now, now + ms, mina.time, setter, easing);\n callback && eve.once(\"mina.finish.\" + anim.id, callback);\n return anim;\n };\n /*\\\n * Element.stop\n [ method ]\n **\n * Stops all the animations for the current element\n **\n = (Element) the current element\n \\*/\n elproto.stop = function () {\n var anims = this.inAnim();\n for (var i = 0, ii = anims.length; i < ii; i++) {\n anims[i].stop();\n }\n return this;\n };\n /*\\\n * Element.animate\n [ method ]\n **\n * Animates the given attributes of the element\n **\n - attrs (object) key-value pairs of destination attributes\n - duration (number) duration of the animation in milliseconds\n - easing (function) #optional easing function from @mina or custom\n - callback (function) #optional callback function that executes when the animation ends\n = (Element) the current element\n \\*/\n elproto.animate = function (attrs, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n if (attrs instanceof Animation) {\n callback = attrs.callback;\n easing = attrs.easing;\n ms = attrs.dur;\n attrs = attrs.attr;\n }\n var fkeys = [], tkeys = [], keys = {}, from, to, f, eq,\n el = this;\n for (var key in attrs) if (attrs[has](key)) {\n if (el.equal) {\n eq = el.equal(key, Str(attrs[key]));\n from = eq.from;\n to = eq.to;\n f = eq.f;\n } else {\n from = +el.attr(key);\n to = +attrs[key];\n }\n var len = is(from, \"array\") ? from.length : 1;\n keys[key] = slice(fkeys.length, fkeys.length + len, f);\n fkeys = fkeys.concat(from);\n tkeys = tkeys.concat(to);\n }\n var now = mina.time(),\n anim = mina(fkeys, tkeys, now, now + ms, mina.time, function (val) {\n var attr = {};\n for (var key in keys) if (keys[has](key)) {\n attr[key] = keys[key](val);\n }\n el.attr(attr);\n }, easing);\n el.anims[anim.id] = anim;\n anim._attrs = attrs;\n anim._callback = callback;\n eve(\"snap.animcreated.\" + el.id, anim);\n eve.once(\"mina.finish.\" + anim.id, function () {\n eve.off(\"mina.*.\" + anim.id);\n delete el.anims[anim.id];\n callback && callback.call(el);\n });\n eve.once(\"mina.stop.\" + anim.id, function () {\n eve.off(\"mina.*.\" + anim.id);\n delete el.anims[anim.id];\n });\n return el;\n };\n});\n\n// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n // Colours are from https://www.materialui.co\n var red = \"#ffebee#ffcdd2#ef9a9a#e57373#ef5350#f44336#e53935#d32f2f#c62828#b71c1c#ff8a80#ff5252#ff1744#d50000\",\n pink = \"#FCE4EC#F8BBD0#F48FB1#F06292#EC407A#E91E63#D81B60#C2185B#AD1457#880E4F#FF80AB#FF4081#F50057#C51162\",\n purple = \"#F3E5F5#E1BEE7#CE93D8#BA68C8#AB47BC#9C27B0#8E24AA#7B1FA2#6A1B9A#4A148C#EA80FC#E040FB#D500F9#AA00FF\",\n deeppurple = \"#EDE7F6#D1C4E9#B39DDB#9575CD#7E57C2#673AB7#5E35B1#512DA8#4527A0#311B92#B388FF#7C4DFF#651FFF#6200EA\",\n indigo = \"#E8EAF6#C5CAE9#9FA8DA#7986CB#5C6BC0#3F51B5#3949AB#303F9F#283593#1A237E#8C9EFF#536DFE#3D5AFE#304FFE\",\n blue = \"#E3F2FD#BBDEFB#90CAF9#64B5F6#64B5F6#2196F3#1E88E5#1976D2#1565C0#0D47A1#82B1FF#448AFF#2979FF#2962FF\",\n lightblue = \"#E1F5FE#B3E5FC#81D4FA#4FC3F7#29B6F6#03A9F4#039BE5#0288D1#0277BD#01579B#80D8FF#40C4FF#00B0FF#0091EA\",\n cyan = \"#E0F7FA#B2EBF2#80DEEA#4DD0E1#26C6DA#00BCD4#00ACC1#0097A7#00838F#006064#84FFFF#18FFFF#00E5FF#00B8D4\",\n teal = \"#E0F2F1#B2DFDB#80CBC4#4DB6AC#26A69A#009688#00897B#00796B#00695C#004D40#A7FFEB#64FFDA#1DE9B6#00BFA5\",\n green = \"#E8F5E9#C8E6C9#A5D6A7#81C784#66BB6A#4CAF50#43A047#388E3C#2E7D32#1B5E20#B9F6CA#69F0AE#00E676#00C853\",\n lightgreen = \"#F1F8E9#DCEDC8#C5E1A5#AED581#9CCC65#8BC34A#7CB342#689F38#558B2F#33691E#CCFF90#B2FF59#76FF03#64DD17\",\n lime = \"#F9FBE7#F0F4C3#E6EE9C#DCE775#D4E157#CDDC39#C0CA33#AFB42B#9E9D24#827717#F4FF81#EEFF41#C6FF00#AEEA00\",\n yellow = \"#FFFDE7#FFF9C4#FFF59D#FFF176#FFEE58#FFEB3B#FDD835#FBC02D#F9A825#F57F17#FFFF8D#FFFF00#FFEA00#FFD600\",\n amber = \"#FFF8E1#FFECB3#FFE082#FFD54F#FFCA28#FFC107#FFB300#FFA000#FF8F00#FF6F00#FFE57F#FFD740#FFC400#FFAB00\",\n orange = \"#FFF3E0#FFE0B2#FFCC80#FFB74D#FFA726#FF9800#FB8C00#F57C00#EF6C00#E65100#FFD180#FFAB40#FF9100#FF6D00\",\n deeporange = \"#FBE9E7#FFCCBC#FFAB91#FF8A65#FF7043#FF5722#F4511E#E64A19#D84315#BF360C#FF9E80#FF6E40#FF3D00#DD2C00\",\n brown = \"#EFEBE9#D7CCC8#BCAAA4#A1887F#8D6E63#795548#6D4C41#5D4037#4E342E#3E2723\",\n grey = \"#FAFAFA#F5F5F5#EEEEEE#E0E0E0#BDBDBD#9E9E9E#757575#616161#424242#212121\",\n bluegrey = \"#ECEFF1#CFD8DC#B0BEC5#90A4AE#78909C#607D8B#546E7A#455A64#37474F#263238\";\n /*\\\n * Snap.mui\n [ property ]\n **\n * Contain Material UI colours.\n | Snap().rect(0, 0, 10, 10).attr({fill: Snap.mui.deeppurple, stroke: Snap.mui.amber[600]});\n # For colour reference: https://www.materialui.co.\n \\*/\n Snap.mui = {};\n /*\\\n * Snap.flat\n [ property ]\n **\n * Contain Flat UI colours.\n | Snap().rect(0, 0, 10, 10).attr({fill: Snap.flat.carrot, stroke: Snap.flat.wetasphalt});\n # For colour reference: https://www.materialui.co.\n \\*/\n Snap.flat = {};\n function saveColor(colors) {\n colors = colors.split(/(?=#)/);\n var color = new String(colors[5]);\n color[50] = colors[0];\n color[100] = colors[1];\n color[200] = colors[2];\n color[300] = colors[3];\n color[400] = colors[4];\n color[500] = colors[5];\n color[600] = colors[6];\n color[700] = colors[7];\n color[800] = colors[8];\n color[900] = colors[9];\n if (colors[10]) {\n color.A100 = colors[10];\n color.A200 = colors[11];\n color.A400 = colors[12];\n color.A700 = colors[13];\n }\n return color;\n }\n Snap.mui.red = saveColor(red);\n Snap.mui.pink = saveColor(pink);\n Snap.mui.purple = saveColor(purple);\n Snap.mui.deeppurple = saveColor(deeppurple);\n Snap.mui.indigo = saveColor(indigo);\n Snap.mui.blue = saveColor(blue);\n Snap.mui.lightblue = saveColor(lightblue);\n Snap.mui.cyan = saveColor(cyan);\n Snap.mui.teal = saveColor(teal);\n Snap.mui.green = saveColor(green);\n Snap.mui.lightgreen = saveColor(lightgreen);\n Snap.mui.lime = saveColor(lime);\n Snap.mui.yellow = saveColor(yellow);\n Snap.mui.amber = saveColor(amber);\n Snap.mui.orange = saveColor(orange);\n Snap.mui.deeporange = saveColor(deeporange);\n Snap.mui.brown = saveColor(brown);\n Snap.mui.grey = saveColor(grey);\n Snap.mui.bluegrey = saveColor(bluegrey);\n Snap.flat.turquoise = \"#1abc9c\";\n Snap.flat.greensea = \"#16a085\";\n Snap.flat.sunflower = \"#f1c40f\";\n Snap.flat.orange = \"#f39c12\";\n Snap.flat.emerland = \"#2ecc71\";\n Snap.flat.nephritis = \"#27ae60\";\n Snap.flat.carrot = \"#e67e22\";\n Snap.flat.pumpkin = \"#d35400\";\n Snap.flat.peterriver = \"#3498db\";\n Snap.flat.belizehole = \"#2980b9\";\n Snap.flat.alizarin = \"#e74c3c\";\n Snap.flat.pomegranate = \"#c0392b\";\n Snap.flat.amethyst = \"#9b59b6\";\n Snap.flat.wisteria = \"#8e44ad\";\n Snap.flat.clouds = \"#ecf0f1\";\n Snap.flat.silver = \"#bdc3c7\";\n Snap.flat.wetasphalt = \"#34495e\";\n Snap.flat.midnightblue = \"#2c3e50\";\n Snap.flat.concrete = \"#95a5a6\";\n Snap.flat.asbestos = \"#7f8c8d\";\n /*\\\n * Snap.importMUIColors\n [ method ]\n **\n * Imports Material UI colours into global object.\n | Snap.importMUIColors();\n | Snap().rect(0, 0, 10, 10).attr({fill: deeppurple, stroke: amber[600]});\n # For colour reference: https://www.materialui.co.\n \\*/\n Snap.importMUIColors = function () {\n for (var color in Snap.mui) {\n if (Snap.mui.hasOwnProperty(color)) {\n window[color] = Snap.mui[color];\n }\n }\n };\n});\n\nmodule.exports = Snap\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","/**\n * textFit v2.3.1\n * Previously known as jQuery.textFit\n * 11/2014 by STRML (strml.github.com)\n * MIT License\n *\n * To use: textFit(document.getElementById('target-div'), options);\n *\n * Will make the *text* content inside a container scale to fit the container\n * The container is required to have a set width and height\n * Uses binary search to fit text with minimal layout calls.\n * Version 2.0 does not use jQuery.\n */\n/*global define:true, document:true, window:true, HTMLElement:true*/\n\n(function(root, factory) {\n \"use strict\";\n\n // UMD shim\n if (typeof define === \"function\" && define.amd) {\n // AMD\n define([], factory);\n } else if (typeof exports === \"object\") {\n // Node/CommonJS\n module.exports = factory();\n } else {\n // Browser\n root.textFit = factory();\n }\n\n}(typeof global === \"object\" ? global : this, function () {\n \"use strict\";\n\n var defaultSettings = {\n alignVert: false, // if true, textFit will align vertically using css tables\n alignHoriz: false, // if true, textFit will set text-align: center\n multiLine: false, // if true, textFit will not set white-space: no-wrap\n detectMultiLine: true, // disable to turn off automatic multi-line sensing\n minFontSize: 6,\n maxFontSize: 80,\n reProcess: true, // if true, textFit will re-process already-fit nodes. Set to 'false' for better performance\n widthOnly: false, // if true, textFit will fit text to element width, regardless of text height\n alignVertWithFlexbox: false, // if true, textFit will use flexbox for vertical alignment\n };\n\n return function textFit(els, options) {\n\n if (!options) options = {};\n\n // Extend options.\n var settings = {};\n for(var key in defaultSettings){\n if(options.hasOwnProperty(key)){\n settings[key] = options[key];\n } else {\n settings[key] = defaultSettings[key];\n }\n }\n\n // Convert jQuery objects into arrays\n if (typeof els.toArray === \"function\") {\n els = els.toArray();\n }\n\n // Support passing a single el\n var elType = Object.prototype.toString.call(els);\n if (elType !== '[object Array]' && elType !== '[object NodeList]' &&\n elType !== '[object HTMLCollection]'){\n els = [els];\n }\n\n // Process each el we've passed.\n for(var i = 0; i < els.length; i++){\n processItem(els[i], settings);\n }\n };\n\n /**\n * The meat. Given an el, make the text inside it fit its parent.\n * @param {DOMElement} el Child el.\n * @param {Object} settings Options for fit.\n */\n function processItem(el, settings){\n if (!isElement(el) || (!settings.reProcess && el.getAttribute('textFitted'))) {\n return false;\n }\n\n // Set textFitted attribute so we know this was processed.\n if(!settings.reProcess){\n el.setAttribute('textFitted', 1);\n }\n\n var innerSpan, originalHeight, originalHTML, originalWidth;\n var low, mid, high;\n\n // Get element data.\n originalHTML = el.innerHTML;\n originalWidth = innerWidth(el);\n originalHeight = innerHeight(el);\n\n // Don't process if we can't find box dimensions\n if (!originalWidth || (!settings.widthOnly && !originalHeight)) {\n if(!settings.widthOnly)\n throw new Error('Set a static height and width on the target element ' + el.outerHTML +\n ' before using textFit!');\n else\n throw new Error('Set a static width on the target element ' + el.outerHTML +\n ' before using textFit!');\n }\n\n // Add textFitted span inside this container.\n if (originalHTML.indexOf('textFitted') === -1) {\n innerSpan = document.createElement('span');\n innerSpan.className = 'textFitted';\n // Inline block ensure it takes on the size of its contents, even if they are enclosed\n // in other tags like

\n innerSpan.style['display'] = 'inline-block';\n innerSpan.innerHTML = originalHTML;\n el.innerHTML = '';\n el.appendChild(innerSpan);\n } else {\n // Reprocessing.\n innerSpan = el.querySelector('span.textFitted');\n // Remove vertical align if we're reprocessing.\n if (hasClass(innerSpan, 'textFitAlignVert')){\n innerSpan.className = innerSpan.className.replace('textFitAlignVert', '');\n innerSpan.style['height'] = '';\n el.className.replace('textFitAlignVertFlex', '');\n }\n }\n\n // Prepare & set alignment\n if (settings.alignHoriz) {\n el.style['text-align'] = 'center';\n innerSpan.style['text-align'] = 'center';\n }\n\n // Check if this string is multiple lines\n // Not guaranteed to always work if you use wonky line-heights\n var multiLine = settings.multiLine;\n if (settings.detectMultiLine && !multiLine &&\n innerSpan.scrollHeight >= parseInt(window.getComputedStyle(innerSpan)['font-size'], 10) * 2){\n multiLine = true;\n }\n\n // If we're not treating this as a multiline string, don't let it wrap.\n if (!multiLine) {\n el.style['white-space'] = 'nowrap';\n }\n\n low = settings.minFontSize;\n high = settings.maxFontSize;\n\n // Binary search for highest best fit\n var size = low;\n while (low <= high) {\n mid = (high + low) >> 1;\n innerSpan.style.fontSize = mid + 'px';\n if(innerSpan.scrollWidth <= originalWidth && (settings.widthOnly || innerSpan.scrollHeight <= originalHeight)){\n size = mid;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n // await injection point\n }\n // found, updating font if differs:\n if( innerSpan.style.fontSize != size + 'px' ) innerSpan.style.fontSize = size + 'px';\n\n // Our height is finalized. If we are aligning vertically, set that up.\n if (settings.alignVert) {\n addStyleSheet();\n var height = innerSpan.scrollHeight;\n if (window.getComputedStyle(el)['position'] === \"static\"){\n el.style['position'] = 'relative';\n }\n if (!hasClass(innerSpan, \"textFitAlignVert\")){\n innerSpan.className = innerSpan.className + \" textFitAlignVert\";\n }\n innerSpan.style['height'] = height + \"px\";\n if (settings.alignVertWithFlexbox && !hasClass(el, \"textFitAlignVertFlex\")) {\n el.className = el.className + \" textFitAlignVertFlex\";\n }\n }\n }\n\n // Calculate height without padding.\n function innerHeight(el){\n var style = window.getComputedStyle(el, null);\n return el.clientHeight -\n parseInt(style.getPropertyValue('padding-top'), 10) -\n parseInt(style.getPropertyValue('padding-bottom'), 10);\n }\n\n // Calculate width without padding.\n function innerWidth(el){\n var style = window.getComputedStyle(el, null);\n return el.clientWidth -\n parseInt(style.getPropertyValue('padding-left'), 10) -\n parseInt(style.getPropertyValue('padding-right'), 10);\n }\n\n //Returns true if it is a DOM element\n function isElement(o){\n return (\n typeof HTMLElement === \"object\" ? o instanceof HTMLElement : //DOM2\n o && typeof o === \"object\" && o !== null && o.nodeType === 1 && typeof o.nodeName===\"string\"\n );\n }\n\n function hasClass(element, cls) {\n return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;\n }\n\n // Better than a stylesheet dependency\n function addStyleSheet() {\n if (document.getElementById(\"textFitStyleSheet\")) return;\n var style = [\n \".textFitAlignVert{\",\n \"position: absolute;\",\n \"top: 0; right: 0; bottom: 0; left: 0;\",\n \"margin: auto;\",\n \"display: flex;\",\n \"justify-content: center;\",\n \"flex-direction: column;\",\n \"}\",\n \".textFitAlignVertFlex{\",\n \"display: flex;\",\n \"}\",\n \".textFitAlignVertFlex .textFitAlignVert{\",\n \"position: static;\",\n \"}\",].join(\"\");\n\n var css = document.createElement(\"style\");\n css.type = \"text/css\";\n css.id = \"textFitStyleSheet\";\n css.innerHTML = style;\n document.body.appendChild(css);\n }\n}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","export default function _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}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","export default function _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}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _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}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_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}","export default function _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}","export default function _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}","import * as React from \"react\";\nimport type { History, Location } from \"history\";\nimport { Action as NavigationType } from \"history\";\n\nimport type { RouteMatch } from \"./router\";\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n","import type { Location, Path, To } from \"history\";\nimport { parsePath } from \"history\";\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nexport function warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n ParamParseSegment extends string\n ? ParamParseSegment\n : string;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, (_) =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n","import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n );\n }, null as React.ReactElement | null);\n}\n","import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","import \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\nimport React, {Component} from \"react\";\nimport Slider from \"react-slick\";\nimport './Menu.css';\nimport { useNavigate } from \"react-router-dom\";\n\nconst Menu = () => {\n var settings = {\n dots: true,\n infinite: true,\n speed: 700,\n slidesToShow: 3,\n slidesToScroll: 3,\n autoplay: false,\n autoplaySpeed: 1000,\n centerMode: true,\n arrows: false,\n vertical: true,\n verticalSwiping: true,\n\n };\n let navigate = useNavigate();\n return (\n

\n\n );\n}\n\nexport default Menu;","import React from 'react'\nimport {elastic as Menu} from 'react-burger-menu';\nimport './Sidebar.css';\n\n\nconst Sidebar = () => {\n return (\n \n

Ayahmatch

\n
Home\n Dhikr Counter\n Duas (TBA)\n Tahajjud (TBA)\n About\n
\n\n );\n}\n\nexport default Sidebar","import React from 'react';\nimport './About.css';\n\nconst About = () => {\n return (\n
\n

\n Ayahmatch is a web application designed to help users match the \n translation against the arabic phrases to improve the understanding of Quranic Surahs.\n This application is under continuous development\n

\n\n

\n Github Repo for bug reports: https://github.com/xZifhuba/ayahmatch\n

\n

\n Dev team (Github Profiles):\n

\n

\n xZifhuba\n

\n

\n bbuthow\n

\n

\n piekarczykw\n

\n

\n

\n

\n

\n \n

\n إِنَّا ِلِلَّٰهِ وَإِنَّا إِلَيْهِ رَاجِعُونَ\n

\n\n \n\n \n
\n\n );\n\n}\n\nexport default About","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","const defaultTimestep = (1 / 60) * 1000;\nconst getCurrentTime = typeof performance !== \"undefined\"\n ? () => performance.now()\n : () => Date.now();\nconst onNextFrame = typeof window !== \"undefined\"\n ? (callback) => window.requestAnimationFrame(callback)\n : (callback) => setTimeout(() => callback(getCurrentTime()), defaultTimestep);\n\nexport { defaultTimestep, onNextFrame };\n","import { onNextFrame, defaultTimestep } from './on-next-frame.mjs';\nimport { createRenderStep } from './create-render-step.mjs';\n\nconst maxElapsed = 40;\nlet useDefaultElapsed = true;\nlet runNextFrame = false;\nlet isProcessing = false;\nconst frame = {\n delta: 0,\n timestamp: 0,\n};\nconst stepsOrder = [\n \"read\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\",\n];\nconst steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n}, {});\nconst sync = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n startLoop();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n}, {});\nconst cancelSync = stepsOrder.reduce((acc, key) => {\n acc[key] = steps[key].cancel;\n return acc;\n}, {});\nconst flushSync = stepsOrder.reduce((acc, key) => {\n acc[key] = () => steps[key].process(frame);\n return acc;\n}, {});\nconst processStep = (stepId) => steps[stepId].process(frame);\nconst processFrame = (timestamp) => {\n runNextFrame = false;\n frame.delta = useDefaultElapsed\n ? defaultTimestep\n : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n frame.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n if (runNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\nconst startLoop = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing)\n onNextFrame(processFrame);\n};\nconst getFrameData = () => frame;\n\nexport default sync;\nexport { cancelSync, flushSync, getFrameData };\n","function createRenderStep(runNextFrame) {\n let toRun = [];\n let toRunNextFrame = [];\n let numToRun = 0;\n let isProcessing = false;\n let flushNextFrame = false;\n const toKeepAlive = new WeakSet();\n const step = {\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const buffer = addToCurrentFrame ? toRun : toRunNextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (buffer.indexOf(callback) === -1) {\n buffer.push(callback);\n if (addToCurrentFrame && isProcessing)\n numToRun = toRun.length;\n }\n return callback;\n },\n cancel: (callback) => {\n const index = toRunNextFrame.indexOf(callback);\n if (index !== -1)\n toRunNextFrame.splice(index, 1);\n toKeepAlive.delete(callback);\n },\n process: (frameData) => {\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [toRun, toRunNextFrame] = [toRunNextFrame, toRun];\n toRunNextFrame.length = 0;\n numToRun = toRun.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = toRun[i];\n callback(frameData);\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","function velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","import { __read } from 'tslib';\n\nfunction addUniqueItem(arr, item) {\n arr.indexOf(item) === -1 && arr.push(item);\n}\nfunction removeItem(arr, item) {\n var index = arr.indexOf(item);\n index > -1 && arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem(_a, fromIndex, toIndex) {\n var _b = __read(_a), arr = _b.slice(0);\n var startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n var endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n var _c = __read(arr.splice(fromIndex, 1), 1), item = _c[0];\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nvar SubscriptionManager = /** @class */ (function () {\n function SubscriptionManager() {\n this.subscriptions = [];\n }\n SubscriptionManager.prototype.add = function (handler) {\n var _this = this;\n addUniqueItem(this.subscriptions, handler);\n return function () { return removeItem(_this.subscriptions, handler); };\n };\n SubscriptionManager.prototype.notify = function (a, b, c) {\n var numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (var i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n var handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n };\n SubscriptionManager.prototype.getSize = function () {\n return this.subscriptions.length;\n };\n SubscriptionManager.prototype.clear = function () {\n this.subscriptions.length = 0;\n };\n return SubscriptionManager;\n}());\n\nexport { SubscriptionManager };\n","import sync, { getFrameData } from 'framesync';\nimport { velocityPerSecond } from 'popmotion';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\n\nvar isFloat = function (value) {\n return !isNaN(parseFloat(value));\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nvar MotionValue = /** @class */ (function () {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n function MotionValue(init) {\n var _this = this;\n /**\n * Duration, in milliseconds, since last updating frame.\n *\n * @internal\n */\n this.timeDelta = 0;\n /**\n * Timestamp of the last time this `MotionValue` was updated.\n *\n * @internal\n */\n this.lastUpdated = 0;\n /**\n * Functions to notify when the `MotionValue` updates.\n *\n * @internal\n */\n this.updateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the velocity updates.\n *\n * @internal\n */\n this.velocityUpdateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the `MotionValue` updates and `render` is set to `true`.\n *\n * @internal\n */\n this.renderSubscribers = new SubscriptionManager();\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = false;\n this.updateAndNotify = function (v, render) {\n if (render === void 0) { render = true; }\n _this.prev = _this.current;\n _this.current = v;\n // Update timestamp\n var _a = getFrameData(), delta = _a.delta, timestamp = _a.timestamp;\n if (_this.lastUpdated !== timestamp) {\n _this.timeDelta = delta;\n _this.lastUpdated = timestamp;\n sync.postRender(_this.scheduleVelocityCheck);\n }\n // Update update subscribers\n if (_this.prev !== _this.current) {\n _this.updateSubscribers.notify(_this.current);\n }\n // Update velocity subscribers\n if (_this.velocityUpdateSubscribers.getSize()) {\n _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n }\n // Update render subscribers\n if (render) {\n _this.renderSubscribers.notify(_this.current);\n }\n };\n /**\n * Schedule a velocity check for the next frame.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.scheduleVelocityCheck = function () { return sync.postRender(_this.velocityCheck); };\n /**\n * Updates `prev` with `current` if the value hasn't been updated this frame.\n * This ensures velocity calculations return `0`.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.velocityCheck = function (_a) {\n var timestamp = _a.timestamp;\n if (timestamp !== _this.lastUpdated) {\n _this.prev = _this.current;\n _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n }\n };\n this.hasAnimated = false;\n this.prev = this.current = init;\n this.canTrackVelocity = isFloat(this.current);\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.onChange(updateOpacity)\n * const unsubscribeY = y.onChange(updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @internalremarks\n *\n * We could look into a `useOnChange` hook if the above lifecycle management proves confusing.\n *\n * ```jsx\n * useOnChange(x, () => {})\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @public\n */\n MotionValue.prototype.onChange = function (subscription) {\n return this.updateSubscribers.add(subscription);\n };\n MotionValue.prototype.clearListeners = function () {\n this.updateSubscribers.clear();\n };\n /**\n * Adds a function that will be notified when the `MotionValue` requests a render.\n *\n * @param subscriber - A function that's provided the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @internal\n */\n MotionValue.prototype.onRenderRequest = function (subscription) {\n // Render immediately\n subscription(this.get());\n return this.renderSubscribers.add(subscription);\n };\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n MotionValue.prototype.attach = function (passiveEffect) {\n this.passiveEffect = passiveEffect;\n };\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n MotionValue.prototype.set = function (v, render) {\n if (render === void 0) { render = true; }\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n };\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n MotionValue.prototype.get = function () {\n return this.current;\n };\n /**\n * @public\n */\n MotionValue.prototype.getPrevious = function () {\n return this.prev;\n };\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n MotionValue.prototype.getVelocity = function () {\n // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful\n return this.canTrackVelocity\n ? // These casts could be avoided if parseFloat would be typed better\n velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prev), this.timeDelta)\n : 0;\n };\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n MotionValue.prototype.start = function (animation) {\n var _this = this;\n this.stop();\n return new Promise(function (resolve) {\n _this.hasAnimated = true;\n _this.stopAnimation = animation(resolve);\n }).then(function () { return _this.clearAnimation(); });\n };\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n MotionValue.prototype.stop = function () {\n if (this.stopAnimation)\n this.stopAnimation();\n this.clearAnimation();\n };\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n MotionValue.prototype.isAnimating = function () {\n return !!this.stopAnimation;\n };\n MotionValue.prototype.clearAnimation = function () {\n this.stopAnimation = null;\n };\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n MotionValue.prototype.destroy = function () {\n this.updateSubscribers.clear();\n this.renderSubscribers.clear();\n this.stop();\n };\n return MotionValue;\n}());\n/**\n * @internal\n */\nfunction motionValue(init) {\n return new MotionValue(init);\n}\n\nexport { MotionValue, motionValue };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nvar MotionConfigContext = createContext({\n transformPagePoint: function (p) { return p; },\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n var ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","import { __read } from 'tslib';\nimport { useContext, useState, useEffect } from 'react';\nimport { motionValue } from './index.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { useConstant } from '../utils/use-constant.mjs';\n\n/**\n * Creates a `MotionValue` to track the state and velocity of a value.\n *\n * Usually, these are created automatically. For advanced use-cases, like use with `useTransform`, you can create `MotionValue`s externally and pass them into the animated component via the `style` prop.\n *\n * ```jsx\n * export const MyComponent = () => {\n * const scale = useMotionValue(1)\n *\n * return \n * }\n * ```\n *\n * @param initial - The initial state.\n *\n * @public\n */\nfunction useMotionValue(initial) {\n var value = useConstant(function () { return motionValue(initial); });\n /**\n * If this motion value is being used in static mode, like on\n * the Framer canvas, force components to rerender when the motion\n * value is updated.\n */\n var isStatic = useContext(MotionConfigContext).isStatic;\n if (isStatic) {\n var _a = __read(useState(initial), 2), setLatest_1 = _a[1];\n useEffect(function () { return value.onChange(setLatest_1); }, []);\n }\n return value;\n}\n\nexport { useMotionValue };\n","import { createContext } from 'react';\n\nvar LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","var createDefinition = function (propNames) { return ({\n isEnabled: function (props) { return propNames.some(function (name) { return !!props[name]; }); },\n}); };\nvar featureDefinitions = {\n measureLayout: createDefinition([\"layout\", \"layoutId\", \"drag\"]),\n animation: createDefinition([\n \"animate\",\n \"exit\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"whileFocus\",\n \"whileDrag\",\n \"whileInView\",\n ]),\n exit: createDefinition([\"exit\"]),\n drag: createDefinition([\"drag\", \"dragControls\"]),\n focus: createDefinition([\"whileFocus\"]),\n hover: createDefinition([\"whileHover\", \"onHoverStart\", \"onHoverEnd\"]),\n tap: createDefinition([\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"]),\n pan: createDefinition([\n \"onPan\",\n \"onPanStart\",\n \"onPanSessionStart\",\n \"onPanEnd\",\n ]),\n inView: createDefinition([\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n ]),\n};\nfunction loadFeatures(features) {\n for (var key in features) {\n if (features[key] === null)\n continue;\n if (key === \"projectionNodeConstructor\") {\n featureDefinitions.projectionNodeConstructor = features[key];\n }\n else {\n featureDefinitions[key].Component = features[key];\n }\n }\n}\n\nexport { featureDefinitions, loadFeatures };\n","import { __read, __rest } from 'tslib';\nimport * as React from 'react';\nimport { useState, useRef, useEffect } from 'react';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { loadFeatures } from '../../motion/features/definitions.mjs';\n\n/**\n * Used in conjunction with the `m` component to reduce bundle size.\n *\n * `m` is a version of the `motion` component that only loads functionality\n * critical for the initial render.\n *\n * `LazyMotion` can then be used to either synchronously or asynchronously\n * load animation and gesture support.\n *\n * ```jsx\n * // Synchronous loading\n * import { LazyMotion, m, domAnimations } from \"framer-motion\"\n *\n * function App() {\n * return (\n * \n * \n * \n * )\n * }\n *\n * // Asynchronous loading\n * import { LazyMotion, m } from \"framer-motion\"\n *\n * function App() {\n * return (\n * import('./path/to/domAnimations')}>\n * \n * \n * )\n * }\n * ```\n *\n * @public\n */\nfunction LazyMotion(_a) {\n var children = _a.children, features = _a.features, _b = _a.strict, strict = _b === void 0 ? false : _b;\n var _c = __read(useState(!isLazyBundle(features)), 2), setIsLoaded = _c[1];\n var loadedRenderer = useRef(undefined);\n /**\n * If this is a synchronous load, load features immediately\n */\n if (!isLazyBundle(features)) {\n var renderer = features.renderer, loadedFeatures = __rest(features, [\"renderer\"]);\n loadedRenderer.current = renderer;\n loadFeatures(loadedFeatures);\n }\n useEffect(function () {\n if (isLazyBundle(features)) {\n features().then(function (_a) {\n var renderer = _a.renderer, loadedFeatures = __rest(_a, [\"renderer\"]);\n loadFeatures(loadedFeatures);\n loadedRenderer.current = renderer;\n setIsLoaded(true);\n });\n }\n }, []);\n return (React.createElement(LazyContext.Provider, { value: { renderer: loadedRenderer.current, strict: strict } }, children));\n}\nfunction isLazyBundle(features) {\n return typeof features === \"function\";\n}\n\nexport { LazyMotion };\n","function isMouseEvent(event) {\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (typeof PointerEvent !== \"undefined\" && event instanceof PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n return event instanceof MouseEvent;\n}\nfunction isTouchEvent(event) {\n var hasTouches = !!event.touches;\n return hasTouches;\n}\n\nexport { isMouseEvent, isTouchEvent };\n","import { isTouchEvent } from '../gestures/utils/event-type.mjs';\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n return function (event) {\n var isMouseEvent = event instanceof MouseEvent;\n var isPrimaryPointer = !isMouseEvent ||\n (isMouseEvent && event.button === 0);\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\nvar defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n var primaryTouch = e.touches[0] || e.changedTouches[0];\n var point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction pointFromMouse(point, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction extractEventInfo(event, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n };\n}\nvar wrapHandler = function (handler, shouldFilterPrimaryPointer) {\n if (shouldFilterPrimaryPointer === void 0) { shouldFilterPrimaryPointer = false; }\n var listener = function (event) {\n return handler(event, extractEventInfo(event));\n };\n return shouldFilterPrimaryPointer\n ? filterPrimaryPointer(listener)\n : listener;\n};\n\nexport { extractEventInfo, wrapHandler };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nvar secondsToMilliseconds = function (seconds) { return seconds * 1000; };\n\nexport { secondsToMilliseconds };\n","import { useEffect } from 'react';\n\nfunction addDomEvent(target, eventName, handler, options) {\n target.addEventListener(eventName, handler, options);\n return function () { return target.removeEventListener(eventName, handler, options); };\n}\n/**\n * Attaches an event listener directly to the provided DOM element.\n *\n * Bypassing React's event system can be desirable, for instance when attaching non-passive\n * event handlers.\n *\n * ```jsx\n * const ref = useRef(null)\n *\n * useDomEvent(ref, 'wheel', onWheel, { passive: false })\n *\n * return
\n * ```\n *\n * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.\n * @param eventName - Name of the event you want listen for.\n * @param handler - Function to fire when receiving the event.\n * @param options - Options to pass to `Event.addEventListener`.\n *\n * @public\n */\nfunction useDomEvent(ref, eventName, handler, options) {\n useEffect(function () {\n var element = ref.current;\n if (handler && element) {\n return addDomEvent(element, eventName, handler, options);\n }\n }, [ref, eventName, handler, options]);\n}\n\nexport { addDomEvent, useDomEvent };\n","var isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\n","import { addDomEvent, useDomEvent } from './use-dom-event.mjs';\nimport { wrapHandler } from './event-info.mjs';\nimport { supportsPointerEvents, supportsTouchEvents, supportsMouseEvents } from './utils.mjs';\n\nvar mouseEventNames = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\",\n};\nvar touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\",\n};\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n }\n else if (supportsTouchEvents()) {\n return touchEventNames[name];\n }\n else if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\nfunction usePointerEvent(ref, eventName, handler, options) {\n return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\nexport { addPointerEvent, usePointerEvent };\n","import { isBrowser } from '../utils/is-browser.mjs';\n\n// We check for event support via functions in case they've been mocked by a testing suite.\nvar supportsPointerEvents = function () {\n return isBrowser && window.onpointerdown === null;\n};\nvar supportsTouchEvents = function () {\n return isBrowser && window.ontouchstart === null;\n};\nvar supportsMouseEvents = function () {\n return isBrowser && window.onmousedown === null;\n};\n\nexport { supportsMouseEvents, supportsPointerEvents, supportsTouchEvents };\n","const isPoint = (point) => point.hasOwnProperty('x') && point.hasOwnProperty('y');\n\nexport { isPoint };\n","import { isPoint } from './is-point.mjs';\n\nconst isPoint3D = (point) => isPoint(point) && point.hasOwnProperty('z');\n\nexport { isPoint3D };\n","const zeroPoint = {\n x: 0,\n y: 0,\n z: 0\n};\nconst isNum = (v) => typeof v === 'number';\n\nexport { isNum, zeroPoint };\n","import { isPoint } from './is-point.mjs';\nimport { isPoint3D } from './is-point-3d.mjs';\nimport { isNum } from './inc.mjs';\n\nconst distance1D = (a, b) => Math.abs(a - b);\nfunction distance(a, b) {\n if (isNum(a) && isNum(b)) {\n return distance1D(a, b);\n }\n else if (isPoint(a) && isPoint(b)) {\n const xDelta = distance1D(a.x, b.x);\n const yDelta = distance1D(a.y, b.y);\n const zDelta = isPoint3D(a) && isPoint3D(b) ? distance1D(a.z, b.z) : 0;\n return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2) + Math.pow(zDelta, 2));\n }\n}\n\nexport { distance };\n","const combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","import { __assign } from 'tslib';\nimport { isMouseEvent, isTouchEvent } from './utils/event-type.mjs';\nimport { extractEventInfo } from '../events/event-info.mjs';\nimport sync, { getFrameData, cancelSync } from 'framesync';\nimport { secondsToMilliseconds } from '../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { distance, pipe } from 'popmotion';\n\n/**\n * @internal\n */\nvar PanSession = /** @class */ (function () {\n function PanSession(event, handlers, _a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a, transformPagePoint = _b.transformPagePoint;\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n this.updatePoint = function () {\n if (!(_this.lastMoveEvent && _this.lastMoveEventInfo))\n return;\n var info = getPanInfo(_this.lastMoveEventInfo, _this.history);\n var isPanStarted = _this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n var isDistancePastThreshold = distance(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n var point = info.point;\n var timestamp = getFrameData().timestamp;\n _this.history.push(__assign(__assign({}, point), { timestamp: timestamp }));\n var _a = _this.handlers, onStart = _a.onStart, onMove = _a.onMove;\n if (!isPanStarted) {\n onStart && onStart(_this.lastMoveEvent, info);\n _this.startEvent = _this.lastMoveEvent;\n }\n onMove && onMove(_this.lastMoveEvent, info);\n };\n this.handlePointerMove = function (event, info) {\n _this.lastMoveEvent = event;\n _this.lastMoveEventInfo = transformPoint(info, _this.transformPagePoint);\n // Because Safari doesn't trigger mouseup events when it's above a `