{"version":3,"file":"static/js/main.ae6bf59a.js","mappings":"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","sources":["../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/objectSpread.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/babel-runtime/core-js/object/get-prototype-of.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/classnames/index.js","../node_modules/core-js/library/fn/object/assign.js","../node_modules/core-js/library/fn/object/create.js","../node_modules/core-js/library/fn/object/define-property.js","../node_modules/core-js/library/fn/object/get-prototype-of.js","../node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/core-js/library/fn/symbol/index.js","../node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/core-js/library/modules/_a-function.js","../node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/core-js/library/modules/_an-object.js","../node_modules/core-js/library/modules/_array-includes.js","../node_modules/core-js/library/modules/_cof.js","../node_modules/core-js/library/modules/_core.js","../node_modules/core-js/library/modules/_ctx.js","../node_modules/core-js/library/modules/_defined.js","../node_modules/core-js/library/modules/_descriptors.js","../node_modules/core-js/library/modules/_dom-create.js","../node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/core-js/library/modules/_enum-keys.js","../node_modules/core-js/library/modules/_export.js","../node_modules/core-js/library/modules/_fails.js","../node_modules/core-js/library/modules/_global.js","../node_modules/core-js/library/modules/_has.js","../node_modules/core-js/library/modules/_hide.js","../node_modules/core-js/library/modules/_html.js","../node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/core-js/library/modules/_iobject.js","../node_modules/core-js/library/modules/_is-array.js","../node_modules/core-js/library/modules/_is-object.js","../node_modules/core-js/library/modules/_iter-create.js","../node_modules/core-js/library/modules/_iter-define.js","../node_modules/core-js/library/modules/_iter-step.js","../node_modules/core-js/library/modules/_iterators.js","../node_modules/core-js/library/modules/_library.js","../node_modules/core-js/library/modules/_meta.js","../node_modules/core-js/library/modules/_object-assign.js","../node_modules/core-js/library/modules/_object-create.js","../node_modules/core-js/library/modules/_object-dp.js","../node_modules/core-js/library/modules/_object-dps.js","../node_modules/core-js/library/modules/_object-gopd.js","../node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/core-js/library/modules/_object-gopn.js","../node_modules/core-js/library/modules/_object-gops.js","../node_modules/core-js/library/modules/_object-gpo.js","../node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/core-js/library/modules/_object-keys.js","../node_modules/core-js/library/modules/_object-pie.js","../node_modules/core-js/library/modules/_object-sap.js","../node_modules/core-js/library/modules/_property-desc.js","../node_modules/core-js/library/modules/_redefine.js","../node_modules/core-js/library/modules/_set-proto.js","../node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/core-js/library/modules/_shared-key.js","../node_modules/core-js/library/modules/_shared.js","../node_modules/core-js/library/modules/_string-at.js","../node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/core-js/library/modules/_to-integer.js","../node_modules/core-js/library/modules/_to-iobject.js","../node_modules/core-js/library/modules/_to-length.js","../node_modules/core-js/library/modules/_to-object.js","../node_modules/core-js/library/modules/_to-primitive.js","../node_modules/core-js/library/modules/_uid.js","../node_modules/core-js/library/modules/_wks-define.js","../node_modules/core-js/library/modules/_wks-ext.js","../node_modules/core-js/library/modules/_wks.js","../node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/core-js/library/modules/es6.object.create.js","../node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/core-js/library/modules/es6.symbol.js","../node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/invariant/browser.js","../node_modules/isarray/index.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/object-assign/index.js","../node_modules/path-to-regexp/index.js","../node_modules/prop-types-extra/lib/all.js","../node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-lottie/dist/index.js","../node_modules/react-side-effect/lib/index.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/redux/es/redux.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/video-react/lib/Manager.js","../node_modules/video-react/lib/actions/player.js","../node_modules/video-react/lib/actions/video.js","../node_modules/video-react/lib/components/Bezel.js","../node_modules/video-react/lib/components/BigPlayButton.js","../node_modules/video-react/lib/components/ClickableComponent.js","../node_modules/video-react/lib/components/LoadingSpinner.js","../node_modules/video-react/lib/components/Player.js","../node_modules/video-react/lib/components/PosterImage.js","../node_modules/video-react/lib/components/Shortcut.js","../node_modules/video-react/lib/components/Slider.js","../node_modules/video-react/lib/components/Video.js","../node_modules/video-react/lib/components/control-bar/ClosedCaptionButton.js","../node_modules/video-react/lib/components/control-bar/ControlBar.js","../node_modules/video-react/lib/components/control-bar/ForwardControl.js","../node_modules/video-react/lib/components/control-bar/ForwardReplayControl.js","../node_modules/video-react/lib/components/control-bar/FullscreenToggle.js","../node_modules/video-react/lib/components/control-bar/LoadProgressBar.js","../node_modules/video-react/lib/components/control-bar/MouseTimeDisplay.js","../node_modules/video-react/lib/components/control-bar/PlayProgressBar.js","../node_modules/video-react/lib/components/control-bar/PlayToggle.js","../node_modules/video-react/lib/components/control-bar/PlaybackRate.js","../node_modules/video-react/lib/components/control-bar/PlaybackRateMenuButton.js","../node_modules/video-react/lib/components/control-bar/ProgressControl.js","../node_modules/video-react/lib/components/control-bar/ReplayControl.js","../node_modules/video-react/lib/components/control-bar/SeekBar.js","../node_modules/video-react/lib/components/control-bar/VolumeMenuButton.js","../node_modules/video-react/lib/components/menu/Menu.js","../node_modules/video-react/lib/components/menu/MenuButton.js","../node_modules/video-react/lib/components/menu/MenuItem.js","../node_modules/video-react/lib/components/popup/Popup.js","../node_modules/video-react/lib/components/popup/PopupButton.js","../node_modules/video-react/lib/components/time-controls/CurrentTimeDisplay.js","../node_modules/video-react/lib/components/time-controls/DurationDisplay.js","../node_modules/video-react/lib/components/time-controls/RemainingTimeDisplay.js","../node_modules/video-react/lib/components/time-controls/TimeDivider.js","../node_modules/video-react/lib/components/volume-control/VolumeBar.js","../node_modules/video-react/lib/components/volume-control/VolumeLevel.js","../node_modules/video-react/lib/index.js","../node_modules/video-react/lib/reducers/index.js","../node_modules/video-react/lib/reducers/operation.js","../node_modules/video-react/lib/reducers/player.js","../node_modules/video-react/lib/utils/browser.js","../node_modules/video-react/lib/utils/dom.js","../node_modules/video-react/lib/utils/fullscreen.js","../node_modules/video-react/lib/utils/index.js","../node_modules/warning/warning.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/history/esm/history.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-router/modules/createNameContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/react-bootstrap/esm/Row.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/react-bootstrap/esm/Col.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/react-bootstrap/esm/Button.js","components/VibeSteps.js","components/Home.js","components/Other.js","../node_modules/@restart/ui/esm/SelectableContext.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/dom-helpers/esm/camelize.js","../node_modules/react-bootstrap/esm/createWithBsPrefix.js","../node_modules/react-bootstrap/esm/NavbarBrand.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.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/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.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/react-bootstrap/esm/createChainedFunction.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.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/Collapse.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/react-bootstrap/esm/NavbarCollapse.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/react-bootstrap/esm/NavbarToggle.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../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/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/OffcanvasBody.js","../node_modules/react-bootstrap/esm/OffcanvasToggling.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/OffcanvasHeader.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/OffcanvasTitle.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-bootstrap/esm/Offcanvas.js","../node_modules/react-bootstrap/esm/NavbarOffcanvas.js","../node_modules/react-bootstrap/esm/Navbar.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/TabContext.js","../node_modules/@restart/ui/esm/NavItem.js","../node_modules/@restart/ui/esm/Nav.js","../node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/react-bootstrap/esm/CardHeaderContext.js","../node_modules/react-bootstrap/esm/NavItem.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/NavLink.js","../node_modules/react-bootstrap/esm/Nav.js","Navigation.js","components/footerEmail.js","components/Footer.js","components/Privacy.js","components/HowToDoug.js","components/CommunityGuidelines.js","components/GetDoug.js","components/HelpFaq.js","../node_modules/react-bootstrap/esm/Feedback.js","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/react-bootstrap/esm/FormCheckLabel.js","../node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/FormControl.js","../node_modules/react-bootstrap/esm/FormFloating.js","../node_modules/react-bootstrap/esm/FormGroup.js","../node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/react-bootstrap/esm/FormRange.js","../node_modules/react-bootstrap/esm/FormSelect.js","../node_modules/react-bootstrap/esm/FormText.js","../node_modules/react-bootstrap/esm/Switch.js","../node_modules/react-bootstrap/esm/FloatingLabel.js","../node_modules/react-bootstrap/esm/Form.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/Modal.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","components/States.js","components/DougForBusiness.js","components/EmailSignup.js","../node_modules/react-helmet/es/Helmet.js","components/PlaceDetail.js","components/Delete.js","App.js","reportWebVitals.js","index.js"],"sourcesContent":["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}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.26.1\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","/*!\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","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\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","/**\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","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","(typeof navigator !== \"undefined\") && (function(root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(function() {\n return factory(root);\n });\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory(root);\n } else {\n root.lottie = factory(root);\n root.bodymovin = root.lottie;\n }\n}((window || {}), function(window) {\n\t/* global locationHref:writable, animationManager, subframeEnabled:writable, defaultCurveSegments:writable, roundValues,\r\nexpressionsPlugin:writable, PropertyFactory, ShapePropertyFactory, Matrix, idPrefix:writable, _useWebWorker:writable */\r\n/* exported locationHref, subframeEnabled, expressionsPlugin, idPrefix, _useWebWorker */\r\n\r\n'use strict';\r\n\r\n/* exported svgNS, locationHref, initialDefaultFrame, _useWebWorker */\r\n\r\nvar svgNS = 'http://www.w3.org/2000/svg';\r\n\r\nvar locationHref = '';\r\n\r\nvar initialDefaultFrame = -999999;\r\n\r\nvar _useWebWorker = false;\r\n\r\n/* global createSizedArray */\r\n/* exported subframeEnabled, expressionsPlugin, isSafari, cachedColors, bmPow, bmSqrt, bmFloor, bmMax, bmMin, ProjectInterface,\r\ndefaultCurveSegments, degToRads, roundCorner, bmRnd, styleDiv, BMEnterFrameEvent, BMCompleteEvent, BMCompleteLoopEvent,\r\nBMSegmentStartEvent, BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, BMAnimationConfigErrorEvent, createElementID,\r\naddSaturationToRGB, addBrightnessToRGB, addHueToRGB, rgbToHex */\r\n\r\nvar subframeEnabled = true;\r\nvar idPrefix = '';\r\nvar expressionsPlugin;\r\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\nvar cachedColors = {};\r\nvar bmRnd;\r\nvar bmPow = Math.pow;\r\nvar bmSqrt = Math.sqrt;\r\nvar bmFloor = Math.floor;\r\nvar bmMax = Math.max;\r\nvar bmMin = Math.min;\r\n\r\nvar BMMath = {};\r\n(function () {\r\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\r\n var i;\r\n var len = propertyNames.length;\r\n for (i = 0; i < len; i += 1) {\r\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\r\n }\r\n}());\r\n\r\nfunction ProjectInterface() { return {}; }\r\n\r\nBMMath.random = Math.random;\r\nBMMath.abs = function (val) {\r\n var tOfVal = typeof val;\r\n if (tOfVal === 'object' && val.length) {\r\n var absArr = createSizedArray(val.length);\r\n var i;\r\n var len = val.length;\r\n for (i = 0; i < len; i += 1) {\r\n absArr[i] = Math.abs(val[i]);\r\n }\r\n return absArr;\r\n }\r\n return Math.abs(val);\r\n};\r\nvar defaultCurveSegments = 150;\r\nvar degToRads = Math.PI / 180;\r\nvar roundCorner = 0.5519;\r\n\r\nfunction roundValues(flag) {\r\n if (flag) {\r\n bmRnd = Math.round;\r\n } else {\r\n bmRnd = function (val) {\r\n return val;\r\n };\r\n }\r\n}\r\nroundValues(false);\r\n\r\nfunction styleDiv(element) {\r\n element.style.position = 'absolute';\r\n element.style.top = 0;\r\n element.style.left = 0;\r\n element.style.display = 'block';\r\n element.style.transformOrigin = '0 0';\r\n element.style.webkitTransformOrigin = '0 0';\r\n element.style.backfaceVisibility = 'visible';\r\n element.style.webkitBackfaceVisibility = 'visible';\r\n element.style.transformStyle = 'preserve-3d';\r\n element.style.webkitTransformStyle = 'preserve-3d';\r\n element.style.mozTransformStyle = 'preserve-3d';\r\n}\r\n\r\nfunction BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\r\n this.type = type;\r\n this.currentTime = currentTime;\r\n this.totalTime = totalTime;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction BMCompleteEvent(type, frameMultiplier) {\r\n this.type = type;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\r\n this.type = type;\r\n this.currentLoop = currentLoop;\r\n this.totalLoops = totalLoops;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction BMSegmentStartEvent(type, firstFrame, totalFrames) {\r\n this.type = type;\r\n this.firstFrame = firstFrame;\r\n this.totalFrames = totalFrames;\r\n}\r\n\r\nfunction BMDestroyEvent(type, target) {\r\n this.type = type;\r\n this.target = target;\r\n}\r\n\r\nfunction BMRenderFrameErrorEvent(nativeError, currentTime) {\r\n this.type = 'renderFrameError';\r\n this.nativeError = nativeError;\r\n this.currentTime = currentTime;\r\n}\r\n\r\nfunction BMConfigErrorEvent(nativeError) {\r\n this.type = 'configError';\r\n this.nativeError = nativeError;\r\n}\r\n\r\nfunction BMAnimationConfigErrorEvent(type, nativeError) {\r\n this.type = type;\r\n this.nativeError = nativeError;\r\n}\r\n\r\nvar createElementID = (function () {\r\n var _count = 0;\r\n return function createID() {\r\n _count += 1;\r\n return idPrefix + '__lottie_element_' + _count;\r\n };\r\n}());\r\n\r\nfunction HSVtoRGB(h, s, v) {\r\n var r;\r\n var g;\r\n var b;\r\n var i;\r\n var f;\r\n var p;\r\n var q;\r\n var t;\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n switch (i % 6) {\r\n case 0: r = v; g = t; b = p; break;\r\n case 1: r = q; g = v; b = p; break;\r\n case 2: r = p; g = v; b = t; break;\r\n case 3: r = p; g = q; b = v; break;\r\n case 4: r = t; g = p; b = v; break;\r\n case 5: r = v; g = p; b = q; break;\r\n default: break;\r\n }\r\n return [r,\r\n g,\r\n b];\r\n}\r\n\r\nfunction RGBtoHSV(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var d = max - min;\r\n var h;\r\n var s = (max === 0 ? 0 : d / max);\r\n var v = max / 255;\r\n\r\n switch (max) {\r\n case min: h = 0; break;\r\n case r: h = (g - b) + d * (g < b ? 6 : 0); h /= 6 * d; break;\r\n case g: h = (b - r) + d * 2; h /= 6 * d; break;\r\n case b: h = (r - g) + d * 4; h /= 6 * d; break;\r\n default: break;\r\n }\r\n\r\n return [\r\n h,\r\n s,\r\n v,\r\n ];\r\n}\r\n\r\nfunction addSaturationToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[1] += offset;\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n } else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nfunction addBrightnessToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[2] += offset;\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n } else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nfunction addHueToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[0] += offset / 360;\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n } else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nvar rgbToHex = (function () {\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n for (i = 0; i < 256; i += 1) {\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function (r, g, b) {\r\n if (r < 0) {\r\n r = 0;\r\n }\r\n if (g < 0) {\r\n g = 0;\r\n }\r\n if (b < 0) {\r\n b = 0;\r\n }\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n}());\r\n\r\nfunction BaseEvent() {}\r\nBaseEvent.prototype = {\r\n triggerEvent: function (eventName, args) {\r\n if (this._cbs[eventName]) {\r\n var callbacks = this._cbs[eventName];\r\n for (var i = 0; i < callbacks.length; i += 1) {\r\n callbacks[i](args);\r\n }\r\n }\r\n },\r\n addEventListener: function (eventName, callback) {\r\n if (!this._cbs[eventName]) {\r\n this._cbs[eventName] = [];\r\n }\r\n this._cbs[eventName].push(callback);\r\n\r\n return function () {\r\n this.removeEventListener(eventName, callback);\r\n }.bind(this);\r\n },\r\n removeEventListener: function (eventName, callback) {\r\n if (!callback) {\r\n this._cbs[eventName] = null;\r\n } else if (this._cbs[eventName]) {\r\n var i = 0;\r\n var len = this._cbs[eventName].length;\r\n while (i < len) {\r\n if (this._cbs[eventName][i] === callback) {\r\n this._cbs[eventName].splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n }\r\n i += 1;\r\n }\r\n if (!this._cbs[eventName].length) {\r\n this._cbs[eventName] = null;\r\n }\r\n }\r\n },\r\n};\r\n\r\n/* exported createTypedArray, createSizedArray */\r\n\r\nvar createTypedArray = (function () {\r\n function createRegularArray(type, len) {\r\n var i = 0;\r\n var arr = [];\r\n var value;\r\n switch (type) {\r\n case 'int16':\r\n case 'uint8c':\r\n value = 1;\r\n break;\r\n default:\r\n value = 1.1;\r\n break;\r\n }\r\n for (i = 0; i < len; i += 1) {\r\n arr.push(value);\r\n }\r\n return arr;\r\n }\r\n function createTypedArrayFactory(type, len) {\r\n if (type === 'float32') {\r\n return new Float32Array(len);\r\n } if (type === 'int16') {\r\n return new Int16Array(len);\r\n } if (type === 'uint8c') {\r\n return new Uint8ClampedArray(len);\r\n }\r\n return createRegularArray(type, len);\r\n }\r\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\r\n return createTypedArrayFactory;\r\n }\r\n return createRegularArray;\r\n}());\r\n\r\nfunction createSizedArray(len) {\r\n return Array.apply(null, { length: len });\r\n}\r\n\r\n/* global svgNS */\r\n/* exported createNS */\r\n\r\nfunction createNS(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElementNS(svgNS, type);\r\n}\r\n\r\n/* exported createTag */\r\n\r\nfunction createTag(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElement(type);\r\n}\r\n\r\nfunction DynamicPropertyContainer() {}\r\nDynamicPropertyContainer.prototype = {\r\n addDynamicProperty: function (prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n this.container.addDynamicProperty(this);\r\n this._isAnimated = true;\r\n }\r\n },\r\n iterateDynamicProperties: function () {\r\n this._mdf = false;\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n },\r\n initDynamicPropertyContainer: function (container) {\r\n this.container = container;\r\n this.dynamicProperties = [];\r\n this._mdf = false;\r\n this._isAnimated = false;\r\n },\r\n};\r\n\r\n/* exported getBlendMode */\r\n\r\nvar getBlendMode = (function () {\r\n var blendModeEnums = {\r\n 0: 'source-over',\r\n 1: 'multiply',\r\n 2: 'screen',\r\n 3: 'overlay',\r\n 4: 'darken',\r\n 5: 'lighten',\r\n 6: 'color-dodge',\r\n 7: 'color-burn',\r\n 8: 'hard-light',\r\n 9: 'soft-light',\r\n 10: 'difference',\r\n 11: 'exclusion',\r\n 12: 'hue',\r\n 13: 'saturation',\r\n 14: 'color',\r\n 15: 'luminosity',\r\n };\r\n\r\n return function (mode) {\r\n return blendModeEnums[mode] || '';\r\n };\r\n}());\r\n\r\n/* exported lineCapEnum, lineJoinEnum */\r\n\r\nvar lineCapEnum = {\r\n 1: 'butt',\r\n 2: 'round',\r\n 3: 'square',\r\n};\r\n\r\nvar lineJoinEnum = {\r\n 1: 'miter',\r\n 2: 'round',\r\n 3: 'bevel',\r\n};\r\n\r\n/* global createTypedArray */\r\n\r\n/*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\r\n\r\n/**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\r\n\r\nvar Matrix = (function () {\r\n var _cos = Math.cos;\r\n var _sin = Math.sin;\r\n var _tan = Math.tan;\r\n var _rnd = Math.round;\r\n\r\n function reset() {\r\n this.props[0] = 1;\r\n this.props[1] = 0;\r\n this.props[2] = 0;\r\n this.props[3] = 0;\r\n this.props[4] = 0;\r\n this.props[5] = 1;\r\n this.props[6] = 0;\r\n this.props[7] = 0;\r\n this.props[8] = 0;\r\n this.props[9] = 0;\r\n this.props[10] = 1;\r\n this.props[11] = 0;\r\n this.props[12] = 0;\r\n this.props[13] = 0;\r\n this.props[14] = 0;\r\n this.props[15] = 1;\r\n return this;\r\n }\r\n\r\n function rotate(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateX(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateY(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateZ(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function shear(sx, sy) {\r\n return this._t(1, sy, sx, 1, 0, 0);\r\n }\r\n\r\n function skew(ax, ay) {\r\n return this.shear(_tan(ax), _tan(ay));\r\n }\r\n\r\n function skewFromAxis(ax, angle) {\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\r\n ._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\r\n ._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\r\n }\r\n\r\n function scale(sx, sy, sz) {\r\n if (!sz && sz !== 0) {\r\n sz = 1;\r\n }\r\n if (sx === 1 && sy === 1 && sz === 1) {\r\n return this;\r\n }\r\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\r\n this.props[0] = a;\r\n this.props[1] = b;\r\n this.props[2] = c;\r\n this.props[3] = d;\r\n this.props[4] = e;\r\n this.props[5] = f;\r\n this.props[6] = g;\r\n this.props[7] = h;\r\n this.props[8] = i;\r\n this.props[9] = j;\r\n this.props[10] = k;\r\n this.props[11] = l;\r\n this.props[12] = m;\r\n this.props[13] = n;\r\n this.props[14] = o;\r\n this.props[15] = p;\r\n return this;\r\n }\r\n\r\n function translate(tx, ty, tz) {\r\n tz = tz || 0;\r\n if (tx !== 0 || ty !== 0 || tz !== 0) {\r\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\r\n }\r\n return this;\r\n }\r\n\r\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\r\n var _p = this.props;\r\n\r\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\r\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\r\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\r\n _p[12] = _p[12] * a2 + _p[15] * m2;\r\n _p[13] = _p[13] * f2 + _p[15] * n2;\r\n _p[14] = _p[14] * k2 + _p[15] * o2;\r\n _p[15] *= p2;\r\n // }\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n var a1 = _p[0];\r\n var b1 = _p[1];\r\n var c1 = _p[2];\r\n var d1 = _p[3];\r\n var e1 = _p[4];\r\n var f1 = _p[5];\r\n var g1 = _p[6];\r\n var h1 = _p[7];\r\n var i1 = _p[8];\r\n var j1 = _p[9];\r\n var k1 = _p[10];\r\n var l1 = _p[11];\r\n var m1 = _p[12];\r\n var n1 = _p[13];\r\n var o1 = _p[14];\r\n var p1 = _p[15];\r\n\r\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\r\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\r\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\r\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\r\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\r\n\r\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\r\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\r\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\r\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\r\n\r\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\r\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\r\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\r\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\r\n\r\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\r\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\r\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\r\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\r\n\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n function isIdentity() {\r\n if (!this._identityCalculated) {\r\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\r\n this._identityCalculated = true;\r\n }\r\n return this._identity;\r\n }\r\n\r\n function equals(matr) {\r\n var i = 0;\r\n while (i < 16) {\r\n if (matr.props[i] !== this.props[i]) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n }\r\n\r\n function clone(matr) {\r\n var i;\r\n for (i = 0; i < 16; i += 1) {\r\n matr.props[i] = this.props[i];\r\n }\r\n return matr;\r\n }\r\n\r\n function cloneFromProps(props) {\r\n var i;\r\n for (i = 0; i < 16; i += 1) {\r\n this.props[i] = props[i];\r\n }\r\n }\r\n\r\n function applyToPoint(x, y, z) {\r\n return {\r\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14],\r\n };\r\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\r\n }\r\n function applyToX(x, y, z) {\r\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\r\n }\r\n function applyToY(x, y, z) {\r\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\r\n }\r\n function applyToZ(x, y, z) {\r\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\r\n }\r\n\r\n function getInverseMatrix() {\r\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\r\n var a = this.props[5] / determinant;\r\n var b = -this.props[1] / determinant;\r\n var c = -this.props[4] / determinant;\r\n var d = this.props[0] / determinant;\r\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\r\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\r\n var inverseMatrix = new Matrix();\r\n inverseMatrix.props[0] = a;\r\n inverseMatrix.props[1] = b;\r\n inverseMatrix.props[4] = c;\r\n inverseMatrix.props[5] = d;\r\n inverseMatrix.props[12] = e;\r\n inverseMatrix.props[13] = f;\r\n return inverseMatrix;\r\n }\r\n\r\n function inversePoint(pt) {\r\n var inverseMatrix = this.getInverseMatrix();\r\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\r\n }\r\n\r\n function inversePoints(pts) {\r\n var i;\r\n var len = pts.length;\r\n var retPts = [];\r\n for (i = 0; i < len; i += 1) {\r\n retPts[i] = inversePoint(pts[i]);\r\n }\r\n return retPts;\r\n }\r\n\r\n function applyToTriplePoints(pt1, pt2, pt3) {\r\n var arr = createTypedArray('float32', 6);\r\n if (this.isIdentity()) {\r\n arr[0] = pt1[0];\r\n arr[1] = pt1[1];\r\n arr[2] = pt2[0];\r\n arr[3] = pt2[1];\r\n arr[4] = pt3[0];\r\n arr[5] = pt3[1];\r\n } else {\r\n var p0 = this.props[0];\r\n var p1 = this.props[1];\r\n var p4 = this.props[4];\r\n var p5 = this.props[5];\r\n var p12 = this.props[12];\r\n var p13 = this.props[13];\r\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\r\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\r\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\r\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\r\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\r\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\r\n }\r\n return arr;\r\n }\r\n\r\n function applyToPointArray(x, y, z) {\r\n var arr;\r\n if (this.isIdentity()) {\r\n arr = [x, y, z];\r\n } else {\r\n arr = [\r\n x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14],\r\n ];\r\n }\r\n return arr;\r\n }\r\n\r\n function applyToPointStringified(x, y) {\r\n if (this.isIdentity()) {\r\n return x + ',' + y;\r\n }\r\n var _p = this.props;\r\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\r\n }\r\n\r\n function toCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var i = 0;\r\n var props = this.props;\r\n var cssValue = 'matrix3d(';\r\n var v = 10000;\r\n while (i < 16) {\r\n cssValue += _rnd(props[i] * v) / v;\r\n cssValue += i === 15 ? ')' : ',';\r\n i += 1;\r\n }\r\n return cssValue;\r\n }\r\n\r\n function roundMatrixProperty(val) {\r\n var v = 10000;\r\n if ((val < 0.000001 && val > 0) || (val > -0.000001 && val < 0)) {\r\n return _rnd(val * v) / v;\r\n }\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var props = this.props;\r\n var _a = roundMatrixProperty(props[0]);\r\n var _b = roundMatrixProperty(props[1]);\r\n var _c = roundMatrixProperty(props[4]);\r\n var _d = roundMatrixProperty(props[5]);\r\n var _e = roundMatrixProperty(props[12]);\r\n var _f = roundMatrixProperty(props[13]);\r\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\r\n }\r\n\r\n return function () {\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n}());\r\n\r\n/* eslint-disable */\r\n/*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\r\n\r\n(function (pool, math) {\r\n//\r\n// The following constants are related to IEEE 754 limits.\r\n//\r\n var global = this,\r\n width = 256, // each RC4 output is 0 <= x < 256\r\n chunks = 6, // at least six RC4 outputs for each double\r\n digits = 52, // there are 52 significant digits in a double\r\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n\r\n//\r\n// seedrandom()\r\n// This is the seedrandom function described above.\r\n//\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = (options === true) ? { entropy: true } : (options || {});\r\n\r\n // Flatten the seed string or build one from local entropy if needed.\r\n var shortseed = mixkey(flatten(\r\n options.entropy ? [seed, tostring(pool)] :\r\n (seed === null) ? autoseed() : seed, 3), key);\r\n\r\n // Use the seed to initialize an ARC4 generator.\r\n var arc4 = new ARC4(key);\r\n\r\n // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n var prng = function() {\r\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\r\n d = startdenom, // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n while (n < significance) { // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n d *= width; // denominator and generating a\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n while (n >= overflow) { // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n d /= 2; // right using integer math until\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function() { return arc4.g(4) | 0; };\r\n prng.quick = function() { return arc4.g(4) / 0x100000000; };\r\n prng.double = prng;\r\n\r\n // Mix the randomness into accumulated entropy.\r\n mixkey(tostring(arc4.S), pool);\r\n\r\n // Calling convention: what to return as a function of prng, seed, is_math.\r\n return (options.pass || callback ||\r\n function(prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) { copy(state, arc4); }\r\n // Only provide the .state method if requested via options.state.\r\n prng.state = function() { return copy(arc4, {}); };\r\n }\r\n\r\n // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n if (is_math_call) { math[rngname] = prng; return seed; }\r\n\r\n // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(\r\n prng,\r\n shortseed,\r\n 'global' in options ? options.global : (this == math),\r\n options.state);\r\n }\r\n math['seed' + rngname] = seedrandom;\r\n\r\n//\r\n// ARC4\r\n//\r\n// An ARC4 implementation. The constructor takes a key in the form of\r\n// an array of at most (width) integers that should be 0 <= x < (width).\r\n//\r\n// The g(count) method returns a pseudorandom integer that concatenates\r\n// the next (count) outputs from ARC4. Its return value is a number x\r\n// that is in the range 0 <= x < (width ^ count).\r\n//\r\n function ARC4(key) {\r\n var t, keylen = key.length,\r\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\r\n\r\n // The empty key [] is treated as [0].\r\n if (!keylen) { key = [keylen++]; }\r\n\r\n // Set up S using the standard key scheduling algorithm.\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\r\n s[j] = t;\r\n }\r\n\r\n // The \"g\" method returns the next (count) outputs as one number.\r\n me.g = function(count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t, r = 0,\r\n i = me.i, j = me.j, s = me.S;\r\n while (count--) {\r\n t = s[i = mask & (i + 1)];\r\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\r\n }\r\n me.i = i; me.j = j;\r\n return r;\r\n // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n }\r\n\r\n//\r\n// copy()\r\n// Copies internal state of ARC4 to or from a plain object.\r\n//\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n }\r\n\r\n//\r\n// flatten()\r\n// Converts an object tree to nested arrays of strings.\r\n//\r\n function flatten(obj, depth) {\r\n var result = [], typ = (typeof obj), prop;\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\r\n }\r\n }\r\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\r\n }\r\n\r\n//\r\n// mixkey()\r\n// Mixes a string seed into a key that is an array of integers, and\r\n// returns a shortened string seed that is equivalent to the result key.\r\n//\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '', smear, j = 0;\r\n while (j < stringseed.length) {\r\n key[mask & j] =\r\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\r\n }\r\n return tostring(key);\r\n }\r\n\r\n//\r\n// autoseed()\r\n// Returns an object for autoseeding, using window.crypto and Node crypto\r\n// module if available.\r\n//\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n }\r\n\r\n//\r\n// tostring()\r\n// Converts an array of charcodes to a string\r\n//\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n }\r\n\r\n//\r\n// When seedrandom.js is loaded, we immediately mix a few bits\r\n// from the built-in RNG into the entropy pool. Because we do\r\n// not want to interfere with deterministic PRNG state later,\r\n// seedrandom will not call math.random on its own again after\r\n// initialization.\r\n//\r\n mixkey(math.random(), pool);\r\n\r\n//\r\n// Nodejs and AMD support: export the implementation as a module using\r\n// either convention.\r\n//\r\n\r\n// End anonymous scope, and pass initial values.\r\n})(\r\n [], // pool: entropy pool starts empty\r\n BMMath // math: package containing random, pow, and seedrandom\r\n);\r\n/* eslint-disable */\r\nvar BezierFactory = (function () {\r\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\r\n\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a, b, c, d, nm) {\r\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\r\n if (beziers[str]) {\r\n return beziers[str];\r\n }\r\n var bezEasing = new BezierEasing([a, b, c, d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n }\r\n\r\n // These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n\r\n var float32ArraySupported = typeof Float32Array === 'function';\r\n\r\n function A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\r\n function B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\r\n function C(aA1) { return 3.0 * aA1; }\r\n\r\n // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n function calcBezier(aT, aA1, aA2) {\r\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n }\r\n\r\n // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n function getSlope(aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\r\n var currentX,\r\n currentT,\r\n i = 0;\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n return aGuessT;\r\n }\r\n\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n function BezierEasing(points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n\r\n get: function (x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n\r\n // Private part\r\n\r\n _precompute: function () {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n if (mX1 !== mY1 || mX2 !== mY2) { this._calcSampleValues(); }\r\n },\r\n\r\n _calcSampleValues: function () {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function (aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n --currentSample;\r\n\r\n // Interpolate to provide an initial guess for t\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n } if (initialSlope === 0.0) {\r\n return guessForT;\r\n }\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n },\r\n };\r\n\r\n return ob;\r\n}());\r\n\r\n(function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { // eslint-disable-line no-plusplus\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n if (!window.requestAnimationFrame) {\r\n window.requestAnimationFrame = function (callback) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = setTimeout(function () {\r\n callback(currTime + timeToCall);\r\n },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n }\r\n if (!window.cancelAnimationFrame) {\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n }\r\n}());\r\n\r\n/* exported extendPrototype, getDescriptor, createProxyFunction */\r\n\r\nfunction extendPrototype(sources, destination) {\r\n var i;\r\n var len = sources.length;\r\n var sourcePrototype;\r\n for (i = 0; i < len; i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n for (var attr in sourcePrototype) {\r\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n}\r\n\r\nfunction getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n}\r\n\r\nfunction createProxyFunction(prototype) {\r\n function ProxyFunction() {}\r\n ProxyFunction.prototype = prototype;\r\n return ProxyFunction;\r\n}\r\n\r\n/* global segmentsLengthPool, defaultCurveSegments, createSizedArray, bmPow, bmSqrt, bmFloor, createTypedArray, bezierLengthPool */\r\n/* exported bez */\r\n\r\nfunction bezFunction() {\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\r\n var det1 = (x1 * y2) + (y1 * x3) + (x2 * y3) - (x3 * y2) - (y3 * x1) - (x2 * y1);\r\n return det1 > -0.001 && det1 < 0.001;\r\n }\r\n\r\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\r\n if (z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\r\n }\r\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\r\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\r\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\r\n var diffDist;\r\n if (dist1 > dist2) {\r\n if (dist1 > dist3) {\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if (dist3 > dist2) {\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = (function () {\r\n return function (pt1, pt2, pt3, pt4) {\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point = [];\r\n var lastPoint = [];\r\n var lengthData = bezierLengthPool.newElement();\r\n len = pt3.length;\r\n for (k = 0; k < curveSegments; k += 1) {\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n if (lastPoint[i] !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n lastPoint[i] = point[i];\r\n }\r\n if (ptDistance) {\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n }\r\n lengthData.percents[k] = perc;\r\n lengthData.lengths[k] = addedLength;\r\n }\r\n lengthData.addedLength = addedLength;\r\n return lengthData;\r\n };\r\n }());\r\n\r\n function getSegmentsLength(shapeData) {\r\n var segmentsLength = segmentsLengthPool.newElement();\r\n var closed = shapeData.c;\r\n var pathV = shapeData.v;\r\n var pathO = shapeData.o;\r\n var pathI = shapeData.i;\r\n var i;\r\n var len = shapeData._length;\r\n var lengths = segmentsLength.lengths;\r\n var totalLength = 0;\r\n for (i = 0; i < len - 1; i += 1) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n if (closed && len) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n segmentsLength.totalLength = totalLength;\r\n return segmentsLength;\r\n }\r\n\r\n function BezierData(length) {\r\n this.segmentLength = 0;\r\n this.points = new Array(length);\r\n }\r\n\r\n function PointData(partial, point) {\r\n this.partialLength = partial;\r\n this.point = point;\r\n }\r\n\r\n var buildBezierData = (function () {\r\n var storedData = {};\r\n\r\n return function (pt1, pt2, pt3, pt4) {\r\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\r\n if (!storedData[bezierName]) {\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point;\r\n var lastPoint = null;\r\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\r\n curveSegments = 2;\r\n }\r\n var bezierData = new BezierData(curveSegments);\r\n len = pt3.length;\r\n for (k = 0; k < curveSegments; k += 1) {\r\n point = createSizedArray(len);\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n if (lastPoint !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n }\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n bezierData.points[k] = new PointData(ptDistance, point);\r\n lastPoint = point;\r\n }\r\n bezierData.segmentLength = addedLength;\r\n storedData[bezierName] = bezierData;\r\n }\r\n return storedData[bezierName];\r\n };\r\n }());\r\n\r\n function getDistancePerc(perc, bezierData) {\r\n var percents = bezierData.percents;\r\n var lengths = bezierData.lengths;\r\n var len = percents.length;\r\n var initPos = bmFloor((len - 1) * perc);\r\n var lengthPos = perc * bezierData.addedLength;\r\n var lPerc = 0;\r\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\r\n return percents[initPos];\r\n }\r\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\r\n var flag = true;\r\n while (flag) {\r\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\r\n flag = false;\r\n } else {\r\n initPos += dir;\r\n }\r\n if (initPos < 0 || initPos >= len - 1) {\r\n // FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if (initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n flag = false;\r\n }\r\n }\r\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent, bezierData);\r\n var u1 = 1 - t1;\r\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\r\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\r\n return [ptX, ptY];\r\n }\r\n\r\n var bezierSegmentPoints = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\r\n if (startPerc < 0) {\r\n startPerc = 0;\r\n } else if (startPerc > 1) {\r\n startPerc = 1;\r\n }\r\n var t0 = getDistancePerc(startPerc, bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc, bezierData);\r\n var i;\r\n var len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n var u0u0u0 = u0 * u0 * u0;\r\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\r\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\r\n var t0t0t0 = t0 * t0 * t0;\r\n //\r\n var u0u0u1 = u0 * u0 * u1;\r\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\r\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\r\n var t0t0t1 = t0 * t0 * t1;\r\n //\r\n var u0u1u1 = u0 * u1 * u1;\r\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\r\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\r\n var t0t1t1 = t0 * t1 * t1;\r\n //\r\n var u1u1u1 = u1 * u1 * u1;\r\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\r\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\r\n var t1t1t1 = t1 * t1 * t1;\r\n for (i = 0; i < len; i += 1) {\r\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n }\r\n\r\n return bezierSegmentPoints;\r\n }\r\n\r\n return {\r\n getSegmentsLength: getSegmentsLength,\r\n getNewSegment: getNewSegment,\r\n getPointInSegment: getPointInSegment,\r\n buildBezierData: buildBezierData,\r\n pointOnLine2D: pointOnLine2D,\r\n pointOnLine3D: pointOnLine3D,\r\n };\r\n}\r\n\r\nvar bez = bezFunction();\r\n\r\n/* global _useWebWorker */\r\n\r\nvar dataManager = (function () {\r\n var _counterId = 1;\r\n var processes = [];\r\n var workerFn;\r\n var workerInstance;\r\n var workerProxy = {\r\n onmessage: function () {\r\n\r\n },\r\n postMessage: function (path) {\r\n workerFn({\r\n data: path,\r\n });\r\n },\r\n };\r\n var _workerSelf = {\r\n postMessage: function (data) {\r\n workerProxy.onmessage({\r\n data: data,\r\n });\r\n },\r\n };\r\n function createWorker(fn) {\r\n if (window.Worker && window.Blob && _useWebWorker) {\r\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n var url = URL.createObjectURL(blob);\r\n return new Worker(url);\r\n }\r\n workerFn = fn;\r\n return workerProxy;\r\n }\r\n\r\n function setupWorker() {\r\n if (!workerInstance) {\r\n workerInstance = createWorker(function workerStart(e) {\r\n /* exported dataManager */\r\n\r\n function dataFunctionManager() {\r\n // var tCanvasHelper = createTag('canvas').getContext('2d');\r\n\r\n function completeLayers(layers, comps) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n if (('ks' in layerData) && !layerData.completed) {\r\n layerData.completed = true;\r\n if (layerData.tt) {\r\n layers[i - 1].td = layerData.tt;\r\n }\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\r\n }\r\n if (maskProps[j].pt.k[k].e) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (layerData.ty === 0) {\r\n layerData.layers = findCompLayers(layerData.refId, comps);\r\n completeLayers(layerData.layers, comps);\r\n } else if (layerData.ty === 4) {\r\n completeShapes(layerData.shapes);\r\n } else if (layerData.ty === 5) {\r\n completeText(layerData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function findCompLayers(id, comps) {\r\n var i = 0;\r\n var len = comps.length;\r\n while (i < len) {\r\n if (comps[i].id === id) {\r\n if (!comps[i].layers.__used) {\r\n comps[i].layers.__used = true;\r\n return comps[i].layers;\r\n }\r\n return JSON.parse(JSON.stringify(comps[i].layers));\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n function completeShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\r\n }\r\n if (arr[i].ks.k[j].e) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function convertPathsToAbsoluteValues(path) {\r\n var i;\r\n var len = path.i.length;\r\n for (i = 0; i < len; i += 1) {\r\n path.i[i][0] += path.v[i][0];\r\n path.i[i][1] += path.v[i][1];\r\n path.o[i][0] += path.v[i][0];\r\n path.o[i][1] += path.v[i][1];\r\n }\r\n }\r\n\r\n function checkVersion(minimum, animVersionString) {\r\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\r\n if (minimum[0] > animVersion[0]) {\r\n return true;\r\n } if (animVersion[0] > minimum[0]) {\r\n return false;\r\n }\r\n if (minimum[1] > animVersion[1]) {\r\n return true;\r\n } if (animVersion[1] > minimum[1]) {\r\n return false;\r\n }\r\n if (minimum[2] > animVersion[2]) {\r\n return true;\r\n } if (animVersion[2] > minimum[2]) {\r\n return false;\r\n }\r\n return null;\r\n }\r\n\r\n var checkText = (function () {\r\n var minimumVersion = [4, 4, 14];\r\n\r\n function updateTextLayer(textLayer) {\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [\r\n {\r\n s: documentData,\r\n t: 0,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkChars = (function () {\r\n var minimumVersion = [4, 7, 99];\r\n return function (animationData) {\r\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\r\n var i;\r\n var len = animationData.chars.length;\r\n var j;\r\n var jLen;\r\n var pathData;\r\n var paths;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.chars[i].data && animationData.chars[i].data.shapes) {\r\n paths = animationData.chars[i].data.shapes[0].it;\r\n jLen = paths.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = paths[j].ks.k;\r\n if (!pathData.__converted) {\r\n convertPathsToAbsoluteValues(paths[j].ks.k);\r\n pathData.__converted = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkPathProperties = (function () {\r\n var minimumVersion = [5, 7, 15];\r\n\r\n function updateTextLayer(textLayer) {\r\n var pathData = textLayer.t.p;\r\n if (typeof pathData.a === 'number') {\r\n pathData.a = {\r\n a: 0,\r\n k: pathData.a,\r\n };\r\n }\r\n if (typeof pathData.p === 'number') {\r\n pathData.p = {\r\n a: 0,\r\n k: pathData.p,\r\n };\r\n }\r\n if (typeof pathData.r === 'number') {\r\n pathData.r = {\r\n a: 0,\r\n k: pathData.r,\r\n };\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkColors = (function () {\r\n var minimumVersion = [4, 1, 9];\r\n\r\n function iterateShapes(shapes) {\r\n var i;\r\n var len = shapes.length;\r\n var j;\r\n var jLen;\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n iterateShapes(shapes[i].it);\r\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\r\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\r\n jLen = shapes[i].c.k.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[i].c.k[j].s) {\r\n shapes[i].c.k[j].s[0] /= 255;\r\n shapes[i].c.k[j].s[1] /= 255;\r\n shapes[i].c.k[j].s[2] /= 255;\r\n shapes[i].c.k[j].s[3] /= 255;\r\n }\r\n if (shapes[i].c.k[j].e) {\r\n shapes[i].c.k[j].e[0] /= 255;\r\n shapes[i].c.k[j].e[1] /= 255;\r\n shapes[i].c.k[j].e[2] /= 255;\r\n shapes[i].c.k[j].e[3] /= 255;\r\n }\r\n }\r\n } else {\r\n shapes[i].c.k[0] /= 255;\r\n shapes[i].c.k[1] /= 255;\r\n shapes[i].c.k[2] /= 255;\r\n shapes[i].c.k[3] /= 255;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 4) {\r\n iterateShapes(layers[i].shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkShapes = (function () {\r\n var minimumVersion = [4, 4, 18];\r\n\r\n function completeClosingShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n arr[i].ks.k.c = arr[i].closed;\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n arr[i].ks.k[j].s[0].c = arr[i].closed;\r\n }\r\n if (arr[i].ks.k[j].e) {\r\n arr[i].ks.k[j].e[0].c = arr[i].closed;\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeClosingShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n maskProps[j].pt.k.c = maskProps[j].cl;\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\r\n }\r\n if (maskProps[j].pt.k[k].e) {\r\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (layerData.ty === 4) {\r\n completeClosingShapes(layerData.shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n function completeData(animationData) {\r\n if (animationData.__complete) {\r\n return;\r\n }\r\n checkColors(animationData);\r\n checkText(animationData);\r\n checkChars(animationData);\r\n checkPathProperties(animationData);\r\n checkShapes(animationData);\r\n completeLayers(animationData.layers, animationData.assets);\r\n animationData.__complete = true;\r\n }\r\n\r\n function completeText(data) {\r\n if (data.t.a.length === 0 && !('m' in data.t.p)) {\r\n data.singleShape = true;\r\n }\r\n }\r\n\r\n var moduleOb = {};\r\n moduleOb.completeData = completeData;\r\n moduleOb.checkColors = checkColors;\r\n moduleOb.checkChars = checkChars;\r\n moduleOb.checkPathProperties = checkPathProperties;\r\n moduleOb.checkShapes = checkShapes;\r\n moduleOb.completeLayers = completeLayers;\r\n\r\n return moduleOb;\r\n }\r\n if (!_workerSelf.dataManager) {\r\n _workerSelf.dataManager = dataFunctionManager();\r\n }\r\n\r\n /* exported assetLoader */\r\n if (!_workerSelf.assetLoader) {\r\n _workerSelf.assetLoader = (function () {\r\n function formatResponse(xhr) {\r\n // using typeof doubles the time of execution of this method,\r\n // so if available, it's better to use the header to validate the type\r\n var contentTypeHeader = xhr.getResponseHeader('content-type');\r\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\r\n return xhr.response;\r\n }\r\n if (xhr.response && typeof xhr.response === 'object') {\r\n return xhr.response;\r\n } if (xhr.response && typeof xhr.response === 'string') {\r\n return JSON.parse(xhr.response);\r\n } if (xhr.responseText) {\r\n return JSON.parse(xhr.responseText);\r\n }\r\n return null;\r\n }\r\n\r\n function loadAsset(path, fullPath, callback, errorCallback) {\r\n var response;\r\n var xhr = new XMLHttpRequest();\r\n // set responseType after calling open or IE will break.\r\n try {\r\n // This crashes on Android WebView prior to KitKat\r\n xhr.responseType = 'json';\r\n } catch (err) {} // eslint-disable-line no-empty\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } else {\r\n try {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } catch (err) {\r\n if (errorCallback) {\r\n errorCallback(err);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n try {\r\n xhr.open('GET', path, true);\r\n } catch (error) {\r\n xhr.open('GET', fullPath + '/' + path, true);\r\n }\r\n xhr.send();\r\n }\r\n return {\r\n load: loadAsset,\r\n };\r\n }());\r\n }\r\n\r\n if (e.data.type === 'loadAnimation') {\r\n _workerSelf.assetLoader.load(\r\n e.data.path,\r\n e.data.fullPath,\r\n function (data) {\r\n _workerSelf.dataManager.completeData(data);\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success',\r\n });\r\n },\r\n function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error',\r\n });\r\n }\r\n );\r\n } else if (e.data.type === 'complete') {\r\n var animation = e.data.animation;\r\n _workerSelf.dataManager.completeData(animation);\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: animation,\r\n status: 'success',\r\n });\r\n } else if (e.data.type === 'loadData') {\r\n _workerSelf.assetLoader.load(\r\n e.data.path,\r\n e.data.fullPath,\r\n function (data) {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success',\r\n });\r\n },\r\n function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error',\r\n });\r\n }\r\n );\r\n }\r\n });\r\n\r\n workerInstance.onmessage = function (event) {\r\n var data = event.data;\r\n var id = data.id;\r\n var process = processes[id];\r\n processes[id] = null;\r\n if (data.status === 'success') {\r\n process.onComplete(data.payload);\r\n } else if (process.onError) {\r\n process.onError();\r\n }\r\n };\r\n }\r\n }\r\n\r\n function createProcess(onComplete, onError) {\r\n _counterId += 1;\r\n var id = 'processId_' + _counterId;\r\n processes[id] = {\r\n onComplete: onComplete,\r\n onError: onError,\r\n };\r\n return id;\r\n }\r\n\r\n function loadAnimation(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadAnimation',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId,\r\n });\r\n }\r\n\r\n function loadData(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadData',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId,\r\n });\r\n }\r\n\r\n function completeAnimation(anim, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'complete',\r\n animation: anim,\r\n id: processId,\r\n });\r\n }\r\n\r\n return {\r\n loadAnimation: loadAnimation,\r\n loadData: loadData,\r\n completeAnimation: completeAnimation,\r\n };\r\n}());\r\n\r\n/* exported getFontProperties */\r\n\r\nfunction getFontProperties(fontData) {\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n\r\n var fWeight = 'normal'; var\r\n fStyle = 'normal';\r\n var len = styles.length;\r\n var styleName;\r\n for (var i = 0; i < len; i += 1) {\r\n styleName = styles[i].toLowerCase();\r\n switch (styleName) {\r\n case 'italic':\r\n fStyle = 'italic';\r\n break;\r\n case 'bold':\r\n fWeight = '700';\r\n break;\r\n case 'black':\r\n fWeight = '900';\r\n break;\r\n case 'medium':\r\n fWeight = '500';\r\n break;\r\n case 'regular':\r\n case 'normal':\r\n fWeight = '400';\r\n break;\r\n case 'light':\r\n case 'thin':\r\n fWeight = '200';\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n style: fStyle,\r\n weight: fontData.fWeight || fWeight,\r\n };\r\n}\r\n\r\n/* global createNS, createTag, getFontProperties */\r\n/* exported FontManager */\r\n\r\nvar FontManager = (function () {\r\n var maxWaitingTime = 5000;\r\n var emptyChar = {\r\n w: 0,\r\n size: 0,\r\n shapes: [],\r\n };\r\n var combinedCharacters = [];\r\n // Hindi characters\r\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366,\r\n 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379,\r\n 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\r\n\r\n var surrogateModifiers = [\r\n 'd83cdffb',\r\n 'd83cdffc',\r\n 'd83cdffd',\r\n 'd83cdffe',\r\n 'd83cdfff',\r\n ];\r\n\r\n var zeroWidthJoiner = [65039, 8205];\r\n\r\n function trimFontOptions(font) {\r\n var familyArray = font.split(',');\r\n var i;\r\n var len = familyArray.length;\r\n var enabledFamilies = [];\r\n for (i = 0; i < len; i += 1) {\r\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\r\n enabledFamilies.push(familyArray[i]);\r\n }\r\n }\r\n return enabledFamilies.join(',');\r\n }\r\n\r\n function setUpNode(font, family) {\r\n var parentNode = createTag('span');\r\n // Node is invisible to screen readers.\r\n parentNode.setAttribute('aria-hidden', true);\r\n parentNode.style.fontFamily = family;\r\n var node = createTag('span');\r\n // Characters that vary significantly among different fonts\r\n node.innerText = 'giItT1WQy@!-/#';\r\n // Visible - so we can measure it - but not on the screen\r\n parentNode.style.position = 'absolute';\r\n parentNode.style.left = '-10000px';\r\n parentNode.style.top = '-10000px';\r\n // Large font size makes even subtle changes obvious\r\n parentNode.style.fontSize = '300px';\r\n // Reset any font properties\r\n parentNode.style.fontVariant = 'normal';\r\n parentNode.style.fontStyle = 'normal';\r\n parentNode.style.fontWeight = 'normal';\r\n parentNode.style.letterSpacing = '0';\r\n parentNode.appendChild(node);\r\n document.body.appendChild(parentNode);\r\n\r\n // Remember width with no applied web font\r\n var width = node.offsetWidth;\r\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\r\n return { node: node, w: width, parent: parentNode };\r\n }\r\n\r\n function checkLoadedFonts() {\r\n var i;\r\n var len = this.fonts.length;\r\n var node;\r\n var w;\r\n var loadedCount = len;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.fonts[i].loaded) {\r\n loadedCount -= 1;\r\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].monoCase.node;\r\n w = this.fonts[i].monoCase.w;\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].sansCase.node;\r\n w = this.fonts[i].sansCase.w;\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n }\r\n }\r\n if (this.fonts[i].loaded) {\r\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\r\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\r\n }\r\n }\r\n }\r\n\r\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\r\n setTimeout(this.checkLoadedFontsBinded, 20);\r\n } else {\r\n setTimeout(this.setIsLoadedBinded, 10);\r\n }\r\n }\r\n\r\n function createHelper(def, fontData) {\r\n var tHelper = createNS('text');\r\n tHelper.style.fontSize = '100px';\r\n // tHelper.style.fontFamily = fontData.fFamily;\r\n\r\n var fontProps = getFontProperties(fontData);\r\n tHelper.setAttribute('font-family', fontData.fFamily);\r\n tHelper.setAttribute('font-style', fontProps.style);\r\n tHelper.setAttribute('font-weight', fontProps.weight);\r\n tHelper.textContent = '1';\r\n if (fontData.fClass) {\r\n tHelper.style.fontFamily = 'inherit';\r\n tHelper.setAttribute('class', fontData.fClass);\r\n } else {\r\n tHelper.style.fontFamily = fontData.fFamily;\r\n }\r\n def.appendChild(tHelper);\r\n var tCanvasHelper = createTag('canvas').getContext('2d');\r\n tCanvasHelper.font = fontData.fWeight + ' ' + fontData.fStyle + ' 100px ' + fontData.fFamily;\r\n // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\r\n return tHelper;\r\n }\r\n\r\n function addFonts(fontData, defs) {\r\n if (!fontData) {\r\n this.isLoaded = true;\r\n return;\r\n }\r\n if (this.chars) {\r\n this.isLoaded = true;\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n var fontArr = fontData.list;\r\n var i;\r\n var len = fontArr.length;\r\n var _pendingFonts = len;\r\n for (i = 0; i < len; i += 1) {\r\n var shouldLoadFont = true;\r\n var loadedSelector;\r\n var j;\r\n fontArr[i].loaded = false;\r\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\r\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\r\n if (!fontArr[i].fPath) {\r\n fontArr[i].loaded = true;\r\n _pendingFonts -= 1;\r\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\r\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\r\n\r\n if (loadedSelector.length > 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = 'text/css';\r\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var l = createTag('link');\r\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n l.setAttribute('f-origin', fontArr[i].origin);\r\n l.type = 'text/css';\r\n l.rel = 'stylesheet';\r\n l.href = fontArr[i].fPath;\r\n document.body.appendChild(l);\r\n }\r\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\r\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (fontArr[i].fPath === loadedSelector[j].src) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var sc = createTag('link');\r\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n sc.setAttribute('f-origin', fontArr[i].origin);\r\n sc.setAttribute('rel', 'stylesheet');\r\n sc.setAttribute('href', fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n }\r\n fontArr[i].helper = createHelper(defs, fontArr[i]);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n // Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars) {\r\n if (!chars) {\r\n return;\r\n }\r\n if (!this.chars) {\r\n this.chars = [];\r\n }\r\n var i;\r\n var len = chars.length;\r\n var j;\r\n var jLen = this.chars.length;\r\n var found;\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n found = false;\r\n while (j < jLen) {\r\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\r\n found = true;\r\n }\r\n j += 1;\r\n }\r\n if (!found) {\r\n this.chars.push(chars[i]);\r\n jLen += 1;\r\n }\r\n }\r\n }\r\n\r\n function getCharData(char, style, font) {\r\n var i = 0;\r\n var len = this.chars.length;\r\n while (i < len) {\r\n if (this.chars[i].ch === char && this.chars[i].style === style && this.chars[i].fFamily === font) {\r\n return this.chars[i];\r\n }\r\n i += 1;\r\n }\r\n if (((typeof char === 'string' && char.charCodeAt(0) !== 13) || !char)\r\n && console\r\n && console.warn // eslint-disable-line no-console\r\n && !this._warned\r\n ) {\r\n this._warned = true;\r\n console.warn('Missing character from exported characters list: ', char, style, font); // eslint-disable-line no-console\r\n }\r\n return emptyChar;\r\n }\r\n\r\n function measureText(char, fontName, size) {\r\n var fontData = this.getFontByName(fontName);\r\n var index = char.charCodeAt(0);\r\n if (!fontData.cache[index + 1]) {\r\n var tHelper = fontData.helper;\r\n // Canvas version\r\n // fontData.cache[index] = tHelper.measureText(char).width / 100;\r\n // SVG version\r\n // console.log(tHelper.getBBox().width)\r\n if (char === ' ') {\r\n tHelper.textContent = '|' + char + '|';\r\n var doubleSize = tHelper.getComputedTextLength();\r\n tHelper.textContent = '||';\r\n var singleSize = tHelper.getComputedTextLength();\r\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\r\n } else {\r\n tHelper.textContent = char;\r\n fontData.cache[index + 1] = (tHelper.getComputedTextLength()) / 100;\r\n }\r\n }\r\n return fontData.cache[index + 1] * size;\r\n }\r\n\r\n function getFontByName(name) {\r\n var i = 0;\r\n var len = this.fonts.length;\r\n while (i < len) {\r\n if (this.fonts[i].fName === name) {\r\n return this.fonts[i];\r\n }\r\n i += 1;\r\n }\r\n return this.fonts[0];\r\n }\r\n\r\n function isModifier(firstCharCode, secondCharCode) {\r\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\r\n return surrogateModifiers.indexOf(sum) !== -1;\r\n }\r\n\r\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\r\n if (!secondCharCode) {\r\n return firstCharCode === zeroWidthJoiner[1];\r\n }\r\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n function isCombinedCharacter(char) {\r\n return combinedCharacters.indexOf(char) !== -1;\r\n }\r\n\r\n function setIsLoaded() {\r\n this.isLoaded = true;\r\n }\r\n\r\n var Font = function () {\r\n this.fonts = [];\r\n this.chars = null;\r\n this.typekitLoaded = 0;\r\n this.isLoaded = false;\r\n this._warned = false;\r\n this.initTime = Date.now();\r\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\r\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\r\n };\r\n Font.isModifier = isModifier;\r\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\r\n Font.isCombinedCharacter = isCombinedCharacter;\r\n\r\n var fontPrototype = {\r\n addChars: addChars,\r\n addFonts: addFonts,\r\n getCharData: getCharData,\r\n getFontByName: getFontByName,\r\n measureText: measureText,\r\n checkLoadedFonts: checkLoadedFonts,\r\n setIsLoaded: setIsLoaded,\r\n };\r\n\r\n Font.prototype = fontPrototype;\r\n\r\n return Font;\r\n}());\r\n\r\n/* global initialDefaultFrame, BezierFactory, degToRads, bez, createTypedArray */\r\n/* exported PropertyFactory */\r\n\r\nvar PropertyFactory = (function () {\r\n var initFrame = initialDefaultFrame;\r\n var mathAbs = Math.abs;\r\n\r\n function interpolateValue(frameNum, caching) {\r\n var offsetTime = this.offsetTime;\r\n var newValue;\r\n if (this.propType === 'multidimensional') {\r\n newValue = createTypedArray('float32', this.pv.length);\r\n }\r\n var iterationIndex = caching.lastIndex;\r\n var i = iterationIndex;\r\n var len = this.keyframes.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = this.keyframes[i];\r\n nextKeyData = this.keyframes[i + 1];\r\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\r\n if (keyData.h) {\r\n keyData = nextKeyData;\r\n }\r\n iterationIndex = 0;\r\n break;\r\n }\r\n if ((nextKeyData.t - offsetTime) > frameNum) {\r\n iterationIndex = i;\r\n break;\r\n }\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n\r\n var k;\r\n var kLen;\r\n var perc;\r\n var jLen;\r\n var j;\r\n var fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n if (keyData.to) {\r\n if (!keyframeMetadata.bezierData) {\r\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n var bezierData = keyframeMetadata.bezierData;\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n }\r\n // caching._lastKeyframeIndex = -1;\r\n } else {\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength * perc;\r\n\r\n var segmentPerc;\r\n var addedLength = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastAddedLength : 0;\r\n j = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n break;\r\n }\r\n if (j < jLen - 1) {\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX;\r\n var outY;\r\n var inX;\r\n var inY;\r\n var keyValue;\r\n len = keyData.s.length;\r\n endValue = nextKeyData.s || keyData.e;\r\n if (this.sh && keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n newValue[0] = endValue[0];\r\n newValue[1] = endValue[1];\r\n newValue[2] = endValue[2];\r\n } else if (frameNum <= keyTime) {\r\n newValue[0] = keyData.s[0];\r\n newValue[1] = keyData.s[1];\r\n newValue[2] = keyData.s[2];\r\n } else {\r\n var quatStart = createQuaternion(keyData.s);\r\n var quatEnd = createQuaternion(endValue);\r\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\r\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\r\n }\r\n } else {\r\n for (i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if (frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if (keyData.o.x.constructor === Array) {\r\n if (!keyframeMetadata.__fnct) {\r\n keyframeMetadata.__fnct = [];\r\n }\r\n if (!keyframeMetadata.__fnct[i]) {\r\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyframeMetadata.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct[i];\r\n }\r\n } else if (!keyframeMetadata.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.keyframeMetadata = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct;\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n }\r\n\r\n // based on @Toji's https://github.com/toji/gl-matrix/\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0];\r\n var ay = a[1];\r\n var az = a[2];\r\n var aw = a[3];\r\n var bx = b[0];\r\n var by = b[1];\r\n var bz = b[2];\r\n var bw = b[3];\r\n\r\n var omega;\r\n var cosom;\r\n var sinom;\r\n var scale0;\r\n var scale1;\r\n\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n if ((1.0 - cosom) > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\r\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\r\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\r\n out[0] = heading / degToRads;\r\n out[1] = attitude / degToRads;\r\n out[2] = bank / degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n\r\n return [x, y, z, w];\r\n }\r\n\r\n function getValueAtCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n if (!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))) {\r\n if (this._caching.lastFrame >= frameNum) {\r\n this._caching._lastKeyframeIndex = -1;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n if (this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\r\n this.v = multipliedValue;\r\n this._mdf = true;\r\n }\r\n } else {\r\n var i = 0;\r\n var len = this.v.length;\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\r\n i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i;\r\n var len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {\r\n lastFrame: initFrame, lastIndex: 0, value: 0, _lastKeyframeIndex: -1,\r\n };\r\n this.k = true;\r\n this.kf = true;\r\n this.data = data;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.v = initFrame;\r\n this.pv = initFrame;\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n var i;\r\n var len = data.k.length;\r\n var s;\r\n var e;\r\n var to;\r\n var ti;\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n if ((s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1])) || (s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2]))) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if (s.length === 2 || (s[2] === e[2] && to[2] === 0 && ti[2] === 0)) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.data = data;\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n this._caching = { lastFrame: initFrame, lastIndex: 0, value: createTypedArray('float32', arrLen) };\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem, data, type, mult, container) {\r\n var p;\r\n if (!data.k.length) {\r\n p = new ValueProperty(elem, data, mult, container);\r\n } else if (typeof (data.k[0]) === 'number') {\r\n p = new MultiDimensionalProperty(elem, data, mult, container);\r\n } else {\r\n switch (type) {\r\n case 0:\r\n p = new KeyframedValueProperty(elem, data, mult, container);\r\n break;\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n if (p.effectsSequence.length) {\r\n container.addDynamicProperty(p);\r\n }\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp,\r\n };\r\n return ob;\r\n}());\r\n\r\n/* global Matrix, degToRads, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n/* exported TransformPropertyFactory */\r\n\r\nvar TransformPropertyFactory = (function () {\r\n var defaultVector = [0, 0];\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n }\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n function processKeys(forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n if (this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n var frameRate;\r\n this.v.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n }\r\n if (this.autoOriented) {\r\n var v1;\r\n var v2;\r\n frameRate = this.elem.globalData.frameRate;\r\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / frameRate), 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px;\r\n var py = this.py;\r\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[0].t) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[0].t) / frameRate, 0);\r\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t / frameRate), 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t / frameRate), 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\r\n }\r\n } else {\r\n v2 = defaultVector;\r\n v1 = v2;\r\n }\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n if (this.data.p && this.data.p.s) {\r\n if (this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if (!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n if (!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n if (this.sk) {\r\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n if (this.r) {\r\n if (!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n }\r\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\r\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient() {\r\n //\r\n // var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem, data, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix();\r\n // Precalculated matrix with non animated properties\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n if (data.p && data.p.s) {\r\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\r\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\r\n if (data.p.z) {\r\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\r\n }\r\n } else {\r\n this.p = PropertyFactory.getProp(elem, data.p || { k: [0, 0, 0] }, 1, 0, this);\r\n }\r\n if (data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n if (data.or.k[0].ti) {\r\n var i;\r\n var len = data.or.k.length;\r\n for (i = 0; i < len; i += 1) {\r\n data.or.k[i].to = null;\r\n data.or.k[i].ti = null;\r\n }\r\n }\r\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this);\r\n // sh Indicates it needs to be capped between -180 and 180\r\n this.or.sh = true;\r\n } else {\r\n this.r = PropertyFactory.getProp(elem, data.r || { k: 0 }, 0, degToRads, this);\r\n }\r\n if (data.sk) {\r\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\r\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\r\n }\r\n this.a = PropertyFactory.getProp(elem, data.a || { k: [0, 0, 0] }, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s || { k: [100, 100, 100] }, 1, 0.01, this);\r\n // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\r\n if (data.o) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\r\n } else {\r\n this.o = { _mdf: false, v: 1 };\r\n }\r\n this._isDirty = true;\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n }\r\n\r\n TransformProperty.prototype = {\r\n applyToMatrix: applyToMatrix,\r\n getValue: processKeys,\r\n precalculateMatrix: precalculateMatrix,\r\n autoOrient: autoOrient,\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], TransformProperty);\r\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\r\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\r\n\r\n function getTransformProperty(elem, data, container) {\r\n return new TransformProperty(elem, data, container);\r\n }\r\n\r\n return {\r\n getTransformProperty: getTransformProperty,\r\n };\r\n}());\r\n\r\n/* global createSizedArray, createSizedArray, pointPool */\r\n\r\nfunction ShapePath() {\r\n this.c = false;\r\n this._length = 0;\r\n this._maxLength = 8;\r\n this.v = createSizedArray(this._maxLength);\r\n this.o = createSizedArray(this._maxLength);\r\n this.i = createSizedArray(this._maxLength);\r\n}\r\n\r\nShapePath.prototype.setPathData = function (closed, len) {\r\n this.c = closed;\r\n this.setLength(len);\r\n var i = 0;\r\n while (i < len) {\r\n this.v[i] = pointPool.newElement();\r\n this.o[i] = pointPool.newElement();\r\n this.i[i] = pointPool.newElement();\r\n i += 1;\r\n }\r\n};\r\n\r\nShapePath.prototype.setLength = function (len) {\r\n while (this._maxLength < len) {\r\n this.doubleArrayLength();\r\n }\r\n this._length = len;\r\n};\r\n\r\nShapePath.prototype.doubleArrayLength = function () {\r\n this.v = this.v.concat(createSizedArray(this._maxLength));\r\n this.i = this.i.concat(createSizedArray(this._maxLength));\r\n this.o = this.o.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n};\r\n\r\nShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\r\n var arr;\r\n this._length = Math.max(this._length, pos + 1);\r\n if (this._length >= this._maxLength) {\r\n this.doubleArrayLength();\r\n }\r\n switch (type) {\r\n case 'v':\r\n arr = this.v;\r\n break;\r\n case 'i':\r\n arr = this.i;\r\n break;\r\n case 'o':\r\n arr = this.o;\r\n break;\r\n default:\r\n arr = [];\r\n break;\r\n }\r\n if (!arr[pos] || (arr[pos] && !replace)) {\r\n arr[pos] = pointPool.newElement();\r\n }\r\n arr[pos][0] = x;\r\n arr[pos][1] = y;\r\n};\r\n\r\nShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\r\n this.setXYAt(vX, vY, 'v', pos, replace);\r\n this.setXYAt(oX, oY, 'o', pos, replace);\r\n this.setXYAt(iX, iY, 'i', pos, replace);\r\n};\r\n\r\nShapePath.prototype.reverse = function () {\r\n var newPath = new ShapePath();\r\n newPath.setPathData(this.c, this._length);\r\n var vertices = this.v;\r\n var outPoints = this.o;\r\n var inPoints = this.i;\r\n var init = 0;\r\n if (this.c) {\r\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\r\n init = 1;\r\n }\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n\r\n var i;\r\n for (i = init; i < len; i += 1) {\r\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\r\n cnt -= 1;\r\n }\r\n return newPath;\r\n};\r\n\r\n/* global extendPrototype, roundCorner, BezierFactory, shapePool, degToRads,\r\n shapeCollectionPool, PropertyFactory, bmMin, DynamicPropertyContainer */\r\n/* exported ShapePropertyFactory */\r\n\r\nvar ShapePropertyFactory = (function () {\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS;\r\n var keyPropE;\r\n var isHold;\r\n var j;\r\n var k;\r\n var jLen;\r\n var kLen;\r\n var perc;\r\n var vertexValue;\r\n var kf = this.keyframes;\r\n if (frameNum < kf[0].t - this.offsetTime) {\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\r\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\r\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\r\n isHold = true;\r\n } else {\r\n var i = iterationIndex;\r\n var len = kf.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n while (flag) {\r\n keyData = kf[i];\r\n nextKeyData = kf[i + 1];\r\n if ((nextKeyData.t - this.offsetTime) > frameNum) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n if (!isHold) {\r\n if (frameNum >= nextKeyData.t - this.offsetTime) {\r\n perc = 1;\r\n } else if (frameNum < keyData.t - this.offsetTime) {\r\n perc = 0;\r\n } else {\r\n var fnc;\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / ((nextKeyData.t - this.offsetTime) - (keyData.t - this.offsetTime)));\r\n }\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n keyPropS = keyData.s[0];\r\n }\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n for (k = 0; k < kLen; k += 1) {\r\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\r\n previousValue.i[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\r\n previousValue.o[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\r\n previousValue.v[j][k] = vertexValue;\r\n }\r\n }\r\n }\r\n\r\n function interpolateShapeCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n var lastFrame = this._caching.lastFrame;\r\n if (!(lastFrame !== initFrame && ((lastFrame < initTime && frameNum < initTime) || (lastFrame > endTime && frameNum > endTime)))) {\r\n /// /\r\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n this.interpolateShape(frameNum, this.pv, this._caching);\r\n /// /\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function resetShape() {\r\n this.paths = this.localShapeCollection;\r\n }\r\n\r\n function shapesEqual(shape1, shape2) {\r\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\r\n return false;\r\n }\r\n var i;\r\n var len = shape1._length;\r\n for (i = 0; i < len; i += 1) {\r\n if (shape1.v[i][0] !== shape2.v[i][0]\r\n || shape1.v[i][1] !== shape2.v[i][1]\r\n || shape1.o[i][0] !== shape2.o[i][0]\r\n || shape1.o[i][1] !== shape2.o[i][1]\r\n || shape1.i[i][0] !== shape2.i[i][0]\r\n || shape1.i[i][1] !== shape2.i[i][1]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if (!shapesEqual(this.v, newPath)) {\r\n this.v = shapePool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n } if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue;\r\n if (this.kf) {\r\n finalValue = this.pv;\r\n } else if (this.data.ks) {\r\n finalValue = this.data.ks.k;\r\n } else {\r\n finalValue = this.data.pt.k;\r\n }\r\n var i;\r\n var len = this.effectsSequence.length;\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function ShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shapePool.clone(pathData);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.keyframesMetadata = [];\r\n this.k = true;\r\n this.kf = true;\r\n var len = this.keyframes[0].s[0].i.length;\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = { lastFrame: initFrame, lastIndex: 0 };\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = (function () {\r\n var cPoint = roundCorner;\r\n\r\n function EllShapePropertyFactory(elem, data) {\r\n /* this.v = {\r\n v: createSizedArray(4),\r\n i: createSizedArray(4),\r\n o: createSizedArray(4),\r\n c: true\r\n }; */\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n }\r\n\r\n EllShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function () {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var s0 = this.s.v[0] / 2;\r\n var s1 = this.s.v[1] / 2;\r\n var _cw = this.d !== 3;\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n },\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\r\n\r\n return EllShapePropertyFactory;\r\n }());\r\n\r\n var StarShapeProperty = (function () {\r\n function StarShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n if (data.sy === 1) {\r\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\r\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\r\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\r\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n }\r\n\r\n StarShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if (this._mdf) {\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function () {\r\n var numPts = Math.floor(this.pt.v) * 2;\r\n var angle = (Math.PI * 2) / numPts;\r\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = (2 * Math.PI * longRad) / (numPts * 2);\r\n var shortPerimSegment = (2 * Math.PI * shortRad) / (numPts * 2);\r\n var i;\r\n var rad;\r\n var roundness;\r\n var perimSegment;\r\n var currentAng = -Math.PI / 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n for (i = 0; i < numPts; i += 1) {\r\n rad = longFlag ? longRad : shortRad;\r\n roundness = longFlag ? longRound : shortRound;\r\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n\r\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\r\n longFlag = !longFlag;\r\n currentAng += angle * dir;\r\n }\r\n },\r\n convertPolygonToPath: function () {\r\n var numPts = Math.floor(this.pt.v);\r\n var angle = (Math.PI * 2) / numPts;\r\n var rad = this.or.v;\r\n var roundness = this.os.v;\r\n var perimSegment = (2 * Math.PI * rad) / (numPts * 4);\r\n var i;\r\n var currentAng = -Math.PI * 0.5;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n currentAng += this.r.v;\r\n this.v._length = 0;\r\n for (i = 0; i < numPts; i += 1) {\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n currentAng += angle * dir;\r\n }\r\n this.paths.length = 0;\r\n this.paths[0] = this.v;\r\n },\r\n\r\n };\r\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\r\n\r\n return StarShapePropertyFactory;\r\n }());\r\n\r\n var RectShapeProperty = (function () {\r\n function RectShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.c = true;\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertRectToPath();\r\n }\r\n }\r\n\r\n RectShapePropertyFactory.prototype = {\r\n convertRectToPath: function () {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var v0 = this.s.v[0] / 2;\r\n var v1 = this.s.v[1] / 2;\r\n var round = bmMin(v0, v1, this.r.v);\r\n var cPoint = round * (1 - roundCorner);\r\n this.v._length = 0;\r\n\r\n if (this.d === 2 || this.d === 1) {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\r\n }\r\n } else {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\r\n }\r\n }\r\n },\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if (this._mdf) {\r\n this.convertRectToPath();\r\n }\r\n },\r\n reset: resetShape,\r\n };\r\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\r\n\r\n return RectShapePropertyFactory;\r\n }());\r\n\r\n function getShapeProp(elem, data, type) {\r\n var prop;\r\n if (type === 3 || type === 4) {\r\n var dataProp = type === 3 ? data.pt : data.ks;\r\n var keys = dataProp.k;\r\n if (keys.length) {\r\n prop = new KeyframedShapeProperty(elem, data, type);\r\n } else {\r\n prop = new ShapeProperty(elem, data, type);\r\n }\r\n } else if (type === 5) {\r\n prop = new RectShapeProperty(elem, data);\r\n } else if (type === 6) {\r\n prop = new EllShapeProperty(elem, data);\r\n } else if (type === 7) {\r\n prop = new StarShapeProperty(elem, data);\r\n }\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n return prop;\r\n }\r\n\r\n function getConstructorFunction() {\r\n return ShapeProperty;\r\n }\r\n\r\n function getKeyframedConstructorFunction() {\r\n return KeyframedShapeProperty;\r\n }\r\n\r\n var ob = {};\r\n ob.getShapeProp = getShapeProp;\r\n ob.getConstructorFunction = getConstructorFunction;\r\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\r\n return ob;\r\n}());\r\n\r\n/* global shapeCollectionPool, initialDefaultFrame, extendPrototype, DynamicPropertyContainer */\r\n/* exported ShapeModifiers */\r\n\r\nvar ShapeModifiers = (function () {\r\n var ob = {};\r\n var modifiers = {};\r\n ob.registerModifier = registerModifier;\r\n ob.getModifier = getModifier;\r\n\r\n function registerModifier(nm, factory) {\r\n if (!modifiers[nm]) {\r\n modifiers[nm] = factory;\r\n }\r\n }\r\n\r\n function getModifier(nm, elem, data) {\r\n return new modifiers[nm](elem, data);\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\nfunction ShapeModifier() {}\r\nShapeModifier.prototype.initModifierProperties = function () {};\r\nShapeModifier.prototype.addShapeToModifier = function () {};\r\nShapeModifier.prototype.addShape = function (data) {\r\n if (!this.closed) {\r\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\r\n data.sh.container.addDynamicProperty(data.sh);\r\n var shapeData = { shape: data.sh, data: data, localShapeCollection: shapeCollectionPool.newShapeCollection() };\r\n this.shapes.push(shapeData);\r\n this.addShapeToModifier(shapeData);\r\n if (this._isAnimated) {\r\n data.setAsAnimated();\r\n }\r\n }\r\n};\r\nShapeModifier.prototype.init = function (elem, data) {\r\n this.shapes = [];\r\n this.elem = elem;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, data);\r\n this.frameId = initialDefaultFrame;\r\n this.closed = false;\r\n this.k = false;\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n};\r\nShapeModifier.prototype.processKeys = function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], ShapeModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, segmentsLengthPool, bez, shapePool, ShapeModifiers */\r\n\r\nfunction TrimModifier() {\r\n}\r\nextendPrototype([ShapeModifier], TrimModifier);\r\nTrimModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\r\n this.sValue = 0;\r\n this.eValue = 0;\r\n this.getValue = this.processKeys;\r\n this.m = data.m;\r\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\r\n};\r\n\r\nTrimModifier.prototype.addShapeToModifier = function (shapeData) {\r\n shapeData.pathsData = [];\r\n};\r\n\r\nTrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = [];\r\n if (e <= 1) {\r\n segments.push({\r\n s: s,\r\n e: e,\r\n });\r\n } else if (s >= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1,\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1,\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1,\r\n });\r\n }\r\n var shapeSegments = [];\r\n var i;\r\n var len = segments.length;\r\n var segmentOb;\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\r\n var shapeS;\r\n var shapeE;\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\r\n }\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n return shapeSegments;\r\n};\r\n\r\nTrimModifier.prototype.releasePathsData = function (pathsData) {\r\n var i;\r\n var len = pathsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n segmentsLengthPool.release(pathsData[i]);\r\n }\r\n pathsData.length = 0;\r\n return pathsData;\r\n};\r\n\r\nTrimModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var s;\r\n var e;\r\n if (this._mdf || _isFirstFrame) {\r\n var o = (this.o.v % 360) / 360;\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n if (this.s.v > 1) {\r\n s = 1 + o;\r\n } else if (this.s.v < 0) {\r\n s = 0 + o;\r\n } else {\r\n s = this.s.v + o;\r\n }\r\n if (this.e.v > 1) {\r\n e = 1 + o;\r\n } else if (this.e.v < 0) {\r\n e = 0 + o;\r\n } else {\r\n e = this.e.v + o;\r\n }\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var pathsData;\r\n var pathData;\r\n var totalShapeLength;\r\n var totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n if (this._mdf) {\r\n this.shapes[i].pathsData.length = 0;\r\n }\r\n }\r\n } else if (!((e === 1 && s === 0) || (e === 0 && s === 1))) {\r\n var segments = [];\r\n var shapeData;\r\n var localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n var shapeS = s;\r\n var shapeE = e;\r\n var addedLength = 0;\r\n var edges;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes();\r\n // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n jLen = edges.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength * shapeE,\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * (shapeS - 1),\r\n e: shapeData.totalShapeLength * (shapeE - 1),\r\n });\r\n } else {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength,\r\n });\r\n segments.push({\r\n s: 0,\r\n e: shapeData.totalShapeLength * (shapeE - 1),\r\n });\r\n }\r\n var newShapesData = this.addShapes(shapeData, segments[0]);\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n }\r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n }\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n // Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\r\n var i;\r\n var len = newPaths.length;\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n if (newShape) {\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n if (newShape) {\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i;\r\n var len = shapeData.shape.paths._length;\r\n var j;\r\n var jLen;\r\n var addedLength = 0;\r\n var currentLengthData;\r\n var segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n if (!shapePath) {\r\n shapePath = shapePool.newElement();\r\n segmentCount = 0;\r\n initPos = 0;\r\n } else {\r\n segmentCount = shapePath._length;\r\n initPos = shapePath._length;\r\n }\r\n shapes.push(shapePath);\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n for (j = 1; j < jLen; j += 1) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if (addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\r\n }\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n shapePath = shapePool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n return shapes;\r\n};\r\n\r\nShapeModifiers.registerModifier('tm', TrimModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, roundCorner, ShapeModifiers */\r\n\r\nfunction RoundCornersModifier() {}\r\nextendPrototype([ShapeModifier], RoundCornersModifier);\r\nRoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n};\r\n\r\nRoundCornersModifier.prototype.processPath = function (path, round) {\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var i;\r\n var len = path._length;\r\n var currentV;\r\n var currentI;\r\n var currentO;\r\n var closerV;\r\n var distance;\r\n var newPosPerc;\r\n var index = 0;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n for (i = 0; i < len; i += 1) {\r\n currentV = path.v[i];\r\n currentO = path.o[i];\r\n currentI = path.i[i];\r\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\r\n if ((i === 0 || i === len - 1) && !path.c) {\r\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\r\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\r\n index += 1;\r\n } else {\r\n if (i === 0) {\r\n closerV = path.v[len - 1];\r\n } else {\r\n closerV = path.v[i - 1];\r\n }\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = iX;\r\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\r\n vY = iY;\r\n oX = vX - (vX - currentV[0]) * roundCorner;\r\n oY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n\r\n if (i === len - 1) {\r\n closerV = path.v[0];\r\n } else {\r\n closerV = path.v[i + 1];\r\n }\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = oX;\r\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\r\n vY = oY;\r\n iX = vX - (vX - currentV[0]) * roundCorner;\r\n iY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n }\r\n } else {\r\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\r\n index += 1;\r\n }\r\n }\r\n return clonedPath;\r\n};\r\n\r\nRoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var rd = this.rd.v;\r\n\r\n if (rd !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\r\n }\r\n }\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n};\r\n\r\nShapeModifiers.registerModifier('rd', RoundCornersModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, ShapeModifiers */\r\n\r\nfunction PuckerAndBloatModifier() {}\r\nextendPrototype([ShapeModifier], PuckerAndBloatModifier);\r\nPuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this._isAnimated = !!this.amount.effectsSequence.length;\r\n};\r\n\r\nPuckerAndBloatModifier.prototype.processPath = function (path, amount) {\r\n var percent = amount / 100;\r\n var centerPoint = [0, 0];\r\n var pathLength = path._length;\r\n var i = 0;\r\n for (i = 0; i < pathLength; i += 1) {\r\n centerPoint[0] += path.v[i][0];\r\n centerPoint[1] += path.v[i][1];\r\n }\r\n centerPoint[0] /= pathLength;\r\n centerPoint[1] /= pathLength;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n for (i = 0; i < pathLength; i += 1) {\r\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\r\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\r\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\r\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\r\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\r\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\r\n }\r\n return clonedPath;\r\n};\r\n\r\nPuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\r\n }\r\n }\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n};\r\nShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, TransformPropertyFactory, PropertyFactory, Matrix, ShapeModifiers */\r\n\r\nfunction RepeaterModifier() {}\r\nextendPrototype([ShapeModifier], RepeaterModifier);\r\n\r\nRepeaterModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\r\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\r\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\r\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\r\n this.data = data;\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n this._isAnimated = !!this.dynamicProperties.length;\r\n this.pMatrix = new Matrix();\r\n this.rMatrix = new Matrix();\r\n this.sMatrix = new Matrix();\r\n this.tMatrix = new Matrix();\r\n this.matrix = new Matrix();\r\n};\r\n\r\nRepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\r\n var dir = inv ? -1 : 1;\r\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\r\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\r\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\r\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n rMatrix.rotate(-transform.r.v * dir * perc);\r\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\r\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n};\r\n\r\nRepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\r\n this.elem = elem;\r\n this.arr = arr;\r\n this.pos = pos;\r\n this.elemsData = elemsData;\r\n this._currentCopies = 0;\r\n this._elements = [];\r\n this._groups = [];\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, arr[pos]);\r\n while (pos > 0) {\r\n pos -= 1;\r\n // this._elements.unshift(arr.splice(pos,1)[0]);\r\n this._elements.unshift(arr[pos]);\r\n }\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.resetElements = function (elements) {\r\n var i;\r\n var len = elements.length;\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n if (elements[i].ty === 'gr') {\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.cloneElements = function (elements) {\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n};\r\n\r\nRepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\r\n var i;\r\n var len = elements.length;\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n if (elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var items;\r\n var itemsTransform;\r\n var i;\r\n var dir;\r\n var cont;\r\n var hasReloaded = false;\r\n if (this._mdf || _isFirstFrame) {\r\n var copies = Math.ceil(this.c.v);\r\n if (this._groups.length < copies) {\r\n while (this._groups.length < copies) {\r\n var group = {\r\n it: this.cloneElements(this._elements),\r\n ty: 'gr',\r\n };\r\n group.it.push({\r\n a: { a: 0, ix: 1, k: [0, 0] }, nm: 'Transform', o: { a: 0, ix: 7, k: 100 }, p: { a: 0, ix: 2, k: [0, 0] }, r: { a: 1, ix: 6, k: [{ s: 0, e: 0, t: 0 }, { s: 0, e: 0, t: 1 }] }, s: { a: 0, ix: 3, k: [100, 100] }, sa: { a: 0, ix: 5, k: 0 }, sk: { a: 0, ix: 4, k: 0 }, ty: 'tr',\r\n });\r\n\r\n this.arr.splice(0, 0, group);\r\n this._groups.splice(0, 0, group);\r\n this._currentCopies += 1;\r\n }\r\n this.elem.reloadShapes();\r\n hasReloaded = true;\r\n }\r\n cont = 0;\r\n var renderFlag;\r\n for (i = 0; i <= this._groups.length - 1; i += 1) {\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n if (!renderFlag) {\r\n var elems = this.elemsData[i].it;\r\n var transformData = elems[elems.length - 1];\r\n if (transformData.transform.op.v !== 0) {\r\n transformData.transform.op._mdf = true;\r\n transformData.transform.op.v = 0;\r\n } else {\r\n transformData.transform.op._mdf = false;\r\n }\r\n }\r\n cont += 1;\r\n }\r\n\r\n this._currentCopies = copies;\r\n /// /\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset % 1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if (offset > 0) {\r\n while (iteration < roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n iteration += 1;\r\n }\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\r\n iteration += offsetModulo;\r\n }\r\n } else if (offset < 0) {\r\n while (iteration > roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j;\r\n var jLen;\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\n items[items.length - 1].transform.op.v = this._currentCopies === 1\r\n ? this.so.v\r\n : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\r\n\r\n if (iteration !== 0) {\r\n if ((i !== 0 && dir === 1) || (i !== this._currentCopies - 1 && dir === -1)) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\r\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\r\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n this.matrix.reset();\r\n } else {\r\n this.matrix.reset();\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n }\r\n iteration += 1;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n } else {\r\n cont = this._currentCopies;\r\n i = 0;\r\n dir = 1;\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n items[items.length - 1].transform.mProps._mdf = false;\r\n items[items.length - 1].transform.op._mdf = false;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n }\r\n return hasReloaded;\r\n};\r\n\r\nRepeaterModifier.prototype.addShape = function () {};\r\n\r\nShapeModifiers.registerModifier('rp', RepeaterModifier);\r\n\r\n/* global createSizedArray, shapePool */\r\n\r\nfunction ShapeCollection() {\r\n this._length = 0;\r\n this._maxLength = 4;\r\n this.shapes = createSizedArray(this._maxLength);\r\n}\r\n\r\nShapeCollection.prototype.addShape = function (shapeData) {\r\n if (this._length === this._maxLength) {\r\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n }\r\n this.shapes[this._length] = shapeData;\r\n this._length += 1;\r\n};\r\n\r\nShapeCollection.prototype.releaseShapes = function () {\r\n var i;\r\n for (i = 0; i < this._length; i += 1) {\r\n shapePool.release(this.shapes[i]);\r\n }\r\n this._length = 0;\r\n};\r\n\r\n/* global createSizedArray, createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction DashProperty(elem, data, renderer, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.dataProps = createSizedArray(data.length);\r\n this.renderer = renderer;\r\n this.k = false;\r\n this.dashStr = '';\r\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\r\n this.dashoffset = createTypedArray('float32', 1);\r\n this.initDynamicPropertyContainer(container);\r\n var i;\r\n var len = data.length || 0;\r\n var prop;\r\n for (i = 0; i < len; i += 1) {\r\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\r\n this.k = prop.k || this.k;\r\n this.dataProps[i] = { n: data[i].n, p: prop };\r\n }\r\n if (!this.k) {\r\n this.getValue(true);\r\n }\r\n this._isAnimated = this.k;\r\n}\r\n\r\nDashProperty.prototype.getValue = function (forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || forceRender;\r\n if (this._mdf) {\r\n var i = 0;\r\n var len = this.dataProps.length;\r\n if (this.renderer === 'svg') {\r\n this.dashStr = '';\r\n }\r\n for (i = 0; i < len; i += 1) {\r\n if (this.dataProps[i].n !== 'o') {\r\n if (this.renderer === 'svg') {\r\n this.dashStr += ' ' + this.dataProps[i].p.v;\r\n } else {\r\n this.dashArray[i] = this.dataProps[i].p.v;\r\n }\r\n } else {\r\n this.dashoffset[0] = this.dataProps[i].p.v;\r\n }\r\n }\r\n }\r\n};\r\nextendPrototype([DynamicPropertyContainer], DashProperty);\r\n\r\n/* global createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\nfunction GradientProperty(elem, data, container) {\r\n this.data = data;\r\n this.c = createTypedArray('uint8c', data.p * 4);\r\n var cLength = data.k.k[0].s ? (data.k.k[0].s.length - data.p * 4) : data.k.k.length - data.p * 4;\r\n this.o = createTypedArray('float32', cLength);\r\n this._cmdf = false;\r\n this._omdf = false;\r\n this._collapsable = this.checkCollapsable();\r\n this._hasOpacity = cLength;\r\n this.initDynamicPropertyContainer(container);\r\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\r\n this.k = this.prop.k;\r\n this.getValue(true);\r\n}\r\n\r\nGradientProperty.prototype.comparePoints = function (values, points) {\r\n var i = 0;\r\n var len = this.o.length / 2;\r\n var diff;\r\n while (i < len) {\r\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\r\n if (diff > 0.01) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.checkCollapsable = function () {\r\n if (this.o.length / 2 !== this.c.length / 4) {\r\n return false;\r\n }\r\n if (this.data.k.k[0].s) {\r\n var i = 0;\r\n var len = this.data.k.k.length;\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.getValue = function (forceRender) {\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n if (this.prop._mdf || forceRender) {\r\n var i;\r\n var len = this.data.p * 4;\r\n var mult;\r\n var val;\r\n for (i = 0; i < len; i += 1) {\r\n mult = i % 4 === 0 ? 100 : 255;\r\n val = Math.round(this.prop.v[i] * mult);\r\n if (this.c[i] !== val) {\r\n this.c[i] = val;\r\n this._cmdf = !forceRender;\r\n }\r\n }\r\n if (this.o.length) {\r\n len = this.prop.v.length;\r\n for (i = this.data.p * 4; i < len; i += 1) {\r\n mult = i % 2 === 0 ? 100 : 1;\r\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\r\n if (this.o[i - this.data.p * 4] !== val) {\r\n this.o[i - this.data.p * 4] = val;\r\n this._omdf = !forceRender;\r\n }\r\n }\r\n }\r\n this._mdf = !forceRender;\r\n }\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], GradientProperty);\r\n\r\n/* exported buildShapeString */\r\n\r\nvar buildShapeString = function (pathNodes, length, closed, mat) {\r\n if (length === 0) {\r\n return '';\r\n }\r\n var _o = pathNodes.o;\r\n var _i = pathNodes.i;\r\n var _v = pathNodes.v;\r\n var i;\r\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n for (i = 1; i < length; i += 1) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\r\n }\r\n if (closed && length) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n shapeString += 'z';\r\n }\r\n return shapeString;\r\n};\r\n\r\n/* global Howl */\r\n/* exported audioControllerFactory */\r\n\r\nvar audioControllerFactory = (function () {\r\n function AudioController(audioFactory) {\r\n this.audios = [];\r\n this.audioFactory = audioFactory;\r\n this._volume = 1;\r\n this._isMuted = false;\r\n }\r\n\r\n AudioController.prototype = {\r\n addAudio: function (audio) {\r\n this.audios.push(audio);\r\n },\r\n pause: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].pause();\r\n }\r\n },\r\n resume: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].resume();\r\n }\r\n },\r\n setRate: function (rateValue) {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].setRate(rateValue);\r\n }\r\n },\r\n createAudio: function (assetPath) {\r\n if (this.audioFactory) {\r\n return this.audioFactory(assetPath);\r\n } if (Howl) {\r\n return new Howl({\r\n src: [assetPath],\r\n });\r\n }\r\n return {\r\n isPlaying: false,\r\n play: function () { this.isPlaying = true; },\r\n seek: function () { this.isPlaying = false; },\r\n playing: function () {},\r\n rate: function () {},\r\n setVolume: function () {},\r\n };\r\n },\r\n setAudioFactory: function (audioFactory) {\r\n this.audioFactory = audioFactory;\r\n },\r\n setVolume: function (value) {\r\n this._volume = value;\r\n this._updateVolume();\r\n },\r\n mute: function () {\r\n this._isMuted = true;\r\n this._updateVolume();\r\n },\r\n unmute: function () {\r\n this._isMuted = false;\r\n this._updateVolume();\r\n },\r\n getVolume: function () {\r\n return this._volume;\r\n },\r\n _updateVolume: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\r\n }\r\n },\r\n };\r\n\r\n return function () {\r\n return new AudioController();\r\n };\r\n}());\r\n\r\n/* global createTag, createNS, isSafari, dataManager */\r\n/* exported ImagePreloader */\r\n\r\nvar ImagePreloader = (function () {\r\n var proxyImage = (function () {\r\n var canvas = createTag('canvas');\r\n canvas.width = 1;\r\n canvas.height = 1;\r\n var ctx = canvas.getContext('2d');\r\n ctx.fillStyle = 'rgba(0,0,0,0)';\r\n ctx.fillRect(0, 0, 1, 1);\r\n return canvas;\r\n }());\r\n\r\n function imageLoaded() {\r\n this.loadedAssets += 1;\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n function footageLoaded() {\r\n this.loadedFootagesCount += 1;\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function getAssetsPath(assetData, assetsPath, originalPath) {\r\n var path = '';\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (assetsPath) {\r\n var imagePath = assetData.p;\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n path = assetsPath + imagePath;\r\n } else {\r\n path = originalPath;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n return path;\r\n }\r\n\r\n function testImageLoaded(img) {\r\n var _count = 0;\r\n var intervalId = setInterval(function () {\r\n var box = img.getBBox();\r\n if (box.width || _count > 500) {\r\n this._imageLoaded();\r\n clearInterval(intervalId);\r\n }\r\n _count += 1;\r\n }.bind(this), 50);\r\n }\r\n\r\n function createImageData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createNS('image');\r\n if (isSafari) {\r\n this.testImageLoaded(img);\r\n } else {\r\n img.addEventListener('load', this._imageLoaded, false);\r\n }\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\r\n if (this._elementHelper.append) {\r\n this._elementHelper.append(img);\r\n } else {\r\n this._elementHelper.appendChild(img);\r\n }\r\n var ob = {\r\n img: img,\r\n assetData: assetData,\r\n };\r\n return ob;\r\n }\r\n\r\n function createImgData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createTag('img');\r\n img.crossOrigin = 'anonymous';\r\n img.addEventListener('load', this._imageLoaded, false);\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.src = path;\r\n var ob = {\r\n img: img,\r\n assetData: assetData,\r\n };\r\n return ob;\r\n }\r\n\r\n function createFootageData(data) {\r\n var ob = {\r\n assetData: data,\r\n };\r\n var path = getAssetsPath(data, this.assetsPath, this.path);\r\n dataManager.loadData(path, function (footageData) {\r\n ob.img = footageData;\r\n this._footageLoaded();\r\n }.bind(this), function () {\r\n ob.img = {};\r\n this._footageLoaded();\r\n }.bind(this));\r\n return ob;\r\n }\r\n\r\n function loadAssets(assets, cb) {\r\n this.imagesLoadedCb = cb;\r\n var i;\r\n var len = assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!assets[i].layers) {\r\n if (!assets[i].t || assets[i].t === 'seq') {\r\n this.totalImages += 1;\r\n this.images.push(this._createImageData(assets[i]));\r\n } else if (assets[i].t === 3) {\r\n this.totalFootages += 1;\r\n this.images.push(this.createFootageData(assets[i]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setPath(path) {\r\n this.path = path || '';\r\n }\r\n\r\n function setAssetsPath(path) {\r\n this.assetsPath = path || '';\r\n }\r\n\r\n function getAsset(assetData) {\r\n var i = 0;\r\n var len = this.images.length;\r\n while (i < len) {\r\n if (this.images[i].assetData === assetData) {\r\n return this.images[i].img;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n function destroy() {\r\n this.imagesLoadedCb = null;\r\n this.images.length = 0;\r\n }\r\n\r\n function loadedImages() {\r\n return this.totalImages === this.loadedAssets;\r\n }\r\n\r\n function loadedFootages() {\r\n return this.totalFootages === this.loadedFootagesCount;\r\n }\r\n\r\n function setCacheType(type, elementHelper) {\r\n if (type === 'svg') {\r\n this._elementHelper = elementHelper;\r\n this._createImageData = this.createImageData.bind(this);\r\n } else {\r\n this._createImageData = this.createImgData.bind(this);\r\n }\r\n }\r\n\r\n function ImagePreloaderFactory() {\r\n this._imageLoaded = imageLoaded.bind(this);\r\n this._footageLoaded = footageLoaded.bind(this);\r\n this.testImageLoaded = testImageLoaded.bind(this);\r\n this.createFootageData = createFootageData.bind(this);\r\n this.assetsPath = '';\r\n this.path = '';\r\n this.totalImages = 0;\r\n this.totalFootages = 0;\r\n this.loadedAssets = 0;\r\n this.loadedFootagesCount = 0;\r\n this.imagesLoadedCb = null;\r\n this.images = [];\r\n }\r\n\r\n ImagePreloaderFactory.prototype = {\r\n loadAssets: loadAssets,\r\n setAssetsPath: setAssetsPath,\r\n setPath: setPath,\r\n loadedImages: loadedImages,\r\n loadedFootages: loadedFootages,\r\n destroy: destroy,\r\n getAsset: getAsset,\r\n createImgData: createImgData,\r\n createImageData: createImageData,\r\n imageLoaded: imageLoaded,\r\n footageLoaded: footageLoaded,\r\n setCacheType: setCacheType,\r\n };\r\n\r\n return ImagePreloaderFactory;\r\n}());\r\n\r\n/* exported featureSupport */\r\n\r\nvar featureSupport = (function () {\r\n var ob = {\r\n maskType: true,\r\n };\r\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\r\n ob.maskType = false;\r\n }\r\n return ob;\r\n}());\r\n\r\n/* global createNS */\r\n/* exported filtersFactory */\r\n\r\nvar filtersFactory = (function () {\r\n var ob = {};\r\n ob.createFilter = createFilter;\r\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\r\n\r\n function createFilter(filId, skipCoordinates) {\r\n var fil = createNS('filter');\r\n fil.setAttribute('id', filId);\r\n if (skipCoordinates !== true) {\r\n fil.setAttribute('filterUnits', 'objectBoundingBox');\r\n fil.setAttribute('x', '0%');\r\n fil.setAttribute('y', '0%');\r\n fil.setAttribute('width', '100%');\r\n fil.setAttribute('height', '100%');\r\n }\r\n return fil;\r\n }\r\n\r\n function createAlphaToLuminanceFilter() {\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\r\n return feColorMatrix;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global createSizedArray, PropertyFactory, TextAnimatorDataProperty, bez, addHueToRGB,\r\n addSaturationToRGB, addBrightnessToRGB, LetterProps, Matrix, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction TextAnimatorProperty(textData, renderType, elem) {\r\n this._isFirstFrame = true;\r\n this._hasMaskedPath = false;\r\n this._frameId = -1;\r\n this._textData = textData;\r\n this._renderType = renderType;\r\n this._elem = elem;\r\n this._animatorsData = createSizedArray(this._textData.a.length);\r\n this._pathData = {};\r\n this._moreOptions = {\r\n alignment: {},\r\n };\r\n this.renderedLetters = [];\r\n this.lettersChangedFlag = false;\r\n this.initDynamicPropertyContainer(elem);\r\n}\r\n\r\nTextAnimatorProperty.prototype.searchProperties = function () {\r\n var i;\r\n var len = this._textData.a.length;\r\n var animatorProps;\r\n var getProp = PropertyFactory.getProp;\r\n for (i = 0; i < len; i += 1) {\r\n animatorProps = this._textData.a[i];\r\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\r\n }\r\n if (this._textData.p && 'm' in this._textData.p) {\r\n this._pathData = {\r\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\r\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\r\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\r\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\r\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\r\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m),\r\n };\r\n this._hasMaskedPath = true;\r\n } else {\r\n this._hasMaskedPath = false;\r\n }\r\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\r\n};\r\n\r\nTextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\r\n this.lettersChangedFlag = lettersChangedFlag;\r\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\r\n return;\r\n }\r\n this._isFirstFrame = false;\r\n var alignment = this._moreOptions.alignment.v;\r\n var animators = this._animatorsData;\r\n var textData = this._textData;\r\n var matrixHelper = this.mHelper;\r\n var renderType = this._renderType;\r\n var renderedLettersCount = this.renderedLetters.length;\r\n var xPos;\r\n var yPos;\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var pathInfo;\r\n var currentLength;\r\n var currentPoint;\r\n var segmentLength;\r\n var flag;\r\n var pointInd;\r\n var segmentInd;\r\n var prevPoint;\r\n var points;\r\n var segments;\r\n var partialLength;\r\n var totalLength;\r\n var perc;\r\n var tanAngle;\r\n var mask;\r\n if (this._hasMaskedPath) {\r\n mask = this._pathData.m;\r\n if (!this._pathData.n || this._pathData._mdf) {\r\n var paths = mask.v;\r\n if (this._pathData.r.v) {\r\n paths = paths.reverse();\r\n }\r\n // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\r\n pathInfo = {\r\n tLength: 0,\r\n segments: [],\r\n };\r\n len = paths._length - 1;\r\n var bezierData;\r\n totalLength = 0;\r\n for (i = 0; i < len; i += 1) {\r\n bezierData = bez.buildBezierData(paths.v[i],\r\n paths.v[i + 1],\r\n [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\r\n [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n i = len;\r\n if (mask.v.c) {\r\n bezierData = bez.buildBezierData(paths.v[i],\r\n paths.v[0],\r\n [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\r\n [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n this._pathData.pi = pathInfo;\r\n }\r\n pathInfo = this._pathData.pi;\r\n\r\n currentLength = this._pathData.f.v;\r\n segmentInd = 0;\r\n pointInd = 1;\r\n segmentLength = 0;\r\n flag = true;\r\n segments = pathInfo.segments;\r\n if (currentLength < 0 && mask.v.c) {\r\n if (pathInfo.tLength < Math.abs(currentLength)) {\r\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\r\n }\r\n segmentInd = segments.length - 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n while (currentLength < 0) {\r\n currentLength += points[pointInd].partialLength;\r\n pointInd -= 1;\r\n if (pointInd < 0) {\r\n segmentInd -= 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n }\r\n }\r\n }\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n\r\n len = letters.length;\r\n xPos = 0;\r\n yPos = 0;\r\n var yOff = documentData.finalSize * 1.2 * 0.714;\r\n var firstLine = true;\r\n var animatorProps;\r\n var animatorSelector;\r\n var j;\r\n var jLen;\r\n var letterValue;\r\n\r\n jLen = animators.length;\r\n\r\n var mult;\r\n var ind = -1;\r\n var offf;\r\n var xPathPos;\r\n var yPathPos;\r\n var initPathPos = currentLength;\r\n var initSegmentInd = segmentInd;\r\n var initPointInd = pointInd;\r\n var currentLine = -1;\r\n var elemOpacity;\r\n var sc;\r\n var sw;\r\n var fc;\r\n var k;\r\n var letterSw;\r\n var letterSc;\r\n var letterFc;\r\n var letterM = '';\r\n var letterP = this.defaultPropsArray;\r\n var letterO;\r\n\r\n //\r\n if (documentData.j === 2 || documentData.j === 1) {\r\n var animatorJustifyOffset = 0;\r\n var animatorFirstCharOffset = 0;\r\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\r\n var lastIndex = 0;\r\n var isNewLine = true;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n animatorJustifyOffset = 0;\r\n isNewLine = true;\r\n } else {\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.t.propType) {\r\n if (isNewLine && documentData.j === 2) {\r\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\r\n }\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\r\n } else {\r\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\r\n }\r\n }\r\n }\r\n isNewLine = false;\r\n }\r\n }\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n }\r\n //\r\n\r\n for (i = 0; i < len; i += 1) {\r\n matrixHelper.reset();\r\n elemOpacity = 1;\r\n if (letters[i].n) {\r\n xPos = 0;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n currentLength = initPathPos;\r\n firstLine = false;\r\n if (this._hasMaskedPath) {\r\n segmentInd = initSegmentInd;\r\n pointInd = initPointInd;\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n segmentLength = 0;\r\n }\r\n letterM = '';\r\n letterFc = '';\r\n letterSw = '';\r\n letterO = '';\r\n letterP = this.defaultPropsArray;\r\n } else {\r\n if (this._hasMaskedPath) {\r\n if (currentLine !== letters[i].line) {\r\n switch (documentData.j) {\r\n case 1:\r\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\r\n break;\r\n case 2:\r\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\r\n break;\r\n default:\r\n break;\r\n }\r\n currentLine = letters[i].line;\r\n }\r\n if (ind !== letters[i].ind) {\r\n if (letters[ind]) {\r\n currentLength += letters[ind].extra;\r\n }\r\n currentLength += letters[i].an / 2;\r\n ind = letters[i].ind;\r\n }\r\n currentLength += (alignment[0] * letters[i].an) * 0.005;\r\n var animatorOffset = 0;\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n animatorOffset += animatorProps.p.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.p.v[0] * mult;\r\n }\r\n }\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n animatorOffset += animatorProps.a.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.a.v[0] * mult;\r\n }\r\n }\r\n }\r\n flag = true;\r\n // Force alignment only works with a single line for now\r\n if (this._pathData.a.v) {\r\n currentLength = letters[0].an * 0.5 + ((totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind) / (len - 1);\r\n currentLength += this._pathData.f.v;\r\n }\r\n while (flag) {\r\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate((-alignment[0] * letters[i].an) * 0.005, -(alignment[1] * yOff) * 0.01);\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].points;\r\n }\r\n }\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n\r\n // Grouping alignment\r\n matrixHelper.translate((-alignment[0] * letters[i].an) * 0.005, (-alignment[1] * yOff) * 0.01, 0);\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.t.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\r\n if (xPos !== 0 || documentData.j !== 0) {\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n currentLength += animatorProps.t.v * mult[0];\r\n } else {\r\n currentLength += animatorProps.t.v * mult;\r\n }\r\n } else if (mult.length) {\r\n xPos += animatorProps.t.v * mult[0];\r\n } else {\r\n xPos += animatorProps.t.v * mult;\r\n }\r\n }\r\n }\r\n }\r\n if (documentData.strokeWidthAnim) {\r\n sw = documentData.sw || 0;\r\n }\r\n if (documentData.strokeColorAnim) {\r\n if (documentData.sc) {\r\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\r\n } else {\r\n sc = [0, 0, 0];\r\n }\r\n }\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\r\n }\r\n }\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.s.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n matrixHelper.scale(1 + ((animatorProps.s.v[0] - 1) * mult[0]), 1 + ((animatorProps.s.v[1] - 1) * mult[1]), 1);\r\n } else {\r\n matrixHelper.scale(1 + ((animatorProps.s.v[0] - 1) * mult), 1 + ((animatorProps.s.v[1] - 1) * mult), 1);\r\n }\r\n }\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (animatorProps.sk.propType) {\r\n if (mult.length) {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\r\n } else {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\r\n }\r\n }\r\n if (animatorProps.r.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\r\n } else {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\r\n }\r\n }\r\n if (animatorProps.ry.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\r\n } else {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult);\r\n }\r\n }\r\n if (animatorProps.rx.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\r\n } else {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult);\r\n }\r\n }\r\n if (animatorProps.o.propType) {\r\n if (mult.length) {\r\n elemOpacity += ((animatorProps.o.v) * mult[0] - elemOpacity) * mult[0];\r\n } else {\r\n elemOpacity += ((animatorProps.o.v) * mult - elemOpacity) * mult;\r\n }\r\n }\r\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\r\n if (mult.length) {\r\n sw += animatorProps.sw.v * mult[0];\r\n } else {\r\n sw += animatorProps.sw.v * mult;\r\n }\r\n }\r\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\r\n } else {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\r\n }\r\n }\r\n }\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n if (animatorProps.fc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\r\n } else {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\r\n }\r\n }\r\n }\r\n if (animatorProps.fh.propType) {\r\n if (mult.length) {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\r\n } else {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\r\n }\r\n }\r\n if (animatorProps.fs.propType) {\r\n if (mult.length) {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\r\n } else {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\r\n }\r\n }\r\n if (animatorProps.fb.propType) {\r\n if (mult.length) {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\r\n } else {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\r\n } else {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n } else if (mult.length) {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n }\r\n }\r\n if (documentData.strokeWidthAnim) {\r\n letterSw = sw < 0 ? 0 : sw;\r\n }\r\n if (documentData.strokeColorAnim) {\r\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\r\n }\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\r\n }\r\n\r\n if (this._hasMaskedPath) {\r\n matrixHelper.translate(0, -documentData.ls);\r\n\r\n matrixHelper.translate(0, (alignment[1] * yOff) * 0.01 + yPos, 0);\r\n if (this._pathData.p.v) {\r\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\r\n var rot = (Math.atan(tanAngle) * 180) / Math.PI;\r\n if (currentPoint.point[0] < prevPoint.point[0]) {\r\n rot += 180;\r\n }\r\n matrixHelper.rotate((-rot * Math.PI) / 180);\r\n }\r\n matrixHelper.translate(xPathPos, yPathPos, 0);\r\n currentLength -= (alignment[0] * letters[i].an) * 0.005;\r\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\r\n currentLength += letters[i].an / 2;\r\n currentLength += (documentData.tr * 0.001) * documentData.finalSize;\r\n }\r\n } else {\r\n matrixHelper.translate(xPos, yPos, 0);\r\n\r\n if (documentData.ps) {\r\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\r\n break;\r\n case 2:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\r\n break;\r\n default:\r\n break;\r\n }\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(offf, 0, 0);\r\n matrixHelper.translate((alignment[0] * letters[i].an) * 0.005, (alignment[1] * yOff) * 0.01, 0);\r\n xPos += letters[i].l + (documentData.tr * 0.001) * documentData.finalSize;\r\n }\r\n if (renderType === 'html') {\r\n letterM = matrixHelper.toCSS();\r\n } else if (renderType === 'svg') {\r\n letterM = matrixHelper.to2dCSS();\r\n } else {\r\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\r\n }\r\n letterO = elemOpacity;\r\n }\r\n\r\n if (renderedLettersCount <= i) {\r\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\r\n this.renderedLetters.push(letterValue);\r\n renderedLettersCount += 1;\r\n this.lettersChangedFlag = true;\r\n } else {\r\n letterValue = this.renderedLetters[i];\r\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\r\n }\r\n }\r\n};\r\n\r\nTextAnimatorProperty.prototype.getValue = function () {\r\n if (this._elem.globalData.frameId === this._frameId) {\r\n return;\r\n }\r\n this._frameId = this._elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n};\r\n\r\nTextAnimatorProperty.prototype.mHelper = new Matrix();\r\nTextAnimatorProperty.prototype.defaultPropsArray = [];\r\nextendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\r\n\r\n/* global PropertyFactory, degToRads, TextSelectorProp */\r\n/* exported TextAnimatorDataProperty */\r\n\r\nfunction TextAnimatorDataProperty(elem, animatorProps, container) {\r\n var defaultData = { propType: false };\r\n var getProp = PropertyFactory.getProp;\r\n var textAnimatorAnimatables = animatorProps.a;\r\n this.a = {\r\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\r\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\r\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\r\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\r\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\r\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\r\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\r\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\r\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\r\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\r\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\r\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\r\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\r\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\r\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\r\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData,\r\n };\r\n\r\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\r\n this.s.t = animatorProps.s.t;\r\n}\r\n\r\nfunction LetterProps(o, sw, sc, fc, m, p) {\r\n this.o = o;\r\n this.sw = sw;\r\n this.sc = sc;\r\n this.fc = fc;\r\n this.m = m;\r\n this.p = p;\r\n this._mdf = {\r\n o: true,\r\n sw: !!sw,\r\n sc: !!sc,\r\n fc: !!fc,\r\n m: true,\r\n p: true,\r\n };\r\n}\r\n\r\nLetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\r\n this._mdf.o = false;\r\n this._mdf.sw = false;\r\n this._mdf.sc = false;\r\n this._mdf.fc = false;\r\n this._mdf.m = false;\r\n this._mdf.p = false;\r\n var updated = false;\r\n\r\n if (this.o !== o) {\r\n this.o = o;\r\n this._mdf.o = true;\r\n updated = true;\r\n }\r\n if (this.sw !== sw) {\r\n this.sw = sw;\r\n this._mdf.sw = true;\r\n updated = true;\r\n }\r\n if (this.sc !== sc) {\r\n this.sc = sc;\r\n this._mdf.sc = true;\r\n updated = true;\r\n }\r\n if (this.fc !== fc) {\r\n this.fc = fc;\r\n this._mdf.fc = true;\r\n updated = true;\r\n }\r\n if (this.m !== m) {\r\n this.m = m;\r\n this._mdf.m = true;\r\n updated = true;\r\n }\r\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\r\n this.p = p;\r\n this._mdf.p = true;\r\n updated = true;\r\n }\r\n return updated;\r\n};\r\n\r\n/* global FontManager, initialDefaultFrame, getFontProperties */\r\n/* exported TextProperty */\r\n\r\nfunction TextProperty(elem, data) {\r\n this._frameId = initialDefaultFrame;\r\n this.pv = '';\r\n this.v = '';\r\n this.kf = false;\r\n this._isFirstFrame = true;\r\n this._mdf = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = this.elem.comp;\r\n this.keysIndex = 0;\r\n this.canResize = false;\r\n this.minimumFontSize = 1;\r\n this.effectsSequence = [];\r\n this.currentData = {\r\n ascent: 0,\r\n boxWidth: this.defaultBoxWidth,\r\n f: '',\r\n fStyle: '',\r\n fWeight: '',\r\n fc: '',\r\n j: '',\r\n justifyOffset: '',\r\n l: [],\r\n lh: 0,\r\n lineWidths: [],\r\n ls: '',\r\n of: '',\r\n s: '',\r\n sc: '',\r\n sw: 0,\r\n t: 0,\r\n tr: 0,\r\n sz: 0,\r\n ps: null,\r\n fillColorAnim: false,\r\n strokeColorAnim: false,\r\n strokeWidthAnim: false,\r\n yOffset: 0,\r\n finalSize: 0,\r\n finalText: [],\r\n finalLineHeight: 0,\r\n __complete: false,\r\n\r\n };\r\n this.copyData(this.currentData, this.data.d.k[0].s);\r\n\r\n if (!this.searchProperty()) {\r\n this.completeTextData(this.currentData);\r\n }\r\n}\r\n\r\nTextProperty.prototype.defaultBoxWidth = [0, 0];\r\n\r\nTextProperty.prototype.copyData = function (obj, data) {\r\n for (var s in data) {\r\n if (Object.prototype.hasOwnProperty.call(data, s)) {\r\n obj[s] = data[s];\r\n }\r\n }\r\n return obj;\r\n};\r\n\r\nTextProperty.prototype.setCurrentData = function (data) {\r\n if (!data.__complete) {\r\n this.completeTextData(data);\r\n }\r\n this.currentData = data;\r\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\r\n this._mdf = true;\r\n};\r\n\r\nTextProperty.prototype.searchProperty = function () {\r\n return this.searchKeyframes();\r\n};\r\n\r\nTextProperty.prototype.searchKeyframes = function () {\r\n this.kf = this.data.d.k.length > 1;\r\n if (this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n return this.kf;\r\n};\r\n\r\nTextProperty.prototype.addEffect = function (effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.getValue = function (_finalValue) {\r\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n if (this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var i; var\r\n len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n for (i = 0; i < len; i += 1) {\r\n // Checking if index changed to prevent creating a new object every time the expression updates.\r\n if (currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n if (currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n this.v = this.currentData;\r\n this.pv = this.v;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n};\r\n\r\nTextProperty.prototype.getKeyframeValue = function () {\r\n var textKeys = this.data.d.k;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0; var\r\n len = textKeys.length;\r\n while (i <= len - 1) {\r\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n if (this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n return this.data.d.k[this.keysIndex].s;\r\n};\r\n\r\nTextProperty.prototype.buildFinalText = function (text) {\r\n var charactersArray = [];\r\n var i = 0;\r\n var len = text.length;\r\n var charCode;\r\n var secondCharCode;\r\n var shouldCombine = false;\r\n while (i < len) {\r\n charCode = text.charCodeAt(i);\r\n if (FontManager.isCombinedCharacter(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\r\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n shouldCombine = false;\r\n } else {\r\n charactersArray.push(text.substr(i, 2));\r\n }\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (charCode > 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\r\n shouldCombine = true;\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n shouldCombine = true;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n i += 1;\r\n }\r\n return charactersArray;\r\n};\r\n\r\nTextProperty.prototype.completeTextData = function (documentData) {\r\n documentData.__complete = true;\r\n var fontManager = this.elem.globalData.fontManager;\r\n var data = this.data;\r\n var letters = [];\r\n var i; var\r\n len;\r\n var newLineFlag; var index = 0; var\r\n val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0; var currentPos = 0; var currentLine = 0; var\r\n lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j; var\r\n jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData; var\r\n cLength = 0;\r\n\r\n var fontProps = getFontProperties(fontData);\r\n documentData.fWeight = fontProps.weight;\r\n documentData.fStyle = fontProps.style;\r\n documentData.finalSize = documentData.s;\r\n documentData.finalText = this.buildFinalText(documentData.t);\r\n len = documentData.finalText.length;\r\n documentData.finalLineHeight = documentData.lh;\r\n var trackingOffset = (documentData.tr / 1000) * documentData.finalSize;\r\n var charCode;\r\n if (documentData.sz) {\r\n var flag = true;\r\n var boxWidth = documentData.sz[0];\r\n var boxHeight = documentData.sz[1];\r\n var currentHeight; var\r\n finalText;\r\n while (flag) {\r\n finalText = this.buildFinalText(documentData.t);\r\n currentHeight = 0;\r\n lineWidth = 0;\r\n len = finalText.length;\r\n trackingOffset = (documentData.tr / 1000) * documentData.finalSize;\r\n var lastSpaceIndex = -1;\r\n for (i = 0; i < len; i += 1) {\r\n charCode = finalText[i].charCodeAt(0);\r\n newLineFlag = false;\r\n if (finalText[i] === ' ') {\r\n lastSpaceIndex = i;\r\n } else if (charCode === 13 || charCode === 3) {\r\n lineWidth = 0;\r\n newLineFlag = true;\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n }\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\r\n cLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\r\n } else {\r\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\r\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\r\n }\r\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\r\n if (lastSpaceIndex === -1) {\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n }\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r');\r\n // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n } else {\r\n lineWidth += cLength;\r\n lineWidth += trackingOffset;\r\n }\r\n }\r\n currentHeight += (fontData.ascent * documentData.finalSize) / 100;\r\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\r\n documentData.finalSize -= 1;\r\n documentData.finalLineHeight = (documentData.finalSize * documentData.lh) / documentData.s;\r\n } else {\r\n documentData.finalText = finalText;\r\n len = documentData.finalText.length;\r\n flag = false;\r\n }\r\n }\r\n }\r\n lineWidth = -trackingOffset;\r\n cLength = 0;\r\n var uncollapsedSpaces = 0;\r\n var currentChar;\r\n for (i = 0; i < len; i += 1) {\r\n newLineFlag = false;\r\n currentChar = documentData.finalText[i];\r\n charCode = currentChar.charCodeAt(0);\r\n if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = -2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n } else {\r\n val = currentChar;\r\n }\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\r\n } else {\r\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n }\r\n\r\n //\r\n if (currentChar === ' ') {\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n letters.push({\r\n l: cLength, an: cLength, add: currentSize, n: newLineFlag, anIndexes: [], val: val, line: currentLine, animatorJustifyOffset: 0,\r\n });\r\n if (anchorGrouping == 2) { // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n if (val === '' || val === ' ' || i === len - 1) {\r\n if (val === '' || val === ' ') {\r\n currentSize -= cLength;\r\n }\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n } else if (anchorGrouping == 3) { // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n if (val === '' || i === len - 1) {\r\n if (val === '') {\r\n currentSize -= cLength;\r\n }\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n } else {\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n if (documentData.sz) {\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n } else {\r\n documentData.boxWidth = maxLineWidth;\r\n switch (documentData.j) {\r\n case 1:\r\n documentData.justifyOffset = -documentData.boxWidth;\r\n break;\r\n case 2:\r\n documentData.justifyOffset = -documentData.boxWidth / 2;\r\n break;\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n documentData.lineWidths = lineWidths;\r\n\r\n var animators = data.a; var animatorData; var\r\n letterData;\r\n jLen = animators.length;\r\n var based; var ind; var\r\n indexes = [];\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorData = animators[j];\r\n if (animatorData.a.sc) {\r\n documentData.strokeColorAnim = true;\r\n }\r\n if (animatorData.a.sw) {\r\n documentData.strokeWidthAnim = true;\r\n }\r\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\r\n documentData.fillColorAnim = true;\r\n }\r\n ind = 0;\r\n based = animatorData.s.b;\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n letterData.anIndexes[j] = ind;\r\n if ((based == 1 && letterData.val !== '') || (based == 2 && letterData.val !== '' && letterData.val !== ' ') || (based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1)) || (based == 4 && (letterData.n || i == len - 1))) { // eslint-disable-line eqeqeq\r\n if (animatorData.s.rn === 1) {\r\n indexes.push(ind);\r\n }\r\n ind += 1;\r\n }\r\n }\r\n data.a[j].s.totalChars = ind;\r\n var currentInd = -1; var\r\n newInd;\r\n if (animatorData.s.rn === 1) {\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n if (currentInd != letterData.anIndexes[j]) { // eslint-disable-line eqeqeq\r\n currentInd = letterData.anIndexes[j];\r\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\r\n }\r\n letterData.anIndexes[j] = newInd;\r\n }\r\n }\r\n }\r\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n documentData.ls = documentData.ls || 0;\r\n documentData.ascent = (fontData.ascent * documentData.finalSize) / 100;\r\n};\r\n\r\nTextProperty.prototype.updateDocumentData = function (newData, index) {\r\n index = index === undefined ? this.keysIndex : index;\r\n var dData = this.copyData({}, this.data.d.k[index].s);\r\n dData = this.copyData(dData, newData);\r\n this.data.d.k[index].s = dData;\r\n this.recalculate(index);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.recalculate = function (index) {\r\n var dData = this.data.d.k[index].s;\r\n dData.__complete = false;\r\n this.keysIndex = 0;\r\n this._isFirstFrame = true;\r\n this.getValue(dData);\r\n};\r\n\r\nTextProperty.prototype.canResizeFont = function (_canResize) {\r\n this.canResize = _canResize;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.setMinimumFontSize = function (_fontValue) {\r\n this.minimumFontSize = Math.floor(_fontValue) || 1;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\n/* global extendPrototype, BezierFactory, PropertyFactory, DynamicPropertyContainer */\r\n/* exported TextSelectorProp */\r\n\r\nvar TextSelectorProp = (function () {\r\n var max = Math.max;\r\n var min = Math.min;\r\n var floor = Math.floor;\r\n\r\n function TextSelectorPropFactory(elem, data) {\r\n this._currentTextLength = -1;\r\n this.k = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.finalS = 0;\r\n this.finalE = 0;\r\n this.initDynamicPropertyContainer(elem);\r\n this.s = PropertyFactory.getProp(elem, data.s || { k: 0 }, 0, 0, this);\r\n if ('e' in data) {\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\r\n } else {\r\n this.e = { v: 100 };\r\n }\r\n this.o = PropertyFactory.getProp(elem, data.o || { k: 0 }, 0, 0, this);\r\n this.xe = PropertyFactory.getProp(elem, data.xe || { k: 0 }, 0, 0, this);\r\n this.ne = PropertyFactory.getProp(elem, data.ne || { k: 0 }, 0, 0, this);\r\n this.sm = PropertyFactory.getProp(elem, data.sm || { k: 100 }, 0, 0, this);\r\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\r\n if (!this.dynamicProperties.length) {\r\n this.getValue();\r\n }\r\n }\r\n\r\n TextSelectorPropFactory.prototype = {\r\n getMult: function (ind) {\r\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\r\n this.getValue();\r\n }\r\n // var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = 1;\r\n var y2 = 1;\r\n if (this.ne.v > 0) {\r\n x1 = this.ne.v / 100.0;\r\n } else {\r\n y1 = -this.ne.v / 100.0;\r\n }\r\n if (this.xe.v > 0) {\r\n x2 = 1.0 - this.xe.v / 100.0;\r\n } else {\r\n y2 = 1.0 + this.xe.v / 100.0;\r\n }\r\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\r\n\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n if (type === 2) {\r\n if (e === s) {\r\n mult = ind >= e ? 1 : 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n mult = easer(mult);\r\n } else if (type === 3) {\r\n if (e === s) {\r\n mult = ind >= e ? 0 : 1;\r\n } else {\r\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 4) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n if (mult < 0.5) {\r\n mult *= 2;\r\n } else {\r\n mult = 1 - 2 * (mult - 0.5);\r\n }\r\n }\r\n mult = easer(mult);\r\n } else if (type === 5) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n var tot = e - s;\r\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n var x = -tot / 2 + ind;\r\n var a = tot / 2;\r\n mult = Math.sqrt(1 - (x * x) / (a * a));\r\n }\r\n mult = easer(mult);\r\n } else if (type === 6) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n mult = (1 + (Math.cos((Math.PI + Math.PI * 2 * (ind) / (e - s))))) / 2; // eslint-disable-line\r\n }\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n mult = easer(mult);\r\n }\r\n // Smoothness implementation.\r\n // The smoothness represents a reduced range of the original [0; 1] range.\r\n // if smoothness is 25%, the new range will be [0.375; 0.625]\r\n // Steps are:\r\n // - find the lower value of the new range (threshold)\r\n // - if multiplier is smaller than that value, floor it to 0\r\n // - if it is larger,\r\n // - subtract the threshold\r\n // - divide it by the smoothness (this will return the range to [0; 1])\r\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\r\n if (this.sm.v !== 100) {\r\n var smoothness = this.sm.v * 0.01;\r\n if (smoothness === 0) {\r\n smoothness = 0.00000001;\r\n }\r\n var threshold = 0.5 - smoothness * 0.5;\r\n if (mult < threshold) {\r\n mult = 0;\r\n } else {\r\n mult = (mult - threshold) / smoothness;\r\n if (mult > 1) {\r\n mult = 1;\r\n }\r\n }\r\n }\r\n return mult * this.a.v;\r\n },\r\n getValue: function (newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n if (newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v / divisor;\r\n var s = this.s.v / divisor + o;\r\n var e = (this.e.v / divisor) + o;\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n this.finalS = s;\r\n this.finalE = e;\r\n },\r\n };\r\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\r\n\r\n function getTextSelectorProp(elem, data, arr) {\r\n return new TextSelectorPropFactory(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp,\r\n };\r\n}());\r\n\r\n/* global createSizedArray, pooling */\r\n/* exported poolFactory */\r\n\r\nvar poolFactory = (function () {\r\n return function (initialLength, _create, _release) {\r\n var _length = 0;\r\n var _maxLength = initialLength;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n var ob = {\r\n newElement: newElement,\r\n release: release,\r\n };\r\n\r\n function newElement() {\r\n var element;\r\n if (_length) {\r\n _length -= 1;\r\n element = pool[_length];\r\n } else {\r\n element = _create();\r\n }\r\n return element;\r\n }\r\n\r\n function release(element) {\r\n if (_length === _maxLength) {\r\n pool = pooling.double(pool);\r\n _maxLength *= 2;\r\n }\r\n if (_release) {\r\n _release(element);\r\n }\r\n pool[_length] = element;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n };\r\n}());\r\n\r\n/* global createSizedArray */\r\n/* exported pooling */\r\n\r\nvar pooling = (function () {\r\n function double(arr) {\r\n return arr.concat(createSizedArray(arr.length));\r\n }\r\n\r\n return {\r\n double: double,\r\n };\r\n}());\r\n\r\n/* global createTypedArray, poolFactory */\r\n/* exported pointPool */\r\n\r\nvar pointPool = (function () {\r\n function create() {\r\n return createTypedArray('float32', 2);\r\n }\r\n return poolFactory(8, create);\r\n}());\r\n\r\n/* global ShapePath, pointPool, poolFactory */\r\n/* exported shapePool */\r\n\r\nvar shapePool = (function () {\r\n function create() {\r\n return new ShapePath();\r\n }\r\n\r\n function release(shapePath) {\r\n var len = shapePath._length;\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n pointPool.release(shapePath.v[i]);\r\n pointPool.release(shapePath.i[i]);\r\n pointPool.release(shapePath.o[i]);\r\n shapePath.v[i] = null;\r\n shapePath.i[i] = null;\r\n shapePath.o[i] = null;\r\n }\r\n shapePath._length = 0;\r\n shapePath.c = false;\r\n }\r\n\r\n function clone(shape) {\r\n var cloned = factory.newElement();\r\n var i;\r\n var len = shape._length === undefined ? shape.v.length : shape._length;\r\n cloned.setLength(len);\r\n cloned.c = shape.c;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\r\n }\r\n return cloned;\r\n }\r\n\r\n var factory = poolFactory(4, create, release);\r\n factory.clone = clone;\r\n\r\n return factory;\r\n}());\r\n\r\n/* global createSizedArray, ShapeCollection, shapePool, pooling */\r\n/* exported shapeCollectionPool */\r\n\r\nvar shapeCollectionPool = (function () {\r\n var ob = {\r\n newShapeCollection: newShapeCollection,\r\n release: release,\r\n };\r\n\r\n var _length = 0;\r\n var _maxLength = 4;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n function newShapeCollection() {\r\n var shapeCollection;\r\n if (_length) {\r\n _length -= 1;\r\n shapeCollection = pool[_length];\r\n } else {\r\n shapeCollection = new ShapeCollection();\r\n }\r\n return shapeCollection;\r\n }\r\n\r\n function release(shapeCollection) {\r\n var i;\r\n var len = shapeCollection._length;\r\n for (i = 0; i < len; i += 1) {\r\n shapePool.release(shapeCollection.shapes[i]);\r\n }\r\n shapeCollection._length = 0;\r\n\r\n if (_length === _maxLength) {\r\n pool = pooling.double(pool);\r\n _maxLength *= 2;\r\n }\r\n pool[_length] = shapeCollection;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global poolFactory, bezierLengthPool */\r\n/* exported segmentsLengthPool */\r\n\r\nvar segmentsLengthPool = (function () {\r\n function create() {\r\n return {\r\n lengths: [],\r\n totalLength: 0,\r\n };\r\n }\r\n\r\n function release(element) {\r\n var i;\r\n var len = element.lengths.length;\r\n for (i = 0; i < len; i += 1) {\r\n bezierLengthPool.release(element.lengths[i]);\r\n }\r\n element.lengths.length = 0;\r\n }\r\n\r\n return poolFactory(8, create, release);\r\n}());\r\n\r\n/* global createTypedArray, defaultCurveSegments, poolFactory */\r\n/* exported bezierLengthPool */\r\n\r\nvar bezierLengthPool = (function () {\r\n function create() {\r\n return {\r\n addedLength: 0,\r\n percents: createTypedArray('float32', defaultCurveSegments),\r\n lengths: createTypedArray('float32', defaultCurveSegments),\r\n };\r\n }\r\n return poolFactory(8, create);\r\n}());\r\n\r\n/* exported markerParser */\r\n\r\nvar markerParser = (\r\n\r\n function () {\r\n function parsePayloadLines(payload) {\r\n var lines = payload.split('\\r\\n');\r\n var keys = {};\r\n var line;\r\n var keysCount = 0;\r\n for (var i = 0; i < lines.length; i += 1) {\r\n line = lines[i].split(':');\r\n if (line.length === 2) {\r\n keys[line[0]] = line[1].trim();\r\n keysCount += 1;\r\n }\r\n }\r\n if (keysCount === 0) {\r\n throw new Error();\r\n }\r\n return keys;\r\n }\r\n\r\n return function (_markers) {\r\n var markers = [];\r\n for (var i = 0; i < _markers.length; i += 1) {\r\n var _marker = _markers[i];\r\n var markerData = {\r\n time: _marker.tm,\r\n duration: _marker.dr,\r\n };\r\n try {\r\n markerData.payload = JSON.parse(_markers[i].cm);\r\n } catch (_) {\r\n try {\r\n markerData.payload = parsePayloadLines(_markers[i].cm);\r\n } catch (__) {\r\n markerData.payload = {\r\n name: _markers[i],\r\n };\r\n }\r\n }\r\n markers.push(markerData);\r\n }\r\n return markers;\r\n };\r\n }());\r\n\r\n/* global AudioElement, FootageElement, FontManager */\r\n\r\nfunction BaseRenderer() {}\r\nBaseRenderer.prototype.checkLayers = function (num) {\r\n var i;\r\n var len = this.layers.length;\r\n var data;\r\n this.completeLayers = true;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n if (data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st)) {\r\n this.buildItem(i);\r\n }\r\n }\r\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.createItem = function (layer) {\r\n switch (layer.ty) {\r\n case 2:\r\n return this.createImage(layer);\r\n case 0:\r\n return this.createComp(layer);\r\n case 1:\r\n return this.createSolid(layer);\r\n case 3:\r\n return this.createNull(layer);\r\n case 4:\r\n return this.createShape(layer);\r\n case 5:\r\n return this.createText(layer);\r\n case 6:\r\n return this.createAudio(layer);\r\n case 13:\r\n return this.createCamera(layer);\r\n case 15:\r\n return this.createFootage(layer);\r\n default:\r\n return this.createNull(layer);\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.createCamera = function () {\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n};\r\n\r\nBaseRenderer.prototype.createAudio = function (data) {\r\n return new AudioElement(data, this.globalData, this);\r\n};\r\n\r\nBaseRenderer.prototype.createFootage = function (data) {\r\n return new FootageElement(data, this.globalData, this);\r\n};\r\n\r\nBaseRenderer.prototype.buildAllItems = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.buildItem(i);\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.includeLayers = function (newLayers) {\r\n this.completeLayers = false;\r\n var i;\r\n var len = newLayers.length;\r\n var j;\r\n var jLen = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n while (j < jLen) {\r\n if (this.layers[j].id === newLayers[i].id) {\r\n this.layers[j] = newLayers[i];\r\n break;\r\n }\r\n j += 1;\r\n }\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.setProjectInterface = function (pInterface) {\r\n this.globalData.projectInterface = pInterface;\r\n};\r\n\r\nBaseRenderer.prototype.initItems = function () {\r\n if (!this.globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n};\r\nBaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\r\n var elements = this.elements;\r\n var layers = this.layers;\r\n var i = 0;\r\n var len = layers.length;\r\n while (i < len) {\r\n if (layers[i].ind == parentName) { // eslint-disable-line eqeqeq\r\n if (!elements[i] || elements[i] === true) {\r\n this.buildItem(i);\r\n this.addPendingElement(element);\r\n } else {\r\n hierarchy.push(elements[i]);\r\n elements[i].setAsParent();\r\n if (layers[i].parent !== undefined) {\r\n this.buildElementParenting(element, layers[i].parent, hierarchy);\r\n } else {\r\n element.setHierarchy(hierarchy);\r\n }\r\n }\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.addPendingElement = function (element) {\r\n this.pendingElements.push(element);\r\n};\r\n\r\nBaseRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i]);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\r\n this.globalData.fontManager = new FontManager();\r\n this.globalData.fontManager.addChars(animData.chars);\r\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\r\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\r\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\r\n this.globalData.imageLoader = this.animationItem.imagePreloader;\r\n this.globalData.audioController = this.animationItem.audioController;\r\n this.globalData.frameId = 0;\r\n this.globalData.frameRate = animData.fr;\r\n this.globalData.nm = animData.nm;\r\n this.globalData.compSize = {\r\n w: animData.w,\r\n h: animData.h,\r\n };\r\n};\r\n\r\n/* global createElementID, extendPrototype, BaseRenderer, NullElement, SVGShapeElement, SVGTextLottieElement,\r\nIImageElement, SVGCompElement, ISolidElement, createNS, locationHref, createSizedArray, expressionsPlugin */\r\n\r\nfunction SVGRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.svgElement = createNS('svg');\r\n var ariaLabel = '';\r\n if (config && config.title) {\r\n var titleElement = createNS('title');\r\n var titleId = createElementID();\r\n titleElement.setAttribute('id', titleId);\r\n titleElement.textContent = config.title;\r\n this.svgElement.appendChild(titleElement);\r\n ariaLabel += titleId;\r\n }\r\n if (config && config.description) {\r\n var descElement = createNS('desc');\r\n var descId = createElementID();\r\n descElement.setAttribute('id', descId);\r\n descElement.textContent = config.description;\r\n this.svgElement.appendChild(descElement);\r\n ariaLabel += ' ' + descId;\r\n }\r\n if (ariaLabel) {\r\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\r\n }\r\n var defs = createNS('defs');\r\n this.svgElement.appendChild(defs);\r\n var maskElement = createNS('g');\r\n this.svgElement.appendChild(maskElement);\r\n this.layerElement = maskElement;\r\n this.renderConfig = {\r\n preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n contentVisibility: (config && config.contentVisibility) || 'visible',\r\n progressiveLoad: (config && config.progressiveLoad) || false,\r\n hideOnTransparent: !((config && config.hideOnTransparent === false)),\r\n viewBoxOnly: (config && config.viewBoxOnly) || false,\r\n viewBoxSize: (config && config.viewBoxSize) || false,\r\n className: (config && config.className) || '',\r\n id: (config && config.id) || '',\r\n focusable: config && config.focusable,\r\n filterSize: {\r\n width: (config && config.filterSize && config.filterSize.width) || '100%',\r\n height: (config && config.filterSize && config.filterSize.height) || '100%',\r\n x: (config && config.filterSize && config.filterSize.x) || '0%',\r\n y: (config && config.filterSize && config.filterSize.y) || '0%',\r\n },\r\n };\r\n\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n defs: defs,\r\n renderConfig: this.renderConfig,\r\n };\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.destroyed = false;\r\n this.rendererType = 'svg';\r\n}\r\n\r\nextendPrototype([BaseRenderer], SVGRenderer);\r\n\r\nSVGRenderer.prototype.createNull = function (data) {\r\n return new NullElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createShape = function (data) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createText = function (data) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createImage = function (data) {\r\n return new IImageElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createSolid = function (data) {\r\n return new ISolidElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.configAnimation = function (animData) {\r\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n if (this.renderConfig.viewBoxSize) {\r\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\r\n } else {\r\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\r\n }\r\n\r\n if (!this.renderConfig.viewBoxOnly) {\r\n this.svgElement.setAttribute('width', animData.w);\r\n this.svgElement.setAttribute('height', animData.h);\r\n this.svgElement.style.width = '100%';\r\n this.svgElement.style.height = '100%';\r\n this.svgElement.style.transform = 'translate3d(0,0,0)';\r\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\r\n }\r\n if (this.renderConfig.className) {\r\n this.svgElement.setAttribute('class', this.renderConfig.className);\r\n }\r\n if (this.renderConfig.id) {\r\n this.svgElement.setAttribute('id', this.renderConfig.id);\r\n }\r\n if (this.renderConfig.focusable !== undefined) {\r\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\r\n }\r\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio);\r\n // this.layerElement.style.transform = 'translate3d(0,0,0)';\r\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\r\n this.animationItem.wrapper.appendChild(this.svgElement);\r\n // Mask animation\r\n var defs = this.globalData.defs;\r\n\r\n this.setupGlobalData(animData, defs);\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.data = animData;\r\n\r\n var maskElement = createNS('clipPath');\r\n var rect = createNS('rect');\r\n rect.setAttribute('width', animData.w);\r\n rect.setAttribute('height', animData.h);\r\n rect.setAttribute('x', 0);\r\n rect.setAttribute('y', 0);\r\n var maskId = createElementID();\r\n maskElement.setAttribute('id', maskId);\r\n maskElement.appendChild(rect);\r\n this.layerElement.setAttribute('clip-path', 'url(' + locationHref + '#' + maskId + ')');\r\n\r\n defs.appendChild(maskElement);\r\n this.layers = animData.layers;\r\n this.elements = createSizedArray(animData.layers.length);\r\n};\r\n\r\nSVGRenderer.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n this.layerElement = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n};\r\n\r\nSVGRenderer.prototype.updateContainerSize = function () {\r\n};\r\n\r\nSVGRenderer.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n elements[pos] = true;\r\n var element = this.createItem(this.layers[pos]);\r\n\r\n elements[pos] = element;\r\n if (expressionsPlugin) {\r\n if (this.layers[pos].ty === 0) {\r\n this.globalData.projectInterface.registerComposition(element);\r\n }\r\n element.initExpressions();\r\n }\r\n this.appendElementInPos(element, pos);\r\n if (this.layers[pos].tt) {\r\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\r\n this.buildItem(pos - 1);\r\n this.addPendingElement(element);\r\n } else {\r\n element.setMatte(elements[pos - 1].layerId);\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n if (element.data.tt) {\r\n var i = 0;\r\n var len = this.elements.length;\r\n while (i < len) {\r\n if (this.elements[i] === element) {\r\n element.setMatte(this.elements[i - 1].layerId);\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.renderFrame = function (num) {\r\n if (this.renderedFrame === num || this.destroyed) {\r\n return;\r\n }\r\n if (num === null) {\r\n num = this.renderedFrame;\r\n } else {\r\n this.renderedFrame = num;\r\n }\r\n // console.log('-------');\r\n // console.log('FRAME ',num);\r\n this.globalData.frameNum = num;\r\n this.globalData.frameId += 1;\r\n this.globalData.projectInterface.currentFrame = num;\r\n this.globalData._mdf = false;\r\n var i;\r\n var len = this.layers.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if (this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.appendElementInPos = function (element, pos) {\r\n var newElement = element.getBaseElement();\r\n if (!newElement) {\r\n return;\r\n }\r\n var i = 0;\r\n var nextElement;\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\r\n nextElement = this.elements[i].getBaseElement();\r\n }\r\n i += 1;\r\n }\r\n if (nextElement) {\r\n this.layerElement.insertBefore(newElement, nextElement);\r\n } else {\r\n this.layerElement.appendChild(newElement);\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.hide = function () {\r\n this.layerElement.style.display = 'none';\r\n};\r\n\r\nSVGRenderer.prototype.show = function () {\r\n this.layerElement.style.display = 'block';\r\n};\r\n\r\n/* global CVContextData, Matrix, extendPrototype, BaseRenderer, CVShapeElement, CVTextElement,\r\nCVImageElement, CVCompElement, CVSolidElement, SVGRenderer, createTag, createSizedArray */\r\n\r\nfunction CanvasRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: (config && config.clearCanvas !== undefined) ? config.clearCanvas : true,\r\n context: (config && config.context) || null,\r\n progressiveLoad: (config && config.progressiveLoad) || false,\r\n preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n contentVisibility: (config && config.contentVisibility) || 'visible',\r\n className: (config && config.className) || '',\r\n id: (config && config.id) || '',\r\n };\r\n this.renderConfig.dpr = (config && config.dpr) || 1;\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;\r\n }\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1,\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n}\r\nextendPrototype([BaseRenderer], CanvasRenderer);\r\n\r\nCanvasRenderer.prototype.createShape = function (data) {\r\n return new CVShapeElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createText = function (data) {\r\n return new CVTextElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createImage = function (data) {\r\n return new CVImageElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createSolid = function (data) {\r\n return new CVSolidElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\nCanvasRenderer.prototype.ctxTransform = function (props) {\r\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\r\n return;\r\n }\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\r\n return;\r\n }\r\n this.transformMat.cloneFromProps(props);\r\n var cProps = this.contextData.cTr.props;\r\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]);\r\n // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\r\n var trProps = this.contextData.cTr.props;\r\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\r\n};\r\n\r\nCanvasRenderer.prototype.ctxOpacity = function (op) {\r\n /* if(op === 1){\r\n return;\r\n } */\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\r\n this.globalData.currentGlobalAlpha = this.contextData.cO;\r\n return;\r\n }\r\n this.contextData.cO *= op < 0 ? 0 : op;\r\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\r\n this.canvasContext.globalAlpha = this.contextData.cO;\r\n this.globalData.currentGlobalAlpha = this.contextData.cO;\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.reset = function () {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n this.contextData.reset();\r\n};\r\n\r\nCanvasRenderer.prototype.save = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.save();\r\n return;\r\n }\r\n if (actionFlag) {\r\n this.canvasContext.save();\r\n }\r\n var props = this.contextData.cTr.props;\r\n if (this.contextData._length <= this.contextData.cArrPos) {\r\n this.contextData.duplicate();\r\n }\r\n var i;\r\n var arr = this.contextData.saved[this.contextData.cArrPos];\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = props[i];\r\n }\r\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\r\n this.contextData.cArrPos += 1;\r\n};\r\n\r\nCanvasRenderer.prototype.restore = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n if (actionFlag) {\r\n this.canvasContext.restore();\r\n this.globalData.blendMode = 'source-over';\r\n }\r\n this.contextData.cArrPos -= 1;\r\n var popped = this.contextData.saved[this.contextData.cArrPos];\r\n var i;\r\n var arr = this.contextData.cTr.props;\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = popped[i];\r\n }\r\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\r\n popped = this.contextData.savedOp[this.contextData.cArrPos];\r\n this.contextData.cO = popped;\r\n if (this.globalData.currentGlobalAlpha !== popped) {\r\n this.canvasContext.globalAlpha = popped;\r\n this.globalData.currentGlobalAlpha = popped;\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.configAnimation = function (animData) {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.container = createTag('canvas');\r\n var containerStyle = this.animationItem.container.style;\r\n containerStyle.width = '100%';\r\n containerStyle.height = '100%';\r\n var origin = '0px 0px 0px';\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n containerStyle['-webkit-transform'] = origin;\r\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\r\n this.animationItem.wrapper.appendChild(this.animationItem.container);\r\n this.canvasContext = this.animationItem.container.getContext('2d');\r\n if (this.renderConfig.className) {\r\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\r\n }\r\n if (this.renderConfig.id) {\r\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\r\n }\r\n } else {\r\n this.canvasContext = this.renderConfig.context;\r\n }\r\n this.data = animData;\r\n this.layers = animData.layers;\r\n this.transformCanvas = {\r\n w: animData.w,\r\n h: animData.h,\r\n sx: 0,\r\n sy: 0,\r\n tx: 0,\r\n ty: 0,\r\n };\r\n this.setupGlobalData(animData, document.body);\r\n this.globalData.canvasContext = this.canvasContext;\r\n this.globalData.renderer = this;\r\n this.globalData.isDashed = false;\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.globalData.transformCanvas = this.transformCanvas;\r\n this.elements = createSizedArray(animData.layers.length);\r\n\r\n this.updateContainerSize();\r\n};\r\n\r\nCanvasRenderer.prototype.updateContainerSize = function () {\r\n this.reset();\r\n var elementWidth;\r\n var elementHeight;\r\n if (this.animationItem.wrapper && this.animationItem.container) {\r\n elementWidth = this.animationItem.wrapper.offsetWidth;\r\n elementHeight = this.animationItem.wrapper.offsetHeight;\r\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\r\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\r\n } else {\r\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\r\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\r\n }\r\n var elementRel;\r\n var animationRel;\r\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\r\n var par = this.renderConfig.preserveAspectRatio.split(' ');\r\n var fillType = par[1] || 'meet';\r\n var pos = par[0] || 'xMidYMid';\r\n var xPos = pos.substr(0, 4);\r\n var yPos = pos.substr(4);\r\n elementRel = elementWidth / elementHeight;\r\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\r\n if ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n } else {\r\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n }\r\n\r\n if (xPos === 'xMid' && ((animationRel < elementRel && fillType === 'meet') || (animationRel > elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.tx = ((elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2) * this.renderConfig.dpr;\r\n } else if (xPos === 'xMax' && ((animationRel < elementRel && fillType === 'meet') || (animationRel > elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n if (yPos === 'YMid' && ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.ty = ((elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2) * this.renderConfig.dpr;\r\n } else if (yPos === 'YMax' && ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.ty = ((elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w))) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.ty = 0;\r\n }\r\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n } else {\r\n this.transformCanvas.sx = this.renderConfig.dpr;\r\n this.transformCanvas.sy = this.renderConfig.dpr;\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n }\r\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\r\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n};\r\n\r\nCanvasRenderer.prototype.renderFrame = function (num, forceRender) {\r\n if ((this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender) || this.destroyed || num === -1) {\r\n return;\r\n }\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\r\n this.globalData.projectInterface.currentFrame = num;\r\n\r\n // console.log('--------');\r\n // console.log('NEW: ',num);\r\n var i;\r\n var len = this.layers.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if (this.globalData._mdf) {\r\n if (this.renderConfig.clearCanvas === true) {\r\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n } else {\r\n this.save();\r\n }\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n if (this.renderConfig.clearCanvas !== true) {\r\n this.restore();\r\n }\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n var element = this.createItem(this.layers[pos], this, this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\r\n};\r\n\r\nCanvasRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.hide = function () {\r\n this.animationItem.container.style.display = 'none';\r\n};\r\n\r\nCanvasRenderer.prototype.show = function () {\r\n this.animationItem.container.style.display = 'block';\r\n};\r\n\r\n/* global extendPrototype, BaseRenderer, SVGRenderer, SVGShapeElement, HShapeElement, SVGTextLottieElement,\r\nHTextElement, HCameraElement, IImageElement, HImageElement, SVGCompElement, HCompElement, ISolidElement,\r\nHSolidElement, styleDiv, createTag, createNS */\r\n\r\nfunction HybridRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: (config && config.className) || '',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: (config && config.filterSize && config.filterSize.width) || '400%',\r\n height: (config && config.filterSize && config.filterSize.height) || '400%',\r\n x: (config && config.filterSize && config.filterSize.x) || '-100%',\r\n y: (config && config.filterSize && config.filterSize.y) || '-100%',\r\n },\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig,\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n}\r\n\r\nextendPrototype([BaseRenderer], HybridRenderer);\r\n\r\nHybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\nHybridRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.appendElementInPos = function (element, pos) {\r\n var newDOMElement = element.getBaseElement();\r\n if (!newDOMElement) {\r\n return;\r\n }\r\n var layer = this.layers[pos];\r\n if (!layer.ddd || !this.supports3d) {\r\n if (this.threeDElements) {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n } else {\r\n var i = 0;\r\n var nextDOMElement;\r\n var nextLayer;\r\n var tmpDOMElement;\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\r\n nextLayer = this.elements[i];\r\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\r\n nextDOMElement = tmpDOMElement || nextDOMElement;\r\n }\r\n i += 1;\r\n }\r\n if (nextDOMElement) {\r\n if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\r\n }\r\n } else if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.appendChild(newDOMElement);\r\n }\r\n }\r\n } else {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.createShape = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n }\r\n return new HShapeElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createText = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n }\r\n return new HTextElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createCamera = function (data) {\r\n this.camera = new HCameraElement(data, this.globalData, this);\r\n return this.camera;\r\n};\r\n\r\nHybridRenderer.prototype.createImage = function (data) {\r\n if (!this.supports3d) {\r\n return new IImageElement(data, this.globalData, this);\r\n }\r\n return new HImageElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n return new HCompElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createSolid = function (data) {\r\n if (!this.supports3d) {\r\n return new ISolidElement(data, this.globalData, this);\r\n }\r\n return new HSolidElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\nHybridRenderer.prototype.getThreeDContainerByPos = function (pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n while (i < len) {\r\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nHybridRenderer.prototype.createThreeDContainer = function (pos, type) {\r\n var perspectiveElem = createTag('div');\r\n var style;\r\n var containerStyle;\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n if (type === '3d') {\r\n style = perspectiveElem.style;\r\n style.width = this.globalData.compSize.w + 'px';\r\n style.height = this.globalData.compSize.h + 'px';\r\n var center = '50% 50%';\r\n style.webkitTransformOrigin = center;\r\n style.mozTransformOrigin = center;\r\n style.transformOrigin = center;\r\n containerStyle = container.style;\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n containerStyle.transform = matrix;\r\n containerStyle.webkitTransform = matrix;\r\n }\r\n\r\n perspectiveElem.appendChild(container);\r\n // this.resizerElem.appendChild(perspectiveElem);\r\n var threeDContainerData = {\r\n container: container,\r\n perspectiveElem: perspectiveElem,\r\n startPos: pos,\r\n endPos: pos,\r\n type: type,\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n};\r\n\r\nHybridRenderer.prototype.build3dContainers = function () {\r\n var i;\r\n var len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\r\n if (currentContainer !== '3d') {\r\n currentContainer = '3d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\r\n }\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n } else {\r\n if (currentContainer !== '2d') {\r\n currentContainer = '2d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\r\n }\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n }\r\n }\r\n len = this.threeDElements.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.addTo3dContainer = function (elem, pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n while (i < len) {\r\n if (pos <= this.threeDElements[i].endPos) {\r\n var j = this.threeDElements[i].startPos;\r\n var nextElement;\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n j += 1;\r\n }\r\n if (nextElement) {\r\n this.threeDElements[i].container.insertBefore(elem, nextElement);\r\n } else {\r\n this.threeDElements[i].container.appendChild(elem);\r\n }\r\n break;\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.configAnimation = function (animData) {\r\n var resizerElem = createTag('div');\r\n var wrapper = this.animationItem.wrapper;\r\n var style = resizerElem.style;\r\n style.width = animData.w + 'px';\r\n style.height = animData.h + 'px';\r\n this.resizerElem = resizerElem;\r\n styleDiv(resizerElem);\r\n style.transformStyle = 'flat';\r\n style.mozTransformStyle = 'flat';\r\n style.webkitTransformStyle = 'flat';\r\n if (this.renderConfig.className) {\r\n resizerElem.setAttribute('class', this.renderConfig.className);\r\n }\r\n wrapper.appendChild(resizerElem);\r\n\r\n style.overflow = 'hidden';\r\n var svg = createNS('svg');\r\n svg.setAttribute('width', '1');\r\n svg.setAttribute('height', '1');\r\n styleDiv(svg);\r\n this.resizerElem.appendChild(svg);\r\n var defs = createNS('defs');\r\n svg.appendChild(defs);\r\n this.data = animData;\r\n // Mask animation\r\n this.setupGlobalData(animData, svg);\r\n this.globalData.defs = defs;\r\n this.layers = animData.layers;\r\n this.layerElement = this.resizerElem;\r\n this.build3dContainers();\r\n this.updateContainerSize();\r\n};\r\n\r\nHybridRenderer.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n this.animationItem.container = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n for (i = 0; i < len; i += 1) {\r\n this.elements[i].destroy();\r\n }\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n};\r\n\r\nHybridRenderer.prototype.updateContainerSize = function () {\r\n var elementWidth = this.animationItem.wrapper.offsetWidth;\r\n var elementHeight = this.animationItem.wrapper.offsetHeight;\r\n var elementRel = elementWidth / elementHeight;\r\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\r\n var sx;\r\n var sy;\r\n var tx;\r\n var ty;\r\n if (animationRel > elementRel) {\r\n sx = elementWidth / (this.globalData.compSize.w);\r\n sy = elementWidth / (this.globalData.compSize.w);\r\n tx = 0;\r\n ty = ((elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2);\r\n } else {\r\n sx = elementHeight / (this.globalData.compSize.h);\r\n sy = elementHeight / (this.globalData.compSize.h);\r\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\r\n ty = 0;\r\n }\r\n var style = this.resizerElem.style;\r\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\r\n style.transform = style.webkitTransform;\r\n};\r\n\r\nHybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\nHybridRenderer.prototype.hide = function () {\r\n this.resizerElem.style.display = 'none';\r\n};\r\n\r\nHybridRenderer.prototype.show = function () {\r\n this.resizerElem.style.display = 'block';\r\n};\r\n\r\nHybridRenderer.prototype.initItems = function () {\r\n this.buildAllItems();\r\n if (this.camera) {\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i;\r\n var len = this.threeDElements.length;\r\n for (i = 0; i < len; i += 1) {\r\n var style = this.threeDElements[i].perspectiveElem.style;\r\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\r\n style.perspective = style.webkitPerspective;\r\n }\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n var floatingContainer = createTag('div');\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n};\r\n\r\n/* global createSizedArray, createElementID, PropertyFactory, ShapePropertyFactory, createNS, locationHref */\r\n\r\nfunction MaskElement(data, element, globalData) {\r\n this.data = data;\r\n this.element = element;\r\n this.globalData = globalData;\r\n this.storedData = [];\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.maskElement = null;\r\n var defs = this.globalData.defs;\r\n var i;\r\n var len = this.masksProperties ? this.masksProperties.length : 0;\r\n this.viewData = createSizedArray(len);\r\n this.solidPath = '';\r\n\r\n var path;\r\n var properties = this.masksProperties;\r\n var count = 0;\r\n var currentMasks = [];\r\n var j;\r\n var jLen;\r\n var layerId = createElementID();\r\n var rect;\r\n var expansor;\r\n var feMorph;\r\n var x;\r\n var maskType = 'clipPath';\r\n var maskRef = 'clip-path';\r\n for (i = 0; i < len; i += 1) {\r\n if ((properties[i].mode !== 'a' && properties[i].mode !== 'n') || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n }\r\n\r\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\r\n rect = createNS('rect');\r\n rect.setAttribute('fill', '#ffffff');\r\n rect.setAttribute('width', this.element.comp.data.w || 0);\r\n rect.setAttribute('height', this.element.comp.data.h || 0);\r\n currentMasks.push(rect);\r\n } else {\r\n rect = null;\r\n }\r\n\r\n path = createNS('path');\r\n if (properties[i].mode === 'n') {\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n elem: path,\r\n lastPath: '',\r\n };\r\n defs.appendChild(path);\r\n } else {\r\n count += 1;\r\n\r\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n path.setAttribute('clip-rule', 'nonzero');\r\n var filterID;\r\n\r\n if (properties[i].x.k !== 0) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\r\n filterID = createElementID();\r\n expansor = createNS('filter');\r\n expansor.setAttribute('id', filterID);\r\n feMorph = createNS('feMorphology');\r\n feMorph.setAttribute('operator', 'erode');\r\n feMorph.setAttribute('in', 'SourceGraphic');\r\n feMorph.setAttribute('radius', '0');\r\n expansor.appendChild(feMorph);\r\n defs.appendChild(expansor);\r\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n } else {\r\n feMorph = null;\r\n x = null;\r\n }\r\n\r\n // TODO move this to a factory or to a constructor\r\n this.storedData[i] = {\r\n elem: path,\r\n x: x,\r\n expan: feMorph,\r\n lastPath: '',\r\n lastOperator: '',\r\n filterId: filterID,\r\n lastRadius: 0,\r\n };\r\n if (properties[i].mode === 'i') {\r\n jLen = currentMasks.length;\r\n var g = createNS('g');\r\n for (j = 0; j < jLen; j += 1) {\r\n g.appendChild(currentMasks[j]);\r\n }\r\n var mask = createNS('mask');\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.setAttribute('id', layerId + '_' + count);\r\n mask.appendChild(path);\r\n defs.appendChild(mask);\r\n g.setAttribute('mask', 'url(' + locationHref + '#' + layerId + '_' + count + ')');\r\n\r\n currentMasks.length = 0;\r\n currentMasks.push(g);\r\n } else {\r\n currentMasks.push(path);\r\n }\r\n if (properties[i].inv && !this.solidPath) {\r\n this.solidPath = this.createLayerSolidPath();\r\n }\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n elem: path,\r\n lastPath: '',\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n invRect: rect,\r\n };\r\n if (!this.viewData[i].prop.k) {\r\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n }\r\n }\r\n\r\n this.maskElement = createNS(maskType);\r\n\r\n len = currentMasks.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.maskElement.appendChild(currentMasks[i]);\r\n }\r\n\r\n if (count > 0) {\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, 'url(' + locationHref + '#' + layerId + ')');\r\n defs.appendChild(this.maskElement);\r\n }\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nMaskElement.prototype.getMaskProperty = function (pos) {\r\n return this.viewData[pos].prop;\r\n};\r\n\r\nMaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i;\r\n var len = this.masksProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.viewData[i].prop._mdf || isFirstFrame) {\r\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n if (this.viewData[i].op._mdf || isFirstFrame) {\r\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\r\n }\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\r\n }\r\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\r\n var feMorph = this.storedData[i].expan;\r\n if (this.storedData[i].x.v < 0) {\r\n if (this.storedData[i].lastOperator !== 'erode') {\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter', 'url(' + locationHref + '#' + this.storedData[i].filterId + ')');\r\n }\r\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\r\n } else {\r\n if (this.storedData[i].lastOperator !== 'dilate') {\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter', null);\r\n }\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nMaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n};\r\n\r\nMaskElement.prototype.createLayerSolidPath = function () {\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w;\r\n path += ' v' + this.globalData.compSize.h;\r\n path += ' h-' + this.globalData.compSize.w;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n};\r\n\r\nMaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\r\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n var i;\r\n var len;\r\n len = pathNodes._length;\r\n for (i = 1; i < len; i += 1) {\r\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\r\n }\r\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\r\n if (pathNodes.c && len > 1) {\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n }\r\n // pathNodes.__renderedString = pathString;\r\n\r\n if (viewData.lastPath !== pathString) {\r\n var pathShapeValue = '';\r\n if (viewData.elem) {\r\n if (pathNodes.c) {\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n viewData.elem.setAttribute('d', pathShapeValue);\r\n }\r\n viewData.lastPath = pathString;\r\n }\r\n};\r\n\r\nMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n};\r\n\r\n/**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n\r\nfunction HierarchyElement() {}\r\n\r\nHierarchyElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\r\n initHierarchy: function () {\r\n // element's parent list\r\n this.hierarchy = [];\r\n // if element is parent of another layer _isParent will be true\r\n this._isParent = false;\r\n this.checkParenting();\r\n },\r\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\r\n setHierarchy: function (hierarchy) {\r\n this.hierarchy = hierarchy;\r\n },\r\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\r\n setAsParent: function () {\r\n this._isParent = true;\r\n },\r\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\r\n checkParenting: function () {\r\n if (this.data.parent !== undefined) {\r\n this.comp.buildElementParenting(this, this.data.parent, []);\r\n }\r\n },\r\n};\r\n\r\n/**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\r\n\r\nfunction FrameElement() {}\r\n\r\nFrameElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function () {\r\n // set to true when inpoint is rendered\r\n this._isFirstFrame = false;\r\n // list of animated properties\r\n this.dynamicProperties = [];\r\n // If layer has been modified in current tick this will be true\r\n this._mdf = false;\r\n },\r\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\r\n prepareProperties: function (num, isVisible) {\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (isVisible || (this._isParent && this.dynamicProperties[i].propType === 'transform')) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function (prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n },\r\n};\r\n\r\n/* global TransformPropertyFactory, Matrix */\r\n\r\nfunction TransformElement() {}\r\n\r\nTransformElement.prototype = {\r\n initTransform: function () {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : { o: 0 },\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix(),\r\n };\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n }\r\n\r\n // TODO: check TYPE 11: Guided elements\r\n if (this.data.ty !== 11) {\r\n // this.createElements();\r\n }\r\n },\r\n renderTransform: function () {\r\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\r\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\r\n\r\n if (this.hierarchy) {\r\n var mat;\r\n var finalMat = this.finalTransform.mat;\r\n var i = 0;\r\n var len = this.hierarchy.length;\r\n // Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n\r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function (pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n var i;\r\n var len = transforms.length;\r\n var ptNew;\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0);\r\n // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n return pt;\r\n },\r\n mHelper: new Matrix(),\r\n};\r\n\r\nfunction RenderableElement() {\r\n\r\n}\r\n\r\nRenderableElement.prototype = {\r\n initRenderable: function () {\r\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false;\r\n // layer's display state\r\n this.hidden = false;\r\n // If layer's transparency equals 0, it can be hidden\r\n this.isTransparent = false;\r\n // list of animated components\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function (component) {\r\n if (this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function (component) {\r\n if (this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function (num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function () {\r\n if (this.finalTransform.mProp.o.v <= 0) {\r\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if (this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\r\n checkLayerLimits: function (num) {\r\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\r\n if (this.isInRange !== true) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n this.isInRange = true;\r\n this.show();\r\n }\r\n } else if (this.isInRange !== false) {\r\n this.globalData._mdf = true;\r\n this.isInRange = false;\r\n this.hide();\r\n }\r\n },\r\n renderRenderable: function () {\r\n var i;\r\n var len = this.renderableComponents.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\r\n },\r\n sourceRectAtTime: function () {\r\n return {\r\n top: 0,\r\n left: 0,\r\n width: 100,\r\n height: 100,\r\n };\r\n },\r\n getLayerSize: function () {\r\n if (this.data.ty === 5) {\r\n return { w: this.data.textData.width, h: this.data.textData.height };\r\n }\r\n return { w: this.data.width, h: this.data.height };\r\n },\r\n};\r\n\r\n/* global extendPrototype, RenderableElement, createProxyFunction */\r\n\r\nfunction RenderableDOMElement() {}\r\n\r\n(function () {\r\n var _prototype = {\r\n initElement: function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function () {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function () {\r\n if (this.isInRange && !this.isTransparent) {\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function () {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function () {},\r\n prepareFrame: function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function () {\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n },\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n}());\r\n\r\n/* exported ProcessedElement */\r\n\r\nfunction ProcessedElement(element, position) {\r\n this.elem = element;\r\n this.pos = position;\r\n}\r\n\r\n/* global createNS */\r\n\r\nfunction SVGStyleData(data, level) {\r\n this.data = data;\r\n this.type = data.ty;\r\n this.d = '';\r\n this.lvl = level;\r\n this._mdf = false;\r\n this.closed = data.hd === true;\r\n this.pElem = createNS('path');\r\n this.msElem = null;\r\n}\r\n\r\nSVGStyleData.prototype.reset = function () {\r\n this.d = '';\r\n this._mdf = false;\r\n};\r\n\r\nfunction SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level;\r\n // TODO find if there are some cases where _isAnimated can be false.\r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n this._isAnimated = !!shape.k;\r\n // TODO: commenting this for now since all shapes are animated\r\n var i = 0;\r\n var len = transformers.length;\r\n while (i < len) {\r\n if (transformers[i].mProps.dynamicProperties.length) {\r\n this._isAnimated = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n}\r\n\r\nSVGShapeData.prototype.setAsAnimated = function () {\r\n this._isAnimated = true;\r\n};\r\n\r\n/* exported SVGTransformData */\r\n\r\nfunction SVGTransformData(mProps, op, container) {\r\n this.transform = {\r\n mProps: mProps,\r\n op: op,\r\n container: container,\r\n };\r\n this.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n}\r\n\r\n/* global DashProperty, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction SVGStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\n\r\n/* global PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction SVGFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\n\r\n/* global PropertyFactory, degToRads, GradientProperty, createElementID, createNS, locationHref,\r\nextendPrototype, DynamicPropertyContainer, lineCapEnum, lineJoinEnum */\r\n\r\nfunction SVGGradientFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n}\r\n\r\nSVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\r\n this.h = PropertyFactory.getProp(elem, data.h || { k: 0 }, 0, 0.01, this);\r\n this.a = PropertyFactory.getProp(elem, data.a || { k: 0 }, 0, degToRads, this);\r\n this.g = new GradientProperty(elem, data.g, this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n};\r\n\r\nSVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\r\n var gradientId = createElementID();\r\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n gfill.setAttribute('id', gradientId);\r\n gfill.setAttribute('spreadMethod', 'pad');\r\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n var stops = [];\r\n var stop;\r\n var j;\r\n var jLen;\r\n jLen = data.g.p * 4;\r\n for (j = 0; j < jLen; j += 4) {\r\n stop = createNS('stop');\r\n gfill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + locationHref + '#' + gradientId + ')');\r\n this.gf = gfill;\r\n this.cst = stops;\r\n};\r\n\r\nSVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\r\n if (this.g._hasOpacity && !this.g._collapsable) {\r\n var stop;\r\n var j;\r\n var jLen;\r\n var mask = createNS('mask');\r\n var maskElement = createNS('path');\r\n mask.appendChild(maskElement);\r\n var opacityId = createElementID();\r\n var maskId = createElementID();\r\n mask.setAttribute('id', maskId);\r\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n opFill.setAttribute('id', opacityId);\r\n opFill.setAttribute('spreadMethod', 'pad');\r\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\r\n var stops = this.stops;\r\n for (j = data.g.p * 4; j < jLen; j += 2) {\r\n stop = createNS('stop');\r\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\r\n opFill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + locationHref + '#' + opacityId + ')');\r\n if (data.ty === 'gs') {\r\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n if (data.lj === 1) {\r\n maskElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n this.of = opFill;\r\n this.ms = mask;\r\n this.ost = stops;\r\n this.maskId = maskId;\r\n styleOb.msElem = maskElement;\r\n }\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\r\n\r\n/* global PropertyFactory, DashProperty, extendPrototype, SVGGradientFillStyleData, DynamicPropertyContainer */\r\n\r\nfunction SVGGradientStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.initGradientData(elem, data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n}\r\n\r\nextendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\r\n\r\n/* global createNS */\r\n/* exported ShapeGroupData */\r\n\r\nfunction ShapeGroupData() {\r\n this.it = [];\r\n this.prevViewData = [];\r\n this.gr = createNS('g');\r\n}\r\n\r\n/* global Matrix, buildShapeString, bmFloor */\r\n/* exported SVGElementsRenderer */\r\n\r\nvar SVGElementsRenderer = (function () {\r\n var _identityMatrix = new Matrix();\r\n var _matrixHelper = new Matrix();\r\n\r\n var ob = {\r\n createRenderFunction: createRenderFunction,\r\n };\r\n\r\n function createRenderFunction(data) {\r\n switch (data.ty) {\r\n case 'fl':\r\n return renderFill;\r\n case 'gf':\r\n return renderGradient;\r\n case 'gs':\r\n return renderGradientStroke;\r\n case 'st':\r\n return renderStroke;\r\n case 'sh':\r\n case 'el':\r\n case 'rc':\r\n case 'sr':\r\n return renderPath;\r\n case 'tr':\r\n return renderContentTransform;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n function renderContentTransform(styleData, itemData, isFirstFrame) {\r\n if (isFirstFrame || itemData.transform.op._mdf) {\r\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\r\n }\r\n if (isFirstFrame || itemData.transform.mProps._mdf) {\r\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\r\n }\r\n }\r\n\r\n function renderPath(styleData, itemData, isFirstFrame) {\r\n var j;\r\n var jLen;\r\n var pathStringTransformed;\r\n var redraw;\r\n var pathNodes;\r\n var l;\r\n var lLen = itemData.styles.length;\r\n var lvl = itemData.lvl;\r\n var paths;\r\n var mat;\r\n var props;\r\n var iterations;\r\n var k;\r\n for (l = 0; l < lLen; l += 1) {\r\n redraw = itemData.sh._mdf || isFirstFrame;\r\n if (itemData.styles[l].lvl < lvl) {\r\n mat = _matrixHelper.reset();\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n while (!redraw && iterations > 0) {\r\n redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n if (redraw) {\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n while (iterations > 0) {\r\n props = itemData.transformers[k].mProps.v.props;\r\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n }\r\n } else {\r\n mat = _identityMatrix;\r\n }\r\n paths = itemData.sh.paths;\r\n jLen = paths._length;\r\n if (redraw) {\r\n pathStringTransformed = '';\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = paths.shapes[j];\r\n if (pathNodes && pathNodes._length) {\r\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\r\n }\r\n }\r\n itemData.caches[l] = pathStringTransformed;\r\n } else {\r\n pathStringTransformed = itemData.caches[l];\r\n }\r\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\r\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\r\n }\r\n }\r\n\r\n function renderFill(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\r\n }\r\n }\r\n\r\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\r\n renderGradient(styleData, itemData, isFirstFrame);\r\n renderStroke(styleData, itemData, isFirstFrame);\r\n }\r\n\r\n function renderGradient(styleData, itemData, isFirstFrame) {\r\n var gfill = itemData.gf;\r\n var hasOpacity = itemData.g._hasOpacity;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\r\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\r\n }\r\n if (itemData.s._mdf || isFirstFrame) {\r\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\r\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\r\n gfill.setAttribute(attr1, pt1[0]);\r\n gfill.setAttribute(attr2, pt1[1]);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute(attr1, pt1[0]);\r\n itemData.of.setAttribute(attr2, pt1[1]);\r\n }\r\n }\r\n var stops;\r\n var i;\r\n var len;\r\n var stop;\r\n if (itemData.g._cmdf || isFirstFrame) {\r\n stops = itemData.cst;\r\n var cValues = itemData.g.c;\r\n len = stops.length;\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n stop.setAttribute('offset', cValues[i * 4] + '%');\r\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\r\n }\r\n }\r\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\r\n var oValues = itemData.g.o;\r\n if (itemData.g._collapsable) {\r\n stops = itemData.cst;\r\n } else {\r\n stops = itemData.ost;\r\n }\r\n len = stops.length;\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n if (!itemData.g._collapsable) {\r\n stop.setAttribute('offset', oValues[i * 2] + '%');\r\n }\r\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\r\n }\r\n }\r\n if (styleData.t === 1) {\r\n if (itemData.e._mdf || isFirstFrame) {\r\n gfill.setAttribute('x2', pt2[0]);\r\n gfill.setAttribute('y2', pt2[1]);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('x2', pt2[0]);\r\n itemData.of.setAttribute('y2', pt2[1]);\r\n }\r\n }\r\n } else {\r\n var rad;\r\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n gfill.setAttribute('r', rad);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('r', rad);\r\n }\r\n }\r\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\r\n if (!rad) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n }\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n\r\n var percent = itemData.h.v;\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n gfill.setAttribute('fx', x);\r\n gfill.setAttribute('fy', y);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('fx', x);\r\n itemData.of.setAttribute('fy', y);\r\n }\r\n }\r\n // gfill.setAttribute('fy','200');\r\n }\r\n }\r\n\r\n function renderStroke(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n }\r\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\r\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n }\r\n if (itemData.w._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n if (styleElem.msElem) {\r\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n }\r\n }\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global Matrix */\r\n\r\nfunction ShapeTransformManager() {\r\n this.sequences = {};\r\n this.sequenceList = [];\r\n this.transform_key_count = 0;\r\n}\r\n\r\nShapeTransformManager.prototype = {\r\n addTransformSequence: function (transforms) {\r\n var i;\r\n var len = transforms.length;\r\n var key = '_';\r\n for (i = 0; i < len; i += 1) {\r\n key += transforms[i].transform.key + '_';\r\n }\r\n var sequence = this.sequences[key];\r\n if (!sequence) {\r\n sequence = {\r\n transforms: [].concat(transforms),\r\n finalTransform: new Matrix(),\r\n _mdf: false,\r\n };\r\n this.sequences[key] = sequence;\r\n this.sequenceList.push(sequence);\r\n }\r\n return sequence;\r\n },\r\n processSequence: function (sequence, isFirstFrame) {\r\n var i = 0;\r\n var len = sequence.transforms.length;\r\n var _mdf = isFirstFrame;\r\n while (i < len && !isFirstFrame) {\r\n if (sequence.transforms[i].transform.mProps._mdf) {\r\n _mdf = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n if (_mdf) {\r\n var props;\r\n sequence.finalTransform.reset();\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n props = sequence.transforms[i].transform.mProps.v.props;\r\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n }\r\n }\r\n sequence._mdf = _mdf;\r\n },\r\n processSequences: function (isFirstFrame) {\r\n var i;\r\n var len = this.sequenceList.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.processSequence(this.sequenceList[i], isFirstFrame);\r\n }\r\n },\r\n getNewKey: function () {\r\n this.transform_key_count += 1;\r\n return '_' + this.transform_key_count;\r\n },\r\n};\r\n\r\n/* global ShapePropertyFactory, SVGShapeData */\r\n\r\nfunction CVShapeData(element, data, styles, transformsManager) {\r\n this.styledShapes = [];\r\n this.tr = [0, 0, 0, 0, 0, 0];\r\n var ty = 4;\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\r\n var i;\r\n var len = styles.length;\r\n var styledShape;\r\n for (i = 0; i < len; i += 1) {\r\n if (!styles[i].closed) {\r\n styledShape = {\r\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\r\n trNodes: [],\r\n };\r\n this.styledShapes.push(styledShape);\r\n styles[i].elements.push(styledShape);\r\n }\r\n }\r\n}\r\n\r\nCVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\n\r\n/* global LayerExpressionInterface, EffectsExpressionInterface, CompExpressionInterface, ShapeExpressionInterface,\r\nTextExpressionInterface, getBlendMode,createElementID, EffectsManager */\r\n\r\nfunction BaseElement() {\r\n}\r\n\r\nBaseElement.prototype = {\r\n checkMasks: function () {\r\n if (!this.data.hasMask) {\r\n return false;\r\n }\r\n var i = 0;\r\n var len = this.data.masksProperties.length;\r\n while (i < len) {\r\n if ((this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false)) {\r\n return true;\r\n }\r\n i += 1;\r\n }\r\n return false;\r\n },\r\n initExpressions: function () {\r\n this.layerInterface = LayerExpressionInterface(this);\r\n if (this.data.hasMask && this.maskManager) {\r\n this.layerInterface.registerMaskInterface(this.maskManager);\r\n }\r\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\r\n this.layerInterface.registerEffectsInterface(effectsInterface);\r\n\r\n if (this.data.ty === 0 || this.data.xt) {\r\n this.compInterface = CompExpressionInterface(this);\r\n } else if (this.data.ty === 4) {\r\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\r\n this.layerInterface.content = this.layerInterface.shapeInterface;\r\n } else if (this.data.ty === 5) {\r\n this.layerInterface.textInterface = TextExpressionInterface(this);\r\n this.layerInterface.text = this.layerInterface.textInterface;\r\n }\r\n },\r\n setBlendMode: function () {\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n var elem = this.baseElement || this.layerElement;\r\n\r\n elem.style['mix-blend-mode'] = blendModeValue;\r\n },\r\n initBaseData: function (data, globalData, comp) {\r\n this.globalData = globalData;\r\n this.comp = comp;\r\n this.data = data;\r\n this.layerId = createElementID();\r\n\r\n // Stretch factor for old animations missing this property.\r\n if (!this.data.sr) {\r\n this.data.sr = 1;\r\n }\r\n // effects manager\r\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\r\n },\r\n getType: function () {\r\n return this.type;\r\n },\r\n sourceRectAtTime: function () {},\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement */\r\n\r\nfunction NullElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initFrame();\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n}\r\n\r\nNullElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n};\r\n\r\nNullElement.prototype.renderFrame = function () {\r\n};\r\n\r\nNullElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nNullElement.prototype.destroy = function () {\r\n};\r\n\r\nNullElement.prototype.sourceRectAtTime = function () {\r\n};\r\n\r\nNullElement.prototype.hide = function () {\r\n};\r\n\r\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\r\n\r\n/* global filtersFactory, featureSupport, filtersFactory, createElementID, createNS, MaskElement, SVGEffects, locationHref */\r\n\r\nfunction SVGBaseElement() {\r\n}\r\n\r\nSVGBaseElement.prototype = {\r\n initRendererElement: function () {\r\n this.layerElement = createNS('g');\r\n },\r\n createContainerElements: function () {\r\n this.matteElement = createNS('g');\r\n this.transformedElement = this.layerElement;\r\n this.maskedElement = this.layerElement;\r\n this._sizeChanged = false;\r\n var layerElementParent = null;\r\n // If this layer acts as a mask for the following layer\r\n var filId;\r\n var fil;\r\n var gg;\r\n if (this.data.td) {\r\n if (this.data.td == 3 || this.data.td == 1) { // eslint-disable-line eqeqeq\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', this.layerId);\r\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\r\n masker.appendChild(this.layerElement);\r\n layerElementParent = masker;\r\n this.globalData.defs.appendChild(masker);\r\n // This is only for IE and Edge when mask if of type alpha\r\n if (!featureSupport.maskType && this.data.td == 1) { // eslint-disable-line eqeqeq\r\n masker.setAttribute('mask-type', 'luminance');\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n this.globalData.defs.appendChild(fil);\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n masker.appendChild(gg);\r\n gg.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n }\r\n } else if (this.data.td == 2) { // eslint-disable-line eqeqeq\r\n var maskGroup = createNS('mask');\r\n maskGroup.setAttribute('id', this.layerId);\r\n maskGroup.setAttribute('mask-type', 'alpha');\r\n var maskGrouper = createNS('g');\r\n maskGroup.appendChild(maskGrouper);\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n /// /\r\n\r\n // This solution doesn't work on Android when meta tag with viewport attribute is set\r\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\r\n /// /\r\n var feCTr = createNS('feComponentTransfer');\r\n feCTr.setAttribute('in', 'SourceGraphic');\r\n fil.appendChild(feCTr);\r\n var feFunc = createNS('feFuncA');\r\n feFunc.setAttribute('type', 'table');\r\n feFunc.setAttribute('tableValues', '1.0 0.0');\r\n feCTr.appendChild(feFunc);\r\n /// /\r\n this.globalData.defs.appendChild(fil);\r\n var alphaRect = createNS('rect');\r\n alphaRect.setAttribute('width', this.comp.data.w);\r\n alphaRect.setAttribute('height', this.comp.data.h);\r\n alphaRect.setAttribute('x', '0');\r\n alphaRect.setAttribute('y', '0');\r\n alphaRect.setAttribute('fill', '#ffffff');\r\n alphaRect.setAttribute('opacity', '0');\r\n maskGrouper.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n maskGrouper.appendChild(alphaRect);\r\n maskGrouper.appendChild(this.layerElement);\r\n layerElementParent = maskGrouper;\r\n if (!featureSupport.maskType) {\r\n maskGroup.setAttribute('mask-type', 'luminance');\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n maskGrouper.appendChild(alphaRect);\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n maskGrouper.appendChild(gg);\r\n }\r\n this.globalData.defs.appendChild(maskGroup);\r\n }\r\n } else if (this.data.tt) {\r\n this.matteElement.appendChild(this.layerElement);\r\n layerElementParent = this.matteElement;\r\n this.baseElement = this.matteElement;\r\n } else {\r\n this.baseElement = this.layerElement;\r\n }\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\r\n if (this.data.ty === 0 && !this.data.hd) {\r\n var cp = createNS('clipPath');\r\n var pt = createNS('path');\r\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\r\n var clipId = createElementID();\r\n cp.setAttribute('id', clipId);\r\n cp.appendChild(pt);\r\n this.globalData.defs.appendChild(cp);\r\n\r\n if (this.checkMasks()) {\r\n var cpGroup = createNS('g');\r\n cpGroup.setAttribute('clip-path', 'url(' + locationHref + '#' + clipId + ')');\r\n cpGroup.appendChild(this.layerElement);\r\n this.transformedElement = cpGroup;\r\n if (layerElementParent) {\r\n layerElementParent.appendChild(this.transformedElement);\r\n } else {\r\n this.baseElement = this.transformedElement;\r\n }\r\n } else {\r\n this.layerElement.setAttribute('clip-path', 'url(' + locationHref + '#' + clipId + ')');\r\n }\r\n }\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function () {\r\n if (this.finalTransform._matMdf) {\r\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\r\n }\r\n if (this.finalTransform._opMdf) {\r\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\r\n }\r\n },\r\n destroyBaseElement: function () {\r\n this.layerElement = null;\r\n this.matteElement = null;\r\n this.maskManager.destroy();\r\n },\r\n getBaseElement: function () {\r\n if (this.data.hd) {\r\n return null;\r\n }\r\n return this.baseElement;\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n this.renderableEffectsManager = new SVGEffects(this);\r\n },\r\n setMatte: function (id) {\r\n if (!this.matteElement) {\r\n return;\r\n }\r\n this.matteElement.setAttribute('mask', 'url(' + locationHref + '#' + id + ')');\r\n },\r\n};\r\n\r\n/* global ProcessedElement */\r\n\r\nfunction IShapeElement() {\r\n}\r\n\r\nIShapeElement.prototype = {\r\n addShapeToModifiers: function (data) {\r\n var i;\r\n var len = this.shapeModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.shapeModifiers[i].addShape(data);\r\n }\r\n },\r\n isShapeInAnimatedModifiers: function (data) {\r\n var i = 0;\r\n var len = this.shapeModifiers.length;\r\n while (i < len) {\r\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n renderModifiers: function () {\r\n if (!this.shapeModifiers.length) {\r\n return;\r\n }\r\n var i;\r\n var len = this.shapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].sh.reset();\r\n }\r\n\r\n len = this.shapeModifiers.length;\r\n var shouldBreakProcess;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame);\r\n // workaround to fix cases where a repeater resets the shape so the following processes get called twice\r\n // TODO: find a better solution for this\r\n if (shouldBreakProcess) {\r\n break;\r\n }\r\n }\r\n },\r\n\r\n searchProcessedElement: function (elem) {\r\n var elements = this.processedElements;\r\n var i = 0;\r\n var len = elements.length;\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n i += 1;\r\n }\r\n return 0;\r\n },\r\n addProcessedElement: function (elem, pos) {\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n while (i) {\r\n i -= 1;\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function (num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n },\r\n};\r\n\r\n/* global TextProperty, TextAnimatorProperty, buildShapeString, LetterProps */\r\n\r\nfunction ITextElement() {\r\n}\r\n\r\nITextElement.prototype.initElement = function (data, globalData, comp) {\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n};\r\n\r\nITextElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n};\r\n\r\nITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\r\n var j;\r\n var jLen = shapes.length;\r\n var pathNodes;\r\n var shapeStr = '';\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = shapes[j].ks.k;\r\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\r\n }\r\n return shapeStr;\r\n};\r\n\r\nITextElement.prototype.updateDocumentData = function (newData, index) {\r\n this.textProperty.updateDocumentData(newData, index);\r\n};\r\n\r\nITextElement.prototype.canResizeFont = function (_canResize) {\r\n this.textProperty.canResizeFont(_canResize);\r\n};\r\n\r\nITextElement.prototype.setMinimumFontSize = function (_fontSize) {\r\n this.textProperty.setMinimumFontSize(_fontSize);\r\n};\r\n\r\nITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\r\n if (documentData.ps) {\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n matrixHelper.translate(0, -documentData.ls, 0);\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\r\n break;\r\n case 2:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\r\n break;\r\n default:\r\n break;\r\n }\r\n matrixHelper.translate(xPos, yPos, 0);\r\n};\r\n\r\nITextElement.prototype.buildColor = function (colorData) {\r\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\r\n};\r\n\r\nITextElement.prototype.emptyProp = new LetterProps();\r\n\r\nITextElement.prototype.destroy = function () {\r\n\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement */\r\n\r\nfunction ICompElement() {}\r\n\r\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\r\n\r\nICompElement.prototype.initElement = function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initRenderable();\r\n this.initHierarchy();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n if (this.data.xt || !globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n this.hide();\r\n};\r\n\r\n/* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n}; */\r\n\r\nICompElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if (!this.isInRange && !this.data.xt) {\r\n return;\r\n }\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n if (timeRemapped === this.data.op) {\r\n timeRemapped = this.data.op - 1;\r\n }\r\n this.renderedFrame = timeRemapped;\r\n } else {\r\n this.renderedFrame = num / this.data.sr;\r\n }\r\n var i;\r\n var len = this.elements.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(this.renderedFrame);\r\n }\r\n // This iteration needs to be backwards because of how expressions connect between each other\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n if (this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.renderInnerContent = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.setElements = function (elems) {\r\n this.elements = elems;\r\n};\r\n\r\nICompElement.prototype.getElements = function () {\r\n return this.elements;\r\n};\r\n\r\nICompElement.prototype.destroyElements = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.destroy = function () {\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, createNS */\r\n\r\nfunction IImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n this.sourceRect = {\r\n top: 0, left: 0, width: this.assetData.w, height: this.assetData.h,\r\n };\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\r\n\r\nIImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\r\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\r\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n\r\n this.layerElement.appendChild(this.innerElem);\r\n};\r\n\r\nIImageElement.prototype.sourceRectAtTime = function () {\r\n return this.sourceRect;\r\n};\r\n\r\n/* global extendPrototype, IImageElement, createNS */\r\n\r\nfunction ISolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([IImageElement], ISolidElement);\r\n\r\nISolidElement.prototype.createContent = function () {\r\n var rect = createNS('rect');\r\n /// /rect.style.width = this.data.sw;\r\n /// /rect.style.height = this.data.sh;\r\n /// /rect.style.fill = this.data.sc;\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n};\r\n\r\n/* global PropertyFactory, extendPrototype, RenderableElement, BaseElement, FrameElement */\r\n\r\nfunction AudioElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initBaseData(data, globalData, comp);\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.audio = this.globalData.audioController.createAudio(assetPath);\r\n this._currentTime = 0;\r\n this.globalData.audioController.addAudio(this);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nAudioElement.prototype.prepareFrame = function (num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n this._currentTime = timeRemapped;\r\n } else {\r\n this._currentTime = num / this.data.sr;\r\n }\r\n};\r\n\r\nextendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\r\n\r\nAudioElement.prototype.renderFrame = function () {\r\n if (this.isInRange && this._canPlay) {\r\n if (!this._isPlaying) {\r\n this.audio.play();\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n this._isPlaying = true;\r\n } else if (!this.audio.playing()\r\n || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1\r\n ) {\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n }\r\n }\r\n};\r\n\r\nAudioElement.prototype.show = function () {\r\n // this.audio.play()\r\n};\r\n\r\nAudioElement.prototype.hide = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n};\r\n\r\nAudioElement.prototype.pause = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n};\r\n\r\nAudioElement.prototype.resume = function () {\r\n this._canPlay = true;\r\n};\r\n\r\nAudioElement.prototype.setRate = function (rateValue) {\r\n this.audio.rate(rateValue);\r\n};\r\n\r\nAudioElement.prototype.volume = function (volumeValue) {\r\n this.audio.volume(volumeValue);\r\n};\r\n\r\nAudioElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nAudioElement.prototype.destroy = function () {\r\n};\r\n\r\nAudioElement.prototype.sourceRectAtTime = function () {\r\n};\r\n\r\nAudioElement.prototype.initExpressions = function () {\r\n};\r\n\r\n/* global extendPrototype, RenderableElement, BaseElement, FrameElement, FootageInterface */\r\n\r\nfunction FootageElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\r\n this.initBaseData(data, globalData, comp);\r\n}\r\n\r\nFootageElement.prototype.prepareFrame = function () {\r\n};\r\n\r\nextendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\r\n\r\nFootageElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nFootageElement.prototype.renderFrame = function () {\r\n};\r\n\r\nFootageElement.prototype.destroy = function () {\r\n};\r\n\r\nFootageElement.prototype.initExpressions = function () {\r\n this.layerInterface = FootageInterface(this);\r\n};\r\n\r\nFootageElement.prototype.getFootageData = function () {\r\n return this.footageData;\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, SVGRenderer, ICompElement, SVGBaseElement */\r\n\r\nfunction SVGCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n // this.layerElement = createNS('g');\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, ITextElement, createSizedArray, createNS */\r\n\r\nfunction SVGTextLottieElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\r\n\r\nSVGTextLottieElement.prototype.createContent = function () {\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n};\r\n\r\nSVGTextLottieElement.prototype.buildTextContents = function (textArray) {\r\n var i = 0;\r\n var len = textArray.length;\r\n var textContents = [];\r\n var currentTextContent = '';\r\n while (i < len) {\r\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n i += 1;\r\n }\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n};\r\n\r\nSVGTextLottieElement.prototype.buildNewText = function () {\r\n var i;\r\n var len;\r\n\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n if (documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n } else {\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n if (documentData.sc) {\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if (fontData.fClass) {\r\n this.layerElement.setAttribute('class', fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n this.layerElement.setAttribute('aria-label', documentData.t);\r\n\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var singleShape = this.data.singleShape;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n if (singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n switch (documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n default:\r\n justify = 'start';\r\n break;\r\n }\r\n tElement.setAttribute('text-anchor', justify);\r\n tElement.setAttribute('letter-spacing', trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n for (i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i] || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n this.textSpans[i] = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n\r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var shapeData;\r\n var charData;\r\n for (i = 0; i < len; i += 1) {\r\n if (!usesGlyphs || !singleShape || i === 0) {\r\n tSpan = cachedSpansLength > i ? this.textSpans[i] : createNS(usesGlyphs ? 'path' : 'text');\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin', 'round');\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n this.textSpans[i] = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n tSpan.style.display = 'inherit';\r\n }\r\n\r\n matrixHelper.reset();\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n if (letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0;\r\n // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n xPos += trackingOffset;\r\n }\r\n if (usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = (charData && charData.data) || {};\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n if (!singleShape) {\r\n tSpan.setAttribute('d', this.createPathShape(matrixHelper, shapes));\r\n } else {\r\n shapeStr += this.createPathShape(matrixHelper, shapes);\r\n }\r\n } else {\r\n if (singleShape) {\r\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\r\n }\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n }\r\n //\r\n }\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n }\r\n while (i < this.textSpans.length) {\r\n this.textSpans[i].style.display = 'none';\r\n i += 1;\r\n }\r\n\r\n this._sizeChanged = true;\r\n};\r\n\r\nSVGTextLottieElement.prototype.sourceRectAtTime = function () {\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n if (this._sizeChanged) {\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height,\r\n };\r\n }\r\n return this.bbox;\r\n};\r\n\r\nSVGTextLottieElement.prototype.renderInnerContent = function () {\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\r\n this._sizeChanged = true;\r\n var i;\r\n var len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n textSpan = this.textSpans[i];\r\n if (renderedLetter._mdf.m) {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n if (renderedLetter._mdf.o) {\r\n textSpan.setAttribute('opacity', renderedLetter.o);\r\n }\r\n if (renderedLetter._mdf.sw) {\r\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n if (renderedLetter._mdf.sc) {\r\n textSpan.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n if (renderedLetter._mdf.fc) {\r\n textSpan.setAttribute('fill', renderedLetter.fc);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement,\r\nFrameElement, RenderableDOMElement, Matrix, SVGStyleData, SVGStrokeStyleData, SVGFillStyleData,\r\nSVGGradientFillStyleData, SVGGradientStrokeStyleData, locationHref, getBlendMode, ShapeGroupData,\r\nTransformPropertyFactory, SVGTransformData, ShapePropertyFactory, SVGShapeData, SVGElementsRenderer, ShapeModifiers,\r\nlineCapEnum, lineJoinEnum */\r\n\r\nfunction SVGShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = [];\r\n // Full shape data\r\n this.shapesData = data.shapes;\r\n // List of styles that will be applied to shapes\r\n this.stylesList = [];\r\n // List of modifiers that will be applied to shapes\r\n this.shapeModifiers = [];\r\n // List of items in shape tree\r\n this.itemsData = [];\r\n // List of items in previous shape tree\r\n this.processedElements = [];\r\n // List of animated components\r\n this.animatedContents = [];\r\n this.initElement(data, globalData, comp);\r\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n this.prevViewData = [];\r\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\r\n\r\nSVGShapeElement.prototype.initSecondaryElement = function () {\r\n};\r\n\r\nSVGShapeElement.prototype.identityMatrix = new Matrix();\r\n\r\nSVGShapeElement.prototype.buildExpressionInterface = function () {};\r\n\r\nSVGShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n};\r\n\r\n/*\r\nThis method searches for multiple shapes that affect a single element and one of them is animated\r\n*/\r\nSVGShapeElement.prototype.filterUniqueShapes = function () {\r\n var i;\r\n var len = this.shapes.length;\r\n var shape;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n var style;\r\n var tempShapes = [];\r\n var areAnimated = false;\r\n for (j = 0; j < jLen; j += 1) {\r\n style = this.stylesList[j];\r\n areAnimated = false;\r\n tempShapes.length = 0;\r\n for (i = 0; i < len; i += 1) {\r\n shape = this.shapes[i];\r\n if (shape.styles.indexOf(style) !== -1) {\r\n tempShapes.push(shape);\r\n areAnimated = shape._isAnimated || areAnimated;\r\n }\r\n }\r\n if (tempShapes.length > 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\r\n var i;\r\n var len = shapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.createStyleElement = function (data, level) {\r\n // TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n\r\n var pathElement = styleOb.pElem;\r\n if (data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if (data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new GradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask', 'url(' + locationHref + '#' + elementData.maskId + ')');\r\n }\r\n }\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n pathElement.setAttribute('fill-opacity', '0');\r\n if (data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n if (data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if (data.ln) {\r\n pathElement.setAttribute('id', data.ln);\r\n }\r\n if (data.cl) {\r\n pathElement.setAttribute('class', data.cl);\r\n }\r\n if (data.bm) {\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createGroupElement = function (data) {\r\n var elementData = new ShapeGroupData();\r\n if (data.ln) {\r\n elementData.gr.setAttribute('id', data.ln);\r\n }\r\n if (data.cl) {\r\n elementData.gr.setAttribute('class', data.cl);\r\n }\r\n if (data.bm) {\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createTransformElement = function (data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\r\n var ty = 4;\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\r\n var i = 0;\r\n var len = this.animatedContents.length;\r\n while (i < len) {\r\n if (this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n i += 1;\r\n }\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data,\r\n });\r\n};\r\n\r\nSVGShapeElement.prototype.setElementStyles = function (elementData) {\r\n var arr = elementData.styles;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n};\r\n\r\nSVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\r\n var ownTransformers = [].concat(transformers);\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var currentTransform;\r\n var modifier;\r\n var processedPos;\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if (!processedPos) {\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n if (arr[i]._render) {\r\n if (itemsData[i].style.pElem.parentNode !== container) {\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n }\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\r\n if (arr[i]._render) {\r\n if (itemsData[i].gr.parentNode !== container) {\r\n container.appendChild(itemsData[i].gr);\r\n }\r\n }\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createTransformElement(arr[i], container);\r\n }\r\n currentTransform = itemsData[i].transform;\r\n ownTransformers.push(currentTransform);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\r\n }\r\n this.setElementStyles(itemsData[i]);\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n render = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n ownModifiers.push(modifier);\r\n }\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n len = ownStyles.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownStyles[i].closed = true;\r\n }\r\n len = ownModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.renderInnerContent = function () {\r\n this.renderModifiers();\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.stylesList[i].reset();\r\n }\r\n this.renderShape();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\r\n if (this.stylesList[i].msElem) {\r\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d);\r\n // Adding M0 0 fixes same mask bug on all browsers\r\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\r\n }\r\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.renderShape = function () {\r\n var i;\r\n var len = this.animatedContents.length;\r\n var animatedContent;\r\n for (i = 0; i < len; i += 1) {\r\n animatedContent = this.animatedContents[i];\r\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\r\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.destroy = function () {\r\n this.destroyBaseElement();\r\n this.shapesData = null;\r\n this.itemsData = null;\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGTintFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', 'f1');\r\n filter.appendChild(feColorMatrix);\r\n feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', 'f2');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'SourceGraphic');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'f2');\r\n feMerge.appendChild(feMergeNode);\r\n }\r\n}\r\n\r\nSVGTintFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var colorBlack = this.filterManager.effectElements[0].p.v;\r\n var colorWhite = this.filterManager.effectElements[1].p.v;\r\n var opacity = this.filterManager.effectElements[2].p.v / 100;\r\n this.matrixFilter.setAttribute('values', (colorWhite[0] - colorBlack[0]) + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGFillFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n}\r\nSVGFillFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color = this.filterManager.effectElements[2].p.v;\r\n var opacity = this.filterManager.effectElements[6].p.v;\r\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGGaussianBlurEffect(filter, filterManager) {\r\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\r\n filter.setAttribute('x', '-100%');\r\n filter.setAttribute('y', '-100%');\r\n filter.setAttribute('width', '300%');\r\n filter.setAttribute('height', '300%');\r\n\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n filter.appendChild(feGaussianBlur);\r\n this.feGaussianBlur = feGaussianBlur;\r\n}\r\n\r\nSVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n // Empirical value, matching AE's blur appearance.\r\n var kBlurrinessToSigma = 0.3;\r\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma;\r\n\r\n // Dimensions mapping:\r\n //\r\n // 1 -> horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = (dimensions == 3) ? 0 : sigma; // eslint-disable-line eqeqeq\r\n var sigmaY = (dimensions == 2) ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY);\r\n\r\n // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n var edgeMode = (this.filterManager.effectElements[2].p.v == 1) ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n};\r\n\r\n/* global createNS, createElementID, locationHref, bmFloor */\r\n\r\nfunction SVGStrokeEffect(elem, filterManager) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n}\r\n\r\nSVGStrokeEffect.prototype.initialize = function () {\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path;\r\n var groupPath;\r\n var i;\r\n var len;\r\n if (this.filterManager.effectElements[1].p.v === 1) {\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n groupPath = createNS('g');\r\n groupPath.setAttribute('fill', 'none');\r\n groupPath.setAttribute('stroke-linecap', 'round');\r\n groupPath.setAttribute('stroke-dashoffset', 1);\r\n for (i; i < len; i += 1) {\r\n path = createNS('path');\r\n groupPath.appendChild(path);\r\n this.paths.push({ p: path, m: i });\r\n }\r\n if (this.filterManager.effectElements[10].p.v === 3) {\r\n var mask = createNS('mask');\r\n var id = createElementID();\r\n mask.setAttribute('id', id);\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.appendChild(groupPath);\r\n this.elem.globalData.defs.appendChild(mask);\r\n var g = createNS('g');\r\n g.setAttribute('mask', 'url(' + locationHref + '#' + id + ')');\r\n while (elemChildren[0]) {\r\n g.appendChild(elemChildren[0]);\r\n }\r\n this.elem.layerElement.appendChild(g);\r\n this.masker = mask;\r\n groupPath.setAttribute('stroke', '#fff');\r\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (this.filterManager.effectElements[10].p.v === 2) {\r\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n while (elemChildren.length) {\r\n this.elem.layerElement.removeChild(elemChildren[0]);\r\n }\r\n }\r\n this.elem.layerElement.appendChild(groupPath);\r\n this.elem.layerElement.removeAttribute('mask');\r\n groupPath.setAttribute('stroke', '#fff');\r\n }\r\n this.initialized = true;\r\n this.pathMasker = groupPath;\r\n};\r\n\r\nSVGStrokeEffect.prototype.renderFrame = function (forceRender) {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n var i;\r\n var len = this.paths.length;\r\n var mask;\r\n var path;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.paths[i].m !== -1) {\r\n mask = this.elem.maskManager.viewData[this.paths[i].m];\r\n path = this.paths[i].p;\r\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\r\n path.setAttribute('d', mask.lastPath);\r\n }\r\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\r\n var dasharrayValue;\r\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\r\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var l = path.getTotalLength();\r\n dasharrayValue = '0 0 0 ' + l * s + ' ';\r\n var lineLength = l * (e - s);\r\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n var units = Math.floor(lineLength / segment);\r\n var j;\r\n for (j = 0; j < units; j += 1) {\r\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\r\n }\r\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\r\n } else {\r\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n }\r\n path.setAttribute('stroke-dasharray', dasharrayValue);\r\n }\r\n }\r\n }\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\r\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\r\n }\r\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\r\n var color = this.filterManager.effectElements[3].p.v;\r\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\r\n }\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGTritoneFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', 'f1');\r\n filter.appendChild(feColorMatrix);\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n this.matrixFilter = feComponentTransfer;\r\n var feFuncR = createNS('feFuncR');\r\n feFuncR.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncR);\r\n this.feFuncR = feFuncR;\r\n var feFuncG = createNS('feFuncG');\r\n feFuncG.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncG);\r\n this.feFuncG = feFuncG;\r\n var feFuncB = createNS('feFuncB');\r\n feFuncB.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncB);\r\n this.feFuncB = feFuncB;\r\n}\r\n\r\nSVGTritoneFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color1 = this.filterManager.effectElements[0].p.v;\r\n var color2 = this.filterManager.effectElements[1].p.v;\r\n var color3 = this.filterManager.effectElements[2].p.v;\r\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\r\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\r\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\r\n this.feFuncR.setAttribute('tableValues', tableR);\r\n this.feFuncG.setAttribute('tableValues', tableG);\r\n this.feFuncB.setAttribute('tableValues', tableB);\r\n // var opacity = this.filterManager.effectElements[2].p.v/100;\r\n // this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGProLevelsFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var effectElements = this.filterManager.effectElements;\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n\r\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\r\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\r\n }\r\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\r\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\r\n }\r\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\r\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\r\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\r\n }\r\n\r\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n feComponentTransfer = createNS('feComponentTransfer');\r\n }\r\n\r\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\r\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\r\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n}\r\n\r\nSVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\r\n var feFunc = createNS(type);\r\n feFunc.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFunc);\r\n return feFunc;\r\n};\r\n\r\nSVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\r\n var cnt = 0;\r\n var segments = 256;\r\n var perc;\r\n var min = Math.min(inputBlack, inputWhite);\r\n var max = Math.max(inputBlack, inputWhite);\r\n var table = Array.call(null, { length: segments });\r\n var colorValue;\r\n var pos = 0;\r\n var outputDelta = outputWhite - outputBlack;\r\n var inputDelta = inputWhite - inputBlack;\r\n while (cnt <= 256) {\r\n perc = cnt / 256;\r\n if (perc <= min) {\r\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\r\n } else if (perc >= max) {\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = (outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma));\r\n }\r\n table[pos] = colorValue;\r\n pos += 1;\r\n cnt += 256 / (segments - 1);\r\n }\r\n return table.join(' ');\r\n};\r\n\r\nSVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var val;\r\n var effectElements = this.filterManager.effectElements;\r\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\r\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues', val);\r\n this.feFuncGComposed.setAttribute('tableValues', val);\r\n this.feFuncBComposed.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\r\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\r\n this.feFuncR.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\r\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\r\n this.feFuncG.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\r\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\r\n this.feFuncB.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\r\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\r\n this.feFuncA.setAttribute('tableValues', val);\r\n }\r\n }\r\n};\r\n\r\n/* global createNS, rgbToHex, degToRads */\r\n\r\nfunction SVGDropShadowEffect(filter, filterManager) {\r\n var filterSize = filterManager.container.globalData.renderConfig.filterSize;\r\n filter.setAttribute('x', filterSize.x);\r\n filter.setAttribute('y', filterSize.y);\r\n filter.setAttribute('width', filterSize.width);\r\n filter.setAttribute('height', filterSize.height);\r\n this.filterManager = filterManager;\r\n\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\r\n feGaussianBlur.setAttribute('result', 'drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation', '0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx', '25');\r\n feOffset.setAttribute('dy', '0');\r\n feOffset.setAttribute('in', 'drop_shadow_1');\r\n feOffset.setAttribute('result', 'drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color', '#00ff00');\r\n feFlood.setAttribute('flood-opacity', '1');\r\n feFlood.setAttribute('result', 'drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in', 'drop_shadow_3');\r\n feComposite.setAttribute('in2', 'drop_shadow_2');\r\n feComposite.setAttribute('operator', 'in');\r\n feComposite.setAttribute('result', 'drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'SourceGraphic');\r\n this.feMergeNode = feMergeNode;\r\n this.feMerge = feMerge;\r\n this.originalNodeAdded = false;\r\n feMerge.appendChild(feMergeNode);\r\n}\r\n\r\nSVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\r\n }\r\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\r\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\r\n }\r\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n } */\r\n }\r\n};\r\n\r\n/* global createElementID, createNS */\r\n\r\nvar _svgMatteSymbols = [];\r\n\r\nfunction SVGMatte3Effect(filterElem, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n}\r\n\r\nSVGMatte3Effect.prototype.findSymbol = function (mask) {\r\n var i = 0;\r\n var len = _svgMatteSymbols.length;\r\n while (i < len) {\r\n if (_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nSVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n if (!parentNode) {\r\n return;\r\n }\r\n var children = parentNode.children;\r\n var i = 0;\r\n var len = children.length;\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n var nextChild;\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n if (nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n};\r\n\r\nSVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\r\n if (!this.findSymbol(mask)) {\r\n var symbolId = createElementID();\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n _svgMatteSymbols.push(mask);\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n elem.setMatte(mask.layerId);\r\n};\r\n\r\nSVGMatte3Effect.prototype.initialize = function () {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0;\r\n var len = elements.length;\r\n while (i < len) {\r\n if (elements[i] && elements[i].data.ind === ind) {\r\n this.setElementAsMask(this.elem, elements[i]);\r\n }\r\n i += 1;\r\n }\r\n this.initialized = true;\r\n};\r\n\r\nSVGMatte3Effect.prototype.renderFrame = function () {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n};\r\n\r\n/* global createElementID, filtersFactory, SVGTintFilter, SVGFillFilter, SVGStrokeEffect, SVGTritoneFilter,\r\nSVGProLevelsFilter, SVGDropShadowEffect, SVGMatte3Effect, SVGGaussianBlurEffect, locationHref */\r\n\r\nfunction SVGEffects(elem) {\r\n var i;\r\n var len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId, true);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n for (i = 0; i < len; i += 1) {\r\n filterManager = null;\r\n if (elem.data.ef[i].ty === 20) {\r\n count += 1;\r\n filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 21) {\r\n count += 1;\r\n filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 22) {\r\n filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 23) {\r\n count += 1;\r\n filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 24) {\r\n count += 1;\r\n filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 25) {\r\n count += 1;\r\n filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 28) {\r\n // count += 1;\r\n filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\r\n } else if (elem.data.ef[i].ty === 29) {\r\n count += 1;\r\n filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\r\n }\r\n if (filterManager) {\r\n this.filters.push(filterManager);\r\n }\r\n }\r\n if (count) {\r\n elem.globalData.defs.appendChild(fil);\r\n elem.layerElement.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n }\r\n if (this.filters.length) {\r\n elem.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nSVGEffects.prototype.renderFrame = function (_isFirstFrame) {\r\n var i;\r\n var len = this.filters.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.filters[i].renderFrame(_isFirstFrame);\r\n }\r\n};\r\n\r\n/* global Matrix, createTypedArray */\r\n\r\nfunction CVContextData() {\r\n this.saved = [];\r\n this.cArrPos = 0;\r\n this.cTr = new Matrix();\r\n this.cO = 1;\r\n var i;\r\n var len = 15;\r\n this.savedOp = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n this._length = len;\r\n}\r\n\r\nCVContextData.prototype.duplicate = function () {\r\n var newLength = this._length * 2;\r\n var currentSavedOp = this.savedOp;\r\n this.savedOp = createTypedArray('float32', newLength);\r\n this.savedOp.set(currentSavedOp);\r\n var i = 0;\r\n for (i = this._length; i < newLength; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n this._length = newLength;\r\n};\r\n\r\nCVContextData.prototype.reset = function () {\r\n this.cArrPos = 0;\r\n this.cTr.reset();\r\n this.cO = 1;\r\n};\r\n\r\n/* global CVEffects, getBlendMode, CVMaskElement, Matrix */\r\n\r\nfunction CVBaseElement() {\r\n}\r\n\r\nCVBaseElement.prototype = {\r\n createElements: function () {},\r\n initRendererElement: function () {},\r\n createContainerElements: function () {\r\n this.canvasContext = this.globalData.canvasContext;\r\n this.renderableEffectsManager = new CVEffects(this);\r\n },\r\n createContent: function () {},\r\n setBlendMode: function () {\r\n var globalData = this.globalData;\r\n if (globalData.blendMode !== this.data.bm) {\r\n globalData.blendMode = this.data.bm;\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\r\n }\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new CVMaskElement(this.data, this);\r\n },\r\n hideElement: function () {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n this.hidden = true;\r\n }\r\n },\r\n showElement: function () {\r\n if (this.isInRange && !this.isTransparent) {\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n this.maskManager._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function () {\r\n if (this.hidden || this.data.hd) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.setBlendMode();\r\n var forceRealStack = this.data.ty === 0;\r\n this.globalData.renderer.save(forceRealStack);\r\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\r\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\r\n this.renderInnerContent();\r\n this.globalData.renderer.restore(forceRealStack);\r\n if (this.maskManager.hasMasks) {\r\n this.globalData.renderer.restore(true);\r\n }\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function () {\r\n this.canvasContext = null;\r\n this.data = null;\r\n this.globalData = null;\r\n this.maskManager.destroy();\r\n },\r\n mHelper: new Matrix(),\r\n};\r\nCVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\r\nCVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement,HierarchyElement, FrameElement,\r\nRenderableElement, SVGShapeElement, IImageElement, createTag */\r\n\r\nfunction CVImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.img = globalData.imageLoader.getAsset(this.assetData);\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\r\n\r\nCVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\nCVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\nCVImageElement.prototype.createContent = function () {\r\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\r\n var canvas = createTag('canvas');\r\n canvas.width = this.assetData.w;\r\n canvas.height = this.assetData.h;\r\n var ctx = canvas.getContext('2d');\r\n\r\n var imgW = this.img.width;\r\n var imgH = this.img.height;\r\n var imgRel = imgW / imgH;\r\n var canvasRel = this.assetData.w / this.assetData.h;\r\n var widthCrop;\r\n var heightCrop;\r\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\r\n if ((imgRel > canvasRel && par === 'xMidYMid slice') || (imgRel < canvasRel && par !== 'xMidYMid slice')) {\r\n heightCrop = imgH;\r\n widthCrop = heightCrop * canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop / canvasRel;\r\n }\r\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\r\n this.img = canvas;\r\n }\r\n};\r\n\r\nCVImageElement.prototype.renderInnerContent = function () {\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n};\r\n\r\nCVImageElement.prototype.destroy = function () {\r\n this.img = null;\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, CanvasRenderer, ICompElement, CVBaseElement */\r\n\r\nfunction CVCompElement(data, globalData, comp) {\r\n this.completeLayers = false;\r\n this.layers = data.layers;\r\n this.pendingElements = [];\r\n this.elements = createSizedArray(this.layers.length);\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);\r\n\r\nCVCompElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i;\r\n var len = this.layers.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nCVCompElement.prototype.destroy = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.layers = null;\r\n this.elements = null;\r\n};\r\n\r\n/* global createSizedArray, ShapePropertyFactory, MaskElement */\r\n\r\nfunction CVMaskElement(data, element) {\r\n this.data = data;\r\n this.element = element;\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.viewData = createSizedArray(this.masksProperties.length);\r\n var i;\r\n var len = this.masksProperties.length;\r\n var hasMasks = false;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n hasMasks = true;\r\n }\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\r\n }\r\n this.hasMasks = hasMasks;\r\n if (hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nCVMaskElement.prototype.renderFrame = function () {\r\n if (!this.hasMasks) {\r\n return;\r\n }\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i;\r\n var len = this.masksProperties.length;\r\n var pt;\r\n var pts;\r\n var data;\r\n ctx.beginPath();\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.masksProperties[i].inv) {\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, 0);\r\n }\r\n data = this.viewData[i].v;\r\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\r\n ctx.moveTo(pt[0], pt[1]);\r\n var j;\r\n var jLen = data._length;\r\n for (j = 1; j < jLen; j += 1) {\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n }\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n};\r\n\r\nCVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\nCVMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n};\r\n\r\n/* global ShapeTransformManager, extendPrototype, BaseElement, TransformElement, CVBaseElement, IShapeElement,\r\nHierarchyElement, FrameElement, RenderableElement, RenderableDOMElement, PropertyFactory, degToRads, GradientProperty,\r\nDashProperty, TransformPropertyFactory, CVShapeData, ShapeModifiers, bmFloor, lineCapEnum, lineJoinEnum */\r\n\r\nfunction CVShapeElement(data, globalData, comp) {\r\n this.shapes = [];\r\n this.shapesData = data.shapes;\r\n this.stylesList = [];\r\n this.itemsData = [];\r\n this.prevViewData = [];\r\n this.shapeModifiers = [];\r\n this.processedElements = [];\r\n this.transformsManager = new ShapeTransformManager();\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\r\n\r\nCVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n\r\nCVShapeElement.prototype.transformHelper = { opacity: 1, _opMdf: false };\r\n\r\nCVShapeElement.prototype.dashResetter = [];\r\n\r\nCVShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n};\r\n\r\nCVShapeElement.prototype.createStyleElement = function (data, transforms) {\r\n var styleElem = {\r\n data: data,\r\n type: data.ty,\r\n preTransforms: this.transformsManager.addTransformSequence(transforms),\r\n transforms: [],\r\n elements: [],\r\n closed: data.hd === true,\r\n };\r\n var elementData = {};\r\n if (data.ty === 'fl' || data.ty === 'st') {\r\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\r\n if (!elementData.c.k) {\r\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\r\n }\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\r\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\r\n elementData.h = PropertyFactory.getProp(this, data.h || { k: 0 }, 0, 0.01, this);\r\n elementData.a = PropertyFactory.getProp(this, data.a || { k: 0 }, 0, degToRads, this);\r\n elementData.g = new GradientProperty(this, data.g, this);\r\n }\r\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n styleElem.lc = lineCapEnum[data.lc || 2];\r\n styleElem.lj = lineJoinEnum[data.lj || 2];\r\n if (data.lj == 1) { // eslint-disable-line eqeqeq\r\n styleElem.ml = data.ml;\r\n }\r\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\r\n if (!elementData.w.k) {\r\n styleElem.wi = elementData.w.v;\r\n }\r\n if (data.d) {\r\n var d = new DashProperty(this, data.d, 'canvas', this);\r\n elementData.d = d;\r\n if (!elementData.d.k) {\r\n styleElem.da = elementData.d.dashArray;\r\n styleElem.do = elementData.d.dashoffset[0];\r\n }\r\n }\r\n } else {\r\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\r\n }\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createGroupElement = function () {\r\n var elementData = {\r\n it: [],\r\n prevViewData: [],\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createTransformElement = function (data) {\r\n var elementData = {\r\n transform: {\r\n opacity: 1,\r\n _opMdf: false,\r\n key: this.transformsManager.getNewKey(),\r\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\r\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this),\r\n },\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createShapeElement = function (data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n};\r\n\r\nCVShapeElement.prototype.addTransformToStyleList = function (transform) {\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.push(transform);\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.removeTransformFromStyleList = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.pop();\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.closeStyles = function (styles) {\r\n var i;\r\n var len = styles.length;\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var processedPos;\r\n var modifier;\r\n var currentTransform;\r\n var ownTransforms = [].concat(transforms);\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if (!processedPos) {\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n currentTransform = this.createTransformElement(arr[i]);\r\n itemsData[i] = currentTransform;\r\n }\r\n ownTransforms.push(itemsData[i]);\r\n this.addTransformToStyleList(itemsData[i]);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i]);\r\n }\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n shouldRender = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n ownModifiers.push(modifier);\r\n }\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n this.removeTransformFromStyleList();\r\n this.closeStyles(ownStyles);\r\n len = ownModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderInnerContent = function () {\r\n this.transformHelper.opacity = 1;\r\n this.transformHelper._opMdf = false;\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\r\n};\r\n\r\nCVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\r\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\r\n groupTransform.opacity = parentTransform.opacity;\r\n groupTransform.opacity *= groupTransform.op.v;\r\n groupTransform._opMdf = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.drawLayer = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var elems;\r\n var nodes;\r\n var renderer = this.globalData.renderer;\r\n var ctx = this.globalData.canvasContext;\r\n var type;\r\n var currentStyle;\r\n for (i = 0; i < len; i += 1) {\r\n currentStyle = this.stylesList[i];\r\n type = currentStyle.type;\r\n\r\n // Skipping style when\r\n // Stroke width equals 0\r\n // style should not be rendered (extra unused repeaters)\r\n // current opacity equals 0\r\n // global opacity equals 0\r\n if (!(((type === 'st' || type === 'gs') && currentStyle.wi === 0) || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\r\n renderer.save();\r\n elems = currentStyle.elements;\r\n if (type === 'st' || type === 'gs') {\r\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\r\n ctx.lineWidth = currentStyle.wi;\r\n ctx.lineCap = currentStyle.lc;\r\n ctx.lineJoin = currentStyle.lj;\r\n ctx.miterLimit = currentStyle.ml || 0;\r\n } else {\r\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\r\n }\r\n renderer.ctxOpacity(currentStyle.coOp);\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.beginPath();\r\n }\r\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\r\n jLen = elems.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (type === 'st' || type === 'gs') {\r\n ctx.beginPath();\r\n if (currentStyle.da) {\r\n ctx.setLineDash(currentStyle.da);\r\n ctx.lineDashOffset = currentStyle.do;\r\n }\r\n }\r\n nodes = elems[j].trNodes;\r\n kLen = nodes.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (nodes[k].t === 'm') {\r\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\r\n } else if (nodes[k].t === 'c') {\r\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\r\n } else {\r\n ctx.closePath();\r\n }\r\n }\r\n if (type === 'st' || type === 'gs') {\r\n ctx.stroke();\r\n if (currentStyle.da) {\r\n ctx.setLineDash(this.dashResetter);\r\n }\r\n }\r\n }\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.fill(currentStyle.r);\r\n }\r\n renderer.restore();\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\r\n var i;\r\n var len = items.length - 1;\r\n var groupTransform;\r\n groupTransform = parentTransform;\r\n for (i = len; i >= 0; i -= 1) {\r\n if (items[i].ty === 'tr') {\r\n groupTransform = data[i].transform;\r\n this.renderShapeTransform(parentTransform, groupTransform);\r\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\r\n this.renderPath(items[i], data[i]);\r\n } else if (items[i].ty === 'fl') {\r\n this.renderFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'st') {\r\n this.renderStroke(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\r\n this.renderGradientFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gr') {\r\n this.renderShape(groupTransform, items[i].it, data[i].it);\r\n } else if (items[i].ty === 'tm') {\r\n //\r\n }\r\n }\r\n if (isMain) {\r\n this.drawLayer();\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\r\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\r\n var shapeNodes = styledShape.trNodes;\r\n var paths = shape.paths;\r\n var i;\r\n var len;\r\n var j;\r\n var jLen = paths._length;\r\n shapeNodes.length = 0;\r\n var groupTransformMat = styledShape.transforms.finalTransform;\r\n for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n if (pathNodes && pathNodes.v) {\r\n len = pathNodes._length;\r\n for (i = 1; i < len; i += 1) {\r\n if (i === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\r\n });\r\n }\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i]),\r\n });\r\n }\r\n if (len === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\r\n });\r\n }\r\n if (pathNodes.c && len) {\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0]),\r\n });\r\n shapeNodes.push({\r\n t: 'z',\r\n });\r\n }\r\n }\r\n }\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderPath = function (pathData, itemData) {\r\n if (pathData.hd !== true && pathData._shouldRender) {\r\n var i;\r\n var len = itemData.styledShapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb('\r\n + bmFloor(itemData.c.v[0]) + ','\r\n + bmFloor(itemData.c.v[1]) + ','\r\n + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var grd;\r\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || (styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf))) {\r\n var ctx = this.globalData.canvasContext;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n if (styleData.t === 1) {\r\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\r\n } else {\r\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n\r\n var percent = itemData.h.v;\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i;\r\n var len = styleData.g.p;\r\n var cValues = itemData.g.c;\r\n var opacity = 1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\r\n opacity = itemData.g.o[i * 2 + 1];\r\n }\r\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\r\n }\r\n styleElem.grd = grd;\r\n }\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n};\r\n\r\nCVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n if (d && (d._mdf || this._isFirstFrame)) {\r\n styleElem.da = d.dashArray;\r\n styleElem.do = d.dashoffset[0];\r\n }\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n if (itemData.w._mdf || this._isFirstFrame) {\r\n styleElem.wi = itemData.w.v;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.destroy = function () {\r\n this.shapesData = null;\r\n this.globalData = null;\r\n this.canvasContext = null;\r\n this.stylesList.length = 0;\r\n this.itemsData.length = 0;\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement,\r\nSVGShapeElement, IImageElement */\r\n\r\nfunction CVSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n\r\nCVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\nCVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\nCVSolidElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.fillStyle = this.data.sc;\r\n ctx.fillRect(0, 0, this.data.sw, this.data.sh);\r\n //\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement,\r\nRenderableElement, ITextElement, createTag, createSizedArray */\r\n\r\nfunction CVTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.yOffset = 0;\r\n this.fillColorAnim = false;\r\n this.strokeColorAnim = false;\r\n this.strokeWidthAnim = false;\r\n this.stroke = false;\r\n this.fill = false;\r\n this.justifyOffset = 0;\r\n this.currentRender = null;\r\n this.renderType = 'canvas';\r\n this.values = {\r\n fill: 'rgba(0,0,0,0)',\r\n stroke: 'rgba(0,0,0,0)',\r\n sWidth: 0,\r\n fValue: '',\r\n };\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\r\n\r\nCVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\nCVTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n\r\n var hasFill = false;\r\n if (documentData.fc) {\r\n hasFill = true;\r\n this.values.fill = this.buildColor(documentData.fc);\r\n } else {\r\n this.values.fill = 'rgba(0,0,0,0)';\r\n }\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n if (documentData.sc) {\r\n hasStroke = true;\r\n this.values.stroke = this.buildColor(documentData.sc);\r\n this.values.sWidth = documentData.sw;\r\n }\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var matrixHelper = this.mHelper;\r\n this.stroke = hasStroke;\r\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\r\n len = documentData.finalText.length;\r\n // this.tHelper.font = this.values.fValue;\r\n var charData;\r\n var shapeData;\r\n var k;\r\n var kLen;\r\n var shapes;\r\n var j;\r\n var jLen;\r\n var pathNodes;\r\n var commands;\r\n var pathArr;\r\n var singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var cnt = 0;\r\n for (i = 0; i < len; i += 1) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = (charData && charData.data) || {};\r\n matrixHelper.reset();\r\n if (singleShape && letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n jLen = shapes.length;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n commands = createSizedArray(jLen);\r\n for (j = 0; j < jLen; j += 1) {\r\n kLen = shapes[j].ks.k.i.length;\r\n pathNodes = shapes[j].ks.k;\r\n pathArr = [];\r\n for (k = 1; k < kLen; k += 1) {\r\n if (k === 1) {\r\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n }\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\r\n }\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n commands[j] = pathArr;\r\n }\r\n if (singleShape) {\r\n xPos += letters[i].l;\r\n xPos += trackingOffset;\r\n }\r\n if (this.textSpans[cnt]) {\r\n this.textSpans[cnt].elem = commands;\r\n } else {\r\n this.textSpans[cnt] = { elem: commands };\r\n }\r\n cnt += 1;\r\n }\r\n};\r\n\r\nCVTextElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.font = this.values.fValue;\r\n ctx.lineCap = 'butt';\r\n ctx.lineJoin = 'miter';\r\n ctx.miterLimit = 4;\r\n\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n }\r\n\r\n var i;\r\n var len;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var lastFill = null;\r\n var lastStroke = null;\r\n var lastStrokeW = null;\r\n var commands;\r\n var pathArr;\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n if (renderedLetter) {\r\n this.globalData.renderer.save();\r\n this.globalData.renderer.ctxTransform(renderedLetter.p);\r\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\r\n }\r\n if (this.fill) {\r\n if (renderedLetter && renderedLetter.fc) {\r\n if (lastFill !== renderedLetter.fc) {\r\n lastFill = renderedLetter.fc;\r\n ctx.fillStyle = renderedLetter.fc;\r\n }\r\n } else if (lastFill !== this.values.fill) {\r\n lastFill = this.values.fill;\r\n ctx.fillStyle = this.values.fill;\r\n }\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.fill();\r\n /// ctx.fillText(this.textSpans[i].val,0,0);\r\n }\r\n if (this.stroke) {\r\n if (renderedLetter && renderedLetter.sw) {\r\n if (lastStrokeW !== renderedLetter.sw) {\r\n lastStrokeW = renderedLetter.sw;\r\n ctx.lineWidth = renderedLetter.sw;\r\n }\r\n } else if (lastStrokeW !== this.values.sWidth) {\r\n lastStrokeW = this.values.sWidth;\r\n ctx.lineWidth = this.values.sWidth;\r\n }\r\n if (renderedLetter && renderedLetter.sc) {\r\n if (lastStroke !== renderedLetter.sc) {\r\n lastStroke = renderedLetter.sc;\r\n ctx.strokeStyle = renderedLetter.sc;\r\n }\r\n } else if (lastStroke !== this.values.stroke) {\r\n lastStroke = this.values.stroke;\r\n ctx.strokeStyle = this.values.stroke;\r\n }\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.stroke();\r\n /// ctx.strokeText(letters[i].val,0,0);\r\n }\r\n if (renderedLetter) {\r\n this.globalData.renderer.restore();\r\n }\r\n }\r\n }\r\n};\r\n\r\nfunction CVEffects() {\r\n\r\n}\r\nCVEffects.prototype.renderFrame = function () {};\r\n\r\n/* global createTag, createNS, styleDiv, CVEffects, MaskElement, SVGBaseElement, HybridRenderer */\r\n\r\nfunction HBaseElement() {}\r\nHBaseElement.prototype = {\r\n checkBlendMode: function () {},\r\n initRendererElement: function () {\r\n this.baseElement = createTag(this.data.tg || 'div');\r\n if (this.data.hasMask) {\r\n this.svgElement = createNS('svg');\r\n this.layerElement = createNS('g');\r\n this.maskedElement = this.layerElement;\r\n this.svgElement.appendChild(this.layerElement);\r\n this.baseElement.appendChild(this.svgElement);\r\n } else {\r\n this.layerElement = this.baseElement;\r\n }\r\n styleDiv(this.baseElement);\r\n },\r\n createContainerElements: function () {\r\n this.renderableEffectsManager = new CVEffects(this);\r\n this.transformedElement = this.baseElement;\r\n this.maskedElement = this.layerElement;\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function () {\r\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\r\n if (this.finalTransform._matMdf) {\r\n var matrixValue = this.finalTransform.mat.toCSS();\r\n transformedElementStyle.transform = matrixValue;\r\n transformedElementStyle.webkitTransform = matrixValue;\r\n }\r\n if (this.finalTransform._opMdf) {\r\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\r\n }\r\n },\r\n renderFrame: function () {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function () {\r\n this.layerElement = null;\r\n this.transformedElement = null;\r\n if (this.matteElement) {\r\n this.matteElement = null;\r\n }\r\n if (this.maskManager) {\r\n this.maskManager.destroy();\r\n this.maskManager = null;\r\n }\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n },\r\n addEffects: function () {\r\n },\r\n setMatte: function () {},\r\n};\r\nHBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\r\nHBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\r\nHBaseElement.prototype.buildElementParenting = HybridRenderer.prototype.buildElementParenting;\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, createNS, createTag */\r\n\r\nfunction HSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\r\n\r\nHSolidElement.prototype.createContent = function () {\r\n var rect;\r\n if (this.data.hasMask) {\r\n rect = createNS('rect');\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.svgElement.setAttribute('width', this.data.sw);\r\n this.svgElement.setAttribute('height', this.data.sh);\r\n } else {\r\n rect = createTag('div');\r\n rect.style.width = this.data.sw + 'px';\r\n rect.style.height = this.data.sh + 'px';\r\n rect.style.backgroundColor = this.data.sc;\r\n }\r\n this.layerElement.appendChild(rect);\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, HybridRenderer, ICompElement, HBaseElement */\r\n\r\nfunction HCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = !data.hasMask;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([HybridRenderer, ICompElement, HBaseElement], HCompElement);\r\nHCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\r\n\r\nHCompElement.prototype.createContainerElements = function () {\r\n this._createBaseContainerElements();\r\n // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\r\n if (this.data.hasMask) {\r\n this.svgElement.setAttribute('width', this.data.w);\r\n this.svgElement.setAttribute('height', this.data.h);\r\n this.transformedElement = this.baseElement;\r\n } else {\r\n this.transformedElement = this.layerElement;\r\n }\r\n};\r\n\r\nHCompElement.prototype.addTo3dContainer = function (elem, pos) {\r\n var j = 0;\r\n var nextElement;\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n j += 1;\r\n }\r\n if (nextElement) {\r\n this.layerElement.insertBefore(elem, nextElement);\r\n } else {\r\n this.layerElement.appendChild(elem);\r\n }\r\n};\r\n\r\n/* global createNS, extendPrototype, BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement,\r\nHierarchyElement, FrameElement, RenderableElement, createNS, bmMin, bmSqrt, bmMin, bmMax, bmPow */\r\n\r\nfunction HShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = [];\r\n // Full shape data\r\n this.shapesData = data.shapes;\r\n // List of styles that will be applied to shapes\r\n this.stylesList = [];\r\n // List of modifiers that will be applied to shapes\r\n this.shapeModifiers = [];\r\n // List of items in shape tree\r\n this.itemsData = [];\r\n // List of items in previous shape tree\r\n this.processedElements = [];\r\n // List of animated components\r\n this.animatedContents = [];\r\n this.shapesContainer = createNS('g');\r\n this.initElement(data, globalData, comp);\r\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n this.prevViewData = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0,\r\n };\r\n}\r\nextendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\r\nHShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\r\n\r\nHShapeElement.prototype.createContent = function () {\r\n var cont;\r\n this.baseElement.style.fontSize = 0;\r\n if (this.data.hasMask) {\r\n this.layerElement.appendChild(this.shapesContainer);\r\n cont = this.svgElement;\r\n } else {\r\n cont = createNS('svg');\r\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\r\n cont.setAttribute('width', size.w);\r\n cont.setAttribute('height', size.h);\r\n cont.appendChild(this.shapesContainer);\r\n this.layerElement.appendChild(cont);\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\r\n this.filterUniqueShapes();\r\n this.shapeCont = cont;\r\n};\r\n\r\nHShapeElement.prototype.getTransformedPoint = function (transformers, point) {\r\n var i;\r\n var len = transformers.length;\r\n for (i = 0; i < len; i += 1) {\r\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\r\n }\r\n return point;\r\n};\r\n\r\nHShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\r\n var shape = item.sh.v;\r\n var transformers = item.transformers;\r\n var i;\r\n var len = shape._length;\r\n var vPoint;\r\n var oPoint;\r\n var nextIPoint;\r\n var nextVPoint;\r\n if (len <= 1) {\r\n return;\r\n }\r\n for (i = 0; i < len - 1; i += 1) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n if (shape.c) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n};\r\n\r\nHShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\r\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\r\n var bounds = this.shapeBoundingBox;\r\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\r\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\r\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\r\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\r\n};\r\n\r\nHShapeElement.prototype.shapeBoundingBox = {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n};\r\n\r\nHShapeElement.prototype.tempBoundingBox = {\r\n x: 0,\r\n xMax: 0,\r\n y: 0,\r\n yMax: 0,\r\n width: 0,\r\n height: 0,\r\n};\r\n\r\nHShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\r\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\r\n\r\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) { // eslint-disable-line no-plusplus\r\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\r\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\r\n c = 3 * p1[i] - 3 * p0[i];\r\n\r\n b |= 0; // eslint-disable-line no-bitwise\r\n a |= 0; // eslint-disable-line no-bitwise\r\n c |= 0; // eslint-disable-line no-bitwise\r\n\r\n if (a === 0 && b === 0) {\r\n //\r\n } else if (a === 0) {\r\n t = -c / b;\r\n\r\n if (t > 0 && t < 1) {\r\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\r\n }\r\n } else {\r\n b2ac = b * b - 4 * c * a;\r\n\r\n if (b2ac >= 0) {\r\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\r\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\r\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\r\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\r\n }\r\n }\r\n }\r\n\r\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\r\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\r\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\r\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\r\n};\r\n\r\nHShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\r\n return bmPow(1 - t, 3) * p0[i]\r\n + 3 * bmPow(1 - t, 2) * t * p1[i]\r\n + 3 * (1 - t) * bmPow(t, 2) * p2[i]\r\n + bmPow(t, 3) * p3[i];\r\n};\r\n\r\nHShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\r\n var i;\r\n var len = itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (itemsData[i] && itemsData[i].sh) {\r\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\r\n } else if (itemsData[i] && itemsData[i].it) {\r\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\r\n }\r\n }\r\n};\r\n\r\nHShapeElement.prototype.currentBoxContains = function (box) {\r\n return this.currentBBox.x <= box.x\r\n && this.currentBBox.y <= box.y\r\n && this.currentBBox.width + this.currentBBox.x >= box.x + box.width\r\n && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\r\n};\r\n\r\nHShapeElement.prototype.renderInnerContent = function () {\r\n this._renderShapeFrame();\r\n\r\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var tempBoundingBox = this.tempBoundingBox;\r\n var max = 999999;\r\n tempBoundingBox.x = max;\r\n tempBoundingBox.xMax = -max;\r\n tempBoundingBox.y = max;\r\n tempBoundingBox.yMax = -max;\r\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\r\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\r\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y;\r\n // var tempBoundingBox = this.shapeCont.getBBox();\r\n if (this.currentBoxContains(tempBoundingBox)) {\r\n return;\r\n }\r\n var changed = false;\r\n if (this.currentBBox.w !== tempBoundingBox.width) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\r\n changed = true;\r\n }\r\n if (this.currentBBox.h !== tempBoundingBox.height) {\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\r\n changed = true;\r\n }\r\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.currentBBox.x = tempBoundingBox.x;\r\n this.currentBBox.y = tempBoundingBox.y;\r\n\r\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n var shapeStyle = this.shapeCont.style;\r\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n shapeStyle.transform = shapeTransform;\r\n shapeStyle.webkitTransform = shapeTransform;\r\n }\r\n }\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, ITextElement, createSizedArray, createTag, styleDiv, createNS, lineJoinEnum, lineCapEnum */\r\n\r\nfunction HTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.textPaths = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0,\r\n };\r\n this.renderType = 'svg';\r\n this.isMasked = false;\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\r\n\r\nHTextElement.prototype.createContent = function () {\r\n this.isMasked = this.checkMasks();\r\n if (this.isMasked) {\r\n this.renderType = 'svg';\r\n this.compW = this.comp.data.w;\r\n this.compH = this.comp.data.h;\r\n this.svgElement.setAttribute('width', this.compW);\r\n this.svgElement.setAttribute('height', this.compH);\r\n var g = createNS('g');\r\n this.maskedElement.appendChild(g);\r\n this.innerElem = g;\r\n } else {\r\n this.renderType = 'html';\r\n this.innerElem = this.layerElement;\r\n }\r\n\r\n this.checkParenting();\r\n};\r\n\r\nHTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var innerElemStyle = this.innerElem.style;\r\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\r\n innerElemStyle.fill = textColor;\r\n innerElemStyle.color = textColor;\r\n if (documentData.sc) {\r\n innerElemStyle.stroke = this.buildColor(documentData.sc);\r\n innerElemStyle.strokeWidth = documentData.sw + 'px';\r\n }\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if (!this.globalData.fontManager.chars) {\r\n innerElemStyle.fontSize = documentData.finalSize + 'px';\r\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\r\n if (fontData.fClass) {\r\n this.innerElem.className = fontData.fClass;\r\n } else {\r\n innerElemStyle.fontFamily = fontData.fFamily;\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n innerElemStyle.fontStyle = fStyle;\r\n innerElemStyle.fontWeight = fWeight;\r\n }\r\n }\r\n var i;\r\n var len;\r\n\r\n var letters = documentData.l;\r\n len = letters.length;\r\n var tSpan;\r\n var tParent;\r\n var tCont;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var cnt = 0;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.globalData.fontManager.chars) {\r\n if (!this.textPaths[cnt]) {\r\n tSpan = createNS('path');\r\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\r\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n } else {\r\n tSpan = this.textPaths[cnt];\r\n }\r\n if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tCont = tParent.children[0];\r\n } else {\r\n tParent = createTag('div');\r\n tParent.style.lineHeight = 0;\r\n tCont = createNS('svg');\r\n tCont.appendChild(tSpan);\r\n styleDiv(tParent);\r\n }\r\n }\r\n } else if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tSpan = this.textPaths[cnt];\r\n } else {\r\n tParent = createTag('span');\r\n styleDiv(tParent);\r\n tSpan = createTag('span');\r\n styleDiv(tSpan);\r\n tParent.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\r\n }\r\n // tSpan.setAttribute('visibility', 'hidden');\r\n if (this.globalData.fontManager.chars) {\r\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var shapeData;\r\n if (charData) {\r\n shapeData = charData.data;\r\n } else {\r\n shapeData = null;\r\n }\r\n matrixHelper.reset();\r\n if (shapeData && shapeData.shapes) {\r\n shapes = shapeData.shapes[0].it;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n shapeStr = this.createPathShape(matrixHelper, shapes);\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n if (shapeData && shapeData.shapes) {\r\n // document.body.appendChild is needed to get exact measure of shape\r\n document.body.appendChild(tCont);\r\n var boundingBox = tCont.getBBox();\r\n tCont.setAttribute('width', boundingBox.width + 2);\r\n tCont.setAttribute('height', boundingBox.height + 2);\r\n tCont.setAttribute('viewBox', (boundingBox.x - 1) + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\r\n var tContStyle = tCont.style;\r\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\r\n tContStyle.transform = tContTranslation;\r\n tContStyle.webkitTransform = tContTranslation;\r\n\r\n letters[i].yOffset = boundingBox.y - 1;\r\n } else {\r\n tCont.setAttribute('width', 1);\r\n tCont.setAttribute('height', 1);\r\n }\r\n tParent.appendChild(tCont);\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n //\r\n var tStyle = tSpan.style;\r\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\r\n tStyle.transform = tSpanTranslation;\r\n tStyle.webkitTransform = tSpanTranslation;\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n }\r\n //\r\n if (!this.isMasked) {\r\n this.textSpans[cnt] = tParent;\r\n } else {\r\n this.textSpans[cnt] = tSpan;\r\n }\r\n this.textSpans[cnt].style.display = 'block';\r\n this.textPaths[cnt] = tSpan;\r\n cnt += 1;\r\n }\r\n while (cnt < this.textSpans.length) {\r\n this.textSpans[cnt].style.display = 'none';\r\n cnt += 1;\r\n }\r\n};\r\n\r\nHTextElement.prototype.renderInnerContent = function () {\r\n var svgStyle;\r\n if (this.data.singleShape) {\r\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\r\n return;\r\n } if (this.isMasked && this.finalTransform._matMdf) {\r\n // Todo Benchmark if using this is better than getBBox\r\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\r\n svgStyle = this.svgElement.style;\r\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\r\n svgStyle.transform = translation;\r\n svgStyle.webkitTransform = translation;\r\n }\r\n }\r\n\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\r\n return;\r\n }\r\n var i;\r\n var len;\r\n var count = 0;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var textPath;\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n count += 1;\r\n } else {\r\n textSpan = this.textSpans[i];\r\n textPath = this.textPaths[i];\r\n renderedLetter = renderedLetters[count];\r\n count += 1;\r\n if (renderedLetter._mdf.m) {\r\n if (!this.isMasked) {\r\n textSpan.style.webkitTransform = renderedLetter.m;\r\n textSpan.style.transform = renderedLetter.m;\r\n } else {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n }\r\n /// /textSpan.setAttribute('opacity',renderedLetter.o);\r\n textSpan.style.opacity = renderedLetter.o;\r\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\r\n textPath.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\r\n textPath.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\r\n textPath.setAttribute('fill', renderedLetter.fc);\r\n textPath.style.color = renderedLetter.fc;\r\n }\r\n }\r\n }\r\n\r\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var boundingBox = this.innerElem.getBBox();\r\n\r\n if (this.currentBBox.w !== boundingBox.width) {\r\n this.currentBBox.w = boundingBox.width;\r\n this.svgElement.setAttribute('width', boundingBox.width);\r\n }\r\n if (this.currentBBox.h !== boundingBox.height) {\r\n this.currentBBox.h = boundingBox.height;\r\n this.svgElement.setAttribute('height', boundingBox.height);\r\n }\r\n\r\n var margin = 1;\r\n if (this.currentBBox.w !== (boundingBox.width + margin * 2) || this.currentBBox.h !== (boundingBox.height + margin * 2) || this.currentBBox.x !== (boundingBox.x - margin) || this.currentBBox.y !== (boundingBox.y - margin)) {\r\n this.currentBBox.w = boundingBox.width + margin * 2;\r\n this.currentBBox.h = boundingBox.height + margin * 2;\r\n this.currentBBox.x = boundingBox.x - margin;\r\n this.currentBBox.y = boundingBox.y - margin;\r\n\r\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n svgStyle = this.svgElement.style;\r\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n svgStyle.transform = svgTransform;\r\n svgStyle.webkitTransform = svgTransform;\r\n }\r\n }\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement,\r\nFrameElement, RenderableElement, createNS */\r\n\r\nfunction HImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\r\n\r\nHImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n var img = new Image();\r\n\r\n if (this.data.hasMask) {\r\n this.imageElem = createNS('image');\r\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\r\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\r\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.imageElem);\r\n this.baseElement.setAttribute('width', this.assetData.w);\r\n this.baseElement.setAttribute('height', this.assetData.h);\r\n } else {\r\n this.layerElement.appendChild(img);\r\n }\r\n img.crossOrigin = 'anonymous';\r\n img.src = assetPath;\r\n if (this.data.ln) {\r\n this.baseElement.setAttribute('id', this.data.ln);\r\n }\r\n};\r\n\r\n/* global PropertyFactory, degToRads, Matrix, extendPrototype, BaseElement, FrameElement, HierarchyElement */\r\n\r\nfunction HCameraElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initHierarchy();\r\n var getProp = PropertyFactory.getProp;\r\n this.pe = getProp(this, data.pe, 0, 0, this);\r\n if (data.ks.p.s) {\r\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\r\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\r\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\r\n } else {\r\n this.p = getProp(this, data.ks.p, 1, 0, this);\r\n }\r\n if (data.ks.a) {\r\n this.a = getProp(this, data.ks.a, 1, 0, this);\r\n }\r\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\r\n var i;\r\n var len = data.ks.or.k.length;\r\n for (i = 0; i < len; i += 1) {\r\n data.ks.or.k[i].to = null;\r\n data.ks.or.k[i].ti = null;\r\n }\r\n }\r\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\r\n this.or.sh = true;\r\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\r\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\r\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\r\n this.mat = new Matrix();\r\n this._prevMat = new Matrix();\r\n this._isFirstFrame = true;\r\n\r\n // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\r\n this.finalTransform = {\r\n mProp: this,\r\n };\r\n}\r\nextendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\r\n\r\nHCameraElement.prototype.setup = function () {\r\n var i;\r\n var len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n for (i = 0; i < len; i += 1) {\r\n // [perspectiveElem,container]\r\n comp = this.comp.threeDElements[i];\r\n if (comp.type === '3d') {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n containerStyle = comp.container.style;\r\n var perspective = this.pe.v + 'px';\r\n var origin = '0px 0px 0px';\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n perspectiveStyle.perspective = perspective;\r\n perspectiveStyle.webkitPerspective = perspective;\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n perspectiveStyle.transform = matrix;\r\n perspectiveStyle.webkitTransform = matrix;\r\n }\r\n }\r\n};\r\n\r\nHCameraElement.prototype.createElements = function () {\r\n};\r\n\r\nHCameraElement.prototype.hide = function () {\r\n};\r\n\r\nHCameraElement.prototype.renderFrame = function () {\r\n var _mdf = this._isFirstFrame;\r\n var i;\r\n var len;\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\r\n }\r\n }\r\n if (_mdf || this.pe._mdf || (this.p && this.p._mdf) || (this.px && (this.px._mdf || this.py._mdf || this.pz._mdf)) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || (this.a && this.a._mdf)) {\r\n this.mat.reset();\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length - 1;\r\n for (i = len; i >= 0; i -= 1) {\r\n var mTransf = this.hierarchy[i].finalTransform.mProp;\r\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\r\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\r\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\r\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\r\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\r\n }\r\n }\r\n if (this.p) {\r\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\r\n } else {\r\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\r\n }\r\n if (this.a) {\r\n var diffVector;\r\n if (this.p) {\r\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\r\n } else {\r\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\r\n }\r\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2));\r\n // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\r\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\r\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\r\n var mRotationX = (Math.atan2(lookDir[1], lookLengthOnXZ));\r\n var mRotationY = (Math.atan2(lookDir[0], -lookDir[2]));\r\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\r\n }\r\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\r\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\r\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\r\n this.mat.translate(0, 0, this.pe.v);\r\n\r\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\r\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\r\n len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n for (i = 0; i < len; i += 1) {\r\n comp = this.comp.threeDElements[i];\r\n if (comp.type === '3d') {\r\n if (hasMatrixChanged) {\r\n var matValue = this.mat.toCSS();\r\n containerStyle = comp.container.style;\r\n containerStyle.transform = matValue;\r\n containerStyle.webkitTransform = matValue;\r\n }\r\n if (this.pe._mdf) {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n perspectiveStyle.perspective = this.pe.v + 'px';\r\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\r\n }\r\n }\r\n }\r\n this.mat.clone(this._prevMat);\r\n }\r\n }\r\n this._isFirstFrame = false;\r\n};\r\n\r\nHCameraElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n};\r\n\r\nHCameraElement.prototype.destroy = function () {\r\n};\r\nHCameraElement.prototype.getBaseElement = function () { return null; };\r\n\r\nfunction HEffects() {\r\n}\r\nHEffects.prototype.renderFrame = function () {};\r\n\r\n/* global createTag, AnimationItem */\r\n/* exported animationManager */\r\n\r\nvar animationManager = (function () {\r\n var moduleOb = {};\r\n var registeredAnimations = [];\r\n var initTime = 0;\r\n var len = 0;\r\n var playingAnimationsNum = 0;\r\n var _stopped = true;\r\n var _isFrozen = false;\r\n\r\n function removeElement(ev) {\r\n var i = 0;\r\n var animItem = ev.target;\r\n while (i < len) {\r\n if (registeredAnimations[i].animation === animItem) {\r\n registeredAnimations.splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n if (!animItem.isPaused) {\r\n subtractPlayingCount();\r\n }\r\n }\r\n i += 1;\r\n }\r\n }\r\n\r\n function registerAnimation(element, animationData) {\r\n if (!element) {\r\n return null;\r\n }\r\n var i = 0;\r\n while (i < len) {\r\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\r\n return registeredAnimations[i].animation;\r\n }\r\n i += 1;\r\n }\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, element);\r\n animItem.setData(element, animationData);\r\n return animItem;\r\n }\r\n\r\n function getRegisteredAnimations() {\r\n var i;\r\n var lenAnims = registeredAnimations.length;\r\n var animations = [];\r\n for (i = 0; i < lenAnims; i += 1) {\r\n animations.push(registeredAnimations[i].animation);\r\n }\r\n return animations;\r\n }\r\n\r\n function addPlayingCount() {\r\n playingAnimationsNum += 1;\r\n activate();\r\n }\r\n\r\n function subtractPlayingCount() {\r\n playingAnimationsNum -= 1;\r\n }\r\n\r\n function setupAnimation(animItem, element) {\r\n animItem.addEventListener('destroy', removeElement);\r\n animItem.addEventListener('_active', addPlayingCount);\r\n animItem.addEventListener('_idle', subtractPlayingCount);\r\n registeredAnimations.push({ elem: element, animation: animItem });\r\n len += 1;\r\n }\r\n\r\n function loadAnimation(params) {\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, null);\r\n animItem.setParams(params);\r\n return animItem;\r\n }\r\n\r\n function setSpeed(val, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setSpeed(val, animation);\r\n }\r\n }\r\n\r\n function setDirection(val, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setDirection(val, animation);\r\n }\r\n }\r\n\r\n function play(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.play(animation);\r\n }\r\n }\r\n function resume(nowTime) {\r\n var elapsedTime = nowTime - initTime;\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.advanceTime(elapsedTime);\r\n }\r\n initTime = nowTime;\r\n if (playingAnimationsNum && !_isFrozen) {\r\n window.requestAnimationFrame(resume);\r\n } else {\r\n _stopped = true;\r\n }\r\n }\r\n\r\n function first(nowTime) {\r\n initTime = nowTime;\r\n window.requestAnimationFrame(resume);\r\n }\r\n\r\n function pause(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.pause(animation);\r\n }\r\n }\r\n\r\n function goToAndStop(value, isFrame, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\r\n }\r\n }\r\n\r\n function stop(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.stop(animation);\r\n }\r\n }\r\n\r\n function togglePause(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.togglePause(animation);\r\n }\r\n }\r\n\r\n function destroy(animation) {\r\n var i;\r\n for (i = (len - 1); i >= 0; i -= 1) {\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer) {\r\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')),\r\n [].slice.call(document.getElementsByClassName('bodymovin')));\r\n var i;\r\n var lenAnims = animElements.length;\r\n for (i = 0; i < lenAnims; i += 1) {\r\n if (renderer) {\r\n animElements[i].setAttribute('data-bm-type', renderer);\r\n }\r\n registerAnimation(animElements[i], animationData);\r\n }\r\n if (standalone && lenAnims === 0) {\r\n if (!renderer) {\r\n renderer = 'svg';\r\n }\r\n var body = document.getElementsByTagName('body')[0];\r\n body.innerText = '';\r\n var div = createTag('div');\r\n div.style.width = '100%';\r\n div.style.height = '100%';\r\n div.setAttribute('data-bm-type', renderer);\r\n body.appendChild(div);\r\n registerAnimation(div, animationData);\r\n }\r\n }\r\n\r\n function resize() {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.resize();\r\n }\r\n }\r\n\r\n function activate() {\r\n if (!_isFrozen && playingAnimationsNum) {\r\n if (_stopped) {\r\n window.requestAnimationFrame(first);\r\n _stopped = false;\r\n }\r\n }\r\n }\r\n\r\n function freeze() {\r\n _isFrozen = true;\r\n }\r\n\r\n function unfreeze() {\r\n _isFrozen = false;\r\n activate();\r\n }\r\n\r\n function setVolume(val, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setVolume(val, animation);\r\n }\r\n }\r\n\r\n function mute(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.mute(animation);\r\n }\r\n }\r\n\r\n function unmute(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.unmute(animation);\r\n }\r\n }\r\n\r\n moduleOb.registerAnimation = registerAnimation;\r\n moduleOb.loadAnimation = loadAnimation;\r\n moduleOb.setSpeed = setSpeed;\r\n moduleOb.setDirection = setDirection;\r\n moduleOb.play = play;\r\n moduleOb.pause = pause;\r\n moduleOb.stop = stop;\r\n moduleOb.togglePause = togglePause;\r\n moduleOb.searchAnimations = searchAnimations;\r\n moduleOb.resize = resize;\r\n // moduleOb.start = start;\r\n moduleOb.goToAndStop = goToAndStop;\r\n moduleOb.destroy = destroy;\r\n moduleOb.freeze = freeze;\r\n moduleOb.unfreeze = unfreeze;\r\n moduleOb.setVolume = setVolume;\r\n moduleOb.mute = mute;\r\n moduleOb.unmute = unmute;\r\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\r\n return moduleOb;\r\n}());\r\n\r\n/* global createElementID, subframeEnabled, ProjectInterface, ImagePreloader, audioControllerFactory, extendPrototype, BaseEvent,\r\nCanvasRenderer, SVGRenderer, HybridRenderer, dataManager, expressionsPlugin, BMEnterFrameEvent, BMCompleteLoopEvent,\r\nBMCompleteEvent, BMSegmentStartEvent, BMDestroyEvent, BMEnterFrameEvent, BMCompleteLoopEvent, BMCompleteEvent, BMSegmentStartEvent,\r\nBMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, markerParser */\r\n\r\nvar AnimationItem = function () {\r\n this._cbs = [];\r\n this.name = '';\r\n this.path = '';\r\n this.isLoaded = false;\r\n this.currentFrame = 0;\r\n this.currentRawFrame = 0;\r\n this.firstFrame = 0;\r\n this.totalFrames = 0;\r\n this.frameRate = 0;\r\n this.frameMult = 0;\r\n this.playSpeed = 1;\r\n this.playDirection = 1;\r\n this.playCount = 0;\r\n this.animationData = {};\r\n this.assets = [];\r\n this.isPaused = true;\r\n this.autoplay = false;\r\n this.loop = true;\r\n this.renderer = null;\r\n this.animationID = createElementID();\r\n this.assetsPath = '';\r\n this.timeCompleted = 0;\r\n this.segmentPos = 0;\r\n this.isSubframeEnabled = subframeEnabled;\r\n this.segments = [];\r\n this._idle = true;\r\n this._completedLoop = false;\r\n this.projectInterface = ProjectInterface();\r\n this.imagePreloader = new ImagePreloader();\r\n this.audioController = audioControllerFactory();\r\n this.markers = [];\r\n this.configAnimation = this.configAnimation.bind(this);\r\n this.onSetupError = this.onSetupError.bind(this);\r\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\r\n};\r\n\r\nextendPrototype([BaseEvent], AnimationItem);\r\n\r\nAnimationItem.prototype.setParams = function (params) {\r\n if (params.wrapper || params.container) {\r\n this.wrapper = params.wrapper || params.container;\r\n }\r\n var animType = 'svg';\r\n if (params.animType) {\r\n animType = params.animType;\r\n } else if (params.renderer) {\r\n animType = params.renderer;\r\n }\r\n switch (animType) {\r\n case 'canvas':\r\n this.renderer = new CanvasRenderer(this, params.rendererSettings);\r\n break;\r\n case 'svg':\r\n this.renderer = new SVGRenderer(this, params.rendererSettings);\r\n break;\r\n default:\r\n this.renderer = new HybridRenderer(this, params.rendererSettings);\r\n break;\r\n }\r\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\r\n this.renderer.setProjectInterface(this.projectInterface);\r\n this.animType = animType;\r\n if (params.loop === ''\r\n || params.loop === null\r\n || params.loop === undefined\r\n || params.loop === true) {\r\n this.loop = true;\r\n } else if (params.loop === false) {\r\n this.loop = false;\r\n } else {\r\n this.loop = parseInt(params.loop, 10);\r\n }\r\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\r\n this.name = params.name ? params.name : '';\r\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\r\n this.assetsPath = params.assetsPath;\r\n this.initialSegment = params.initialSegment;\r\n if (params.audioFactory) {\r\n this.audioController.setAudioFactory(params.audioFactory);\r\n }\r\n if (params.animationData) {\r\n this.setupAnimation(params.animationData);\r\n } else if (params.path) {\r\n if (params.path.lastIndexOf('\\\\') !== -1) {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\r\n } else {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\r\n }\r\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\r\n dataManager.loadAnimation(\r\n params.path,\r\n this.configAnimation,\r\n this.onSetupError\r\n );\r\n }\r\n};\r\n\r\nAnimationItem.prototype.onSetupError = function () {\r\n this.trigger('data_failed');\r\n};\r\n\r\nAnimationItem.prototype.setupAnimation = function (data) {\r\n dataManager.completeAnimation(\r\n data,\r\n this.configAnimation\r\n );\r\n};\r\n\r\nAnimationItem.prototype.setData = function (wrapper, animationData) {\r\n if (animationData) {\r\n if (typeof animationData !== 'object') {\r\n animationData = JSON.parse(animationData);\r\n }\r\n }\r\n var params = {\r\n wrapper: wrapper,\r\n animationData: animationData,\r\n };\r\n var wrapperAttributes = wrapper.attributes;\r\n\r\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-animation-path').value\r\n : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-path').value\r\n : wrapperAttributes.getNamedItem('bm-path')\r\n ? wrapperAttributes.getNamedItem('bm-path').value\r\n : '';\r\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-type').value\r\n : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-type').value\r\n : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('bm-type').value\r\n : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value\r\n : wrapperAttributes.getNamedItem('bm-renderer')\r\n ? wrapperAttributes.getNamedItem('bm-renderer').value\r\n : 'canvas';\r\n\r\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-loop').value\r\n : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-loop').value\r\n : wrapperAttributes.getNamedItem('bm-loop')\r\n ? wrapperAttributes.getNamedItem('bm-loop').value\r\n : '';\r\n if (loop === 'false') {\r\n params.loop = false;\r\n } else if (loop === 'true') {\r\n params.loop = true;\r\n } else if (loop !== '') {\r\n params.loop = parseInt(loop, 10);\r\n }\r\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value\r\n : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value\r\n : wrapperAttributes.getNamedItem('bm-autoplay')\r\n ? wrapperAttributes.getNamedItem('bm-autoplay').value\r\n : true;\r\n params.autoplay = autoplay !== 'false';\r\n\r\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-name').value\r\n : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-name').value\r\n : wrapperAttributes.getNamedItem('bm-name')\r\n ? wrapperAttributes.getNamedItem('bm-name').value\r\n : '';\r\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value\r\n : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value\r\n : wrapperAttributes.getNamedItem('bm-prerender')\r\n ? wrapperAttributes.getNamedItem('bm-prerender').value\r\n : '';\r\n\r\n if (prerender === 'false') {\r\n params.prerender = false;\r\n }\r\n this.setParams(params);\r\n};\r\n\r\nAnimationItem.prototype.includeLayers = function (data) {\r\n if (data.op > this.animationData.op) {\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n }\r\n var layers = this.animationData.layers;\r\n var i;\r\n var len = layers.length;\r\n var newLayers = data.layers;\r\n var j;\r\n var jLen = newLayers.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n i = 0;\r\n while (i < len) {\r\n if (layers[i].id === newLayers[j].id) {\r\n layers[i] = newLayers[j];\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n if (data.chars || data.fonts) {\r\n this.renderer.globalData.fontManager.addChars(data.chars);\r\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\r\n }\r\n if (data.assets) {\r\n len = data.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.animationData.assets.push(data.assets[i]);\r\n }\r\n }\r\n this.animationData.__complete = false;\r\n dataManager.completeAnimation(\r\n this.animationData,\r\n this.onSegmentComplete\r\n );\r\n};\r\n\r\nAnimationItem.prototype.onSegmentComplete = function (data) {\r\n this.animationData = data;\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n this.loadNextSegment();\r\n};\r\n\r\nAnimationItem.prototype.loadNextSegment = function () {\r\n var segments = this.animationData.segments;\r\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\r\n this.trigger('data_ready');\r\n this.timeCompleted = this.totalFrames;\r\n return;\r\n }\r\n var segment = segments.shift();\r\n this.timeCompleted = segment.time * this.frameRate;\r\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\r\n this.segmentPos += 1;\r\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\r\n this.trigger('data_failed');\r\n }.bind(this));\r\n};\r\n\r\nAnimationItem.prototype.loadSegments = function () {\r\n var segments = this.animationData.segments;\r\n if (!segments) {\r\n this.timeCompleted = this.totalFrames;\r\n }\r\n this.loadNextSegment();\r\n};\r\n\r\nAnimationItem.prototype.imagesLoaded = function () {\r\n this.trigger('loaded_images');\r\n this.checkLoaded();\r\n};\r\n\r\nAnimationItem.prototype.preloadImages = function () {\r\n this.imagePreloader.setAssetsPath(this.assetsPath);\r\n this.imagePreloader.setPath(this.path);\r\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\r\n};\r\n\r\nAnimationItem.prototype.configAnimation = function (animData) {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n try {\r\n this.animationData = animData;\r\n if (this.initialSegment) {\r\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\r\n this.firstFrame = Math.round(this.initialSegment[0]);\r\n } else {\r\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\r\n this.firstFrame = Math.round(this.animationData.ip);\r\n }\r\n this.renderer.configAnimation(animData);\r\n if (!animData.assets) {\r\n animData.assets = [];\r\n }\r\n\r\n this.assets = this.animationData.assets;\r\n this.frameRate = this.animationData.fr;\r\n this.frameMult = this.animationData.fr / 1000;\r\n this.renderer.searchExtraCompositions(animData.assets);\r\n this.markers = markerParser(animData.markers || []);\r\n this.trigger('config_ready');\r\n this.preloadImages();\r\n this.loadSegments();\r\n this.updaFrameModifier();\r\n this.waitForFontsLoaded();\r\n if (this.isPaused) {\r\n this.audioController.pause();\r\n }\r\n } catch (error) {\r\n this.triggerConfigError(error);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.waitForFontsLoaded = function () {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n if (this.renderer.globalData.fontManager.isLoaded) {\r\n this.checkLoaded();\r\n } else {\r\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.checkLoaded = function () {\r\n if (!this.isLoaded\r\n && this.renderer.globalData.fontManager.isLoaded\r\n && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas')\r\n && (this.imagePreloader.loadedFootages())\r\n ) {\r\n this.isLoaded = true;\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n this.renderer.initItems();\r\n setTimeout(function () {\r\n this.trigger('DOMLoaded');\r\n }.bind(this), 0);\r\n this.gotoFrame();\r\n if (this.autoplay) {\r\n this.play();\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.resize = function () {\r\n this.renderer.updateContainerSize();\r\n};\r\n\r\nAnimationItem.prototype.setSubframe = function (flag) {\r\n this.isSubframeEnabled = !!flag;\r\n};\r\n\r\nAnimationItem.prototype.gotoFrame = function () {\r\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\r\n\r\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n this.trigger('drawnFrame');\r\n};\r\n\r\nAnimationItem.prototype.renderFrame = function () {\r\n if (this.isLoaded === false || !this.renderer) {\r\n return;\r\n }\r\n try {\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n } catch (error) {\r\n this.triggerRenderFrameError(error);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.play = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === true) {\r\n this.isPaused = false;\r\n this.audioController.resume();\r\n if (this._idle) {\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.pause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === false) {\r\n this.isPaused = true;\r\n this._idle = true;\r\n this.trigger('_idle');\r\n this.audioController.pause();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.togglePause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === true) {\r\n this.play();\r\n } else {\r\n this.pause();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.stop = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.pause();\r\n this.playCount = 0;\r\n this._completedLoop = false;\r\n this.setCurrentRawFrameValue(0);\r\n};\r\n\r\nAnimationItem.prototype.getMarkerData = function (markerName) {\r\n var marker;\r\n for (var i = 0; i < this.markers.length; i += 1) {\r\n marker = this.markers[i];\r\n if (marker.payload && marker.payload.name === markerName) {\r\n return marker;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nAnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n var numValue = Number(value);\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n if (marker) {\r\n this.goToAndStop(marker.time, true);\r\n }\r\n } else if (isFrame) {\r\n this.setCurrentRawFrameValue(value);\r\n } else {\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n this.pause();\r\n};\r\n\r\nAnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n var numValue = Number(value);\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n if (marker) {\r\n if (!marker.duration) {\r\n this.goToAndStop(marker.time, true);\r\n } else {\r\n this.playSegments([marker.time, marker.time + marker.duration], true);\r\n }\r\n }\r\n } else {\r\n this.goToAndStop(numValue, isFrame, name);\r\n }\r\n this.play();\r\n};\r\n\r\nAnimationItem.prototype.advanceTime = function (value) {\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n var nextValue = this.currentRawFrame + value * this.frameModifier;\r\n var _isComplete = false;\r\n // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\r\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\r\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\r\n if (!this.loop || this.playCount === this.loop) {\r\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\r\n _isComplete = true;\r\n nextValue = this.totalFrames - 1;\r\n }\r\n } else if (nextValue >= this.totalFrames) {\r\n this.playCount += 1;\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\r\n this._completedLoop = true;\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n } else if (nextValue < 0) {\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) { // eslint-disable-line no-plusplus\r\n this.setCurrentRawFrameValue(this.totalFrames + (nextValue % this.totalFrames));\r\n if (!this._completedLoop) {\r\n this._completedLoop = true;\r\n } else {\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n _isComplete = true;\r\n nextValue = 0;\r\n }\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n if (_isComplete) {\r\n this.setCurrentRawFrameValue(nextValue);\r\n this.pause();\r\n this.trigger('complete');\r\n }\r\n};\r\n\r\nAnimationItem.prototype.adjustSegment = function (arr, offset) {\r\n this.playCount = 0;\r\n if (arr[1] < arr[0]) {\r\n if (this.frameModifier > 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n this.totalFrames = arr[0] - arr[1];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\r\n } else if (arr[1] > arr[0]) {\r\n if (this.frameModifier < 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n this.totalFrames = arr[1] - arr[0];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0.001 + offset);\r\n }\r\n this.trigger('segmentStart');\r\n};\r\nAnimationItem.prototype.setSegment = function (init, end) {\r\n var pendingFrame = -1;\r\n if (this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.totalFrames = end - init;\r\n this.timeCompleted = this.totalFrames;\r\n if (pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame, true);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.playSegments = function (arr, forceFlag) {\r\n if (forceFlag) {\r\n this.segments.length = 0;\r\n }\r\n if (typeof arr[0] === 'object') {\r\n var i;\r\n var len = arr.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.segments.push(arr[i]);\r\n }\r\n } else {\r\n this.segments.push(arr);\r\n }\r\n if (this.segments.length && forceFlag) {\r\n this.adjustSegment(this.segments.shift(), 0);\r\n }\r\n if (this.isPaused) {\r\n this.play();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.resetSegments = function (forceFlag) {\r\n this.segments.length = 0;\r\n this.segments.push([this.animationData.ip, this.animationData.op]);\r\n if (forceFlag) {\r\n this.checkSegments(0);\r\n }\r\n};\r\nAnimationItem.prototype.checkSegments = function (offset) {\r\n if (this.segments.length) {\r\n this.adjustSegment(this.segments.shift(), offset);\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nAnimationItem.prototype.destroy = function (name) {\r\n if ((name && this.name !== name) || !this.renderer) {\r\n return;\r\n }\r\n this.renderer.destroy();\r\n this.imagePreloader.destroy();\r\n this.trigger('destroy');\r\n this._cbs = null;\r\n this.onEnterFrame = null;\r\n this.onLoopComplete = null;\r\n this.onComplete = null;\r\n this.onSegmentStart = null;\r\n this.onDestroy = null;\r\n this.renderer = null;\r\n this.renderer = null;\r\n this.imagePreloader = null;\r\n this.projectInterface = null;\r\n};\r\n\r\nAnimationItem.prototype.setCurrentRawFrameValue = function (value) {\r\n this.currentRawFrame = value;\r\n this.gotoFrame();\r\n};\r\n\r\nAnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setVolume = function (val, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.setVolume(val);\r\n};\r\n\r\nAnimationItem.prototype.getVolume = function () {\r\n return this.audioController.getVolume();\r\n};\r\n\r\nAnimationItem.prototype.mute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.mute();\r\n};\r\n\r\nAnimationItem.prototype.unmute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.unmute();\r\n};\r\n\r\nAnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n this.audioController.setRate(this.playSpeed * this.playDirection);\r\n};\r\n\r\nAnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (this.assetsPath) {\r\n var imagePath = assetData.p;\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n return path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0;\r\n var len = this.assets.length;\r\n while (i < len) {\r\n if (id === this.assets[i].id) {\r\n return this.assets[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nAnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n};\r\n\r\nAnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n};\r\n\r\nAnimationItem.prototype.getDuration = function (isFrame) {\r\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\r\n};\r\n\r\nAnimationItem.prototype.trigger = function (name) {\r\n if (this._cbs && this._cbs[name]) {\r\n switch (name) {\r\n case 'enterFrame':\r\n case 'drawnFrame':\r\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\r\n break;\r\n case 'loopComplete':\r\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n break;\r\n case 'complete':\r\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\r\n break;\r\n case 'segmentStart':\r\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n break;\r\n case 'destroy':\r\n this.triggerEvent(name, new BMDestroyEvent(name, this));\r\n break;\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n if (name === 'enterFrame' && this.onEnterFrame) {\r\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\r\n }\r\n if (name === 'loopComplete' && this.onLoopComplete) {\r\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n }\r\n if (name === 'complete' && this.onComplete) {\r\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\r\n }\r\n if (name === 'segmentStart' && this.onSegmentStart) {\r\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n }\r\n if (name === 'destroy' && this.onDestroy) {\r\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\r\n }\r\n};\r\n\r\nAnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\r\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.triggerConfigError = function (nativeError) {\r\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n};\r\n\r\n/* global CompExpressionInterface, expressionsPlugin: writable */\r\n/* exported expressionsPlugin */\r\n\r\nvar Expressions = (function () {\r\n var ob = {};\r\n ob.initExpressions = initExpressions;\r\n\r\n function initExpressions(animation) {\r\n var stackCount = 0;\r\n var registers = [];\r\n\r\n function pushExpression() {\r\n stackCount += 1;\r\n }\r\n\r\n function popExpression() {\r\n stackCount -= 1;\r\n if (stackCount === 0) {\r\n releaseInstances();\r\n }\r\n }\r\n\r\n function registerExpressionProperty(expression) {\r\n if (registers.indexOf(expression) === -1) {\r\n registers.push(expression);\r\n }\r\n }\r\n\r\n function releaseInstances() {\r\n var i;\r\n var len = registers.length;\r\n for (i = 0; i < len; i += 1) {\r\n registers[i].release();\r\n }\r\n registers.length = 0;\r\n }\r\n\r\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\r\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\r\n animation.renderer.globalData.pushExpression = pushExpression;\r\n animation.renderer.globalData.popExpression = popExpression;\r\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\r\n }\r\n return ob;\r\n}());\r\n\r\nexpressionsPlugin = Expressions;\r\n\r\n/* eslint-disable camelcase, no-unused-vars */\r\n/* global BMMath, BezierFactory, createTypedArray, degToRads, shapePool */\r\n\r\nvar ExpressionManager = (function () {\r\n 'use strict';\r\n\r\n var ob = {};\r\n var Math = BMMath;\r\n var window = null;\r\n var document = null;\r\n var XMLHttpRequest = null;\r\n var fetch = null;\r\n var frames = null;\r\n\r\n function $bm_isInstanceOfArray(arr) {\r\n return arr.constructor === Array || arr.constructor === Float32Array;\r\n }\r\n\r\n function isNumerable(tOfV, v) {\r\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\r\n }\r\n\r\n function $bm_neg(a) {\r\n var tOfA = typeof a;\r\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\r\n return -a;\r\n }\r\n if ($bm_isInstanceOfArray(a)) {\r\n var i;\r\n var lenA = a.length;\r\n var retArr = [];\r\n for (i = 0; i < lenA; i += 1) {\r\n retArr[i] = -a[i];\r\n }\r\n return retArr;\r\n }\r\n if (a.propType) {\r\n return a.v;\r\n }\r\n return -a;\r\n }\r\n\r\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\r\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\r\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\r\n\r\n function sum(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n if (tOfA === 'string' || tOfB === 'string') {\r\n return a + b;\r\n }\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a + b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] += b;\r\n return a;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a + b[0];\r\n return b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] + b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n i += 1;\r\n }\r\n return retArr;\r\n }\r\n return 0;\r\n }\r\n var add = sum;\r\n\r\n function sub(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n if (tOfA === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n if (tOfB === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n return a - b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] -= b;\r\n return a;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a - b[0];\r\n return b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] - b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n i += 1;\r\n }\r\n return retArr;\r\n }\r\n return 0;\r\n }\r\n\r\n function mul(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n var arr;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a * b;\r\n }\r\n\r\n var i;\r\n var len;\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] * b;\r\n }\r\n return arr;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a * b[i];\r\n }\r\n return arr;\r\n }\r\n return 0;\r\n }\r\n\r\n function div(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n var arr;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a / b;\r\n }\r\n var i;\r\n var len;\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] / b;\r\n }\r\n return arr;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a / b[i];\r\n }\r\n return arr;\r\n }\r\n return 0;\r\n }\r\n function mod(a, b) {\r\n if (typeof a === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n if (typeof b === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n return a % b;\r\n }\r\n var $bm_sum = sum;\r\n var $bm_sub = sub;\r\n var $bm_mul = mul;\r\n var $bm_div = div;\r\n var $bm_mod = mod;\r\n\r\n function clamp(num, min, max) {\r\n if (min > max) {\r\n var mm = max;\r\n max = min;\r\n min = mm;\r\n }\r\n return Math.min(Math.max(num, min), max);\r\n }\r\n\r\n function radiansToDegrees(val) {\r\n return val / degToRads;\r\n }\r\n var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val * degToRads;\r\n }\r\n var degrees_to_radians = radiansToDegrees;\r\n\r\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\r\n\r\n function length(arr1, arr2) {\r\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\r\n arr2 = arr2 || 0;\r\n return Math.abs(arr1 - arr2);\r\n }\r\n if (!arr2) {\r\n arr2 = helperLengthArray;\r\n }\r\n var i;\r\n var len = Math.min(arr1.length, arr2.length);\r\n var addedLength = 0;\r\n for (i = 0; i < len; i += 1) {\r\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\r\n }\r\n return Math.sqrt(addedLength);\r\n }\r\n\r\n function normalize(vec) {\r\n return div(vec, length(vec));\r\n }\r\n\r\n function rgbToHsl(val) {\r\n var r = val[0]; var g = val[1]; var b = val[2];\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var h;\r\n var s;\r\n var l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = 0; // achromatic\r\n s = 0; // achromatic\r\n } else {\r\n var d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n switch (max) {\r\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\r\n case g: h = (b - r) / d + 2; break;\r\n case b: h = (r - g) / d + 4; break;\r\n default: break;\r\n }\r\n h /= 6;\r\n }\r\n\r\n return [h, s, l, val[3]];\r\n }\r\n\r\n function hue2rgb(p, q, t) {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n }\r\n\r\n function hslToRgb(val) {\r\n var h = val[0];\r\n var s = val[1];\r\n var l = val[2];\r\n\r\n var r;\r\n var g;\r\n var b;\r\n\r\n if (s === 0) {\r\n r = l; // achromatic\r\n b = l; // achromatic\r\n g = l; // achromatic\r\n } else {\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\r\n\r\n return [r, g, b, val[3]];\r\n }\r\n\r\n function linear(t, tMin, tMax, value1, value2) {\r\n if (value1 === undefined || value2 === undefined) {\r\n value1 = tMin;\r\n value2 = tMax;\r\n tMin = 0;\r\n tMax = 1;\r\n }\r\n if (tMax < tMin) {\r\n var _tMin = tMax;\r\n tMax = tMin;\r\n tMin = _tMin;\r\n }\r\n if (t <= tMin) {\r\n return value1;\r\n } if (t >= tMax) {\r\n return value2;\r\n }\r\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\r\n if (!value1.length) {\r\n return value1 + (value2 - value1) * perc;\r\n }\r\n var i;\r\n var len = value1.length;\r\n var arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\r\n }\r\n return arr;\r\n }\r\n function random(min, max) {\r\n if (max === undefined) {\r\n if (min === undefined) {\r\n min = 0;\r\n max = 1;\r\n } else {\r\n max = min;\r\n min = undefined;\r\n }\r\n }\r\n if (max.length) {\r\n var i;\r\n var len = max.length;\r\n if (!min) {\r\n min = createTypedArray('float32', len);\r\n }\r\n var arr = createTypedArray('float32', len);\r\n var rnd = BMMath.random();\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = min[i] + rnd * (max[i] - min[i]);\r\n }\r\n return arr;\r\n }\r\n if (min === undefined) {\r\n min = 0;\r\n }\r\n var rndm = BMMath.random();\r\n return min + rndm * (max - min);\r\n }\r\n\r\n function createPath(points, inTangents, outTangents, closed) {\r\n var i;\r\n var len = points.length;\r\n var path = shapePool.newElement();\r\n path.setPathData(!!closed, len);\r\n var arrPlaceholder = [0, 0];\r\n var inVertexPoint;\r\n var outVertexPoint;\r\n for (i = 0; i < len; i += 1) {\r\n inVertexPoint = (inTangents && inTangents[i]) ? inTangents[i] : arrPlaceholder;\r\n outVertexPoint = (outTangents && outTangents[i]) ? outTangents[i] : arrPlaceholder;\r\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\r\n }\r\n return path;\r\n }\r\n\r\n function initiateExpression(elem, data, property) {\r\n var val = data.x;\r\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\r\n var _needsRandom = val.indexOf('random') !== -1;\r\n var elemType = elem.data.ty;\r\n var transform;\r\n var $bm_transform;\r\n var content;\r\n var effect;\r\n var thisProperty = property;\r\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\r\n Object.defineProperty(thisProperty, 'value', {\r\n get: function () {\r\n return thisProperty.v;\r\n },\r\n });\r\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\r\n elem.comp.displayStartTime = 0;\r\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n var width = elem.data.sw ? elem.data.sw : 0;\r\n var height = elem.data.sh ? elem.data.sh : 0;\r\n var name = elem.data.nm;\r\n var loopIn;\r\n var loop_in;\r\n var loopOut;\r\n var loop_out;\r\n var smooth;\r\n var toWorld;\r\n var fromWorld;\r\n var fromComp;\r\n var toComp;\r\n var fromCompToSurface;\r\n var position;\r\n var rotation;\r\n var anchorPoint;\r\n var scale;\r\n var thisLayer;\r\n var thisComp;\r\n var mask;\r\n var valueAtTime;\r\n var velocityAtTime;\r\n\r\n var scoped_bm_rt;\r\n // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\r\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\r\n var numKeys = property.kf ? data.k.length : 0;\r\n\r\n var active = !this.data || this.data.hd !== true;\r\n\r\n var wiggle = function wiggle(freq, amp) {\r\n var iWiggle;\r\n var j;\r\n var lenWiggle = this.pv.length ? this.pv.length : 1;\r\n var addedAmps = createTypedArray('float32', lenWiggle);\r\n freq = 5;\r\n var iterations = Math.floor(time * freq);\r\n iWiggle = 0;\r\n j = 0;\r\n while (iWiggle < iterations) {\r\n // var rnd = BMMath.random();\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n addedAmps[j] += -amp + amp * 2 * BMMath.random();\r\n // addedAmps[j] += -amp + amp*2*rnd;\r\n }\r\n iWiggle += 1;\r\n }\r\n // var rnd2 = BMMath.random();\r\n var periods = time * freq;\r\n var perc = periods - Math.floor(periods);\r\n var arr = createTypedArray('float32', lenWiggle);\r\n if (lenWiggle > 1) {\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\r\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\r\n }\r\n return arr;\r\n }\r\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n }.bind(this);\r\n\r\n if (thisProperty.loopIn) {\r\n loopIn = thisProperty.loopIn.bind(thisProperty);\r\n loop_in = loopIn;\r\n }\r\n\r\n if (thisProperty.loopOut) {\r\n loopOut = thisProperty.loopOut.bind(thisProperty);\r\n loop_out = loopOut;\r\n }\r\n\r\n if (thisProperty.smooth) {\r\n smooth = thisProperty.smooth.bind(thisProperty);\r\n }\r\n\r\n function loopInDuration(type, duration) {\r\n return loopIn(type, duration, true);\r\n }\r\n\r\n function loopOutDuration(type, duration) {\r\n return loopOut(type, duration, true);\r\n }\r\n\r\n if (this.getValueAtTime) {\r\n valueAtTime = this.getValueAtTime.bind(this);\r\n }\r\n\r\n if (this.getVelocityAtTime) {\r\n velocityAtTime = this.getVelocityAtTime.bind(this);\r\n }\r\n\r\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\r\n\r\n function lookAt(elem1, elem2) {\r\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\r\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\r\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\r\n return [yaw, pitch, 0];\r\n }\r\n\r\n function easeOut(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function easeIn(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function ease(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function applyEase(fn, t, tMin, tMax, val1, val2) {\r\n if (val1 === undefined) {\r\n val1 = tMin;\r\n val2 = tMax;\r\n } else {\r\n t = (t - tMin) / (tMax - tMin);\r\n }\r\n if (t > 1) {\r\n t = 1;\r\n } else if (t < 0) {\r\n t = 0;\r\n }\r\n var mult = fn(t);\r\n if ($bm_isInstanceOfArray(val1)) {\r\n var iKey;\r\n var lenKey = val1.length;\r\n var arr = createTypedArray('float32', lenKey);\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\r\n }\r\n return arr;\r\n }\r\n return (val2 - val1) * mult + val1;\r\n }\r\n\r\n function nearestKey(time) {\r\n var iKey;\r\n var lenKey = data.k.length;\r\n var index;\r\n var keyTime;\r\n if (!data.k.length || typeof (data.k[0]) === 'number') {\r\n index = 0;\r\n keyTime = 0;\r\n } else {\r\n index = -1;\r\n time *= elem.comp.globalData.frameRate;\r\n if (time < data.k[0].t) {\r\n index = 1;\r\n keyTime = data.k[0].t;\r\n } else {\r\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\r\n if (time === data.k[iKey].t) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n break;\r\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\r\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\r\n index = iKey + 2;\r\n keyTime = data.k[iKey + 1].t;\r\n } else {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n break;\r\n }\r\n }\r\n if (index === -1) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n }\r\n }\r\n var obKey = {};\r\n obKey.index = index;\r\n obKey.time = keyTime / elem.comp.globalData.frameRate;\r\n return obKey;\r\n }\r\n\r\n function key(ind) {\r\n var obKey;\r\n var iKey;\r\n var lenKey;\r\n if (!data.k.length || typeof (data.k[0]) === 'number') {\r\n throw new Error('The property has no keyframe at index ' + ind);\r\n }\r\n ind -= 1;\r\n obKey = {\r\n time: data.k[ind].t / elem.comp.globalData.frameRate,\r\n value: [],\r\n };\r\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\r\n\r\n lenKey = arr.length;\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n obKey[iKey] = arr[iKey];\r\n obKey.value[iKey] = arr[iKey];\r\n }\r\n return obKey;\r\n }\r\n\r\n function framesToTime(fr, fps) {\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n return fr / fps;\r\n }\r\n\r\n function timeToFrames(t, fps) {\r\n if (!t && t !== 0) {\r\n t = time;\r\n }\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n return t * fps;\r\n }\r\n\r\n function seedRandom(seed) {\r\n BMMath.seedrandom(randSeed + seed);\r\n }\r\n\r\n function sourceRectAtTime() {\r\n return elem.sourceRectAtTime();\r\n }\r\n\r\n function substring(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substring(init);\r\n }\r\n return value.substring(init, end);\r\n }\r\n return '';\r\n }\r\n\r\n function substr(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substr(init);\r\n }\r\n return value.substr(init, end);\r\n }\r\n return '';\r\n }\r\n\r\n function posterizeTime(framesPerSecond) {\r\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\r\n value = valueAtTime(time);\r\n }\r\n\r\n var time;\r\n var velocity;\r\n var value;\r\n var text;\r\n var textIndex;\r\n var textTotal;\r\n var selectorValue;\r\n var index = elem.data.ind;\r\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n var parent;\r\n var randSeed = Math.floor(Math.random() * 1000000);\r\n var globalData = elem.globalData;\r\n function executeExpression(_value) {\r\n // globalData.pushExpression();\r\n value = _value;\r\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\r\n return value;\r\n }\r\n if (this.propType === 'textSelector') {\r\n textIndex = this.textIndex;\r\n textTotal = this.textTotal;\r\n selectorValue = this.selectorValue;\r\n }\r\n if (!thisLayer) {\r\n text = elem.layerInterface.text;\r\n thisLayer = elem.layerInterface;\r\n thisComp = elem.comp.compInterface;\r\n toWorld = thisLayer.toWorld.bind(thisLayer);\r\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\r\n fromComp = thisLayer.fromComp.bind(thisLayer);\r\n toComp = thisLayer.toComp.bind(thisLayer);\r\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\r\n fromCompToSurface = fromComp;\r\n }\r\n if (!transform) {\r\n transform = elem.layerInterface('ADBE Transform Group');\r\n $bm_transform = transform;\r\n if (transform) {\r\n anchorPoint = transform.anchorPoint;\r\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\r\n }\r\n }\r\n\r\n if (elemType === 4 && !content) {\r\n content = thisLayer('ADBE Root Vectors Group');\r\n }\r\n if (!effect) {\r\n effect = thisLayer(4);\r\n }\r\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n if (hasParent && !parent) {\r\n parent = elem.hierarchy[0].layerInterface;\r\n }\r\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n if (_needsRandom) {\r\n seedRandom(randSeed + time);\r\n }\r\n if (needsVelocity) {\r\n velocity = velocityAtTime(time);\r\n }\r\n expression_function();\r\n this.frameExpressionId = elem.globalData.frameId;\r\n\r\n // TODO: Check if it's possible to return on ShapeInterface the .v value\r\n if (scoped_bm_rt.propType === 'shape') {\r\n scoped_bm_rt = scoped_bm_rt.v;\r\n }\r\n // globalData.popExpression();\r\n return scoped_bm_rt;\r\n }\r\n return executeExpression;\r\n }\r\n\r\n ob.initiateExpression = initiateExpression;\r\n return ob;\r\n}());\r\n\r\n/* global ExpressionManager, createTypedArray */\r\n/* exported expressionHelpers */\r\n\r\nvar expressionHelpers = (function () {\r\n function searchExpressions(elem, data, prop) {\r\n if (data.x) {\r\n prop.k = true;\r\n prop.x = true;\r\n prop.initiateExpression = ExpressionManager.initiateExpression;\r\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\r\n }\r\n }\r\n\r\n function getValueAtTime(frameNum) {\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n if (frameNum !== this._cachingAtTime.lastFrame) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\r\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\r\n this._cachingAtTime.lastFrame = frameNum;\r\n }\r\n return this._cachingAtTime.value;\r\n }\r\n\r\n function getSpeedAtTime(frameNum) {\r\n var delta = -0.01;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var speed = 0;\r\n if (v1.length) {\r\n var i;\r\n for (i = 0; i < v1.length; i += 1) {\r\n speed += Math.pow(v2[i] - v1[i], 2);\r\n }\r\n speed = Math.sqrt(speed) * 100;\r\n } else {\r\n speed = 0;\r\n }\r\n return speed;\r\n }\r\n\r\n function getVelocityAtTime(frameNum) {\r\n if (this.vel !== undefined) {\r\n return this.vel;\r\n }\r\n var delta = -0.001;\r\n // frameNum += this.elem.data.st;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var velocity;\r\n if (v1.length) {\r\n velocity = createTypedArray('float32', v1.length);\r\n var i;\r\n for (i = 0; i < v1.length; i += 1) {\r\n // removing frameRate\r\n // if needed, don't add it here\r\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\r\n velocity[i] = (v2[i] - v1[i]) / delta;\r\n }\r\n } else {\r\n velocity = (v2 - v1) / delta;\r\n }\r\n return velocity;\r\n }\r\n\r\n function getStaticValueAtTime() {\r\n return this.pv;\r\n }\r\n\r\n function setGroupProperty(propertyGroup) {\r\n this.propertyGroup = propertyGroup;\r\n }\r\n\r\n return {\r\n searchExpressions: searchExpressions,\r\n getSpeedAtTime: getSpeedAtTime,\r\n getVelocityAtTime: getVelocityAtTime,\r\n getValueAtTime: getValueAtTime,\r\n getStaticValueAtTime: getStaticValueAtTime,\r\n setGroupProperty: setGroupProperty,\r\n };\r\n}());\r\n\r\n/* global createTypedArray, Matrix, TransformPropertyFactory, expressionHelpers, PropertyFactory, expressionHelpers,\r\ninitialDefaultFrame, shapePool, ShapePropertyFactory, bez, extendPrototype, ExpressionManager, createSizedArray */\r\n\r\n(function addPropertyDecorator() {\r\n function loopOut(type, duration, durationFlag) {\r\n if (!this.k || !this.keyframes) {\r\n return this.pv;\r\n }\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\r\n if (currentFrame <= lastKeyFrame) {\r\n return this.pv;\r\n }\r\n var cycleDuration;\r\n var firstKeyFrame;\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\r\n } else {\r\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\r\n }\r\n firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n var i;\r\n var len;\r\n var ret;\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n if (iterations % 2 !== 0) {\r\n return this.getValueAtTime(((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\r\n }\r\n return ret;\r\n }\r\n return (endV - initV) * repeats + current;\r\n } else if (type === 'continue') {\r\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\r\n if (this.pv.length) {\r\n ret = new Array(lastValue.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\r\n }\r\n return ret;\r\n }\r\n return lastValue + (lastValue - nextLastValue) * (((currentFrame - lastKeyFrame)) / 0.001);\r\n }\r\n return this.getValueAtTime((((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n }\r\n\r\n function loopIn(type, duration, durationFlag) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var firstKeyFrame = keyframes[0].t;\r\n if (currentFrame >= firstKeyFrame) {\r\n return this.pv;\r\n }\r\n var cycleDuration;\r\n var lastKeyFrame;\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n lastKeyFrame = keyframes[duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\r\n } else {\r\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\r\n }\r\n lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n var i;\r\n var len;\r\n var ret;\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\r\n if (iterations % 2 === 0) {\r\n return this.getValueAtTime((((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration) + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\r\n }\r\n return ret;\r\n }\r\n return current - (endV - initV) * repeats;\r\n } else if (type === 'continue') {\r\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\r\n if (this.pv.length) {\r\n ret = new Array(firstValue.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = firstValue[i] + ((firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame)) / 0.001;\r\n }\r\n return ret;\r\n }\r\n return firstValue + ((firstValue - nextFirstValue) * (firstKeyFrame - currentFrame)) / 0.001;\r\n }\r\n return this.getValueAtTime(((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame))) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n }\r\n\r\n function smooth(width, samples) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n width = (width || 0.4) * 0.5;\r\n samples = Math.floor(samples || 5);\r\n if (samples <= 1) {\r\n return this.pv;\r\n }\r\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n var initFrame = currentTime - width;\r\n var endFrame = currentTime + width;\r\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\r\n var i = 0;\r\n var j = 0;\r\n var value;\r\n if (this.pv.length) {\r\n value = createTypedArray('float32', this.pv.length);\r\n } else {\r\n value = 0;\r\n }\r\n var sampleValue;\r\n while (i < samples) {\r\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] += sampleValue[j];\r\n }\r\n } else {\r\n value += sampleValue;\r\n }\r\n i += 1;\r\n }\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] /= samples;\r\n }\r\n } else {\r\n value /= samples;\r\n }\r\n return value;\r\n }\r\n\r\n function getTransformValueAtTime(time) {\r\n if (!this._transformCachingAtTime) {\r\n this._transformCachingAtTime = {\r\n v: new Matrix(),\r\n };\r\n }\r\n /// /\r\n var matrix = this._transformCachingAtTime.v;\r\n matrix.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n var anchor = this.a.getValueAtTime(time);\r\n matrix.translate(\r\n -anchor[0] * this.a.mult,\r\n -anchor[1] * this.a.mult,\r\n anchor[2] * this.a.mult\r\n );\r\n }\r\n if (this.appliedTransformations < 2) {\r\n var scale = this.s.getValueAtTime(time);\r\n matrix.scale(\r\n scale[0] * this.s.mult,\r\n scale[1] * this.s.mult,\r\n scale[2] * this.s.mult\r\n );\r\n }\r\n if (this.sk && this.appliedTransformations < 3) {\r\n var skew = this.sk.getValueAtTime(time);\r\n var skewAxis = this.sa.getValueAtTime(time);\r\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\r\n }\r\n if (this.r && this.appliedTransformations < 4) {\r\n var rotation = this.r.getValueAtTime(time);\r\n matrix.rotate(-rotation * this.r.mult);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n var rotationZ = this.rz.getValueAtTime(time);\r\n var rotationY = this.ry.getValueAtTime(time);\r\n var rotationX = this.rx.getValueAtTime(time);\r\n var orientation = this.or.getValueAtTime(time);\r\n matrix.rotateZ(-rotationZ * this.rz.mult)\r\n .rotateY(rotationY * this.ry.mult)\r\n .rotateX(rotationX * this.rx.mult)\r\n .rotateZ(-orientation[2] * this.or.mult)\r\n .rotateY(orientation[1] * this.or.mult)\r\n .rotateX(orientation[0] * this.or.mult);\r\n }\r\n if (this.data.p && this.data.p.s) {\r\n var positionX = this.px.getValueAtTime(time);\r\n var positionY = this.py.getValueAtTime(time);\r\n if (this.data.p.z) {\r\n var positionZ = this.pz.getValueAtTime(time);\r\n matrix.translate(\r\n positionX * this.px.mult,\r\n positionY * this.py.mult,\r\n -positionZ * this.pz.mult\r\n );\r\n } else {\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\r\n }\r\n } else {\r\n var position = this.p.getValueAtTime(time);\r\n matrix.translate(\r\n position[0] * this.p.mult,\r\n position[1] * this.p.mult,\r\n -position[2] * this.p.mult\r\n );\r\n }\r\n return matrix;\r\n /// /\r\n }\r\n\r\n function getTransformStaticValueAtTime() {\r\n return this.v.clone(new Matrix());\r\n }\r\n\r\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\r\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\r\n var prop = getTransformProperty(elem, data, container);\r\n if (prop.dynamicProperties.length) {\r\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\r\n }\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n return prop;\r\n };\r\n\r\n var propertyGetProp = PropertyFactory.getProp;\r\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\r\n var prop = propertyGetProp(elem, data, type, mult, container);\r\n // prop.getVelocityAtTime = getVelocityAtTime;\r\n // prop.loopOut = loopOut;\r\n // prop.loopIn = loopIn;\r\n if (prop.kf) {\r\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\r\n }\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n prop.loopOut = loopOut;\r\n prop.loopIn = loopIn;\r\n prop.smooth = smooth;\r\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\r\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\r\n prop.numKeys = data.a === 1 ? data.k.length : 0;\r\n prop.propertyIndex = data.ix;\r\n var value = 0;\r\n if (type !== 0) {\r\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\r\n }\r\n prop._cachingAtTime = {\r\n lastFrame: initialDefaultFrame,\r\n lastIndex: 0,\r\n value: value,\r\n };\r\n expressionHelpers.searchExpressions(elem, data, prop);\r\n if (prop.k) {\r\n container.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n\r\n function getShapeValueAtTime(frameNum) {\r\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\r\n if (!this._cachingAtTime) {\r\n this._cachingAtTime = {\r\n shapeValue: shapePool.clone(this.pv),\r\n lastIndex: 0,\r\n lastTime: initialDefaultFrame,\r\n };\r\n }\r\n\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n if (frameNum !== this._cachingAtTime.lastTime) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\r\n this._cachingAtTime.lastTime = frameNum;\r\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\r\n }\r\n return this._cachingAtTime.shapeValue;\r\n }\r\n\r\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\r\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\r\n\r\n function ShapeExpressions() {}\r\n ShapeExpressions.prototype = {\r\n vertices: function (prop, time) {\r\n if (this.k) {\r\n this.getValue();\r\n }\r\n var shapePath = this.v;\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n var i;\r\n var len = shapePath._length;\r\n var vertices = shapePath[prop];\r\n var points = shapePath.v;\r\n var arr = createSizedArray(len);\r\n for (i = 0; i < len; i += 1) {\r\n if (prop === 'i' || prop === 'o') {\r\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\r\n } else {\r\n arr[i] = [vertices[i][0], vertices[i][1]];\r\n }\r\n }\r\n return arr;\r\n },\r\n points: function (time) {\r\n return this.vertices('v', time);\r\n },\r\n inTangents: function (time) {\r\n return this.vertices('i', time);\r\n },\r\n outTangents: function (time) {\r\n return this.vertices('o', time);\r\n },\r\n isClosed: function () {\r\n return this.v.c;\r\n },\r\n pointOnPath: function (perc, time) {\r\n var shapePath = this.v;\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n if (!this._segmentsLength) {\r\n this._segmentsLength = bez.getSegmentsLength(shapePath);\r\n }\r\n\r\n var segmentsLength = this._segmentsLength;\r\n var lengths = segmentsLength.lengths;\r\n var lengthPos = segmentsLength.totalLength * perc;\r\n var i = 0;\r\n var len = lengths.length;\r\n var accumulatedLength = 0;\r\n var pt;\r\n while (i < len) {\r\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\r\n var initIndex = i;\r\n var endIndex = (shapePath.c && i === len - 1) ? 0 : i + 1;\r\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\r\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\r\n break;\r\n } else {\r\n accumulatedLength += lengths[i].addedLength;\r\n }\r\n i += 1;\r\n }\r\n if (!pt) {\r\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\r\n }\r\n return pt;\r\n },\r\n vectorOnPath: function (perc, time, vectorType) {\r\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\r\n if (perc == 1) { // eslint-disable-line eqeqeq\r\n perc = this.v.c;\r\n } else if (perc == 0) { // eslint-disable-line eqeqeq\r\n perc = 0.999;\r\n }\r\n var pt1 = this.pointOnPath(perc, time);\r\n var pt2 = this.pointOnPath(perc + 0.001, time);\r\n var xLength = pt2[0] - pt1[0];\r\n var yLength = pt2[1] - pt1[1];\r\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\r\n if (magnitude === 0) {\r\n return [0, 0];\r\n }\r\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\r\n return unitVector;\r\n },\r\n tangentOnPath: function (perc, time) {\r\n return this.vectorOnPath(perc, time, 'tangent');\r\n },\r\n normalOnPath: function (perc, time) {\r\n return this.vectorOnPath(perc, time, 'normal');\r\n },\r\n setGroupProperty: expressionHelpers.setGroupProperty,\r\n getValueAtTime: expressionHelpers.getStaticValueAtTime,\r\n };\r\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\r\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\r\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\r\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\r\n\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\r\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\r\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\r\n prop.propertyIndex = data.ix;\r\n prop.lock = false;\r\n if (type === 3) {\r\n expressionHelpers.searchExpressions(elem, data.pt, prop);\r\n } else if (type === 4) {\r\n expressionHelpers.searchExpressions(elem, data.ks, prop);\r\n }\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n return prop;\r\n };\r\n}());\r\n\r\n/* global ExpressionManager, TextProperty */\r\n\r\n(function addDecorator() {\r\n function searchExpressions() {\r\n if (this.data.d.x) {\r\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\r\n this.addEffect(this.getExpressionValue.bind(this));\r\n return true;\r\n }\r\n return null;\r\n }\r\n\r\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\r\n var newValue = this.calculateExpression(text);\r\n if (currentValue.t !== newValue) {\r\n var newData = {};\r\n this.copyData(newData, currentValue);\r\n newData.t = newValue.toString();\r\n newData.__complete = false;\r\n return newData;\r\n }\r\n return currentValue;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n var isKeyframed = this.searchKeyframes();\r\n var hasExpressions = this.searchExpressions();\r\n this.kf = isKeyframed || hasExpressions;\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.searchExpressions = searchExpressions;\r\n}());\r\n\r\n/* global propertyGroupFactory, PropertyInterface */\r\n/* exported ShapePathInterface */\r\n\r\nvar ShapePathInterface = (\r\n\r\n function () {\r\n return function pathInterfaceFactory(shape, view, propertyGroup) {\r\n var prop = view.sh;\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\r\n return interfaceFunction.path;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n path: {\r\n get: function () {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n return prop;\r\n },\r\n },\r\n shape: {\r\n get: function () {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n return prop;\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n ix: { value: shape.ix },\r\n propertyIndex: { value: shape.ix },\r\n mn: { value: shape.mn },\r\n propertyGroup: { value: propertyGroup },\r\n });\r\n return interfaceFunction;\r\n };\r\n }()\r\n);\r\n\r\n/* exported propertyGroupFactory */\r\n\r\nvar propertyGroupFactory = (function () {\r\n return function (interfaceFunction, parentPropertyGroup) {\r\n return function (val) {\r\n val = val === undefined ? 1 : val;\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n return parentPropertyGroup(val - 1);\r\n };\r\n };\r\n}());\r\n\r\n/* exported PropertyInterface */\r\n\r\nvar PropertyInterface = (function () {\r\n return function (propertyName, propertyGroup) {\r\n var interfaceFunction = {\r\n _name: propertyName,\r\n };\r\n\r\n function _propertyGroup(val) {\r\n val = val === undefined ? 1 : val;\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n return propertyGroup(val - 1);\r\n }\r\n\r\n return _propertyGroup;\r\n };\r\n}());\r\n\r\n/* global ExpressionPropertyInterface, PropertyInterface, propertyGroupFactory, ShapePathInterface */\r\n/* exported ShapeExpressionInterface */\r\n\r\nvar ShapeExpressionInterface = (function () {\r\n function iterateElements(shapes, view, propertyGroup) {\r\n var arr = [];\r\n var i;\r\n var len = shapes ? shapes.length : 0;\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'fl') {\r\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'st') {\r\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tm') {\r\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tr') {\r\n // arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\r\n } else if (shapes[i].ty === 'el') {\r\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sr') {\r\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sh') {\r\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rc') {\r\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rd') {\r\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rp') {\r\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'gf') {\r\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else {\r\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function contentsInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaces;\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n var i = 0;\r\n var len = interfaces.length;\r\n while (i < len) {\r\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\r\n return interfaces[i];\r\n }\r\n i += 1;\r\n }\r\n if (typeof value === 'number') {\r\n return interfaces[value - 1];\r\n }\r\n return null;\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\r\n interfaceFunction.numProperties = interfaces.length;\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.transform = transformInterface;\r\n interfaceFunction.propertyIndex = shape.cix;\r\n interfaceFunction._name = shape.nm;\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n function groupInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n switch (value) {\r\n case 'ADBE Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return interfaceFunction.content;\r\n // Not necessary for now. Keeping them here in case a new case appears\r\n // case 'ADBE Vector Transform Group':\r\n // case 3:\r\n default:\r\n return interfaceFunction.transform;\r\n }\r\n };\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.content = content;\r\n interfaceFunction.transform = transformInterface;\r\n Object.defineProperty(interfaceFunction, '_name', {\r\n get: function () {\r\n return shape.nm;\r\n },\r\n });\r\n // interfaceFunction.content = interfaceFunction;\r\n interfaceFunction.numProperties = shape.np;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.nm = shape.nm;\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function fillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n } if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n return null;\r\n }\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c),\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n _name: { value: shape.nm },\r\n mn: { value: shape.mn },\r\n });\r\n\r\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Start Point' || val === 'start point') {\r\n return interfaceFunction.startPoint;\r\n }\r\n if (val === 'End Point' || val === 'end point') {\r\n return interfaceFunction.endPoint;\r\n }\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n return null;\r\n }\r\n Object.defineProperties(interfaceFunction, {\r\n startPoint: {\r\n get: ExpressionPropertyInterface(view.s),\r\n },\r\n endPoint: {\r\n get: ExpressionPropertyInterface(view.e),\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n type: {\r\n get: function () {\r\n return 'a';\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n mn: { value: shape.mn },\r\n });\r\n\r\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n function defaultInterfaceFactory() {\r\n function interfaceFunction() {\r\n return null;\r\n }\r\n return interfaceFunction;\r\n }\r\n\r\n function strokeInterfaceFactory(shape, view, propertyGroup) {\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\r\n function addPropertyToDashOb(i) {\r\n Object.defineProperty(dashOb, shape.d[i].nm, {\r\n get: ExpressionPropertyInterface(view.d.dataProps[i].p),\r\n });\r\n }\r\n var i;\r\n var len = shape.d ? shape.d.length : 0;\r\n var dashOb = {};\r\n for (i = 0; i < len; i += 1) {\r\n addPropertyToDashOb(i);\r\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\r\n }\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n } if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n } if (val === 'Stroke Width' || val === 'stroke width') {\r\n return interfaceFunction.strokeWidth;\r\n }\r\n return null;\r\n }\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c),\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n strokeWidth: {\r\n get: ExpressionPropertyInterface(view.w),\r\n },\r\n dash: {\r\n get: function () {\r\n return dashOb;\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n mn: { value: shape.mn },\r\n });\r\n\r\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function trimInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === shape.e.ix || val === 'End' || val === 'end') {\r\n return interfaceFunction.end;\r\n }\r\n if (val === shape.s.ix) {\r\n return interfaceFunction.start;\r\n }\r\n if (val === shape.o.ix) {\r\n return interfaceFunction.offset;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaceFunction.propertyIndex = shape.ix;\r\n\r\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n start: {\r\n get: ExpressionPropertyInterface(view.s),\r\n },\r\n end: {\r\n get: ExpressionPropertyInterface(view.e),\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function transformInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.a.ix === value || value === 'Anchor Point') {\r\n return interfaceFunction.anchorPoint;\r\n }\r\n if (shape.o.ix === value || value === 'Opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n if (shape.p.ix === value || value === 'Position') {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\r\n return interfaceFunction.rotation;\r\n }\r\n if (shape.s.ix === value || value === 'Scale') {\r\n return interfaceFunction.scale;\r\n }\r\n if ((shape.sk && shape.sk.ix === value) || value === 'Skew') {\r\n return interfaceFunction.skew;\r\n }\r\n if ((shape.sa && shape.sa.ix === value) || value === 'Skew Axis') {\r\n return interfaceFunction.skewAxis;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\r\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\r\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n if (view.transform.mProps.sk) {\r\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\r\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\r\n }\r\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.o),\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.p),\r\n },\r\n anchorPoint: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.a),\r\n },\r\n scale: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.s),\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.r),\r\n },\r\n skew: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sk),\r\n },\r\n skewAxis: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sa),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.ty = 'tr';\r\n interfaceFunction.mn = shape.mn;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n return interfaceFunction;\r\n }\r\n\r\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.s.ix === value) {\r\n return interfaceFunction.size;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaceFunction.propertyIndex = shape.ix;\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s),\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function starInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.rotation;\r\n }\r\n if (shape.pt.ix === value) {\r\n return interfaceFunction.points;\r\n }\r\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\r\n return interfaceFunction.outerRadius;\r\n }\r\n if (shape.os.ix === value) {\r\n return interfaceFunction.outerRoundness;\r\n }\r\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\r\n return interfaceFunction.innerRadius;\r\n }\r\n if (shape.is && shape.is.ix === value) {\r\n return interfaceFunction.innerRoundness;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\r\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\r\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n if (shape.ir) {\r\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\r\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p),\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(prop.r),\r\n },\r\n points: {\r\n get: ExpressionPropertyInterface(prop.pt),\r\n },\r\n outerRadius: {\r\n get: ExpressionPropertyInterface(prop.or),\r\n },\r\n outerRoundness: {\r\n get: ExpressionPropertyInterface(prop.os),\r\n },\r\n innerRadius: {\r\n get: ExpressionPropertyInterface(prop.ir),\r\n },\r\n innerRoundness: {\r\n get: ExpressionPropertyInterface(prop.is),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function rectInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.roundness;\r\n }\r\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\r\n return interfaceFunction.size;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p),\r\n },\r\n roundness: {\r\n get: ExpressionPropertyInterface(prop.r),\r\n },\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function roundedInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.r.ix === value || value === 'Round Corners 1') {\r\n return interfaceFunction.radius;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n radius: {\r\n get: ExpressionPropertyInterface(prop.rd),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.c.ix === value || value === 'Copies') {\r\n return interfaceFunction.copies;\r\n } if (shape.o.ix === value || value === 'Offset') {\r\n return interfaceFunction.offset;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\r\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n copies: {\r\n get: ExpressionPropertyInterface(prop.c),\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(prop.o),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n return function (shapes, view, propertyGroup) {\r\n var interfaces;\r\n function _interfaceFunction(value) {\r\n if (typeof value === 'number') {\r\n value = value === undefined ? 1 : value;\r\n if (value === 0) {\r\n return propertyGroup;\r\n }\r\n return interfaces[value - 1];\r\n }\r\n var i = 0;\r\n var len = interfaces.length;\r\n while (i < len) {\r\n if (interfaces[i]._name === value) {\r\n return interfaces[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n function parentGroupWrapper() {\r\n return propertyGroup;\r\n }\r\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\r\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\r\n _interfaceFunction.numProperties = interfaces.length;\r\n _interfaceFunction._name = 'Contents';\r\n return _interfaceFunction;\r\n };\r\n}());\r\n\r\n/* exported TextExpressionInterface */\r\n\r\nvar TextExpressionInterface = (function () {\r\n return function (elem) {\r\n var _prevValue;\r\n var _sourceText;\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Text Document':\r\n return _thisLayerFunction.sourceText;\r\n default:\r\n return null;\r\n }\r\n }\r\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\r\n get: function () {\r\n elem.textProperty.getValue();\r\n var stringValue = elem.textProperty.currentData.t;\r\n if (stringValue !== _prevValue) {\r\n elem.textProperty.currentData.t = _prevValue;\r\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\r\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\r\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\r\n }\r\n return _sourceText;\r\n },\r\n });\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global Matrix, MaskManagerInterface, TransformExpressionInterface, getDescriptor */\r\n/* exported LayerExpressionInterface */\r\n\r\nvar LayerExpressionInterface = (function () {\r\n function getMatrix(time) {\r\n var toWorldMat = new Matrix();\r\n if (time !== undefined) {\r\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\r\n propMatrix.clone(toWorldMat);\r\n } else {\r\n var transformMat = this._elem.finalTransform.mProp;\r\n transformMat.applyToMatrix(toWorldMat);\r\n }\r\n return toWorldMat;\r\n }\r\n\r\n function toWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function toWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function applyPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\r\n }\r\n\r\n function invertPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n return matrix.inversePoint(arr);\r\n }\r\n\r\n function fromComp(arr) {\r\n var toWorldMat = new Matrix();\r\n toWorldMat.reset();\r\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\r\n }\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n function sampleImage() {\r\n return [1, 1, 1, 1];\r\n }\r\n\r\n return function (elem) {\r\n var transformInterface;\r\n\r\n function _registerMaskInterface(maskManager) {\r\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\r\n }\r\n function _registerEffectsInterface(effects) {\r\n _thisLayerFunction.effect = effects;\r\n }\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Root Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return _thisLayerFunction.shapeInterface;\r\n case 1:\r\n case 6:\r\n case 'Transform':\r\n case 'transform':\r\n case 'ADBE Transform Group':\r\n return transformInterface;\r\n case 4:\r\n case 'ADBE Effect Parade':\r\n case 'effects':\r\n case 'Effects':\r\n return _thisLayerFunction.effect;\r\n case 'ADBE Text Properties':\r\n return _thisLayerFunction.textInterface;\r\n default:\r\n return null;\r\n }\r\n }\r\n _thisLayerFunction.getMatrix = getMatrix;\r\n _thisLayerFunction.invertPoint = invertPoint;\r\n _thisLayerFunction.applyPoint = applyPoint;\r\n _thisLayerFunction.toWorld = toWorld;\r\n _thisLayerFunction.toWorldVec = toWorldVec;\r\n _thisLayerFunction.fromWorld = fromWorld;\r\n _thisLayerFunction.fromWorldVec = fromWorldVec;\r\n _thisLayerFunction.toComp = toWorld;\r\n _thisLayerFunction.fromComp = fromComp;\r\n _thisLayerFunction.sampleImage = sampleImage;\r\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\r\n _thisLayerFunction._elem = elem;\r\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\r\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\r\n Object.defineProperties(_thisLayerFunction, {\r\n hasParent: {\r\n get: function () {\r\n return elem.hierarchy.length;\r\n },\r\n },\r\n parent: {\r\n get: function () {\r\n return elem.hierarchy[0].layerInterface;\r\n },\r\n },\r\n rotation: getDescriptor(transformInterface, 'rotation'),\r\n scale: getDescriptor(transformInterface, 'scale'),\r\n position: getDescriptor(transformInterface, 'position'),\r\n opacity: getDescriptor(transformInterface, 'opacity'),\r\n anchorPoint: anchorPointDescriptor,\r\n anchor_point: anchorPointDescriptor,\r\n transform: {\r\n get: function () {\r\n return transformInterface;\r\n },\r\n },\r\n active: {\r\n get: function () {\r\n return elem.isInRange;\r\n },\r\n },\r\n });\r\n\r\n _thisLayerFunction.startTime = elem.data.st;\r\n _thisLayerFunction.index = elem.data.ind;\r\n _thisLayerFunction.source = elem.data.refId;\r\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\r\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\r\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n _thisLayerFunction._name = elem.data.nm;\r\n\r\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\r\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global */\r\n/* exported FootageInterface */\r\n\r\nvar FootageInterface = (function () {\r\n var outlineInterfaceFactory = (function (elem) {\r\n var currentPropertyName = '';\r\n var currentProperty = elem.getFootageData();\r\n function init() {\r\n currentPropertyName = '';\r\n currentProperty = elem.getFootageData();\r\n return searchProperty;\r\n }\r\n function searchProperty(value) {\r\n if (currentProperty[value]) {\r\n currentPropertyName = value;\r\n currentProperty = currentProperty[value];\r\n if (typeof currentProperty === 'object') {\r\n return searchProperty;\r\n }\r\n return currentProperty;\r\n }\r\n var propertyNameIndex = value.indexOf(currentPropertyName);\r\n if (propertyNameIndex !== -1) {\r\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\r\n currentProperty = currentProperty[index];\r\n if (typeof currentProperty === 'object') {\r\n return searchProperty;\r\n }\r\n return currentProperty;\r\n }\r\n return '';\r\n }\r\n return init;\r\n });\r\n\r\n var dataInterfaceFactory = function (elem) {\r\n function interfaceFunction(value) {\r\n if (value === 'Outline') {\r\n return interfaceFunction.outlineInterface();\r\n }\r\n return null;\r\n }\r\n\r\n interfaceFunction._name = 'Outline';\r\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\r\n return interfaceFunction;\r\n };\r\n\r\n return function (elem) {\r\n function _interfaceFunction(value) {\r\n if (value === 'Data') {\r\n return _interfaceFunction.dataInterface;\r\n }\r\n return null;\r\n }\r\n\r\n _interfaceFunction._name = 'Data';\r\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\r\n return _interfaceFunction;\r\n };\r\n}());\r\n\r\n/* exported CompExpressionInterface */\r\n\r\nvar CompExpressionInterface = (function () {\r\n return function (comp) {\r\n function _thisLayerFunction(name) {\r\n var i = 0;\r\n var len = comp.layers.length;\r\n while (i < len) {\r\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\r\n return comp.elements[i].layerInterface;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n // return {active:false};\r\n }\r\n Object.defineProperty(_thisLayerFunction, '_name', { value: comp.data.nm });\r\n _thisLayerFunction.layer = _thisLayerFunction;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\r\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\r\n _thisLayerFunction.displayStartTime = 0;\r\n _thisLayerFunction.numLayers = comp.layers.length;\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global ExpressionPropertyInterface */\r\n/* exported TransformExpressionInterface */\r\n\r\nvar TransformExpressionInterface = (function () {\r\n return function (transform) {\r\n function _thisFunction(name) {\r\n switch (name) {\r\n case 'scale':\r\n case 'Scale':\r\n case 'ADBE Scale':\r\n case 6:\r\n return _thisFunction.scale;\r\n case 'rotation':\r\n case 'Rotation':\r\n case 'ADBE Rotation':\r\n case 'ADBE Rotate Z':\r\n case 10:\r\n return _thisFunction.rotation;\r\n case 'ADBE Rotate X':\r\n return _thisFunction.xRotation;\r\n case 'ADBE Rotate Y':\r\n return _thisFunction.yRotation;\r\n case 'position':\r\n case 'Position':\r\n case 'ADBE Position':\r\n case 2:\r\n return _thisFunction.position;\r\n case 'ADBE Position_0':\r\n return _thisFunction.xPosition;\r\n case 'ADBE Position_1':\r\n return _thisFunction.yPosition;\r\n case 'ADBE Position_2':\r\n return _thisFunction.zPosition;\r\n case 'anchorPoint':\r\n case 'AnchorPoint':\r\n case 'Anchor Point':\r\n case 'ADBE AnchorPoint':\r\n case 1:\r\n return _thisFunction.anchorPoint;\r\n case 'opacity':\r\n case 'Opacity':\r\n case 11:\r\n return _thisFunction.opacity;\r\n default:\r\n return null;\r\n }\r\n }\r\n Object.defineProperty(_thisFunction, 'rotation', {\r\n get: ExpressionPropertyInterface(transform.r || transform.rz),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'zRotation', {\r\n get: ExpressionPropertyInterface(transform.rz || transform.r),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'xRotation', {\r\n get: ExpressionPropertyInterface(transform.rx),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'yRotation', {\r\n get: ExpressionPropertyInterface(transform.ry),\r\n });\r\n Object.defineProperty(_thisFunction, 'scale', {\r\n get: ExpressionPropertyInterface(transform.s),\r\n });\r\n var _px;\r\n var _py;\r\n var _pz;\r\n var _transformFactory;\r\n if (transform.p) {\r\n _transformFactory = ExpressionPropertyInterface(transform.p);\r\n } else {\r\n _px = ExpressionPropertyInterface(transform.px);\r\n _py = ExpressionPropertyInterface(transform.py);\r\n if (transform.pz) {\r\n _pz = ExpressionPropertyInterface(transform.pz);\r\n }\r\n }\r\n Object.defineProperty(_thisFunction, 'position', {\r\n get: function () {\r\n if (transform.p) {\r\n return _transformFactory();\r\n }\r\n return [\r\n _px(),\r\n _py(),\r\n _pz ? _pz() : 0];\r\n },\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'xPosition', {\r\n get: ExpressionPropertyInterface(transform.px),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'yPosition', {\r\n get: ExpressionPropertyInterface(transform.py),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'zPosition', {\r\n get: ExpressionPropertyInterface(transform.pz),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'anchorPoint', {\r\n get: ExpressionPropertyInterface(transform.a),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'opacity', {\r\n get: ExpressionPropertyInterface(transform.o),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'skew', {\r\n get: ExpressionPropertyInterface(transform.sk),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'skewAxis', {\r\n get: ExpressionPropertyInterface(transform.sa),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'orientation', {\r\n get: ExpressionPropertyInterface(transform.or),\r\n });\r\n\r\n return _thisFunction;\r\n };\r\n}());\r\n\r\n/* exported ProjectInterface */\r\n\r\nvar ProjectInterface = (function () {\r\n function registerComposition(comp) {\r\n this.compositions.push(comp);\r\n }\r\n\r\n return function () {\r\n function _thisProjectFunction(name) {\r\n var i = 0;\r\n var len = this.compositions.length;\r\n while (i < len) {\r\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\r\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\r\n this.compositions[i].prepareFrame(this.currentFrame);\r\n }\r\n return this.compositions[i].compInterface;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n _thisProjectFunction.compositions = [];\r\n _thisProjectFunction.currentFrame = 0;\r\n\r\n _thisProjectFunction.registerComposition = registerComposition;\r\n\r\n return _thisProjectFunction;\r\n };\r\n}());\r\n\r\n/* global propertyGroupFactory, ExpressionPropertyInterface, PropertyInterface */\r\n/* exported EffectsExpressionInterface */\r\n\r\nvar EffectsExpressionInterface = (function () {\r\n var ob = {\r\n createEffectsInterface: createEffectsInterface,\r\n };\r\n\r\n function createEffectsInterface(elem, propertyGroup) {\r\n if (elem.effectsManager) {\r\n var effectElements = [];\r\n var effectsData = elem.data.ef;\r\n var i;\r\n var len = elem.effectsManager.effectElements.length;\r\n for (i = 0; i < len; i += 1) {\r\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\r\n }\r\n\r\n var effects = elem.data.ef || [];\r\n var groupInterface = function (name) {\r\n i = 0;\r\n len = effects.length;\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n return effectElements[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n };\r\n Object.defineProperty(groupInterface, 'numProperties', {\r\n get: function () {\r\n return effects.length;\r\n },\r\n });\r\n return groupInterface;\r\n }\r\n return null;\r\n }\r\n\r\n function createGroupInterface(data, elements, propertyGroup, elem) {\r\n function groupInterface(name) {\r\n var effects = data.ef;\r\n var i = 0;\r\n var len = effects.length;\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n if (effects[i].ty === 5) {\r\n return effectElements[i];\r\n }\r\n return effectElements[i]();\r\n }\r\n i += 1;\r\n }\r\n throw new Error();\r\n }\r\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\r\n\r\n var effectElements = [];\r\n var i;\r\n var len = data.ef.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (data.ef[i].ty === 5) {\r\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\r\n } else {\r\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\r\n }\r\n }\r\n\r\n if (data.mn === 'ADBE Color Control') {\r\n Object.defineProperty(groupInterface, 'color', {\r\n get: function () {\r\n return effectElements[0]();\r\n },\r\n });\r\n }\r\n Object.defineProperties(groupInterface, {\r\n numProperties: {\r\n get: function () {\r\n return data.np;\r\n },\r\n },\r\n _name: { value: data.nm },\r\n propertyGroup: { value: _propertyGroup },\r\n });\r\n groupInterface.enabled = data.en !== 0;\r\n groupInterface.active = groupInterface.enabled;\r\n return groupInterface;\r\n }\r\n\r\n function createValueInterface(element, type, elem, propertyGroup) {\r\n var expressionProperty = ExpressionPropertyInterface(element.p);\r\n function interfaceFunction() {\r\n if (type === 10) {\r\n return elem.comp.compInterface(element.p.v);\r\n }\r\n return expressionProperty();\r\n }\r\n\r\n if (element.p.setGroupProperty) {\r\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global createSizedArray */\r\n/* exported MaskManagerInterface */\r\n\r\nvar MaskManagerInterface = (function () {\r\n function MaskInterface(mask, data) {\r\n this._mask = mask;\r\n this._data = data;\r\n }\r\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\r\n get: function () {\r\n if (this._mask.prop.k) {\r\n this._mask.prop.getValue();\r\n }\r\n return this._mask.prop;\r\n },\r\n });\r\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\r\n get: function () {\r\n if (this._mask.op.k) {\r\n this._mask.op.getValue();\r\n }\r\n return this._mask.op.v * 100;\r\n },\r\n });\r\n\r\n var MaskManager = function (maskManager) {\r\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\r\n var i;\r\n var len = maskManager.viewData.length;\r\n for (i = 0; i < len; i += 1) {\r\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\r\n }\r\n\r\n var maskFunction = function (name) {\r\n i = 0;\r\n while (i < len) {\r\n if (maskManager.masksProperties[i].nm === name) {\r\n return _masksInterfaces[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n };\r\n return maskFunction;\r\n };\r\n return MaskManager;\r\n}());\r\n\r\n/* global createTypedArray */\r\n/* exported ExpressionPropertyInterface */\r\n\r\nvar ExpressionPropertyInterface = (function () {\r\n var defaultUnidimensionalValue = { pv: 0, v: 0, mult: 1 };\r\n var defaultMultidimensionalValue = { pv: [0, 0, 0], v: [0, 0, 0], mult: 1 };\r\n\r\n function completeProperty(expressionValue, property, type) {\r\n Object.defineProperty(expressionValue, 'velocity', {\r\n get: function () {\r\n return property.getVelocityAtTime(property.comp.currentFrame);\r\n },\r\n });\r\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\r\n expressionValue.key = function (pos) {\r\n if (!expressionValue.numKeys) {\r\n return 0;\r\n }\r\n var value = '';\r\n if ('s' in property.keyframes[pos - 1]) {\r\n value = property.keyframes[pos - 1].s;\r\n } else if ('e' in property.keyframes[pos - 2]) {\r\n value = property.keyframes[pos - 2].e;\r\n } else {\r\n value = property.keyframes[pos - 2].s;\r\n }\r\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\r\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\r\n valueProp.value = type === 'unidimensional' ? value[0] : value;\r\n return valueProp;\r\n };\r\n expressionValue.valueAtTime = property.getValueAtTime;\r\n expressionValue.speedAtTime = property.getSpeedAtTime;\r\n expressionValue.velocityAtTime = property.getVelocityAtTime;\r\n expressionValue.propertyGroup = property.propertyGroup;\r\n }\r\n\r\n function UnidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultUnidimensionalValue;\r\n }\r\n var mult = 1 / property.mult;\r\n var val = property.pv * mult;\r\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n val = property.v * mult;\r\n if (expressionValue.value !== val) {\r\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n }\r\n return expressionValue;\r\n };\r\n }\r\n\r\n function MultidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultMultidimensionalValue;\r\n }\r\n var mult = 1 / property.mult;\r\n var len = (property.data && property.data.l) || property.pv.length;\r\n var expressionValue = createTypedArray('float32', len);\r\n var arrValue = createTypedArray('float32', len);\r\n expressionValue.value = arrValue;\r\n completeProperty(expressionValue, property, 'multidimensional');\r\n\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n for (var i = 0; i < len; i += 1) {\r\n arrValue[i] = property.v[i] * mult;\r\n expressionValue[i] = arrValue[i];\r\n }\r\n return expressionValue;\r\n };\r\n }\r\n\r\n // TODO: try to avoid using this getter\r\n function defaultGetter() {\r\n return defaultUnidimensionalValue;\r\n }\r\n\r\n return function (property) {\r\n if (!property) {\r\n return defaultGetter;\r\n } if (property.propType === 'unidimensional') {\r\n return UnidimensionalPropertyInterface(property);\r\n }\r\n return MultidimensionalPropertyInterface(property);\r\n };\r\n}());\r\n\r\n/* global expressionHelpers, TextSelectorProp, ExpressionManager */\r\n/* exported TextExpressionSelectorPropFactory */\r\n\r\nvar TextExpressionSelectorPropFactory = (function () { // eslint-disable-line no-unused-vars\r\n function getValueProxy(index, total) {\r\n this.textIndex = index + 1;\r\n this.textTotal = total;\r\n this.v = this.getValue() * this.mult;\r\n return this.v;\r\n }\r\n\r\n return function (elem, data) {\r\n this.pv = 1;\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.mult = 0.01;\r\n this.propType = 'textSelector';\r\n this.textTotal = data.totalChars;\r\n this.selectorValue = 100;\r\n this.lastValue = [1, 1, 1];\r\n this.k = true;\r\n this.x = true;\r\n this.getValue = ExpressionManager.initiateExpression.bind(this)(elem, data, this);\r\n this.getMult = getValueProxy;\r\n this.getVelocityAtTime = expressionHelpers.getVelocityAtTime;\r\n if (this.kf) {\r\n this.getValueAtTime = expressionHelpers.getValueAtTime.bind(this);\r\n } else {\r\n this.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(this);\r\n }\r\n this.setGroupProperty = expressionHelpers.setGroupProperty;\r\n };\r\n}());\r\n\r\nvar propertyGetTextProp = TextSelectorProp.getTextSelectorProp;\r\nTextSelectorProp.getTextSelectorProp = function (elem, data, arr) {\r\n if (data.t === 1) {\r\n return new TextExpressionSelectorPropFactory(elem, data, arr); // eslint-disable-line no-undef\r\n }\r\n return propertyGetTextProp(elem, data, arr);\r\n};\r\n\r\n/* global PropertyFactory */\r\n/* exported SliderEffect, AngleEffect, ColorEffect, PointEffect, LayerIndexEffect, MaskIndexEffect, CheckboxEffect, NoValueEffect */\r\n\r\nfunction SliderEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction AngleEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction ColorEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n}\r\nfunction PointEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n}\r\nfunction LayerIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction MaskIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction CheckboxEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction NoValueEffect() {\r\n this.p = {};\r\n}\r\n\r\n/* global extendPrototype, SliderEffect, AngleEffect, ColorEffect, PointEffect, CheckboxEffect, LayerIndexEffect,\r\nMaskIndexEffect, NoValueEffect, DynamicPropertyContainer */\r\n\r\nfunction EffectsManager(data, element) {\r\n var effects = data.ef || [];\r\n this.effectElements = [];\r\n var i;\r\n var len = effects.length;\r\n var effectItem;\r\n for (i = 0; i < len; i += 1) {\r\n effectItem = new GroupEffect(effects[i], element);\r\n this.effectElements.push(effectItem);\r\n }\r\n}\r\n\r\nfunction GroupEffect(data, element) {\r\n this.init(data, element);\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], GroupEffect);\r\n\r\nGroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\r\n\r\nGroupEffect.prototype.init = function (data, element) {\r\n this.data = data;\r\n this.effectElements = [];\r\n this.initDynamicPropertyContainer(element);\r\n var i;\r\n var len = this.data.ef.length;\r\n var eff;\r\n var effects = this.data.ef;\r\n for (i = 0; i < len; i += 1) {\r\n eff = null;\r\n switch (effects[i].ty) {\r\n case 0:\r\n eff = new SliderEffect(effects[i], element, this);\r\n break;\r\n case 1:\r\n eff = new AngleEffect(effects[i], element, this);\r\n break;\r\n case 2:\r\n eff = new ColorEffect(effects[i], element, this);\r\n break;\r\n case 3:\r\n eff = new PointEffect(effects[i], element, this);\r\n break;\r\n case 4:\r\n case 7:\r\n eff = new CheckboxEffect(effects[i], element, this);\r\n break;\r\n case 10:\r\n eff = new LayerIndexEffect(effects[i], element, this);\r\n break;\r\n case 11:\r\n eff = new MaskIndexEffect(effects[i], element, this);\r\n break;\r\n case 5:\r\n eff = new EffectsManager(effects[i], element, this);\r\n break;\r\n // case 6:\r\n default:\r\n eff = new NoValueEffect(effects[i], element, this);\r\n break;\r\n }\r\n if (eff) {\r\n this.effectElements.push(eff);\r\n }\r\n }\r\n};\r\n\r\n\r\nvar lottie = {};\r\n\r\nfunction setLocationHref(href) {\r\n locationHref = href;\r\n}\r\n\r\nfunction searchAnimations() {\r\n if (standalone === true) {\r\n animationManager.searchAnimations(animationData, standalone, renderer);\r\n } else {\r\n animationManager.searchAnimations();\r\n }\r\n}\r\n\r\nfunction setSubframeRendering(flag) {\r\n subframeEnabled = flag;\r\n}\r\n\r\nfunction setIDPrefix(prefix) {\r\n idPrefix = prefix;\r\n}\r\n\r\nfunction loadAnimation(params) {\r\n if (standalone === true) {\r\n params.animationData = JSON.parse(animationData);\r\n }\r\n return animationManager.loadAnimation(params);\r\n}\r\n\r\nfunction setQuality(value) {\r\n if (typeof value === 'string') {\r\n switch (value) {\r\n case 'high':\r\n defaultCurveSegments = 200;\r\n break;\r\n default:\r\n case 'medium':\r\n defaultCurveSegments = 50;\r\n break;\r\n case 'low':\r\n defaultCurveSegments = 10;\r\n break;\r\n }\r\n } else if (!isNaN(value) && value > 1) {\r\n defaultCurveSegments = value;\r\n }\r\n if (defaultCurveSegments >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n}\r\n\r\nfunction inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n}\r\n\r\nfunction installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n expressionsPlugin = plugin;\r\n }\r\n}\r\n\r\nfunction getFactory(name) {\r\n switch (name) {\r\n case 'propertyFactory':\r\n return PropertyFactory;\r\n case 'shapePropertyFactory':\r\n return ShapePropertyFactory;\r\n case 'matrix':\r\n return Matrix;\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nlottie.play = animationManager.play;\r\nlottie.pause = animationManager.pause;\r\nlottie.setLocationHref = setLocationHref;\r\nlottie.togglePause = animationManager.togglePause;\r\nlottie.setSpeed = animationManager.setSpeed;\r\nlottie.setDirection = animationManager.setDirection;\r\nlottie.stop = animationManager.stop;\r\nlottie.searchAnimations = searchAnimations;\r\nlottie.registerAnimation = animationManager.registerAnimation;\r\nlottie.loadAnimation = loadAnimation;\r\nlottie.setSubframeRendering = setSubframeRendering;\r\nlottie.resize = animationManager.resize;\r\n// lottie.start = start;\r\nlottie.goToAndStop = animationManager.goToAndStop;\r\nlottie.destroy = animationManager.destroy;\r\nlottie.setQuality = setQuality;\r\nlottie.inBrowser = inBrowser;\r\nlottie.installPlugin = installPlugin;\r\nlottie.freeze = animationManager.freeze;\r\nlottie.unfreeze = animationManager.unfreeze;\r\nlottie.setVolume = animationManager.setVolume;\r\nlottie.mute = animationManager.mute;\r\nlottie.unmute = animationManager.unmute;\r\nlottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\r\nlottie.useWebWorker = function (flag) {\r\n _useWebWorker = flag;\r\n};\r\nlottie.setIDPrefix = setIDPrefix;\r\nlottie.__getFactory = getFactory;\r\nlottie.version = '5.8.1';\r\n\r\nfunction checkReady() {\r\n if (document.readyState === 'complete') {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n}\r\n\r\nfunction getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n for (var i = 0; i < vars.length; i += 1) {\r\n var pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) == variable) { // eslint-disable-line eqeqeq\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n return null;\r\n}\r\nvar standalone = '__[STANDALONE]__';\r\nvar animationData = '__[ANIMATIONDATA]__';\r\nvar renderer = '';\r\nvar queryString;\r\nif (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: '',\r\n };\r\n queryString = myScript.src.replace(/^[^\\?]+\\??/, ''); // eslint-disable-line no-useless-escape\r\n renderer = getQueryVariable('renderer');\r\n}\r\nvar readyStateCheckInterval = setInterval(checkReady, 100);\r\n\nreturn lottie;\n}));","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = all;\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction all() {\n for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n function allPropTypes() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var error = null;\n\n validators.forEach(function (validator) {\n if (error != null) {\n return;\n }\n\n var result = validator.apply(undefined, args);\n if (result != null) {\n error = result;\n }\n });\n\n return error;\n }\n\n return (0, _createChainableTypeChecker2.default)(allPropTypes);\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n\n return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}\nmodule.exports = exports['default'];","/**\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","/** @license React v17.0.2\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\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(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 D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(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){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(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(oa,\npa);D[b]=new B(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(oa,pa);D[b]=new B(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(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(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 ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(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 Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(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 Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(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 $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(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\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(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 bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!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,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({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 vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(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}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!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=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();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=Xa(a.document)}return b}function Oe(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)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(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}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;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}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(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&64))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 jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(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[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,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=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _lottieWeb = require('lottie-web');\n\nvar _lottieWeb2 = _interopRequireDefault(_lottieWeb);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Lottie = function (_React$Component) {\n (0, _inherits3.default)(Lottie, _React$Component);\n\n function Lottie() {\n var _ref;\n\n var _temp, _this, _ret;\n\n (0, _classCallCheck3.default)(this, Lottie);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Lottie.__proto__ || (0, _getPrototypeOf2.default)(Lottie)).call.apply(_ref, [this].concat(args))), _this), _this.handleClickToPause = function () {\n // The pause() method is for handling pausing by passing a prop isPaused\n // This method is for handling the ability to pause by clicking on the animation\n if (_this.anim.isPaused) {\n _this.anim.play();\n } else {\n _this.anim.pause();\n }\n }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n }\n\n (0, _createClass3.default)(Lottie, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n options = _props.options,\n eventListeners = _props.eventListeners;\n var loop = options.loop,\n autoplay = options.autoplay,\n animationData = options.animationData,\n rendererSettings = options.rendererSettings,\n segments = options.segments;\n\n\n this.options = {\n container: this.el,\n renderer: 'svg',\n loop: loop !== false,\n autoplay: autoplay !== false,\n segments: segments !== false,\n animationData: animationData,\n rendererSettings: rendererSettings\n };\n\n this.options = (0, _extends3.default)({}, this.options, options);\n\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(eventListeners);\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps /* , nextState */) {\n /* Recreate the animation handle if the data is changed */\n if (this.options.animationData !== nextProps.options.animationData) {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options = (0, _extends3.default)({}, this.options, nextProps.options);\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(nextProps.eventListeners);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isStopped) {\n this.stop();\n } else if (this.props.segments) {\n this.playSegments();\n } else {\n this.play();\n }\n\n this.pause();\n this.setSpeed();\n this.setDirection();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options.animationData = null;\n this.anim = null;\n }\n }, {\n key: 'setSpeed',\n value: function setSpeed() {\n this.anim.setSpeed(this.props.speed);\n }\n }, {\n key: 'setDirection',\n value: function setDirection() {\n this.anim.setDirection(this.props.direction);\n }\n }, {\n key: 'play',\n value: function play() {\n this.anim.play();\n }\n }, {\n key: 'playSegments',\n value: function playSegments() {\n this.anim.playSegments(this.props.segments);\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.anim.stop();\n }\n }, {\n key: 'pause',\n value: function pause() {\n if (this.props.isPaused && !this.anim.isPaused) {\n this.anim.pause();\n } else if (!this.props.isPaused && this.anim.isPaused) {\n this.anim.pause();\n }\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.anim.destroy();\n }\n }, {\n key: 'registerEvents',\n value: function registerEvents(eventListeners) {\n var _this2 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this2.anim.addEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'deRegisterEvents',\n value: function deRegisterEvents(eventListeners) {\n var _this3 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this3.anim.removeEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props2 = this.props,\n width = _props2.width,\n height = _props2.height,\n ariaRole = _props2.ariaRole,\n ariaLabel = _props2.ariaLabel,\n isClickToPauseDisabled = _props2.isClickToPauseDisabled,\n title = _props2.title;\n\n\n var getSize = function getSize(initial) {\n var size = void 0;\n\n if (typeof initial === 'number') {\n size = initial + 'px';\n } else {\n size = initial || '100%';\n }\n\n return size;\n };\n\n var lottieStyles = (0, _extends3.default)({\n width: getSize(width),\n height: getSize(height),\n overflow: 'hidden',\n margin: '0 auto',\n outline: 'none'\n }, this.props.style);\n\n var onClickHandler = isClickToPauseDisabled ? function () {\n return null;\n } : this.handleClickToPause;\n\n return (\n // Bug with eslint rules https://github.com/airbnb/javascript/issues/1374\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _react2.default.createElement('div', {\n ref: function ref(c) {\n _this4.el = c;\n },\n style: lottieStyles,\n onClick: onClickHandler,\n title: title,\n role: ariaRole,\n 'aria-label': ariaLabel,\n tabIndex: '0'\n })\n );\n }\n }]);\n return Lottie;\n}(_react2.default.Component);\n\nexports.default = Lottie;\n\n\nLottie.propTypes = {\n eventListeners: _propTypes2.default.arrayOf(_propTypes2.default.object),\n options: _propTypes2.default.object.isRequired,\n height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n isStopped: _propTypes2.default.bool,\n isPaused: _propTypes2.default.bool,\n speed: _propTypes2.default.number,\n segments: _propTypes2.default.arrayOf(_propTypes2.default.number),\n direction: _propTypes2.default.number,\n ariaRole: _propTypes2.default.string,\n ariaLabel: _propTypes2.default.string,\n isClickToPauseDisabled: _propTypes2.default.bool,\n title: _propTypes2.default.string\n};\n\nLottie.defaultProps = {\n eventListeners: [],\n isStopped: false,\n isPaused: false,\n speed: 1,\n ariaRole: 'button',\n ariaLabel: 'animation',\n isClickToPauseDisabled: false,\n title: ''\n};","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/** @license React v17.0.2\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';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.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:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.2\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=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","/** @license React v0.20.2\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';var f,g,h,k;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}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=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","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _redux = require(\"redux\");\n\nvar _reducers = _interopRequireDefault(require(\"./reducers\"));\n\nvar playerActions = _interopRequireWildcard(require(\"./actions/player\"));\n\nvar videoActions = _interopRequireWildcard(require(\"./actions/video\"));\n\nvar Manager =\n/*#__PURE__*/\nfunction () {\n function Manager(store) {\n (0, _classCallCheck2[\"default\"])(this, Manager);\n this.store = store || (0, _redux.createStore)(_reducers[\"default\"]);\n this.video = null;\n this.rootElement = null;\n }\n\n (0, _createClass2[\"default\"])(Manager, [{\n key: \"getActions\",\n value: function getActions() {\n var manager = this;\n var dispatch = this.store.dispatch;\n var actions = (0, _objectSpread2[\"default\"])({}, playerActions, videoActions);\n\n function bindActionCreator(actionCreator) {\n return function bindAction() {\n // eslint-disable-next-line prefer-rest-params\n var action = actionCreator.apply(manager, arguments);\n\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n\n return Object.keys(actions).filter(function (key) {\n return typeof actions[key] === 'function';\n }).reduce(function (boundActions, key) {\n boundActions[key] = bindActionCreator(actions[key]);\n return boundActions;\n }, {});\n }\n }, {\n key: \"getState\",\n value: function getState() {\n return this.store.getState();\n } // subscribe state change\n\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener, getState) {\n if (!getState) {\n getState = this.getState.bind(this);\n }\n\n var prevState = getState();\n\n var handleChange = function handleChange() {\n var state = getState();\n\n if (state === prevState) {\n return;\n }\n\n var prevStateCopy = prevState;\n prevState = state;\n listener(state, prevStateCopy);\n };\n\n return this.store.subscribe(handleChange);\n } // subscribe to operation state change\n\n }, {\n key: \"subscribeToOperationStateChange\",\n value: function subscribeToOperationStateChange(listener) {\n var _this = this;\n\n return this.subscribeToStateChange(listener, function () {\n return _this.getState().operation;\n });\n } // subscribe to player state change\n\n }, {\n key: \"subscribeToPlayerStateChange\",\n value: function subscribeToPlayerStateChange(listener) {\n var _this2 = this;\n\n return this.subscribeToStateChange(listener, function () {\n return _this2.getState().player;\n });\n }\n }]);\n return Manager;\n}();\n\nexports[\"default\"] = Manager;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleFullscreenChange = handleFullscreenChange;\nexports.activate = activate;\nexports.userActivate = userActivate;\nexports.play = play;\nexports.pause = pause;\nexports.togglePlay = togglePlay;\nexports.seek = seek;\nexports.forward = forward;\nexports.replay = replay;\nexports.changeRate = changeRate;\nexports.changeVolume = changeVolume;\nexports.mute = mute;\nexports.toggleFullscreen = toggleFullscreen;\nexports.USER_ACTIVATE = exports.PLAYER_ACTIVATE = exports.FULLSCREEN_CHANGE = exports.OPERATE = void 0;\n\nvar _fullscreen = _interopRequireDefault(require(\"../utils/fullscreen\"));\n\nvar OPERATE = 'video-react/OPERATE';\nexports.OPERATE = OPERATE;\nvar FULLSCREEN_CHANGE = 'video-react/FULLSCREEN_CHANGE';\nexports.FULLSCREEN_CHANGE = FULLSCREEN_CHANGE;\nvar PLAYER_ACTIVATE = 'video-react/PLAYER_ACTIVATE';\nexports.PLAYER_ACTIVATE = PLAYER_ACTIVATE;\nvar USER_ACTIVATE = 'video-react/USER_ACTIVATE';\nexports.USER_ACTIVATE = USER_ACTIVATE;\n\nfunction handleFullscreenChange(isFullscreen) {\n return {\n type: FULLSCREEN_CHANGE,\n isFullscreen: isFullscreen\n };\n}\n\nfunction activate(activity) {\n return {\n type: PLAYER_ACTIVATE,\n activity: activity\n };\n}\n\nfunction userActivate(activity) {\n return {\n type: USER_ACTIVATE,\n activity: activity\n };\n}\n\nfunction play() {\n var operation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n action: 'play',\n source: ''\n };\n this.video.play();\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction pause() {\n var operation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n action: 'pause',\n source: ''\n };\n this.video.pause();\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction togglePlay() {\n var operation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n action: 'toggle-play',\n source: ''\n };\n this.video.togglePlay();\n return {\n type: OPERATE,\n operation: operation\n };\n} // seek video by time\n\n\nfunction seek(time) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: 'seek',\n source: ''\n };\n this.video.seek(time);\n return {\n type: OPERATE,\n operation: operation\n };\n} // jump forward x seconds\n\n\nfunction forward(seconds) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: \"forward-\".concat(seconds),\n source: ''\n };\n this.video.forward(seconds);\n return {\n type: OPERATE,\n operation: operation\n };\n} // jump back x seconds\n\n\nfunction replay(seconds) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: \"replay-\".concat(seconds),\n source: ''\n };\n this.video.replay(seconds);\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction changeRate(rate) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: 'change-rate',\n source: ''\n };\n this.video.playbackRate = rate;\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction changeVolume(volume) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: 'change-volume',\n source: ''\n };\n var v = volume;\n\n if (volume < 0) {\n v = 0;\n }\n\n if (volume > 1) {\n v = 1;\n }\n\n this.video.volume = v;\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction mute(muted) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: muted ? 'muted' : 'unmuted',\n source: ''\n };\n this.video.muted = muted;\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction toggleFullscreen(player) {\n if (_fullscreen[\"default\"].enabled) {\n if (_fullscreen[\"default\"].isFullscreen) {\n _fullscreen[\"default\"].exit();\n } else {\n _fullscreen[\"default\"].request(this.rootElement);\n }\n\n return {\n type: OPERATE,\n operation: {\n action: 'toggle-fullscreen',\n source: ''\n }\n };\n }\n\n return {\n type: FULLSCREEN_CHANGE,\n isFullscreen: !player.isFullscreen\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleLoadStart = handleLoadStart;\nexports.handleCanPlay = handleCanPlay;\nexports.handleWaiting = handleWaiting;\nexports.handleCanPlayThrough = handleCanPlayThrough;\nexports.handlePlaying = handlePlaying;\nexports.handlePlay = handlePlay;\nexports.handlePause = handlePause;\nexports.handleEnd = handleEnd;\nexports.handleSeeking = handleSeeking;\nexports.handleSeeked = handleSeeked;\nexports.handleDurationChange = handleDurationChange;\nexports.handleTimeUpdate = handleTimeUpdate;\nexports.handleVolumeChange = handleVolumeChange;\nexports.handleProgressChange = handleProgressChange;\nexports.handleRateChange = handleRateChange;\nexports.handleSuspend = handleSuspend;\nexports.handleAbort = handleAbort;\nexports.handleEmptied = handleEmptied;\nexports.handleStalled = handleStalled;\nexports.handleLoadedMetaData = handleLoadedMetaData;\nexports.handleLoadedData = handleLoadedData;\nexports.handleResize = handleResize;\nexports.handleError = handleError;\nexports.handleSeekingTime = handleSeekingTime;\nexports.handleEndSeeking = handleEndSeeking;\nexports.activateTextTrack = activateTextTrack;\nexports.ACTIVATE_TEXT_TRACK = exports.ERROR = exports.RESIZE = exports.LOADED_DATA = exports.LOADED_META_DATA = exports.STALLED = exports.EMPTIED = exports.ABORT = exports.SUSPEND = exports.RATE_CHANGE = exports.PROGRESS_CHANGE = exports.VOLUME_CHANGE = exports.TIME_UPDATE = exports.DURATION_CHANGE = exports.END_SEEKING = exports.SEEKING_TIME = exports.SEEKED = exports.SEEKING = exports.END = exports.PAUSE = exports.PLAY = exports.PLAYING = exports.CAN_PLAY_THROUGH = exports.WAITING = exports.CAN_PLAY = exports.LOAD_START = void 0;\nvar LOAD_START = 'video-react/LOAD_START';\nexports.LOAD_START = LOAD_START;\nvar CAN_PLAY = 'video-react/CAN_PLAY';\nexports.CAN_PLAY = CAN_PLAY;\nvar WAITING = 'video-react/WAITING';\nexports.WAITING = WAITING;\nvar CAN_PLAY_THROUGH = 'video-react/CAN_PLAY_THROUGH';\nexports.CAN_PLAY_THROUGH = CAN_PLAY_THROUGH;\nvar PLAYING = 'video-react/PLAYING';\nexports.PLAYING = PLAYING;\nvar PLAY = 'video-react/PLAY';\nexports.PLAY = PLAY;\nvar PAUSE = 'video-react/PAUSE';\nexports.PAUSE = PAUSE;\nvar END = 'video-react/END';\nexports.END = END;\nvar SEEKING = 'video-react/SEEKING';\nexports.SEEKING = SEEKING;\nvar SEEKED = 'video-react/SEEKED';\nexports.SEEKED = SEEKED;\nvar SEEKING_TIME = 'video-react/SEEKING_TIME';\nexports.SEEKING_TIME = SEEKING_TIME;\nvar END_SEEKING = 'video-react/END_SEEKING';\nexports.END_SEEKING = END_SEEKING;\nvar DURATION_CHANGE = 'video-react/DURATION_CHANGE';\nexports.DURATION_CHANGE = DURATION_CHANGE;\nvar TIME_UPDATE = 'video-react/TIME_UPDATE';\nexports.TIME_UPDATE = TIME_UPDATE;\nvar VOLUME_CHANGE = 'video-react/VOLUME_CHANGE';\nexports.VOLUME_CHANGE = VOLUME_CHANGE;\nvar PROGRESS_CHANGE = 'video-react/PROGRESS_CHANGE';\nexports.PROGRESS_CHANGE = PROGRESS_CHANGE;\nvar RATE_CHANGE = 'video-react/RATE_CHANGE';\nexports.RATE_CHANGE = RATE_CHANGE;\nvar SUSPEND = 'video-react/SUSPEND';\nexports.SUSPEND = SUSPEND;\nvar ABORT = 'video-react/ABORT';\nexports.ABORT = ABORT;\nvar EMPTIED = 'video-react/EMPTIED';\nexports.EMPTIED = EMPTIED;\nvar STALLED = 'video-react/STALLED';\nexports.STALLED = STALLED;\nvar LOADED_META_DATA = 'video-react/LOADED_META_DATA';\nexports.LOADED_META_DATA = LOADED_META_DATA;\nvar LOADED_DATA = 'video-react/LOADED_DATA';\nexports.LOADED_DATA = LOADED_DATA;\nvar RESIZE = 'video-react/RESIZE';\nexports.RESIZE = RESIZE;\nvar ERROR = 'video-react/ERROR';\nexports.ERROR = ERROR;\nvar ACTIVATE_TEXT_TRACK = 'video-react/ACTIVATE_TEXT_TRACK';\nexports.ACTIVATE_TEXT_TRACK = ACTIVATE_TEXT_TRACK;\n\nfunction handleLoadStart(videoProps) {\n return {\n type: LOAD_START,\n videoProps: videoProps\n };\n}\n\nfunction handleCanPlay(videoProps) {\n return {\n type: CAN_PLAY,\n videoProps: videoProps\n };\n}\n\nfunction handleWaiting(videoProps) {\n return {\n type: WAITING,\n videoProps: videoProps\n };\n}\n\nfunction handleCanPlayThrough(videoProps) {\n return {\n type: CAN_PLAY_THROUGH,\n videoProps: videoProps\n };\n}\n\nfunction handlePlaying(videoProps) {\n return {\n type: PLAYING,\n videoProps: videoProps\n };\n}\n\nfunction handlePlay(videoProps) {\n return {\n type: PLAY,\n videoProps: videoProps\n };\n}\n\nfunction handlePause(videoProps) {\n return {\n type: PAUSE,\n videoProps: videoProps\n };\n}\n\nfunction handleEnd(videoProps) {\n return {\n type: END,\n videoProps: videoProps\n };\n}\n\nfunction handleSeeking(videoProps) {\n return {\n type: SEEKING,\n videoProps: videoProps\n };\n}\n\nfunction handleSeeked(videoProps) {\n return {\n type: SEEKED,\n videoProps: videoProps\n };\n}\n\nfunction handleDurationChange(videoProps) {\n return {\n type: DURATION_CHANGE,\n videoProps: videoProps\n };\n}\n\nfunction handleTimeUpdate(videoProps) {\n return {\n type: TIME_UPDATE,\n videoProps: videoProps\n };\n}\n\nfunction handleVolumeChange(videoProps) {\n return {\n type: VOLUME_CHANGE,\n videoProps: videoProps\n };\n}\n\nfunction handleProgressChange(videoProps) {\n return {\n type: PROGRESS_CHANGE,\n videoProps: videoProps\n };\n}\n\nfunction handleRateChange(videoProps) {\n return {\n type: RATE_CHANGE,\n videoProps: videoProps\n };\n}\n\nfunction handleSuspend(videoProps) {\n return {\n type: SUSPEND,\n videoProps: videoProps\n };\n}\n\nfunction handleAbort(videoProps) {\n return {\n type: ABORT,\n videoProps: videoProps\n };\n}\n\nfunction handleEmptied(videoProps) {\n return {\n type: EMPTIED,\n videoProps: videoProps\n };\n}\n\nfunction handleStalled(videoProps) {\n return {\n type: STALLED,\n videoProps: videoProps\n };\n}\n\nfunction handleLoadedMetaData(videoProps) {\n return {\n type: LOADED_META_DATA,\n videoProps: videoProps\n };\n}\n\nfunction handleLoadedData(videoProps) {\n return {\n type: LOADED_DATA,\n videoProps: videoProps\n };\n}\n\nfunction handleResize(videoProps) {\n return {\n type: RESIZE,\n videoProps: videoProps\n };\n}\n\nfunction handleError(videoProps) {\n return {\n type: ERROR,\n videoProps: videoProps\n };\n}\n\nfunction handleSeekingTime(time) {\n return {\n type: SEEKING_TIME,\n time: time\n };\n}\n\nfunction handleEndSeeking(time) {\n return {\n type: END_SEEKING,\n time: time\n };\n}\n\nfunction activateTextTrack(textTrack) {\n return {\n type: ACTIVATE_TEXT_TRACK,\n textTrack: textTrack\n };\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n manager: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar Bezel =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Bezel, _Component);\n\n function Bezel(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Bezel);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Bezel).call(this, props, context));\n _this.timer = null;\n props.manager.subscribeToOperationStateChange(_this.handleStateChange.bind((0, _assertThisInitialized2[\"default\"])(_this)));\n _this.state = {\n hidden: true,\n operation: {}\n };\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Bezel, [{\n key: \"handleStateChange\",\n value: function handleStateChange(state, prevState) {\n var _this2 = this;\n\n if (state.count !== prevState.count && state.operation.source === 'shortcut') {\n if (this.timer) {\n // previous animation is not finished\n clearTimeout(this.timer); // cancel it\n\n this.timer = null;\n } // show it\n // update operation\n\n\n this.setState({\n hidden: false,\n count: state.count,\n operation: state.operation\n }); // hide it after 0.5s\n\n this.timer = setTimeout(function () {\n _this2.setState({\n hidden: true\n });\n\n _this2.timer = null;\n }, 500);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n // only displays for shortcut so far\n if (this.state.operation.source !== 'shortcut') {\n return null;\n }\n\n var style = this.state.hidden ? {\n display: 'none'\n } : null;\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])({\n 'video-react-bezel': true,\n 'video-react-bezel-animation': this.state.count % 2 === 0,\n 'video-react-bezel-animation-alt': this.state.count % 2 === 1\n }, this.props.className),\n style: style,\n role: \"status\",\n \"aria-label\": this.state.operation.action\n }, _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-bezel-icon', \"video-react-bezel-icon-\".concat(this.state.operation.action))\n }));\n }\n }]);\n return Bezel;\n}(_react.Component);\n\nexports[\"default\"] = Bezel;\nBezel.propTypes = propTypes;\nBezel.displayName = 'Bezel';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n position: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n position: 'left'\n};\n\nvar BigPlayButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(BigPlayButton, _Component);\n\n function BigPlayButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, BigPlayButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(BigPlayButton).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(BigPlayButton, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {}\n }, {\n key: \"handleClick\",\n value: function handleClick() {\n var actions = this.props.actions;\n actions.play();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n player = _this$props.player,\n position = _this$props.position;\n return _react[\"default\"].createElement(\"button\", {\n className: (0, _classnames[\"default\"])('video-react-button', 'video-react-big-play-button', \"video-react-big-play-button-\".concat(position), this.props.className, {\n 'big-play-button-hide': player.hasStarted || !player.currentSrc\n }),\n type: \"button\",\n \"aria-live\": \"polite\",\n tabIndex: \"0\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Play Video\"));\n }\n }]);\n return BigPlayButton;\n}(_react.Component);\n\nexports[\"default\"] = BigPlayButton;\nBigPlayButton.propTypes = propTypes;\nBigPlayButton.defaultProps = defaultProps;\nBigPlayButton.displayName = 'BigPlayButton';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n tagName: _propTypes[\"default\"].string,\n onClick: _propTypes[\"default\"].func.isRequired,\n onFocus: _propTypes[\"default\"].func,\n onBlur: _propTypes[\"default\"].func,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n tagName: 'div'\n};\n\nvar ClickableComponent =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(ClickableComponent, _Component);\n\n function ClickableComponent(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ClickableComponent);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ClickableComponent).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeypress = _this.handleKeypress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ClickableComponent, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount(e) {\n this.handleBlur(e);\n }\n }, {\n key: \"handleKeypress\",\n value: function handleKeypress(event) {\n // Support Space (32) or Enter (13) key operation to fire a click event\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(event) {\n var onClick = this.props.onClick;\n onClick(event);\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus(e) {\n document.addEventListener('keydown', this.handleKeypress);\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur(e) {\n document.removeEventListener('keydown', this.handleKeypress);\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var Tag = this.props.tagName;\n var props = (0, _objectSpread2[\"default\"])({}, this.props);\n delete props.tagName;\n delete props.className;\n return _react[\"default\"].createElement(Tag, (0, _extends2[\"default\"])({\n className: (0, _classnames[\"default\"])(this.props.className),\n role: \"button\",\n tabIndex: \"0\",\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n }, props));\n }\n }]);\n return ClickableComponent;\n}(_react.Component);\n\nexports[\"default\"] = ClickableComponent;\nClickableComponent.propTypes = propTypes;\nClickableComponent.defaultProps = defaultProps;\nClickableComponent.displayName = 'ClickableComponent';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = LoadingSpinner;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction LoadingSpinner(_ref) {\n var player = _ref.player,\n className = _ref.className;\n\n if (player.error) {\n return null;\n }\n\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-loading-spinner', className)\n });\n}\n\nLoadingSpinner.propTypes = propTypes;\nLoadingSpinner.displayName = 'LoadingSpinner';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Manager = _interopRequireDefault(require(\"../Manager\"));\n\nvar _BigPlayButton = _interopRequireDefault(require(\"./BigPlayButton\"));\n\nvar _LoadingSpinner = _interopRequireDefault(require(\"./LoadingSpinner\"));\n\nvar _PosterImage = _interopRequireDefault(require(\"./PosterImage\"));\n\nvar _Video = _interopRequireDefault(require(\"./Video\"));\n\nvar _Bezel = _interopRequireDefault(require(\"./Bezel\"));\n\nvar _Shortcut = _interopRequireDefault(require(\"./Shortcut\"));\n\nvar _ControlBar = _interopRequireDefault(require(\"./control-bar/ControlBar\"));\n\nvar browser = _interopRequireWildcard(require(\"../utils/browser\"));\n\nvar _dom = require(\"../utils/dom\");\n\nvar _utils = require(\"../utils\");\n\nvar _fullscreen = _interopRequireDefault(require(\"../utils/fullscreen\"));\n\nvar propTypes = {\n children: _propTypes[\"default\"].any,\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n fluid: _propTypes[\"default\"].bool,\n muted: _propTypes[\"default\"].bool,\n playsInline: _propTypes[\"default\"].bool,\n aspectRatio: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string,\n videoId: _propTypes[\"default\"].string,\n startTime: _propTypes[\"default\"].number,\n loop: _propTypes[\"default\"].bool,\n autoPlay: _propTypes[\"default\"].bool,\n src: _propTypes[\"default\"].string,\n poster: _propTypes[\"default\"].string,\n preload: _propTypes[\"default\"].oneOf(['auto', 'metadata', 'none']),\n onLoadStart: _propTypes[\"default\"].func,\n onWaiting: _propTypes[\"default\"].func,\n onCanPlay: _propTypes[\"default\"].func,\n onCanPlayThrough: _propTypes[\"default\"].func,\n onPlaying: _propTypes[\"default\"].func,\n onEnded: _propTypes[\"default\"].func,\n onSeeking: _propTypes[\"default\"].func,\n onSeeked: _propTypes[\"default\"].func,\n onPlay: _propTypes[\"default\"].func,\n onPause: _propTypes[\"default\"].func,\n onProgress: _propTypes[\"default\"].func,\n onDurationChange: _propTypes[\"default\"].func,\n onError: _propTypes[\"default\"].func,\n onSuspend: _propTypes[\"default\"].func,\n onAbort: _propTypes[\"default\"].func,\n onEmptied: _propTypes[\"default\"].func,\n onStalled: _propTypes[\"default\"].func,\n onLoadedMetadata: _propTypes[\"default\"].func,\n onLoadedData: _propTypes[\"default\"].func,\n onTimeUpdate: _propTypes[\"default\"].func,\n onRateChange: _propTypes[\"default\"].func,\n onVolumeChange: _propTypes[\"default\"].func,\n store: _propTypes[\"default\"].object\n};\nvar defaultProps = {\n fluid: true,\n muted: false,\n playsInline: false,\n preload: 'auto',\n aspectRatio: 'auto'\n};\n\nvar Player =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Player, _Component);\n\n function Player(props) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Player);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Player).call(this, props));\n _this.controlsHideTimer = null;\n _this.video = null; // the Video component\n\n _this.manager = new _Manager[\"default\"](props.store);\n _this.actions = _this.manager.getActions();\n\n _this.manager.subscribeToPlayerStateChange(_this.handleStateChange.bind((0, _assertThisInitialized2[\"default\"])(_this)));\n\n _this.getStyle = _this.getStyle.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleResize = _this.handleResize.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getChildren = _this.getChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseMove = (0, _utils.throttle)(_this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this)), 250);\n _this.handleMouseDown = _this.handleMouseDown.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.startControlsTimer = _this.startControlsTimer.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFullScreenChange = _this.handleFullScreenChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeyDown = _this.handleKeyDown.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Player, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.handleResize();\n window.addEventListener('resize', this.handleResize);\n\n _fullscreen[\"default\"].addEventListener(this.handleFullScreenChange);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n // Remove event listener\n window.removeEventListener('resize', this.handleResize);\n\n _fullscreen[\"default\"].removeEventListener(this.handleFullScreenChange);\n\n if (this.controlsHideTimer) {\n window.clearTimeout(this.controlsHideTimer);\n }\n }\n }, {\n key: \"getDefaultChildren\",\n value: function getDefaultChildren(originalChildren) {\n var _this2 = this;\n\n return [_react[\"default\"].createElement(_Video[\"default\"], {\n ref: function ref(c) {\n _this2.video = c;\n _this2.manager.video = _this2.video;\n },\n key: \"video\",\n order: 0.0\n }, originalChildren), _react[\"default\"].createElement(_PosterImage[\"default\"], {\n key: \"poster-image\",\n order: 1.0\n }), _react[\"default\"].createElement(_LoadingSpinner[\"default\"], {\n key: \"loading-spinner\",\n order: 2.0\n }), _react[\"default\"].createElement(_Bezel[\"default\"], {\n key: \"bezel\",\n order: 3.0\n }), _react[\"default\"].createElement(_BigPlayButton[\"default\"], {\n key: \"big-play-button\",\n order: 4.0\n }), _react[\"default\"].createElement(_ControlBar[\"default\"], {\n key: \"control-bar\",\n order: 5.0\n }), _react[\"default\"].createElement(_Shortcut[\"default\"], {\n key: \"shortcut\",\n order: 99.0\n })];\n }\n }, {\n key: \"getChildren\",\n value: function getChildren(props) {\n var _ = props.className,\n originalChildren = props.children,\n propsWithoutChildren = (0, _objectWithoutProperties2[\"default\"])(props, [\"className\", \"children\"]);\n\n var children = _react[\"default\"].Children.toArray(this.props.children).filter(function (e) {\n return !(0, _utils.isVideoChild)(e);\n });\n\n var defaultChildren = this.getDefaultChildren(originalChildren);\n return (0, _utils.mergeAndSortChildren)(defaultChildren, children, propsWithoutChildren);\n }\n }, {\n key: \"setWidthOrHeight\",\n value: function setWidthOrHeight(style, name, value) {\n var styleVal;\n\n if (typeof value === 'string') {\n if (value === 'auto') {\n styleVal = 'auto';\n } else if (value.match(/\\d+%/)) {\n styleVal = value;\n }\n } else if (typeof value === 'number') {\n styleVal = \"\".concat(value, \"px\");\n }\n\n Object.assign(style, (0, _defineProperty2[\"default\"])({}, name, styleVal));\n }\n }, {\n key: \"getStyle\",\n value: function getStyle() {\n var _this$props = this.props,\n fluid = _this$props.fluid,\n propsAspectRatio = _this$props.aspectRatio,\n propsHeight = _this$props.height,\n propsWidth = _this$props.width;\n\n var _this$manager$getStat = this.manager.getState(),\n player = _this$manager$getStat.player;\n\n var style = {};\n var width;\n var height;\n var aspectRatio; // The aspect ratio is either used directly or to calculate width and height.\n\n if (propsAspectRatio !== undefined && propsAspectRatio !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = propsAspectRatio;\n } else if (player.videoWidth) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = \"\".concat(player.videoWidth, \":\").concat(player.videoHeight);\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n } // Get the ratio as a decimal we can use to calculate dimensions\n\n\n var ratioParts = aspectRatio.split(':');\n var ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (propsWidth !== undefined) {\n // Use any width that's been specifically set\n width = propsWidth;\n } else if (propsHeight !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = propsHeight / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = player.videoWidth || 400;\n }\n\n if (propsHeight !== undefined) {\n // Use any height that's been specifically set\n height = propsHeight;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n if (fluid) {\n style.paddingTop = \"\".concat(ratioMultiplier * 100, \"%\");\n } else {\n // If Width contains \"auto\", set \"auto\" in style\n this.setWidthOrHeight(style, 'width', width);\n this.setWidthOrHeight(style, 'height', height);\n }\n\n return style;\n } // get redux state\n // { player, operation }\n\n }, {\n key: \"getState\",\n value: function getState() {\n return this.manager.getState();\n } // get playback rate\n\n }, {\n key: \"play\",\n // play the video\n value: function play() {\n this.video.play();\n } // pause the video\n\n }, {\n key: \"pause\",\n value: function pause() {\n this.video.pause();\n } // Change the video source and re-load the video:\n\n }, {\n key: \"load\",\n value: function load() {\n this.video.load();\n } // Add a new text track to the video\n\n }, {\n key: \"addTextTrack\",\n value: function addTextTrack() {\n var _this$video;\n\n (_this$video = this.video).addTextTrack.apply(_this$video, arguments);\n } // Check if your browser can play different types of video:\n\n }, {\n key: \"canPlayType\",\n value: function canPlayType() {\n var _this$video2;\n\n (_this$video2 = this.video).canPlayType.apply(_this$video2, arguments);\n } // seek video by time\n\n }, {\n key: \"seek\",\n value: function seek(time) {\n this.video.seek(time);\n } // jump forward x seconds\n\n }, {\n key: \"forward\",\n value: function forward(seconds) {\n this.video.forward(seconds);\n } // jump back x seconds\n\n }, {\n key: \"replay\",\n value: function replay(seconds) {\n this.video.replay(seconds);\n } // enter or exist full screen\n\n }, {\n key: \"toggleFullscreen\",\n value: function toggleFullscreen() {\n this.video.toggleFullscreen();\n } // subscribe to player state change\n\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener) {\n return this.manager.subscribeToPlayerStateChange(listener);\n } // player resize\n\n }, {\n key: \"handleResize\",\n value: function handleResize() {}\n }, {\n key: \"handleFullScreenChange\",\n value: function handleFullScreenChange(event) {\n if (event.target === this.manager.rootElement) {\n this.actions.handleFullscreenChange(_fullscreen[\"default\"].isFullscreen);\n }\n }\n }, {\n key: \"handleMouseDown\",\n value: function handleMouseDown() {\n this.startControlsTimer();\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove() {\n this.startControlsTimer();\n }\n }, {\n key: \"handleKeyDown\",\n value: function handleKeyDown() {\n this.startControlsTimer();\n }\n }, {\n key: \"startControlsTimer\",\n value: function startControlsTimer() {\n var _this3 = this;\n\n var controlBarActiveTime = 3000;\n\n _react[\"default\"].Children.forEach(this.props.children, function (element) {\n if (!_react[\"default\"].isValidElement(element) || element.type !== _ControlBar[\"default\"]) {\n return;\n }\n\n var autoHideTime = element.props.autoHideTime;\n\n if (typeof autoHideTime === 'number') {\n controlBarActiveTime = autoHideTime;\n }\n });\n\n this.actions.userActivate(true);\n clearTimeout(this.controlsHideTimer);\n this.controlsHideTimer = setTimeout(function () {\n _this3.actions.userActivate(false);\n }, controlBarActiveTime);\n }\n }, {\n key: \"handleStateChange\",\n value: function handleStateChange(state, prevState) {\n if (state.isFullscreen !== prevState.isFullscreen) {\n this.handleResize(); // focus root when switching fullscreen mode to avoid confusion #276\n\n (0, _dom.focusNode)(this.manager.rootElement);\n }\n\n this.forceUpdate(); // re-render\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus() {\n this.actions.activate(true);\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur() {\n this.actions.activate(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var fluid = this.props.fluid;\n\n var _this$manager$getStat2 = this.manager.getState(),\n player = _this$manager$getStat2.player;\n\n var paused = player.paused,\n hasStarted = player.hasStarted,\n waiting = player.waiting,\n seeking = player.seeking,\n isFullscreen = player.isFullscreen,\n userActivity = player.userActivity;\n var props = (0, _objectSpread2[\"default\"])({}, this.props, {\n player: player,\n actions: this.actions,\n manager: this.manager,\n store: this.manager.store,\n video: this.video ? this.video.video : null\n });\n var children = this.getChildren(props);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])({\n 'video-react-controls-enabled': true,\n 'video-react-has-started': hasStarted,\n 'video-react-paused': paused,\n 'video-react-playing': !paused,\n 'video-react-waiting': waiting,\n 'video-react-seeking': seeking,\n 'video-react-fluid': fluid,\n 'video-react-fullscreen': isFullscreen,\n 'video-react-user-inactive': !userActivity,\n 'video-react-user-active': userActivity,\n 'video-react-workinghover': !browser.IS_IOS\n }, 'video-react', this.props.className),\n style: this.getStyle(),\n ref: function ref(c) {\n _this4.manager.rootElement = c;\n },\n role: \"region\",\n onTouchStart: this.handleMouseDown,\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleMouseMove,\n onMouseMove: this.handleMouseMove,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: \"-1\"\n }, children);\n }\n }, {\n key: \"playbackRate\",\n get: function get() {\n return this.video.playbackRate;\n } // set playback rate\n // speed of video\n ,\n set: function set(rate) {\n this.video.playbackRate = rate;\n }\n }, {\n key: \"muted\",\n get: function get() {\n return this.video.muted;\n },\n set: function set(val) {\n this.video.muted = val;\n }\n }, {\n key: \"volume\",\n get: function get() {\n return this.video.volume;\n },\n set: function set(val) {\n this.video.volume = val;\n } // video width\n\n }, {\n key: \"videoWidth\",\n get: function get() {\n return this.video.videoWidth;\n } // video height\n\n }, {\n key: \"videoHeight\",\n get: function get() {\n return this.video.videoHeight;\n }\n }]);\n return Player;\n}(_react.Component);\n\nexports[\"default\"] = Player;\nPlayer.contextTypes = {\n store: _propTypes[\"default\"].object\n};\nPlayer.propTypes = propTypes;\nPlayer.defaultProps = defaultProps;\nPlayer.displayName = 'Player';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n poster: _propTypes[\"default\"].string,\n player: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction PosterImage(_ref) {\n var poster = _ref.poster,\n player = _ref.player,\n actions = _ref.actions,\n className = _ref.className;\n\n if (!poster || player.hasStarted) {\n return null;\n }\n\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-poster', className),\n style: {\n backgroundImage: \"url(\\\"\".concat(poster, \"\\\")\")\n },\n onClick: function onClick() {\n if (player.paused) {\n actions.play();\n }\n }\n });\n}\n\nPosterImage.propTypes = propTypes;\nPosterImage.displayName = 'PosterImage';\nvar _default = PosterImage;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = require(\"react\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _dom = require(\"../utils/dom\");\n\nvar propTypes = {\n clickable: _propTypes[\"default\"].bool,\n dblclickable: _propTypes[\"default\"].bool,\n manager: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n shortcuts: _propTypes[\"default\"].array\n};\nvar defaultProps = {\n clickable: true,\n dblclickable: true\n};\n\nvar Shortcut =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Shortcut, _Component);\n\n function Shortcut(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Shortcut);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Shortcut).call(this, props, context));\n _this.defaultShortcuts = [{\n keyCode: 32,\n // spacebar\n handle: _this.togglePlay\n }, {\n keyCode: 75,\n // k\n handle: _this.togglePlay\n }, {\n keyCode: 70,\n // f\n handle: _this.toggleFullscreen\n }, {\n keyCode: 37,\n // Left arrow\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.replay(5, {\n action: 'replay-5',\n source: 'shortcut'\n }); // Go back 5 seconds\n }\n }, {\n keyCode: 74,\n // j\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.replay(10, {\n action: 'replay-10',\n source: 'shortcut'\n }); // Go back 10 seconds\n }\n }, {\n keyCode: 39,\n // Right arrow\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.forward(5, {\n action: 'forward-5',\n source: 'shortcut'\n }); // Go forward 5 seconds\n }\n }, {\n keyCode: 76,\n // l\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.forward(10, {\n action: 'forward-10',\n source: 'shortcut'\n }); // Go forward 10 seconds\n }\n }, {\n keyCode: 36,\n // Home\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.seek(0); // Go to beginning of video\n }\n }, {\n keyCode: 35,\n // End\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n } // Go to end of video\n\n\n actions.seek(player.duration);\n }\n }, {\n keyCode: 38,\n // Up arrow\n handle: function handle(player, actions) {\n // Increase volume 5%\n var v = player.volume + 0.05;\n\n if (v > 1) {\n v = 1;\n }\n\n actions.changeVolume(v, {\n action: 'volume-up',\n source: 'shortcut'\n });\n }\n }, {\n keyCode: 40,\n // Down arrow\n handle: function handle(player, actions) {\n // Decrease volume 5%\n var v = player.volume - 0.05;\n\n if (v < 0) {\n v = 0;\n }\n\n var action = v > 0 ? 'volume-down' : 'volume-off';\n actions.changeVolume(v, {\n action: action,\n source: 'shortcut'\n });\n }\n }, {\n keyCode: 190,\n // Shift + >\n shift: true,\n handle: function handle(player, actions) {\n // Increase speed\n var playbackRate = player.playbackRate;\n\n if (playbackRate >= 1.5) {\n playbackRate = 2;\n } else if (playbackRate >= 1.25) {\n playbackRate = 1.5;\n } else if (playbackRate >= 1.0) {\n playbackRate = 1.25;\n } else if (playbackRate >= 0.5) {\n playbackRate = 1.0;\n } else if (playbackRate >= 0.25) {\n playbackRate = 0.5;\n } else if (playbackRate >= 0) {\n playbackRate = 0.25;\n }\n\n actions.changeRate(playbackRate, {\n action: 'fast-forward',\n source: 'shortcut'\n });\n }\n }, {\n keyCode: 188,\n // Shift + <\n shift: true,\n handle: function handle(player, actions) {\n // Decrease speed\n var playbackRate = player.playbackRate;\n\n if (playbackRate <= 0.5) {\n playbackRate = 0.25;\n } else if (playbackRate <= 1.0) {\n playbackRate = 0.5;\n } else if (playbackRate <= 1.25) {\n playbackRate = 1.0;\n } else if (playbackRate <= 1.5) {\n playbackRate = 1.25;\n } else if (playbackRate <= 2) {\n playbackRate = 1.5;\n }\n\n actions.changeRate(playbackRate, {\n action: 'fast-rewind',\n source: 'shortcut'\n });\n }\n }];\n _this.shortcuts = (0, _toConsumableArray2[\"default\"])(_this.defaultShortcuts);\n _this.mergeShortcuts = _this.mergeShortcuts.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeyPress = _this.handleKeyPress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleDoubleClick = _this.handleDoubleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Shortcut, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mergeShortcuts();\n document.addEventListener('keydown', this.handleKeyPress);\n document.addEventListener('click', this.handleClick);\n document.addEventListener('dblclick', this.handleDoubleClick);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.shortcuts !== this.props.shortcuts) {\n this.mergeShortcuts();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyPress);\n document.removeEventListener('click', this.handleClick);\n document.removeEventListener('dblclick', this.handleDoubleClick);\n } // merge the shortcuts from props\n\n }, {\n key: \"mergeShortcuts\",\n value: function mergeShortcuts() {\n var getShortcutKey = function getShortcutKey(_ref) {\n var _ref$keyCode = _ref.keyCode,\n keyCode = _ref$keyCode === void 0 ? 0 : _ref$keyCode,\n _ref$ctrl = _ref.ctrl,\n ctrl = _ref$ctrl === void 0 ? false : _ref$ctrl,\n _ref$shift = _ref.shift,\n shift = _ref$shift === void 0 ? false : _ref$shift,\n _ref$alt = _ref.alt,\n alt = _ref$alt === void 0 ? false : _ref$alt;\n return \"\".concat(keyCode, \":\").concat(ctrl, \":\").concat(shift, \":\").concat(alt);\n };\n\n var defaultShortcuts = this.defaultShortcuts.reduce(function (shortcuts, shortcut) {\n return Object.assign(shortcuts, (0, _defineProperty2[\"default\"])({}, getShortcutKey(shortcut), shortcut));\n }, {});\n var mergedShortcuts = (this.props.shortcuts || []).reduce(function (shortcuts, shortcut) {\n var keyCode = shortcut.keyCode,\n handle = shortcut.handle;\n\n if (keyCode && typeof handle === 'function') {\n return Object.assign(shortcuts, (0, _defineProperty2[\"default\"])({}, getShortcutKey(shortcut), shortcut));\n }\n\n return shortcuts;\n }, defaultShortcuts);\n\n var gradeShortcut = function gradeShortcut(s) {\n var score = 0;\n var ps = ['ctrl', 'shift', 'alt'];\n ps.forEach(function (key) {\n if (s[key]) {\n score++;\n }\n });\n return score;\n };\n\n this.shortcuts = Object.keys(mergedShortcuts).map(function (key) {\n return mergedShortcuts[key];\n }).sort(function (a, b) {\n return gradeShortcut(b) - gradeShortcut(a);\n });\n }\n }, {\n key: \"togglePlay\",\n value: function togglePlay(player, actions) {\n if (player.paused) {\n actions.play({\n action: 'play',\n source: 'shortcut'\n });\n } else {\n actions.pause({\n action: 'pause',\n source: 'shortcut'\n });\n }\n }\n }, {\n key: \"toggleFullscreen\",\n value: function toggleFullscreen(player, actions) {\n actions.toggleFullscreen(player);\n }\n }, {\n key: \"handleKeyPress\",\n value: function handleKeyPress(e) {\n var _this$props = this.props,\n player = _this$props.player,\n actions = _this$props.actions;\n\n if (!player.isActive) {\n return;\n }\n\n if (document.activeElement && ((0, _dom.hasClass)(document.activeElement, 'video-react-control') || (0, _dom.hasClass)(document.activeElement, 'video-react-menu-button-active') // || hasClass(document.activeElement, 'video-react-slider')\n || (0, _dom.hasClass)(document.activeElement, 'video-react-big-play-button'))) {\n return;\n }\n\n var keyCode = e.keyCode || e.which;\n var ctrl = e.ctrlKey || e.metaKey;\n var shift = e.shiftKey;\n var alt = e.altKey;\n var shortcut = this.shortcuts.filter(function (s) {\n if (!s.keyCode || s.keyCode - keyCode !== 0) {\n return false;\n }\n\n if (s.ctrl !== undefined && s.ctrl !== ctrl || s.shift !== undefined && s.shift !== shift || s.alt !== undefined && s.alt !== alt) {\n return false;\n }\n\n return true;\n })[0];\n\n if (shortcut) {\n shortcut.handle(player, actions);\n e.preventDefault();\n }\n } // only if player is active and player is ready\n\n }, {\n key: \"canBeClicked\",\n value: function canBeClicked(player, e) {\n if (!player.isActive || e.target.nodeName !== 'VIDEO' || player.readyState !== 4) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(e) {\n var _this$props2 = this.props,\n player = _this$props2.player,\n actions = _this$props2.actions,\n clickable = _this$props2.clickable;\n\n if (!this.canBeClicked(player, e) || !clickable) {\n return;\n }\n\n this.togglePlay(player, actions); // e.preventDefault();\n }\n }, {\n key: \"handleDoubleClick\",\n value: function handleDoubleClick(e) {\n var _this$props3 = this.props,\n player = _this$props3.player,\n actions = _this$props3.actions,\n dblclickable = _this$props3.dblclickable;\n\n if (!this.canBeClicked(player, e) || !dblclickable) {\n return;\n }\n\n this.toggleFullscreen(player, actions); // e.preventDefault();\n } // this component dose not render anything\n // it's just for the key down event\n\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n return Shortcut;\n}(_react.Component);\n\nexports[\"default\"] = Shortcut;\nShortcut.propTypes = propTypes;\nShortcut.defaultProps = defaultProps;\nShortcut.displayName = 'Shortcut';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar Dom = _interopRequireWildcard(require(\"../utils/dom\"));\n\nvar propTypes = {\n className: _propTypes[\"default\"].string,\n onMouseDown: _propTypes[\"default\"].func,\n onMouseMove: _propTypes[\"default\"].func,\n stepForward: _propTypes[\"default\"].func,\n stepBack: _propTypes[\"default\"].func,\n sliderActive: _propTypes[\"default\"].func,\n sliderInactive: _propTypes[\"default\"].func,\n onMouseUp: _propTypes[\"default\"].func,\n onFocus: _propTypes[\"default\"].func,\n onBlur: _propTypes[\"default\"].func,\n onClick: _propTypes[\"default\"].func,\n getPercent: _propTypes[\"default\"].func,\n vertical: _propTypes[\"default\"].bool,\n children: _propTypes[\"default\"].node,\n label: _propTypes[\"default\"].string,\n valuenow: _propTypes[\"default\"].string,\n valuetext: _propTypes[\"default\"].string\n};\n\nvar Slider =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Slider, _Component);\n\n function Slider(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Slider);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Slider).call(this, props, context));\n _this.handleMouseDown = _this.handleMouseDown.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseMove = _this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseUp = _this.handleMouseUp.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeyPress = _this.handleKeyPress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepForward = _this.stepForward.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepBack = _this.stepBack.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.calculateDistance = _this.calculateDistance.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getProgress = _this.getProgress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.renderChildren = _this.renderChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.state = {\n active: false\n };\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Slider, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('mousemove', this.handleMouseMove, true);\n document.removeEventListener('mouseup', this.handleMouseUp, true);\n document.removeEventListener('touchmove', this.handleMouseMove, true);\n document.removeEventListener('touchend', this.handleMouseUp, true);\n document.removeEventListener('keydown', this.handleKeyPress, true);\n }\n }, {\n key: \"getProgress\",\n value: function getProgress() {\n var getPercent = this.props.getPercent;\n\n if (!getPercent) {\n return 0;\n }\n\n var progress = getPercent(); // Protect against no duration and other division issues\n\n if (typeof progress !== 'number' || progress < 0 || progress === Infinity) {\n progress = 0;\n }\n\n return progress;\n }\n }, {\n key: \"handleMouseDown\",\n value: function handleMouseDown(event) {\n var onMouseDown = this.props.onMouseDown; // event.preventDefault();\n // event.stopPropagation();\n\n document.addEventListener('mousemove', this.handleMouseMove, true);\n document.addEventListener('mouseup', this.handleMouseUp, true);\n document.addEventListener('touchmove', this.handleMouseMove, true);\n document.addEventListener('touchend', this.handleMouseUp, true);\n this.setState({\n active: true\n });\n\n if (this.props.sliderActive) {\n this.props.sliderActive(event);\n }\n\n this.handleMouseMove(event);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n var onMouseMove = this.props.onMouseMove;\n\n if (onMouseMove) {\n onMouseMove(event);\n }\n }\n }, {\n key: \"handleMouseUp\",\n value: function handleMouseUp(event) {\n // On iOS safari, a subsequent mouseup event will be fired after touchend.\n // Its weird event positions make the player seek a wrong time.\n // calling preventDefault (at touchend phase) will prevent the mouseup event\n event.preventDefault();\n var onMouseUp = this.props.onMouseUp;\n document.removeEventListener('mousemove', this.handleMouseMove, true);\n document.removeEventListener('mouseup', this.handleMouseUp, true);\n document.removeEventListener('touchmove', this.handleMouseMove, true);\n document.removeEventListener('touchend', this.handleMouseUp, true);\n this.setState({\n active: false\n });\n\n if (this.props.sliderInactive) {\n this.props.sliderInactive(event);\n }\n\n if (onMouseUp) {\n onMouseUp(event);\n }\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus(e) {\n document.addEventListener('keydown', this.handleKeyPress, true);\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur(e) {\n document.removeEventListener('keydown', this.handleKeyPress, true);\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(event) {\n event.preventDefault(); // event.stopPropagation();\n\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n }\n }, {\n key: \"handleKeyPress\",\n value: function handleKeyPress(event) {\n if (event.which === 37 || event.which === 40) {\n // Left and Down Arrows\n event.preventDefault();\n event.stopPropagation();\n this.stepBack();\n } else if (event.which === 38 || event.which === 39) {\n // Up and Right Arrows\n event.preventDefault();\n event.stopPropagation();\n this.stepForward();\n }\n }\n }, {\n key: \"stepForward\",\n value: function stepForward() {\n if (this.props.stepForward) {\n this.props.stepForward();\n }\n }\n }, {\n key: \"stepBack\",\n value: function stepBack() {\n if (this.props.stepBack) {\n this.props.stepBack();\n }\n }\n }, {\n key: \"calculateDistance\",\n value: function calculateDistance(event) {\n var node = this.slider;\n var position = Dom.getPointerPosition(node, event);\n\n if (this.props.vertical) {\n return position.y;\n }\n\n return position.x;\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var progress = this.getProgress();\n var percentage = \"\".concat((progress * 100).toFixed(2), \"%\");\n return _react[\"default\"].Children.map(this.props.children, function (child) {\n return _react[\"default\"].cloneElement(child, {\n progress: progress,\n percentage: percentage\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n vertical = _this$props.vertical,\n label = _this$props.label,\n valuenow = _this$props.valuenow,\n valuetext = _this$props.valuetext;\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])(this.props.className, {\n 'video-react-slider-vertical': vertical,\n 'video-react-slider-horizontal': !vertical,\n 'video-react-sliding': this.state.active\n }, 'video-react-slider'),\n ref: function ref(c) {\n _this2.slider = c;\n },\n tabIndex: \"0\",\n role: \"slider\",\n onMouseDown: this.handleMouseDown,\n onTouchStart: this.handleMouseDown,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n \"aria-label\": label || '',\n \"aria-valuenow\": valuenow || '',\n \"aria-valuetext\": valuetext || '',\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100\n }, this.renderChildren());\n }\n }]);\n return Slider;\n}(_react.Component);\n\nexports[\"default\"] = Slider;\nSlider.propTypes = propTypes;\nSlider.displayName = 'Slider';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../utils\");\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n children: _propTypes[\"default\"].any,\n startTime: _propTypes[\"default\"].number,\n loop: _propTypes[\"default\"].bool,\n muted: _propTypes[\"default\"].bool,\n autoPlay: _propTypes[\"default\"].bool,\n playsInline: _propTypes[\"default\"].bool,\n src: _propTypes[\"default\"].string,\n poster: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string,\n preload: _propTypes[\"default\"].oneOf(['auto', 'metadata', 'none']),\n crossOrigin: _propTypes[\"default\"].string,\n onLoadStart: _propTypes[\"default\"].func,\n onWaiting: _propTypes[\"default\"].func,\n onCanPlay: _propTypes[\"default\"].func,\n onCanPlayThrough: _propTypes[\"default\"].func,\n onPlaying: _propTypes[\"default\"].func,\n onEnded: _propTypes[\"default\"].func,\n onSeeking: _propTypes[\"default\"].func,\n onSeeked: _propTypes[\"default\"].func,\n onPlay: _propTypes[\"default\"].func,\n onPause: _propTypes[\"default\"].func,\n onProgress: _propTypes[\"default\"].func,\n onDurationChange: _propTypes[\"default\"].func,\n onError: _propTypes[\"default\"].func,\n onSuspend: _propTypes[\"default\"].func,\n onAbort: _propTypes[\"default\"].func,\n onEmptied: _propTypes[\"default\"].func,\n onStalled: _propTypes[\"default\"].func,\n onLoadedMetadata: _propTypes[\"default\"].func,\n onLoadedData: _propTypes[\"default\"].func,\n onTimeUpdate: _propTypes[\"default\"].func,\n onRateChange: _propTypes[\"default\"].func,\n onVolumeChange: _propTypes[\"default\"].func,\n onResize: _propTypes[\"default\"].func\n};\n\nvar Video =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Video, _Component);\n\n function Video(props) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Video);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Video).call(this, props));\n _this.video = null; // the html5 video\n\n _this.play = _this.play.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.pause = _this.pause.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.seek = _this.seek.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.forward = _this.forward.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.replay = _this.replay.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.toggleFullscreen = _this.toggleFullscreen.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getProperties = _this.getProperties.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.renderChildren = _this.renderChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleLoadStart = _this.handleLoadStart.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleCanPlay = _this.handleCanPlay.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleCanPlayThrough = _this.handleCanPlayThrough.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handlePlay = _this.handlePlay.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handlePlaying = _this.handlePlaying.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handlePause = _this.handlePause.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleEnded = _this.handleEnded.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleWaiting = _this.handleWaiting.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSeeking = _this.handleSeeking.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSeeked = _this.handleSeeked.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFullscreenChange = _this.handleFullscreenChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleError = _this.handleError.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSuspend = _this.handleSuspend.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleAbort = _this.handleAbort.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleEmptied = _this.handleEmptied.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleStalled = _this.handleStalled.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleLoadedMetaData = _this.handleLoadedMetaData.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleLoadedData = _this.handleLoadedData.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleTimeUpdate = _this.handleTimeUpdate.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleRateChange = _this.handleRateChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleVolumeChange = _this.handleVolumeChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleDurationChange = _this.handleDurationChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleProgress = (0, _utils.throttle)(_this.handleProgress.bind((0, _assertThisInitialized2[\"default\"])(_this)), 250);\n _this.handleKeypress = _this.handleKeypress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleTextTrackChange = _this.handleTextTrackChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Video, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.forceUpdate(); // make sure the children can get the video property\n\n if (this.video && this.video.textTracks) {\n this.video.textTracks.onaddtrack = this.handleTextTrackChange;\n this.video.textTracks.onremovetrack = this.handleTextTrackChange;\n }\n } // get all video properties\n\n }, {\n key: \"getProperties\",\n value: function getProperties() {\n var _this2 = this;\n\n if (!this.video) {\n return null;\n }\n\n return _utils.mediaProperties.reduce(function (properties, key) {\n properties[key] = _this2.video[key];\n return properties;\n }, {});\n } // get playback rate\n\n }, {\n key: \"handleTextTrackChange\",\n value: function handleTextTrackChange() {\n var _this$props = this.props,\n actions = _this$props.actions,\n player = _this$props.player;\n\n if (this.video && this.video.textTracks) {\n var activeTextTrack = Array.from(this.video.textTracks).find(function (textTrack) {\n return textTrack.mode === 'showing';\n });\n\n if (activeTextTrack !== player.activeTextTrack) {\n actions.activateTextTrack(activeTextTrack);\n }\n }\n } // play the video\n\n }, {\n key: \"play\",\n value: function play() {\n var promise = this.video.play();\n\n if (promise !== undefined) {\n promise[\"catch\"](function () {}).then(function () {});\n }\n } // pause the video\n\n }, {\n key: \"pause\",\n value: function pause() {\n var promise = this.video.pause();\n\n if (promise !== undefined) {\n promise[\"catch\"](function () {}).then(function () {});\n }\n } // Change the video source and re-load the video:\n\n }, {\n key: \"load\",\n value: function load() {\n this.video.load();\n } // Add a new text track to the video\n\n }, {\n key: \"addTextTrack\",\n value: function addTextTrack() {\n var _this$video;\n\n (_this$video = this.video).addTextTrack.apply(_this$video, arguments);\n } // Check if your browser can play different types of video:\n\n }, {\n key: \"canPlayType\",\n value: function canPlayType() {\n var _this$video2;\n\n (_this$video2 = this.video).canPlayType.apply(_this$video2, arguments);\n } // toggle play\n\n }, {\n key: \"togglePlay\",\n value: function togglePlay() {\n if (this.video.paused) {\n this.play();\n } else {\n this.pause();\n }\n } // seek video by time\n\n }, {\n key: \"seek\",\n value: function seek(time) {\n try {\n this.video.currentTime = time;\n } catch (e) {// console.log(e, 'Video is not ready.')\n }\n } // jump forward x seconds\n\n }, {\n key: \"forward\",\n value: function forward(seconds) {\n this.seek(this.video.currentTime + seconds);\n } // jump back x seconds\n\n }, {\n key: \"replay\",\n value: function replay(seconds) {\n this.forward(-seconds);\n } // enter or exist full screen\n\n }, {\n key: \"toggleFullscreen\",\n value: function toggleFullscreen() {\n var _this$props2 = this.props,\n player = _this$props2.player,\n actions = _this$props2.actions;\n actions.toggleFullscreen(player);\n } // Fired when the user agent\n // begins looking for media data\n\n }, {\n key: \"handleLoadStart\",\n value: function handleLoadStart() {\n var _this$props3 = this.props,\n actions = _this$props3.actions,\n onLoadStart = _this$props3.onLoadStart;\n actions.handleLoadStart(this.getProperties());\n\n if (onLoadStart) {\n onLoadStart.apply(void 0, arguments);\n }\n } // A handler for events that\n // signal that waiting has ended\n\n }, {\n key: \"handleCanPlay\",\n value: function handleCanPlay() {\n var _this$props4 = this.props,\n actions = _this$props4.actions,\n onCanPlay = _this$props4.onCanPlay;\n actions.handleCanPlay(this.getProperties());\n\n if (onCanPlay) {\n onCanPlay.apply(void 0, arguments);\n }\n } // A handler for events that\n // signal that waiting has ended\n\n }, {\n key: \"handleCanPlayThrough\",\n value: function handleCanPlayThrough() {\n var _this$props5 = this.props,\n actions = _this$props5.actions,\n onCanPlayThrough = _this$props5.onCanPlayThrough;\n actions.handleCanPlayThrough(this.getProperties());\n\n if (onCanPlayThrough) {\n onCanPlayThrough.apply(void 0, arguments);\n }\n } // A handler for events that\n // signal that waiting has ended\n\n }, {\n key: \"handlePlaying\",\n value: function handlePlaying() {\n var _this$props6 = this.props,\n actions = _this$props6.actions,\n onPlaying = _this$props6.onPlaying;\n actions.handlePlaying(this.getProperties());\n\n if (onPlaying) {\n onPlaying.apply(void 0, arguments);\n }\n } // Fired whenever the media has been started\n\n }, {\n key: \"handlePlay\",\n value: function handlePlay() {\n var _this$props7 = this.props,\n actions = _this$props7.actions,\n onPlay = _this$props7.onPlay;\n actions.handlePlay(this.getProperties());\n\n if (onPlay) {\n onPlay.apply(void 0, arguments);\n }\n } // Fired whenever the media has been paused\n\n }, {\n key: \"handlePause\",\n value: function handlePause() {\n var _this$props8 = this.props,\n actions = _this$props8.actions,\n onPause = _this$props8.onPause;\n actions.handlePause(this.getProperties());\n\n if (onPause) {\n onPause.apply(void 0, arguments);\n }\n } // Fired when the duration of\n // the media resource is first known or changed\n\n }, {\n key: \"handleDurationChange\",\n value: function handleDurationChange() {\n var _this$props9 = this.props,\n actions = _this$props9.actions,\n onDurationChange = _this$props9.onDurationChange;\n actions.handleDurationChange(this.getProperties());\n\n if (onDurationChange) {\n onDurationChange.apply(void 0, arguments);\n }\n } // Fired while the user agent\n // is downloading media data\n\n }, {\n key: \"handleProgress\",\n value: function handleProgress() {\n var _this$props10 = this.props,\n actions = _this$props10.actions,\n onProgress = _this$props10.onProgress;\n\n if (this.video) {\n actions.handleProgressChange(this.getProperties());\n }\n\n if (onProgress) {\n onProgress.apply(void 0, arguments);\n }\n } // Fired when the end of the media resource\n // is reached (currentTime == duration)\n\n }, {\n key: \"handleEnded\",\n value: function handleEnded() {\n var _this$props11 = this.props,\n loop = _this$props11.loop,\n player = _this$props11.player,\n actions = _this$props11.actions,\n onEnded = _this$props11.onEnded;\n\n if (loop) {\n this.seek(0);\n this.play();\n } else if (!player.paused) {\n this.pause();\n }\n\n actions.handleEnd(this.getProperties());\n\n if (onEnded) {\n onEnded.apply(void 0, arguments);\n }\n } // Fired whenever the media begins waiting\n\n }, {\n key: \"handleWaiting\",\n value: function handleWaiting() {\n var _this$props12 = this.props,\n actions = _this$props12.actions,\n onWaiting = _this$props12.onWaiting;\n actions.handleWaiting(this.getProperties());\n\n if (onWaiting) {\n onWaiting.apply(void 0, arguments);\n }\n } // Fired whenever the player\n // is jumping to a new time\n\n }, {\n key: \"handleSeeking\",\n value: function handleSeeking() {\n var _this$props13 = this.props,\n actions = _this$props13.actions,\n onSeeking = _this$props13.onSeeking;\n actions.handleSeeking(this.getProperties());\n\n if (onSeeking) {\n onSeeking.apply(void 0, arguments);\n }\n } // Fired when the player has\n // finished jumping to a new time\n\n }, {\n key: \"handleSeeked\",\n value: function handleSeeked() {\n var _this$props14 = this.props,\n actions = _this$props14.actions,\n onSeeked = _this$props14.onSeeked;\n actions.handleSeeked(this.getProperties());\n\n if (onSeeked) {\n onSeeked.apply(void 0, arguments);\n }\n } // Handle Fullscreen Change\n\n }, {\n key: \"handleFullscreenChange\",\n value: function handleFullscreenChange() {} // Fires when the browser is\n // intentionally not getting media data\n\n }, {\n key: \"handleSuspend\",\n value: function handleSuspend() {\n var _this$props15 = this.props,\n actions = _this$props15.actions,\n onSuspend = _this$props15.onSuspend;\n actions.handleSuspend(this.getProperties());\n\n if (onSuspend) {\n onSuspend.apply(void 0, arguments);\n }\n } // Fires when the loading of an audio/video is aborted\n\n }, {\n key: \"handleAbort\",\n value: function handleAbort() {\n var _this$props16 = this.props,\n actions = _this$props16.actions,\n onAbort = _this$props16.onAbort;\n actions.handleAbort(this.getProperties());\n\n if (onAbort) {\n onAbort.apply(void 0, arguments);\n }\n } // Fires when the current playlist is empty\n\n }, {\n key: \"handleEmptied\",\n value: function handleEmptied() {\n var _this$props17 = this.props,\n actions = _this$props17.actions,\n onEmptied = _this$props17.onEmptied;\n actions.handleEmptied(this.getProperties());\n\n if (onEmptied) {\n onEmptied.apply(void 0, arguments);\n }\n } // Fires when the browser is trying to\n // get media data, but data is not available\n\n }, {\n key: \"handleStalled\",\n value: function handleStalled() {\n var _this$props18 = this.props,\n actions = _this$props18.actions,\n onStalled = _this$props18.onStalled;\n actions.handleStalled(this.getProperties());\n\n if (onStalled) {\n onStalled.apply(void 0, arguments);\n }\n } // Fires when the browser has loaded\n // meta data for the audio/video\n\n }, {\n key: \"handleLoadedMetaData\",\n value: function handleLoadedMetaData() {\n var _this$props19 = this.props,\n actions = _this$props19.actions,\n onLoadedMetadata = _this$props19.onLoadedMetadata,\n startTime = _this$props19.startTime;\n\n if (startTime && startTime > 0) {\n this.video.currentTime = startTime;\n }\n\n actions.handleLoadedMetaData(this.getProperties());\n\n if (onLoadedMetadata) {\n onLoadedMetadata.apply(void 0, arguments);\n }\n } // Fires when the browser has loaded\n // the current frame of the audio/video\n\n }, {\n key: \"handleLoadedData\",\n value: function handleLoadedData() {\n var _this$props20 = this.props,\n actions = _this$props20.actions,\n onLoadedData = _this$props20.onLoadedData;\n actions.handleLoadedData(this.getProperties());\n\n if (onLoadedData) {\n onLoadedData.apply(void 0, arguments);\n }\n } // Fires when the current\n // playback position has changed\n\n }, {\n key: \"handleTimeUpdate\",\n value: function handleTimeUpdate() {\n var _this$props21 = this.props,\n actions = _this$props21.actions,\n onTimeUpdate = _this$props21.onTimeUpdate;\n actions.handleTimeUpdate(this.getProperties());\n\n if (onTimeUpdate) {\n onTimeUpdate.apply(void 0, arguments);\n }\n }\n /**\n * Fires when the playing speed of the audio/video is changed\n */\n\n }, {\n key: \"handleRateChange\",\n value: function handleRateChange() {\n var _this$props22 = this.props,\n actions = _this$props22.actions,\n onRateChange = _this$props22.onRateChange;\n actions.handleRateChange(this.getProperties());\n\n if (onRateChange) {\n onRateChange.apply(void 0, arguments);\n }\n } // Fires when the volume has been changed\n\n }, {\n key: \"handleVolumeChange\",\n value: function handleVolumeChange() {\n var _this$props23 = this.props,\n actions = _this$props23.actions,\n onVolumeChange = _this$props23.onVolumeChange;\n actions.handleVolumeChange(this.getProperties());\n\n if (onVolumeChange) {\n onVolumeChange.apply(void 0, arguments);\n }\n } // Fires when an error occurred\n // during the loading of an audio/video\n\n }, {\n key: \"handleError\",\n value: function handleError() {\n var _this$props24 = this.props,\n actions = _this$props24.actions,\n onError = _this$props24.onError;\n actions.handleError(this.getProperties());\n\n if (onError) {\n onError.apply(void 0, arguments);\n }\n }\n }, {\n key: \"handleResize\",\n value: function handleResize() {\n var _this$props25 = this.props,\n actions = _this$props25.actions,\n onResize = _this$props25.onResize;\n actions.handleResize(this.getProperties());\n\n if (onResize) {\n onResize.apply(void 0, arguments);\n }\n }\n }, {\n key: \"handleKeypress\",\n value: function handleKeypress() {}\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var _this3 = this;\n\n var props = (0, _objectSpread2[\"default\"])({}, this.props, {\n video: this.video\n }); // to make sure the children can get video property\n\n if (!this.video) {\n return null;\n } // only keep , , elements\n\n\n return _react[\"default\"].Children.toArray(this.props.children).filter(_utils.isVideoChild).map(function (c) {\n var cprops;\n\n if (typeof c.type === 'string') {\n // add onError to \n if (c.type === 'source') {\n cprops = (0, _objectSpread2[\"default\"])({}, c.props);\n var preOnError = cprops.onError;\n\n cprops.onError = function () {\n if (preOnError) {\n preOnError.apply(void 0, arguments);\n }\n\n _this3.handleError.apply(_this3, arguments);\n };\n }\n } else {\n cprops = props;\n }\n\n return _react[\"default\"].cloneElement(c, cprops);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$props26 = this.props,\n loop = _this$props26.loop,\n poster = _this$props26.poster,\n preload = _this$props26.preload,\n src = _this$props26.src,\n autoPlay = _this$props26.autoPlay,\n playsInline = _this$props26.playsInline,\n muted = _this$props26.muted,\n crossOrigin = _this$props26.crossOrigin,\n videoId = _this$props26.videoId;\n return _react[\"default\"].createElement(\"video\", {\n className: (0, _classnames[\"default\"])('video-react-video', this.props.className),\n id: videoId,\n crossOrigin: crossOrigin,\n ref: function ref(c) {\n _this4.video = c;\n },\n muted: muted,\n preload: preload,\n loop: loop,\n playsInline: playsInline,\n autoPlay: autoPlay,\n poster: poster,\n src: src,\n onLoadStart: this.handleLoadStart,\n onWaiting: this.handleWaiting,\n onCanPlay: this.handleCanPlay,\n onCanPlayThrough: this.handleCanPlayThrough,\n onPlaying: this.handlePlaying,\n onEnded: this.handleEnded,\n onSeeking: this.handleSeeking,\n onSeeked: this.handleSeeked,\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onProgress: this.handleProgress,\n onDurationChange: this.handleDurationChange,\n onError: this.handleError,\n onSuspend: this.handleSuspend,\n onAbort: this.handleAbort,\n onEmptied: this.handleEmptied,\n onStalled: this.handleStalled,\n onLoadedMetadata: this.handleLoadedMetaData,\n onLoadedData: this.handleLoadedData,\n onTimeUpdate: this.handleTimeUpdate,\n onRateChange: this.handleRateChange,\n onVolumeChange: this.handleVolumeChange,\n tabIndex: \"-1\"\n }, this.renderChildren());\n }\n }, {\n key: \"playbackRate\",\n get: function get() {\n return this.video.playbackRate;\n } // set playback rate\n // speed of video\n ,\n set: function set(rate) {\n this.video.playbackRate = rate;\n }\n }, {\n key: \"muted\",\n get: function get() {\n return this.video.muted;\n },\n set: function set(val) {\n this.video.muted = val;\n }\n }, {\n key: \"volume\",\n get: function get() {\n return this.video.volume;\n },\n set: function set(val) {\n if (val > 1) {\n val = 1;\n }\n\n if (val < 0) {\n val = 0;\n }\n\n this.video.volume = val;\n } // video width\n\n }, {\n key: \"videoWidth\",\n get: function get() {\n return this.video.videoWidth;\n } // video height\n\n }, {\n key: \"videoHeight\",\n get: function get() {\n return this.video.videoHeight;\n }\n }]);\n return Video;\n}(_react.Component);\n\nexports[\"default\"] = Video;\nVideo.propTypes = propTypes;\nVideo.displayName = 'Video';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _MenuButton = _interopRequireDefault(require(\"../menu/MenuButton\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n offMenuText: _propTypes[\"default\"].string,\n showOffMenu: _propTypes[\"default\"].bool,\n kinds: _propTypes[\"default\"].array\n};\nvar defaultProps = {\n offMenuText: 'Off',\n showOffMenu: true,\n kinds: ['captions', 'subtitles'] // `kind`s of TextTrack to look for to associate it with this menu.\n\n};\n\nvar ClosedCaptionButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(ClosedCaptionButton, _Component);\n\n function ClosedCaptionButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ClosedCaptionButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ClosedCaptionButton).call(this, props, context));\n _this.getTextTrackItems = _this.getTextTrackItems.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.updateState = _this.updateState.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSelectItem = _this.handleSelectItem.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.state = _this.getTextTrackItems();\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ClosedCaptionButton, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateState();\n }\n }, {\n key: \"getTextTrackItems\",\n value: function getTextTrackItems() {\n var _this$props = this.props,\n kinds = _this$props.kinds,\n player = _this$props.player,\n offMenuText = _this$props.offMenuText,\n showOffMenu = _this$props.showOffMenu;\n var textTracks = player.textTracks,\n activeTextTrack = player.activeTextTrack;\n var textTrackItems = {\n items: [],\n selectedIndex: 0\n };\n var tracks = Array.from(textTracks || []);\n\n if (tracks.length === 0) {\n return textTrackItems;\n }\n\n if (showOffMenu) {\n textTrackItems.items.push({\n label: offMenuText || 'Off',\n value: null\n });\n }\n\n tracks.forEach(function (textTrack) {\n // ignore invalid text track kind\n if (kinds.length && !kinds.includes(textTrack.kind)) {\n return;\n }\n\n textTrackItems.items.push({\n label: textTrack.label,\n value: textTrack.language\n });\n });\n textTrackItems.selectedIndex = textTrackItems.items.findIndex(function (item) {\n return activeTextTrack && activeTextTrack.language === item.value;\n });\n\n if (textTrackItems.selectedIndex === -1) {\n textTrackItems.selectedIndex = 0;\n }\n\n return textTrackItems;\n }\n }, {\n key: \"updateState\",\n value: function updateState() {\n var textTrackItems = this.getTextTrackItems();\n\n if (textTrackItems.selectedIndex !== this.state.selectedIndex || !this.textTrackItemsAreEqual(textTrackItems.items, this.state.items)) {\n this.setState(textTrackItems);\n }\n }\n }, {\n key: \"textTrackItemsAreEqual\",\n value: function textTrackItemsAreEqual(items1, items2) {\n if (items1.length !== items2.length) {\n return false;\n }\n\n for (var i = 0; i < items1.length; i++) {\n if (!items2[i] || items1[i].label !== items2[i].label || items1[i].value !== items2[i].value) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"handleSelectItem\",\n value: function handleSelectItem(index) {\n var _this$props2 = this.props,\n player = _this$props2.player,\n actions = _this$props2.actions,\n showOffMenu = _this$props2.showOffMenu;\n var textTracks = player.textTracks; // For the 'subtitles-off' button, the first condition will never match\n // so all subtitles will be turned off\n\n Array.from(textTracks).forEach(function (textTrack, i) {\n // if it shows the `Off` menu, the first item is `Off`\n if (index === (showOffMenu ? i + 1 : i)) {\n textTrack.mode = 'showing';\n actions.activateTextTrack(textTrack);\n } else {\n textTrack.mode = 'hidden';\n }\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$state = this.state,\n items = _this$state.items,\n selectedIndex = _this$state.selectedIndex;\n return _react[\"default\"].createElement(_MenuButton[\"default\"], {\n className: (0, _classnames[\"default\"])('video-react-closed-caption', this.props.className),\n onSelectItem: this.handleSelectItem,\n items: items,\n selectedIndex: selectedIndex\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Closed Caption\"));\n }\n }]);\n return ClosedCaptionButton;\n}(_react.Component);\n\nClosedCaptionButton.propTypes = propTypes;\nClosedCaptionButton.defaultProps = defaultProps;\nClosedCaptionButton.displayName = 'ClosedCaptionButton';\nvar _default = ClosedCaptionButton;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _ProgressControl = _interopRequireDefault(require(\"./ProgressControl\"));\n\nvar _PlayToggle = _interopRequireDefault(require(\"./PlayToggle\"));\n\nvar _ForwardControl = _interopRequireDefault(require(\"./ForwardControl\"));\n\nvar _ReplayControl = _interopRequireDefault(require(\"./ReplayControl\"));\n\nvar _FullscreenToggle = _interopRequireDefault(require(\"./FullscreenToggle\"));\n\nvar _RemainingTimeDisplay = _interopRequireDefault(require(\"../time-controls/RemainingTimeDisplay\"));\n\nvar _CurrentTimeDisplay = _interopRequireDefault(require(\"../time-controls/CurrentTimeDisplay\"));\n\nvar _DurationDisplay = _interopRequireDefault(require(\"../time-controls/DurationDisplay\"));\n\nvar _TimeDivider = _interopRequireDefault(require(\"../time-controls/TimeDivider\"));\n\nvar _VolumeMenuButton = _interopRequireDefault(require(\"./VolumeMenuButton\"));\n\nvar _PlaybackRateMenuButton = _interopRequireDefault(require(\"./PlaybackRateMenuButton\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n children: _propTypes[\"default\"].any,\n autoHide: _propTypes[\"default\"].bool,\n autoHideTime: _propTypes[\"default\"].number,\n // used in Player\n disableDefaultControls: _propTypes[\"default\"].bool,\n disableCompletely: _propTypes[\"default\"].bool,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n autoHide: true,\n disableCompletely: false\n};\n\nvar ControlBar =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(ControlBar, _Component);\n\n function ControlBar(props) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ControlBar);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ControlBar).call(this, props));\n _this.getDefaultChildren = _this.getDefaultChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getFullChildren = _this.getFullChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ControlBar, [{\n key: \"getDefaultChildren\",\n value: function getDefaultChildren() {\n return [_react[\"default\"].createElement(_PlayToggle[\"default\"], {\n key: \"play-toggle\",\n order: 1\n }), _react[\"default\"].createElement(_VolumeMenuButton[\"default\"], {\n key: \"volume-menu-button\",\n order: 4\n }), _react[\"default\"].createElement(_CurrentTimeDisplay[\"default\"], {\n key: \"current-time-display\",\n order: 5.1\n }), _react[\"default\"].createElement(_TimeDivider[\"default\"], {\n key: \"time-divider\",\n order: 5.2\n }), _react[\"default\"].createElement(_DurationDisplay[\"default\"], {\n key: \"duration-display\",\n order: 5.3\n }), _react[\"default\"].createElement(_ProgressControl[\"default\"], {\n key: \"progress-control\",\n order: 6\n }), _react[\"default\"].createElement(_FullscreenToggle[\"default\"], {\n key: \"fullscreen-toggle\",\n order: 8\n })];\n }\n }, {\n key: \"getFullChildren\",\n value: function getFullChildren() {\n return [_react[\"default\"].createElement(_PlayToggle[\"default\"], {\n key: \"play-toggle\",\n order: 1\n }), _react[\"default\"].createElement(_ReplayControl[\"default\"], {\n key: \"replay-control\",\n order: 2\n }), _react[\"default\"].createElement(_ForwardControl[\"default\"], {\n key: \"forward-control\",\n order: 3\n }), _react[\"default\"].createElement(_VolumeMenuButton[\"default\"], {\n key: \"volume-menu-button\",\n order: 4\n }), _react[\"default\"].createElement(_CurrentTimeDisplay[\"default\"], {\n key: \"current-time-display\",\n order: 5\n }), _react[\"default\"].createElement(_TimeDivider[\"default\"], {\n key: \"time-divider\",\n order: 6\n }), _react[\"default\"].createElement(_DurationDisplay[\"default\"], {\n key: \"duration-display\",\n order: 7\n }), _react[\"default\"].createElement(_ProgressControl[\"default\"], {\n key: \"progress-control\",\n order: 8\n }), _react[\"default\"].createElement(_RemainingTimeDisplay[\"default\"], {\n key: \"remaining-time-display\",\n order: 9\n }), _react[\"default\"].createElement(_PlaybackRateMenuButton[\"default\"], {\n rates: [1, 1.25, 1.5, 2],\n key: \"playback-rate\",\n order: 10\n }), _react[\"default\"].createElement(_FullscreenToggle[\"default\"], {\n key: \"fullscreen-toggle\",\n order: 11\n })];\n }\n }, {\n key: \"getChildren\",\n value: function getChildren() {\n var children = _react[\"default\"].Children.toArray(this.props.children);\n\n var defaultChildren = this.props.disableDefaultControls ? [] : this.getDefaultChildren();\n var _this$props = this.props,\n className = _this$props.className,\n parentProps = (0, _objectWithoutProperties2[\"default\"])(_this$props, [\"className\"]); // remove className\n\n return (0, _utils.mergeAndSortChildren)(defaultChildren, children, parentProps);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n autoHide = _this$props2.autoHide,\n className = _this$props2.className,\n disableCompletely = _this$props2.disableCompletely;\n var children = this.getChildren();\n return disableCompletely ? null : _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-control-bar', {\n 'video-react-control-bar-auto-hide': autoHide\n }, className)\n }, children);\n }\n }]);\n return ControlBar;\n}(_react.Component);\n\nexports[\"default\"] = ControlBar;\nControlBar.propTypes = propTypes;\nControlBar.defaultProps = defaultProps;\nControlBar.displayName = 'ControlBar';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ForwardReplayControl = _interopRequireDefault(require(\"./ForwardReplayControl\"));\n\n// Pass mode into parent function\nvar ForwardControl = (0, _ForwardReplayControl[\"default\"])('forward');\nForwardControl.displayName = 'ForwardControl';\nvar _default = ForwardControl;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n seconds: _propTypes[\"default\"].oneOf([5, 10, 30])\n};\nvar defaultProps = {\n seconds: 10\n};\n\nvar _default = function _default(mode) {\n var ForwardReplayControl =\n /*#__PURE__*/\n function (_Component) {\n (0, _inherits2[\"default\"])(ForwardReplayControl, _Component);\n\n function ForwardReplayControl(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ForwardReplayControl);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ForwardReplayControl).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ForwardReplayControl, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n actions = _this$props.actions,\n seconds = _this$props.seconds; // Depends mode to implement different actions\n\n if (mode === 'forward') {\n actions.forward(seconds);\n } else {\n actions.replay(seconds);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n seconds = _this$props2.seconds,\n className = _this$props2.className;\n var classNames = ['video-react-control', 'video-react-button', 'video-react-icon'];\n classNames.push(\"video-react-icon-\".concat(mode, \"-\").concat(seconds), \"video-react-\".concat(mode, \"-control\"));\n\n if (className) {\n classNames.push(className);\n }\n\n return _react[\"default\"].createElement(\"button\", {\n ref: function ref(c) {\n _this2.button = c;\n },\n className: classNames.join(' '),\n type: \"button\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"\".concat(mode, \" \").concat(seconds, \" seconds\")));\n }\n }]);\n return ForwardReplayControl;\n }(_react.Component);\n\n ForwardReplayControl.propTypes = propTypes;\n ForwardReplayControl.defaultProps = defaultProps;\n return ForwardReplayControl;\n};\n\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar FullscreenToggle =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(FullscreenToggle, _Component);\n\n function FullscreenToggle(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, FullscreenToggle);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(FullscreenToggle).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(FullscreenToggle, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n player = _this$props.player,\n actions = _this$props.actions;\n actions.toggleFullscreen(player);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n player = _this$props2.player,\n className = _this$props2.className;\n return _react[\"default\"].createElement(\"button\", {\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-icon-fullscreen-exit': player.isFullscreen,\n 'video-react-icon-fullscreen': !player.isFullscreen\n }, 'video-react-fullscreen-control video-react-control video-react-button video-react-icon'),\n ref: function ref(c) {\n _this2.button = c;\n },\n type: \"button\",\n tabIndex: \"0\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Non-Fullscreen\"));\n }\n }]);\n return FullscreenToggle;\n}(_react.Component);\n\nexports[\"default\"] = FullscreenToggle;\nFullscreenToggle.propTypes = propTypes;\nFullscreenToggle.displayName = 'FullscreenToggle';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = LoadProgressBar;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n duration: _propTypes[\"default\"].number,\n buffered: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n}; // Shows load progress\n\nfunction LoadProgressBar(_ref) {\n var buffered = _ref.buffered,\n duration = _ref.duration,\n className = _ref.className;\n\n if (!buffered || !buffered.length) {\n return null;\n }\n\n var bufferedEnd = buffered.end(buffered.length - 1);\n var style = {};\n\n if (bufferedEnd > duration) {\n bufferedEnd = duration;\n } // get the percent width of a time compared to the total end\n\n\n function percentify(time, end) {\n var percent = time / end || 0; // no NaN\n\n return \"\".concat((percent >= 1 ? 1 : percent) * 100, \"%\");\n } // the width of the progress bar\n\n\n style.width = percentify(bufferedEnd, duration);\n var parts = []; // add child elements to represent the individual buffered time ranges\n\n for (var i = 0; i < buffered.length; i++) {\n var start = buffered.start(i);\n var end = buffered.end(i); // set the percent based on the width of the progress bar (bufferedEnd)\n\n var part = _react[\"default\"].createElement(\"div\", {\n style: {\n left: percentify(start, bufferedEnd),\n width: percentify(end - start, bufferedEnd)\n },\n key: \"part-\".concat(i)\n });\n\n parts.push(part);\n }\n\n if (parts.length === 0) {\n parts = null;\n }\n\n return _react[\"default\"].createElement(\"div\", {\n style: style,\n className: (0, _classnames[\"default\"])('video-react-load-progress', className)\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Loaded: 0%\"), parts);\n}\n\nLoadProgressBar.propTypes = propTypes;\nLoadProgressBar.displayName = 'LoadProgressBar';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nfunction MouseTimeDisplay(_ref) {\n var duration = _ref.duration,\n mouseTime = _ref.mouseTime,\n className = _ref.className,\n text = _ref.text;\n\n if (!mouseTime.time) {\n return null;\n }\n\n var time = text || (0, _utils.formatTime)(mouseTime.time, duration);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-mouse-display', className),\n style: {\n left: \"\".concat(mouseTime.position, \"px\")\n },\n \"data-current-time\": time\n });\n}\n\nMouseTimeDisplay.propTypes = {\n duration: _propTypes[\"default\"].number,\n mouseTime: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\nMouseTimeDisplay.displayName = 'MouseTimeDisplay';\nvar _default = MouseTimeDisplay;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = PlayProgressBar;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n currentTime: _propTypes[\"default\"].number,\n duration: _propTypes[\"default\"].number,\n percentage: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string\n}; // Shows play progress\n\nfunction PlayProgressBar(_ref) {\n var currentTime = _ref.currentTime,\n duration = _ref.duration,\n percentage = _ref.percentage,\n className = _ref.className;\n return _react[\"default\"].createElement(\"div\", {\n \"data-current-time\": (0, _utils.formatTime)(currentTime, duration),\n className: (0, _classnames[\"default\"])('video-react-play-progress video-react-slider-bar', className),\n style: {\n width: percentage\n }\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Progress: \".concat(percentage)));\n}\n\nPlayProgressBar.propTypes = propTypes;\nPlayProgressBar.displayName = 'PlayProgressBar';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar PlayToggle =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(PlayToggle, _Component);\n\n function PlayToggle(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, PlayToggle);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(PlayToggle).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(PlayToggle, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n actions = _this$props.actions,\n player = _this$props.player;\n\n if (player.paused) {\n actions.play();\n } else {\n actions.pause();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n player = _this$props2.player,\n className = _this$props2.className;\n var controlText = player.paused ? 'Play' : 'Pause';\n return _react[\"default\"].createElement(\"button\", {\n ref: function ref(c) {\n _this2.button = c;\n },\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-play-control': true,\n 'video-react-control': true,\n 'video-react-button': true,\n 'video-react-paused': player.paused,\n 'video-react-playing': !player.paused\n }),\n type: \"button\",\n tabIndex: \"0\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, controlText));\n }\n }]);\n return PlayToggle;\n}(_react.Component);\n\nexports[\"default\"] = PlayToggle;\nPlayToggle.propTypes = propTypes;\nPlayToggle.displayName = 'PlayToggle';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _PlaybackRateMenuButton = _interopRequireDefault(require(\"./PlaybackRateMenuButton\"));\n\nvar _utils = require(\"../../utils\");\n\nvar PlaybackRate =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(PlaybackRate, _Component);\n\n function PlaybackRate(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, PlaybackRate);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(PlaybackRate).call(this, props, context));\n (0, _utils.deprecatedWarning)('PlaybackRate', 'PlaybackRateMenuButton');\n return _this;\n }\n\n (0, _createClass2[\"default\"])(PlaybackRate, [{\n key: \"render\",\n value: function render() {\n return _react[\"default\"].createElement(_PlaybackRateMenuButton[\"default\"], this.props);\n }\n }]);\n return PlaybackRate;\n}(_react.Component);\n\nexports[\"default\"] = PlaybackRate;\nPlaybackRate.displayName = 'PlaybackRate';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _MenuButton = _interopRequireDefault(require(\"../menu/MenuButton\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n rates: _propTypes[\"default\"].array,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n rates: [2, 1.5, 1.25, 1, 0.5, 0.25]\n};\n\nvar PlaybackRateMenuButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(PlaybackRateMenuButton, _Component);\n\n function PlaybackRateMenuButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, PlaybackRateMenuButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(PlaybackRateMenuButton).call(this, props, context));\n _this.handleSelectItem = _this.handleSelectItem.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(PlaybackRateMenuButton, [{\n key: \"handleSelectItem\",\n value: function handleSelectItem(index) {\n var _this$props = this.props,\n rates = _this$props.rates,\n actions = _this$props.actions;\n\n if (index >= 0 && index < rates.length) {\n actions.changeRate(rates[index]);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n rates = _this$props2.rates,\n player = _this$props2.player;\n var items = rates.map(function (rate) {\n return {\n label: \"\".concat(rate, \"x\"),\n value: rate\n };\n });\n var selectedIndex = rates.indexOf(player.playbackRate) || 0;\n return _react[\"default\"].createElement(_MenuButton[\"default\"], {\n className: (0, _classnames[\"default\"])('video-react-playback-rate', this.props.className),\n onSelectItem: this.handleSelectItem,\n items: items,\n selectedIndex: selectedIndex\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Playback Rate\"), _react[\"default\"].createElement(\"div\", {\n className: \"video-react-playback-rate-value\"\n }, \"\".concat(player.playbackRate.toFixed(2), \"x\")));\n }\n }]);\n return PlaybackRateMenuButton;\n}(_react.Component);\n\nPlaybackRateMenuButton.propTypes = propTypes;\nPlaybackRateMenuButton.defaultProps = defaultProps;\nPlaybackRateMenuButton.displayName = 'PlaybackRateMenuButton';\nvar _default = PlaybackRateMenuButton;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar Dom = _interopRequireWildcard(require(\"../../utils/dom\"));\n\nvar _SeekBar = _interopRequireDefault(require(\"./SeekBar\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar ProgressControl =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(ProgressControl, _Component);\n\n function ProgressControl(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ProgressControl);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ProgressControl).call(this, props, context));\n _this.state = {\n mouseTime: {\n time: null,\n position: 0\n }\n };\n _this.handleMouseMoveThrottle = _this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ProgressControl, [{\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n if (!event.pageX) {\n return;\n }\n\n var duration = this.props.player.duration;\n var node = this.seekBar;\n var newTime = Dom.getPointerPosition(node, event).x * duration;\n var position = event.pageX - Dom.findElPosition(node).left;\n this.setState({\n mouseTime: {\n time: newTime,\n position: position\n }\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = this.props.className;\n return _react[\"default\"].createElement(\"div\", {\n onMouseMove: this.handleMouseMoveThrottle,\n className: (0, _classnames[\"default\"])('video-react-progress-control video-react-control', className)\n }, _react[\"default\"].createElement(_SeekBar[\"default\"], (0, _extends2[\"default\"])({\n mouseTime: this.state.mouseTime,\n ref: function ref(c) {\n _this2.seekBar = c;\n }\n }, this.props)));\n }\n }]);\n return ProgressControl;\n}(_react.Component);\n\nexports[\"default\"] = ProgressControl;\nProgressControl.propTypes = propTypes;\nProgressControl.displayName = 'ProgressControl';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ForwardReplayControl = _interopRequireDefault(require(\"./ForwardReplayControl\"));\n\n// Pass mode into parent function\nvar ReplayControl = (0, _ForwardReplayControl[\"default\"])('replay');\nReplayControl.displayName = 'ReplayControl';\nvar _default = ReplayControl;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Slider = _interopRequireDefault(require(\"../Slider\"));\n\nvar _PlayProgressBar = _interopRequireDefault(require(\"./PlayProgressBar\"));\n\nvar _LoadProgressBar = _interopRequireDefault(require(\"./LoadProgressBar\"));\n\nvar _MouseTimeDisplay = _interopRequireDefault(require(\"./MouseTimeDisplay\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n mouseTime: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar SeekBar =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(SeekBar, _Component);\n\n function SeekBar(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, SeekBar);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(SeekBar).call(this, props, context));\n _this.getPercent = _this.getPercent.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getNewTime = _this.getNewTime.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepForward = _this.stepForward.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepBack = _this.stepBack.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseDown = _this.handleMouseDown.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseMove = _this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseUp = _this.handleMouseUp.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(SeekBar, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {}\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n\n }, {\n key: \"getPercent\",\n value: function getPercent() {\n var _this$props$player = this.props.player,\n currentTime = _this$props$player.currentTime,\n seekingTime = _this$props$player.seekingTime,\n duration = _this$props$player.duration;\n var time = seekingTime || currentTime;\n var percent = time / duration;\n return percent >= 1 ? 1 : percent;\n }\n }, {\n key: \"getNewTime\",\n value: function getNewTime(event) {\n var duration = this.props.player.duration;\n var distance = this.slider.calculateDistance(event);\n var newTime = distance * duration; // Don't let video end while scrubbing.\n\n return newTime === duration ? newTime - 0.1 : newTime;\n }\n }, {\n key: \"handleMouseDown\",\n value: function handleMouseDown() {}\n }, {\n key: \"handleMouseUp\",\n value: function handleMouseUp(event) {\n var actions = this.props.actions;\n var newTime = this.getNewTime(event); // Set new time (tell video to seek to new time)\n\n actions.seek(newTime);\n actions.handleEndSeeking(newTime);\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n var actions = this.props.actions;\n var newTime = this.getNewTime(event);\n actions.handleSeekingTime(newTime);\n }\n }, {\n key: \"stepForward\",\n value: function stepForward() {\n var actions = this.props.actions;\n actions.forward(5);\n }\n }, {\n key: \"stepBack\",\n value: function stepBack() {\n var actions = this.props.actions;\n actions.replay(5);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n _this$props$player2 = _this$props.player,\n currentTime = _this$props$player2.currentTime,\n seekingTime = _this$props$player2.seekingTime,\n duration = _this$props$player2.duration,\n buffered = _this$props$player2.buffered,\n mouseTime = _this$props.mouseTime;\n var time = seekingTime || currentTime;\n return _react[\"default\"].createElement(_Slider[\"default\"], {\n ref: function ref(input) {\n _this2.slider = input;\n },\n label: \"video progress bar\",\n className: (0, _classnames[\"default\"])('video-react-progress-holder', this.props.className),\n valuenow: (this.getPercent() * 100).toFixed(2),\n valuetext: (0, _utils.formatTime)(time, duration),\n onMouseDown: this.handleMouseDown,\n onMouseMove: this.handleMouseMove,\n onMouseUp: this.handleMouseUp,\n getPercent: this.getPercent,\n stepForward: this.stepForward,\n stepBack: this.stepBack\n }, _react[\"default\"].createElement(_LoadProgressBar[\"default\"], {\n buffered: buffered,\n currentTime: time,\n duration: duration\n }), _react[\"default\"].createElement(_MouseTimeDisplay[\"default\"], {\n duration: duration,\n mouseTime: mouseTime\n }), _react[\"default\"].createElement(_PlayProgressBar[\"default\"], {\n currentTime: time,\n duration: duration\n }));\n }\n }]);\n return SeekBar;\n}(_react.Component);\n\nexports[\"default\"] = SeekBar;\nSeekBar.propTypes = propTypes;\nSeekBar.displayName = 'SeekBar';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _PopupButton = _interopRequireDefault(require(\"../popup/PopupButton\"));\n\nvar _VolumeBar = _interopRequireDefault(require(\"../volume-control/VolumeBar\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n vertical: _propTypes[\"default\"].bool,\n className: _propTypes[\"default\"].string,\n alwaysShowVolume: _propTypes[\"default\"].bool\n};\nvar defaultProps = {\n vertical: false\n};\n\nvar VolumeMenuButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(VolumeMenuButton, _Component);\n\n function VolumeMenuButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, VolumeMenuButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(VolumeMenuButton).call(this, props, context));\n _this.state = {\n active: false\n };\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(VolumeMenuButton, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n player = _this$props.player,\n actions = _this$props.actions;\n actions.mute(!player.muted);\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus() {\n this.setState({\n active: true\n });\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur() {\n this.setState({\n active: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n vertical = _this$props2.vertical,\n player = _this$props2.player,\n className = _this$props2.className;\n var inline = !vertical;\n var level = this.volumeLevel;\n return _react[\"default\"].createElement(_PopupButton[\"default\"], {\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-volume-menu-button-vertical': vertical,\n 'video-react-volume-menu-button-horizontal': !vertical,\n 'video-react-vol-muted': player.muted,\n 'video-react-vol-0': level === 0 && !player.muted,\n 'video-react-vol-1': level === 1,\n 'video-react-vol-2': level === 2,\n 'video-react-vol-3': level === 3,\n 'video-react-slider-active': this.props.alwaysShowVolume || this.state.active,\n 'video-react-lock-showing': this.props.alwaysShowVolume || this.state.active\n }, 'video-react-volume-menu-button'),\n onClick: this.handleClick,\n inline: inline\n }, _react[\"default\"].createElement(_VolumeBar[\"default\"], (0, _extends2[\"default\"])({\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n }, this.props)));\n }\n }, {\n key: \"volumeLevel\",\n get: function get() {\n var _this$props$player = this.props.player,\n volume = _this$props$player.volume,\n muted = _this$props$player.muted;\n var level = 3;\n\n if (volume === 0 || muted) {\n level = 0;\n } else if (volume < 0.33) {\n level = 1;\n } else if (volume < 0.67) {\n level = 2;\n }\n\n return level;\n }\n }]);\n return VolumeMenuButton;\n}(_react.Component);\n\nVolumeMenuButton.propTypes = propTypes;\nVolumeMenuButton.defaultProps = defaultProps;\nVolumeMenuButton.displayName = 'VolumeMenuButton';\nvar _default = VolumeMenuButton;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar propTypes = {\n children: _propTypes[\"default\"].any\n};\n\nvar Menu =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Menu, _Component);\n\n function Menu(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Menu);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Menu).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Menu, [{\n key: \"handleClick\",\n value: function handleClick(event) {\n event.preventDefault(); // event.stopPropagation();\n }\n }, {\n key: \"render\",\n value: function render() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"video-react-menu video-react-lock-showing\",\n role: \"presentation\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"ul\", {\n className: \"video-react-menu-content\"\n }, this.props.children));\n }\n }]);\n return Menu;\n}(_react.Component);\n\nexports[\"default\"] = Menu;\nMenu.propTypes = propTypes;\nMenu.displayName = 'Menu';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Menu = _interopRequireDefault(require(\"./Menu\"));\n\nvar _MenuItem = _interopRequireDefault(require(\"./MenuItem\"));\n\nvar _ClickableComponent = _interopRequireDefault(require(\"../ClickableComponent\"));\n\nvar propTypes = {\n inline: _propTypes[\"default\"].bool,\n items: _propTypes[\"default\"].array,\n className: _propTypes[\"default\"].string,\n onSelectItem: _propTypes[\"default\"].func,\n children: _propTypes[\"default\"].any,\n selectedIndex: _propTypes[\"default\"].number\n};\n\nvar MenuButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(MenuButton, _Component);\n\n function MenuButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, MenuButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(MenuButton).call(this, props, context));\n _this.state = {\n active: false,\n activateIndex: props.selectedIndex || 0\n };\n _this.commitSelection = _this.commitSelection.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.activateMenuItem = _this.activateMenuItem.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.renderMenu = _this.renderMenu.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleUpArrow = _this.handleUpArrow.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleDownArrow = _this.handleDownArrow.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleEscape = _this.handleEscape.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleReturn = _this.handleReturn.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleTab = _this.handleTab.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeyPress = _this.handleKeyPress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSelectItem = _this.handleSelectItem.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleIndexChange = _this.handleIndexChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(MenuButton, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.selectedIndex !== this.props.selectedIndex) {\n this.activateMenuItem(this.props.selectedIndex);\n }\n }\n }, {\n key: \"commitSelection\",\n value: function commitSelection(index) {\n this.setState({\n activateIndex: index\n });\n this.handleIndexChange(index);\n }\n }, {\n key: \"activateMenuItem\",\n value: function activateMenuItem(index) {\n this.setState({\n activateIndex: index\n });\n this.handleIndexChange(index);\n }\n }, {\n key: \"handleIndexChange\",\n value: function handleIndexChange(index) {\n var onSelectItem = this.props.onSelectItem;\n onSelectItem(index);\n }\n }, {\n key: \"handleClick\",\n value: function handleClick() {\n this.setState(function (prevState) {\n return {\n active: !prevState.active\n };\n });\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus() {\n document.addEventListener('keydown', this.handleKeyPress);\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur() {\n this.setState({\n active: false\n });\n document.removeEventListener('keydown', this.handleKeyPress);\n }\n }, {\n key: \"handleUpArrow\",\n value: function handleUpArrow(e) {\n var items = this.props.items;\n\n if (this.state.active) {\n e.preventDefault();\n var newIndex = this.state.activateIndex - 1;\n\n if (newIndex < 0) {\n newIndex = items.length ? items.length - 1 : 0;\n }\n\n this.activateMenuItem(newIndex);\n }\n }\n }, {\n key: \"handleDownArrow\",\n value: function handleDownArrow(e) {\n var items = this.props.items;\n\n if (this.state.active) {\n e.preventDefault();\n var newIndex = this.state.activateIndex + 1;\n\n if (newIndex >= items.length) {\n newIndex = 0;\n }\n\n this.activateMenuItem(newIndex);\n }\n }\n }, {\n key: \"handleTab\",\n value: function handleTab(e) {\n if (this.state.active) {\n e.preventDefault();\n this.commitSelection(this.state.activateIndex);\n }\n }\n }, {\n key: \"handleReturn\",\n value: function handleReturn(e) {\n e.preventDefault();\n\n if (this.state.active) {\n this.commitSelection(this.state.activateIndex);\n } else {\n this.setState({\n active: true\n });\n }\n }\n }, {\n key: \"handleEscape\",\n value: function handleEscape() {\n this.setState({\n active: false,\n activateIndex: 0\n });\n }\n }, {\n key: \"handleKeyPress\",\n value: function handleKeyPress(event) {\n // Escape (27) key\n if (event.which === 27) {\n this.handleEscape(event);\n } else if (event.which === 9) {\n // Tab (9) key\n this.handleTab(event);\n } else if (event.which === 13) {\n // Enter (13) key\n this.handleReturn(event);\n } else if (event.which === 38) {\n // Up (38) key\n this.handleUpArrow(event);\n } else if (event.which === 40) {\n // Down (40) key press\n this.handleDownArrow(event);\n }\n }\n }, {\n key: \"handleSelectItem\",\n value: function handleSelectItem(i) {\n this.commitSelection(i);\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this2 = this;\n\n if (!this.state.active) {\n return null;\n }\n\n var items = this.props.items;\n return _react[\"default\"].createElement(_Menu[\"default\"], null, items.map(function (item, i) {\n return _react[\"default\"].createElement(_MenuItem[\"default\"], {\n item: item,\n index: i,\n onSelectItem: _this2.handleSelectItem,\n activateIndex: _this2.state.activateIndex,\n key: \"item-\".concat(i++)\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n inline = _this$props.inline,\n className = _this$props.className;\n return _react[\"default\"].createElement(_ClickableComponent[\"default\"], {\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-menu-button-inline': !!inline,\n 'video-react-menu-button-popup': !inline,\n 'video-react-menu-button-active': this.state.active\n }, 'video-react-control video-react-button video-react-menu-button'),\n role: \"button\",\n tabIndex: \"0\",\n ref: function ref(c) {\n _this3.menuButton = c;\n },\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n }, this.props.children, this.renderMenu());\n }\n }]);\n return MenuButton;\n}(_react.Component);\n\nexports[\"default\"] = MenuButton;\nMenuButton.propTypes = propTypes;\nMenuButton.displayName = 'MenuButton';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n item: _propTypes[\"default\"].object,\n index: _propTypes[\"default\"].number,\n activateIndex: _propTypes[\"default\"].number,\n onSelectItem: _propTypes[\"default\"].func\n};\n\nvar MenuItem =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(MenuItem, _Component);\n\n function MenuItem(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, MenuItem);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(MenuItem).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(MenuItem, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n index = _this$props.index,\n onSelectItem = _this$props.onSelectItem;\n onSelectItem(index);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n item = _this$props2.item,\n index = _this$props2.index,\n activateIndex = _this$props2.activateIndex;\n return _react[\"default\"].createElement(\"li\", {\n className: (0, _classnames[\"default\"])({\n 'video-react-menu-item': true,\n 'video-react-selected': index === activateIndex\n }),\n role: \"menuitem\",\n onClick: this.handleClick\n }, item.label, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }));\n }\n }]);\n return MenuItem;\n}(_react.Component);\n\nexports[\"default\"] = MenuItem;\nMenuItem.propTypes = propTypes;\nMenuItem.displayName = 'MenuItem';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n children: _propTypes[\"default\"].any\n};\n\nvar Popup =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Popup, _Component);\n\n function Popup(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Popup);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Popup).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Popup, [{\n key: \"handleClick\",\n value: function handleClick(event) {\n event.preventDefault(); // event.stopPropagation();\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return _react[\"default\"].createElement(\"div\", {\n className: \"video-react-menu\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"div\", {\n className: \"video-react-menu-content\"\n }, children));\n }\n }]);\n return Popup;\n}(_react.Component);\n\nexports[\"default\"] = Popup;\nPopup.propTypes = propTypes;\nPopup.displayName = 'Popup';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = PopupButton;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _ClickableComponent = _interopRequireDefault(require(\"../ClickableComponent\"));\n\nvar _Popup = _interopRequireDefault(require(\"./Popup\"));\n\nvar propTypes = {\n inline: _propTypes[\"default\"].bool,\n onClick: _propTypes[\"default\"].func.isRequired,\n onFocus: _propTypes[\"default\"].func,\n onBlur: _propTypes[\"default\"].func,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n inline: true\n};\n\nfunction PopupButton(props) {\n var inline = props.inline,\n className = props.className;\n var ps = (0, _objectSpread2[\"default\"])({}, props);\n delete ps.children;\n delete ps.inline;\n delete ps.className;\n return _react[\"default\"].createElement(_ClickableComponent[\"default\"], (0, _extends2[\"default\"])({\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-menu-button-inline': !!inline,\n 'video-react-menu-button-popup': !inline\n }, 'video-react-control video-react-button video-react-menu-button')\n }, ps), _react[\"default\"].createElement(_Popup[\"default\"], props));\n}\n\nPopupButton.propTypes = propTypes;\nPopupButton.defaultProps = defaultProps;\nPopupButton.displayName = 'PopupButton';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction CurrentTimeDisplay(_ref) {\n var _ref$player = _ref.player,\n currentTime = _ref$player.currentTime,\n duration = _ref$player.duration,\n className = _ref.className;\n var formattedTime = (0, _utils.formatTime)(currentTime, duration);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-current-time video-react-time-control video-react-control', className)\n }, _react[\"default\"].createElement(\"div\", {\n className: \"video-react-current-time-display\",\n \"aria-live\": \"off\"\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Current Time \"), formattedTime));\n}\n\nCurrentTimeDisplay.propTypes = propTypes;\nCurrentTimeDisplay.displayName = 'CurrentTimeDisplay';\nvar _default = CurrentTimeDisplay;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction DurationDisplay(_ref) {\n var duration = _ref.player.duration,\n className = _ref.className;\n var formattedTime = (0, _utils.formatTime)(duration);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])(className, 'video-react-duration video-react-time-control video-react-control')\n }, _react[\"default\"].createElement(\"div\", {\n className: \"video-react-duration-display\",\n \"aria-live\": \"off\"\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Duration Time \"), formattedTime));\n}\n\nDurationDisplay.propTypes = propTypes;\nDurationDisplay.displayName = 'DurationDisplay';\nvar _default = DurationDisplay;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction RemainingTimeDisplay(_ref) {\n var _ref$player = _ref.player,\n currentTime = _ref$player.currentTime,\n duration = _ref$player.duration,\n className = _ref.className;\n var remainingTime = duration - currentTime;\n var formattedTime = (0, _utils.formatTime)(remainingTime);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-remaining-time video-react-time-control video-react-control', className)\n }, _react[\"default\"].createElement(\"div\", {\n className: \"video-react-remaining-time-display\",\n \"aria-live\": \"off\"\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Remaining Time \"), \"-\".concat(formattedTime)));\n}\n\nRemainingTimeDisplay.propTypes = propTypes;\nRemainingTimeDisplay.displayName = 'RemainingTimeDisplay';\nvar _default = RemainingTimeDisplay;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = TimeDivider;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n separator: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string\n};\n\nfunction TimeDivider(_ref) {\n var separator = _ref.separator,\n className = _ref.className;\n var separatorText = separator || '/';\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-time-control video-react-time-divider', className),\n dir: \"ltr\"\n }, _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"span\", null, separatorText)));\n}\n\nTimeDivider.propTypes = propTypes;\nTimeDivider.displayName = 'TimeDivider';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Slider = _interopRequireDefault(require(\"../Slider\"));\n\nvar _VolumeLevel = _interopRequireDefault(require(\"./VolumeLevel\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n onFocus: _propTypes[\"default\"].func,\n onBlur: _propTypes[\"default\"].func\n};\n\nvar VolumeBar =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(VolumeBar, _Component);\n\n function VolumeBar(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, VolumeBar);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(VolumeBar).call(this, props, context));\n _this.state = {\n percentage: '0%'\n };\n _this.handleMouseMove = _this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handlePercentageChange = _this.handlePercentageChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.checkMuted = _this.checkMuted.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getPercent = _this.getPercent.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepForward = _this.stepForward.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepBack = _this.stepBack.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(VolumeBar, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {}\n }, {\n key: \"getPercent\",\n value: function getPercent() {\n var player = this.props.player;\n\n if (player.muted) {\n return 0;\n }\n\n return player.volume;\n }\n }, {\n key: \"checkMuted\",\n value: function checkMuted() {\n var _this$props = this.props,\n player = _this$props.player,\n actions = _this$props.actions;\n\n if (player.muted) {\n actions.mute(false);\n }\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n var actions = this.props.actions;\n this.checkMuted();\n var distance = this.slider.calculateDistance(event);\n actions.changeVolume(distance);\n }\n }, {\n key: \"stepForward\",\n value: function stepForward() {\n var _this$props2 = this.props,\n player = _this$props2.player,\n actions = _this$props2.actions;\n this.checkMuted();\n actions.changeVolume(player.volume + 0.1);\n }\n }, {\n key: \"stepBack\",\n value: function stepBack() {\n var _this$props3 = this.props,\n player = _this$props3.player,\n actions = _this$props3.actions;\n this.checkMuted();\n actions.changeVolume(player.volume - 0.1);\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus(e) {\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur(e) {\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n }, {\n key: \"handlePercentageChange\",\n value: function handlePercentageChange(percentage) {\n if (percentage !== this.state.percentage) {\n this.setState({\n percentage: percentage\n });\n }\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(event) {\n event.stopPropagation();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props4 = this.props,\n player = _this$props4.player,\n className = _this$props4.className;\n var volume = (player.volume * 100).toFixed(2);\n return _react[\"default\"].createElement(_Slider[\"default\"], (0, _extends2[\"default\"])({\n ref: function ref(c) {\n _this2.slider = c;\n },\n label: \"volume level\",\n valuenow: volume,\n valuetext: \"\".concat(volume, \"%\"),\n onMouseMove: this.handleMouseMove,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n sliderActive: this.handleFocus,\n sliderInactive: this.handleBlur,\n getPercent: this.getPercent,\n onPercentageChange: this.handlePercentageChange,\n stepForward: this.stepForward,\n stepBack: this.stepBack\n }, this.props, {\n className: (0, _classnames[\"default\"])(className, 'video-react-volume-bar video-react-slider-bar')\n }), _react[\"default\"].createElement(_VolumeLevel[\"default\"], this.props));\n }\n }]);\n return VolumeBar;\n}(_react.Component);\n\nVolumeBar.propTypes = propTypes;\nVolumeBar.displayName = 'VolumeBar';\nvar _default = VolumeBar;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n percentage: _propTypes[\"default\"].string,\n vertical: _propTypes[\"default\"].bool,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n percentage: '100%',\n vertical: false\n};\n\nfunction VolumeLevel(_ref) {\n var percentage = _ref.percentage,\n vertical = _ref.vertical,\n className = _ref.className;\n var style = {};\n\n if (vertical) {\n style.height = percentage;\n } else {\n style.width = percentage;\n }\n\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])(className, 'video-react-volume-level'),\n style: style\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }));\n}\n\nVolumeLevel.propTypes = propTypes;\nVolumeLevel.defaultProps = defaultProps;\nVolumeLevel.displayName = 'VolumeLevel';\nvar _default = VolumeLevel;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Player\", {\n enumerable: true,\n get: function get() {\n return _Player[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Video\", {\n enumerable: true,\n get: function get() {\n return _Video[\"default\"];\n }\n});\nObject.defineProperty(exports, \"BigPlayButton\", {\n enumerable: true,\n get: function get() {\n return _BigPlayButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"LoadingSpinner\", {\n enumerable: true,\n get: function get() {\n return _LoadingSpinner[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PosterImage\", {\n enumerable: true,\n get: function get() {\n return _PosterImage[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Slider\", {\n enumerable: true,\n get: function get() {\n return _Slider[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Bezel\", {\n enumerable: true,\n get: function get() {\n return _Bezel[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Shortcut\", {\n enumerable: true,\n get: function get() {\n return _Shortcut[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ControlBar\", {\n enumerable: true,\n get: function get() {\n return _ControlBar[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PlayToggle\", {\n enumerable: true,\n get: function get() {\n return _PlayToggle[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ForwardControl\", {\n enumerable: true,\n get: function get() {\n return _ForwardControl[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ReplayControl\", {\n enumerable: true,\n get: function get() {\n return _ReplayControl[\"default\"];\n }\n});\nObject.defineProperty(exports, \"FullscreenToggle\", {\n enumerable: true,\n get: function get() {\n return _FullscreenToggle[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ProgressControl\", {\n enumerable: true,\n get: function get() {\n return _ProgressControl[\"default\"];\n }\n});\nObject.defineProperty(exports, \"SeekBar\", {\n enumerable: true,\n get: function get() {\n return _SeekBar[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PlayProgressBar\", {\n enumerable: true,\n get: function get() {\n return _PlayProgressBar[\"default\"];\n }\n});\nObject.defineProperty(exports, \"LoadProgressBar\", {\n enumerable: true,\n get: function get() {\n return _LoadProgressBar[\"default\"];\n }\n});\nObject.defineProperty(exports, \"MouseTimeDisplay\", {\n enumerable: true,\n get: function get() {\n return _MouseTimeDisplay[\"default\"];\n }\n});\nObject.defineProperty(exports, \"VolumeMenuButton\", {\n enumerable: true,\n get: function get() {\n return _VolumeMenuButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PlaybackRateMenuButton\", {\n enumerable: true,\n get: function get() {\n return _PlaybackRateMenuButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PlaybackRate\", {\n enumerable: true,\n get: function get() {\n return _PlaybackRate[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ClosedCaptionButton\", {\n enumerable: true,\n get: function get() {\n return _ClosedCaptionButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"RemainingTimeDisplay\", {\n enumerable: true,\n get: function get() {\n return _RemainingTimeDisplay[\"default\"];\n }\n});\nObject.defineProperty(exports, \"CurrentTimeDisplay\", {\n enumerable: true,\n get: function get() {\n return _CurrentTimeDisplay[\"default\"];\n }\n});\nObject.defineProperty(exports, \"DurationDisplay\", {\n enumerable: true,\n get: function get() {\n return _DurationDisplay[\"default\"];\n }\n});\nObject.defineProperty(exports, \"TimeDivider\", {\n enumerable: true,\n get: function get() {\n return _TimeDivider[\"default\"];\n }\n});\nObject.defineProperty(exports, \"MenuButton\", {\n enumerable: true,\n get: function get() {\n return _MenuButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"playerReducer\", {\n enumerable: true,\n get: function get() {\n return _reducers.playerReducer;\n }\n});\nObject.defineProperty(exports, \"operationReducer\", {\n enumerable: true,\n get: function get() {\n return _reducers.operationReducer;\n }\n});\nexports.videoActions = exports.playerActions = void 0;\n\nvar _Player = _interopRequireDefault(require(\"./components/Player\"));\n\nvar _Video = _interopRequireDefault(require(\"./components/Video\"));\n\nvar _BigPlayButton = _interopRequireDefault(require(\"./components/BigPlayButton\"));\n\nvar _LoadingSpinner = _interopRequireDefault(require(\"./components/LoadingSpinner\"));\n\nvar _PosterImage = _interopRequireDefault(require(\"./components/PosterImage\"));\n\nvar _Slider = _interopRequireDefault(require(\"./components/Slider\"));\n\nvar _Bezel = _interopRequireDefault(require(\"./components/Bezel\"));\n\nvar _Shortcut = _interopRequireDefault(require(\"./components/Shortcut\"));\n\nvar _ControlBar = _interopRequireDefault(require(\"./components/control-bar/ControlBar\"));\n\nvar _PlayToggle = _interopRequireDefault(require(\"./components/control-bar/PlayToggle\"));\n\nvar _ForwardControl = _interopRequireDefault(require(\"./components/control-bar/ForwardControl\"));\n\nvar _ReplayControl = _interopRequireDefault(require(\"./components/control-bar/ReplayControl\"));\n\nvar _FullscreenToggle = _interopRequireDefault(require(\"./components/control-bar/FullscreenToggle\"));\n\nvar _ProgressControl = _interopRequireDefault(require(\"./components/control-bar/ProgressControl\"));\n\nvar _SeekBar = _interopRequireDefault(require(\"./components/control-bar/SeekBar\"));\n\nvar _PlayProgressBar = _interopRequireDefault(require(\"./components/control-bar/PlayProgressBar\"));\n\nvar _LoadProgressBar = _interopRequireDefault(require(\"./components/control-bar/LoadProgressBar\"));\n\nvar _MouseTimeDisplay = _interopRequireDefault(require(\"./components/control-bar/MouseTimeDisplay\"));\n\nvar _VolumeMenuButton = _interopRequireDefault(require(\"./components/control-bar/VolumeMenuButton\"));\n\nvar _PlaybackRateMenuButton = _interopRequireDefault(require(\"./components/control-bar/PlaybackRateMenuButton\"));\n\nvar _PlaybackRate = _interopRequireDefault(require(\"./components/control-bar/PlaybackRate\"));\n\nvar _ClosedCaptionButton = _interopRequireDefault(require(\"./components/control-bar/ClosedCaptionButton\"));\n\nvar _RemainingTimeDisplay = _interopRequireDefault(require(\"./components/time-controls/RemainingTimeDisplay\"));\n\nvar _CurrentTimeDisplay = _interopRequireDefault(require(\"./components/time-controls/CurrentTimeDisplay\"));\n\nvar _DurationDisplay = _interopRequireDefault(require(\"./components/time-controls/DurationDisplay\"));\n\nvar _TimeDivider = _interopRequireDefault(require(\"./components/time-controls/TimeDivider\"));\n\nvar _MenuButton = _interopRequireDefault(require(\"./components/menu/MenuButton\"));\n\nvar playerActions = _interopRequireWildcard(require(\"./actions/player\"));\n\nexports.playerActions = playerActions;\n\nvar videoActions = _interopRequireWildcard(require(\"./actions/video\"));\n\nexports.videoActions = videoActions;\n\nvar _reducers = require(\"./reducers\");","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = _default;\nexports.operationReducer = exports.playerReducer = void 0;\n\nvar _player = _interopRequireDefault(require(\"./player\"));\n\nvar _operation = _interopRequireDefault(require(\"./operation\"));\n\nfunction _default() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments.length > 1 ? arguments[1] : undefined;\n return {\n player: (0, _player[\"default\"])(state.player, action),\n operation: (0, _operation[\"default\"])(state.operation, action)\n };\n}\n\nvar playerReducer = _player[\"default\"];\nexports.playerReducer = playerReducer;\nvar operationReducer = _operation[\"default\"];\nexports.operationReducer = operationReducer;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = operation;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _player = require(\"../actions/player\");\n\nvar initialState = {\n count: 0,\n operation: {\n action: '',\n source: ''\n }\n};\n\nfunction operation() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case _player.OPERATE:\n return (0, _objectSpread2[\"default\"])({}, state, {\n count: state.count + 1,\n operation: (0, _objectSpread2[\"default\"])({}, state.operation, action.operation)\n });\n\n default:\n return state;\n }\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = player;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _video = require(\"../actions/video\");\n\nvar _player = require(\"../actions/player\");\n\nvar initialState = {\n currentSrc: null,\n duration: 0,\n currentTime: 0,\n seekingTime: 0,\n buffered: null,\n waiting: false,\n seeking: false,\n paused: true,\n autoPaused: false,\n ended: false,\n playbackRate: 1,\n muted: false,\n volume: 1,\n readyState: 0,\n networkState: 0,\n videoWidth: 0,\n videoHeight: 0,\n hasStarted: false,\n userActivity: true,\n isActive: false,\n isFullscreen: false,\n activeTextTrack: null\n};\n\nfunction player() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case _player.USER_ACTIVATE:\n return (0, _objectSpread2[\"default\"])({}, state, {\n userActivity: action.activity\n });\n\n case _player.PLAYER_ACTIVATE:\n return (0, _objectSpread2[\"default\"])({}, state, {\n isActive: action.activity\n });\n\n case _player.FULLSCREEN_CHANGE:\n return (0, _objectSpread2[\"default\"])({}, state, {\n isFullscreen: !!action.isFullscreen\n });\n\n case _video.SEEKING_TIME:\n return (0, _objectSpread2[\"default\"])({}, state, {\n seekingTime: action.time\n });\n\n case _video.END_SEEKING:\n return (0, _objectSpread2[\"default\"])({}, state, {\n seekingTime: 0\n });\n\n case _video.LOAD_START:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n hasStarted: false,\n ended: false\n });\n\n case _video.CAN_PLAY:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n waiting: false\n });\n\n case _video.WAITING:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n waiting: true\n });\n\n case _video.CAN_PLAY_THROUGH:\n case _video.PLAYING:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n waiting: false\n });\n\n case _video.PLAY:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n ended: false,\n paused: false,\n autoPaused: false,\n waiting: false,\n hasStarted: true\n });\n\n case _video.PAUSE:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n paused: true\n });\n\n case _video.END:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n ended: true\n });\n\n case _video.SEEKING:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n seeking: true\n });\n\n case _video.SEEKED:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n seeking: false\n });\n\n case _video.ERROR:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n error: 'UNKNOWN ERROR',\n ended: true\n });\n\n case _video.DURATION_CHANGE:\n case _video.TIME_UPDATE:\n case _video.VOLUME_CHANGE:\n case _video.PROGRESS_CHANGE:\n case _video.RATE_CHANGE:\n case _video.SUSPEND:\n case _video.ABORT:\n case _video.EMPTIED:\n case _video.STALLED:\n case _video.LOADED_META_DATA:\n case _video.LOADED_DATA:\n case _video.RESIZE:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps);\n\n case _video.ACTIVATE_TEXT_TRACK:\n return (0, _objectSpread2[\"default\"])({}, state, {\n activeTextTrack: action.textTrack\n });\n\n default:\n return state;\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IS_IOS = exports.IS_IPOD = exports.IS_IPHONE = exports.IS_IPAD = void 0;\nvar USER_AGENT = typeof window !== 'undefined' && window.navigator ? window.navigator.userAgent : ''; // const webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\n// const appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\n\nvar IS_IPAD = /iPad/i.test(USER_AGENT); // The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\n\nexports.IS_IPAD = IS_IPAD;\nvar IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\nexports.IS_IPHONE = IS_IPHONE;\nvar IS_IPOD = /iPod/i.test(USER_AGENT);\nexports.IS_IPOD = IS_IPOD;\nvar IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\nexports.IS_IOS = IS_IOS;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findElPosition = findElPosition;\nexports.getPointerPosition = getPointerPosition;\nexports.blurNode = blurNode;\nexports.focusNode = focusNode;\nexports.hasClass = hasClass;\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @function findElPosition\n * @param {ReactNodeRef} el React Node ref from which to get offset\n * @return {Object}\n */\nfunction findElPosition(el) {\n var box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n var _document = document,\n body = _document.body,\n docEl = _document.documentElement;\n var clientLeft = docEl.clientLeft || body.clientLeft || 0;\n var scrollLeft = window.pageXOffset || body.scrollLeft;\n var left = box.left + scrollLeft - clientLeft;\n var clientTop = docEl.clientTop || body.clientTop || 0;\n var scrollTop = window.pageYOffset || body.scrollTop;\n var top = box.top + scrollTop - clientTop; // Android sometimes returns slightly off decimal values, so need to round\n\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n/**\n * Get pointer position in a React Node ref\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @function getPointerPosition\n * @param {ReactNodeRef} el React Node ref on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object} This object will have x and y coordinates corresponding to the mouse position\n */\n\n\nfunction getPointerPosition(el, event) {\n var position = {};\n var box = findElPosition(el);\n var boxW = el.offsetWidth;\n var boxH = el.offsetHeight;\n var boxY = box.top;\n var boxX = box.left;\n var evtPageY = event.pageY;\n var evtPageX = event.pageX;\n\n if (event.changedTouches) {\n evtPageX = event.changedTouches[0].pageX;\n evtPageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, (boxY - evtPageY + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (evtPageX - boxX) / boxW));\n return position;\n} // blur an element\n\n\nfunction blurNode(reactNode) {\n if (reactNode && reactNode.blur) {\n reactNode.blur();\n }\n} // focus an element\n\n\nfunction focusNode(reactNode) {\n if (reactNode && reactNode.focus) {\n reactNode.focus();\n }\n} // check if an element has a class name\n\n\nfunction hasClass(elm, cls) {\n var classes = elm.className.split(' ');\n\n for (var i = 0; i < classes.length; i++) {\n if (classes[i].toLowerCase() === cls.toLowerCase()) {\n return true;\n }\n }\n\n return false;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar Fullscreen =\n/*#__PURE__*/\nfunction () {\n function Fullscreen() {\n (0, _classCallCheck2[\"default\"])(this, Fullscreen);\n }\n\n (0, _createClass2[\"default\"])(Fullscreen, [{\n key: \"request\",\n value: function request(elm) {\n if (elm.requestFullscreen) {\n elm.requestFullscreen();\n } else if (elm.webkitRequestFullscreen) {\n elm.webkitRequestFullscreen();\n } else if (elm.mozRequestFullScreen) {\n elm.mozRequestFullScreen();\n } else if (elm.msRequestFullscreen) {\n elm.msRequestFullscreen();\n }\n }\n }, {\n key: \"exit\",\n value: function exit() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(handler) {\n document.addEventListener('fullscreenchange', handler);\n document.addEventListener('webkitfullscreenchange', handler);\n document.addEventListener('mozfullscreenchange', handler);\n document.addEventListener('MSFullscreenChange', handler);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(handler) {\n document.removeEventListener('fullscreenchange', handler);\n document.removeEventListener('webkitfullscreenchange', handler);\n document.removeEventListener('mozfullscreenchange', handler);\n document.removeEventListener('MSFullscreenChange', handler);\n }\n }, {\n key: \"isFullscreen\",\n get: function get() {\n return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;\n }\n }, {\n key: \"enabled\",\n get: function get() {\n return document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled;\n }\n }]);\n return Fullscreen;\n}();\n\nvar _default = new Fullscreen();\n\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.formatTime = formatTime;\nexports.isVideoChild = isVideoChild;\nexports.mergeAndSortChildren = mergeAndSortChildren;\nexports.deprecatedWarning = deprecatedWarning;\nexports.throttle = throttle;\nexports.mediaProperties = void 0;\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\n// NaN is the only value in javascript which is not equal to itself.\n// eslint-disable-next-line no-self-compare\nvar isNaN = Number.isNaN || function (value) {\n return value !== value;\n};\n/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\n\n\nfunction formatTime() {\n var seconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var guide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : seconds;\n var s = Math.floor(seconds % 60);\n var m = Math.floor(seconds / 60 % 60);\n var h = Math.floor(seconds / 3600);\n var gm = Math.floor(guide / 60 % 60);\n var gh = Math.floor(guide / 3600); // handle invalid times\n\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = '-';\n m = '-';\n s = '-';\n } // Check if we need to show hours\n\n\n h = h > 0 || gh > 0 ? \"\".concat(h, \":\") : ''; // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n\n m = \"\".concat((h || gm >= 10) && m < 10 ? \"0\".concat(m) : m, \":\"); // Check if leading zero is need for seconds\n\n s = s < 10 ? \"0\".concat(s) : s;\n return h + m + s;\n} // Check if the element belongs to a video element\n// only accept , ,\n// \n// elements\n\n\nfunction isVideoChild(c) {\n if (c.props && c.props.isVideoChild) {\n return true;\n }\n\n return c.type === 'source' || c.type === 'track';\n}\n\nvar find = function find(elements, func) {\n return elements.filter(func)[0];\n}; // check if two components are the same type\n\n\nvar isTypeEqual = function isTypeEqual(component1, component2) {\n var type1 = component1.type;\n var type2 = component2.type;\n\n if (typeof type1 === 'string' || typeof type2 === 'string') {\n return type1 === type2;\n }\n\n if (typeof type1 === 'function' && typeof type2 === 'function') {\n return type1.displayName === type2.displayName;\n }\n\n return false;\n}; // merge default children\n// sort them by `order` property\n// filter them by `disabled` property\n\n\nfunction mergeAndSortChildren(defaultChildren, _children, _parentProps) {\n var defaultOrder = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n var children = _react[\"default\"].Children.toArray(_children);\n\n var order = _parentProps.order,\n parentProps = (0, _objectWithoutProperties2[\"default\"])(_parentProps, [\"order\"]); // ignore order from parent\n\n return children.filter(function (e) {\n return !e.props.disabled;\n }) // filter the disabled components\n .concat(defaultChildren.filter(function (c) {\n return !find(children, function (component) {\n return isTypeEqual(component, c);\n });\n })).map(function (element) {\n var defaultComponent = find(defaultChildren, function (c) {\n return isTypeEqual(c, element);\n });\n var defaultProps = defaultComponent ? defaultComponent.props : {};\n var props = (0, _objectSpread2[\"default\"])({}, parentProps, defaultProps, element.props);\n\n var e = _react[\"default\"].cloneElement(element, props, element.props.children);\n\n return e;\n }).sort(function (a, b) {\n return (a.props.order || defaultOrder) - (b.props.order || defaultOrder);\n });\n}\n/**\n * Temporary utility for generating the warnings\n */\n\n\nfunction deprecatedWarning(oldMethodCall, newMethodCall) {\n // eslint-disable-next-line no-console\n console.warn(\"WARNING: \".concat(oldMethodCall, \" will be deprecated soon! Please use \").concat(newMethodCall, \" instead.\"));\n}\n\nfunction throttle(callback, limit) {\n var _arguments = arguments;\n var wait = false;\n return function () {\n if (!wait) {\n // eslint-disable-next-line prefer-rest-params\n callback.apply(void 0, (0, _toConsumableArray2[\"default\"])(_arguments));\n wait = true;\n setTimeout(function () {\n wait = false;\n }, limit);\n }\n };\n}\n\nvar mediaProperties = ['error', 'src', 'srcObject', 'currentSrc', 'crossOrigin', 'networkState', 'preload', 'buffered', 'readyState', 'seeking', 'currentTime', 'duration', 'paused', 'defaultPlaybackRate', 'playbackRate', 'played', 'seekable', 'ended', 'autoplay', 'loop', 'mediaGroup', 'controller', 'controls', 'volume', 'muted', 'defaultMuted', 'audioTracks', 'videoTracks', 'textTracks', 'width', 'height', 'videoWidth', 'videoHeight', 'poster'];\nexports.mediaProperties = mediaProperties;","/**\n * Copyright (c) 2014-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 * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","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}","// 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](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\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};","// 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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"5552a979\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\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); }","var inProgress = {};\nvar dataWebpackPrefix = \"douglanding:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// 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 = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkdouglanding\"] = self[\"webpackChunkdouglanding\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\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}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {}\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\n\nfunction ThemeProvider({\n prefixes = {},\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: { ...prefixes\n },\n dir\n }), [prefixes, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\n\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\n\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({ ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, { ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\n\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n fluid: false\n};\nconst Container = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n fluid,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'container');\n const suffix = typeof fluid === 'string' ? `-${fluid}` : '-fluid';\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, fluid ? `${prefix}${suffix}` : prefix)\n });\n});\nContainer.displayName = 'Container';\nContainer.defaultProps = defaultProps;\nexport default Container;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DEVICE_SIZES = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n DEVICE_SIZES.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n\n const infix = brkPoint !== 'xs' ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;","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}","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DEVICE_SIZES = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport function useCol({\n as,\n bsPrefix,\n className,\n ...props\n}) {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'col');\n const spans = [];\n const classes = [];\n DEVICE_SIZES.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let span;\n let offset;\n let order;\n\n if (typeof propValue === 'object' && propValue != null) {\n ({\n span,\n offset,\n order\n } = propValue);\n } else {\n span = propValue;\n }\n\n const infix = brkPoint !== 'xs' ? `-${brkPoint}` : '';\n if (span) spans.push(span === true ? `${bsPrefix}${infix}` : `${bsPrefix}${infix}-${span}`);\n if (order != null) classes.push(`order${infix}-${order}`);\n if (offset != null) classes.push(`offset${infix}-${offset}`);\n });\n return [{ ...props,\n className: classNames(className, ...spans, ...classes)\n }, {\n as,\n bsPrefix,\n spans\n }];\n}\nconst Col = /*#__PURE__*/React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n(props, ref) => {\n const [{\n className,\n ...colProps\n }, {\n as: Component = 'div',\n bsPrefix,\n spans\n }] = useCol(props);\n return /*#__PURE__*/_jsx(Component, { ...colProps,\n ref: ref,\n className: classNames(className, !spans.length && bsPrefix)\n });\n});\nCol.displayName = 'Col';\nexport default Col;","const _excluded = [\"as\", \"disabled\"];\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\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\nexport function useButtonProps({\n tagName,\n disabled,\n href,\n target,\n rel,\n onClick,\n tabIndex = 0,\n type\n}) {\n if (!tagName) {\n if (href != null || target != null || rel != null) {\n tagName = 'a';\n } else {\n tagName = 'button';\n }\n }\n\n const meta = {\n tagName\n };\n\n if (tagName === 'button') {\n return [{\n type: type || 'button',\n disabled\n }, meta];\n }\n\n const handleClick = event => {\n if (disabled || tagName === 'a' && isTrivialHref(href)) {\n event.preventDefault();\n }\n\n if (disabled) {\n event.stopPropagation();\n return;\n }\n\n onClick == null ? void 0 : onClick(event);\n };\n\n const handleKeyDown = event => {\n if (event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n };\n\n if (tagName === 'a') {\n // Ensure there's a href so Enter can trigger anchor button.\n href || (href = '#');\n\n if (disabled) {\n href = undefined;\n }\n }\n\n return [{\n role: 'button',\n // explicitly undefined so that it overrides the props disabled in a spread\n // e.g. \n disabled: undefined,\n tabIndex: disabled ? undefined : tabIndex,\n href,\n target: tagName === 'a' ? target : undefined,\n 'aria-disabled': !disabled ? undefined : disabled,\n rel: tagName === 'a' ? rel : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown\n }, meta];\n}\nconst Button = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: asProp,\n disabled\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const [buttonProps, {\n tagName: Component\n }] = useButtonProps(Object.assign({\n tagName: asProp,\n disabled\n }, props));\n return /*#__PURE__*/_jsx(Component, Object.assign({}, props, buttonProps, {\n ref: ref\n }));\n});\nButton.displayName = 'Button';\nexport default Button;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useButtonProps } from '@restart/ui/Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n variant: 'primary',\n active: false,\n disabled: false\n};\nconst Button = /*#__PURE__*/React.forwardRef(({\n as,\n bsPrefix,\n variant,\n size,\n active,\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn');\n const [buttonProps, {\n tagName\n }] = useButtonProps({\n tagName: as,\n ...props\n });\n const Component = tagName;\n return /*#__PURE__*/_jsx(Component, { ...buttonProps,\n ...props,\n ref: ref,\n className: classNames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && props.disabled && 'disabled')\n });\n});\nButton.displayName = 'Button';\nButton.defaultProps = defaultProps;\nexport default Button;","import { Navbar, Nav, Container, Row, Col, Button } from 'react-bootstrap';\n\nconst VibeSteps = () => {\n return (true == true ) ? (\n
\n

Is it relaxing? Is the food amazing? Is it relaxing, beautiful, or upbeat? Is there great people watching? Can I bring my dog or kid? Do you love the music? Is it a hidden gem? Do the locals hang here?

\n
\n ):(\n \n\n \n
\n Hit the vibe button.\n
\n \n \n
\n Pick a vibe!\n
\n \n \n
\n Add a picture.\n
\n \n \n
\n Add a short comment.\n
\n \n\n
\n )\n}\nexport default VibeSteps\n","import React, { Component } from 'react';\nimport { Navbar, Nav, Container, Row, Col, Button } from 'react-bootstrap';\nimport { Player, ControlBar} from 'video-react';\nimport Lottie from 'react-lottie';\nimport VibeSteps from './VibeSteps';\nimport manza from '../assets/manza.jpg';\nimport dia from '../assets/dia.jpg';\nimport world_cup from '../assets/world_cup.jpg';\nimport doug_cards from '../assets/doug_cards_three_column.jpg';\nimport doug_cards_mobile from '../assets/doug_cards_mobile_2.jpg';\n\nexport default class Home extends Component {\n constructor(props) {\n super(props)\n this.state = {\n\n }\n }\n componentDidMount() {\n\n }\n render() {\n\n return (\n <>\n \n \n \n
\n \n
\n \n \n \n \n \n \n\n
\n
\n \n \n \n \n \n \n

Find Great Places

\n

From Restaurants and Retail to Museums and Parks, Doug makes it easy to find only the best Places to go.

\n \n\n
\n
\n \n \n \n

Share the Good Vibes

\n

Tell everyone why and what you love about a Place.

\n \n \n \n \n\n
\n
\n \n \n \n

A Vibe is how you'd describe a Place to your friend.

\n\n \n \n
\n \n
Beautiful
\n
This place is beautiful.
\n
\n \n \n
\n \n
Pizza
\n
Find perfect pizza here.
\n
\n \n \n
\n \n
Coffee Spot
\n
vibing on this coffee.
\n
\n \n \n
\n \n
Local
\n
Locals hang out here.
\n
\n \n\n
\n \n \n \n \n \n\n\n\n \n\n
\n
\n \n \n \n \n

Get Doug

\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

Doug for Business

\n

We're here to help.

\n \n\n \n\n
\n
\n\n\n \n )\n }\n}\n","import React, { Component } from 'react';\n\nexport default class Other extends Component {\n constructor(props) {\n super(props)\n this.state = {\n\n }\n }\n render() {\n return (\n
Other
\n )\n }\n}\n","import * as React from 'react';\nconst SelectableContext = /*#__PURE__*/React.createContext(null);\nexport const makeEventKey = (eventKey, href = null) => {\n if (eventKey != null) return String(eventKey);\n return href || null;\n};\nexport default SelectableContext;","import invariant from 'invariant';\n\nvar noop = function noop() {};\n\nfunction readOnlyPropType(handler, name) {\n return function (props, propName) {\n if (props[propName] !== undefined) {\n if (!props[handler]) {\n return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n }\n }\n };\n}\n\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n var propTypes = {};\n Object.keys(controlledValues).forEach(function (prop) {\n // add default propTypes for folks that use runtime checks\n propTypes[defaultKey(prop)] = noop;\n\n if (process.env.NODE_ENV !== 'production') {\n var handler = controlledValues[prop];\n !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n propTypes[prop] = readOnlyPropType(handler, displayName);\n }\n });\n return propTypes;\n}\nexport function isProp(props, prop) {\n return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\n\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\nimport { useCallback, useRef, useState } from 'react';\nimport * as Utils from './utils';\n\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n var wasPropRef = useRef(propValue !== undefined);\n\n var _useState = useState(defaultValue),\n stateValue = _useState[0],\n setState = _useState[1];\n\n var isProp = propValue !== undefined;\n var wasProp = wasPropRef.current;\n wasPropRef.current = isProp;\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n\n if (!isProp && wasProp && stateValue !== defaultValue) {\n setState(defaultValue);\n }\n\n return [isProp ? propValue : stateValue, useCallback(function (value) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (handler) handler.apply(void 0, [value].concat(args));\n setState(value);\n }, [handler])];\n}\n\nexport { useUncontrolledProp };\nexport default function useUncontrolled(props, config) {\n return Object.keys(config).reduce(function (result, fieldName) {\n var _extends2;\n\n var _ref = result,\n defaultValue = _ref[Utils.defaultKey(fieldName)],\n propsValue = _ref[fieldName],\n rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));\n\n var handlerName = config[fieldName];\n\n var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),\n value = _useUncontrolledProp[0],\n handler = _useUncontrolledProp[1];\n\n return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));\n }, props);\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\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","var rHyphen = /-(.)/g;\nexport default function camelize(string) {\n return string.replace(rHyphen, function (_, chr) {\n return chr.toUpperCase();\n });\n}","import classNames from 'classnames';\nimport camelize from 'dom-helpers/camelize';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst pascalCase = str => str[0].toUpperCase() + camelize(str).slice(1);\n\n// TODO: emstricten & fix the typing here! `createWithBsPrefix...`\nexport default function createWithBsPrefix(prefix, {\n displayName = pascalCase(prefix),\n Component,\n defaultProps\n} = {}) {\n const BsComponent = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Tag = Component || 'div',\n ...props\n }, ref) => {\n const resolvedPrefix = useBootstrapPrefix(bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Tag, {\n ref: ref,\n className: classNames(className, resolvedPrefix),\n ...props\n });\n });\n BsComponent.defaultProps = defaultProps;\n BsComponent.displayName = displayName;\n return BsComponent;\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NavbarBrand = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n as,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-brand');\n const Component = as || (props.href ? 'a' : 'span');\n return /*#__PURE__*/_jsx(Component, { ...props,\n ref: ref,\n className: classNames(className, bsPrefix)\n });\n});\nNavbarBrand.displayName = 'NavbarBrand';\nexport default NavbarBrand;","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n var str = css(node, 'transitionDuration') || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n if (padding === void 0) {\n padding = 5;\n }\n\n var called = false;\n var handle = setTimeout(function () {\n if (!called) triggerEvent(element, 'transitionend', true);\n }, duration + padding);\n var remove = listen(element, 'transitionend', function () {\n called = true;\n }, {\n once: true\n });\n return function () {\n clearTimeout(handle);\n remove();\n };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n if (duration == null) duration = parseDuration(element) || 0;\n var removeEmulate = emulateTransitionEnd(element, duration, padding);\n var remove = listen(element, 'transitionend', handler);\n return function () {\n removeEmulate();\n remove();\n };\n}","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n if (bubbles === void 0) {\n bubbles = false;\n }\n\n if (cancelable === void 0) {\n cancelable = true;\n }\n\n if (node) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, bubbles, cancelable);\n node.dispatchEvent(event);\n }\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\n\nfunction parseDuration(node, property) {\n const str = css(node, property) || '';\n const mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nexport default function transitionEndListener(element, handler) {\n const duration = parseDuration(element, 'transitionDuration');\n const delay = parseDuration(element, 'transitionDelay');\n const remove = transitionEnd(element, e => {\n if (e.target === element) {\n remove();\n handler(e);\n }\n }, duration + delay);\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nfunction createChainedFunction(...funcs) {\n return funcs.filter(f => f != null).reduce((acc, f) => {\n if (typeof f !== 'function') {\n throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n\n if (acc === null) return f;\n return function chainedFunction(...args) {\n // @ts-ignore\n acc.apply(this, args); // @ts-ignore\n\n f.apply(this, args);\n };\n }, null);\n}\n\nexport default createChainedFunction;","// reading a dimension prop will cause the browser to recalculate,\n// which will let our animations work\nexport default function triggerBrowserReflow(node) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n node.offsetHeight;\n}","import { useMemo } from 'react';\n\nvar toFnRef = function toFnRef(ref) {\n return !ref || typeof ref === 'function' ? ref : function (value) {\n ref.current = value;\n };\n};\n\nexport function mergeRefs(refA, refB) {\n var a = toFnRef(refA);\n var b = toFnRef(refB);\n return function (value) {\n if (a) a(value);\n if (b) b(value);\n };\n}\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return