{"version":3,"sources":["webpack://Webamp/webpack/universalModuleDefinition","webpack://Webamp/webpack/bootstrap","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/react/jsx-runtime.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/react/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/prop-types/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/@babel/runtime/helpers/defineProperty.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/classnames/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/reselect/lib/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/helpers/extends.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/helpers/defineProperty.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/react-dom/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/helpers/classCallCheck.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/helpers/inherits.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/helpers/createClass.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_core.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/helpers/objectWithoutProperties.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_wks.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/warning/warning.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/css-loader/lib/css-base.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/style-loader/lib/addStyles.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/redux/es/redux.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/fscreen/lib/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_export.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_global.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-dp.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_descriptors.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_has.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_to-iobject.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/helpers/toConsumableArray.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/endianness/endianness.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/utf8-buffer/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/byte-data/lib/int-parser.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/ieee754-buffer/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/byte-data/index.js","webpack://Webamp/(webpack)/buildin/global.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_hide.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_an-object.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_is-object.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_fails.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/invariant/browser.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_property-desc.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_to-object.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_iterators.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/helpers/get.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/object-assign/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-keys.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_library.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_uid.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-pie.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/helpers/typeof.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/_Symbol.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_ctx.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_to-primitive.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_cof.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_defined.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_to-integer.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_shared-key.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_shared.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-gops.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-create.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_wks-ext.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_wks-define.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-gopd.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/react-is/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/add-dom-event-listener/lib/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/symbol-observable/es/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/winamp-eqf/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/winamp-eqf/constants.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_dom-create.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-keys-internal.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_iobject.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_to-length.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/core-js/object/define-property.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/es6.string.iterator.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_iter-define.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_redefine.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-gpo.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-gopn.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-sap.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-util/lib/Dom/addEventListener.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/lib/utils.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/component-indexof/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/symbol-observable/es/ponyfill.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/redux-devtools-extension/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/tinyqueue/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/deburr.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/lib/Slider.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/shallowequal/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/component-classes/index.js","webpack://Webamp/../src/index.ts","webpack://Webamp/./node_modules/react-redux/es/components/Context.js","webpack://Webamp/./node_modules/react-redux/es/utils/batch.js","webpack://Webamp/./node_modules/react-redux/es/utils/Subscription.js","webpack://Webamp/./node_modules/react-redux/es/components/Provider.js","webpack://Webamp/./node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://Webamp/./node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://Webamp/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://Webamp/./node_modules/react-redux/es/components/connectAdvanced.js","webpack://Webamp/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://Webamp/./node_modules/react-redux/es/utils/isPlainObject.js","webpack://Webamp/./node_modules/react-redux/es/utils/warning.js","webpack://Webamp/./node_modules/react-redux/es/utils/verifyPlainObject.js","webpack://Webamp/./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://Webamp/./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://Webamp/./node_modules/react-redux/es/connect/mapStateToProps.js","webpack://Webamp/./node_modules/react-redux/es/connect/mergeProps.js","webpack://Webamp/./node_modules/react-redux/es/connect/verifySubselectors.js","webpack://Webamp/./node_modules/react-redux/es/connect/selectorFactory.js","webpack://Webamp/./node_modules/react-redux/es/connect/connect.js","webpack://Webamp/./node_modules/react-redux/es/hooks/useReduxContext.js","webpack://Webamp/./node_modules/react-redux/es/hooks/useStore.js","webpack://Webamp/./node_modules/react-redux/es/hooks/useDispatch.js","webpack://Webamp/./node_modules/react-redux/es/hooks/useSelector.js","webpack://Webamp/./node_modules/react-redux/es/utils/reactBatchedUpdates.js","webpack://Webamp/./node_modules/react-redux/es/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/redux-thunk/es/index.js","webpack://Webamp/./js/actionTypes.ts","webpack://Webamp/./js/constants.ts","webpack://Webamp/./js/utils.ts","webpack://Webamp/./js/reducers/playlist.ts","webpack://Webamp/./js/reducers/windows.ts","webpack://Webamp/./js/reducers/media.ts","webpack://Webamp/./js/reducers/display.ts","webpack://Webamp/./js/reducers/userInput.ts","webpack://Webamp/./js/reducers/equalizer.ts","webpack://Webamp/./js/reducers/network.ts","webpack://Webamp/./js/reducers/settings.ts","webpack://Webamp/./js/fileUtils.ts","webpack://Webamp/./js/trackUtils.ts","webpack://Webamp/./js/reducers/tracks.ts","webpack://Webamp/./js/types.ts","webpack://Webamp/./js/reducers/milkdrop.ts","webpack://Webamp/./js/reducers/index.ts","webpack://Webamp/./js/playlistHtml.tsx","webpack://Webamp/./js/marqueeUtils.tsx","webpack://Webamp/./js/resizeUtils.ts","webpack://Webamp/./js/selectors.ts","webpack://Webamp/./js/snapUtils.ts","webpack://Webamp/./js/actionCreators/windows.ts","webpack://Webamp/./js/actionCreators/media.ts","webpack://Webamp/./js/actionCreators/equalizer.ts","webpack://Webamp/./js/skinSprites.ts","webpack://Webamp/./js/regionParser.ts","webpack://Webamp/./js/skinParserUtils.ts","webpack://Webamp/./js/skinParser.js","webpack://Webamp/./js/loadQueue.js","webpack://Webamp/./js/actionCreators/playlist.ts","webpack://Webamp/./js/actionCreators/files.ts","webpack://Webamp/./js/actionCreators/milkdrop.ts","webpack://Webamp/./js/actionCreators/index.ts","webpack://Webamp/./js/mediaMiddleware.ts","webpack://Webamp/./js/store.ts","webpack://Webamp/./js/components/Fullscreen.tsx","webpack://Webamp/./js/hooks.ts","webpack://Webamp/./js/components/ResizeTarget.tsx","webpack://Webamp/./js/components/FocusTarget.tsx","webpack://Webamp/./js/components/GenWindow/index.tsx","webpack://Webamp/./js/components/MilkdropWindow/Visualizer.tsx","webpack://Webamp/./js/components/MilkdropWindow/Background.tsx","webpack://Webamp/./js/components/MilkdropWindow/PresetOverlay.tsx","webpack://Webamp/./js/components/DropTarget.tsx","webpack://Webamp/./js/components/ContextMenu.tsx","webpack://Webamp/./js/components/ContextMenuWrapper.tsx","webpack://Webamp/./js/components/MilkdropWindow/MilkdropContextMenu.tsx","webpack://Webamp/./js/components/MilkdropWindow/Desktop.tsx","webpack://Webamp/./js/components/MilkdropWindow/index.tsx","webpack://Webamp/./js/components/PlaybackContextMenu.tsx","webpack://Webamp/./js/components/SkinsContextMenu.tsx","webpack://Webamp/./js/components/OptionsContextMenu.tsx","webpack://Webamp/./js/components/MainWindow/MainContextMenu.tsx","webpack://Webamp/./js/components/WindowManager.tsx","webpack://Webamp/./js/components/Character.tsx","webpack://Webamp/./js/components/MiniTime.tsx","webpack://Webamp/./js/components/ClickedDiv.tsx","webpack://Webamp/./js/components/ContextMenuTarget.tsx","webpack://Webamp/./js/components/useOscilloscopeVisualizer.ts","webpack://Webamp/./js/components/useBarVisualizer.ts","webpack://Webamp/./js/components/Visualizer.tsx","webpack://Webamp/./js/components/MainWindow/ActionButtons.tsx","webpack://Webamp/./js/components/Balance.tsx","webpack://Webamp/./js/components/MainWindow/MainBalance.tsx","webpack://Webamp/./js/components/MainWindow/Close.tsx","webpack://Webamp/./js/components/MainWindow/ClutterBar.tsx","webpack://Webamp/./js/components/MainWindow/Eject.tsx","webpack://Webamp/./js/components/MainWindow/EqToggleButton.tsx","webpack://Webamp/./js/components/MainWindow/PlaylistToggleButton.tsx","webpack://Webamp/./js/components/CharacterString.tsx","webpack://Webamp/./js/components/MainWindow/Kbps.tsx","webpack://Webamp/./js/components/MainWindow/Khz.tsx","webpack://Webamp/./js/components/MainWindow/Marquee.tsx","webpack://Webamp/./js/components/MainWindow/MonoStereo.tsx","webpack://Webamp/./js/components/MainWindow/Position.tsx","webpack://Webamp/./js/components/MainWindow/Repeat.tsx","webpack://Webamp/./js/components/MainWindow/Shade.tsx","webpack://Webamp/./js/components/MainWindow/Minimize.tsx","webpack://Webamp/./js/components/MainWindow/Shuffle.tsx","webpack://Webamp/./js/components/MainWindow/Time.tsx","webpack://Webamp/./js/components/Volume.tsx","webpack://Webamp/./js/components/MainWindow/MainVolume.tsx","webpack://Webamp/./js/components/MainWindow/index.tsx","webpack://Webamp/./js/components/PlaylistWindow/PlaylistResizeTarget.tsx","webpack://Webamp/./js/components/PlaylistWindow/PlaylistShade.tsx","webpack://Webamp/./js/components/PlaylistWindow/PlaylistMenuEntry.tsx","webpack://Webamp/./js/components/PlaylistWindow/PlaylistMenu.tsx","webpack://Webamp/./js/components/PlaylistWindow/AddMenu.tsx","webpack://Webamp/./js/components/PlaylistWindow/RemoveMenu.tsx","webpack://Webamp/./js/components/PlaylistWindow/SelectionMenu.tsx","webpack://Webamp/./js/components/PlaylistWindow/SortContextMenu.tsx","webpack://Webamp/./js/components/PlaylistWindow/MiscOptionsContextMenu.tsx","webpack://Webamp/./js/components/PlaylistWindow/MiscMenu.tsx","webpack://Webamp/./js/components/PlaylistWindow/ListMenu.tsx","webpack://Webamp/./js/components/PlaylistWindow/RunningTimeDisplay.tsx","webpack://Webamp/./js/components/PlaylistWindow/PlaylistActionArea.tsx","webpack://Webamp/./js/components/PlaylistWindow/TrackCell.tsx","webpack://Webamp/./js/components/PlaylistWindow/TrackTitle.tsx","webpack://Webamp/./js/components/PlaylistWindow/TrackList.tsx","webpack://Webamp/./js/components/PlaylistWindow/ScrollBar.tsx","webpack://Webamp/./js/components/PlaylistWindow/index.tsx","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/es/common/Track.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-util/es/Dom/addEventListener.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/es/common/Steps.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/es/common/Marks.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/es/Handle.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-util/es/KeyCode.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/es/utils.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/es/common/createSlider.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/es/Slider.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/es/Range.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-util/es/Dom/contains.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-util/es/ContainerRender.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-util/es/Portal.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-trigger/es/utils.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/dom-align/dist-web/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-align/es/util.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-align/es/Align.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-align/es/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-util/es/unsafeLifecyclesPolyfill.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-animate/es/ChildrenUtils.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/css-animation/es/Event.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/css-animation/es/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-animate/es/util/animate.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-animate/es/AnimateChild.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-animate/es/Animate.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-trigger/es/LazyRenderBox.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-trigger/es/PopupInner.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-trigger/es/Popup.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-trigger/es/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-tooltip/es/placements.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-tooltip/es/Content.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-tooltip/es/Tooltip.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-tooltip/es/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/es/createSliderWithTooltip.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/es/index.js","webpack://Webamp/./js/components/EqualizerWindow/Band.tsx","webpack://Webamp/./js/components/EqualizerWindow/EqOn.tsx","webpack://Webamp/./js/components/EqualizerWindow/EqAuto.tsx","webpack://Webamp/./js/components/EqualizerWindow/spline.js","webpack://Webamp/./js/components/EqualizerWindow/EqGraph.tsx","webpack://Webamp/./js/components/EqualizerWindow/PresetsContextMenu.tsx","webpack://Webamp/./js/components/EqualizerWindow/EqTitleButtons.tsx","webpack://Webamp/./js/components/EqualizerWindow/EqualizerShade.tsx","webpack://Webamp/./js/components/EqualizerWindow/index.tsx","webpack://Webamp/./js/skinSelectors.ts","webpack://Webamp/./js/components/Css.tsx","webpack://Webamp/./js/components/ClipPaths.tsx","webpack://Webamp/./js/components/Skin.tsx","webpack://Webamp/./js/components/App.tsx","webpack://Webamp/./js/hotkeys.ts","webpack://Webamp/./js/emitter.ts","webpack://Webamp/./js/media/StereoBalanceNode.js","webpack://Webamp/./js/media/elementSource.ts","webpack://Webamp/./js/media/index.ts","webpack://Webamp/./js/Disposable.ts","webpack://Webamp/./js/webampLazy.tsx","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/react/cjs/react.production.min.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/react-dom/cjs/react-dom.production.min.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/scheduler/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/scheduler/cjs/scheduler.production.min.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/prop-types/factoryWithThrowingShims.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/react-is/cjs/react-is.production.min.js","webpack://Webamp/(webpack)/buildin/harmony-module.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/winamp-eqf/parser.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/winamp-eqf/creator.js","webpack://Webamp/./css/gen-window.css?95e1","webpack://Webamp/./css/gen-window.css","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/style-loader/lib/urls.js","webpack://Webamp/./css/milkdrop-window.css?e362","webpack://Webamp/./css/milkdrop-window.css","webpack://Webamp/./css/context-menu.css?44e8","webpack://Webamp/./css/context-menu.css","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/_deburrLetter.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/_basePropertyOf.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/toString.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/_baseToString.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/_root.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/_freeGlobal.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/_arrayMap.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/isArray.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/isSymbol.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/_baseGetTag.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/_getRawTag.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/_objectToString.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/lodash/isObjectLike.js","webpack://Webamp/./css/mini-time.css?e0d0","webpack://Webamp/./css/mini-time.css","webpack://Webamp/./css/main-window.css?888e","webpack://Webamp/./css/main-window.css","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/core-js/object/assign.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/fn/object/assign.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/es6.object.assign.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_a-function.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-assign.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_array-includes.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_to-absolute-index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/fn/object/define-property.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/es6.object.define-property.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/core-js/symbol/iterator.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/fn/symbol/iterator.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_string-at.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_iter-create.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-dps.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_html.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/web.dom.iterable.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/es6.array.iterator.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_iter-step.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/core-js/symbol.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/fn/symbol/index.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/es6.symbol.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_meta.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_enum-keys.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_is-array.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_object-gopn-ext.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/es7.symbol.observable.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/fn/object/set-prototype-of.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_set-proto.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/core-js/object/create.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/fn/object/create.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/es6.object.create.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/lib/common/Track.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/lib/common/createSlider.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/core-js/object/get-prototype-of.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/fn/object/get-prototype-of.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/fn/object/get-own-property-descriptor.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/add-dom-event-listener/lib/EventObject.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/add-dom-event-listener/lib/EventBaseObject.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/lib/common/Steps.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/lib/common/Marks.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-slider/lib/Handle.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/babel-runtime/core-js/array/from.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/fn/array/from.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/es6.array.from.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_iter-call.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_is-array-iter.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_create-property.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/core.get-iterator-method.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_classof.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/core-js/library/modules/_iter-detect.js","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/rc-util/lib/KeyCode.js","webpack://Webamp/./css/playlist-window.css?2f39","webpack://Webamp/./css/playlist-window.css","webpack://Webamp/./css/equalizer-window.css?2475","webpack://Webamp/./css/equalizer-window.css","webpack://Webamp/../src/parser.ts","webpack://Webamp//Users/jordaneldredge/projects/webamp/node_modules/riff-file/index.js","webpack://Webamp/./css/webamp.css?6321","webpack://Webamp/./css/webamp.css","webpack://Webamp/./css/base-skin.css?5a6a","webpack://Webamp/./css/base-skin.css"],"names":["ADD_TRACK_FROM_URL","CLOSE_WINAMP","OPEN_WINAMP","MINIMIZE_WINAMP","IS_PLAYING","IS_STOPPED","PAUSE","PLAY","SEEK_TO_PERCENT_COMPLETE","SET_BALANCE","SET_BAND_VALUE","SET_FOCUS","SET_BAND_FOCUS","SET_FOCUSED_WINDOW","SET_MEDIA","SET_SCRUB_POSITION","SET_SKIN_DATA","SET_VOLUME","START_WORKING","STEP_MARQUEE","STOP","STOP_WORKING","TOGGLE_DOUBLESIZE_MODE","SET_EQ_AUTO","SET_EQ_ON","SET_EQ_OFF","TOGGLE_LLAMA_MODE","TOGGLE_REPEAT","TOGGLE_SHUFFLE","TOGGLE_TIME_MODE","TOGGLE_VISUALIZER_STYLE","UNSET_FOCUS","UPDATE_TIME_ELAPSED","SET_USER_MESSAGE","UNSET_USER_MESSAGE","SET_PLAYLIST_SCROLL_POSITION","CLICKED_TRACK","CTRL_CLICKED_TRACK","SHIFT_CLICKED_TRACK","SELECT_ALL","SELECT_ZERO","INVERT_SELECTION","REMOVE_ALL_TRACKS","CROP_TRACKS","FILE_INFO","REMOVE_TRACKS","SET_AVAILABLE_SKINS","REVERSE_LIST","RANDOMIZE_LIST","SET_TRACK_ORDER","PLAY_TRACK","BUFFER_TRACK","DRAG_SELECTED","SET_MEDIA_TAGS","SET_MEDIA_DURATION","TOGGLE_WINDOW","CLOSE_WINDOW","MEDIA_TAG_REQUEST_INITIALIZED","MEDIA_TAG_REQUEST_FAILED","NETWORK_CONNECTED","NETWORK_DISCONNECTED","UPDATE_WINDOW_POSITIONS","WINDOW_SIZE_CHANGED","TOGGLE_WINDOW_SHADE_MODE","LOADED","SET_Z_INDEX","DISABLE_MARQUEE","SET_DUMMY_VIZ_DATA","SET_WINDOW_VISIBILITY","LOADING","CLOSE_REQUESTED","LOAD_SERIALIZED_STATE","RESET_WINDOW_SIZES","BROWSER_WINDOW_SIZE_CHANGED","LOAD_DEFAULT_SKIN","ENABLE_MILKDROP","SET_MILKDROP_DESKTOP","SET_VISUALIZER_STYLE","GOT_BUTTERCHURN_PRESETS","GOT_BUTTERCHURN","RESOLVE_PRESET_AT_INDEX","SELECT_PRESET_AT_INDEX","TOGGLE_PRESET_OVERLAY","PRESET_REQUESTED","TOGGLE_RANDOMIZE_PRESETS","TOGGLE_PRESET_CYCLING","SCHEDULE_MILKDROP_MESSAGE","SET_MILKDROP_FULLSCREEN","BANDS","WINDOWS","MAIN","PLAYLIST","EQUALIZER","MILKDROP","LOAD_STYLE","BUFFER","NONE","MEDIA_TAG_REQUEST_STATUS","INITIALIZED","FAILED","COMPLETE","NOT_REQUESTED","UTF8_ELLIPSIS","CHARACTER_WIDTH","WINDOW_RESIZE_SEGMENT_WIDTH","WINDOW_RESIZE_SEGMENT_HEIGHT","WINDOW_HEIGHT","WINDOW_WIDTH","TRACK_HEIGHT","LETTERS","split","DEFAULT_SKIN","baseSkin","VISUALIZERS","OSCILLOSCOPE","BAR","VISUALIZER_ORDER","TIME_MODE","ELAPSED","REMAINING","MEDIA_STATUS","PLAYING","STOPPED","PAUSED","imgFromUrl","url","Promise","resolve","reject","img","Image","onload","onerror","src","getTimeObj","time","minutesFirstDigit","minutesSecondDigit","secondsFirstDigit","secondsSecondDigit","minutes","Math","floor","seconds","digits","String","getTimeStr","truncate","join","parseViscolors","text","entries","regex","colors","map","line","exec","filter","Boolean","matches","slice","rgb","i","SECTION_REGEX","PROPERTY_REGEX","parseIni","section","match","reduce","data","key","trim","toLowerCase","value","replace","clamp","min","max","sum","values","total","base64FromDataArray","dataArray","window","btoa","fromCharCode","base64FromArrayBuffer","arrayBuffer","Uint8Array","downloadURI","uri","name","link","document","createElement","download","href","body","appendChild","click","removeChild","toPercent","percentToRange","percent","round","percentToIndex","length","rebound","oldMin","oldMax","newMin","newMax","oldValue","normalizeEqBand","denormalizeEqBand","merge","target","source","s","t","Object","keys","assign","segment","newValues","ratio","shuffle","array","sorted","m","random","val","sort","iteratee","a","b","aKey","bKey","moveSelected","arr","isSelected","offset","newArr","Array","next","from","spliceIn","original","start","splice","replaceAtIndex","index","newValue","debounce","func","delay","timeout","callbackArgs","context","args","clearTimeout","setTimeout","apply","throttle","counter","uniqueId","objectForEach","obj","cb","forEach","objectMap","modified","objectFilter","predicate","newObj","calculateBoundingBox","windows","windowSizes","w","left","x","top","y","bottom","height","right","width","findLastIndex","getWindowSize","scrollWidth","documentElement","offsetWidth","clientWidth","scrollHeight","offsetHeight","clientHeight","getScreenSize","screen","weakMapMemoize","cache","WeakMap","has","set","get","defaultPlaylistState","trackOrder","currentTrack","lastSelectedIndex","selectedTracks","Set","toggleSetMembership","delete","add","playlist","state","action","type","id","newSelectedTracks","clickedIndex","end","actionIds","ids","Number","trackId","reverse","atIndex","defaultWindowsState","focused","positionsAreRelative","genWindows","title","size","open","hidden","shade","canResize","canShade","canDouble","hotkey","position","browserWindowSize","windowOrder","windowId","Error","windowState","absolute","Utils","newPosition","positions","serializedState","serializedW","getSerializedState","defaultState","timeMode","timeElapsed","volume","balance","repeat","status","media","newMode","elapsed","defaultSkinGenExColors","itemBackground","itemForeground","windowBackground","buttonText","windowText","divider","playlistSelection","listHeaderBackground","listHeaderText","listHeaderFrameTopAndLeft","listHeaderFrameBottomAndRight","listHeaderFramePressed","listHeaderDeadArea","scrollbarOne","scrollbarTwo","pressedScrollbarOne","pressedScrollbarTwo","scrollbarDeadArea","listTextHighlighted","listTextHighlightedBackground","listTextSelected","listTextSelectedBackground","defaultDisplayState","doubled","marqueeStep","disableMarquee","loading","llama","closed","working","skinImages","images","skinColors","skinCursors","skinPlaylistStyle","skinRegion","visualizerStyle","dummyVizData","playlistScrollPosition","skinGenLetterWidths","skinGenExColors","additionalVisualizers","zIndex","display","rest","upgrade","newSkinCursors","newCursors","cursor","undefined","getVisualizerStyle","createSelector","visualizationStyle","defaultUserInput","focus","bandFocused","scrubPosition","userMessage","userInput","input","message","on","auto","sliders","preamp","equalizer","newSliders","band","network","connected","defaultSettingsState","availableSkins","settings","skins","genMediaTags","file","musicMetadata","invariant","options","duration","skipPostHeaders","fetchFromUrl","parseBlob","genMediaDuration","audio","crossOrigin","durationChange","removeEventListener","addEventListener","e","genArrayBufferFromFileReference","fileReference","reader","FileReader","result","readAsArrayBuffer","genStringFromFileReference","readAsText","promptForFileReferences","accept","directory","fileInput","setAttribute","multiple","webkitdirectory","mozdirectory","files","urlIsBlobUrl","test","curUrlFromByteArray","base64","filenameFromUrl","lastSegment","pop","trackName","track","artist","defaultName","filename","FileUtils","trackFilename","urlFilename","tracks","mediaTagsRequestStatus","newTrack","sampleRate","bitrate","numberOfChannels","album","albumArtUrl","kbps","khz","channels","getTrackDisplayName","TrackUtils","TransitionType","defaultMilkdropState","overlay","presetHistory","presets","currentPresetIndex","butterchurn","transitionType","DEFAULT","randomize","cycling","milkdrop","enabled","concat","addToHistory","preset","json","Date","now","reducer","combineReducers","getAsDataURI","noshadeStyle","borderWidth","color","backgroundColor","Body","props","Font","Hr","Div","Table","Playlist","numberOfTracks","averageTrackLength","playlistLengthMinutes","playlistLengthSeconds","createPlaylistHTML","node","render","innerHTML","createPlaylistURL","getBalanceText","direction","abs","getVolumeText","getPositionText","seekToPercent","newElapsedStr","durationStr","getDoubleSizeModeText","formatHz","hz","ensureSign","num","toString","roundToTenths","toFixed","getEqText","level","db","label","getPositionDiff","graph","sizeDiff","newGraph","positionDiff","above","neighbors","below","push","walkRight","nodeSizeDiff","walkDown","generateGraph","bottoms","rights","edges","tops","lefts","isToTheLeft","isToTheRight","overlapsInX","isAbove","isBelow","overlapsInY","getSliders","getEqfData","eqfData","getTracks","getTrackUrl","getTrackOrder","getTrackCount","getOrderedTracks","getUserTracks","metaData","getOrderedTrackObjects","getSelectedTrackIds","getSelectedTrackObjects","selectedIds","runningTimeFromTracks","getTotalRunningTime","getSelectedRunningTime","getRunningTimeMessage","totalRunningTime","selectedRunningTime","getCurrentTrackIndex","indexOf","getCurrentTrackNumber","currentTrackIndex","getCurrentTrackId","getRandomTrackId","nextId","getNextTrackId","n","trackCount","currentIndex","nextIndex","getGenWindows","getWindowOpen","getWindowHidden","getWindowShade","getWindowPositions","BASE_WINDOW_HEIGHT","getNumberOfVisibleTracks","getWindowSize_","playlistSize","getOverflowTrackCount","numberOfVisibleTracks","_getPlaylistScrollPosition","getPlaylistScrollPosition","overflowTrackCount","getScrollOffset","overflow","getVisibleTrackIds","getAllTracksAreVisible","getTrackIsVisibleFunction","visibleTrackIds","includes","getVisibleTracks","getPlaylist","getDuration","defaultMemoize","fromTracks","getCurrentTrackDisplayName","getName","getMediaStatus","getMediaIsPlaying","getCurrentTrack","getCurrentlyPlayingTrackIdIfLoaded","mediaIsPlaying","getCurrentTrackInfo","getMinimalMediaText","trackNumber","getMediaText","minimalMediaText","getNumberOfTracks","getPlaylistDuration","getPlaylistURL","playlistDuration","getDisplayName","SHADE_WINDOW_HEIGHT","getWPixelSize","doubledMultiplier","pix","getFocusedWindow","getWindowPosition","getPositionsAreRelative","getDoubled","getLlamaMode","getZIndex","getWindowSizes","getWindowPixelSize","sizes","getWindowOrder","getNormalizedWindowOrder","getWindowsInfo","getWindowGraph","defaultPlaylistStyle","normal","current","normalbg","selectedbg","font","getSkinColors","getSkinPlaylistStyle","fromDisplay","getVolume","getBalance","getShuffle","getRepeat","getChannels","getTimeElapsed","getSerlializedState","version","fromMedia","fromEqualizer","fromWindows","getEqualizerEnabled","getEqualizerAuto","getBrowserWindowSize","getOpenWindows","getStackedLayoutPositions","openWindows","getUserInputFocus","getUserInputScrubPosition","getMarqueeText","defaultText","MarqueeUtils","mediaText","getKbps","getKhz","getDebugData","getMilkdropMessage","getMilkdropDesktopEnabled","getMilkdropFullscreenEnabled","getPresets","getButterchurn","getPresetTransitionType","getCurrentPresetIndex","getCurrentPreset","getPresetNames","getPresetOverlayOpen","getPresetsAreCycling","getRandomizePresets","getClosed","getSkinImages","getSkinCursors","getSkinRegion","getSkinLetterWidths","getPreampLineUrl","EQ_PREAMP_LINE","getLineColorsUrl","EQ_GRAPH_LINE_COLORS","getPreampLineImage","getLineColorsImage","getDummyVizData","getMarqueeStep","getNetworkConnected","getTimeMode","getLoading","getWorking","getAvaliableSkins","SNAP_DISTANCE","box","near","overlapX","overlapY","snap","boxA","boxB","snapDiff","newPos","snapDiffManyToMany","as","bs","diff","snapToMany","otherBoxes","snapWithin","boundingBox","snapWithinDiff","applySnap","snaps","previous","snapped","nodes","boxes","firstNode","bounding","traceConnection","areConnected","candidates","checkNode","candidate","applyDiff","applyMultipleDiffs","initial","diffs","metaDiff","withWindowGraphIntegrity","dispatch","getState","Selectors","originalSizes","newSizes","windowPositions","newPositions","updateWindowPositions","toggleDoubleSizeMode","toggleLlamaMode","toggleEqualizerShadeMode","toggleMainWindowShadeMode","togglePlaylistShadeMode","closeWindow","hideWindow","showWindow","setFocusedWindow","setWindowSize","toggleWindow","centerWindowsInContainer","container","getBoundingClientRect","centerWindows","centerWindowsInView","scrollX","scrollY","innerWidth","innerHeight","windowsInfo","getOpen","offsetLeft","offsetTop","boxHeight","boxWidth","move","ceil","pos","browserWindowSizeChanged","ensureWindowsAreOnScreen","resetWindowSizes","stackWindows","boundingHeight","boundingWidth","moveY","moveX","playTrack","isStopped","playTrackNow","play","openMediaFileDialog","pause","stop","nextN","nextTrackId","seekToTime","seekForward","seekBackward","setVolume","adjustVolume","volumeDiff","currentVolume","scrollVolume","preventDefault","deltaY","setBalance","toggleRepeat","toggleShuffle","toggleTimeMode","BAND_SNAP_DISTANCE","BAND_MID_POINT_VALUE","_snapBandValue","setEqBand","_setEqTo","setEqToMax","setEqToMid","setEqToMin","setPreamp","toggleEq","toggleEqAuto","FONT_LOOKUP","c","d","f","g","h","j","k","l","o","p","q","r","u","v","z","_","$","Å","Ö","Ä","imageConstFromChar","char","charCodeAt","CHAR_X","CHAR_Y","characterSprites","hasOwnProperty","sprites","BALANCE","CBUTTONS","MONOSTER","NUMBERS","NUMS_EX","PLAYPAUS","PLEDIT","EQ_EX","EQMAIN","POSBAR","SHUFREP","TEXT","TITLEBAR","VOLUME","GEN","pointPairs","pairedValues","regionParser","regionStr","iniData","numpoints","pointlist","pointCounts","points","pointIndex","polygons","numStr","polygon","validPolygons","getFileExtension","fileName","getFilenameRegex","base","ext","RegExp","getFileFromZip","zip","mode","lastFile","contents","async","console","warn","fallbackGetImgFromBlob","blob","URL","createObjectURL","getImgFromBlob","createImageBitmap","ee","getSpriteUrisFromImg","canvas","getContext","sprite","drawImage","image","toDataURL","getImgFromFilename","mimeType","typedBlob","Blob","getSpriteUrisFromFilename","SKIN_SPRITES","RIFF_MAGIC","arrayStartsWith","matcher","every","item","getCursorFromFilename","aniData","error","getPlaylistStyle","playlistStyle","ini","colorKey","getGenExColors","getColorAt","getImageData","shallowMerge","objs","prev","CURSORS","genVizColors","viscolor","SkinParserUtils","genImages","imageObjs","all","genCursors","cursorObjs","cursorName","genRegion","region","genGenTextSprites","getLetters","prefix","letter","nextBackground","letterWidths","skinParser","zipFileBuffer","JSZip","loadAsync","cursors","genTextSprites","genExColors","genLetterWidths","genTextImages","LoadQueue","constructor","threads","_queue","TinyQueue","priority","_availableThreads","task","_run","t1","promise","then","cropPlaylist","selectedTrackIds","removeSelectedTracks","removeAllTracks","reverseList","randomizeList","sortListByTitle","setPlaylistScrollPosition","scrollNTracks","currentOffset","scrollPlaylistByDelta","stopPropagation","totalPixelHeight","percentDelta","scrollUpFourTracks","scrollDownFourTracks","dragSelected","firstSelected","findIndex","lastSelected","normalizedOffset","invertSelection","selectZero","selectAll","DURATION_VISIBLE_PRIORITY","META_DATA_VISIBLE_PRIORITY","DURATION_PRIORITY","META_DATA_PRIORITY","loadQueue","addTracksFromReferences","fileReferences","loadStyle","loadMediaFiles","SKIN_FILENAME_MATCHER","EQF_FILENAME_MATCHER","loadFilesFromReferences","setSkinFromBlob","setEqFromFileReference","requireJSZip","alert","skinData","setSkinFromUrl","response","fetch","ok","statusText","_openFileDialog","expectedType","count","firstFileName","openEqfFileDialog","openSkinFileDialog","fetchMediaDuration","trackIsVisible","loadMedia","dataTransfer","handleTrackDropEvent","loadMediaFile","canonicalUrl","fetchMediaTags","queueFetchingMediaTags","requireMusicMetadata","metadata","picture","common","format","byteArray","eqf","parser","setEqFromObject","downloadPreset","creator","dataURI","downloadHtmlPlaylist","el","DIR_SUPPORT","addFilesAtIndex","addDirAtIndex","addFilesFromUrl","handleAddUrlEvent","addFilesFromList","handleLoadListEvent","saveFilesToList","handleSaveListEvent","droppedFiles","normalizePresetTypes","butterchurnPresetObject","getPreset","getButterchrunPresetObject","resp","butterchurnPresetUrl","initializePresets","presetOptions","importButterchurn","default","normalizePresets","loadPresets","presetsLength","selectRandomPreset","requestPresetAtIndex","IMMEDIATE","appendPresetFileList","fileList","convertPreset","JSON_EXT","MILK_EXT","endsWith","str","JSON","parse","selectNextPreset","nextPresetIndex","selectPreviousPreset","lastPresetIndex","randomIndex","handlePresetDrop","toggleRandomizePresets","togglePresetCycling","scheduleMilkdropMessage","close","defaultPrevented","cancel","toggleVisualizerStyle","minimize","setFocus","unsetFocus","focusBand","loadSerializedState","loadDefaultSkin","toggleMilkdropDesktop","setMilkdropFullscreen","toggleMilkdropFullscreen","togglePresetOverlay","stepMarquee","store","nextTrack","returnValue","seekToPercentComplete","loadFromUrl","disableEq","enableEq","slider","compose","composeWithDevTools","actionsBlacklist","actionEmitter","customMiddlewares","stateOverrides","extras","initialState","emitterMiddleware","trigger","enhancer","applyMiddleware","thunk","withExtraArgument","mediaMiddleware","createStore","leaveFullScreen","fscreen","fullscreenEnabled","exitFullscreen","enterFullScreen","requestFullscreen","FullScreen","onChange","ref","useRef","useEffect","detectFullScreen","fullscreenElement","useLayoutEffect","isEnabled","children","useUnmountedRef","unmountedRef","usePromiseValueOrNull","propValue","setValue","useState","disposed","resolvedValue","useScreenSize","useWindowSize","setSize","handler","useCallback","cursorPositionRef","pageX","pageY","useCursorPositionRef","useIsHovered","cursorRef","hover","setHover","setNode","domRect","enter","leave","useOnClickAway","callback","handleClickOut","clickOutTarget","Element","contains","capture","useTypedSelector","selector","useSelector","useActionCreator","actionCreator","useDispatch","useTypedDispatch","ResizeTarget","currentSize","widthOnly","passThroughProps","mouseDown","setMouseDown","mouseStart","setMouseStart","handleMove","clientX","clientY","newWidth","newHeight","newSize","handleMouseUp","handleMouseDown","memo","FocusTarget","onKeyDown","focusedWindowId","Actions","focusHandler","setRef","observer","MutationObserver","mutations","activeElement","some","mutation","removedNodes","observe","subtree","attributes","childList","disconnect","Text","letters","CHROME_WIDTH","CHROME_HEIGHT","GenWindow","focusedWindow","windowSize","selected","classnames","TRANSITION_TYPE_DURATIONS","USER_PRESET","Visualizer","analyser","playing","trackTitle","currentPreset","isEnabledVisualizer","canvasRef","visualizer","setVisualizer","_visualizer","createVisualizer","meshWidth","meshHeight","pixelRatio","devicePixelRatio","connectAudio","setRendererSize","hasLoadedPreset","loadPreset","launchSongTitleAnim","lastShownMessage","shouldAnimate","animationFrameRequest","loop","requestAnimationFrame","cancelAnimationFrame","Background","innerRef","ENTRY_HEIGHT","HEIGHT_PADDING","WIDTH_PADDING","LOADING_STYLE","background","OUTER_WRAPPER_STYLE","padding","INNER_WRAPPER_STYLE","whiteSpace","fontSize","presetIndexFromListIndex","listIndex","listIndexFromPresetIndex","PresetOverlay","presetKeys","selectedListIndex","setSelectedListIndex","maxListIndex","renderList","maxVisibleRows","rowsToShow","startIndex","endIndex","getRangeCenteredOnIndex","presetElms","presetIndex","isCurrent","lineHeight","loadLocalDir","handleFocusedKeyboardInput","keyCode","handleNode","maxHeight","listStyleType","margin","maxRangeSize","indexToCenter","rangeSize","halfRangeSize","idealStartIndex","supress","dropEffect","effectAllowed","DropTarget","handleDrop","onDrop","currentTarget","Portal","useMemo","div","style","createPortal","Parent","LinkNode","Node","checked","className","ContextMenu","ContextMenuWraper","renderContents","openPosition","setOpenPosition","closeMenu","handleGlobalClick","button","handleRightClick","MilkdropContextMenu","desktop","toggleDesktop","toggleFullscreen","Desktop","React","desktopNode","classList","ReactDOM","MILLISECONDS_BETWEEN_PRESET_TRANSITIONS","useKeyHandler","toggleRandomize","toggleCycling","Milkdrop","fullscreen","presetsAreCycling","setFullscreen","handleKeyDown","intervalId","setInterval","clearInterval","screenSize","genWindowSize","PlaybackContextMenu","SkinContextMenu","setSkin","skin","OptionsContextMenu","MainContextMenu","filePickers","networkConnected","menuOpened","picker","requiresNetwork","filePicker","contextMenuName","abuts","wouldMoveTo","SnapUtils","useHandleMouseDown","propsWindows","draggingState","setDraggingState","moving","stationary","handleMouseMove","proposedDiff","proposedWindows","proposedBox","withinDiff","finalDiff","windowPositionDiff","targetNode","find","movingSet","findAllConnected","WindowManager","onBlur","relatedTarget","transform","characterClassName","deburr","Character","passThrough","MiniTime","toggle","timeObj","showMinus","blinking","ClickedDiv","clicked","setClicked","onMouseDown","getNodeOffset","rect","scrollLeft","pageXOffset","scrollTop","pageYOffset","ContextMenuTarget","setSelected","renderMenu","PIXEL_DENSITY","sliceAverage","sliceWidth","sliceNumber","usePaintOscilloscopeFrame","renderWidth","bufferLength","fftSize","canvasCtx","getByteTimeDomainData","lineWidth","strokeStyle","beginPath","amplitude","percentAmplitude","moveTo","lineTo","stroke","BAR_WIDTH","GRADIENT_COLOR_COUNT","PEAK_COLOR_INDEX","BAR_PEAK_DROP_RATE","NUM_BARS","octaveBucketsForBufferLength","octaveBuckets","fill","minHz","maxHz","octaveStep","pow","octaveIdx","preRenderBar","renderHeight","barCanvas","gradientColors","barCanvasCtx","multiplier","colorIndex","fillStyle","fillRect","usePaintBar","windowShade","ctx","barHeight","peakHeight","peakY","usePaintBarFrame","barPeaks","barPeakFrames","frequencyBinCount","paintBar","getByteFrequencyData","heightMultiplier","xOffset","barPeak","preRenderBg","bgColor","fgColor","bgCanvas","distance","bgCanvasCtx","paintOscilloscopeFrame","paintBarFrame","paintFrame","clearRect","setCanvas","imageSmoothingEnabled","animationRequest","ActionButtons","Balance","offsetFromBalance","MainBalance","backgroundPosition","Close","setFocusDouble","mouseUp","ClutterBar","Eject","toggleEqualizer","EqToggleButton","handleClick","windowOpen","togglePlaylist","PlaylistToggleButton","CharacterString","chars","character","Kbps","Khz","SEPARATOR","CHAR_WIDTH","MARQUEE_MAX_LENGTH","mod","isLong","stepOffset","step","pixels","stepOffsetWidth","stringLength","pixelUnits","loopText","padEnd","useStepper","dragging","stepping","setStepping","stepHandle","steppingTimeout","useDragX","mouseDownX","setMouseDownX","dragOffset","setDragOffset","xStart","cleanedUp","Marquee","offsetPixels","willChange","MonoStereo","usePosition","userInputFocus","displayedPosition","Position","setPosition","Repeat","Shade","Minimize","Shuffle","Time","Volume","MainVolume","loadMediaAndPlay","MainWindow","mainShade","draggable","PlaylistResizeTarget","PlaylistShade","toggleShade","focusWindow","addedWidth","trimmedName","MIN_NAME_WIDTH","nameLength","PlaylistMenuEntry","PlaylistMenu","selected_","Children","child","AddMenu","RemoveMenu","removeSelected","removeAll","crop","SelectionMenu","invert","zero","SortContextMenu","MiscOptionsContextMenu","MiscMenu","ListMenu","rightPad","len","fillChar","RunningTimeDisplay","runningTimeMessage","PlaylistWindow","TrackCell","handleMoveClick","currentTrackId","shiftKey","metaKey","ctrlKey","TrackTitle","paddedTrackNumber","getNumberLength","number","TrackList","trackIds","setMoving","mouseStartY","setMouseStartY","_handleMoveClick","lastDiff","diffDiff","_renderTracks","maxTrackNumberLength","paddedTrackNumForIndex","padStart","Slider","SliderComponent","Handle","ScrollBar","allTracksAreVisible","_maxTrackIndex","selectedWindow","maxTrackIndex","playlistShade","playlistWindowPixelSize","showVisualizer","activateVisualizer","targetCoords","fontFamily","classes","showSpacers","MAX_VALUE","spriteNumber","spriteOffsets","Band","yOffset","usetFocus","EqOn","EqAuto","toggleAuto","spline","xs","ys","ks","getNaturalKs","maxX","allYs","matrix","zerosMatrix","solve","iMax","vali","NEGATIVE_INFINITY","swapRows","rows","columns","GRAPH_HEIGHT","GRAPH_WIDTH","EqGraph","preampLineImagePromise","preampLineImage","canvasNode","setCanvasNode","colorPattern","useColorPattern","drawEqLine","lineColorsImagePromise","lineColorsImage","createPattern","preampValue","amplitudes","paddingLeft","lastY","yTop","PresetsContextMenu","builtin","EqTitleButtons","EqualizerShade","eqVolumeClassName","eqBalanceClassName","bandClassName","EqualizerWindow","setPreampValue","setHertzValue","hertz","imageSelectors","MAIN_BALANCE_BACKGROUND","MAIN_BALANCE_THUMB","MAIN_BALANCE_THUMB_ACTIVE","MAIN_PREVIOUS_BUTTON","MAIN_PREVIOUS_BUTTON_ACTIVE","MAIN_PLAY_BUTTON","MAIN_PLAY_BUTTON_ACTIVE","MAIN_PAUSE_BUTTON","MAIN_PAUSE_BUTTON_ACTIVE","MAIN_STOP_BUTTON","MAIN_STOP_BUTTON_ACTIVE","MAIN_NEXT_BUTTON","MAIN_NEXT_BUTTON_ACTIVE","MAIN_EJECT_BUTTON","MAIN_EJECT_BUTTON_ACTIVE","MAIN_WINDOW_BACKGROUND","MAIN_STEREO","MAIN_STEREO_SELECTED","MAIN_MONO","MAIN_MONO_SELECTED","NO_MINUS_SIGN","MINUS_SIGN","DIGIT_0","DIGIT_1","DIGIT_2","DIGIT_3","DIGIT_4","DIGIT_5","DIGIT_6","DIGIT_7","DIGIT_8","DIGIT_9","NO_MINUS_SIGN_EX","MINUS_SIGN_EX","DIGIT_0_EX","DIGIT_1_EX","DIGIT_2_EX","DIGIT_3_EX","DIGIT_4_EX","DIGIT_5_EX","DIGIT_6_EX","DIGIT_7_EX","DIGIT_8_EX","DIGIT_9_EX","MAIN_PLAYING_INDICATOR","MAIN_PAUSED_INDICATOR","MAIN_STOPPED_INDICATOR","MAIN_NOT_WORKING_INDICATOR","MAIN_WORKING_INDICATOR","PLAYLIST_TOP_TILE","PLAYLIST_TOP_LEFT_CORNER","PLAYLIST_TITLE_BAR","PLAYLIST_TOP_RIGHT_CORNER","PLAYLIST_TOP_TILE_SELECTED","PLAYLIST_TOP_LEFT_SELECTED","PLAYLIST_TITLE_BAR_SELECTED","PLAYLIST_TOP_RIGHT_CORNER_SELECTED","PLAYLIST_LEFT_TILE","PLAYLIST_RIGHT_TILE","PLAYLIST_SCROLL_HANDLE","PLAYLIST_SCROLL_HANDLE_SELECTED","PLAYLIST_BOTTOM_TILE","PLAYLIST_BOTTOM_LEFT_CORNER","PLAYLIST_BOTTOM_RIGHT_CORNER","PLAYLIST_VISUALIZER_BACKGROUND","PLAYLIST_SHADE_BACKGROUND","PLAYLIST_SHADE_BACKGROUND_LEFT","PLAYLIST_SHADE_BACKGROUND_RIGHT","PLAYLIST_SHADE_BACKGROUND_RIGHT_SELECTED","PLAYLIST_ADD_MENU_BAR","PLAYLIST_ADD_URL","PLAYLIST_ADD_URL_SELECTED","PLAYLIST_ADD_DIR","PLAYLIST_ADD_DIR_SELECTED","PLAYLIST_ADD_FILE","PLAYLIST_ADD_FILE_SELECTED","PLAYLIST_REMOVE_MENU_BAR","PLAYLIST_REMOVE_ALL","PLAYLIST_REMOVE_ALL_SELECTED","PLAYLIST_CROP","PLAYLIST_CROP_SELECTED","PLAYLIST_REMOVE_SELECTED","PLAYLIST_REMOVE_SELECTED_SELECTED","PLAYLIST_REMOVE_MISC","PLAYLIST_REMOVE_MISC_SELECTED","PLAYLIST_SELECT_MENU_BAR","PLAYLIST_INVERT_SELECTION","PLAYLIST_INVERT_SELECTION_SELECTED","PLAYLIST_SELECT_ZERO","PLAYLIST_SELECT_ZERO_SELECTED","PLAYLIST_SELECT_ALL","PLAYLIST_SELECT_ALL_SELECTED","PLAYLIST_CLOSE_SELECTED","PLAYLIST_COLLAPSE_SELECTED","PLAYLIST_EXPAND_SELECTED","PLAYLIST_MISC_MENU_BAR","PLAYLIST_MISC_OPTIONS","PLAYLIST_MISC_OPTIONS_SELECTED","PLAYLIST_FILE_INFO","PLAYLIST_FILE_INFO_SELECTED","PLAYLIST_SORT_LIST","PLAYLIST_SORT_LIST_SELECTED","PLAYLIST_LIST_BAR","PLAYLIST_NEW_LIST","PLAYLIST_NEW_LIST_SELECTED","PLAYLIST_LOAD_LIST","PLAYLIST_LOAD_LIST_SELECTED","PLAYLIST_SAVE_LIST","PLAYLIST_SAVE_LIST_SELECTED","EQ_WINDOW_BACKGROUND","EQ_TITLE_BAR","EQ_TITLE_BAR_SELECTED","EQ_SLIDER_BACKGROUND","EQ_SLIDER_THUMB","EQ_SLIDER_THUMB_SELECTED","EQ_ON_BUTTON","EQ_ON_BUTTON_DEPRESSED","EQ_ON_BUTTON_SELECTED","EQ_ON_BUTTON_SELECTED_DEPRESSED","EQ_AUTO_BUTTON","EQ_AUTO_BUTTON_DEPRESSED","EQ_AUTO_BUTTON_SELECTED","EQ_AUTO_BUTTON_SELECTED_DEPRESSED","EQ_GRAPH_BACKGROUND","EQ_PRESETS_BUTTON","EQ_PRESETS_BUTTON_SELECTED","EQ_SHADE_BACKGROUND","EQ_SHADE_BACKGROUND_SELECTED","EQ_SHADE_VOLUME_SLIDER_LEFT","EQ_SHADE_VOLUME_SLIDER_CENTER","EQ_SHADE_VOLUME_SLIDER_RIGHT","EQ_SHADE_BALANCE_SLIDER_LEFT","EQ_SHADE_BALANCE_SLIDER_CENTER","EQ_SHADE_BALANCE_SLIDER_RIGHT","EQ_MAXIMIZE_BUTTON_ACTIVE","EQ_MINIMIZE_BUTTON_ACTIVE","EQ_CLOSE_BUTTON","EQ_CLOSE_BUTTON_ACTIVE","EQ_SHADE_CLOSE_BUTTON","EQ_SHADE_CLOSE_BUTTON_ACTIVE","MAIN_POSITION_SLIDER_BACKGROUND","MAIN_POSITION_SLIDER_THUMB","MAIN_POSITION_SLIDER_THUMB_SELECTED","MAIN_SHUFFLE_BUTTON","MAIN_SHUFFLE_BUTTON_DEPRESSED","MAIN_SHUFFLE_BUTTON_SELECTED","MAIN_SHUFFLE_BUTTON_SELECTED_DEPRESSED","MAIN_REPEAT_BUTTON","MAIN_REPEAT_BUTTON_DEPRESSED","MAIN_REPEAT_BUTTON_SELECTED","MAIN_REPEAT_BUTTON_SELECTED_DEPRESSED","MAIN_EQ_BUTTON","MAIN_EQ_BUTTON_SELECTED","MAIN_EQ_BUTTON_DEPRESSED","MAIN_EQ_BUTTON_DEPRESSED_SELECTED","MAIN_PLAYLIST_BUTTON","MAIN_PLAYLIST_BUTTON_SELECTED","MAIN_PLAYLIST_BUTTON_DEPRESSED","MAIN_PLAYLIST_BUTTON_DEPRESSED_SELECTED","MAIN_TITLE_BAR","MAIN_TITLE_BAR_SELECTED","MAIN_EASTER_EGG_TITLE_BAR","MAIN_EASTER_EGG_TITLE_BAR_SELECTED","MAIN_OPTIONS_BUTTON","MAIN_OPTIONS_BUTTON_DEPRESSED","MAIN_MINIMIZE_BUTTON","MAIN_MINIMIZE_BUTTON_DEPRESSED","MAIN_SHADE_BUTTON","MAIN_SHADE_BUTTON_DEPRESSED","MAIN_CLOSE_BUTTON","MAIN_CLOSE_BUTTON_DEPRESSED","MAIN_CLUTTER_BAR_BACKGROUND","MAIN_CLUTTER_BAR_BACKGROUND_DISABLED","MAIN_CLUTTER_BAR_BUTTON_O_SELECTED","MAIN_CLUTTER_BAR_BUTTON_A_SELECTED","MAIN_CLUTTER_BAR_BUTTON_I_SELECTED","MAIN_CLUTTER_BAR_BUTTON_D_SELECTED","MAIN_CLUTTER_BAR_BUTTON_V_SELECTED","MAIN_SHADE_BACKGROUND","MAIN_SHADE_BACKGROUND_SELECTED","MAIN_SHADE_BUTTON_SELECTED","MAIN_SHADE_BUTTON_SELECTED_DEPRESSED","MAIN_SHADE_POSITION_BACKGROUND","MAIN_SHADE_POSITION_THUMB","MAIN_SHADE_POSITION_THUMB_LEFT","MAIN_SHADE_POSITION_THUMB_RIGHT","MAIN_VOLUME_BACKGROUND","MAIN_VOLUME_THUMB","MAIN_VOLUME_THUMB_SELECTED","GEN_TOP_CENTER_FILL","GEN_TOP_LEFT","GEN_TOP_LEFT_END","GEN_TOP_RIGHT","GEN_TOP_RIGHT_END","GEN_TOP_LEFT_RIGHT_FILL","GEN_TOP_CENTER_FILL_SELECTED","GEN_TOP_LEFT_SELECTED","GEN_TOP_LEFT_END_SELECTED","GEN_TOP_RIGHT_SELECTED","GEN_TOP_RIGHT_END_SELECTED","GEN_TOP_LEFT_RIGHT_FILL_SELECTED","GEN_BOTTOM_LEFT","GEN_BOTTOM_RIGHT","GEN_BOTTOM_FILL","GEN_MIDDLE_LEFT","GEN_MIDDLE_LEFT_BOTTOM","GEN_MIDDLE_RIGHT","GEN_MIDDLE_RIGHT_BOTTOM","GEN_CLOSE_SELECTED","code","cursorSelectors","CLOSE","EQSLID","EQNORMAL","EQCLOSE","EQTITLE","MAINMENU","MIN","NORMAL","MMENU","PNORMAL","PTBAR","PCLOSE","PWINBUT","PSIZE","PWSSIZE","PWSNORM","PVSCROLL","SONGNAME","VOLBAL","WINBUT","WSNORMAL","WSPOSBAR","Css","head","remove","ClipPaths","paths","CSS_PREFIX","mapRegionNamesToIds","windowshade","equalizerws","mapRegionNamesToMatcher","numExIsUsed","FALLBACKS","normalizeCursorSelector","startsWith","getCssRules","cssRules","imageName","imageUrl","selectedWidth","cursorSelector","cursorRules","convertAniBinaryToCSS","regionName","getClipPaths","clipPaths","Skin","App","genWindowsInfo","webampNode","role","handleWindowResize","renderWindows","getAnalyser","handleBlur","IGNORE_EVENTS_FROM_TAGS","bindHotkeys","currentPos","listener","tagName","altKey","Emitter","_listeners","event","eventListeners","unsubscribe","callbacks","dispose","StereoBalanceNode","upMixer","createGain","channelCount","channelCountMode","channelInterpretation","splitter","createChannelSplitter","leftGain","rightGain","merger","createChannelMerger","connect","rawValue","gain","audioParam","defineProperties","enumerable","configurable","writable","AudioNode","prototype","bind","ElementSource","eventType","_emitter","destination","_context","_destination","_audio","_stalled","_status","_setStalled","_setStatus","_source","createMediaElementSource","stalled","loadUrl","err","currentTime","getStalled","getStatus","isNaN","Infinity","Media","AudioContext","webkitAudioContext","resume","_staticSource","_balance","_preamp","_analyser","createAnalyser","smoothingTimeConstant","_gainNode","output","_bands","createBiquadFilter","frequency","timeRemaining","percentComplete","seekTime","autoPlay","Disposable","teardowns","_teardowns","teardown","storeHas","subscribe","Winamp","browserIsSupported","supportsAudioApi","supportsCanvas","supportsPromises","_node","_disposable","_actionEmitter","initialTracks","initialSkin","avaliableSkins","enableHotkeys","__butterchurnOptions","__customMediaClass","importConvertPreset","presetConverterEndpoint","convert","getStore","__customMiddlewares","__initialState","navigator","onLine","butterchurnOpen","handleOnline","handleOffline","_bufferTracks","layout","__initialWindowLayout","previousTrack","appendTracks","setTracksToPlay","onWillClose","onClose","reopen","onTrackDidChange","previousTrackId","onMinimize","skinIsLoaded","__loadSerializedState","__getSerializedState","__onStateChange","renderWhenReady","unmountComponentAtNode"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFa;;AAEb,IAAI,IAAqC;AACzC,mBAAmB,mBAAO,CAAC,GAA2C;AACtE,CAAC,MAAM,EAEN;;;;;;;;ACNY;;AAEb,IAAI,IAAqC;AACzC,mBAAmB,mBAAO,CAAC,GAA+B;AAC1D,CAAC,MAAM,EAEN;;;;;;;ACND;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,KAAqC,EAAE,qCAO1C;AACD;AACA;AACA,mBAAmB,mBAAO,CAAC,GAA4B;AACvD;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA,iC;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK,KAA6B;AAClC;AACA;AACA,EAAE,UAAU,IAA4E;AACxF;AACA,EAAE,iCAAqB,EAAE,mCAAE;AAC3B;AACA,GAAG;AAAA,oGAAC;AACJ,EAAE,MAAM,EAEN;AACF,CAAC;;;;;;;;ACnDY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA,8FAA8F,aAAa;AAC3G;AACA;;AAEA;AACA,uEAAuE,eAAe;AACtF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,qBAAqB,YAAY;AACjC;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,wEAAwE,eAAe;AACvF;AACA;;AAEA;AACA;AACA;AACA,KAAK,IAAI;AACT,GAAG;AACH,C;;;;;;;AC5Ha;;AAEb;;AAEA,cAAc,mBAAO,CAAC,GAA0B;;AAEhD;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;;ACtBa;;AAEb;;AAEA,sBAAsB,mBAAO,CAAC,EAAmC;;AAEjE;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA,E;;;;;;;ACvBa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC,EAAE,EAS1C;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,GAAmC;AAC9D,CAAC,MAAM,EAEN;;;;;;;;ACrCY;;AAEb;;AAEA,eAAe,mBAAO,CAAC,EAAmB;;AAE1C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;;AChBa;;AAEb;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;;ACRa;;AAEb;;AAEA,sBAAsB,mBAAO,CAAC,GAAoC;;AAElE;;AAEA,cAAc,mBAAO,CAAC,GAA0B;;AAEhD;;AAEA,eAAe,mBAAO,CAAC,EAAmB;;AAE1C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,E;;;;;;;AChCa;;AAEb;;AAEA,sBAAsB,mBAAO,CAAC,EAAmC;;AAEjE;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,G;;;;;;;AC1BD,mCAAmC,mBAAO,CAAC,GAAgC;;AAE3E;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0C;;;;;;ACrBA,6BAA6B;AAC7B,uCAAuC;;;;;;;;ACD1B;;AAEb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;;;ACdA,YAAY,mBAAO,CAAC,EAAW;AAC/B,UAAU,mBAAO,CAAC,EAAQ;AAC1B,aAAa,mBAAO,CAAC,EAAW;AAChC;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,YAAoB;;AAElC;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;AC3EA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,GAAQ;;AAE9B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA,KAAK,KAAwC,EAAE,EAE7C;;AAEF,QAAQ,sBAAiB;AACzB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;;AAEA,6BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;;;;;;;;AC/YA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,IAAI;AACf,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA,WAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;;;AAGA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,OAAO,iEAAY;AACxB;AACA,KAAK;AACL,GAAG;AACH;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG,QAAQ,iEAAY;AACvB;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG,aAAa;;AAEhB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAoE;AACpE;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;;;AAGA;AACA;AACA;;AAEA,iBAAiB,wBAAwB;AACzC;;AAEA,QAAQ,KAAqC,EAAE,EAI1C;;AAEL;AACA;AACA;AACA;;AAEA,oDAAoD;AACpD;;AAEA;;AAEA,MAAM,KAAqC,EAAE,EAE1C;;AAEH;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,QAAQ,KAAqC,EAAE,uBAM1C;;AAEL;AACA;;AAEA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,sEAAsE,aAAa;AACnF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,SAAS;AACtB;;AAEA;AACA,4EAA4E,aAAa;AACzF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,8BAA8B;AAC9B;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,IAAI,KAA6G,EAAE,EAElH;;AAE+H;;;;;;;;ACtpBnH;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,+BAA+B;AAC/B;AACA;AACA,GAAG;AACH,+BAA+B;AAC/B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,E;;;;;;AC7DA,aAAa,mBAAO,CAAC,EAAW;AAChC,WAAW,mBAAO,CAAC,EAAS;AAC5B,UAAU,mBAAO,CAAC,EAAQ;AAC1B,WAAW,mBAAO,CAAC,EAAS;AAC5B,UAAU,mBAAO,CAAC,EAAQ;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;;;;;;ACLzC,eAAe,mBAAO,CAAC,EAAc;AACrC,qBAAqB,mBAAO,CAAC,EAAmB;AAChD,kBAAkB,mBAAO,CAAC,EAAiB;AAC3C;;AAEA,YAAY,mBAAO,CAAC,EAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;ACfA;AACA,kBAAkB,mBAAO,CAAC,EAAU;AACpC,iCAAiC,QAAQ,mBAAmB,UAAU,EAAE,EAAE;AAC1E,CAAC;;;;;;;;;ACHD,uBAAuB;AACvB;AACA;AACA;;;;;;;ACHA;AACA,cAAc,mBAAO,CAAC,EAAY;AAClC,cAAc,mBAAO,CAAC,EAAY;AAClC;AACA;AACA;;;;;;;;ACLa;;AAEb;;AAEA,YAAY,mBAAO,CAAC,GAAuB;;AAE3C;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,E;;;;;;;;;;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,MAAM;AAClB;AACe;AACf;AACA;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;;AAEA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,2BAA2B;AACtC,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA,YAAY;AACZ;AACO;AACP,aAAa,OAAO;AACpB;AACA,wBAAwB,aAAa;AACrC,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,KAAK;AACL,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,O;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,2BAA2B;AACtC,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB;AACO;AACP,mCAAmC,SAAS;AAC5C,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL,iBAAiB,OAAO;AACxB;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;;AAEP;AACA,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,4BAA4B;AACzC,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,4BAA4B;AACzC,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA,eAAe,OAAO;AACtB;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,4BAA4B;AACzC,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACO;;AAEP;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,2BAA2B;AACxC,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,O;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,2BAA2B;AACxC,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,mCAAmC,SAAS;AAC5C,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,6B;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,2BAA2B;AACxC,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACjPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEoC;AACiC;AACxB;AACE;;AAE/C;AACA;AACA,WAAW,4BAA4B;AACvC,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACO;AACP,SAAS,MAAU;AACnB;;AAEA;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AAC7B,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,eAAe,aAAa;AAC5B,GAAG;AACH,eAAe,aAAa;AAC5B,GAAG;AACH,eAAe,aAAa;AAC5B;AACA,aAAa,SAAS;AACtB;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChWA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;ACnBA,SAAS,mBAAO,CAAC,EAAc;AAC/B,iBAAiB,mBAAO,CAAC,EAAkB;AAC3C,iBAAiB,mBAAO,CAAC,EAAgB;AACzC;AACA,CAAC;AACD;AACA;AACA;;;;;;;ACPA,eAAe,mBAAO,CAAC,EAAc;AACrC;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;;;;;;;ACFA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC,EAAE,EAI1C;;AAEH;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,0CAA0C,yBAAyB,EAAE;AACrE;AACA;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;;AAEA;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;AACA,cAAc,mBAAO,CAAC,EAAY;AAClC;AACA;AACA;;;;;;;ACJA;;;;;;;;ACAa;;AAEb;;AAEA,sBAAsB,mBAAO,CAAC,GAAoC;;AAElE;;AAEA,gCAAgC,mBAAO,CAAC,GAA+C;;AAEvF;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;ACrCA;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACzFA;AACA,YAAY,mBAAO,CAAC,EAAyB;AAC7C,kBAAkB,mBAAO,CAAC,EAAkB;;AAE5C;AACA;AACA;;;;;;;ACNA;;;;;;;ACAA;AACA;AACA;AACA;AACA;;;;;;;ACJA,cAAc;;;;;;;;ACAD;;AAEb;;AAEA,gBAAgB,mBAAO,CAAC,GAA4B;;AAEpD;;AAEA,cAAc,mBAAO,CAAC,GAAmB;;AAEzC;;AAEA,iHAAiH,mBAAmB,EAAE,mBAAmB,4JAA4J;;AAErT,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,CAAC;AACD;AACA,E;;;;;;;;ACpBA,WAAW,mBAAO,CAAC,GAAS;;AAE5B;AACA;;AAEA;;;;;;;ACLA;AACA,gBAAgB,mBAAO,CAAC,GAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnBA;AACA,eAAe,mBAAO,CAAC,EAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA,aAAa,mBAAO,CAAC,EAAW;AAChC,UAAU,mBAAO,CAAC,EAAQ;AAC1B;AACA;AACA;;;;;;;ACJA,WAAW,mBAAO,CAAC,EAAS;AAC5B,aAAa,mBAAO,CAAC,EAAW;AAChC;AACA,kDAAkD;;AAElD;AACA,qEAAqE;AACrE,CAAC;AACD;AACA,QAAQ,mBAAO,CAAC,EAAY;AAC5B;AACA,CAAC;;;;;;;ACXD;AACA;AACA;AACA;;;;;;;ACHA;;;;;;;ACAA;AACA,eAAe,mBAAO,CAAC,EAAc;AACrC,UAAU,mBAAO,CAAC,GAAe;AACjC,kBAAkB,mBAAO,CAAC,EAAkB;AAC5C,eAAe,mBAAO,CAAC,EAAe;AACtC,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,EAAe;AACtC;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAO,CAAC,GAAS;AACnB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;ACxCA,UAAU,mBAAO,CAAC,EAAc;AAChC,UAAU,mBAAO,CAAC,EAAQ;AAC1B,UAAU,mBAAO,CAAC,EAAQ;;AAE1B;AACA,oEAAoE,iCAAiC;AACrG;;;;;;;ACNA,YAAY,mBAAO,CAAC,EAAQ;;;;;;;ACA5B,aAAa,mBAAO,CAAC,EAAW;AAChC,WAAW,mBAAO,CAAC,EAAS;AAC5B,cAAc,mBAAO,CAAC,EAAY;AAClC,aAAa,mBAAO,CAAC,EAAY;AACjC,qBAAqB,mBAAO,CAAC,EAAc;AAC3C;AACA,0DAA0D,sBAAsB;AAChF,kFAAkF,wBAAwB;AAC1G;;;;;;;ACRA,UAAU,mBAAO,CAAC,EAAe;AACjC,iBAAiB,mBAAO,CAAC,EAAkB;AAC3C,gBAAgB,mBAAO,CAAC,EAAe;AACvC,kBAAkB,mBAAO,CAAC,EAAiB;AAC3C,UAAU,mBAAO,CAAC,EAAQ;AAC1B,qBAAqB,mBAAO,CAAC,EAAmB;AAChD;;AAEA,YAAY,mBAAO,CAAC,EAAgB;AACpC;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;ACfa;;AAEb,IAAI,IAAqC;AACzC,mBAAmB,mBAAO,CAAC,GAAkC;AAC7D,CAAC,MAAM,EAEN;;;;;;;;ACNY;;AAEb;AACA;AACA,CAAC;AACD;;AAEA,sCAAsC,uCAAuC,kBAAkB;;AAE/F,mBAAmB,mBAAO,CAAC,GAAe;;AAE1C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oC;;;;;;;AClDa;;AAEb,cAAc,mBAAO,CAAC,EAAU;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;ACtGA;AAAA;AACqC;;AAErC;;AAEA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC,UAAU,IAA6B;AACxC;AACA,CAAC,MAAM,EAEN;;AAED,aAAa,oEAAQ;AACN,+DAAM,EAAC;;;;;;;;AClBtB,aAAa,mBAAO,CAAC,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CA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,6FAA6F;AAC7F;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,yDAAyD;AACzD;AACA,0DAA0D;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;ACjLA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,E;;;;;;;ACNA;AAAe;AACf;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;;;;;;;AChBa;;AAEb,cAAc,mBAAO,CAAC,EAAO;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,wBAAwB,aAAa,EAAE;AACvD;;;;;;;;;;;;;;ACnBa;;AAEb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,QAAQ;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;ACvFA,mBAAmB,mBAAO,CAAC,GAAiB;AAC5C,eAAe,mBAAO,CAAC,GAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5Ca;;AAEb;AACA;AACA,CAAC;;AAED,gBAAgB,mBAAO,CAAC,CAA+B;;AAEvD;;AAEA,uBAAuB,mBAAO,CAAC,EAAsC;;AAErE;;AAEA,oBAAoB,mBAAO,CAAC,EAAmC;;AAE/D;;AAEA,kCAAkC,mBAAO,CAAC,CAAiD;;AAE3F;;AAEA,iBAAiB,mBAAO,CAAC,EAAgC;;AAEzD;;AAEA,aAAa,mBAAO,CAAC,CAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,CAAY;;AAErC;;AAEA,eAAe,mBAAO,CAAC,EAAS;;AAEhC;;AAEA,aAAa,mBAAO,CAAC,GAAgB;;AAErC;;AAEA,oBAAoB,mBAAO,CAAC,GAAuB;;AAEnD;;AAEA,aAAa,mBAAO,CAAC,EAAS;;AAE9B;;AAEA,uCAAuC,6BAA6B,YAAY,EAAE,OAAO,iBAAiB,mBAAmB,uBAAuB,4EAA4E,EAAE,EAAE,yBAAyB,eAAe,EAAE;;AAE9Q,sCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,iFAAiF,UAAU,wBAAwB;AACnH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,qBAAqB,eAAe;AACpC;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,eAAe;AACpC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oDAAoD;AACpD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,OAAO;;AAEP,cAAc;AACd;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oC;;;;;;AC3QA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB,oBAAoB;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AC7CA;AACA;AACA;;AAEA;AACA,cAAc,mBAAO,CAAC,EAAS;AAC/B,CAAC;AACD,cAAc,mBAAO,CAAC,EAAmB;AACzC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9LA;;AAUA,IAAM,cAAc,GAAG,OAAO,EAA9B,C,CAEA;AACA;AACA;AACA;;AACA,SAAgB,qBAAhB,CACE,QADF,EAEE,SAFF,EAEuB;AAErB,MAAM,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AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;ACvHiD;AACf;AACW;AACG;;AAEjD;AACA;AACA;AACA;AACA,qBAAqB,wBAAO;AAC5B,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,sBAAsB,wBAAO;AAC7B;AACA,GAAG;AACH,EAAE,0BAAS;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,2BAA2B,iBAAiB;AAC5C,sBAAsB,eAAK;AAC3B;AACA,GAAG;AACH;;AAEA,IAAI,KAAqC,EAAE,EAU1C;;AAEc,gEAAQ,E;;ACnDR;AACf;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,C;;AChBe;AACf;AACA;AACA;AACA;;AAEA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;ACbmD;AACnD;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;;AAEO,kKAAkK,wBAAe,GAAG,kBAAS,C;;ACT1I;AAC0C;AACjD;AACoB;AACN;AAChB;AAC8B;AACjC;;AAE9C;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE,yBAAyB;AAC3B;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC;;AAExC;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,IAAI;;;AAGJ;AACA,8BAA8B;AAC9B;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D,uBAAuB,6BAA6B;;AAEpD,MAAM,KAAqC,EAAE,kCAc1C;;AAEH;AACA;AACA,QAAQ,KAA8E,EAAE,EAEnF;;AAEL;AACA;;AAEA,iCAAiC,QAAQ,GAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,KAAK;AACL;AACA;;;AAGA,iCAAiC,gBAAO;AACxC;AACA;;AAEA;AACA,qBAAqB,wBAAO;AAC5B;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;;AAExD;AACA,OAAO;AACP;AACA;AACA;;AAEA,yBAAyB,wBAAO;AAChC;AACA;AACA,wDAAwD,qCAAiB,eAAe,eAAK;AAC7F,OAAO,2BAA2B;;AAElC,yBAAyB,2BAAU,eAAe;AAClD;AACA;;AAEA;AACA;;AAEA,UAAU,KAA2F,EAAE,EAEhG;;;AAGP;AACA,+BAA+B,wBAAO;AACtC;AACA;AACA;AACA,OAAO;;AAEP,sBAAsB,wBAAO;AAC7B,oEAAoE;AACpE;;AAEA,+BAA+B,YAAY,kEAAkE;AAC7G;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,0CAA0C,oBAAoB,oBAAoB;AAClF;;;AAGA,mCAAmC,wBAAO;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;;AAGA,eAAe,QAAQ,GAAG;AAC1B;AACA,SAAS;AACT,OAAO,uDAAuD;AAC9D;;AAEA,wBAAwB,2BAAU;AAClC;AACA;AACA,wDAAwD;;;AAGxD;AACA;AACA,OAAO;;;AAGP,2BAA2B,uBAAM;AACjC,6BAA6B,uBAAM;AACnC,sCAAsC,uBAAM;AAC5C,8BAA8B,uBAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;AAGA;AACA,OAAO,oDAAoD;AAC3D;AACA;;AAEA,iMAAiM;;AAEjM,0SAA0S;AAC1S;;AAEA,qCAAqC,wBAAO;AAC5C,4BAA4B,eAAK,iCAAiC,QAAQ,GAAG;AAC7E;AACA,SAAS;AACT,OAAO,gEAAgE;AACvE;;AAEA,0BAA0B,wBAAO;AACjC;AACA;AACA;AACA;AACA,8BAA8B,eAAK;AACnC;AACA,WAAW;AACX;;AAEA;AACA,OAAO;AACP;AACA,KAAK;;;AAGL,yBAAyB,eAAK;AAC9B;AACA;;AAEA;AACA,sBAAsB,eAAK;AAC3B,4BAA4B,eAAK,wBAAwB,QAAQ,GAAG;AACpE;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,aAAa,qCAAY;AACzB;;AAEA,WAAW,qCAAY;AACvB;AACA,C;;AChXA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA,C;;;;;AC1BA;AACA,WAAW,IAAI;AACf,aAAa,QAAQ;AACrB;AACe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,C;;ACfA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACe;AACf;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,C;;ACvB4C;AACZ;AACjB;AACf,OAAO,aAAa;AACpB,IAAI,OAAO;AACX;AACA,C;;ACN2D;AACpD;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA,MAAM;;;AAGN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,UAAU,KAAqC,EAAE,EAAkD;AACnG;AACA;;AAEA;AACA;AACA,C;;AC/D2C;AACmC;AACvE;AACP,oDAAoD,kBAAkB;AACtE;AACO;AACP,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA,GAAG;AACH;AACO;AACP,wEAAwE,sBAAsB;AAC9F,WAAW,mCAAkB;AAC7B,GAAG;AACH;AACe,kKAAmG,E;;ACjBpC;AACvE;AACP,iDAAiD,kBAAkB;AACnE;AACO;AACP,4BAA4B,sBAAsB;AAClD;AACA,GAAG;AACH;AACe,yHAA6D,E;;ACTlB;AACC;AACpD;AACP,SAAS,QAAQ,GAAG;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,YAAY,KAAqC,EAAE,EAA0D;AAC7G;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA,GAAG;AACH;AACe,0GAAmD,E;;ACnC3B;;AAEvC;AACA;AACA;AACA,GAAG;AACH;AACA,MAAM,OAAO;AACb;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA,C;;AChBoG;AAC9C;AAC/C;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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;;AAE/B;AACA;AACA;AACA;;AAEA,aAAa,eAAK,sBAAsB,iBAAQ;AAChD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,eAAK;;AAEQ,2DAAM,EAAC;;;AAGtB,aAAM;AACN,aAAa,oBAAS;AACtB,aAAa,oBAAS;AACtB,YAAY,oBAAS;AACrB,UAAU,oBAAS;AACnB,SAAS,oBAAS;AAClB,YAAY,oBAAS;AACrB,OAAO,oBAAS;AAChB,OAAO,oBAAS;AAChB,SAAS,oBAAS;AAClB,YAAY,oBAAS;AACrB,WAAW,oBAAS;AACpB,E;;;;;;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACe,sDAAO,E;;AC9mBmD;AACjC;AACC;;AAElC;AACP;AACA;AACA,0BAA0B,gCAAW;AACrC,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,mDAAmD,2BAAkB;AACrE;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA,6FAA6F;AAC7F;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,SAAS,UAAO;AAChB,yDAAyD;AACzD,SAAS,UAAO;AAChB,0DAA0D;AAC1D,SAAS,UAAO;AAChB,yDAAyD;AACzD,SAAS,UAAO;AAChB,0DAA0D;;AAE1D,SAAS,UAAO;AAChB;AACA;AACA;AACA,SAAS,UAAO;AAChB;AACA;AACA;AACA,SAAS,UAAO;AAChB;AACA;AACA;AACA,SAAS,UAAO;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,C;;ACrJqF;AAChC;AACc;AACA;AACN;AAC4B;AAC5C;AACU;AAC7B;AACS;AAC4B;AAC3B;AACN;AACF;AACA;AACG;AACG;;AAElC;;AAEe;AACf;;AAEA;AACA,IAAI,kBAAS;;AAEb;AACA,MAAM,wBAAe;;AAErB,kBAAkB,mCAA0B;;AAE5C;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,gBAAsB;AAC7C,aAAa,iBAAuB;AACpC;AACA,SAAS;AACT,+BAA+B,uBAA6B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,eAAqB;;AAEjC;AACA,uBAAuB,gBAAsB;AAC7C,aAAa,iBAAuB;AACpC;AACA,SAAS;AACT,+BAA+B,uBAA6B;AAC5D;AACA;AACA;AACA;AACA;AACA,QAAQ,UAAgB;AACxB;;AAEA;AACA;AACA;AACA;;AAEA,YAAY,iBAAuB;AACnC,+BAA+B,uBAA6B;AAC5D;AACA;AACA,UAAU,UAAgB;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAsB;AAC7C;AACA;;AAEA;AACA,YAAY,eAAqB;AACjC;AACA;AACA;;AAEA,uBAAuB,gBAAsB;AAC7C;AACA;;AAEA;AACA,+BAA+B,iBAAuB;AACtD;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kFAAkF;AAClF,MAAM,iBAAO;AACb;AACA;AACA;;AAEA,IAAI,qBAAY;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,aAAI,6HAA6H,aAAI;AACjJ;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mCAAmC,oBAAgB;AACnD,iCAAiC,oBAAgB;AACjD;AACA,KAAK;AACL;AACA;AACA,mCAAmC,oBAAgB;AACnD,iCAAiC,oBAAgB;AACjD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,aAAI;AAC5B;AACA;;AAEA,8BAA8B,oBAAU,6BAA6B,EAAE,gCAAe,qEAAqE,gCAAe,kDAAkD,gCAAe,kDAAkD,gCAAe;AAC5S,eAAe,eAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU,eAAK;AACf;AACA,mBAAmB,iBAAQ,GAAG;AAC9B,WAAW;AACX;AACA,UAAU,eAAK,eAAe,YAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,UAAU,eAAK,eAAe,YAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG,yGAAyG,iBAAQ,GAAG;AACvH,SAAS,oBAAS;AAClB,SAAS,oBAAS;AAClB,UAAU,oBAAS;AACnB,WAAW,oBAAS;AACpB,cAAc,oBAAS;AACvB,eAAe,oBAAS;AACxB,eAAe,oBAAS;AACxB,cAAc,oBAAS;AACvB,cAAc,oBAAS;AACvB,oBAAoB,oBAAS;AAC7B,cAAc,oBAAS;AACvB,mBAAmB,oBAAS;AAC5B,YAAY,oBAAS;AACrB,UAAU,oBAAS;AACnB,cAAc,oBAAS;AACvB,WAAW,oBAAS;AACpB,aAAa,oBAAS;AACtB,uBAAuB,oBAAS;AAChC,uBAAuB,oBAAS;AAChC,iBAAiB,oBAAS,YAAY,oBAAS,SAAS,oBAAS,SAAS,oBAAS;AACnF,gBAAgB,oBAAS,YAAY,oBAAS,SAAS,oBAAS,SAAS,oBAAS;AAClF,eAAe,oBAAS;AACxB,cAAc,oBAAS;AACvB,oBAAoB,oBAAS;AAC7B,eAAe,oBAAS;AACxB,aAAa,oBAAS;AACtB,YAAY,oBAAS;AACrB,GAAG,yBAAyB,iBAAQ,GAAG;AACvC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,sBAAsB,yCAAwB;;AAE9C;AACA;AACA;AACA;;AAEA,aAAa,eAAK,eAAe,SAAM,EAAE,iBAAQ,GAAG,cAAc,aAAa;AAC/E,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,oBAAoB;AACpB,iBAAiB;AACjB,gBAAgB;AAChB;AACA,GAAG;AACH,C;;AC3ZqD;AACc;AACN;AAC4B;AAClC;AACvD;AAC0B;AACS;AACL;AACK;AACc;AAChB;;AAEjC,IAAI,aAAM;AACV,EAAE,kBAAS;;AAEX;AACA,IAAI,wBAAe;;AAEnB,gBAAgB,mCAA0B;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,IAAI,iBAAO;AACX,IAAI,iBAAO;AACX;AACA;;AAEA,EAAE,qBAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C,YAAY,iBAAuB;AACnC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,qDAAqD,iBAAQ,GAAG,UAAU,wBAAwB;AAClG;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,qBAAqB,eAAe;AACpC;AACA,GAAG;AACH;AACA;AACA,MAAM,UAAgB;AACtB;;AAEA;AACA;;AAEA,qBAAqB,eAAe;AACpC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,uBAA6B;AACtD;AACA,QAAQ,UAAgB;AACxB;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,iBAAQ,GAAG;AACnC,gBAAgB,kBAAwB;AACxC,aAAa,oBAA0B;AACvC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,kBAAkB,eAAK,eAAe,YAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAQ,GAAG;AAC1B,OAAO;;AAEP,cAAc;AACd;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,eAAK;;AAEP,aAAM;AACN,gBAAgB,oBAAS;AACzB,SAAS,oBAAS;AAClB,YAAY,oBAAS;AACrB,aAAa,oBAAS;AACtB,YAAY,oBAAS;AACrB,WAAW,oBAAS;AACpB,OAAO,oBAAS;AAChB,OAAO,oBAAS;AAChB;;;AAGe,0DAAY,CAAC,aAAM,CAAC,E;;ACnOnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,oDAAyB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oDAAyB;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEoB;;;;;;;AC7J+C;AACd;AACoB;AACN;AACN;AAC4B;AAClC;AACvD;AAC0B;AACS;AACC;AACe;AACX;AACL;AACc;AAChB;;AAEjC,IAAI,oBAAe;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,kBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAA0B;AACnC;;AAEA,IAAI,WAAK;AACT,EAAE,kBAAS;;AAEX;AACA,IAAI,wBAAe;;AAEnB,gBAAgB,mCAA0B;;AAE1C;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA,8CAA8C,2BAAkB;AAChE;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa,oBAAe;AAC5B;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,qBAAY;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,kFAAkF,sBAAY;AAC9F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAuB;AACtC,OAAO;AACP;AACA,iBAAiB,kBAAwB;AACzC,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,iBAAiB,iBAAQ,GAAG;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA,iCAAiC,2BAAkB;AACnD;AACA,qBAAqB,qBAAqB;AAC1C;AACA,GAAG;AACH;AACA;AACA,MAAM,UAAgB;AACtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,uBAA6B;;AAEtD;AACA,QAAQ,UAAgB;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,iBAAQ,GAAG;AACtC;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gCAAgC;AAChC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA,iCAAiC,2BAAkB;AACnD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,aAAa,oBAAe;AAC5B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA;AA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;AACA;AACA;AACA;;AAEO;AACP;AACA,SAAS,iBAAQ,GAAG;AACpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,C;;AC3BA,SAAS,eAAO;AAChB;AACA,IAAI,eAAO;AACX;AACA;AACA,GAAG;AACH,IAAI,eAAO;AACX;AACA;AACA;;AAEA,SAAS,eAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA,SAAS,gBAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,MAAM,gBAAO;AACb;AACA,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL,MAAM,gBAAO;AACb;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;;AAEA;AACA;;AAEA,MAAM,eAAO;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C,qCAAqC;AACrC;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB;;AAEvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8EAA8E;;AAE9E;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C,0DAA0D;;AAE1D;AACA,+BAA+B;;AAE/B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,2BAA2B;;AAE3B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,aAAa,kBAAkB;AAC/B;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;;AAE/B;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,sEAAsE,cAAc;AACpF;AACA;;AAEA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,uCAAuC;AACvC,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA,2BAA2B,cAAc;AACzC,2BAA2B,cAAc,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC,oDAAoD;AACvF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qCAAqC,2BAA2B;AAChE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;;AAEnE,uEAAuE;;AAEvE,mCAAmC;;AAEnC;AACA,2CAA2C;;AAE3C,sFAAsF;;AAEtF,uDAAuD;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE;;AAEX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE;;;AAGX;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;AACA,mEAAmE;AACnE;;AAEA;AACA;AACA;AACA;AACA,KAAK;;;AAGL;AACA,8DAA8D;;AAE9D;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,eAAe,KAAK,mBAAmB;AACvD;AACA;;AAEA,SAAS,mBAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sHAAsH;;AAEtH;AACA,iDAAiD;AACjD;AACA,GAAG;AACH;;AAEe,yDAAY,EAAC;AACQ;AACpC;;;ACxyC+C;;AAExC;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO,SAAS,aAAQ;AACxB;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA,C;;ACpDmE;AACN;AAC4B;AAClC;AACd;AACN;AACF;AACoB;AACU;;AAEsB;;AAErF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,IAAI,WAAK;AACT,EAAE,kBAAS;;AAEX;AACA;;AAEA;;AAEA,IAAI,wBAAe;;AAEnB,mEAAmE,aAAa;AAChF;AACA;;AAEA,oCAAoC,mCAA0B;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAQ;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,YAAY;AAC/B,SAAS;AACT,mBAAmB,mBAAU;AAC7B;;AAEA,QAAQ,YAAY;;AAEpB;AACA;AACA;AACA;AACA,KAAK,UAAU,mCAA0B;AACzC;;AAEA,EAAE,qBAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAQ;AAC7B;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,cAAc,aAAQ,iBAAiB,aAAQ;AAC/C;AACA;AACA,WAAW;AACX;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;;AAEA;AACA;AACA,sCAAsC,cAAc,sCAAsC,cAAc;AACxG;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,6BAA6B,MAAM;AACnC,6BAA6B,oBAAgB;AAC7C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,eAAK;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,eAAe,eAAK;AACpB;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,kBAAS;;AAEX,WAAK;AACL,iBAAiB,oBAAS;AAC1B,SAAS,oBAAS;AAClB,UAAU,oBAAS,YAAY,oBAAS,OAAO,oBAAS;AACxD,aAAa,oBAAS;AACtB,aAAa,oBAAS;AACtB,WAAW,oBAAS;AACpB,WAAW,oBAAS;AACpB,GAAG;AACH,WAAW,oBAAS;AACpB,qBAAqB,oBAAS;AAC9B,uBAAuB,oBAAS;AAChC,YAAY,oBAAS;AACrB,YAAY,oBAAS;AACrB;AACA,WAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGe,wDAAK,E;;ACxMpB;AAC4B;;AAEb,wDAAK,E;;ACHM;;AAE1B,IAAI,iDAAwB;AAC5B;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;AACH;;;AAGA,OAAO,eAAK;AACZ;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEe,iHAAwB,E;;AC1Bb;;AAEnB;AACP;AACA,EAAE,eAAK;AACP;AACA,GAAG;AACH;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA,C;;;;;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEe,0DAAgB,E;;;;;;AChIoB;AACvB;AACY;;AAExC,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,eAAY;AAChB,yEAAyE,gBAAO;AAChF;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAAO;;AAE3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,IAAI,KAAK;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,KAAK;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,IAAI,KAAK;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,KAAK;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,eAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,eAAY;;AAEuB;;AAEpB,oEAAY,E;;AC9K3B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACe,gDAAI,E;;ACpBgD;AACN;AAC4B;AAClC;AAC7B;AACO;AACE;AACiC;AAC9B;;AAEtC;AACA;AACA;AACA;AACA;;AAEA,IAAI,yBAAY;AAChB,EAAE,kBAAS;;AAEX;AACA,IAAI,wBAAe;;AAEnB,WAAW,mCAA0B;AACrC;;AAEA,EAAE,qBAAY;AACd;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,UAAU,OAAQ;AAClB;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,UAAU,OAAQ;AAClB;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,UAAU,OAAQ;AAClB;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,iBAAiB,mBAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAU;AACjC;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,eAAK;;AAEP,yBAAY;AACZ,YAAY,oBAAS;AACrB,aAAa,oBAAS;AACtB,kBAAkB,oBAAS;AAC3B;AACe,6EAAY,E;;AChH0B;AACc;AACA;AACN;AAC4B;AAClC;AAC7B;AACS;AACwC;AAC+D;AAChG;AACJ;;AAEtC;;AAEA;AACA;AACA,MAAM,eAAK;AACX;AACA,aAAa,eAAK;AAClB;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,SAAS,YAAI;;AAEb,IAAI,eAAO;AACX,EAAE,kBAAS;;AAEX;;AAEA;AACA,IAAI,wBAAe;;AAEnB,gBAAgB,mCAA0B;;AAE1C,IAAI,uBAAgB;;AAEpB;AACA;AACA;;AAEA;AACA,gBAAgB,eAAe;AAC/B;;AAEA;AACA;AACA;;AAEA,EAAE,qBAAY;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA,0CAA0C,wBAAwB;AAClE;AACA;AACA,uBAAuB,eAAK,yCAAyC,gCAAe,GAAG;AACvF,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,wBAAwB;AACrD;AACA;AACA,SAAS;AACT,OAAO;AACP,sBAAsB,aAAa;AACnC;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA,6BAA6B,6BAA6B;AAC1D;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C;AACA,aAAa,wBAAwB;AACrC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAK;AACtB,YAAY,eAAY;AACxB;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAQ;AAChC;AACA;AACA,WAAW;AACX;AACA,eAAe,eAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,eAAK;;AAEP,eAAO;AACP,eAAO;AACP,aAAa,oBAAS;AACtB,SAAS,oBAAS;AAClB,aAAa,oBAAS;AACtB,kBAAkB,oBAAS;AAC3B,aAAa,oBAAS;AACtB,kBAAkB,oBAAS,YAAY,oBAAS,SAAS,oBAAS;AAClE,mBAAmB,oBAAS;AAC5B,oBAAoB,oBAAS;AAC7B,aAAa,oBAAS;AACtB,mBAAmB,oBAAS;AAC5B,SAAS,oBAAS;AAClB,WAAW,oBAAS;AACpB,WAAW,oBAAS;AACpB,YAAY,oBAAS;AACrB,YAAY,oBAAS;AACrB,YAAY,oBAAS;AACrB;AACA,eAAO;AACP,eAAe;AACf;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS,YAAI;AACb,WAAW,YAAI;AACf,WAAW,YAAI;AACf,YAAY,YAAI;AAChB;;AAEA,IAAI,uBAAgB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA,KAAK;AACL,UAAU,OAAQ;AAClB;AACA;AACA;AACA,KAAK,UAAU,OAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA,KAAK;AACL;AACA,YAAY,OAAQ;AACpB;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEe,0EAAwB,CAAC,eAAO,CAAC,E;;ACjWqC;AAClB;AACsB;AAClC;AACd;AACN;;AAEnC,IAAI,2BAAa;AACjB,EAAE,kBAAS;;AAEX;AACA,IAAI,wBAAe;;AAEnB,WAAW,mCAA0B;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,yCAAwB;;AAExC,2BAA2B,eAAK;AAChC;AACA;AACA;AACA,aAAa,eAAK;AAClB;;AAEA,WAAW,eAAK;AAChB;;AAEA;AACA,CAAC,CAAC,kBAAS;;AAEX,2BAAa;AACb,YAAY,oBAAS;AACrB,aAAa,oBAAS;AACtB,WAAW,oBAAS;AACpB,mBAAmB,oBAAS;AAC5B;;;AAGe,gFAAa,E;;AC/CuC;AACsB;AAClC;AACd;AACN;AACS;;AAE5C,IAAI,qBAAU;AACd,EAAE,kBAAS;;AAEX;AACA,IAAI,wBAAe;;AAEnB,WAAW,mCAA0B;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM,eAAK;AACX,QAAQ,gBAAa;AACrB,SAAS,kEAAkE;AAC3E;AACA;AACA;AACA;;AAEA;AACA,CAAC,CAAC,kBAAS;;AAEX,qBAAU;AACV,mBAAmB,oBAAS;AAC5B,aAAa,oBAAS;AACtB,aAAa,oBAAS;AACtB,gBAAgB,oBAAS;AACzB,gBAAgB,oBAAS;AACzB,eAAe,oBAAS;AACxB,gBAAgB,oBAAS;AACzB,YAAY,oBAAS;AACrB;;;AAGe,uEAAU,E;;ACvD4B;AACc;AACsB;AAClC;AACd;AACN;AACF;AACJ;AACI;AACK;AACM;AACV;;AAElC,IAAI,WAAK;AACT,EAAE,kBAAS;;AAEX;AACA,IAAI,wBAAe;;AAEnB,gBAAgB,mCAA0B;;AAE1C,IAAI,qBAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,OAAO;AAChC,yBAAyB,OAAO;AAChC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA,WAAW,mBAAQ;AACnB;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA,mBAAmB,iBAAQ,GAAG;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAK;AAClB,QAAQ,UAAO;AACf;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kBAAkB,eAAK;AACvB,UAAU,WAAK;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU,eAAK;AACf,YAAY,aAAU;AACtB,YAAY,iBAAQ;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA,WAAW,eAAK;AAChB,MAAM,UAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM,eAAK;AACX,QAAQ,WAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA,SAAS;AACT,QAAQ,eAAK;AACb,UAAU,aAAU;AACpB,UAAU,iBAAQ;AAClB;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAK,eAAe,gBAAa;AACrD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,sBAAsB,eAAK;AAC3B,UAAU,UAAO;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,eAAK;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,CAAC,kBAAS;;AAEX,WAAK;AACL,WAAW,oBAAS;AACpB,SAAS,oBAAS;AAClB,yBAAyB,oBAAS;AAClC,WAAW,oBAAS;AACpB,kBAAkB,oBAAS;AAC3B,SAAS,oBAAS;AAClB,sBAAsB,oBAAS;AAC/B,aAAa,oBAAS;AACtB,aAAa,oBAAS;AACtB,gBAAgB,oBAAS;AACzB,gBAAgB,oBAAS;AACzB,eAAe,oBAAS;AACxB,gBAAgB,oBAAS;AACzB,WAAW,oBAAS;AACpB,YAAY,oBAAS;AACrB,SAAS,oBAAS;AAClB,WAAW,oBAAS;AACpB,WAAW,oBAAS;AACpB,GAAG;AACH;;AAEA,IAAI,qBAAgB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,wDAAK,E;;ACrViC;AACc;AACsB;AAClC;AAC7B;AACS;AACmB;AACH;AACJ;AACgB;AACN;AAClB;AACH;;AAEoC;AAC5C;;AAE5B,SAAS,OAAI;;AAEb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,oBAAoB,yBAAY;;AAEhC;AACA,aAAa,oBAAS;AACtB,sBAAsB,oBAAS;AAC/B,GAAG;AACH;;AAEA,IAAI,UAAO;AACX,EAAE,kBAAS;;AAEX;AACA,IAAI,wBAAe;;AAEnB,gBAAgB,mCAA0B;;AAE1C,IAAI,kBAAgB;;AAEpB;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAgB;AACnD;AACA;AACA;AACA;AACA,mCAAmC,oBAAgB;AACnD;AACA;AACA;AACA;AACA,0CAA0C,oBAAgB;AAC1D;AACA;AACA;AACA,0CAA0C,oBAAgB;AAC1D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,qBAAqB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA,uBAAuB,iEAAiE;AACxF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,eAAK;AACrB,yBAAyB;;AAEzB;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,4BAA4B,oBAAU;AACtC;AACA;AACA;AACA,kBAAkB,eAAK;;AAEvB;AACA,aAAa,eAAK;AAClB,QAAQ,+BAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,eAAK;AACpB,QAAQ,aAAM;AACd,SAAS,qFAAqF;AAC9F;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,CAAC,eAAK;;AAEP,UAAO;AACP,YAAY,oBAAS;AACrB,UAAU,oBAAS,YAAY,oBAAS,SAAS,oBAAS,SAAS,oBAAS;AAC5E,cAAc,oBAAS;AACvB,cAAc,oBAAS;AACvB,8BAA8B,oBAAS;AACvC,wBAAwB,oBAAS;AACjC,2BAA2B,oBAAS;AACpC,SAAS,oBAAS,YAAY,oBAAS,OAAO,oBAAS;AACvD,cAAc,oBAAS;AACvB,aAAa,oBAAS;AACtB,kBAAkB,oBAAS;AAC3B,aAAa,oBAAS;AACtB,kBAAkB,oBAAS;AAC3B,qBAAqB,oBAAS;AAC9B,uBAAuB,oBAAS,YAAY,oBAAS,SAAS,oBAAS;AACvE,kBAAkB,oBAAS;AAC3B,mBAAmB,oBAAS;AAC5B,mBAAmB,oBAAS;AAC5B,UAAU,oBAAS;AACnB,cAAc,oBAAS;AACvB,aAAa,oBAAS;AACtB,qBAAqB,oBAAS;AAC9B,eAAe,oBAAS;AACxB,eAAe,oBAAS;AACxB,sBAAsB,oBAAS;AAC/B,QAAQ,oBAAS;AACjB,gBAAgB,oBAAS;AACzB,gBAAgB,oBAAS;AACzB,cAAc,oBAAS;AACvB,gBAAgB,oBAAS;AACzB,uBAAuB,oBAAS;AAChC,sBAAsB,oBAAS,YAAY,oBAAS,SAAS,oBAAS;AACtE,iBAAiB,oBAAS;AAC1B,WAAW,oBAAS;AACpB,cAAc,oBAAS;AACvB;AACA,UAAO;AACP,UAAO;AACP,UAAO;AACP;AACA;AACA;AACA,wBAAwB,OAAI;AAC5B,2BAA2B,OAAI;AAC/B,gBAAgB,OAAI;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,kBAAgB;AACpB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oHAAoH,QAAQ;AAC5H;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yDAAyD;;AAEzD;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,gCAAW;AAC1B,SAAS,QAAQ;AACjB;AACA;AACA;;AAEA;AACA,WAAW,gCAAW;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,WAAW,eAAK;AAChB,MAAM,QAAK;AACX,MAAM,iBAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gCAAW;AACjF;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,CAAC,UAAO;;AAED,4DAAO,E;;ACztBtB;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,4DAAU,E;;AClF0C;AACsB;AAClC;AAC7B;AACS;;AAEnC,IAAI,eAAO;AACX,EAAE,kBAAS;;AAEX;AACA,IAAI,wBAAe;;AAEnB,WAAW,mCAA0B;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW,eAAK;AAChB;AACA,OAAO,2DAA2D;AAClE;AACA;AACA;;AAEA;AACA,CAAC,CAAC,eAAK;;AAEP,eAAO;AACP,aAAa,oBAAS;AACtB,WAAW,oBAAS,YAAY,oBAAS,OAAO,oBAAS;AACzD,MAAM,oBAAS;AACf,WAAW,oBAAS;AACpB;AACe,8DAAO,E;;AC7C+B;AACgC;AAClB;AACsB;AAClC;AACd;AACN;AACF;AACS;AACV;;AAEhC,IAAI,eAAO;AACX,EAAE,kBAAS;;AAEX;AACA;;AAEA,IAAI,wBAAe;;AAEnB,mEAAmE,aAAa;AAChF;AACA;;AAEA,oCAAoC,mCAA0B;AAC9D;AACA;AACA;AACA;AACA;;AAEA,cAAc,eAAK;AACnB;AACA,SAAS,gDAAgD;AACzD;AACA,SAAS,eAAK,eAAe,UAAO;AACpC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,KAAK,UAAU,mCA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AkB,QAAQ,IAAI,IAAI,+BAA+B,QAAQ;;;;;;;;ACnB3H;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,2BAA2B,mBAAO,CAAC,GAA4B;;AAE/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA,cAAc,kCAAkC,iBAAiB,UAAU,0BAA0B,mDAAmD,kCAAkC,4CAA4C,kBAAkB,kBAAkB,cAAc,gBAAgB,oBAAoB,yBAAyB,0BAA0B,0BAA0B,kBAAkB,qBAAqB,mBAAmB,eAAe,eAAe;AACje,mBAAmB,qBAAqB,mBAAmB,gCAAgC,uBAAuB,2BAA2B,sCAAsC,iBAAiB,sCAAsC,iBAAiB,8BAA8B,qDAAqD,iCAAiC,iBAAiB,+BAA+B,iBAAiB,2BAA2B;AAC3c,2BAA2B,iBAAiB,6BAA6B,iBAAiB,+BAA+B,iBAAiB,iCAAiC,iBAAiB,+BAA+B;AAC3N,uCAAuC,6QAA6Q;;;;;;;ACdpT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;ACvBA;AACA;AACA;AACA;AACA;;AAEA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+C;;;;;;ACfA,gBAAgB,mBAAO,CAAC,EAAa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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C,GAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;ACtEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACbA,mBAAmB,mBAAO,CAAC,GAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA,aAAa,mBAAO,CAAC,EAAW;AAChC,eAAe,mBAAO,CAAC,GAAa;AACpC,cAAc,mBAAO,CAAC,GAAW;AACjC,eAAe,mBAAO,CAAC,GAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpCA,iBAAiB,mBAAO,CAAC,GAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;ACRA;AACA;;AAEA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,GAAe;AACxC,mBAAmB,mBAAO,CAAC,GAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA,aAAa,mBAAO,CAAC,EAAW;AAChC,gBAAgB,mBAAO,CAAC,GAAc;AACtC,qBAAqB,mBAAO,CAAC,GAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA,aAAa,mBAAO,CAAC,EAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC3BA,cAAc,mBAAO,CAAC,GAAmI;;AAEzJ,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,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ACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gCAAgC;AAChG;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,EAAE,mBAAO,CAAC,EAAgB;AAC1B,EAAE,mBAAO,CAAC,EAAe;AACzB;;AAEA,sBAAsB,mBAAO,CAAC,EAAY;AAC1C;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAA0D,kBAAkB;;AAE5E;AACA;AACA;AACA,oBAAoB,uBAAuB;;AAE3C,oDAAoD,6BAA6B;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,0BAA0B,eAAe,EAAE;AAC3C,0BAA0B,gBAAgB;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,8CAA8C,YAAY,EAAE;;AAE5D;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO,QAAQ,iCAAiC;AACpG,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,oCAAoC,mBAAO,CAAC,EAAS;AACrD;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrPA,WAAW,mBAAO,CAAC,EAAQ;AAC3B,eAAe,mBAAO,CAAC,EAAc;AACrC,UAAU,mBAAO,CAAC,EAAQ;AAC1B,cAAc,mBAAO,CAAC,EAAc;AACpC;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,EAAU;AAChC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AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,eAAe;AACvC,wBAAwB,eAAe;AACvC;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kFAAkF;AAClF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,+CAA+C;AAC/C,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG,qIAAqI;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,qDAAqD;AACxD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+FAA+F,cAAc,aAAa;AAC1H,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,oBAAoB;AACpB,iBAAiB;AACjB,gBAAgB;AAChB;AACA,GAAG;AACH;AACA,oC;;;;;;ACzdA,kBAAkB,YAAY,mBAAO,CAAC,GAA4C,sB;;;;;;ACAlF,mBAAO,CAAC,GAA2C;AACnD,iBAAiB,mBAAO,CAAC,EAAqB;;;;;;;ACD9C;AACA,eAAe,mBAAO,CAAC,EAAc;AACrC,sBAAsB,mBAAO,CAAC,EAAe;;AAE7C,mBAAO,CAAC,EAAe;AACvB;AACA;AACA;AACA,CAAC;;;;;;;ACRD,kBAAkB,YAAY,mBAAO,CAAC,GAAuD,sB;;;;;;ACA7F,mBAAO,CAAC,GAAsD;AAC9D,cAAc,mBAAO,CAAC,EAAqB;AAC3C;AACA;AACA;;;;;;;ACJA;AACA,gBAAgB,mBAAO,CAAC,EAAe;AACvC,gCAAgC,mBAAO,CAAC,EAAgB;;AAExD,mBAAO,CAAC,EAAe;AACvB;AACA;AACA;AACA,CAAC;;;;;;;;ACRD;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA,CAAC;;AAED,sCAAsC,uCAAuC,kBAAkB;;AAE/F,uBAAuB,mBAAO,CAAC,GAAmB;;AAElD;;AAEA,oBAAoB,mBAAO,CAAC,EAAe;;AAE3C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC,cAAc;AACjD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAE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kBAAkB;;AAE/F;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,mEAAmE,aAAa;AAChF;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,4GAA4G;AAC5G,gDAAgD,gQAAgQ;AAChT,gDAAgD;;AAEhD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oC;;;;;;ACzLA,kBAAkB,YAAY,mBAAO,CAAC,GAA+B,sB;;;;;;ACArE,mBAAO,CAAC,EAAmC;AAC3C,mBAAO,CAAC,GAA8B;AACtC,iBAAiB,mBAAO,CAAC,EAAqB;;;;;;;;ACFjC;AACb,UAAU,mBAAO,CAAC,EAAQ;AAC1B,cAAc,mBAAO,CAAC,EAAW;AACjC,eAAe,mBAAO,CAAC,EAAc;AACrC,WAAW,mBAAO,CAAC,GAAc;AACjC,kBAAkB,mBAAO,CAAC,GAAkB;AAC5C,eAAe,mBAAO,CAAC,EAAc;AACrC,qBAAqB,mBAAO,CAAC,GAAoB;AACjD,gBAAgB,mBAAO,CAAC,GAA4B;;AAEpD,iCAAiC,mBAAO,CAAC,GAAgB,mBAAmB,kBAAkB,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gCAAgC;AACvF;AACA;AACA,KAAK;AACL;AACA,kCAAkC,gBAAgB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACpCD;AACA,eAAe,mBAAO,CAAC,EAAc;AACrC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA,gBAAgB,mBAAO,CAAC,EAAc;AACtC,eAAe,mBAAO,CAAC,EAAQ;AAC/B;;AAEA;AACA;AACA;;;;;;;;ACPa;AACb,sBAAsB,mBAAO,CAAC,EAAc;AAC5C,iBAAiB,mBAAO,CAAC,EAAkB;;AAE3C;AACA;AACA;AACA;;;;;;;ACPA,cAAc,mBAAO,CAAC,GAAY;AAClC,eAAe,mBAAO,CAAC,EAAQ;AAC/B,gBAAgB,mBAAO,CAAC,EAAc;AACtC,iBAAiB,mBAAO,CAAC,EAAS;AAClC;AACA;AACA;AACA;;;;;;;ACPA;AACA,UAAU,mBAAO,CAAC,EAAQ;AAC1B,UAAU,mBAAO,CAAC,EAAQ;AAC1B;AACA,2BAA2B,kBAAkB,EAAE;;AAE/C;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA,eAAe,mBAAO,CAAC,EAAQ;AAC/B;;AAEA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,iCAAiC,SAAS,EAAE;AAC5C,CAAC,YAAY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,qBAAqB;AAC3D,iCAAiC,aAAa;AAC9C;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;ACrBa;;AAEb;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA,eAAe,gBAAgB;AAC/B;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,YAAY;AACzB,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,UAAU,8DAAY;AACtB;AACA;AACA;;AAEA;AACA;AACA,aAAa,YAAY;AACzB,cAAc,OAAO;AACrB;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,wDAAM;AACtB;AACA;AACA;;AAEA;AACA;AACA,aAAa,YAAY;AACzB,cAAc,eAAe;AAC7B;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,YAAY;AACzB,aAAa,OAAO;AACpB,cAAc,QAAQ;AACtB;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAY;AACrC;AACA;AACA,OAAO;AACP,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,YAAY;AACzB,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,aAAa,8DAAY;AACzB;;AAEA;AACA;AACA,aAAa,YAAY;AACzB,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,aAAa,wDAAM;AACnB;AACA;;;;;;;;AC9OA,cAAc,mBAAO,CAAC,GAAgI;;AAEtJ,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,EAAsD;;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","file":"webamp.lazy-bundle.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Webamp\"] = factory();\n\telse\n\t\troot[\"Webamp\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 111);\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\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","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;","/*!\n Copyright (c) 2017 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) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\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","'use strict';\n\nexports.__esModule = true;\nexports.defaultMemoize = defaultMemoize;\nexports.createSelectorCreator = createSelectorCreator;\nexports.createStructuredSelector = createStructuredSelector;\nfunction defaultEqualityCheck(a, b) {\n return a === b;\n}\n\nfunction areArgumentsShallowlyEqual(equalityCheck, prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n\n // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n var length = prev.length;\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction defaultMemoize(func) {\n var equalityCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultEqualityCheck;\n\n var lastArgs = null;\n var lastResult = null;\n // we reference arguments instead of spreading them for performance reasons\n return function () {\n if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {\n // apply arguments instead of spreading for performance.\n lastResult = func.apply(null, arguments);\n }\n\n lastArgs = arguments;\n return lastResult;\n };\n}\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep;\n }).join(', ');\n throw new Error('Selector creators expect all input-selectors to be functions, ' + ('instead received the following types: [' + dependencyTypes + ']'));\n }\n\n return dependencies;\n}\n\nfunction createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptions = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptions[_key - 1] = arguments[_key];\n }\n\n return function () {\n for (var _len2 = arguments.length, funcs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var recomputations = 0;\n var resultFunc = funcs.pop();\n var dependencies = getDependencies(funcs);\n\n var memoizedResultFunc = memoize.apply(undefined, [function () {\n recomputations++;\n // apply arguments instead of spreading for performance.\n return resultFunc.apply(null, arguments);\n }].concat(memoizeOptions));\n\n // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n var selector = defaultMemoize(function () {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n params.push(dependencies[i].apply(null, arguments));\n }\n\n // apply arguments instead of spreading for performance.\n return memoizedResultFunc.apply(null, params);\n });\n\n selector.resultFunc = resultFunc;\n selector.recomputations = function () {\n return recomputations;\n };\n selector.resetRecomputations = function () {\n return recomputations = 0;\n };\n return selector;\n };\n}\n\nvar createSelector = exports.createSelector = createSelectorCreator(defaultMemoize);\n\nfunction createStructuredSelector(selectors) {\n var selectorCreator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : createSelector;\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + ('where each property is a selector, instead received a ' + typeof selectors));\n }\n var objectKeys = Object.keys(selectors);\n return selectorCreator(objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\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 _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 (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\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\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 _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 _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}();","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\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;","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","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","/**\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","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n if (parent){\n return parent.querySelector(target);\n }\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of \n Winamp Generated PlayList\n \n \n
\n
\n

WINAMP

\n
\n
\n

playlist

\n
\n
\n \n
\n \n {/* Added tag */}\n \n \n \n \n \n
\n \n \n \n {props.numberOfTracks}\n \n \n {\" track in playlist, average track length: \"}\n \n \n {props.averageTrackLength}\n \n \n \n
\n \n \n \n {\"Playlist length: \"}\n \n \n {props.playlistLengthMinutes}\n \n \n {\" minutes \"}\n \n \n {props.playlistLengthSeconds}\n \n \n {\" second \"}\n \n
\n \n Right-click here to save this HTML file.\n \n
\n
\n
\n
\n
\n

\n \n Playlist files:\n \n {/* Added closing tag here */}\n

\n \n
\n \n \n \n);\n\nconst createPlaylistHTML = (props: Props): string => {\n const node = document.createElement(\"div\");\n render(, node);\n return node.innerHTML;\n};\n\nexport const createPlaylistURL = (props: Props): string =>\n getAsDataURI(createPlaylistHTML(props));\n","import { Slider } from \"./types\";\n\nimport * as Utils from \"./utils\";\n\nexport const getBalanceText = (balance: number): string => {\n if (balance === 0) {\n return \"Balance: Center\";\n }\n const direction = balance > 0 ? \"Right\" : \"Left\";\n return `Balance: ${Math.abs(balance)}% ${direction}`;\n};\n\nexport const getVolumeText = (volume: number): string => `Volume: ${volume}%`;\n\nexport const getPositionText = (\n duration: number,\n seekToPercent: number\n): string => {\n const newElapsedStr = Utils.getTimeStr(\n (duration * seekToPercent) / 100,\n false\n );\n const durationStr = Utils.getTimeStr(duration, false);\n return `Seek to: ${newElapsedStr}/${durationStr} (${seekToPercent}%)`;\n};\n\nexport const getDoubleSizeModeText = (enabled: boolean): string =>\n `${enabled ? \"Disable\" : \"Enable\"} doublesize mode`;\n\nconst formatHz = (hz: number): string =>\n hz < 1000 ? `${hz}HZ` : `${hz / 1000}KHZ`;\n\n// Format a number as a string, ensuring it has a + or - sign\nconst ensureSign = (num: number | string): string =>\n num > 0 ? `+${num}` : num.toString();\n\n// Round to 1 and exactly 1 decimal point\nconst roundToTenths = (num: number): string =>\n (Math.round(num * 10) / 10).toFixed(1);\n\nexport const getEqText = (band: Slider, level: number): string => {\n const db = roundToTenths(((level - 50) / 50) * 12);\n const label = band === \"preamp\" ? \"Preamp\" : formatHz(band);\n return `EQ: ${label} ${ensureSign(db)} DB`;\n};\n","import { WindowInfo, WindowId } from \"./types\";\n\ninterface NewGraph {\n [key: string]: {\n above: string[];\n left: string[];\n };\n}\n\ninterface PositionDiff {\n [key: string]: {\n x: number;\n y: number;\n };\n}\n\nexport interface SizeDiff {\n [key: string]: {\n width: number;\n height: number;\n };\n}\n\nexport function getPositionDiff(\n graph: Graph,\n sizeDiff: SizeDiff\n): PositionDiff {\n const newGraph: NewGraph = {};\n const positionDiff: PositionDiff = {};\n for (const key of Object.keys(graph)) {\n newGraph[key] = { above: [], left: [] };\n positionDiff[key] = { x: 0, y: 0 };\n }\n\n // Construct an inverted graph\n for (const [key, neighbors] of Object.entries(graph)) {\n const { below, right } = neighbors;\n if (right != null) {\n newGraph[right].left.push(key);\n }\n if (below != null) {\n newGraph[below].above.push(key);\n }\n }\n\n function walkRight(key: WindowId) {\n const node = newGraph[key];\n const nodeSizeDiff = sizeDiff[key];\n node.left.forEach((left) => {\n positionDiff[left].x += nodeSizeDiff.width + positionDiff[key].x;\n walkRight(left);\n });\n }\n\n function walkDown(key: WindowId) {\n const node = newGraph[key];\n const nodeSizeDiff = sizeDiff[key];\n node.above.forEach((above) => {\n positionDiff[above].y += nodeSizeDiff.height + positionDiff[key].y;\n walkDown(above);\n });\n }\n\n // Find disconnected nodes, and walk\n for (const [key, neighbors] of Object.entries(graph)) {\n if (neighbors.below == null) {\n walkDown(key);\n }\n if (neighbors.right == null) {\n walkRight(key);\n }\n }\n\n return positionDiff;\n}\n\ninterface Edges {\n below?: WindowId;\n right?: WindowId;\n}\n\ninterface Graph {\n // TODO: Ensure this is a WindowId\n [id: string]: Edges;\n}\n\nexport function generateGraph(windows: WindowInfo[]): Graph {\n const bottoms: { [offset: number]: WindowInfo[] } = {};\n const rights: { [offset: number]: WindowInfo[] } = {};\n for (const w of windows) {\n const bottom = w.y + w.height;\n if (bottoms[bottom]) {\n bottoms[bottom].push(w);\n } else {\n bottoms[bottom] = [w];\n }\n\n const right = w.x + w.width;\n if (rights[right]) {\n rights[right].push(w);\n } else {\n rights[right] = [w];\n }\n }\n\n const graph: Graph = {};\n for (const w of windows) {\n const edges: Edges = {};\n const top = w.y;\n const left = w.x;\n\n const tops = bottoms[top];\n const lefts = rights[left];\n if (tops) {\n for (const below of tops) {\n const isToTheLeft = below.x + below.width < w.x;\n const isToTheRight = below.x > w.x + w.width;\n\n const overlapsInX = !(isToTheLeft || isToTheRight);\n if (overlapsInX) {\n edges.below = below.key;\n break;\n }\n }\n }\n if (lefts) {\n for (const right of lefts) {\n const isAbove = right.y + right.height < w.y;\n const isBelow = right.y > w.y + w.height;\n const overlapsInY = !(isAbove || isBelow);\n if (overlapsInY) {\n edges.right = right.key;\n break;\n }\n }\n }\n\n graph[w.key] = edges;\n }\n return graph;\n}\n","import {\n AppState,\n PlaylistTrack,\n WebampWindow,\n WindowId,\n WindowInfo,\n LoadedURLTrack,\n WindowPositions,\n PlaylistStyle,\n TransitionType,\n MediaStatus,\n TimeMode,\n SkinImages,\n Cursors,\n SkinRegion,\n GenLetterWidths,\n MilkdropMessage,\n DummyVizData,\n} from \"./types\";\nimport { createSelector, defaultMemoize } from \"reselect\";\nimport * as Utils from \"./utils\";\nimport {\n BANDS,\n TRACK_HEIGHT,\n WINDOW_RESIZE_SEGMENT_WIDTH,\n WINDOW_RESIZE_SEGMENT_HEIGHT,\n WINDOW_WIDTH,\n MEDIA_STATUS,\n MEDIA_TAG_REQUEST_STATUS,\n WINDOWS,\n VISUALIZERS,\n} from \"./constants\";\nimport { createPlaylistURL } from \"./playlistHtml\";\nimport * as fromTracks from \"./reducers/tracks\";\nimport * as fromDisplay from \"./reducers/display\";\nimport * as fromEqualizer from \"./reducers/equalizer\";\nimport * as fromMedia from \"./reducers/media\";\nimport * as fromWindows from \"./reducers/windows\";\nimport * as MarqueeUtils from \"./marqueeUtils\";\nimport { generateGraph } from \"./resizeUtils\";\nimport { SerializedStateV1 } from \"./serializedStates/v1Types\";\n\nexport const getSliders = (state: AppState) => state.equalizer.sliders;\n\nexport const getEqfData = createSelector(getSliders, (sliders) => {\n const preset: { [key: string]: number | string } = {\n name: \"Entry1\",\n preamp: Utils.denormalizeEqBand(sliders.preamp),\n };\n BANDS.forEach((band) => {\n preset[`hz${band}`] = Utils.denormalizeEqBand(sliders[band]);\n });\n const eqfData = {\n presets: [preset],\n type: \"Winamp EQ library file v1.1\",\n };\n return eqfData;\n});\n\nexport const getTracks = (state: AppState) => state.tracks;\nexport const getTrackUrl = (state: AppState) => {\n return (id: number): string | null => {\n return state.tracks[id]?.url;\n };\n};\nexport const getTrackOrder = (state: AppState) => state.playlist.trackOrder;\n\nexport const getTrackCount = createSelector(\n getTrackOrder,\n (trackOrder) => trackOrder.length\n);\n\nexport const getOrderedTracks = createSelector(\n getTracks,\n getTrackOrder,\n (tracks, trackOrder) => trackOrder.filter((id) => tracks[id])\n);\n\nexport const getUserTracks = createSelector(\n getTracks,\n getTrackOrder,\n (tracks, trackOrder) =>\n trackOrder.map((id) => {\n const track = tracks[id];\n\n return {\n url: track.url,\n metaData: {\n artist: track.artist || \"\",\n title: track.title || \"\",\n album: track.album,\n albumArtUrl: track.albumArtUrl || \"\",\n },\n };\n })\n);\n\nconst getOrderedTrackObjects = createSelector(\n getTracks,\n getOrderedTracks,\n (tracks, trackOrder): PlaylistTrack[] => trackOrder.map((id) => tracks[id])\n);\n\nexport const getSelectedTrackIds = (state: AppState): Set => {\n return state.playlist.selectedTracks;\n};\n\nexport const getSelectedTrackObjects = createSelector(\n getOrderedTrackObjects,\n getSelectedTrackIds,\n (tracks, selectedIds) => tracks.filter((track) => selectedIds.has(track.id))\n);\n\n// If a duration is `null`, it counts as zero, which seems fine enough.\nconst runningTimeFromTracks = (tracks: PlaylistTrack[]) =>\n tracks.reduce((time, track) => time + Number(track.duration), 0);\n\nconst getTotalRunningTime = createSelector(\n getOrderedTrackObjects,\n runningTimeFromTracks\n);\n\nconst getSelectedRunningTime = createSelector(\n getSelectedTrackObjects,\n runningTimeFromTracks\n);\n\n// Note: We should append \"+\" to these values if some of the tracks are of unknown time.\nexport const getRunningTimeMessage = createSelector(\n getTotalRunningTime,\n getSelectedRunningTime,\n (totalRunningTime, selectedRunningTime) =>\n `${Utils.getTimeStr(selectedRunningTime)}/${Utils.getTimeStr(\n totalRunningTime\n )}`\n);\n\n// TODO: use slectors to get memoization\nexport const getCurrentTrackIndex = (state: AppState): number => {\n const { playlist } = state;\n if (playlist.currentTrack == null) {\n return -1;\n }\n return playlist.trackOrder.indexOf(playlist.currentTrack);\n};\n\nexport const getCurrentTrackNumber = createSelector(\n getCurrentTrackIndex,\n (currentTrackIndex) => currentTrackIndex + 1\n);\n\nexport const getCurrentTrackId = (state: AppState) =>\n state.playlist.currentTrack;\n\n// TODO: Sigh... Technically, we should detect if we are looping only repeat if we are.\n// I think this would require pre-computing the \"random\" order of a playlist.\nexport const getRandomTrackId = (state: AppState): number | null => {\n const {\n playlist: { trackOrder, currentTrack },\n } = state;\n if (trackOrder.length === 0) {\n return null;\n }\n let nextId;\n do {\n nextId = trackOrder[Math.floor(trackOrder.length * Math.random())];\n } while (nextId === currentTrack && trackOrder.length > 1);\n return nextId;\n};\n\nexport const getNextTrackId = (state: AppState, n = 1) => {\n const {\n playlist: { trackOrder },\n media: { repeat, shuffle },\n } = state;\n if (shuffle) {\n return getRandomTrackId(state);\n }\n const trackCount = getTrackCount(state);\n if (trackCount === 0) {\n return null;\n }\n\n const currentIndex = getCurrentTrackIndex(state);\n\n let nextIndex = currentIndex + n;\n if (repeat) {\n nextIndex = nextIndex % trackCount;\n if (nextIndex < 0) {\n // Handle wrapping around backwards\n nextIndex += trackCount;\n }\n return trackOrder[nextIndex];\n }\n\n if (currentIndex === trackCount - 1 && n > 0) {\n return null;\n } else if (currentIndex === 0 && n < 0) {\n return null;\n }\n\n nextIndex = Utils.clamp(nextIndex, 0, trackCount - 1);\n return trackOrder[nextIndex];\n};\n\nexport const getGenWindows = (state: AppState) => {\n return state.windows.genWindows;\n};\n\nexport const getWindowOpen = createSelector(getGenWindows, (genWindows) => {\n return (windowId: WindowId) => genWindows[windowId].open;\n});\n\nexport const getWindowHidden = createSelector(getGenWindows, (genWindows) => {\n return (windowId: WindowId) => genWindows[windowId].hidden;\n});\n\nexport const getWindowShade = createSelector(getGenWindows, (genWindows) => {\n return (windowId: WindowId) => genWindows[windowId].shade;\n});\n\nexport const getWindowSize = createSelector(getGenWindows, (genWindows) => {\n return (windowId: WindowId) => genWindows[windowId].size;\n});\n\nexport const getWindowPositions = createSelector(\n getGenWindows,\n (windows): WindowPositions => Utils.objectMap(windows, (w) => w.position)\n);\n\nconst BASE_WINDOW_HEIGHT = 58;\nexport const getNumberOfVisibleTracks = createSelector(\n getWindowSize,\n (getWindowSize_) => {\n const playlistSize = getWindowSize_(\"playlist\");\n return Math.floor(\n (BASE_WINDOW_HEIGHT + WINDOW_RESIZE_SEGMENT_HEIGHT * playlistSize[1]) /\n TRACK_HEIGHT\n );\n }\n);\n\nexport const getOverflowTrackCount = createSelector(\n getTrackCount,\n getNumberOfVisibleTracks,\n (trackCount, numberOfVisibleTracks) =>\n Math.max(0, trackCount - numberOfVisibleTracks)\n);\n\nconst _getPlaylistScrollPosition = (state: AppState) =>\n state.display.playlistScrollPosition;\n\nexport const getPlaylistScrollPosition = createSelector(\n getOverflowTrackCount,\n _getPlaylistScrollPosition,\n (overflowTrackCount, playlistScrollPosition) => {\n if (overflowTrackCount === 0) {\n return 0;\n }\n return Math.round(\n (Math.round((overflowTrackCount * playlistScrollPosition) / 100) /\n overflowTrackCount) *\n 100\n );\n }\n);\n\nexport const getScrollOffset = createSelector(\n _getPlaylistScrollPosition,\n getTrackCount,\n getNumberOfVisibleTracks,\n (playlistScrollPosition, trackCount, numberOfVisibleTracks) => {\n const overflow = Math.max(0, trackCount - numberOfVisibleTracks);\n return Utils.percentToIndex(playlistScrollPosition / 100, overflow + 1);\n }\n);\n\nexport const getVisibleTrackIds = createSelector(\n getScrollOffset,\n getTrackOrder,\n getNumberOfVisibleTracks,\n (offset, trackOrder, numberOfVisibleTracks) =>\n trackOrder.slice(offset, offset + numberOfVisibleTracks)\n);\n\nexport function getAllTracksAreVisible(state: AppState): boolean {\n return getVisibleTrackIds(state).length === state.playlist.trackOrder.length;\n}\n\nexport const getTrackIsVisibleFunction = createSelector(\n getVisibleTrackIds,\n (visibleTrackIds) => {\n return (id: number) => visibleTrackIds.includes(id);\n }\n);\n\nexport const getVisibleTracks = createSelector(\n getVisibleTrackIds,\n getTracks,\n (visibleTrackIds, tracks) => visibleTrackIds.map((id) => tracks[id])\n);\n\nexport const getPlaylist = (state: AppState) => state.playlist;\n\nexport const getDuration = (state: AppState): number | null => {\n const { playlist, tracks } = state;\n if (playlist.currentTrack == null) {\n return null;\n }\n const currentTrack = tracks[playlist.currentTrack];\n return currentTrack && currentTrack.duration;\n};\n\nexport const getTrackDisplayName = createSelector(getTracks, (tracks) => {\n return defaultMemoize((trackId: number | null) =>\n fromTracks.getTrackDisplayName(tracks, trackId)\n );\n});\n\nexport const getCurrentTrackDisplayName = createSelector(\n getCurrentTrackId,\n getTrackDisplayName,\n (id, getName) => {\n return getName(id);\n }\n);\n\nexport const getMediaStatus = (state: AppState): MediaStatus | null => {\n return state.media.status;\n};\n\nexport const getMediaIsPlaying = (state: AppState) =>\n state.media.status === MEDIA_STATUS.PLAYING;\n\nexport const getCurrentTrack = createSelector(\n getCurrentTrackId,\n getTracks,\n (trackId, tracks): PlaylistTrack | null => {\n return trackId == null ? null : tracks[trackId];\n }\n);\nexport const getCurrentlyPlayingTrackIdIfLoaded = createSelector(\n getMediaIsPlaying,\n getCurrentTrack,\n (mediaIsPlaying, currentTrack) => {\n if (\n !mediaIsPlaying ||\n !currentTrack ||\n currentTrack.mediaTagsRequestStatus ===\n MEDIA_TAG_REQUEST_STATUS.INITIALIZED\n ) {\n return null;\n }\n return currentTrack.id;\n }\n);\n\nexport const getCurrentTrackInfo = createSelector(\n getCurrentTrack,\n (track: PlaylistTrack | null): LoadedURLTrack | null => {\n if (track == null) {\n return null;\n }\n return {\n url: track.url,\n metaData: {\n title: track.title || null,\n artist: track.artist || null,\n album: track.album || null,\n albumArtUrl: track.albumArtUrl || null,\n },\n };\n }\n);\n\nexport const getMinimalMediaText = createSelector(\n getCurrentTrackNumber,\n getCurrentTrackDisplayName,\n (trackNumber, name) => (name == null ? null : `${trackNumber}. ${name}`)\n);\n\nexport const getMediaText = createSelector(\n getMinimalMediaText,\n getDuration,\n (minimalMediaText, duration) =>\n minimalMediaText == null\n ? null\n : `${minimalMediaText} (${Utils.getTimeStr(duration)})`\n);\n\nexport const getNumberOfTracks = (state: AppState) =>\n getTrackOrder(state).length;\nconst getPlaylistDuration = createSelector(getTracks, (tracks) =>\n Object.values(tracks).reduce(\n (total, track) => total + (track.duration || 0),\n 0\n )\n);\n\nexport const getPlaylistURL = createSelector(\n getNumberOfTracks,\n getPlaylistDuration,\n getTrackOrder,\n getTracks,\n getTrackDisplayName,\n (numberOfTracks, playlistDuration, trackOrder, tracks, getDisplayName) =>\n createPlaylistURL({\n numberOfTracks,\n averageTrackLength: Utils.getTimeStr(playlistDuration / numberOfTracks),\n // TODO: Handle hours\n playlistLengthMinutes: Math.floor(playlistDuration / 60),\n playlistLengthSeconds: Math.floor(playlistDuration % 60),\n tracks: trackOrder.map(\n (id, i) =>\n `${i + 1}. ${getDisplayName(id)} (${Utils.getTimeStr(\n tracks[id].duration\n )})`\n ),\n })\n);\n\nconst WINDOW_HEIGHT = 116;\nconst SHADE_WINDOW_HEIGHT = 14;\n\nfunction getWPixelSize(w: WebampWindow, doubled: boolean) {\n const [width, height] = w.size;\n const doubledMultiplier = doubled && w.canDouble ? 2 : 1;\n const pix = {\n height: WINDOW_HEIGHT + height * WINDOW_RESIZE_SEGMENT_HEIGHT,\n width: WINDOW_WIDTH + width * WINDOW_RESIZE_SEGMENT_WIDTH,\n };\n return {\n height: (w.shade ? SHADE_WINDOW_HEIGHT : pix.height) * doubledMultiplier,\n width: pix.width * doubledMultiplier,\n };\n}\n\nexport function getFocusedWindow(state: AppState): WindowId | null {\n return state.windows.focused;\n}\n\nexport function getWindowPosition(state: AppState) {\n return (windowId: WindowId) => state.windows.genWindows[windowId].position;\n}\n\nexport function getPositionsAreRelative(state: AppState) {\n return state.windows.positionsAreRelative;\n}\n\nexport function getDoubled(state: AppState) {\n return state.display.doubled;\n}\n\nexport function getLlamaMode(state: AppState) {\n return state.display.llama;\n}\n\nexport function getZIndex(state: AppState): number {\n return state.display.zIndex;\n}\n\n// TODO: This is poorly memoized. It invalidates when a window moves.\nexport const getWindowSizes = createSelector(\n getGenWindows,\n getDoubled,\n (windows, doubled) => {\n return Utils.objectMap(windows, (w) => getWPixelSize(w, doubled));\n }\n);\n\nexport const getWindowPixelSize = createSelector(getWindowSizes, (sizes) => {\n return (windowId: WindowId) => sizes[windowId];\n});\n\nconst getWindowOrder = (state: AppState): WindowId[] =>\n state.windows.windowOrder;\n\nexport const getNormalizedWindowOrder = createSelector(\n getWindowOrder,\n getGenWindows,\n (windowOrder, genWindows): WindowId[] => {\n return [\n WINDOWS.MAIN,\n ...windowOrder.filter(\n (windowId) => windowId !== WINDOWS.MAIN && genWindows[windowId] != null\n ),\n ];\n }\n);\n\n// TODO: Now that both size and position are stored on genWindows this seems a bit silly.\nexport const getWindowsInfo = createSelector(\n getWindowSizes,\n getWindowPositions,\n getNormalizedWindowOrder,\n (sizes, positions, windowOrder): WindowInfo[] => {\n return windowOrder.map((key) => ({\n key,\n ...sizes[key],\n ...positions[key],\n }));\n }\n);\n\nexport const getWindowGraph = createSelector(getWindowsInfo, generateGraph);\n\nconst defaultPlaylistStyle = {\n normal: \"#00FF00\",\n current: \"#FFFFFF\",\n normalbg: \"#000000\",\n selectedbg: \"#0000C6\",\n font: \"Arial\",\n};\n\nexport function getSkinColors(state: AppState): string[] {\n return state.display.skinColors;\n}\n\nexport const getSkinPlaylistStyle = (state: AppState): PlaylistStyle => {\n return state.display.skinPlaylistStyle || defaultPlaylistStyle;\n};\n\nexport const getVisualizerStyle = (state: AppState): string => {\n const milkdrop = state.windows.genWindows[WINDOWS.MILKDROP];\n if (milkdrop != null && milkdrop.open) {\n return VISUALIZERS.MILKDROP;\n }\n return fromDisplay.getVisualizerStyle(state.display);\n};\n\nexport const getVolume = (state: AppState) => state.media.volume;\nexport const getBalance = (state: AppState) => state.media.balance;\nexport const getShuffle = (state: AppState) => state.media.shuffle;\nexport const getRepeat = (state: AppState) => state.media.repeat;\n\nexport const getChannels = createSelector(\n getCurrentTrack,\n (track: PlaylistTrack | null): number | null => {\n return track != null ? track.channels || null : null;\n }\n);\n\nexport const getTimeElapsed = (state: AppState): number => {\n return state.media.timeElapsed;\n};\n\nexport function getSerlializedState(state: AppState): SerializedStateV1 {\n return {\n version: 1,\n media: fromMedia.getSerializedState(state.media),\n equalizer: fromEqualizer.getSerializedState(state.equalizer),\n display: fromDisplay.getSerializedState(state.display),\n windows: fromWindows.getSerializedState(state.windows),\n };\n}\n\nexport function getEqualizerEnabled(state: AppState): boolean {\n return state.equalizer.on;\n}\n\nexport function getEqualizerAuto(state: AppState): boolean {\n return state.equalizer.auto;\n}\n\nexport function getBrowserWindowSize(\n state: AppState\n): { height: number; width: number } {\n return state.windows.browserWindowSize;\n}\n\nexport const getOpenWindows = createSelector(getGenWindows, (genWindows) =>\n Utils.objectFilter(genWindows, (w) => w.open)\n);\n\nexport const getStackedLayoutPositions = createSelector(\n getOpenWindows,\n getDoubled,\n (openWindows, doubled): WindowPositions => {\n let offset = 0;\n return Utils.objectMap(openWindows, (w) => {\n const position = { x: 0, y: offset };\n offset += getWPixelSize(w, doubled).height;\n return position;\n });\n }\n);\n\nexport const getUserInputFocus = (state: AppState): string | null => {\n return state.userInput.focus;\n};\n\nexport const getUserInputScrubPosition = (state: AppState): number => {\n return state.userInput.scrubPosition;\n};\n// TODO: Make this a reselect selector\nexport const getMarqueeText = (state: AppState): string => {\n const defaultText = \"Winamp 2.91\";\n if (state.userInput.userMessage != null) {\n return state.userInput.userMessage;\n }\n switch (getUserInputFocus(state)) {\n case \"balance\":\n return MarqueeUtils.getBalanceText(state.media.balance);\n case \"volume\":\n return MarqueeUtils.getVolumeText(state.media.volume);\n case \"position\":\n const duration = getDuration(state);\n if (duration == null) {\n // This probably can't ever happen.\n return defaultText;\n }\n return MarqueeUtils.getPositionText(\n duration,\n getUserInputScrubPosition(state)\n );\n case \"double\":\n return MarqueeUtils.getDoubleSizeModeText(state.display.doubled);\n case \"eq\":\n const band = state.userInput.bandFocused;\n if (band == null) {\n // This probably can't ever happen.\n return defaultText;\n }\n return MarqueeUtils.getEqText(band, state.equalizer.sliders[band]);\n default:\n break;\n }\n if (state.playlist.currentTrack != null) {\n const mediaText = getMediaText(state);\n if (mediaText == null) {\n // This probably can't ever happen.\n return defaultText;\n }\n return mediaText;\n }\n return defaultText;\n};\n\nexport const getKbps = createSelector(\n getCurrentTrack,\n (track: PlaylistTrack | null): string | null => {\n return track != null ? track.kbps || null : null;\n }\n);\n\nexport const getKhz = createSelector(\n getCurrentTrack,\n (track: PlaylistTrack | null): string | null => {\n return track != null ? track.khz || null : null;\n }\n);\n\nexport function getDebugData(state: AppState) {\n return {\n ...state,\n display: {\n ...state.display,\n skinGenLetterWidths: \"[[REDACTED]]\",\n skinImages: \"[[REDACTED]]\",\n skinCursors: \"[[REDACTED]]\",\n skinRegion: \"[[REDACTED]]\",\n },\n };\n}\n\nexport function getMilkdropMessage(state: AppState): MilkdropMessage | null {\n return state.milkdrop.message;\n}\n\nexport function getMilkdropDesktopEnabled(state: AppState): boolean {\n return state.milkdrop.display === \"DESKTOP\";\n}\n\nexport function getMilkdropFullscreenEnabled(state: AppState): boolean {\n return state.milkdrop.display === \"FULLSCREEN\";\n}\n\nexport function getPresets(state: AppState): any {\n return state.milkdrop.presets;\n}\n\nexport function getButterchurn(state: AppState): any {\n return state.milkdrop.butterchurn;\n}\n\nexport function getPresetTransitionType(state: AppState): TransitionType {\n return state.milkdrop.transitionType;\n}\n\nexport function getCurrentPresetIndex(state: AppState): number | null {\n return state.milkdrop.currentPresetIndex;\n}\nexport function getCurrentPreset(state: AppState): any | null {\n const index = getCurrentPresetIndex(state);\n if (index == null) {\n return null;\n }\n const preset = state.milkdrop.presets[index];\n if (preset == null || preset.type === \"UNRESOLVED\") {\n return null;\n }\n return preset.preset;\n}\n\nexport function getPresetNames(state: AppState): string[] {\n return state.milkdrop.presets.map((preset) => preset.name);\n}\n\nexport function getPresetOverlayOpen(state: AppState): boolean {\n return state.milkdrop.overlay;\n}\n\nexport function getPresetsAreCycling(state: AppState): boolean {\n return state.milkdrop.cycling;\n}\n\nexport function getRandomizePresets(state: AppState): boolean {\n return state.milkdrop.randomize;\n}\n\nexport function getClosed(state: AppState): boolean {\n return state.display.closed;\n}\n\nexport function getSkinImages(state: AppState): SkinImages {\n return state.display.skinImages;\n}\n\nexport function getSkinCursors(state: AppState): Cursors | null {\n return state.display.skinCursors;\n}\n\nexport function getSkinRegion(state: AppState): SkinRegion {\n return state.display.skinRegion;\n}\n\nexport function getSkinLetterWidths(state: AppState): GenLetterWidths | null {\n return state.display.skinGenLetterWidths;\n}\n\nexport function getPreampLineUrl(state: AppState): string | null {\n return state.display.skinImages.EQ_PREAMP_LINE;\n}\n\nexport function getLineColorsUrl(state: AppState): string | null {\n return state.display.skinImages.EQ_GRAPH_LINE_COLORS;\n}\n\nexport const getPreampLineImage = createSelector(\n getPreampLineUrl,\n async (url): Promise => {\n if (url == null) {\n return null;\n }\n return Utils.imgFromUrl(url);\n }\n);\n\nexport const getLineColorsImage = createSelector(\n getLineColorsUrl,\n async (url): Promise => {\n if (url == null) {\n return null;\n }\n return Utils.imgFromUrl(url);\n }\n);\n\nexport function getDummyVizData(state: AppState): DummyVizData | null {\n return state.display.dummyVizData;\n}\n\nexport function getMarqueeStep(state: AppState): number {\n return state.display.marqueeStep;\n}\n\nexport function getNetworkConnected(state: AppState): boolean {\n return state.network.connected;\n}\n\nexport function getTimeMode(state: AppState): TimeMode {\n return state.media.timeMode;\n}\n\nexport function getLoading(state: AppState): boolean {\n return state.display.loading;\n}\n\nexport function getWorking(state: AppState): boolean {\n return state.display.working;\n}\n\nexport function getAvaliableSkins(state: AppState) {\n return state.settings.availableSkins;\n}\n","import { Box, Point, Diff, BoundingBox } from \"./types\";\n\nexport const SNAP_DISTANCE = 15;\n\nexport const top = (box: Box) => box.y;\nexport const bottom = (box: Box) => box.y + box.height;\nexport const left = (box: Box) => box.x;\nexport const right = (box: Box) => box.x + box.width;\n\nexport const near = (a: number, b: number) => Math.abs(a - b) < SNAP_DISTANCE;\n\n// http://stackoverflow.com/a/3269471/1263117\nexport const overlapX = (a: Box, b: Box) =>\n left(a) <= right(b) + SNAP_DISTANCE && left(b) <= right(a) + SNAP_DISTANCE;\nexport const overlapY = (a: Box, b: Box) =>\n top(a) <= bottom(b) + SNAP_DISTANCE && top(b) <= bottom(a) + SNAP_DISTANCE;\n\n// Give a new position for `boxA` that snaps it to `boxB` if neede.\nexport const snap = (boxA: Box, boxB: Box) => {\n let x, y;\n\n // TODO: Refactor/simplify this code\n if (overlapY(boxA, boxB)) {\n if (near(left(boxA), right(boxB))) {\n x = right(boxB);\n } else if (near(right(boxA), left(boxB))) {\n x = left(boxB) - boxA.width;\n } else if (near(left(boxA), left(boxB))) {\n x = left(boxB);\n } else if (near(right(boxA), right(boxB))) {\n x = right(boxB) - boxA.width;\n }\n }\n\n if (overlapX(boxA, boxB)) {\n if (near(top(boxA), bottom(boxB))) {\n y = bottom(boxB);\n } else if (near(bottom(boxA), top(boxB))) {\n y = top(boxB) - boxA.height;\n } else if (near(top(boxA), top(boxB))) {\n y = top(boxB);\n } else if (near(bottom(boxA), bottom(boxB))) {\n y = bottom(boxB) - boxA.height;\n }\n }\n return { x, y };\n};\n\nexport const snapDiff = (a: Box, b: Box): Point => {\n const newPos = snap(a, b);\n return {\n x: newPos.x === undefined ? 0 : newPos.x - a.x,\n y: newPos.y === undefined ? 0 : newPos.y - a.y,\n };\n};\n\n// TODO: Use the first x and y combo\nexport const snapDiffManyToMany = (as: Box[], bs: Box[]): Point => {\n let x: number | undefined = 0;\n let y: number | undefined = 0;\n for (const a of as) {\n for (const b of bs) {\n const diff = snapDiff(a, b);\n x = x || diff.x;\n y = y || diff.y;\n if (x !== undefined && x > 0 && y !== undefined && y > 0) {\n break;\n }\n }\n }\n return { x, y };\n};\n\nexport const snapToMany = (boxA: Box, otherBoxes: Box[]): Diff => {\n let x: number | undefined;\n let y: number | undefined;\n\n otherBoxes.forEach((boxB) => {\n const newPos = snap(boxA, boxB);\n x = newPos.x || x;\n y = newPos.y || y;\n });\n\n return { x, y };\n};\n\nexport const snapWithin = (boxA: Box, boundingBox: BoundingBox): Diff => {\n let x, y;\n\n if (boxA.x - SNAP_DISTANCE < 0) {\n x = 0;\n } else if (boxA.x + boxA.width + SNAP_DISTANCE > boundingBox.width) {\n x = boundingBox.width - boxA.width;\n }\n\n if (boxA.y - SNAP_DISTANCE < 0) {\n y = 0;\n } else if (boxA.y + boxA.height + SNAP_DISTANCE > boundingBox.height) {\n y = boundingBox.height - boxA.height;\n }\n\n return { x, y };\n};\n\nexport const snapWithinDiff = (a: Box, b: BoundingBox) => {\n const newPos = snapWithin(a, b);\n return {\n x: newPos.x === undefined ? 0 : newPos.x - a.x,\n y: newPos.y === undefined ? 0 : newPos.y - a.y,\n };\n};\n\nexport const applySnap = (original: Point, ...snaps: Diff[]) =>\n snaps.reduce(\n (previous, snapped) => ({\n ...previous,\n x: typeof snapped.x !== \"undefined\" ? snapped.x : previous.x,\n y: typeof snapped.y !== \"undefined\" ? snapped.y : previous.y,\n }),\n original\n );\n\nexport const boundingBox = (nodes: Box[]): Box => {\n const boxes = nodes.slice();\n const firstNode = boxes.pop();\n if (firstNode == null) {\n throw new Error(\"boundingBox must be called with at least one node\");\n }\n const bounding = {\n top: top(firstNode),\n right: right(firstNode),\n bottom: bottom(firstNode),\n left: left(firstNode),\n };\n\n boxes.forEach((node) => {\n bounding.top = Math.min(bounding.top, top(node));\n bounding.right = Math.max(bounding.right, right(node));\n bounding.bottom = Math.max(bounding.bottom, bottom(node));\n bounding.left = Math.min(bounding.left, left(node));\n });\n\n return {\n x: bounding.left,\n y: bounding.top,\n width: bounding.right - bounding.left,\n height: bounding.bottom - bounding.top,\n };\n};\n\nexport function traceConnection(\n areConnected: (candidate: Box, n: Box) => boolean\n) {\n return (candidates: B[], node: B): Set => {\n const connected = new Set();\n const checkNode = (n: B) => {\n for (const candidate of candidates) {\n if (!connected.has(candidate) && areConnected(candidate, n)) {\n connected.add(candidate);\n checkNode(candidate);\n }\n }\n };\n checkNode(node);\n return connected;\n };\n}\n\nexport const applyDiff = (a: Point, b: Point) => ({\n x: a.x + b.x,\n y: a.y + b.y,\n});\n\n// TODO: This should not\nexport const applyMultipleDiffs = (initial: Point, ...diffs: Point[]) => {\n const metaDiff = diffs.reduce((m, diff) => ({\n // Use the smallest non-zero diff for each axis.\n // TODO: Min should be the absolute value\n x: m.x === 0 || diff.x === 0 ? m.x + diff.x : Math.min(m.x, diff.x),\n y: m.y === 0 || diff.y === 0 ? m.y + diff.y : Math.min(m.y, diff.y),\n }));\n return applyDiff(initial, metaDiff);\n};\n","import * as Selectors from \"../selectors\";\n\nimport * as Utils from \"../utils\";\nimport {\n UPDATE_WINDOW_POSITIONS,\n TOGGLE_DOUBLESIZE_MODE,\n WINDOW_SIZE_CHANGED,\n TOGGLE_WINDOW,\n CLOSE_WINDOW,\n TOGGLE_WINDOW_SHADE_MODE,\n SET_WINDOW_VISIBILITY,\n BROWSER_WINDOW_SIZE_CHANGED,\n RESET_WINDOW_SIZES,\n TOGGLE_LLAMA_MODE,\n SET_FOCUSED_WINDOW,\n} from \"../actionTypes\";\n\nimport { getPositionDiff, SizeDiff } from \"../resizeUtils\";\nimport { applyDiff } from \"../snapUtils\";\nimport { Action, Thunk, WindowId, WindowPositions, Dispatch } from \"../types\";\n\n// Dispatch an action and, if needed rearrange the windows to preserve\n// the existing edge relationship.\n//\n// Works by checking the edges before the action is dispatched. Then,\n// after disatching, calculating what position change would be required\n// to restore those relationships.\nfunction withWindowGraphIntegrity(action: Action): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n const graph = Selectors.getWindowGraph(state);\n const originalSizes = Selectors.getWindowSizes(state);\n\n dispatch(action);\n\n const newSizes = Selectors.getWindowSizes(getState());\n const sizeDiff: SizeDiff = {};\n for (const window of Object.keys(newSizes)) {\n const original = originalSizes[window];\n const current = newSizes[window];\n sizeDiff[window] = {\n height: current.height - original.height,\n width: current.width - original.width,\n };\n }\n\n const positionDiff = getPositionDiff(graph, sizeDiff);\n const windowPositions = Selectors.getWindowPositions(state);\n\n const newPositions = Utils.objectMap(windowPositions, (position, key) =>\n applyDiff(position, positionDiff[key])\n );\n\n dispatch(updateWindowPositions(newPositions));\n };\n}\n\nexport function toggleDoubleSizeMode(): Thunk {\n return withWindowGraphIntegrity({ type: TOGGLE_DOUBLESIZE_MODE });\n}\n\nexport function toggleLlamaMode(): Action {\n return { type: TOGGLE_LLAMA_MODE };\n}\n\nexport function toggleEqualizerShadeMode(): Thunk {\n return withWindowGraphIntegrity({\n type: TOGGLE_WINDOW_SHADE_MODE,\n windowId: \"equalizer\",\n });\n}\n\nexport function toggleMainWindowShadeMode(): Thunk {\n return withWindowGraphIntegrity({\n type: TOGGLE_WINDOW_SHADE_MODE,\n windowId: \"main\",\n });\n}\n\nexport function togglePlaylistShadeMode(): Thunk {\n return withWindowGraphIntegrity({\n type: TOGGLE_WINDOW_SHADE_MODE,\n windowId: \"playlist\",\n });\n}\n\nexport function closeWindow(windowId: WindowId): Action {\n return { type: CLOSE_WINDOW, windowId };\n}\n\nexport function hideWindow(windowId: WindowId): Action {\n return { type: SET_WINDOW_VISIBILITY, windowId, hidden: true };\n}\n\nexport function showWindow(windowId: WindowId): Action {\n return { type: SET_WINDOW_VISIBILITY, windowId, hidden: false };\n}\n\nexport function setFocusedWindow(window: WindowId | null): Action {\n return { type: SET_FOCUSED_WINDOW, window };\n}\n\nexport function setWindowSize(\n windowId: WindowId,\n size: [number, number]\n): Action {\n return { type: WINDOW_SIZE_CHANGED, windowId, size };\n}\n\nexport function toggleWindow(windowId: WindowId): Action {\n return { type: TOGGLE_WINDOW, windowId };\n}\n\nexport function updateWindowPositions(\n positions: WindowPositions,\n absolute?: boolean\n): Action {\n return { type: UPDATE_WINDOW_POSITIONS, positions, absolute };\n}\n\nexport function centerWindowsInContainer(container: HTMLElement): Thunk {\n return (dispatch, getState) => {\n if (!Selectors.getPositionsAreRelative(getState())) {\n return;\n }\n const { left, top } = container.getBoundingClientRect();\n const { scrollWidth: width, scrollHeight: height } = container;\n dispatch(centerWindows({ left, top, width, height }));\n };\n}\n\nexport function centerWindowsInView(): Thunk {\n return centerWindows({\n left: window.scrollX,\n top: window.scrollY,\n width: window.innerWidth,\n height: window.innerHeight,\n });\n}\n\nexport function centerWindows(box: {\n left: number;\n top: number;\n width: number;\n height: number;\n}): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n const windowsInfo = Selectors.getWindowsInfo(state);\n const getOpen = Selectors.getWindowOpen(state);\n const { top, left, width, height } = box;\n\n const offsetLeft = left + window.scrollX;\n const offsetTop = top + window.scrollY;\n\n // A layout has been suplied. We will compute the bounding box and\n // center the given layout.\n const bounding = Utils.calculateBoundingBox(\n windowsInfo.filter((w) => getOpen(w.key))\n );\n\n if (bounding == null) {\n // There are no windows to center\n return;\n }\n\n const boxHeight = bounding.bottom - bounding.top;\n const boxWidth = bounding.right - bounding.left;\n\n const move = {\n x: Math.ceil(offsetLeft - bounding.left + (width - boxWidth) / 2),\n y: Math.ceil(offsetTop - bounding.top + (height - boxHeight) / 2),\n };\n\n const newPositions = windowsInfo.reduce(\n (pos, w) => ({\n ...pos,\n [w.key]: { x: move.x + w.x, y: move.y + w.y },\n }),\n {}\n );\n\n dispatch(updateWindowPositions(newPositions, true));\n };\n}\n\nexport function browserWindowSizeChanged(size: {\n height: number;\n width: number;\n}): Thunk {\n return (dispatch: Dispatch) => {\n dispatch({ type: BROWSER_WINDOW_SIZE_CHANGED, ...size });\n dispatch(ensureWindowsAreOnScreen());\n };\n}\n\nexport function resetWindowSizes(): Action {\n return { type: RESET_WINDOW_SIZES };\n}\n\nexport function stackWindows(): Thunk {\n return (dispatch, getState) => {\n dispatch(\n updateWindowPositions(Selectors.getStackedLayoutPositions(getState()))\n );\n };\n}\n\nexport function ensureWindowsAreOnScreen(): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n\n const windowsInfo = Selectors.getWindowsInfo(state);\n const getOpen = Selectors.getWindowOpen(state);\n const { height, width } = Utils.getWindowSize();\n const bounding = Utils.calculateBoundingBox(\n windowsInfo.filter((w) => getOpen(w.key))\n );\n if (bounding == null) {\n // There are no windows visible, so there's no work to do.\n return;\n }\n const positions = Selectors.getWindowPositions(state);\n\n // Are we good?\n if (\n bounding.left >= 0 &&\n bounding.top >= 0 &&\n bounding.right <= width &&\n bounding.bottom <= height\n ) {\n // My work here is done.\n return;\n }\n\n const boundingHeight = bounding.bottom - bounding.top;\n const boundingWidth = bounding.right - bounding.left;\n\n // Could we simply shift all the windows by a constant offset?\n if (boundingWidth <= width && boundingHeight <= height) {\n let moveY = 0;\n let moveX = 0;\n if (bounding.top <= 0) {\n moveY = bounding.top;\n } else if (bounding.bottom > height) {\n moveY = bounding.bottom - height;\n }\n\n if (bounding.left <= 0) {\n moveX = bounding.left;\n } else if (bounding.right > width) {\n moveX = bounding.right - width;\n }\n\n const newPositions = Utils.objectMap(positions, (position) => ({\n x: position.x - moveX,\n y: position.y - moveY,\n }));\n\n dispatch(updateWindowPositions(newPositions));\n return;\n }\n\n // TODO: Try moving the individual groups to try to fit them in\n\n // I give up. Just reset everything.\n dispatch(resetWindowSizes());\n dispatch(stackWindows());\n dispatch(centerWindowsInView());\n };\n}\n","import { clamp } from \"../utils\";\nimport {\n SEEK_TO_PERCENT_COMPLETE,\n SET_BALANCE,\n SET_VOLUME,\n STOP,\n TOGGLE_REPEAT,\n TOGGLE_SHUFFLE,\n PLAY,\n PAUSE,\n PLAY_TRACK,\n TOGGLE_TIME_MODE,\n BUFFER_TRACK,\n IS_STOPPED,\n} from \"../actionTypes\";\n\nimport { MEDIA_STATUS } from \"../constants\";\nimport { openMediaFileDialog } from \"./\";\nimport { GetState, Dispatch, Thunk, Action } from \"../types\";\nimport * as Selectors from \"../selectors\";\n\nexport function playTrack(id: number): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n const isStopped = Selectors.getMediaStatus(state) === MEDIA_STATUS.STOPPED;\n if (isStopped) {\n dispatch({ type: BUFFER_TRACK, id });\n } else {\n dispatch({ type: PLAY_TRACK, id });\n }\n };\n}\n\nexport function playTrackNow(id: number): Action {\n return { type: PLAY_TRACK, id };\n}\n\nexport function play(): Thunk {\n return (dispatch: Dispatch, getState: GetState) => {\n const state = getState();\n if (\n state.media.status === MEDIA_STATUS.STOPPED &&\n state.playlist.currentTrack == null &&\n state.playlist.trackOrder.length === 0\n ) {\n dispatch(openMediaFileDialog());\n } else {\n dispatch({ type: PLAY });\n }\n };\n}\n\nexport function pause(): Thunk {\n return (dispatch, getState) => {\n const { status } = getState().media;\n if (status === MEDIA_STATUS.PLAYING) {\n dispatch({ type: PAUSE });\n } else {\n dispatch({ type: PLAY });\n }\n };\n}\n\nexport function stop(): Action {\n return { type: STOP };\n}\n\nexport function nextN(n: number): Thunk {\n return (dispatch, getState) => {\n const nextTrackId = Selectors.getNextTrackId(getState(), n);\n if (nextTrackId == null) {\n dispatch({ type: IS_STOPPED });\n return;\n }\n dispatch(playTrack(nextTrackId));\n };\n}\n\nexport function next(): Thunk {\n return nextN(1);\n}\n\nexport function previous(): Thunk {\n return nextN(-1);\n}\n\nexport function seekToTime(seconds: number): Thunk {\n return function (dispatch, getState) {\n const state = getState();\n const duration = Selectors.getDuration(state);\n if (duration == null) {\n return;\n }\n dispatch({\n type: SEEK_TO_PERCENT_COMPLETE,\n percent: (seconds / duration) * 100,\n });\n };\n}\nexport function seekForward(seconds: number): Thunk {\n return function (dispatch, getState) {\n const timeElapsed = Selectors.getTimeElapsed(getState());\n dispatch(seekToTime(timeElapsed + seconds));\n };\n}\n\nexport function seekBackward(seconds: number): Thunk {\n return seekForward(-seconds);\n}\n\nexport function setVolume(volume: number): Action {\n return {\n type: SET_VOLUME,\n volume: clamp(volume, 0, 100),\n };\n}\n\nexport function adjustVolume(volumeDiff: number): Thunk {\n return (dispatch, getState) => {\n const currentVolume = getState().media.volume;\n return dispatch(setVolume(currentVolume + volumeDiff));\n };\n}\n\nexport function scrollVolume(e: React.WheelEvent): Thunk {\n e.preventDefault();\n return (dispatch, getState) => {\n const currentVolume = getState().media.volume;\n // Using pixels as percentage difference here is a bit arbirary, but... oh well.\n return dispatch(setVolume(currentVolume + e.deltaY));\n };\n}\n\nexport function setBalance(balance: number): Action {\n balance = clamp(balance, -100, 100);\n // The balance clips to the center\n if (Math.abs(balance) < 25) {\n balance = 0;\n }\n return {\n type: SET_BALANCE,\n balance,\n };\n}\n\nexport function toggleRepeat(): Action {\n return { type: TOGGLE_REPEAT };\n}\n\nexport function toggleShuffle(): Action {\n return { type: TOGGLE_SHUFFLE };\n}\n\nexport function toggleTimeMode(): Action {\n return { type: TOGGLE_TIME_MODE };\n}\n","import { BANDS } from \"../constants\";\n\nimport {\n SET_EQ_ON,\n SET_EQ_OFF,\n SET_BAND_VALUE,\n SET_EQ_AUTO,\n} from \"../actionTypes\";\nimport { Band, Thunk, Action } from \"../types\";\n\nconst BAND_SNAP_DISTANCE = 5;\nconst BAND_MID_POINT_VALUE = 50;\n\nfunction _snapBandValue(value: number): number {\n if (\n value < BAND_MID_POINT_VALUE + BAND_SNAP_DISTANCE &&\n value > BAND_MID_POINT_VALUE - BAND_SNAP_DISTANCE\n ) {\n return BAND_MID_POINT_VALUE;\n }\n return value;\n}\n\nexport function setEqBand(band: Band, value: number): Action {\n return { type: SET_BAND_VALUE, band, value: _snapBandValue(value) };\n}\n\nfunction _setEqTo(value: number): Thunk {\n return (dispatch) => {\n Object.values(BANDS).forEach((band) => {\n dispatch({\n type: SET_BAND_VALUE,\n value,\n band: band,\n });\n });\n };\n}\n\nexport function setEqToMax(): Thunk {\n return _setEqTo(100);\n}\n\nexport function setEqToMid(): Thunk {\n return _setEqTo(50);\n}\n\nexport function setEqToMin(): Thunk {\n return _setEqTo(0);\n}\n\nexport function setPreamp(value: number): Action {\n return { type: SET_BAND_VALUE, band: \"preamp\", value: _snapBandValue(value) };\n}\n\nexport function toggleEq(): Thunk {\n return (dispatch, getState) => {\n if (getState().equalizer.on) {\n dispatch({ type: SET_EQ_OFF });\n } else {\n dispatch({ type: SET_EQ_ON });\n }\n };\n}\n\nexport function toggleEqAuto(): Thunk {\n return (dispatch) => {\n // We don't actually support this feature yet so don't let the user ever turn it on.\n // dispatch({ type: SET_EQ_AUTO, value: !getState().equalizer.auto });\n dispatch({ type: SET_EQ_AUTO, value: false });\n };\n}\n","import { UTF8_ELLIPSIS } from \"./constants\";\n\nexport type SpriteName = string;\n\nexport interface Sprite {\n name: SpriteName;\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\n/* TODO: There are too many \" \" and \"_\" characters */\nexport const FONT_LOOKUP: { [letter: string]: [number, number] } = {\n a: [0, 0],\n b: [0, 1],\n c: [0, 2],\n d: [0, 3],\n e: [0, 4],\n f: [0, 5],\n g: [0, 6],\n h: [0, 7],\n i: [0, 8],\n j: [0, 9],\n k: [0, 10],\n l: [0, 11],\n m: [0, 12],\n n: [0, 13],\n o: [0, 14],\n p: [0, 15],\n q: [0, 16],\n r: [0, 17],\n s: [0, 18],\n t: [0, 19],\n u: [0, 20],\n v: [0, 21],\n w: [0, 22],\n x: [0, 23],\n y: [0, 24],\n z: [0, 25],\n '\"': [0, 26],\n \"@\": [0, 27],\n \" \": [0, 30],\n \"0\": [1, 0],\n \"1\": [1, 1],\n \"2\": [1, 2],\n \"3\": [1, 3],\n \"4\": [1, 4],\n \"5\": [1, 5],\n \"6\": [1, 6],\n \"7\": [1, 7],\n \"8\": [1, 8],\n \"9\": [1, 9],\n [UTF8_ELLIPSIS]: [1, 10],\n \".\": [1, 11],\n \":\": [1, 12],\n \"(\": [1, 13],\n \")\": [1, 14],\n \"-\": [1, 15],\n \"'\": [1, 16],\n \"!\": [1, 17],\n _: [1, 18],\n \"+\": [1, 19],\n \"\\\\\": [1, 20],\n \"/\": [1, 21],\n \"[\": [1, 22],\n \"]\": [1, 23],\n \"^\": [1, 24],\n \"&\": [1, 25],\n \"%\": [1, 26],\n \",\": [1, 27],\n \"=\": [1, 28],\n $: [1, 29],\n \"#\": [1, 30],\n Å: [2, 0],\n Ö: [2, 1],\n Ä: [2, 2],\n \"?\": [2, 3],\n \"*\": [2, 4],\n \"<\": [1, 22],\n \">\": [1, 23],\n \"{\": [1, 22],\n \"}\": [1, 23],\n};\n\nexport const imageConstFromChar = (char: string) =>\n `CHARACTER_${char.charCodeAt(0)}`;\n\nconst CHAR_X = 5;\nconst CHAR_Y = 6;\n\nconst characterSprites = [];\nfor (const key in FONT_LOOKUP) {\n if (FONT_LOOKUP.hasOwnProperty(key)) {\n const position = FONT_LOOKUP[key];\n characterSprites.push({\n name: imageConstFromChar(key),\n y: position[0] * CHAR_Y,\n x: position[1] * CHAR_X,\n width: CHAR_X,\n height: CHAR_Y,\n });\n }\n}\n\ninterface SpriteMap {\n [sheet: string]: Sprite[];\n}\n\nconst sprites: SpriteMap = {\n BALANCE: [\n { name: \"MAIN_BALANCE_BACKGROUND\", x: 9, y: 0, width: 38, height: 420 },\n { name: \"MAIN_BALANCE_THUMB\", x: 15, y: 422, width: 14, height: 11 },\n { name: \"MAIN_BALANCE_THUMB_ACTIVE\", x: 0, y: 422, width: 14, height: 11 },\n ],\n CBUTTONS: [\n { name: \"MAIN_PREVIOUS_BUTTON\", x: 0, y: 0, width: 23, height: 18 },\n {\n name: \"MAIN_PREVIOUS_BUTTON_ACTIVE\",\n x: 0,\n y: 18,\n width: 23,\n height: 18,\n },\n { name: \"MAIN_PLAY_BUTTON\", x: 23, y: 0, width: 23, height: 18 },\n { name: \"MAIN_PLAY_BUTTON_ACTIVE\", x: 23, y: 18, width: 23, height: 18 },\n { name: \"MAIN_PAUSE_BUTTON\", x: 46, y: 0, width: 23, height: 18 },\n { name: \"MAIN_PAUSE_BUTTON_ACTIVE\", x: 46, y: 18, width: 23, height: 18 },\n { name: \"MAIN_STOP_BUTTON\", x: 69, y: 0, width: 23, height: 18 },\n { name: \"MAIN_STOP_BUTTON_ACTIVE\", x: 69, y: 18, width: 23, height: 18 },\n { name: \"MAIN_NEXT_BUTTON\", x: 92, y: 0, width: 23, height: 18 },\n { name: \"MAIN_NEXT_BUTTON_ACTIVE\", x: 92, y: 18, width: 22, height: 18 },\n { name: \"MAIN_EJECT_BUTTON\", x: 114, y: 0, width: 22, height: 16 },\n { name: \"MAIN_EJECT_BUTTON_ACTIVE\", x: 114, y: 16, width: 22, height: 16 },\n ],\n MAIN: [\n { name: \"MAIN_WINDOW_BACKGROUND\", x: 0, y: 0, width: 275, height: 116 },\n ],\n MONOSTER: [\n { name: \"MAIN_STEREO\", x: 0, y: 12, width: 29, height: 12 },\n { name: \"MAIN_STEREO_SELECTED\", x: 0, y: 0, width: 29, height: 12 },\n { name: \"MAIN_MONO\", x: 29, y: 12, width: 27, height: 12 },\n { name: \"MAIN_MONO_SELECTED\", x: 29, y: 0, width: 27, height: 12 },\n ],\n NUMBERS: [\n { name: \"NO_MINUS_SIGN\", x: 9, y: 6, width: 5, height: 1 },\n { name: \"MINUS_SIGN\", x: 20, y: 6, width: 5, height: 1 },\n { name: \"DIGIT_0\", x: 0, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_1\", x: 9, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_2\", x: 18, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_3\", x: 27, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_4\", x: 36, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_5\", x: 45, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_6\", x: 54, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_7\", x: 63, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_8\", x: 72, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_9\", x: 81, y: 0, width: 9, height: 13 },\n ],\n NUMS_EX: [\n { name: \"NO_MINUS_SIGN_EX\", x: 90, y: 0, width: 9, height: 13 },\n { name: \"MINUS_SIGN_EX\", x: 99, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_0_EX\", x: 0, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_1_EX\", x: 9, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_2_EX\", x: 18, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_3_EX\", x: 27, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_4_EX\", x: 36, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_5_EX\", x: 45, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_6_EX\", x: 54, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_7_EX\", x: 63, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_8_EX\", x: 72, y: 0, width: 9, height: 13 },\n { name: \"DIGIT_9_EX\", x: 81, y: 0, width: 9, height: 13 },\n ],\n PLAYPAUS: [\n { name: \"MAIN_PLAYING_INDICATOR\", x: 0, y: 0, width: 9, height: 9 },\n { name: \"MAIN_PAUSED_INDICATOR\", x: 9, y: 0, width: 9, height: 9 },\n { name: \"MAIN_STOPPED_INDICATOR\", x: 18, y: 0, width: 9, height: 9 },\n { name: \"MAIN_NOT_WORKING_INDICATOR\", x: 36, y: 0, width: 9, height: 9 },\n { name: \"MAIN_WORKING_INDICATOR\", x: 39, y: 0, width: 9, height: 9 },\n ],\n PLEDIT: [\n { name: \"PLAYLIST_TOP_TILE\", x: 127, y: 21, width: 25, height: 20 },\n { name: \"PLAYLIST_TOP_LEFT_CORNER\", x: 0, y: 21, width: 25, height: 20 },\n { name: \"PLAYLIST_TITLE_BAR\", x: 26, y: 21, width: 100, height: 20 },\n {\n name: \"PLAYLIST_TOP_RIGHT_CORNER\",\n x: 153,\n y: 21,\n width: 25,\n height: 20,\n },\n {\n name: \"PLAYLIST_TOP_TILE_SELECTED\",\n x: 127,\n y: 0,\n width: 25,\n height: 20,\n },\n { name: \"PLAYLIST_TOP_LEFT_SELECTED\", x: 0, y: 0, width: 25, height: 20 },\n {\n name: \"PLAYLIST_TITLE_BAR_SELECTED\",\n x: 26,\n y: 0,\n width: 100,\n height: 20,\n },\n {\n name: \"PLAYLIST_TOP_RIGHT_CORNER_SELECTED\",\n x: 153,\n y: 0,\n width: 25,\n height: 20,\n },\n { name: \"PLAYLIST_LEFT_TILE\", x: 0, y: 42, width: 12, height: 29 },\n { name: \"PLAYLIST_RIGHT_TILE\", x: 31, y: 42, width: 20, height: 29 },\n { name: \"PLAYLIST_BOTTOM_TILE\", x: 179, y: 0, width: 25, height: 38 },\n {\n name: \"PLAYLIST_BOTTOM_LEFT_CORNER\",\n x: 0,\n y: 72,\n width: 125,\n height: 38,\n },\n {\n name: \"PLAYLIST_BOTTOM_RIGHT_CORNER\",\n x: 126,\n y: 72,\n width: 150,\n height: 38,\n },\n {\n name: \"PLAYLIST_VISUALIZER_BACKGROUND\",\n x: 205,\n y: 0,\n width: 75,\n height: 38,\n },\n { name: \"PLAYLIST_SHADE_BACKGROUND\", x: 72, y: 57, width: 25, height: 14 },\n {\n name: \"PLAYLIST_SHADE_BACKGROUND_LEFT\",\n x: 72,\n y: 42,\n width: 25,\n height: 14,\n },\n {\n name: \"PLAYLIST_SHADE_BACKGROUND_RIGHT\",\n x: 99,\n y: 57,\n width: 50,\n height: 14,\n },\n {\n name: \"PLAYLIST_SHADE_BACKGROUND_RIGHT_SELECTED\",\n x: 99,\n y: 42,\n width: 50,\n height: 14,\n },\n {\n name: \"PLAYLIST_SCROLL_HANDLE_SELECTED\",\n x: 61,\n y: 53,\n width: 8,\n height: 18,\n },\n { name: \"PLAYLIST_SCROLL_HANDLE\", x: 52, y: 53, width: 8, height: 18 },\n { name: \"PLAYLIST_ADD_URL\", x: 0, y: 111, width: 22, height: 18 },\n { name: \"PLAYLIST_ADD_URL_SELECTED\", x: 23, y: 111, width: 22, height: 18 },\n { name: \"PLAYLIST_ADD_DIR\", x: 0, y: 130, width: 22, height: 18 },\n { name: \"PLAYLIST_ADD_DIR_SELECTED\", x: 23, y: 130, width: 22, height: 18 },\n { name: \"PLAYLIST_ADD_FILE\", x: 0, y: 149, width: 22, height: 18 },\n {\n name: \"PLAYLIST_ADD_FILE_SELECTED\",\n x: 23,\n y: 149,\n width: 22,\n height: 18,\n },\n { name: \"PLAYLIST_REMOVE_ALL\", x: 54, y: 111, width: 22, height: 18 },\n {\n name: \"PLAYLIST_REMOVE_ALL_SELECTED\",\n x: 77,\n y: 111,\n width: 22,\n height: 18,\n },\n { name: \"PLAYLIST_CROP\", x: 54, y: 130, width: 22, height: 18 },\n { name: \"PLAYLIST_CROP_SELECTED\", x: 77, y: 130, width: 22, height: 18 },\n { name: \"PLAYLIST_REMOVE_SELECTED\", x: 54, y: 149, width: 22, height: 18 },\n {\n name: \"PLAYLIST_REMOVE_SELECTED_SELECTED\",\n x: 77,\n y: 149,\n width: 22,\n height: 18,\n },\n { name: \"PLAYLIST_REMOVE_MISC\", x: 54, y: 168, width: 22, height: 18 },\n {\n name: \"PLAYLIST_REMOVE_MISC_SELECTED\",\n x: 77,\n y: 168,\n width: 22,\n height: 18,\n },\n {\n name: \"PLAYLIST_INVERT_SELECTION\",\n x: 104,\n y: 111,\n width: 22,\n height: 18,\n },\n {\n name: \"PLAYLIST_INVERT_SELECTION_SELECTED\",\n x: 127,\n y: 111,\n width: 22,\n height: 18,\n },\n { name: \"PLAYLIST_SELECT_ZERO\", x: 104, y: 130, width: 22, height: 18 },\n {\n name: \"PLAYLIST_SELECT_ZERO_SELECTED\",\n x: 127,\n y: 130,\n width: 22,\n height: 18,\n },\n { name: \"PLAYLIST_SELECT_ALL\", x: 104, y: 149, width: 22, height: 18 },\n {\n name: \"PLAYLIST_SELECT_ALL_SELECTED\",\n x: 127,\n y: 149,\n width: 22,\n height: 18,\n },\n { name: \"PLAYLIST_SORT_LIST\", x: 154, y: 111, width: 22, height: 18 },\n {\n name: \"PLAYLIST_SORT_LIST_SELECTED\",\n x: 177,\n y: 111,\n width: 22,\n height: 18,\n },\n { name: \"PLAYLIST_FILE_INFO\", x: 154, y: 130, width: 22, height: 18 },\n {\n name: \"PLAYLIST_FILE_INFO_SELECTED\",\n x: 177,\n y: 130,\n width: 22,\n height: 18,\n },\n { name: \"PLAYLIST_MISC_OPTIONS\", x: 154, y: 149, width: 22, height: 18 },\n {\n name: \"PLAYLIST_MISC_OPTIONS_SELECTED\",\n x: 177,\n y: 149,\n width: 22,\n height: 18,\n },\n { name: \"PLAYLIST_NEW_LIST\", x: 204, y: 111, width: 22, height: 18 },\n {\n name: \"PLAYLIST_NEW_LIST_SELECTED\",\n x: 227,\n y: 111,\n width: 22,\n height: 18,\n },\n { name: \"PLAYLIST_SAVE_LIST\", x: 204, y: 130, width: 22, height: 18 },\n {\n name: \"PLAYLIST_SAVE_LIST_SELECTED\",\n x: 227,\n y: 130,\n width: 22,\n height: 18,\n },\n { name: \"PLAYLIST_LOAD_LIST\", x: 204, y: 149, width: 22, height: 18 },\n {\n name: \"PLAYLIST_LOAD_LIST_SELECTED\",\n x: 227,\n y: 149,\n width: 22,\n height: 18,\n },\n { name: \"PLAYLIST_ADD_MENU_BAR\", x: 48, y: 111, width: 3, height: 54 },\n { name: \"PLAYLIST_REMOVE_MENU_BAR\", x: 100, y: 111, width: 3, height: 72 },\n { name: \"PLAYLIST_SELECT_MENU_BAR\", x: 150, y: 111, width: 3, height: 54 },\n { name: \"PLAYLIST_MISC_MENU_BAR\", x: 200, y: 111, width: 3, height: 54 },\n { name: \"PLAYLIST_LIST_BAR\", x: 250, y: 111, width: 3, height: 54 },\n { name: \"PLAYLIST_CLOSE_SELECTED\", x: 52, y: 42, width: 9, height: 9 },\n { name: \"PLAYLIST_COLLAPSE_SELECTED\", x: 62, y: 42, width: 9, height: 9 },\n { name: \"PLAYLIST_EXPAND_SELECTED\", x: 150, y: 42, width: 9, height: 9 },\n ],\n EQ_EX: [\n {\n name: \"EQ_SHADE_BACKGROUND_SELECTED\",\n x: 0,\n y: 0,\n width: 275,\n height: 14,\n },\n { name: \"EQ_SHADE_BACKGROUND\", x: 0, y: 15, width: 275, height: 14 },\n { name: \"EQ_SHADE_VOLUME_SLIDER_LEFT\", x: 1, y: 30, width: 3, height: 7 },\n { name: \"EQ_SHADE_VOLUME_SLIDER_CENTER\", x: 4, y: 30, width: 3, height: 7 },\n { name: \"EQ_SHADE_VOLUME_SLIDER_RIGHT\", x: 7, y: 30, width: 3, height: 7 },\n { name: \"EQ_SHADE_BALANCE_SLIDER_LEFT\", x: 11, y: 30, width: 3, height: 7 },\n {\n name: \"EQ_SHADE_BALANCE_SLIDER_CENTER\",\n x: 14,\n y: 30,\n width: 3,\n height: 7,\n },\n {\n name: \"EQ_SHADE_BALANCE_SLIDER_RIGHT\",\n x: 17,\n y: 30,\n width: 3,\n height: 7,\n },\n { name: \"EQ_MAXIMIZE_BUTTON_ACTIVE\", x: 1, y: 38, width: 9, height: 9 },\n { name: \"EQ_MINIMIZE_BUTTON_ACTIVE\", x: 1, y: 47, width: 9, height: 9 },\n { name: \"EQ_SHADE_CLOSE_BUTTON\", x: 11, y: 38, width: 9, height: 9 },\n { name: \"EQ_SHADE_CLOSE_BUTTON_ACTIVE\", x: 11, y: 47, width: 9, height: 9 },\n ],\n EQMAIN: [\n { name: \"EQ_WINDOW_BACKGROUND\", x: 0, y: 0, width: 275, height: 116 },\n { name: \"EQ_TITLE_BAR\", x: 0, y: 149, width: 275, height: 14 },\n { name: \"EQ_TITLE_BAR_SELECTED\", x: 0, y: 134, width: 275, height: 14 },\n { name: \"EQ_SLIDER_BACKGROUND\", x: 13, y: 164, width: 209, height: 129 },\n { name: \"EQ_SLIDER_THUMB\", x: 0, y: 164, width: 11, height: 11 },\n { name: \"EQ_SLIDER_THUMB_SELECTED\", x: 0, y: 176, width: 11, height: 11 },\n { name: \"EQ_CLOSE_BUTTON\", x: 0, y: 116, width: 9, height: 9 },\n { name: \"EQ_CLOSE_BUTTON_ACTIVE\", x: 0, y: 125, width: 9, height: 9 },\n // This is technically not a sprite, it's just part of the background.\n // However, we extract it to use it as a fallback for\n // `EQ_MAXIMIZE_BUTTON_ACTIVE`. Without this, skins that don't implement\n // `eq_ex.bmp` would show the default skin's `EQ_MAXIMIZE_BUTTON_ACTIVE`\n // instead of showing no sprite aka, just showing through to this portion of\n // the title bar image.\n {\n name: \"EQ_MAXIMIZE_BUTTON_ACTIVE_FALLBACK\",\n x: 254,\n y: 152,\n width: 9,\n height: 9,\n },\n { name: \"EQ_ON_BUTTON\", x: 10, y: 119, width: 26, height: 12 },\n { name: \"EQ_ON_BUTTON_DEPRESSED\", x: 128, y: 119, width: 26, height: 12 },\n { name: \"EQ_ON_BUTTON_SELECTED\", x: 69, y: 119, width: 26, height: 12 },\n {\n name: \"EQ_ON_BUTTON_SELECTED_DEPRESSED\",\n x: 187,\n y: 119,\n width: 26,\n height: 12,\n },\n { name: \"EQ_AUTO_BUTTON\", x: 36, y: 119, width: 32, height: 12 },\n {\n name: \"EQ_AUTO_BUTTON_DEPRESSED\",\n x: 154,\n y: 119,\n width: 32,\n height: 12,\n },\n { name: \"EQ_AUTO_BUTTON_SELECTED\", x: 95, y: 119, width: 32, height: 12 },\n {\n name: \"EQ_AUTO_BUTTON_SELECTED_DEPRESSED\",\n x: 213,\n y: 119,\n width: 32,\n height: 12,\n },\n { name: \"EQ_GRAPH_BACKGROUND\", x: 0, y: 294, width: 113, height: 19 },\n { name: \"EQ_GRAPH_LINE_COLORS\", x: 115, y: 294, width: 1, height: 19 },\n { name: \"EQ_PRESETS_BUTTON\", x: 224, y: 164, width: 44, height: 12 },\n {\n name: \"EQ_PRESETS_BUTTON_SELECTED\",\n x: 224,\n y: 176,\n width: 44,\n height: 12,\n },\n { name: \"EQ_PREAMP_LINE\", x: 0, y: 314, width: 113, height: 1 },\n ],\n POSBAR: [\n {\n name: \"MAIN_POSITION_SLIDER_BACKGROUND\",\n x: 0,\n y: 0,\n width: 248,\n height: 10,\n },\n {\n name: \"MAIN_POSITION_SLIDER_THUMB\",\n x: 248,\n y: 0,\n width: 29,\n height: 10,\n },\n {\n name: \"MAIN_POSITION_SLIDER_THUMB_SELECTED\",\n x: 278,\n y: 0,\n width: 29,\n height: 10,\n },\n ],\n SHUFREP: [\n { name: \"MAIN_SHUFFLE_BUTTON\", x: 28, y: 0, width: 47, height: 15 },\n {\n name: \"MAIN_SHUFFLE_BUTTON_DEPRESSED\",\n x: 28,\n y: 15,\n width: 47,\n height: 15,\n },\n {\n name: \"MAIN_SHUFFLE_BUTTON_SELECTED\",\n x: 28,\n y: 30,\n width: 47,\n height: 15,\n },\n {\n name: \"MAIN_SHUFFLE_BUTTON_SELECTED_DEPRESSED\",\n x: 28,\n y: 45,\n width: 47,\n height: 15,\n },\n { name: \"MAIN_REPEAT_BUTTON\", x: 0, y: 0, width: 28, height: 15 },\n {\n name: \"MAIN_REPEAT_BUTTON_DEPRESSED\",\n x: 0,\n y: 15,\n width: 28,\n height: 15,\n },\n {\n name: \"MAIN_REPEAT_BUTTON_SELECTED\",\n x: 0,\n y: 30,\n width: 28,\n height: 15,\n },\n {\n name: \"MAIN_REPEAT_BUTTON_SELECTED_DEPRESSED\",\n x: 0,\n y: 45,\n width: 28,\n height: 15,\n },\n { name: \"MAIN_EQ_BUTTON\", x: 0, y: 61, width: 23, height: 12 },\n { name: \"MAIN_EQ_BUTTON_SELECTED\", x: 0, y: 73, width: 23, height: 12 },\n { name: \"MAIN_EQ_BUTTON_DEPRESSED\", x: 46, y: 61, width: 23, height: 12 },\n {\n name: \"MAIN_EQ_BUTTON_DEPRESSED_SELECTED\",\n x: 46,\n y: 73,\n width: 23,\n height: 12,\n },\n { name: \"MAIN_PLAYLIST_BUTTON\", x: 23, y: 61, width: 23, height: 12 },\n {\n name: \"MAIN_PLAYLIST_BUTTON_SELECTED\",\n x: 23,\n y: 73,\n width: 23,\n height: 12,\n },\n {\n name: \"MAIN_PLAYLIST_BUTTON_DEPRESSED\",\n x: 69,\n y: 61,\n width: 23,\n height: 12,\n },\n {\n name: \"MAIN_PLAYLIST_BUTTON_DEPRESSED_SELECTED\",\n x: 69,\n y: 73,\n width: 23,\n height: 12,\n },\n ],\n TEXT: characterSprites,\n TITLEBAR: [\n { name: \"MAIN_TITLE_BAR\", x: 27, y: 15, width: 275, height: 14 },\n { name: \"MAIN_TITLE_BAR_SELECTED\", x: 27, y: 0, width: 275, height: 14 },\n {\n name: \"MAIN_EASTER_EGG_TITLE_BAR\",\n x: 27,\n y: 72,\n width: 275,\n height: 14,\n },\n {\n name: \"MAIN_EASTER_EGG_TITLE_BAR_SELECTED\",\n x: 27,\n y: 57,\n width: 275,\n height: 14,\n },\n { name: \"MAIN_OPTIONS_BUTTON\", x: 0, y: 0, width: 9, height: 9 },\n {\n name: \"MAIN_OPTIONS_BUTTON_DEPRESSED\",\n x: 0,\n y: 9,\n width: 9,\n height: 9,\n },\n { name: \"MAIN_MINIMIZE_BUTTON\", x: 9, y: 0, width: 9, height: 9 },\n {\n name: \"MAIN_MINIMIZE_BUTTON_DEPRESSED\",\n x: 9,\n y: 9,\n width: 9,\n height: 9,\n },\n { name: \"MAIN_SHADE_BUTTON\", x: 0, y: 18, width: 9, height: 9 },\n { name: \"MAIN_SHADE_BUTTON_DEPRESSED\", x: 9, y: 18, width: 9, height: 9 },\n { name: \"MAIN_CLOSE_BUTTON\", x: 18, y: 0, width: 9, height: 9 },\n { name: \"MAIN_CLOSE_BUTTON_DEPRESSED\", x: 18, y: 9, width: 9, height: 9 },\n {\n name: \"MAIN_CLUTTER_BAR_BACKGROUND\",\n x: 304,\n y: 0,\n width: 8,\n height: 43,\n },\n {\n name: \"MAIN_CLUTTER_BAR_BACKGROUND_DISABLED\",\n x: 312,\n y: 0,\n width: 8,\n height: 43,\n },\n {\n name: \"MAIN_CLUTTER_BAR_BUTTON_O_SELECTED\",\n x: 304,\n y: 47,\n width: 8,\n height: 8,\n },\n {\n name: \"MAIN_CLUTTER_BAR_BUTTON_A_SELECTED\",\n x: 312,\n y: 55,\n width: 8,\n height: 7,\n },\n {\n name: \"MAIN_CLUTTER_BAR_BUTTON_I_SELECTED\",\n x: 320,\n y: 62,\n width: 8,\n height: 7,\n },\n {\n name: \"MAIN_CLUTTER_BAR_BUTTON_D_SELECTED\",\n x: 328,\n y: 69,\n width: 8,\n height: 8,\n },\n {\n name: \"MAIN_CLUTTER_BAR_BUTTON_V_SELECTED\",\n x: 336,\n y: 77,\n width: 8,\n height: 7,\n },\n { name: \"MAIN_SHADE_BACKGROUND\", x: 27, y: 42, width: 275, height: 14 },\n {\n name: \"MAIN_SHADE_BACKGROUND_SELECTED\",\n x: 27,\n y: 29,\n width: 275,\n height: 14,\n },\n { name: \"MAIN_SHADE_BUTTON_SELECTED\", x: 0, y: 27, width: 9, height: 9 },\n {\n name: \"MAIN_SHADE_BUTTON_SELECTED_DEPRESSED\",\n x: 9,\n y: 27,\n width: 9,\n height: 9,\n },\n {\n name: \"MAIN_SHADE_POSITION_BACKGROUND\",\n x: 0,\n y: 36,\n width: 17,\n height: 7,\n },\n { name: \"MAIN_SHADE_POSITION_THUMB\", x: 20, y: 36, width: 3, height: 7 },\n {\n name: \"MAIN_SHADE_POSITION_THUMB_LEFT\",\n x: 17,\n y: 36,\n width: 3,\n height: 7,\n },\n {\n name: \"MAIN_SHADE_POSITION_THUMB_RIGHT\",\n x: 23,\n y: 36,\n width: 3,\n height: 7,\n },\n ],\n VOLUME: [\n { name: \"MAIN_VOLUME_BACKGROUND\", x: 0, y: 0, width: 68, height: 420 },\n { name: \"MAIN_VOLUME_THUMB\", x: 15, y: 422, width: 14, height: 11 },\n {\n name: \"MAIN_VOLUME_THUMB_SELECTED\",\n x: 0,\n y: 422,\n width: 14,\n height: 11,\n },\n ],\n GEN: [\n { name: \"GEN_TOP_LEFT_SELECTED\", x: 0, y: 0, width: 25, height: 20 },\n { name: \"GEN_TOP_LEFT_END_SELECTED\", x: 26, y: 0, width: 25, height: 20 },\n {\n name: \"GEN_TOP_CENTER_FILL_SELECTED\",\n x: 52,\n y: 0,\n width: 25,\n height: 20,\n },\n { name: \"GEN_TOP_RIGHT_END_SELECTED\", x: 78, y: 0, width: 25, height: 20 },\n {\n name: \"GEN_TOP_LEFT_RIGHT_FILL_SELECTED\",\n x: 104,\n y: 0,\n width: 25,\n height: 20,\n },\n { name: \"GEN_TOP_RIGHT_SELECTED\", x: 130, y: 0, width: 25, height: 20 },\n\n { name: \"GEN_TOP_LEFT\", x: 0, y: 21, width: 25, height: 20 },\n { name: \"GEN_TOP_LEFT_END\", x: 26, y: 21, width: 25, height: 20 },\n { name: \"GEN_TOP_CENTER_FILL\", x: 52, y: 21, width: 25, height: 20 },\n { name: \"GEN_TOP_RIGHT_END\", x: 78, y: 21, width: 25, height: 20 },\n { name: \"GEN_TOP_LEFT_RIGHT_FILL\", x: 104, y: 21, width: 25, height: 20 },\n { name: \"GEN_TOP_RIGHT\", x: 130, y: 21, width: 25, height: 20 },\n { name: \"GEN_BOTTOM_LEFT\", x: 0, y: 42, width: 125, height: 14 },\n { name: \"GEN_BOTTOM_RIGHT\", x: 0, y: 57, width: 125, height: 14 },\n { name: \"GEN_BOTTOM_FILL\", x: 127, y: 72, width: 25, height: 14 },\n { name: \"GEN_MIDDLE_LEFT\", x: 127, y: 42, width: 11, height: 29 },\n { name: \"GEN_MIDDLE_LEFT_BOTTOM\", x: 158, y: 42, width: 11, height: 24 },\n { name: \"GEN_MIDDLE_RIGHT\", x: 139, y: 42, width: 8, height: 29 },\n { name: \"GEN_MIDDLE_RIGHT_BOTTOM\", x: 170, y: 42, width: 8, height: 24 },\n { name: \"GEN_CLOSE_SELECTED\", x: 148, y: 42, width: 9, height: 9 },\n ],\n /*\n\n We don't currently support the Media Library, so there are disabled\n GENEX: [\n {\n name: \"GENEX_BUTTON_BACKGROUND_LEFT_UNPRESSED\",\n x: 0,\n y: 0,\n height: 15,\n width: 4,\n },\n {\n name: \"GENEX_BUTTON_BACKGROUND_CENTER_UNPRESSED\",\n x: 4,\n y: 0,\n height: 15,\n width: 39,\n },\n {\n name: \"GENEX_BUTTON_BACKGROUND_RIGHT_UNPRESSED\",\n x: 43,\n y: 0,\n height: 15,\n width: 4,\n },\n {\n name: \"GENEX_BUTTON_BACKGROUND_PRESSED\",\n x: 0,\n y: 1,\n height: 15,\n width: 47,\n },\n { name: \"GENEX_SCROLL_UP_UNPRESSED\", x: 0, y: 31, height: 14, width: 14 },\n {\n name: \"GENEX_SCROLL_DOWN_UNPRESSED\",\n x: 14,\n y: 31,\n height: 14,\n width: 14,\n },\n { name: \"GENEX_SCROLL_UP_PRESSED\", x: 28, y: 31, height: 14, width: 14 },\n { name: \"GENEX_SCROLL_DOWN_PRESSED\", x: 42, y: 31, height: 14, width: 14 },\n { name: \"GENEX_SCROLL_LEFT_UNPRESSED\", x: 0, y: 45, height: 14, width: 14 },\n {\n name: \"GENEX_SCROLL_RIGHT_UNPRESSED\",\n x: 14,\n y: 45,\n height: 14,\n width: 14,\n },\n { name: \"GENEX_SCROLL_LEFT_PRESSED\", x: 28, y: 45, height: 14, width: 14 },\n { name: \"GENEX_SCROLL_RIGHT_PRESSED\", x: 42, y: 45, height: 14, width: 14 },\n {\n name: \"GENEX_VERTICAL_SCROLL_HANDLE_UNPRESSED\",\n x: 56,\n y: 31,\n height: 28,\n width: 14,\n },\n {\n name: \"GENEX_VERTICAL_SCROLL_HANDLE_PRESSED\",\n x: 70,\n y: 31,\n height: 28,\n width: 14,\n },\n {\n name: \"GENEX_HORIZONTAL_SCROLL_HANDLE_UNPRESSED\",\n x: 84,\n y: 31,\n height: 14,\n width: 28,\n },\n {\n name: \"GENEX_HORIZONTAL_SCROLL_HANDLE_PRESSED\",\n x: 84,\n y: 45,\n height: 14,\n width: 28,\n },\n ],\n */\n};\n\nexport default sprites;\n","import { parseIni } from \"./utils\";\n\nexport function pointPairs(arr: string[]) {\n const pairedValues = [];\n for (let i = 0; i < arr.length; i += 2) {\n pairedValues.push(`${arr[i]},${arr[i + 1]}`);\n }\n return pairedValues;\n}\n\ntype RegionData = { [section: string]: string[] };\n\nexport default function regionParser(regionStr: string): RegionData {\n const iniData = parseIni(regionStr);\n const data: RegionData = {};\n Object.keys(iniData).forEach((section) => {\n const { numpoints, pointlist } = iniData[section];\n if (!numpoints || !pointlist) {\n return;\n }\n const pointCounts = numpoints.split(/\\s*,\\s*/).filter((val) => val !== \"\");\n const points = pointPairs(\n // points can be separated by spaces, or by commas\n pointlist.split(/\\s*[, ]\\s*/).filter((val) => val !== \"\")\n );\n let pointIndex = 0;\n const polygons = pointCounts.map((numStr) => {\n const num = Number(numStr);\n if (num < 3) {\n // What use is a polygon with less than three sides?\n pointIndex += num;\n return null;\n }\n const polygon = points.slice(pointIndex, pointIndex + num).join(\" \");\n if (!polygon.length) {\n // It's possible that the skin author specified more polygons than provided points.\n return null;\n }\n pointIndex += num;\n return polygon;\n });\n const validPolygons = polygons.filter(\n (polygon) => polygon != null\n ) as string[];\n if (validPolygons.length) {\n data[section] = validPolygons;\n }\n });\n\n return data;\n}\n","import JSZip from \"jszip\";\nimport { PlaylistStyle, SkinGenExColors, CursorImage } from \"./types\";\nimport SKIN_SPRITES, { Sprite } from \"./skinSprites\";\nimport { DEFAULT_SKIN } from \"./constants\";\nimport * as Utils from \"./utils\";\nimport * as FileUtils from \"./fileUtils\";\n\nexport const getFileExtension = (fileName: string): string | null => {\n const matches = /\\.([a-z]{3,4})$/i.exec(fileName);\n return matches ? matches[1].toLowerCase() : null;\n};\n\nfunction getFilenameRegex(base: string, ext: string): RegExp {\n return new RegExp(`^(.*/)?${base}.(${ext})$`, \"i\");\n}\n\nexport async function getFileFromZip(\n zip: JSZip,\n fileName: string,\n ext: string,\n mode: \"blob\" | \"text\" | \"base64\" | \"uint8array\"\n) {\n const files = zip.file(getFilenameRegex(fileName, ext));\n if (!files.length) {\n return null;\n }\n\n // Windows file system is case insensitve, but zip files are not.\n // This means that it's possible for a zip to contain both `main.bmp` _and_\n // `main.BMP` but in Winamp only one will be materialized onto disk when\n // decompressing. I suspect that in this case later files in the archive\n // overwrite earlier ones. To mimic that behavior we use the last matching\n // file.\n //\n // This works because `JSZip.file` filters the files by iterating the\n // underlying `files` object under the hood:\n // https://github.com/Stuk/jszip/blob/25d401e104926fef8528d670ecfe53f14e77a297/lib/object.js#L182\n // Since JavaScript objects are iterable in the order that the keys were\n // added this _should_ mean that by taking the last file here we will get\n // the last file that JSZip extracted.\n const lastFile = files[files.length - 1];\n\n try {\n const contents = await lastFile.async(mode);\n return { contents, name: lastFile.name };\n } catch (e) {\n console.warn(\n `Failed to extract \"${fileName}.${ext}\" from the skin archive.`\n );\n return null;\n }\n}\n\nfunction fallbackGetImgFromBlob(blob: Blob): Promise {\n return Utils.imgFromUrl(URL.createObjectURL(blob));\n}\n\nexport async function getImgFromBlob(\n blob: Blob\n): Promise {\n try {\n // Use this faster native browser API if available.\n // NOTE: In some browsers `window.createImageBitmap` may not exist so this will throw.\n return await window.createImageBitmap(blob);\n } catch (e) {\n try {\n return await fallbackGetImgFromBlob(blob);\n } catch (ee) {\n // Like Winamp we will silently fail on images that don't parse.\n return null;\n }\n }\n}\n\nexport function getSpriteUrisFromImg(\n img: HTMLImageElement | ImageBitmap,\n sprites: Sprite[]\n): { [spriteName: string]: string } {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n if (context == null) {\n throw new Error(\"Failed to get canvas context\");\n }\n const images: { [spriteName: string]: string } = {};\n sprites.forEach((sprite) => {\n canvas.height = sprite.height;\n canvas.width = sprite.width;\n\n context.drawImage(img, -sprite.x, -sprite.y);\n const image = canvas.toDataURL();\n images[sprite.name] = image;\n });\n return images;\n}\n\nexport async function getImgFromFilename(\n zip: JSZip,\n fileName: string\n): Promise {\n // Winamp only supports .bmp images, but WACUP set a precidence of supporting\n // .png as well to reduce size. Since we care about size as well, we follow\n // suit. Our default skin uses .png to save 14kb.\n const file = await getFileFromZip(zip, fileName, \"(png|bmp)\", \"blob\");\n if (!file) {\n return null;\n }\n\n const mimeType = `image/${getFileExtension(file.name) || \"*\"}`;\n // The spec for createImageBitmap() says the browser should try to sniff the\n // mime type, but it looks like Firefox does not. So we specify it here\n // explicitly.\n const typedBlob = new Blob([file.contents], { type: mimeType });\n return getImgFromBlob(typedBlob);\n}\n\nexport async function getSpriteUrisFromFilename(\n zip: JSZip,\n fileName: string\n): Promise<{ [spriteName: string]: string }> {\n const img = await getImgFromFilename(zip, fileName);\n if (img == null) {\n return {};\n }\n return getSpriteUrisFromImg(img, SKIN_SPRITES[fileName]);\n}\n\n// https://docs.microsoft.com/en-us/windows/win32/xaudio2/resource-interchange-file-format--riff-\nconst RIFF_MAGIC = \"RIFF\".split(\"\").map((c) => c.charCodeAt(0));\n\nfunction arrayStartsWith(arr: Uint8Array, matcher: number[]): boolean {\n return matcher.every((item, i) => arr[i] === item);\n}\n\nexport async function getCursorFromFilename(\n zip: JSZip,\n fileName: string\n): Promise {\n const file = await getFileFromZip(zip, fileName, \"CUR\", \"uint8array\");\n if (file == null) {\n return null;\n }\n const contents = file.contents as Uint8Array;\n if (arrayStartsWith(contents, RIFF_MAGIC)) {\n try {\n return { type: \"ani\", aniData: contents };\n } catch (e) {\n console.error(e);\n return null;\n }\n }\n\n return { type: \"cur\", url: FileUtils.curUrlFromByteArray(contents) };\n}\n\nexport async function getPlaylistStyle(zip: JSZip): Promise {\n const files = zip.file(getFilenameRegex(\"PLEDIT\", \"txt\"));\n const file = files[0];\n if (file == null) {\n return DEFAULT_SKIN.playlistStyle;\n }\n const ini = await file.async(\"text\");\n if (ini == null) {\n return DEFAULT_SKIN.playlistStyle;\n }\n const data = ini && Utils.parseIni(ini).text;\n if (!data) {\n // Corrupt or missing PLEDIT.txt file.\n return DEFAULT_SKIN.playlistStyle;\n }\n\n // Winamp seems to permit colors that contain too many characters.\n // For compatibility with existing skins, we normalize them here.\n [\"normal\", \"current\", \"normalbg\", \"selectedbg\", \"mbFG\", \"mbBG\"].forEach(\n (colorKey) => {\n let color = data[colorKey];\n if (!color) {\n return;\n }\n if (color[0] !== \"#\") {\n color = `#${color}`;\n }\n data[colorKey] = color.slice(0, 7);\n }\n );\n\n return { ...DEFAULT_SKIN.playlistStyle, ...data };\n}\n\nexport async function getGenExColors(\n zip: JSZip\n): Promise {\n const img = await getImgFromFilename(zip, \"GENEX\");\n if (img == null) {\n return null;\n }\n\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n if (context == null) {\n return null;\n }\n canvas.width = img.width;\n canvas.height = img.height;\n context.drawImage(img, 0, 0);\n\n const getColorAt = (x: number): string =>\n `rgb(${context\n .getImageData(x, 0, 1, 1)\n // Discard the alpha channel\n .data.slice(0, 3)\n .join(\",\")})`;\n\n // Ideally we would just have a map from key to the x value and map over\n // that with getColorAt, but I don't know a great way to make that type\n // safe. So, we'll just do this for now, where we explicitly call getColorAt\n // for each key.\n return {\n // (1) x=48: item background (background to edits, listviews, etc.)\n itemBackground: getColorAt(48),\n // (2) x=50: item foreground (text colour of edits, listviews, etc.)\n itemForeground: getColorAt(50),\n // (3) x=52: window background (used to set the bg color for the dialog)\n windowBackground: getColorAt(52),\n // (4) x=54: button text colour\n buttonText: getColorAt(54),\n // (5) x=56: window text colour\n windowText: getColorAt(56),\n // (6) x=58: colour of dividers and sunken borders\n divider: getColorAt(58),\n // (7) x=60: selection colour for entries inside playlists (nothing else yet)\n playlistSelection: getColorAt(60),\n // (8) x=62: listview header background colour\n listHeaderBackground: getColorAt(62),\n // (9) x=64: listview header text colour\n listHeaderText: getColorAt(64),\n // (10) x=66: listview header frame top and left colour\n listHeaderFrameTopAndLeft: getColorAt(66),\n // (11) x=68: listview header frame bottom and right colour\n listHeaderFrameBottomAndRight: getColorAt(68),\n // (12) x=70: listview header frame colour, when pressed\n listHeaderFramePressed: getColorAt(70),\n // (13) x=72: listview header dead area colour\n listHeaderDeadArea: getColorAt(72),\n // (14) x=74: scrollbar colour #1\n scrollbarOne: getColorAt(74),\n // (15) x=76: scrollbar colour #2\n scrollbarTwo: getColorAt(76),\n // (16) x=78: pressed scrollbar colour #1\n pressedScrollbarOne: getColorAt(78),\n // (17) x=80: pressed scrollbar colour #2\n pressedScrollbarTwo: getColorAt(80),\n // (18) x=82: scrollbar dead area colour\n scrollbarDeadArea: getColorAt(82),\n // (19) x=84 List view text colour highlighted\n listTextHighlighted: getColorAt(84),\n // (20) x=86 List view background colour highlighted\n listTextHighlightedBackground: getColorAt(86),\n // (21) x=88 List view text colour selected\n listTextSelected: getColorAt(88),\n // (22) x=90 List view background colour selected\n listTextSelectedBackground: getColorAt(90),\n };\n}\n","import SKIN_SPRITES from \"./skinSprites\";\nimport regionParser from \"./regionParser\";\nimport { LETTERS, DEFAULT_SKIN } from \"./constants\";\nimport { parseViscolors } from \"./utils\";\nimport * as SkinParserUtils from \"./skinParserUtils\";\n\nconst shallowMerge = (objs) =>\n objs.reduce((prev, img) => Object.assign(prev, img), {});\n\nconst CURSORS = [\n \"CLOSE\",\n \"EQCLOSE\",\n \"EQNORMAL\",\n \"EQSLID\",\n \"EQTITLE\",\n \"MAINMENU\",\n \"MMENU\",\n \"MIN\",\n \"NORMAL\",\n \"PCLOSE\",\n \"PNORMAL\",\n \"POSBAR\",\n \"PSIZE\",\n \"PTBAR\",\n \"PVSCROLL\",\n \"PWINBUT\",\n \"PWSNORM\",\n \"PWSSIZE\",\n \"SONGNAME\",\n \"TITLEBAR\",\n \"VOLBAL\",\n \"WINBUT\",\n \"WSNORMAL\",\n \"WSPOSBAR\",\n /*\n * > There are usually 4 more cursors in the skins: volbar.cur, wsclose.cur,\n * > wswinbut.cur, wsmin.cur, but they are never used, at least in the last\n * > versions of winamp, so there's no need of including them. The cursors\n * > shown when the mouse is over the app-buttons are the same in normal and\n * > winshade mode, except for the main menu button. You can make animated\n * > cursors, but you have to name them with the extension .cur (animated\n * > cursors are usually .ani files).\n *\n * -- Skinners Atlas\n *\n * \"VOLBAR\",\n * \"WSCLOSE\",\n * \"WSWINBUT\",\n * \"WSMIN\",\n *\n */\n];\n\nasync function genVizColors(zip) {\n const viscolor = await SkinParserUtils.getFileFromZip(\n zip,\n \"VISCOLOR\",\n \"txt\",\n \"text\"\n );\n return viscolor ? parseViscolors(viscolor.contents) : DEFAULT_SKIN.colors;\n}\n\nasync function genImages(zip) {\n const imageObjs = await Promise.all(\n Object.keys(SKIN_SPRITES).map((fileName) =>\n SkinParserUtils.getSpriteUrisFromFilename(zip, fileName)\n )\n );\n // Merge all the objects into a single object. Tests assert that sprite keys are unique.\n return shallowMerge(imageObjs);\n}\nasync function genCursors(zip) {\n const cursorObjs = await Promise.all(\n CURSORS.map(async (cursorName) => ({\n [cursorName]: await SkinParserUtils.getCursorFromFilename(\n zip,\n cursorName\n ),\n }))\n );\n return shallowMerge(cursorObjs);\n}\n\nasync function genRegion(zip) {\n const region = await SkinParserUtils.getFileFromZip(\n zip,\n \"REGION\",\n \"txt\",\n \"text\"\n );\n return region ? regionParser(region.contents) : {};\n}\n\nasync function genGenTextSprites(zip) {\n const img = await SkinParserUtils.getImgFromFilename(zip, \"GEN\");\n if (img == null) {\n return null;\n }\n\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n context.drawImage(img, 0, 0);\n\n const getLetters = (y, prefix) => {\n const getColorAt = (x) => context.getImageData(x, y, 1, 1).data.join(\",\");\n\n let x = 1;\n const backgroundColor = getColorAt(0);\n\n const height = 7;\n return LETTERS.map((letter) => {\n let nextBackground = x;\n while (\n getColorAt(nextBackground) !== backgroundColor &&\n nextBackground < canvas.width\n ) {\n nextBackground++;\n }\n const width = nextBackground - x;\n const name = `${prefix}_${letter}`;\n const sprite = { x, y, height, width, name };\n x = nextBackground + 1;\n return sprite;\n });\n };\n\n const letterWidths = {};\n const sprites = [\n ...getLetters(88, \"GEN_TEXT_SELECTED\"),\n ...getLetters(96, \"GEN_TEXT\"),\n ];\n sprites.forEach((sprite) => {\n letterWidths[sprite.name] = sprite.width;\n });\n return [letterWidths, SkinParserUtils.getSpriteUrisFromImg(img, sprites)];\n}\n\n// A promise that, given an array buffer returns a skin style object\nasync function skinParser(zipFileBuffer, JSZip) {\n const zip = await JSZip.loadAsync(zipFileBuffer);\n\n const [\n colors,\n playlistStyle,\n images,\n cursors,\n region,\n genTextSprites,\n genExColors,\n ] = await Promise.all([\n genVizColors(zip),\n SkinParserUtils.getPlaylistStyle(zip),\n genImages(zip),\n genCursors(zip),\n genRegion(zip),\n genGenTextSprites(zip),\n SkinParserUtils.getGenExColors(zip),\n ]);\n\n const [genLetterWidths, genTextImages] = genTextSprites || [null, {}];\n\n return {\n colors,\n playlistStyle,\n images: { ...images, ...genTextImages },\n genLetterWidths,\n cursors,\n region,\n genExColors,\n };\n}\n\nexport default skinParser;\n","import invariant from \"invariant\";\nimport TinyQueue from \"tinyqueue\";\n\n// Push promises onto a queue with a priority.\n// Run a given number of jobs in parallel\n// Useful for prioritizing network requests\nexport default class LoadQueue {\n constructor({ threads }) {\n // TODO: Consider not running items with zero priority\n // Priority is a function so that items can change their priority between\n // when their priority is evaluated.\n // For example, we might add a track to the playlist and then scroll to/away\n // from it before it gets processed.\n this._queue = new TinyQueue([], (a, b) => a.priority() - b.priority());\n this._availableThreads = threads;\n }\n\n push(task, priority) {\n const t = { task, priority };\n this._queue.push(t);\n // Wait until the next event loop to pick a task to run. This way, we can\n // enqueue multiple items in an event loop, and be sure they will be run in\n // priority order.\n setTimeout(() => {\n this._run();\n }, 0);\n return () => {\n // TODO: Could return a boolean representing if the task has already been\n // kicked off.\n this._queue = this._queue.filter((t1) => t1 !== t);\n };\n }\n\n _run() {\n while (this._availableThreads > 0) {\n if (this._queue.length === 0) {\n return;\n }\n this._availableThreads--;\n const t = this._queue.pop();\n const promise = t.task();\n invariant(\n typeof promise.then === \"function\",\n `LoadQueue only supports loading Promises. Got ${promise}`\n );\n promise.then(() => {\n this._availableThreads++;\n this._run();\n });\n }\n }\n}\n","import { TRACK_HEIGHT } from \"../constants\";\nimport * as Selectors from \"../selectors\";\n\nimport { clamp, sort, findLastIndex } from \"../utils\";\nimport {\n STOP,\n REMOVE_TRACKS,\n REMOVE_ALL_TRACKS,\n REVERSE_LIST,\n RANDOMIZE_LIST,\n SET_TRACK_ORDER,\n SET_PLAYLIST_SCROLL_POSITION,\n DRAG_SELECTED,\n SELECT_ALL,\n SELECT_ZERO,\n INVERT_SELECTION,\n} from \"../actionTypes\";\nimport { Thunk, Action } from \"../types\";\n\nexport function cropPlaylist(): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n if (Selectors.getSelectedTrackObjects(state).length === 0) {\n return;\n }\n const selectedTrackIds = Selectors.getSelectedTrackIds(state);\n const {\n playlist: { trackOrder },\n } = state;\n dispatch({\n type: REMOVE_TRACKS,\n // @ts-ignore The keys are numbers, but TypeScript does not trust us.\n // https://github.com/Microsoft/TypeScript/pull/12253#issuecomment-263132208\n ids: trackOrder.filter((id) => !selectedTrackIds.has(id)),\n });\n };\n}\n\nexport function removeSelectedTracks(): Thunk {\n return (dispatch, getState) => {\n dispatch({\n type: REMOVE_TRACKS,\n // @ts-ignore The keys are numbers, but TypeScript does not trust us.\n // https://github.com/Microsoft/TypeScript/pull/12253#issuecomment-263132208\n ids: Array.from(Selectors.getSelectedTrackIds(getState())),\n });\n };\n}\n\nexport function removeAllTracks(): Thunk {\n return (dispatch) => {\n // It's a bit funky that we need to do both of these.\n dispatch({ type: STOP });\n dispatch({ type: REMOVE_ALL_TRACKS });\n };\n}\n\nexport function reverseList(): Action {\n return { type: REVERSE_LIST };\n}\n\nexport function randomizeList(): Action {\n return { type: RANDOMIZE_LIST };\n}\n\nexport function sortListByTitle(): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n const tracks = Selectors.getTracks(state);\n const trackOrder = sort(Selectors.getTrackOrder(state), (i) =>\n `${tracks[i].title}`.toLowerCase()\n );\n return dispatch({ type: SET_TRACK_ORDER, trackOrder });\n };\n}\n\nexport function setPlaylistScrollPosition(position: number): Action {\n return { type: SET_PLAYLIST_SCROLL_POSITION, position };\n}\n\nexport function scrollNTracks(n: number): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n const overflow = Selectors.getOverflowTrackCount(state);\n const currentOffset = Selectors.getScrollOffset(state);\n const position = overflow ? clamp((currentOffset + n) / overflow, 0, 1) : 0;\n return dispatch({\n type: SET_PLAYLIST_SCROLL_POSITION,\n position: position * 100,\n });\n };\n}\n\nexport function scrollPlaylistByDelta(\n e: React.WheelEvent\n): Thunk {\n e.preventDefault();\n return (dispatch, getState) => {\n const state = getState();\n if (Selectors.getOverflowTrackCount(state)) {\n e.stopPropagation();\n }\n const totalPixelHeight = state.playlist.trackOrder.length * TRACK_HEIGHT;\n const percentDelta = (e.deltaY / totalPixelHeight) * 100;\n dispatch({\n type: SET_PLAYLIST_SCROLL_POSITION,\n position: clamp(\n state.display.playlistScrollPosition + percentDelta,\n 0,\n 100\n ),\n });\n };\n}\n\nexport function scrollUpFourTracks(): Thunk {\n return scrollNTracks(-4);\n}\n\nexport function scrollDownFourTracks(): Thunk {\n return scrollNTracks(4);\n}\n\nexport function dragSelected(offset: number): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n const tracks = Selectors.getTracks(state);\n const trackOrder = Selectors.getTrackOrder(state);\n const selectedIds = Selectors.getSelectedTrackIds(state);\n const firstSelected = trackOrder.findIndex(\n (trackId) => tracks[trackId] && selectedIds.has(trackId)\n );\n if (firstSelected === -1) {\n return;\n }\n const lastSelected = findLastIndex(\n trackOrder,\n (trackId) => tracks[trackId] && selectedIds.has(trackId)\n );\n if (lastSelected === -1) {\n throw new Error(\"We found a first selected, but not a last selected.\");\n }\n // Ensure we don't try to drag off either end.\n const min = -firstSelected;\n const max = trackOrder.length - 1 - lastSelected;\n const normalizedOffset = clamp(offset, min, max);\n if (normalizedOffset !== 0) {\n dispatch({ type: DRAG_SELECTED, offset: normalizedOffset });\n }\n };\n}\n\nexport function invertSelection(): Action {\n return { type: INVERT_SELECTION };\n}\nexport function selectZero(): Action {\n return { type: SELECT_ZERO };\n}\n\nexport function selectAll(): Action {\n return { type: SELECT_ALL };\n}\n","import { parser, creator } from \"winamp-eqf\";\nimport { BANDS, LOAD_STYLE } from \"../constants\";\n\nimport * as Utils from \"../utils\";\n\nimport {\n promptForFileReferences,\n genArrayBufferFromFileReference,\n genMediaDuration,\n genMediaTags,\n} from \"../fileUtils\";\nimport skinParser from \"../skinParser\";\nimport {\n getTracks,\n getUserTracks,\n getTrackIsVisibleFunction,\n getEqfData,\n getPlaylistURL,\n} from \"../selectors\";\n\nimport {\n ADD_TRACK_FROM_URL,\n PLAY_TRACK,\n BUFFER_TRACK,\n SET_MEDIA_TAGS,\n SET_MEDIA_DURATION,\n MEDIA_TAG_REQUEST_INITIALIZED,\n MEDIA_TAG_REQUEST_FAILED,\n SET_SKIN_DATA,\n LOADED,\n LOADING,\n} from \"../actionTypes\";\nimport LoadQueue from \"../loadQueue\";\n\nimport { removeAllTracks } from \"./playlist\";\nimport { setPreamp, setEqBand } from \"./equalizer\";\nimport {\n LoadStyle,\n Thunk,\n Track,\n EqfPreset,\n SkinData,\n WindowId,\n} from \"../types\";\n\n// Lower is better\nconst DURATION_VISIBLE_PRIORITY = 5;\nconst META_DATA_VISIBLE_PRIORITY = 10;\nconst DURATION_PRIORITY = 15;\nconst META_DATA_PRIORITY = 20;\n\nconst loadQueue = new LoadQueue({ threads: 4 });\n\nexport function addTracksFromReferences(\n fileReferences: FileList,\n loadStyle: LoadStyle,\n atIndex: number | undefined\n): Thunk {\n const tracks: Track[] = Array.from(fileReferences).map((file) => ({\n blob: file,\n defaultName: file.name,\n }));\n return loadMediaFiles(tracks, loadStyle, atIndex);\n}\n\nconst SKIN_FILENAME_MATCHER = new RegExp(\"(wsz|zip)$\", \"i\");\nconst EQF_FILENAME_MATCHER = new RegExp(\"eqf$\", \"i\");\nexport function loadFilesFromReferences(\n fileReferences: FileList,\n loadStyle: LoadStyle = LOAD_STYLE.PLAY,\n atIndex: number | undefined = undefined\n): Thunk {\n return (dispatch) => {\n if (fileReferences.length < 1) {\n return;\n } else if (fileReferences.length === 1) {\n const fileReference = fileReferences[0];\n if (SKIN_FILENAME_MATCHER.test(fileReference.name)) {\n dispatch(setSkinFromBlob(fileReference));\n return;\n } else if (EQF_FILENAME_MATCHER.test(fileReference.name)) {\n dispatch(setEqFromFileReference(fileReference));\n return;\n }\n }\n dispatch(addTracksFromReferences(fileReferences, loadStyle, atIndex));\n };\n}\n\nexport function setSkinFromBlob(blob: Blob | Promise): Thunk {\n return async (dispatch, getState, { requireJSZip }) => {\n if (!requireJSZip) {\n alert(\"Webamp has not been configured to support custom skins.\");\n return;\n }\n dispatch({ type: LOADING });\n let JSZip;\n try {\n JSZip = await requireJSZip();\n } catch (e) {\n console.error(e);\n dispatch({ type: LOADED });\n alert(\"Failed to load the skin parser.\");\n return;\n }\n try {\n const skinData = await skinParser(blob, JSZip);\n dispatch({\n type: SET_SKIN_DATA,\n data: {\n skinImages: skinData.images,\n skinColors: skinData.colors,\n skinPlaylistStyle: skinData.playlistStyle,\n skinCursors: skinData.cursors,\n skinRegion: skinData.region,\n skinGenLetterWidths: skinData.genLetterWidths,\n skinGenExColors: skinData.genExColors,\n } as SkinData,\n });\n } catch (e) {\n console.error(e);\n dispatch({ type: LOADED });\n alert(`Failed to parse skin`);\n }\n };\n}\n\nexport function setSkinFromUrl(url: string): Thunk {\n return async (dispatch) => {\n dispatch({ type: LOADING });\n try {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n dispatch(setSkinFromBlob(response.blob()));\n } catch (e) {\n console.error(e);\n dispatch({ type: LOADED });\n alert(`Failed to download skin from ${url}`);\n }\n };\n}\n\n// This function is private, since Winamp consumers can provide means for\n// opening files via other methods. Only use the file type specific\n// versions below, since they can defer to the user-defined behavior.\nfunction _openFileDialog(\n accept: string | null,\n expectedType: \"SKIN\" | \"MEDIA\" | \"EQ\"\n): Thunk {\n return async (dispatch) => {\n const fileReferences = await promptForFileReferences({ accept });\n dispatch({\n type: \"OPENED_FILES\",\n expectedType,\n count: fileReferences.length,\n firstFileName: fileReferences[0]?.name,\n });\n dispatch(loadFilesFromReferences(fileReferences));\n };\n}\n\nexport function openEqfFileDialog(): Thunk {\n return _openFileDialog(\".eqf\", \"EQ\");\n}\n\nexport function openMediaFileDialog(): Thunk {\n return _openFileDialog(null, \"MEDIA\");\n}\n\nexport function openSkinFileDialog() {\n return _openFileDialog(\".zip, .wsz\", \"SKIN\");\n}\n\nexport function fetchMediaDuration(url: string, id: number): Thunk {\n return (dispatch, getState) => {\n loadQueue.push(\n async () => {\n try {\n const duration = await genMediaDuration(url);\n dispatch({ type: SET_MEDIA_DURATION, duration, id });\n } catch (e) {\n // TODO: Should we update the state to indicate that we don't know the length?\n }\n },\n\n () => {\n const trackIsVisible = getTrackIsVisibleFunction(getState());\n return trackIsVisible(id)\n ? DURATION_VISIBLE_PRIORITY\n : DURATION_PRIORITY;\n }\n );\n };\n}\n\nexport function loadMedia(\n e: React.DragEvent,\n loadStyle: LoadStyle = LOAD_STYLE.NONE,\n atIndex = 0\n): Thunk {\n const { files } = e.dataTransfer;\n return async (dispatch, getState, { handleTrackDropEvent }) => {\n if (handleTrackDropEvent) {\n const tracks = await handleTrackDropEvent(e);\n\n if (tracks != null) {\n dispatch(loadMediaFiles(tracks, loadStyle, atIndex));\n return;\n }\n }\n dispatch(loadFilesFromReferences(files, loadStyle, atIndex));\n };\n}\n\nexport function loadMediaFiles(\n tracks: Track[],\n loadStyle: LoadStyle = LOAD_STYLE.NONE,\n atIndex = 0\n): Thunk {\n return (dispatch) => {\n if (loadStyle === LOAD_STYLE.PLAY) {\n // I'm the worst. It just so happens that in every case that we autoPlay,\n // we should also clear all tracks.\n dispatch(removeAllTracks());\n }\n tracks.forEach((track, i) => {\n const priority = i === 0 ? loadStyle : LOAD_STYLE.NONE;\n dispatch(loadMediaFile(track, priority, atIndex + i));\n });\n };\n}\n\nexport function loadMediaFile(\n track: Track,\n priority: LoadStyle = LOAD_STYLE.NONE,\n atIndex = 0\n): Thunk {\n return (dispatch) => {\n const id = Utils.uniqueId();\n const { defaultName, metaData, duration } = track;\n let canonicalUrl: string;\n if (\"url\" in track) {\n canonicalUrl = track.url.toString();\n } else if (\"blob\" in track) {\n canonicalUrl = URL.createObjectURL(track.blob);\n } else {\n throw new Error(\"Expected track to have either a blob or a url\");\n }\n\n dispatch({\n type: ADD_TRACK_FROM_URL,\n url: canonicalUrl,\n duration: track.duration,\n defaultName,\n id,\n atIndex,\n });\n switch (priority) {\n case LOAD_STYLE.BUFFER:\n dispatch({ type: BUFFER_TRACK, id });\n break;\n case LOAD_STYLE.PLAY:\n dispatch({ type: PLAY_TRACK, id });\n break;\n case LOAD_STYLE.NONE:\n default:\n // If we're not going to load this right away,\n // we should set duration on our own\n if (duration != null) {\n dispatch({ type: SET_MEDIA_DURATION, duration, id });\n } else {\n dispatch(fetchMediaDuration(canonicalUrl, id));\n }\n }\n\n if (metaData != null) {\n const { artist, title, album } = metaData;\n dispatch({\n type: SET_MEDIA_TAGS,\n artist,\n title,\n album,\n // For now, we lie about these next three things.\n // TODO: Ideally we would leave these as null and force a media data\n // fetch when the user starts playing.\n sampleRate: 44000,\n bitrate: 192000,\n numberOfChannels: 2,\n id,\n });\n } else if (\"blob\" in track) {\n // Blobs can be loaded quickly\n dispatch(fetchMediaTags(track.blob, id));\n } else {\n dispatch(queueFetchingMediaTags(id));\n }\n };\n}\n\nfunction queueFetchingMediaTags(id: number): Thunk {\n return (dispatch, getState) => {\n const track = getTracks(getState())[id];\n loadQueue.push(\n () => dispatch(fetchMediaTags(track.url, id)),\n () => {\n const trackIsVisible = getTrackIsVisibleFunction(getState());\n return trackIsVisible(id)\n ? META_DATA_VISIBLE_PRIORITY\n : META_DATA_PRIORITY;\n }\n );\n };\n}\n\nexport function fetchMediaTags(file: string | Blob, id: number): Thunk {\n return async (dispatch, getState, { requireMusicMetadata }) => {\n dispatch({ type: MEDIA_TAG_REQUEST_INITIALIZED, id });\n\n try {\n const metadata = await genMediaTags(file, await requireMusicMetadata());\n // There's more data here, but we don't have a use for it yet:\n const { artist, title, album, picture } = metadata.common;\n const { numberOfChannels, bitrate, sampleRate } = metadata.format;\n let albumArtUrl = null;\n if (picture && picture.length >= 1) {\n const byteArray = new Uint8Array(picture[0].data);\n const blob = new Blob([byteArray], { type: picture[0].format });\n albumArtUrl = URL.createObjectURL(blob);\n }\n dispatch({\n type: SET_MEDIA_TAGS,\n artist: artist ? artist : \"\",\n title: title ? title : \"\",\n album,\n albumArtUrl,\n numberOfChannels,\n bitrate,\n sampleRate,\n id,\n });\n } catch (e) {\n dispatch({ type: MEDIA_TAG_REQUEST_FAILED, id });\n }\n };\n}\n\nexport function setEqFromFileReference(fileReference: File): Thunk {\n return async (dispatch) => {\n const arrayBuffer = await genArrayBufferFromFileReference(fileReference);\n const eqf = parser(arrayBuffer);\n const preset: EqfPreset = eqf.presets[0];\n dispatch(setEqFromObject(preset));\n };\n}\n\nexport function setEqFromObject(preset: EqfPreset): Thunk {\n return (dispatch) => {\n dispatch(setPreamp(Utils.normalizeEqBand(preset.preamp)));\n BANDS.forEach((band) => {\n // @ts-ignore band and EqfPreset align\n dispatch(setEqBand(band, Utils.normalizeEqBand(preset[`hz${band}`])));\n });\n };\n}\n\nexport function downloadPreset(): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n const data = getEqfData(state);\n const arrayBuffer = creator(data);\n const base64 = Utils.base64FromArrayBuffer(arrayBuffer);\n const dataURI = `data:application/zip;base64,${base64}`;\n Utils.downloadURI(dataURI, \"entry.eqf\");\n };\n}\n\nexport function downloadHtmlPlaylist(): Thunk {\n return (dispatch, getState) => {\n const uri = getPlaylistURL(getState());\n Utils.downloadURI(uri, \"Winamp Playlist.html\");\n };\n}\n\nlet el: HTMLInputElement | null = document.createElement(\"input\");\nel.type = \"file\";\n// @ts-ingore\nconst DIR_SUPPORT =\n // @ts-ignore\n typeof el.webkitdirectory !== \"undefined\" ||\n // @ts-ignore\n typeof el.mozdirectory !== \"undefined\" ||\n // @ts-ignore\n typeof el.directory !== \"undefined\";\n// Release our reference\nel = null;\n\nexport function addFilesAtIndex(nextIndex: number): Thunk {\n return async (dispatch) => {\n const fileReferences = await promptForFileReferences();\n dispatch(\n addTracksFromReferences(fileReferences, LOAD_STYLE.NONE, nextIndex)\n );\n };\n}\n\nexport function addDirAtIndex(nextIndex: number): Thunk {\n return async (dispatch) => {\n if (!DIR_SUPPORT) {\n alert(\"Not supported in your browser\");\n return;\n }\n const fileReferences = await promptForFileReferences({ directory: true });\n dispatch(\n addTracksFromReferences(fileReferences, LOAD_STYLE.NONE, nextIndex)\n );\n };\n}\n\nexport function addFilesFromUrl(atIndex = 0): Thunk {\n return async (dispatch, getState, { handleAddUrlEvent }) => {\n if (handleAddUrlEvent) {\n const tracks = await handleAddUrlEvent();\n\n if (tracks != null) {\n dispatch(loadMediaFiles(tracks, LOAD_STYLE.NONE, atIndex));\n return;\n }\n } else {\n alert(\"Not supported in Webamp\");\n }\n };\n}\n\nexport function addFilesFromList(): Thunk {\n return async (dispatch, getState, { handleLoadListEvent }) => {\n if (handleLoadListEvent) {\n const tracks = await handleLoadListEvent();\n\n if (tracks != null) {\n dispatch(removeAllTracks());\n\n dispatch(loadMediaFiles(tracks, LOAD_STYLE.NONE, 0));\n return;\n }\n } else {\n alert(\"Not supported in Webamp\");\n }\n };\n}\n\nexport function saveFilesToList(): Thunk {\n return (dispatch, getState, { handleSaveListEvent }) => {\n if (handleSaveListEvent) {\n handleSaveListEvent(getUserTracks(getState()));\n } else {\n alert(\"Not supported in Webamp\");\n }\n };\n}\n\nexport function droppedFiles(e: React.DragEvent, windowId: WindowId): Thunk {\n return (dispatch) =>\n dispatch({\n type: \"DROPPED_FILES\",\n count: e.dataTransfer.files.length,\n firstFileName: e.dataTransfer.files[0]?.name,\n windowId,\n });\n}\n","import {\n GOT_BUTTERCHURN_PRESETS,\n GOT_BUTTERCHURN,\n SELECT_PRESET_AT_INDEX,\n RESOLVE_PRESET_AT_INDEX,\n PRESET_REQUESTED,\n TOGGLE_RANDOMIZE_PRESETS,\n TOGGLE_PRESET_CYCLING,\n SCHEDULE_MILKDROP_MESSAGE,\n} from \"../actionTypes\";\nimport * as Selectors from \"../selectors\";\nimport {\n TransitionType,\n Preset,\n ButterchurnOptions,\n StatePreset,\n Thunk,\n Action,\n} from \"../types\";\nimport * as FileUtils from \"../fileUtils\";\n\nfunction normalizePresetTypes(preset: Preset): StatePreset {\n const { name } = preset;\n if (\"butterchurnPresetObject\" in preset) {\n return {\n type: \"RESOLVED\",\n name,\n preset: preset.butterchurnPresetObject,\n };\n } else if (\"getButterchrunPresetObject\" in preset) {\n return {\n type: \"UNRESOLVED\",\n name,\n getPreset: preset.getButterchrunPresetObject,\n };\n } else if (\"butterchurnPresetUrl\" in preset) {\n return {\n type: \"UNRESOLVED\",\n name,\n getPreset: async () => {\n const resp = await fetch(preset.butterchurnPresetUrl);\n return resp.json();\n },\n };\n }\n throw new Error(\"Invalid preset object\");\n}\n\nexport function initializePresets(presetOptions: ButterchurnOptions): Thunk {\n return async (dispatch) => {\n const { getPresets, importButterchurn } = presetOptions;\n importButterchurn().then((butterchurn) => {\n dispatch({ type: GOT_BUTTERCHURN, butterchurn: butterchurn.default });\n });\n\n const presets = await getPresets();\n const normalizePresets = presets.map(normalizePresetTypes);\n dispatch(loadPresets(normalizePresets));\n };\n}\n\nexport function loadPresets(presets: StatePreset[]): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n const presetsLength = state.milkdrop.presets.length;\n dispatch({ type: GOT_BUTTERCHURN_PRESETS, presets });\n if (presetsLength === 0 && Selectors.getRandomizePresets(state)) {\n dispatch(selectRandomPreset());\n } else {\n dispatch(\n requestPresetAtIndex(presetsLength, TransitionType.IMMEDIATE, true)\n );\n }\n };\n}\n\nexport function appendPresetFileList(fileList: FileList): Thunk {\n return async (dispatch, getState, { convertPreset }) => {\n const presets: StatePreset[] = Array.from(fileList)\n .map((file) => {\n const JSON_EXT = \".json\";\n const MILK_EXT = \".milk\";\n const filename = file.name.toLowerCase();\n if (filename.endsWith(MILK_EXT)) {\n if (convertPreset == null) {\n throw new Error(\"Invalid type\");\n }\n return {\n type: \"UNRESOLVED\",\n name: file.name.slice(0, file.name.length - MILK_EXT.length),\n getPreset: () => convertPreset(file),\n } as StatePreset;\n } else if (filename.endsWith(JSON_EXT)) {\n return {\n type: \"UNRESOLVED\",\n name: file.name.slice(0, file.name.length - JSON_EXT.length),\n getPreset: async () => {\n const str = await FileUtils.genStringFromFileReference(file);\n // TODO: How should we handle the case where json parsing fails?\n return JSON.parse(str);\n },\n } as StatePreset;\n }\n console.error(\"Invalid type preset when loading directory\");\n\n return null as never;\n })\n .filter(Boolean);\n dispatch(loadPresets(presets));\n };\n}\n\nexport function selectNextPreset(\n transitionType: TransitionType = TransitionType.DEFAULT\n): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n if (Selectors.getRandomizePresets(state)) {\n return dispatch(selectRandomPreset(transitionType));\n }\n const currentPresetIndex = Selectors.getCurrentPresetIndex(state);\n if (currentPresetIndex == null) {\n return;\n }\n const nextPresetIndex = currentPresetIndex + 1;\n dispatch(requestPresetAtIndex(nextPresetIndex, transitionType, true));\n };\n}\n\nexport function selectPreviousPreset(\n transitionType: TransitionType = TransitionType.DEFAULT\n): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n const { presetHistory } = state.milkdrop;\n if (presetHistory.length < 1) {\n return;\n }\n // Awkward. We do -2 becuase the the last track is the current track.\n const lastPresetIndex = presetHistory[presetHistory.length - 2];\n\n dispatch(requestPresetAtIndex(lastPresetIndex, transitionType, false));\n };\n}\n\nexport function selectRandomPreset(\n transitionType: TransitionType = TransitionType.DEFAULT\n): Thunk {\n return (dispatch, getState) => {\n const state = getState();\n // TODO: Make this a selector.\n const randomIndex = Math.floor(\n Math.random() * state.milkdrop.presets.length\n );\n dispatch(requestPresetAtIndex(randomIndex, transitionType, true));\n };\n}\n\n// TODO: Technically there's a race here. If you request two presets in a row, the\n// first one may resolve before the second.\nexport function requestPresetAtIndex(\n index: number,\n transitionType: TransitionType,\n addToHistory: boolean\n): Thunk {\n return async (dispatch, getState) => {\n const state = getState();\n const preset = state.milkdrop.presets[index];\n if (preset == null) {\n // Index might be out of range.\n return;\n }\n dispatch({ type: PRESET_REQUESTED, index, addToHistory });\n switch (preset.type) {\n case \"RESOLVED\":\n dispatch({ type: SELECT_PRESET_AT_INDEX, index, transitionType });\n return;\n case \"UNRESOLVED\":\n const json = await preset.getPreset();\n // TODO: Ensure that this works correctly even if requests resolve out of order\n dispatch({ type: RESOLVE_PRESET_AT_INDEX, index, json });\n dispatch({ type: SELECT_PRESET_AT_INDEX, index, transitionType });\n return;\n }\n };\n}\n\nexport function handlePresetDrop(e: React.DragEvent): Thunk {\n return appendPresetFileList(e.dataTransfer.files);\n}\n\nexport function toggleRandomizePresets(): Action {\n return { type: TOGGLE_RANDOMIZE_PRESETS };\n}\n\nexport function togglePresetCycling(): Action {\n return { type: TOGGLE_PRESET_CYCLING };\n}\n\nexport function scheduleMilkdropMessage(message: string): Action {\n return { type: SCHEDULE_MILKDROP_MESSAGE, message };\n}\n","import {\n CLOSE_WINAMP,\n OPEN_WINAMP,\n STOP,\n TOGGLE_VISUALIZER_STYLE,\n CLOSE_REQUESTED,\n MINIMIZE_WINAMP,\n SET_FOCUS,\n UNSET_FOCUS,\n LOAD_SERIALIZED_STATE,\n LOAD_DEFAULT_SKIN,\n SET_MILKDROP_DESKTOP,\n SET_MILKDROP_FULLSCREEN,\n TOGGLE_PRESET_OVERLAY,\n STEP_MARQUEE,\n SET_BAND_FOCUS,\n} from \"../actionTypes\";\nimport { WINDOWS } from \"../constants\";\nimport { Thunk, Action, Slider } from \"../types\";\nimport { SerializedStateV1 } from \"../serializedStates/v1Types\";\nimport * as Selectors from \"../selectors\";\nimport {\n ensureWindowsAreOnScreen,\n showWindow,\n hideWindow,\n setFocusedWindow,\n} from \"./windows\";\n\nexport {\n toggleDoubleSizeMode,\n toggleEqualizerShadeMode,\n togglePlaylistShadeMode,\n closeWindow,\n hideWindow,\n showWindow,\n setWindowSize,\n toggleWindow,\n updateWindowPositions,\n toggleMainWindowShadeMode,\n centerWindowsInContainer,\n centerWindowsInView,\n resetWindowSizes,\n browserWindowSizeChanged,\n ensureWindowsAreOnScreen,\n stackWindows,\n toggleLlamaMode,\n setFocusedWindow,\n} from \"./windows\";\nexport {\n play,\n pause,\n stop,\n nextN,\n next,\n previous,\n seekToTime,\n seekForward,\n seekBackward,\n setVolume,\n playTrack,\n playTrackNow,\n adjustVolume,\n scrollVolume,\n setBalance,\n toggleRepeat,\n toggleShuffle,\n toggleTimeMode,\n} from \"./media\";\nexport {\n setEqBand,\n setEqToMax,\n setEqToMid,\n setEqToMin,\n setPreamp,\n toggleEq,\n toggleEqAuto,\n} from \"./equalizer\";\nexport {\n addTracksFromReferences,\n loadFilesFromReferences,\n setSkinFromUrl,\n openEqfFileDialog,\n openMediaFileDialog,\n openSkinFileDialog,\n fetchMediaDuration,\n loadMedia,\n loadMediaFiles,\n loadMediaFile,\n fetchMediaTags,\n setEqFromFileReference,\n downloadPreset,\n setEqFromObject,\n downloadHtmlPlaylist,\n addDirAtIndex,\n addFilesAtIndex,\n addFilesFromUrl,\n addFilesFromList,\n saveFilesToList,\n droppedFiles,\n} from \"./files\";\nexport {\n cropPlaylist,\n removeSelectedTracks,\n removeAllTracks,\n reverseList,\n randomizeList,\n sortListByTitle,\n setPlaylistScrollPosition,\n scrollNTracks,\n scrollPlaylistByDelta,\n scrollUpFourTracks,\n scrollDownFourTracks,\n dragSelected,\n selectAll,\n selectZero,\n invertSelection,\n} from \"./playlist\";\nexport {\n initializePresets,\n requestPresetAtIndex,\n selectRandomPreset,\n selectNextPreset,\n selectPreviousPreset,\n appendPresetFileList,\n handlePresetDrop,\n loadPresets,\n toggleRandomizePresets,\n togglePresetCycling,\n scheduleMilkdropMessage,\n} from \"./milkdrop\";\n\nexport function close(): Thunk {\n return (dispatch) => {\n // TODO: This could probably be improved by adding a \"PREVENT_CLOSE\" action\n // or something, but this works okay for now.\n let defaultPrevented = false;\n const cancel = () => {\n defaultPrevented = true;\n };\n dispatch({ type: CLOSE_REQUESTED, cancel });\n if (!defaultPrevented) {\n dispatch({ type: STOP });\n dispatch({ type: CLOSE_WINAMP });\n }\n };\n}\n\nexport function open(): Action {\n return { type: OPEN_WINAMP };\n}\n\nexport function toggleVisualizerStyle(): Action {\n return { type: TOGGLE_VISUALIZER_STYLE };\n}\n\nexport function minimize(): Action {\n return { type: MINIMIZE_WINAMP };\n}\n\nexport function setFocus(input: string): Action {\n return { type: SET_FOCUS, input };\n}\n\nexport function unsetFocus(): Action {\n return { type: UNSET_FOCUS };\n}\n\nexport function focusBand(band: Slider): Action {\n return { type: SET_BAND_FOCUS, input: \"eq\", bandFocused: band };\n}\n\nexport function loadSerializedState(\n // In the future this type should be the union of all versioned types.\n serializedState: SerializedStateV1\n): Thunk {\n return (dispatch) => {\n dispatch({ type: LOAD_SERIALIZED_STATE, serializedState });\n dispatch(ensureWindowsAreOnScreen());\n };\n}\n\nexport function loadDefaultSkin(): Action {\n return { type: LOAD_DEFAULT_SKIN };\n}\n\nexport function toggleMilkdropDesktop(): Thunk {\n return (dispatch, getState) => {\n if (Selectors.getMilkdropDesktopEnabled(getState())) {\n dispatch(showWindow(WINDOWS.MILKDROP));\n dispatch({ type: SET_MILKDROP_DESKTOP, enabled: false });\n } else {\n dispatch(hideWindow(WINDOWS.MILKDROP));\n dispatch({ type: SET_MILKDROP_DESKTOP, enabled: true });\n }\n };\n}\n\nexport function setMilkdropFullscreen(enabled: boolean): Action {\n return { type: SET_MILKDROP_FULLSCREEN, enabled };\n}\nexport function toggleMilkdropFullscreen(): Thunk {\n return (dispatch, getState) => {\n dispatch(\n setMilkdropFullscreen(!Selectors.getMilkdropFullscreenEnabled(getState()))\n );\n };\n}\n\nexport function togglePresetOverlay(): Thunk {\n return (dispatch, getState) => {\n if (Selectors.getPresetOverlayOpen(getState())) {\n dispatch(setFocusedWindow(WINDOWS.MILKDROP));\n }\n\n dispatch({ type: TOGGLE_PRESET_OVERLAY });\n };\n}\n\nexport function stepMarquee(): Action {\n return { type: STEP_MARQUEE };\n}\n","import Media from \"./media\";\nimport {\n IS_PLAYING,\n PAUSE,\n PLAY,\n SEEK_TO_PERCENT_COMPLETE,\n SET_BAND_VALUE,\n SET_BALANCE,\n SET_MEDIA,\n SET_VOLUME,\n START_WORKING,\n STOP,\n STOP_WORKING,\n UPDATE_TIME_ELAPSED,\n SET_EQ_OFF,\n SET_EQ_ON,\n PLAY_TRACK,\n BUFFER_TRACK,\n LOAD_SERIALIZED_STATE,\n} from \"./actionTypes\";\nimport { next as nextTrack } from \"./actionCreators\";\nimport * as Selectors from \"./selectors\";\nimport { MiddlewareStore, Action, Dispatch } from \"./types\";\nimport { objectForEach } from \"./utils\";\n\nexport default (media: Media) => (store: MiddlewareStore) => {\n const {\n media: { volume, balance },\n equalizer: { sliders },\n } = store.getState();\n\n // Ensure the default state is the canonical value.\n media.setVolume(volume);\n media.setBalance(balance);\n media.setPreamp(sliders.preamp);\n // TODO: Ensure other values like bands are in sync\n\n media.on(\"timeupdate\", () => {\n store.dispatch({\n type: UPDATE_TIME_ELAPSED,\n elapsed: media.timeElapsed(),\n });\n });\n\n media.on(\"ended\", () => {\n store.dispatch(nextTrack());\n });\n\n media.on(\"playing\", () => {\n store.dispatch({ type: IS_PLAYING });\n });\n\n media.on(\"waiting\", () => {\n store.dispatch({ type: START_WORKING });\n });\n\n media.on(\"stopWaiting\", () => {\n store.dispatch({ type: STOP_WORKING });\n });\n\n media.on(\"fileLoaded\", () => {\n const id = Selectors.getCurrentTrackId(store.getState());\n if (id == null) {\n // Attempted to set the metadata for a track that was already removed.\n // Really, the media should have been stopped when the track was removed.\n return;\n }\n store.dispatch({\n id,\n type: SET_MEDIA,\n kbps: \"128\",\n khz: \"44\",\n channels: 2,\n length: media.duration(),\n });\n });\n\n return (next: Dispatch) => (action: Action) => {\n const returnValue = next(action);\n const state = store.getState();\n switch (action.type) {\n case PLAY:\n media.play();\n break;\n case PAUSE:\n media.pause();\n break;\n case STOP:\n media.stop();\n break;\n case SET_VOLUME:\n media.setVolume(Selectors.getVolume(state));\n break;\n case SET_BALANCE:\n media.setBalance(Selectors.getBalance(state));\n break;\n case SEEK_TO_PERCENT_COMPLETE:\n media.seekToPercentComplete(action.percent);\n break;\n case PLAY_TRACK: {\n const url = Selectors.getTrackUrl(store.getState())(action.id);\n if (url != null) {\n media.loadFromUrl(url, true);\n }\n break;\n }\n case BUFFER_TRACK: {\n const url = Selectors.getTrackUrl(store.getState())(action.id);\n if (url != null) {\n media.loadFromUrl(url, false);\n }\n break;\n }\n case SET_BAND_VALUE:\n if (action.band === \"preamp\") {\n media.setPreamp(action.value);\n } else {\n media.setEqBand(action.band, action.value);\n }\n break;\n case SET_EQ_OFF:\n media.disableEq();\n break;\n case SET_EQ_ON:\n media.enableEq();\n break;\n case LOAD_SERIALIZED_STATE: {\n // Set ALL THE THINGS!\n if (Selectors.getEqualizerEnabled(state)) {\n media.enableEq();\n } else {\n media.disableEq();\n }\n media.setVolume(Selectors.getVolume(state));\n media.setBalance(Selectors.getBalance(state));\n objectForEach(state.equalizer.sliders, (value, slider) => {\n if (slider === \"preamp\") {\n media.setPreamp(value);\n } else {\n // @ts-ignore I don't know how to teach TypeScript about objects\n // that use Slider as keys\n media.setEqBand(slider, value);\n }\n });\n break;\n }\n }\n return returnValue;\n };\n};\n","import { createStore, applyMiddleware, DeepPartial } from \"redux\";\nimport thunk from \"redux-thunk\";\nimport { composeWithDevTools } from \"redux-devtools-extension\";\nimport reducer from \"./reducers\";\nimport mediaMiddleware from \"./mediaMiddleware\";\nimport { merge } from \"./utils\";\nimport { UPDATE_TIME_ELAPSED, STEP_MARQUEE } from \"./actionTypes\";\nimport Media from \"./media\";\nimport Emitter from \"./emitter\";\nimport { Extras, Dispatch, Action, AppState, Middleware } from \"./types\";\n\n// TODO: Move to demo\nconst compose = composeWithDevTools({\n actionsBlacklist: [UPDATE_TIME_ELAPSED, STEP_MARQUEE],\n});\n\nexport default function (\n media: Media,\n actionEmitter: Emitter,\n customMiddlewares: Middleware[] = [],\n stateOverrides: DeepPartial | undefined,\n extras: Extras\n) {\n let initialState;\n if (stateOverrides) {\n initialState = merge(\n reducer(undefined, { type: \"@@init\" }),\n stateOverrides\n );\n }\n\n const emitterMiddleware = () => (next: Dispatch) => (action: Action) => {\n actionEmitter.trigger(action.type, action);\n return next(action);\n };\n\n const enhancer = compose(\n applyMiddleware(\n ...[\n thunk.withExtraArgument(extras),\n mediaMiddleware(media),\n emitterMiddleware,\n ...customMiddlewares,\n ].filter(Boolean)\n )\n );\n\n // The Redux types are a bit confused, and don't realize that passing an\n // undefined initialState is allowed.\n const store = initialState\n ? createStore(reducer, initialState, enhancer)\n : createStore(reducer, enhancer);\n return store;\n}\n","// Adapted from https://github.com/snakesilk/react-fullscreen\nimport { ReactNode, useRef, useLayoutEffect, useEffect } from \"react\";\nimport fscreen from \"fscreen\";\n\ninterface Props {\n enabled: boolean;\n children: ReactNode;\n onChange(fullscreen: boolean): void;\n}\n\nfunction leaveFullScreen() {\n if (fscreen.fullscreenEnabled) {\n fscreen.exitFullscreen();\n }\n}\n\nfunction enterFullScreen(node: HTMLDivElement) {\n if (fscreen.fullscreenEnabled) {\n fscreen.requestFullscreen(node);\n }\n}\n\nfunction FullScreen(props: Props) {\n const { onChange, enabled } = props;\n const ref = useRef(null);\n\n useEffect(() => {\n function detectFullScreen() {\n if (onChange) {\n onChange(fscreen.fullscreenElement === ref.current);\n }\n }\n fscreen.addEventListener(\"fullscreenchange\", detectFullScreen);\n return () => {\n fscreen.removeEventListener(\"fullscreenchange\", detectFullScreen);\n };\n }, [onChange]);\n\n // This must run in response to a click event, so we'll use useLayoutEffect just in case.\n useLayoutEffect(() => {\n const isEnabled = fscreen.fullscreenElement === ref.current;\n if (isEnabled && !enabled) {\n leaveFullScreen();\n } else if (!isEnabled && enabled && ref.current != null) {\n enterFullScreen(ref.current);\n }\n }, [enabled]);\n\n return (\n \n {props.children}\n \n );\n}\n\nexport default FullScreen;\n","import {\n useState,\n useEffect,\n useCallback,\n useLayoutEffect,\n useRef,\n} from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport * as Utils from \"./utils\";\nimport { Action, Thunk, AppState } from \"./types\";\n\ninterface Size {\n width: number;\n height: number;\n}\n\nexport function useUnmountedRef(): { current: boolean } {\n const unmountedRef = useRef(false);\n useEffect(() => {\n return () => {\n unmountedRef.current = true;\n };\n }, []);\n return unmountedRef;\n}\n\nexport function usePromiseValueOrNull(propValue: Promise): T | null {\n const [value, setValue] = useState(null);\n useEffect(() => {\n let disposed = false;\n propValue.then((resolvedValue) => {\n if (disposed) {\n return;\n }\n setValue(resolvedValue);\n });\n\n return () => {\n disposed = true;\n };\n }, [propValue]);\n\n return value;\n}\n\nexport function useScreenSize() {\n const [size] = useState(Utils.getScreenSize());\n // TODO: We could subscribe to screen size changes.\n return size;\n}\n\nexport function useWindowSize() {\n const [size, setSize] = useState(Utils.getWindowSize());\n const handler = useCallback(\n Utils.throttle(() => {\n setSize(Utils.getWindowSize());\n }, 100) as () => void,\n []\n );\n useEffect(() => {\n window.addEventListener(\"resize\", handler);\n return () => {\n window.removeEventListener(\"resize\", handler);\n };\n }, [handler]);\n return size;\n}\n\nconst cursorPositionRef = { current: { pageX: 0, pageY: 0 } };\nwindow.document.addEventListener(\"mousemove\", ({ pageX, pageY }) => {\n cursorPositionRef.current = { pageX, pageY };\n});\n\n// We use a single global event listener because there is no way to get the\n// mouse position aside from an event. Ideally we could create/clean up the\n// event listener in the hook, but in the case where we want to check the cursor\n// position on mount, that we wouldn't have had time to capture an event.\nfunction useCursorPositionRef() {\n return cursorPositionRef;\n}\n\n// CSS hover state is not respected if the cursor is already over the node when\n// it is added to the DOM. This hook allows your component to know its hover\n// state on mount without waiting for the mouse to move.\n// https://stackoverflow.com/a/13259049/1263117\nexport function useIsHovered() {\n const cursorRef = useCursorPositionRef();\n const [hover, setHover] = useState(false);\n const [node, setNode] = useState(null);\n\n useLayoutEffect(() => {\n if (node == null) {\n setHover(false);\n return;\n }\n const domRect = node.getBoundingClientRect();\n const { pageX, pageY } = cursorRef.current;\n setHover(\n pageX >= domRect.left &&\n pageX <= domRect.right &&\n pageY >= domRect.top &&\n pageY <= domRect.bottom\n );\n\n const enter = () => setHover(true);\n const leave = () => setHover(false);\n node.addEventListener(\"mouseenter\", enter);\n node.addEventListener(\"mouseleave\", leave);\n\n return () => {\n node.removeEventListener(\"mouseenter\", enter);\n node.removeEventListener(\"mouseleave\", leave);\n };\n }, [node, cursorRef]);\n\n return { ref: setNode, hover };\n}\n\nexport function useOnClickAway(\n ref: Element | null,\n callback: null | (() => void)\n) {\n useEffect(() => {\n if (ref == null || callback == null) {\n return;\n }\n\n const handleClickOut = (ee: MouseEvent) => {\n const clickOutTarget = ee.target;\n if (!(clickOutTarget instanceof Element)) {\n // TypeScript doesn't realize this will always be true\n return;\n }\n if (ref.contains(clickOutTarget)) {\n return;\n }\n // If the click is _not_ inside the menu.\n callback();\n window.document.removeEventListener(\"click\", handleClickOut, {\n capture: true,\n });\n };\n\n window.document.addEventListener(\"click\", handleClickOut, {\n capture: true,\n });\n\n return () => {\n window.document.removeEventListener(\"click\", handleClickOut, {\n capture: true,\n });\n };\n }, [ref, callback]);\n}\n\n// TODO: Return useSelector directly and apply the type without wrapping\nexport function useTypedSelector(selector: (state: AppState) => T): T {\n return useSelector(selector);\n}\n\nexport function useActionCreator Action | Thunk>(\n actionCreator: T\n): (...funcArgs: Parameters) => void {\n const dispatch = useDispatch();\n return useCallback((...args) => dispatch(actionCreator(...args)), [\n dispatch,\n actionCreator,\n ]);\n}\n\nexport function useTypedDispatch(): (action: Action | Thunk) => void {\n return useDispatch();\n}\n","import { useState, useEffect, memo } from \"react\";\nimport {\n WINDOW_RESIZE_SEGMENT_WIDTH,\n WINDOW_RESIZE_SEGMENT_HEIGHT,\n} from \"../constants\";\n\ntype Size = [number, number];\n\ninterface Props {\n currentSize: Size;\n setWindowSize(size: Size): void;\n widthOnly?: boolean;\n id?: string;\n}\n\nfunction ResizeTarget(props: Props) {\n const { currentSize, setWindowSize, widthOnly, ...passThroughProps } = props;\n const [mouseDown, setMouseDown] = useState(false);\n const [mouseStart, setMouseStart] = useState(\n null\n );\n useEffect(() => {\n if (mouseDown === false || mouseStart == null) {\n return;\n }\n const [width, height] = currentSize;\n const handleMove = (ee: MouseEvent) => {\n const x = ee.clientX - mouseStart.x;\n const y = ee.clientY - mouseStart.y;\n\n const newWidth = Math.max(\n 0,\n width + Math.round(x / WINDOW_RESIZE_SEGMENT_WIDTH)\n );\n\n const newHeight = widthOnly\n ? width\n : Math.max(0, height + Math.round(y / WINDOW_RESIZE_SEGMENT_HEIGHT));\n\n const newSize: Size = [newWidth, newHeight];\n\n props.setWindowSize(newSize);\n };\n\n window.addEventListener(\"mousemove\", handleMove);\n\n const handleMouseUp = () => setMouseDown(false);\n window.addEventListener(\"mouseup\", handleMouseUp);\n\n return () => {\n window.removeEventListener(\"mousemove\", handleMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n };\n // We pruposefully close over the props from when the mouse went down\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mouseStart, mouseDown]);\n\n const handleMouseDown = (e: React.MouseEvent) => {\n // Prevent dragging from highlighting text.\n e.preventDefault();\n setMouseStart({\n x: e.clientX,\n y: e.clientY,\n });\n setMouseDown(true);\n };\n\n return
;\n}\nexport default memo(ResizeTarget);\n","import { useCallback, useState, useEffect } from \"react\";\nimport { WindowId } from \"../types\";\nimport * as Actions from \"../actionCreators\";\nimport * as Selectors from \"../selectors\";\nimport { useActionCreator, useTypedSelector } from \"../hooks\";\n\ninterface Props {\n onKeyDown?(e: KeyboardEvent): void;\n windowId: WindowId;\n children: React.ReactNode;\n}\n\nfunction FocusTarget({ onKeyDown, windowId, children }: Props) {\n const focusedWindowId = useTypedSelector(Selectors.getFocusedWindow);\n const setFocus = useActionCreator(Actions.setFocusedWindow);\n\n const focusHandler = useCallback(() => {\n if (windowId !== focusedWindowId) {\n setFocus(windowId);\n }\n }, [windowId, focusedWindowId, setFocus]);\n\n const [ref, setRef] = useState(null);\n\n useEffect(() => {\n if (ref == null || onKeyDown == null) {\n return;\n }\n ref.addEventListener(\"keydown\", onKeyDown);\n return () => ref.removeEventListener(\"keydown\", onKeyDown);\n }, [onKeyDown, windowId, focusedWindowId, ref]);\n\n // It's possible for a child component to gain focus and then become\n // unmounted. In that case, the browser will return focus to the ``.\n // In the following hook, use a `MutationObserver` to watch for that behavior\n // and refocus the containing FocusTarget when it happens.\n //\n // I tried a number of other approaches using `focus/blur/focusin/focusout` on\n // various DOM nodes, and was unable to find a solution which would trigger in\n // this senario in Firefox. Therefore we use this `MutationObserver` approach.\n useEffect(() => {\n // Only create the `MutationObserver` within the currently focused target.\n if (ref == null || windowId !== focusedWindowId) {\n return;\n }\n\n const observer = new MutationObserver((mutations) => {\n // In the common case we won't have focused the body, so we can do this\n // inexpensive check first to avoid calling the more expensive `O(n)`\n // check of the individual mutations.\n if (document.activeElement !== document.body) {\n return;\n }\n if (mutations.some((mutation) => mutation.removedNodes.length > 0)) {\n ref.focus();\n }\n });\n\n observer.observe(ref, {\n subtree: true,\n attributes: false,\n childList: true,\n });\n\n return () => observer.disconnect();\n }, [windowId, focusedWindowId, ref]);\n\n return (\n \n {children}\n
\n );\n}\n\nexport default FocusTarget;\n","import * as React from \"react\";\nimport classnames from \"classnames\";\nimport \"../../../css/gen-window.css\";\n\nimport * as Actions from \"../../actionCreators\";\nimport * as Selectors from \"../../selectors\";\nimport ResizeTarget from \"../ResizeTarget\";\nimport { WindowId } from \"../../types\";\nimport FocusTarget from \"../FocusTarget\";\nimport { useActionCreator, useTypedSelector } from \"../../hooks\";\n\ninterface TextProps {\n children: string;\n}\n\nconst Text = ({ children }: TextProps) => {\n const letters = children.split(\"\");\n return (\n \n {letters.map((letter, i) => (\n \n ))}\n \n );\n};\n\nconst CHROME_WIDTH = 19;\nconst CHROME_HEIGHT = 34;\n\ninterface WindowSize {\n width: number;\n height: number;\n}\n\ninterface Props {\n windowId: WindowId;\n children: (windowSize: WindowSize) => React.ReactNode;\n title: string;\n onKeyDown?(e: KeyboardEvent): void;\n}\n\n// Named export for testing\nexport const GenWindow = ({ children, title, windowId, onKeyDown }: Props) => {\n const setWindowSize = useActionCreator(Actions.setWindowSize);\n const closeWindow = useActionCreator(Actions.closeWindow);\n const getWindowPixelSize = useTypedSelector(Selectors.getWindowPixelSize);\n const focusedWindow = useTypedSelector(Selectors.getFocusedWindow);\n const getWindowSize = useTypedSelector(Selectors.getWindowSize);\n const windowSize = getWindowSize(windowId);\n const selected = focusedWindow === windowId;\n const { width, height } = getWindowPixelSize(windowId);\n return (\n \n \n
\n
\n
\n
\n
\n {title}\n
\n
\n
\n
\n closeWindow(windowId)}\n />\n
\n
\n
\n
\n
\n
\n
\n {children({\n width: width - CHROME_WIDTH,\n height: height - CHROME_HEIGHT,\n })}\n
\n
\n
\n
\n
\n
\n
\n
\n setWindowSize(windowId, size)}\n id={\"gen-resize-target\"}\n />\n
\n
\n
\n \n );\n};\n\nexport default GenWindow;\n","import { useEffect, useState, useRef } from \"react\";\nimport { VISUALIZERS } from \"../../constants\";\nimport * as Selectors from \"../../selectors\";\nimport { TransitionType } from \"../../types\";\nimport { useTypedSelector } from \"../../hooks\";\n\ntype ButterchurnVisualizer = {\n setRendererSize(width: number, height: number): void;\n loadPreset(preset: Object, transitionTime: number): void;\n launchSongTitleAnim(title: string): void;\n render(): void;\n};\n\ninterface Props {\n analyser: AnalyserNode;\n height: number;\n width: number;\n}\n\nconst TRANSITION_TYPE_DURATIONS = {\n [TransitionType.DEFAULT]: 2.7,\n [TransitionType.IMMEDIATE]: 0,\n [TransitionType.USER_PRESET]: 5.7,\n};\n\nfunction Visualizer({ analyser, width, height }: Props) {\n const visualizerStyle = useTypedSelector(Selectors.getVisualizerStyle);\n const playing = useTypedSelector(Selectors.getMediaIsPlaying);\n const butterchurn = useTypedSelector(Selectors.getButterchurn);\n const trackTitle = useTypedSelector(Selectors.getCurrentTrackDisplayName);\n const currentPreset = useTypedSelector(Selectors.getCurrentPreset);\n const transitionType = useTypedSelector(Selectors.getPresetTransitionType);\n const message = useTypedSelector(Selectors.getMilkdropMessage);\n\n const isEnabledVisualizer = visualizerStyle === VISUALIZERS.MILKDROP;\n\n const canvasRef = useRef(null);\n const [visualizer, setVisualizer] = useState(\n null\n );\n\n // Initialize the visualizer\n useEffect(() => {\n if (canvasRef.current == null || butterchurn == null) {\n return;\n }\n if (visualizer != null) {\n // Note: The visualizer does not offer anyway to clean itself up. So, we\n // don't offer any way to recreate it. So, if you swap out the analyser\n // node, or the canvas, that change won't be respected.\n return;\n }\n const _visualizer = butterchurn.createVisualizer(\n analyser.context,\n canvasRef.current,\n {\n width,\n height,\n meshWidth: 32,\n meshHeight: 24,\n pixelRatio: window.devicePixelRatio || 1,\n }\n );\n _visualizer.connectAudio(analyser);\n setVisualizer(_visualizer);\n }, [butterchurn, analyser, height, width, visualizer]);\n\n // Ensure render size stays up to date\n useEffect(() => {\n if (visualizer == null) {\n return;\n }\n visualizer.setRendererSize(width, height);\n }, [visualizer, width, height]);\n\n // Load presets when they change\n const hasLoadedPreset = useRef(false);\n useEffect(() => {\n if (visualizer == null || currentPreset == null) {\n return;\n }\n if (hasLoadedPreset.current) {\n visualizer.loadPreset(\n currentPreset,\n TRANSITION_TYPE_DURATIONS[transitionType]\n );\n } else {\n visualizer.loadPreset(\n currentPreset,\n TRANSITION_TYPE_DURATIONS[TransitionType.IMMEDIATE]\n );\n hasLoadedPreset.current = true;\n }\n // We don't want to trigger the transition if the transition type changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visualizer, currentPreset]);\n\n // Handle title animations\n useEffect(() => {\n if (visualizer == null || !trackTitle) {\n return;\n }\n visualizer.launchSongTitleAnim(trackTitle);\n }, [visualizer, trackTitle]);\n\n const lastShownMessage = useRef(null);\n\n useEffect(() => {\n if (visualizer == null || message == null) {\n return;\n }\n if (\n lastShownMessage.current == null ||\n message.time > lastShownMessage.current\n ) {\n lastShownMessage.current = Date.now();\n visualizer.launchSongTitleAnim(message.text);\n }\n }, [visualizer, message]);\n\n const shouldAnimate = playing && isEnabledVisualizer;\n\n // Kick off the animation loop\n useEffect(() => {\n if (!shouldAnimate || visualizer == null) {\n return;\n }\n let animationFrameRequest: number | null = null;\n const loop = () => {\n visualizer.render();\n animationFrameRequest = window.requestAnimationFrame(loop);\n };\n loop();\n return () => {\n if (animationFrameRequest != null) {\n window.cancelAnimationFrame(animationFrameRequest);\n }\n };\n }, [visualizer, shouldAnimate]);\n\n return (\n \n );\n}\n\nexport default Visualizer;\n","import * as React from \"react\";\n\ninterface Props {\n innerRef?: (node: HTMLDivElement) => void;\n children: React.ReactNode;\n}\n\nconst Background = (props: Props) => {\n const { innerRef } = props;\n return (\n \n {props.children}\n
\n );\n};\n\nexport default Background;\n","import { useState, useCallback } from \"react\";\nimport { promptForFileReferences } from \"../../fileUtils\";\nimport * as Selectors from \"../../selectors\";\nimport * as Actions from \"../../actionCreators\";\nimport { clamp } from \"../../utils\";\nimport { TransitionType } from \"../../types\";\nimport {\n useUnmountedRef,\n useActionCreator,\n useTypedSelector,\n} from \"../../hooks\";\n\nconst ENTRY_HEIGHT = 14;\nconst HEIGHT_PADDING = 15;\nconst WIDTH_PADDING = 20;\n\nconst LOADING_STYLE: React.CSSProperties = {\n position: \"absolute\",\n top: 0,\n left: 0,\n color: \"white\",\n background: \"rgba(0.33, 0.33, 0.33, 0.33)\",\n};\n\nconst OUTER_WRAPPER_STYLE: React.CSSProperties = {\n position: \"absolute\",\n top: 0,\n left: 0,\n padding: \"15px 10px 0 10px\",\n};\n\nconst INNER_WRAPPER_STYLE: React.CSSProperties = {\n display: \"inline-block\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n background: \"rgba(0, 0, 0, 0.815)\",\n fontSize: \"12px\",\n};\n\ninterface Props {\n height: number;\n width: number;\n}\n\nfunction presetIndexFromListIndex(listIndex: number) {\n return listIndex - 1;\n}\n\nfunction listIndexFromPresetIndex(listIndex: number) {\n return listIndex + 1;\n}\n\nfunction PresetOverlay({ height, width }: Props) {\n const presetKeys = useTypedSelector(Selectors.getPresetNames);\n const currentPresetIndex = useTypedSelector(Selectors.getCurrentPresetIndex);\n const requestPresetAtIndex = useActionCreator(Actions.requestPresetAtIndex);\n const togglePresetOverlay = useActionCreator(Actions.togglePresetOverlay);\n const appendPresetFileList = useActionCreator(Actions.appendPresetFileList);\n\n const unmountedRef = useUnmountedRef();\n const [selectedListIndex, setSelectedListIndex] = useState(() => {\n if (currentPresetIndex != null) {\n return listIndexFromPresetIndex(currentPresetIndex);\n }\n return 0;\n });\n\n // Number of presets, plus one for the \"Load Local Directory\" option, minus\n // one to convert a length to an index.\n const maxListIndex = presetKeys.length; // - 1 + 1;\n\n const renderList = useCallback(() => {\n const maxVisibleRows = Math.floor((height - HEIGHT_PADDING) / ENTRY_HEIGHT);\n const rowsToShow = Math.floor(maxVisibleRows * 0.75); // Only fill 3/4 of the screen.\n const [startIndex, endIndex] = getRangeCenteredOnIndex(\n maxListIndex + 1, // Add one to convert an index to a length\n rowsToShow,\n selectedListIndex\n );\n\n const presetElms = [];\n for (let i = startIndex; i <= endIndex; i++) {\n const presetIndex = presetIndexFromListIndex(i);\n const isSelected = i === selectedListIndex;\n const isCurrent = presetIndex === currentPresetIndex;\n let color: string;\n if (isSelected) {\n color = isCurrent ? \"#FFCC22\" : \"#FF5050\";\n } else {\n color = isCurrent ? \"#CCFF03\" : \"#CCCCCC\";\n }\n presetElms.push(\n
  • \n {i === 0 ? \"Load Local Directory\" : presetKeys[presetIndex]}\n
  • \n );\n }\n\n return presetElms;\n }, [currentPresetIndex, height, maxListIndex, presetKeys, selectedListIndex]);\n\n const loadLocalDir = useCallback(async () => {\n const fileReferences = await promptForFileReferences({ directory: true });\n if (unmountedRef.current) {\n return;\n }\n appendPresetFileList(fileReferences);\n }, [appendPresetFileList, unmountedRef]);\n\n const handleFocusedKeyboardInput = useCallback(\n (e: React.KeyboardEvent) => {\n switch (e.keyCode) {\n case 38: // up arrow\n setSelectedListIndex((value) => Math.max(value - 1, 0));\n e.stopPropagation();\n break;\n case 40: // down arrow\n setSelectedListIndex((value) => Math.min(value + 1, maxListIndex));\n e.stopPropagation();\n break;\n case 13: // enter\n if (selectedListIndex === 0) {\n loadLocalDir();\n } else {\n requestPresetAtIndex(\n presetIndexFromListIndex(selectedListIndex),\n TransitionType.DEFAULT,\n true\n );\n }\n e.stopPropagation();\n break;\n case 27: // escape\n togglePresetOverlay();\n e.stopPropagation();\n break;\n }\n },\n [\n loadLocalDir,\n maxListIndex,\n requestPresetAtIndex,\n selectedListIndex,\n togglePresetOverlay,\n ]\n );\n\n const handleNode = useCallback((node: HTMLDivElement | null) => {\n if (node != null && document.activeElement !== node) {\n node.focus();\n }\n }, []);\n\n if (presetKeys == null) {\n return (\n
    \n Loading presets\n
    \n );\n }\n return (\n \n \n
      \n {renderList()}\n
    \n
    \n
    \n );\n}\n\n// Find a tuple `[startIndex, endIndex]` representing start/end indexes into an\n// array of length `length`, that descripe a range of size up to `rangeSize`\n// where a best effort is made to center `indexToCenter`.\nexport function getRangeCenteredOnIndex(\n length: number,\n maxRangeSize: number,\n indexToCenter: number\n): [number, number] {\n const rangeSize = Math.min(length, maxRangeSize);\n const halfRangeSize = Math.floor(rangeSize / 2);\n const idealStartIndex = indexToCenter - halfRangeSize;\n const startIndex = clamp(idealStartIndex, 0, length - rangeSize);\n const endIndex = startIndex + rangeSize - 1;\n return [startIndex, endIndex];\n}\nexport default PresetOverlay;\n","import { useCallback } from \"react\";\nimport { useActionCreator } from \"../hooks\";\nimport * as Actions from \"../actionCreators\";\nimport { WindowId } from \"../types\";\n\ninterface Coord {\n x: number;\n y: number;\n}\n\ninterface Props extends React.HTMLAttributes {\n handleDrop(e: React.DragEvent, coord: Coord): void;\n windowId: WindowId;\n}\n\nfunction supress(e: React.DragEvent) {\n e.stopPropagation();\n e.preventDefault();\n e.dataTransfer.dropEffect = \"link\";\n e.dataTransfer.effectAllowed = \"link\";\n}\n\nconst DropTarget = (props: Props) => {\n const {\n // eslint-disable-next-line no-shadow, no-unused-vars\n handleDrop,\n windowId,\n ...passThroughProps\n } = props;\n\n const droppedFiles = useActionCreator(Actions.droppedFiles);\n\n const onDrop = useCallback(\n (e: React.DragEvent) => {\n supress(e);\n droppedFiles(e, windowId);\n // TODO: We could probably move this coordinate logic into the playlist.\n // I think that's the only place it gets used.\n const { currentTarget } = e;\n if (!(currentTarget instanceof Element)) {\n return;\n }\n\n const { left: x, top: y } = currentTarget.getBoundingClientRect();\n handleDrop(e, { x, y });\n },\n [handleDrop, droppedFiles, windowId]\n );\n return (\n \n );\n};\n\nexport default DropTarget;\n","import { useMemo, useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport classnames from \"classnames\";\n\nimport \"../../css/context-menu.css\";\nimport { useTypedSelector } from \"../hooks\";\nimport * as Selectors from \"../selectors\";\n\ninterface PortalProps {\n zIndex: number;\n top: number;\n left: number;\n children: JSX.Element[] | JSX.Element;\n}\n\nconst Portal = (props: PortalProps) => {\n const node: HTMLDivElement = useMemo(() => {\n const div = document.createElement(\"div\");\n div.id = \"webamp-context-menu\";\n div.style.position = \"absolute\";\n div.style.top = \"0\";\n div.style.left = \"0\";\n div.style.zIndex = String(props.zIndex + 1);\n return div;\n }, [props.zIndex]);\n\n useEffect(() => {\n document.body.appendChild(node);\n return () => {\n document.body.removeChild(node);\n };\n }, [node]);\n\n const style: React.CSSProperties = {\n top: props.top,\n left: props.left,\n position: \"absolute\",\n };\n return createPortal(
    {props.children}
    , node);\n};\n\nexport const Hr = () => (\n
  • \n
    \n
  • \n);\n\ninterface ParentProps {\n label: string;\n children: React.ReactNode;\n}\n\nexport const Parent = ({ children, label }: ParentProps) => (\n
  • \n
      {children}
    \n {label}\n
  • \n);\n\ninterface LinkNodeProps {\n label: string;\n href: string;\n target?: string;\n}\n\nexport const LinkNode = (props: LinkNodeProps) => (\n
  • \n {props.label}\n
  • \n);\n\ninterface NodeProps {\n label: string;\n checked?: boolean;\n hotkey?: string;\n className?: string;\n // TODO: Figure out how to do passthrough props\n onClick?: () => void;\n}\n\nexport const Node = (props: NodeProps) => {\n const { label, checked, className = \"\", ...passThroughProps } = props;\n return (\n
  • \n {label}\n
  • \n );\n};\n\ninterface ContextMenuProps {\n children: React.ReactNode;\n offsetTop: number;\n offsetLeft: number;\n top?: boolean;\n bottom?: boolean;\n // TODO: Remove this. Just conditionally render in the parent.\n selected: boolean;\n}\n\nexport default function ContextMenu({\n children,\n offsetTop,\n offsetLeft,\n top,\n bottom,\n selected,\n}: ContextMenuProps) {\n const zIndex = useTypedSelector(Selectors.getZIndex);\n if (!selected) {\n return null;\n }\n return (\n \n
      \n {children}\n
    \n
    \n );\n}\n","import { ReactNode, useState, useEffect, useCallback } from \"react\";\nimport ContextMenu from \"./ContextMenu\";\n\ninterface Props {\n renderContents(): ReactNode;\n children: ReactNode;\n}\n\n// Trigger a context menu at the user's cursor position when the user right\n// clicks within this component.\n// For a component that triggers relative to a given component when the user\n// left-clicks see ``.\n\n// TODO: Consider using nested contexts to ensure we don't ever have multiple\n// non-nested context menus open at a time.\nexport default function ContextMenuWraper({\n children,\n renderContents,\n ...passThroughProps\n}: Props) {\n const [openPosition, setOpenPosition] = useState<{\n x: number;\n y: number;\n } | null>(null);\n\n const closeMenu = useCallback(() => {\n setOpenPosition(null);\n }, []);\n\n const handleGlobalClick = useCallback(\n (e: MouseEvent) => {\n if (e.button !== 2) {\n closeMenu();\n }\n },\n [closeMenu]\n );\n\n const handleRightClick = useCallback(\n (e: React.MouseEvent) => {\n const { pageX, pageY } = e;\n // TODO: We could do an initial render to see if the menu fits here\n // and do a second render if it does not.\n setOpenPosition({ x: pageX, y: pageY });\n e.preventDefault();\n e.stopPropagation();\n },\n []\n );\n\n // Add click-away listeners when window is open\n useEffect(() => {\n if (openPosition == null) {\n return;\n }\n document.addEventListener(\"click\", handleGlobalClick);\n document.body.addEventListener(\"contextmenu\", closeMenu);\n\n return () => {\n document.removeEventListener(\"click\", handleGlobalClick);\n document.body.removeEventListener(\"contextmenu\", closeMenu);\n };\n }, [openPosition, closeMenu, handleGlobalClick]);\n\n return (\n \n \n {renderContents()}\n \n {children}\n
    \n );\n}\n","import { ReactNode } from \"react\";\nimport { Hr, Node } from \"../ContextMenu\";\nimport { WINDOWS } from \"../../constants\";\nimport * as Selectors from \"../../selectors\";\nimport * as Actions from \"../../actionCreators\";\nimport ContextMenuWraper from \"../ContextMenuWrapper\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\ninterface Props {\n children: ReactNode;\n}\n\nconst MilkdropContextMenu = (props: Props) => {\n const desktop = useTypedSelector(Selectors.getMilkdropDesktopEnabled);\n\n const closeWindow = useActionCreator(Actions.closeWindow);\n const toggleDesktop = useActionCreator(Actions.toggleMilkdropDesktop);\n const toggleFullscreen = useActionCreator(Actions.toggleMilkdropFullscreen);\n return (\n {\n return (\n <>\n \n \n
    \n closeWindow(WINDOWS.MILKDROP)} label=\"Quit\" />\n \n );\n }}\n >\n {props.children}\n \n );\n};\n\nexport default MilkdropContextMenu;\n","import * as React from \"react\";\nimport ReactDOM from \"react-dom\";\n\ninterface Props {\n children: React.ReactNode;\n}\n\nconst Desktop = React.memo(({ children }: Props) => {\n const [desktopNode] = React.useState(() => document.createElement(\"div\"));\n\n React.useEffect(() => {\n desktopNode.classList.add(\"webamp-desktop\");\n document.body.appendChild(desktopNode);\n return () => {\n document.body.removeChild(desktopNode);\n };\n }, [desktopNode]);\n\n return ReactDOM.createPortal(children, desktopNode);\n});\n\nexport default Desktop;\n","import { useEffect, useCallback } from \"react\";\nimport Fullscreen from \"../Fullscreen\";\nimport {\n useWindowSize,\n useScreenSize,\n useTypedSelector,\n useActionCreator,\n} from \"../../hooks\";\nimport GenWindow from \"../GenWindow\";\nimport { WINDOWS } from \"../../constants\";\nimport * as Selectors from \"../../selectors\";\nimport * as Actions from \"../../actionCreators\";\nimport { TransitionType } from \"../../types\";\nimport Visualizer from \"./Visualizer\";\n\nimport \"../../../css/milkdrop-window.css\";\nimport Background from \"./Background\";\nimport PresetOverlay from \"./PresetOverlay\";\nimport DropTarget from \"../DropTarget\";\nimport MilkdropContextMenu from \"./MilkdropContextMenu\";\nimport Desktop from \"./Desktop\";\n\nconst MILLISECONDS_BETWEEN_PRESET_TRANSITIONS = 15000;\n\ninterface Props {\n analyser: AnalyserNode;\n}\n\nfunction useKeyHandler() {\n const trackTitle = useTypedSelector(Selectors.getCurrentTrackDisplayName);\n\n const selectNextPreset = useActionCreator(Actions.selectNextPreset);\n const selectPreviousPreset = useActionCreator(Actions.selectPreviousPreset);\n const toggleRandomize = useActionCreator(Actions.toggleRandomizePresets);\n const togglePresetOverlay = useActionCreator(Actions.togglePresetOverlay);\n const scheduleMilkdropMessage = useActionCreator(\n Actions.scheduleMilkdropMessage\n );\n const toggleCycling = useActionCreator(Actions.togglePresetCycling);\n\n // Handle keyboard events\n return useCallback(\n (e: KeyboardEvent) => {\n switch (e.keyCode) {\n case 32: // spacebar\n selectNextPreset();\n break;\n case 8: // backspace\n selectPreviousPreset(TransitionType.IMMEDIATE);\n break;\n case 72: // H\n selectNextPreset(TransitionType.IMMEDIATE);\n break;\n case 82: // R\n toggleRandomize();\n break;\n case 76: // L\n togglePresetOverlay();\n e.stopPropagation();\n break;\n case 84: // T\n if (trackTitle != null) {\n scheduleMilkdropMessage(trackTitle);\n }\n e.stopPropagation();\n break;\n case 145: // scroll lock\n case 125: // F14 (scroll lock for OS X)\n toggleCycling();\n break;\n }\n },\n [\n scheduleMilkdropMessage,\n selectNextPreset,\n selectPreviousPreset,\n toggleCycling,\n togglePresetOverlay,\n toggleRandomize,\n trackTitle,\n ]\n );\n}\n\nfunction Milkdrop({ analyser }: Props) {\n const desktop = useTypedSelector(Selectors.getMilkdropDesktopEnabled);\n const fullscreen = useTypedSelector(Selectors.getMilkdropFullscreenEnabled);\n const overlay = useTypedSelector(Selectors.getPresetOverlayOpen);\n const presetsAreCycling = useTypedSelector(Selectors.getPresetsAreCycling);\n const currentPresetIndex = useTypedSelector(Selectors.getCurrentPresetIndex);\n const mediaIsPlaying = useTypedSelector(Selectors.getMediaIsPlaying);\n\n const toggleFullscreen = useActionCreator(Actions.toggleMilkdropFullscreen);\n const selectNextPreset = useActionCreator(Actions.selectNextPreset);\n const handlePresetDrop = useActionCreator(Actions.handlePresetDrop);\n const setFullscreen = useActionCreator(Actions.setMilkdropFullscreen);\n\n const handleKeyDown = useKeyHandler();\n\n // Cycle presets\n useEffect(() => {\n if (!presetsAreCycling || !mediaIsPlaying) {\n return;\n }\n const intervalId = setInterval(\n selectNextPreset,\n MILLISECONDS_BETWEEN_PRESET_TRANSITIONS\n );\n return () => clearInterval(intervalId);\n }, [presetsAreCycling, currentPresetIndex, mediaIsPlaying, selectNextPreset]);\n\n const screenSize = useScreenSize();\n const windowSize = useWindowSize();\n\n if (desktop) {\n return (\n \n \n \n \n \n );\n }\n\n return (\n \n {(genWindowSize: { width: number; height: number }) => {\n const size = fullscreen ? screenSize : genWindowSize;\n return (\n \n \n \n {overlay && }\n \n
    \n \n
    \n
    \n \n
    \n
    \n );\n }}\n \n );\n}\nexport default Milkdrop;\n","import { Fragment } from \"react\";\nimport * as Actions from \"../actionCreators\";\nimport { Hr, Node } from \"./ContextMenu\";\nimport { useActionCreator } from \"../hooks\";\n\nconst PlaybackContextMenu = () => {\n const previous = useActionCreator(Actions.previous);\n const play = useActionCreator(Actions.play);\n const pause = useActionCreator(Actions.pause);\n const stop = useActionCreator(Actions.stop);\n const next = useActionCreator(Actions.next);\n const seekForward = useActionCreator(Actions.seekForward);\n const seekBackward = useActionCreator(Actions.seekBackward);\n const nextN = useActionCreator(Actions.nextN);\n return (\n \n \n \n \n \n \n
    \n {/*\n \n \n */}\n seekBackward(5)}\n />\n seekForward(5)}\n />\n {/*\n \n */}\n nextN(-10)} />\n nextN(10)} />\n {/*\n
    \n \n \n */}\n
    \n );\n};\n\nexport default PlaybackContextMenu;\n","import * as Actions from \"../actionCreators\";\nimport * as Selectors from \"../selectors\";\nimport { Hr, Node, Parent } from \"./ContextMenu\";\nimport { useActionCreator, useTypedSelector } from \"../hooks\";\n\nconst SkinContextMenu = () => {\n const loadDefaultSkin = useActionCreator(Actions.loadDefaultSkin);\n const openSkinFileDialog = useActionCreator(Actions.openSkinFileDialog);\n const setSkin = useActionCreator(Actions.setSkinFromUrl);\n\n const availableSkins = useTypedSelector(Selectors.getAvaliableSkins);\n return (\n \n \n
    \n \"} />\n {availableSkins.map((skin) => (\n setSkin(skin.url)}\n label={skin.name}\n />\n ))}\n
    \n );\n};\nexport default SkinContextMenu;\n","import { Hr, Node } from \"./ContextMenu\";\nimport SkinsContextMenu from \"./SkinsContextMenu\";\nimport * as Actions from \"../actionCreators\";\nimport * as Selectors from \"../selectors\";\nimport { TIME_MODE } from \"../constants\";\nimport { useActionCreator, useTypedSelector } from \"../hooks\";\n\nconst OptionsContextMenu = () => {\n const toggleTimeMode = useActionCreator(Actions.toggleTimeMode);\n const toggleDoubleSizeMode = useActionCreator(Actions.toggleDoubleSizeMode);\n const toggleRepeat = useActionCreator(Actions.toggleRepeat);\n const toggleShuffle = useActionCreator(Actions.toggleShuffle);\n\n const doubled = useTypedSelector(Selectors.getDoubled);\n const timeMode = useTypedSelector(Selectors.getTimeMode);\n const repeat = useTypedSelector(Selectors.getRepeat);\n const shuffle = useTypedSelector(Selectors.getShuffle);\n return (\n <>\n {/* */}\n \n
    \n \n \n {/* */}\n \n {/* */}\n
    \n \n \n \n );\n};\nexport default OptionsContextMenu;\n","import { memo, Fragment, useEffect } from \"react\";\nimport * as Actions from \"../../actionCreators\";\nimport * as Selectors from \"../../selectors\";\nimport { LOAD_STYLE } from \"../../constants\";\nimport { Hr, Node, Parent, LinkNode } from \"../ContextMenu\";\nimport PlaybackContextMenu from \"../PlaybackContextMenu\";\nimport OptionsContextMenu from \"../OptionsContextMenu\";\nimport SkinsContextMenu from \"../SkinsContextMenu\";\nimport { FilePicker } from \"../../types\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\ninterface Props {\n filePickers: FilePicker[];\n}\n\nconst MainContextMenu = memo(({ filePickers }: Props) => {\n const networkConnected = useTypedSelector(Selectors.getNetworkConnected);\n const genWindows = useTypedSelector(Selectors.getGenWindows);\n\n const close = useActionCreator(Actions.close);\n const openMediaFileDialog = useActionCreator(Actions.openMediaFileDialog);\n const loadMediaFiles = useActionCreator(Actions.loadMediaFiles);\n const toggleWindow = useActionCreator(Actions.toggleWindow);\n const menuOpened = useActionCreator(() => ({\n type: \"MAIN_CONTEXT_MENU_OPENED\",\n }));\n useEffect(() => {\n menuOpened();\n }, [menuOpened]);\n\n return (\n \n \n
    \n \n \n {filePickers != null &&\n filePickers.map(\n (picker, i) =>\n (networkConnected || !picker.requiresNetwork) && (\n {\n let files;\n try {\n files = await picker.filePicker();\n } catch (e) {\n console.error(\"Error loading from file picker\", e);\n }\n loadMediaFiles(files || [], LOAD_STYLE.PLAY);\n }}\n label={picker.contextMenuName}\n />\n )\n )}\n \n
    \n {Object.keys(genWindows).map((i) => (\n toggleWindow(i)}\n hotkey={genWindows[i].hotkey}\n />\n ))}\n
    \n \n
    \n \n \n \n \n \n \n
    \n \n
    \n );\n});\n\nexport default MainContextMenu;\n","import { ReactNode, useCallback, useEffect, useState } from \"react\";\n\nimport * as SnapUtils from \"../snapUtils\";\nimport * as Selectors from \"../selectors\";\nimport * as Actions from \"../actionCreators\";\nimport { WindowInfo, WindowId, Box, Point } from \"../types\";\nimport { useTypedSelector, useActionCreator } from \"../hooks\";\n\nconst abuts = (a: Box, b: Box) => {\n // TODO: This is kinda a hack. They should really be touching, not just within snapping distance.\n // Also, overlapping should not count.\n const wouldMoveTo = SnapUtils.snap(a, b);\n return wouldMoveTo.x !== undefined || wouldMoveTo.y !== undefined;\n};\n\ninterface Props {\n windows: { [windowId: string]: ReactNode };\n}\n\ntype DraggingState = {\n moving: WindowInfo[];\n stationary: WindowInfo[];\n boundingBox: Box;\n mouseStart: Point;\n};\n\nfunction useHandleMouseDown(propsWindows: {\n [windowId: string]: ReactNode;\n}): (key: WindowId, e: React.MouseEvent) => void {\n const windowsInfo = useTypedSelector(Selectors.getWindowsInfo);\n const getWindowHidden = useTypedSelector(Selectors.getWindowHidden);\n const browserWindowSize = useTypedSelector(Selectors.getBrowserWindowSize);\n const updateWindowPositions = useActionCreator(Actions.updateWindowPositions);\n\n const [draggingState, setDraggingState] = useState(\n null\n );\n\n // When the mouse is down, attach a listener to track mouse move events.\n useEffect(() => {\n if (draggingState == null) {\n return;\n }\n const { boundingBox, moving, stationary, mouseStart } = draggingState;\n const handleMouseMove = (ee: MouseEvent) => {\n const proposedDiff = {\n x: ee.clientX - mouseStart.x,\n y: ee.clientY - mouseStart.y,\n };\n\n const proposedWindows = moving.map((node) => ({\n ...node,\n ...SnapUtils.applyDiff(node, proposedDiff),\n }));\n\n const proposedBox = {\n ...boundingBox,\n ...SnapUtils.applyDiff(boundingBox, proposedDiff),\n };\n\n const snapDiff = SnapUtils.snapDiffManyToMany(\n proposedWindows,\n stationary\n );\n\n const withinDiff = SnapUtils.snapWithinDiff(\n proposedBox,\n browserWindowSize\n );\n\n const finalDiff = SnapUtils.applyMultipleDiffs(\n proposedDiff,\n snapDiff,\n withinDiff\n );\n\n const windowPositionDiff: { [windowId: string]: Point } = {};\n moving.forEach((w) => {\n windowPositionDiff[w.key] = SnapUtils.applyDiff(w, finalDiff);\n });\n\n updateWindowPositions(windowPositionDiff, false);\n };\n\n function handleMouseUp() {\n setDraggingState(null);\n }\n\n window.addEventListener(\"mouseup\", handleMouseUp);\n window.addEventListener(\"mousemove\", handleMouseMove);\n\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n };\n }, [browserWindowSize, draggingState, updateWindowPositions]);\n\n // Mouse down handler\n return useCallback(\n (key: WindowId, e: React.MouseEvent) => {\n if (!(e.target as HTMLElement).classList.contains(\"draggable\")) {\n return;\n }\n\n if (getWindowHidden(key)) {\n // The user may be clicking on full screen Milkdrop.\n return;\n }\n\n const windows = windowsInfo.filter(\n (w) => propsWindows[w.key] != null && !getWindowHidden(w.key)\n );\n const targetNode = windows.find((node) => node.key === key);\n if (targetNode == null) {\n throw new Error(`Tried to move a node that does not exist: ${key}`);\n }\n\n let movingSet = new Set([targetNode]);\n // Only the main window brings other windows along.\n if (key === \"main\") {\n const findAllConnected = SnapUtils.traceConnection(abuts);\n movingSet = findAllConnected(windows, targetNode);\n }\n\n const stationary = windows.filter((w) => !movingSet.has(w));\n const moving = Array.from(movingSet);\n\n const mouseStart = { x: e.clientX, y: e.clientY };\n\n const boundingBox = SnapUtils.boundingBox(moving);\n setDraggingState({ boundingBox, moving, stationary, mouseStart });\n },\n [getWindowHidden, propsWindows, windowsInfo]\n );\n}\n\nexport default function WindowManager({ windows: propsWindows }: Props) {\n const windowsInfo = useTypedSelector(Selectors.getWindowsInfo);\n const setFocusedWindow = useActionCreator(Actions.setFocusedWindow);\n const handleMouseDown = useHandleMouseDown(propsWindows);\n\n const windows = windowsInfo.filter((w) => propsWindows[w.key]);\n\n const onBlur = useCallback(\n // I give up on trying to type things with `relatedTarget`.\n (e: any) => {\n const { currentTarget, relatedTarget } = e;\n if (\n currentTarget === relatedTarget ||\n currentTarget.contains(relatedTarget)\n ) {\n return;\n }\n setFocusedWindow(null);\n },\n [setFocusedWindow]\n );\n\n return (\n <>\n {windows.map((w) => (\n ) => {\n handleMouseDown(w.key, e);\n }}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n transform: `translate(${w.x}px, ${w.y}px)`,\n }}\n >\n {propsWindows[w.key]}\n
    \n ))}\n \n );\n}\n","import * as React from \"react\";\nimport deburr from \"lodash/deburr\";\n\ninterface Props extends React.HTMLAttributes {\n children: string | number;\n className?: string;\n}\n\nexport const characterClassName = (char: string | number) =>\n `character-${deburr(char.toString()).toLowerCase().charCodeAt(0)}`;\n\nconst Character = React.memo(\n ({ children: char, className, ...passThrough }: Props) => {\n return (\n \n {char}\n \n );\n }\n);\n\nexport default Character;\n","import { Fragment } from \"react\";\nimport classnames from \"classnames\";\nimport { getTimeObj } from \"../utils\";\nimport { TIME_MODE, MEDIA_STATUS } from \"../constants\";\nimport * as Actions from \"../actionCreators\";\nimport Character from \"./Character\";\nimport * as Selectors from \"../selectors\";\n\nimport \"../../css/mini-time.css\";\nimport { useTypedSelector, useActionCreator } from \"../hooks\";\n\n// Sigh. When the display is blinking (say when it's paused) we need to\n// alternate between the actual character and the space character. Not\n// Possible to do that in pure CSS with the background being dynamically generated.\n// All \"space\" characters is also how Winamp renders no content.\nconst Background = () => (\n \n {[1, 7, 12, 20, 25].map((left, i) => (\n \n ))}\n \n);\n\nconst MiniTime = () => {\n const status = useTypedSelector(Selectors.getMediaStatus);\n const duration = useTypedSelector(Selectors.getDuration);\n const timeElapsed = useTypedSelector(Selectors.getTimeElapsed);\n const timeMode = useTypedSelector(Selectors.getTimeMode);\n\n const toggle = useActionCreator(Actions.toggleTimeMode);\n let seconds = null;\n // TODO: Clean this up: If stopped, just render the background, rather than\n // rendering spaces twice.\n if (status !== MEDIA_STATUS.STOPPED && duration != null) {\n seconds =\n timeMode === TIME_MODE.ELAPSED ? timeElapsed : duration - timeElapsed;\n }\n\n const timeObj = getTimeObj(seconds);\n const showMinus =\n timeMode === TIME_MODE.REMAINING && status !== MEDIA_STATUS.STOPPED;\n return (\n \n \n {showMinus ? \"-\" : \" \"}\n {timeObj.minutesFirstDigit}\n {timeObj.minutesSecondDigit}\n {timeObj.secondsFirstDigit}\n {timeObj.secondsSecondDigit}\n
    \n );\n};\n\nexport default MiniTime;\n","import { useState } from \"react\";\nimport classnames from \"classnames\";\n\ninterface Props extends React.HTMLAttributes {\n className?: string;\n onMouseDown?: (e: React.MouseEvent) => void;\n}\n\n// Winamp has a strange behavior for the buttons at the top of the main window.\n// It shows through to the main background sprite until the first time that it's\n// clicked, and then it shows the dedicated undepressed sprite thereafter.\n// This component is an abstraction that tracks if a div has ever been clicked.\n// Look in `skinSelectors` for CSS selectors that look like `#some-id.clicked`\n// for examples of this functionality in use.\nfunction ClickedDiv(props: Props) {\n const [clicked, setClicked] = useState(false);\n function handleMouseDown(e: React.MouseEvent) {\n setClicked(true);\n if (props.onMouseDown) {\n props.onMouseDown(e);\n }\n }\n return (\n \n );\n}\n\nexport default ClickedDiv;\n","import { useState, useRef, useEffect, useMemo } from \"react\";\nimport ContextMenu from \"./ContextMenu\";\n\ninterface Props extends React.HTMLAttributes {\n renderMenu: () => React.ReactNode;\n top?: boolean;\n bottom?: boolean;\n}\n\nfunction getNodeOffset(node: HTMLDivElement | null) {\n if (node == null) {\n return { top: 0, left: 0 };\n }\n\n const rect = node.getBoundingClientRect();\n const scrollLeft = window.pageXOffset || document.documentElement!.scrollLeft;\n const scrollTop = window.pageYOffset || document.documentElement!.scrollTop;\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft };\n}\n\n// Trigger a context menu relative to the child element when the user\n// left-clicks on the child.\n//\n// For a component that triggers relative to the user's cursor on right-click\n// see ``.\nfunction ContextMenuTarget(props: Props) {\n const handleNode = useRef(null);\n const [selected, setSelected] = useState(false);\n useEffect(() => {\n if (!selected) {\n return;\n }\n function handleGlobalClick(e: MouseEvent) {\n if (\n selected &&\n // Typescript does not believe that these click events are always fired on DOM nodes.\n e.target instanceof Element &&\n selected &&\n // Not sure how, but it's possible for this to get called when handleNode is null/undefined.\n // https://sentry.io/share/issue/2066cd79f21e4f279791319f4d2ea35d/\n handleNode.current &&\n !handleNode.current.contains(e.target!)\n ) {\n setSelected(false);\n }\n }\n document.addEventListener(\"click\", handleGlobalClick);\n return () => {\n document.removeEventListener(\"click\", handleGlobalClick);\n };\n }, [selected]);\n\n const offset = useMemo(() => {\n return selected\n ? getNodeOffset(handleNode.current)\n : // Kinda awkward. This is a nonsense return value since we only use\n //this value when we are selected.\n { top: 0, left: 0 };\n }, [selected]);\n\n const { renderMenu, children, top, bottom, ...passThroughProps } = props;\n return (\n
    \n setSelected(!selected)}\n >\n {children}\n
    \n \n {renderMenu()}\n \n
    \n );\n}\n\nexport default ContextMenuTarget;\n","import { useMemo, useCallback } from \"react\";\n\nimport * as Selectors from \"../selectors\";\nimport { useTypedSelector } from \"../hooks\";\n\nconst PIXEL_DENSITY = 2;\n\n// Return the average value in a slice of dataArray\nfunction sliceAverage(\n dataArray: Uint8Array,\n sliceWidth: number,\n sliceNumber: number\n): number {\n const start = sliceWidth * sliceNumber;\n const end = start + sliceWidth;\n let sum = 0;\n for (let i = start; i < end; i++) {\n sum += dataArray[i];\n }\n return sum / sliceWidth;\n}\n\nexport function usePaintOscilloscopeFrame({\n analyser,\n height,\n width,\n renderWidth,\n}: {\n analyser: AnalyserNode;\n height: number;\n width: number;\n renderWidth: number;\n}) {\n const colors = useTypedSelector(Selectors.getSkinColors);\n\n const bufferLength = analyser.fftSize;\n\n const dataArray = useMemo(() => {\n return new Uint8Array(bufferLength);\n }, [bufferLength]);\n\n return useCallback(\n (canvasCtx: CanvasRenderingContext2D) => {\n analyser.getByteTimeDomainData(dataArray);\n\n canvasCtx.lineWidth = PIXEL_DENSITY;\n\n // Just use one of the viscolors for now\n canvasCtx.strokeStyle = colors[18];\n\n // Since dataArray has more values than we have pixels to display, we\n // have to average several dataArray values per pixel. We call these\n // groups slices.\n //\n // We use the 2x scale here since we only want to plot values for\n // \"real\" pixels.\n const sliceWidth = Math.floor(bufferLength / width) * PIXEL_DENSITY;\n\n const h = height;\n\n canvasCtx.beginPath();\n\n // Iterate over the width of the canvas in \"real\" pixels.\n for (let j = 0; j <= renderWidth; j++) {\n const amplitude = sliceAverage(dataArray, sliceWidth, j);\n const percentAmplitude = amplitude / 255; // dataArray gives us bytes\n const y = (1 - percentAmplitude) * h; // flip y\n const x = j * PIXEL_DENSITY;\n\n // Canvas coordinates are in the middle of the pixel by default.\n // When we want to draw pixel perfect lines, we will need to\n // account for that here\n if (x === 0) {\n canvasCtx.moveTo(x, y);\n } else {\n canvasCtx.lineTo(x, y);\n }\n }\n canvasCtx.stroke();\n },\n [analyser, bufferLength, colors, dataArray, height, renderWidth, width]\n );\n}\n","import { useMemo, useCallback, useState } from \"react\";\n\nimport * as Selectors from \"../selectors\";\nimport { useTypedSelector } from \"../hooks\";\n\nconst PIXEL_DENSITY = 2;\nconst BAR_WIDTH = 3 * PIXEL_DENSITY;\nconst GRADIENT_COLOR_COUNT = 16;\nconst PEAK_COLOR_INDEX = 23;\nconst BAR_PEAK_DROP_RATE = 0.01;\nconst NUM_BARS = 20;\n\nfunction octaveBucketsForBufferLength(bufferLength: number): number[] {\n const octaveBuckets = new Array(NUM_BARS).fill(0);\n const minHz = 200;\n const maxHz = 22050;\n const octaveStep = Math.pow(maxHz / minHz, 1 / NUM_BARS);\n\n octaveBuckets[0] = 0;\n octaveBuckets[1] = minHz;\n for (let i = 2; i < NUM_BARS - 1; i++) {\n octaveBuckets[i] = octaveBuckets[i - 1] * octaveStep;\n }\n octaveBuckets[NUM_BARS - 1] = maxHz;\n\n for (let i = 0; i < NUM_BARS; i++) {\n const octaveIdx = Math.floor((octaveBuckets[i] / maxHz) * bufferLength);\n octaveBuckets[i] = octaveIdx;\n }\n\n return octaveBuckets;\n}\n\nfunction preRenderBar(\n height: number,\n colors: string[],\n renderHeight: number\n): HTMLCanvasElement {\n /**\n * The order of the colours is commented in the file: the fist two colours\n * define the background and dots (check it to see what are the dots), the\n * next 16 colours are the analyzer's colours from top to bottom, the next\n * 5 colours are the oscilloscope's ones, from center to top/bottom, the\n * last colour is for the analyzer's peak markers.\n */\n\n // Off-screen canvas for pre-rendering a single bar gradient\n const barCanvas = document.createElement(\"canvas\");\n barCanvas.width = BAR_WIDTH;\n barCanvas.height = height;\n\n const offset = 2; // The first two colors are for the background;\n const gradientColors = colors.slice(offset, offset + GRADIENT_COLOR_COUNT);\n\n const barCanvasCtx = barCanvas.getContext(\"2d\");\n if (barCanvasCtx == null) {\n throw new Error(\"Could not construct canvas context\");\n }\n const multiplier = GRADIENT_COLOR_COUNT / renderHeight;\n // In shade mode, the five colors are, from top to bottom:\n // 214, 102, 0 -- 3\n // 222, 165, 24 -- 6\n // 148, 222, 33 -- 9\n // 57, 181, 16 -- 12\n // 24, 132, 8 -- 15\n // TODO: This could probably be improved by iterating backwards\n for (let i = 0; i < renderHeight; i++) {\n const colorIndex = GRADIENT_COLOR_COUNT - 1 - Math.floor(i * multiplier);\n barCanvasCtx.fillStyle = gradientColors[colorIndex];\n const y = height - i * PIXEL_DENSITY;\n barCanvasCtx.fillRect(0, y, BAR_WIDTH, PIXEL_DENSITY);\n }\n return barCanvas;\n}\n\nexport function usePaintBar({\n renderHeight,\n height,\n}: {\n renderHeight: number;\n height: number;\n}) {\n const colors = useTypedSelector(Selectors.getSkinColors);\n const getWindowShade = useTypedSelector(Selectors.getWindowShade);\n const windowShade = getWindowShade(\"main\");\n\n const barCanvas = useMemo(() => {\n return preRenderBar(height, colors, renderHeight);\n }, [colors, height, renderHeight]);\n\n return useCallback(\n (\n ctx: CanvasRenderingContext2D,\n x: number,\n barHeight: number,\n peakHeight: number\n ) => {\n barHeight = Math.ceil(barHeight) * PIXEL_DENSITY;\n peakHeight = Math.ceil(peakHeight) * PIXEL_DENSITY;\n if (barHeight > 0 || peakHeight > 0) {\n const y = height - barHeight;\n // Draw the gradient\n const b = BAR_WIDTH;\n if (height > 0) {\n ctx.drawImage(barCanvas, 0, y, b, height, x, y, b, height);\n }\n\n // Draw the gray peak line\n if (!windowShade) {\n const peakY = height - peakHeight;\n ctx.fillStyle = colors[PEAK_COLOR_INDEX];\n ctx.fillRect(x, peakY, b, PIXEL_DENSITY);\n }\n }\n },\n [barCanvas, colors, height, windowShade]\n );\n}\n\nexport function usePaintBarFrame({\n renderHeight,\n height,\n analyser,\n}: {\n renderHeight: number;\n height: number;\n analyser: AnalyserNode;\n}) {\n const [barPeaks] = useState(() => new Array(NUM_BARS).fill(0));\n const [barPeakFrames] = useState(() => new Array(NUM_BARS).fill(0));\n const bufferLength = analyser.frequencyBinCount;\n\n const octaveBuckets = useMemo(() => {\n return octaveBucketsForBufferLength(bufferLength);\n }, [bufferLength]);\n\n const dataArray = useMemo(() => {\n return new Uint8Array(bufferLength);\n }, [bufferLength]);\n\n const paintBar = usePaintBar({ height, renderHeight });\n\n return useCallback(\n (canvasCtx: CanvasRenderingContext2D) => {\n analyser.getByteFrequencyData(dataArray);\n const heightMultiplier = renderHeight / 256;\n const xOffset = BAR_WIDTH + PIXEL_DENSITY; // Bar width, plus a pixel of spacing to the right.\n for (let j = 0; j < NUM_BARS - 1; j++) {\n const start = octaveBuckets[j];\n const end = octaveBuckets[j + 1];\n let amplitude = 0;\n for (let k = start; k < end; k++) {\n amplitude += dataArray[k];\n }\n amplitude /= end - start;\n\n // The drop rate should probably be normalized to the rendering FPS, for now assume 60 FPS\n let barPeak =\n barPeaks[j] - BAR_PEAK_DROP_RATE * Math.pow(barPeakFrames[j], 2);\n if (barPeak < amplitude) {\n barPeak = amplitude;\n barPeakFrames[j] = 0;\n } else {\n barPeakFrames[j] += 1;\n }\n barPeaks[j] = barPeak;\n\n paintBar(\n canvasCtx,\n j * xOffset,\n amplitude * heightMultiplier,\n barPeak * heightMultiplier\n );\n }\n },\n [\n analyser,\n barPeakFrames,\n barPeaks,\n dataArray,\n octaveBuckets,\n paintBar,\n renderHeight,\n ]\n );\n}\n","import { useMemo, useCallback, useState, useLayoutEffect } from \"react\";\n\nimport * as Actions from \"../actionCreators\";\nimport * as Selectors from \"../selectors\";\nimport { useTypedSelector, useActionCreator } from \"../hooks\";\nimport { usePaintOscilloscopeFrame } from \"./useOscilloscopeVisualizer\";\nimport { usePaintBarFrame, usePaintBar } from \"./useBarVisualizer\";\nimport { VISUALIZERS, MEDIA_STATUS } from \"../constants\";\n\nconst PIXEL_DENSITY = 2;\n\ntype Props = {\n analyser: AnalyserNode;\n};\n\n// Pre-render the background grid\nfunction preRenderBg(\n width: number,\n height: number,\n bgColor: string,\n fgColor: string,\n windowShade: boolean\n): HTMLCanvasElement {\n // Off-screen canvas for pre-rendering the background\n const bgCanvas = document.createElement(\"canvas\");\n bgCanvas.width = width;\n bgCanvas.height = height;\n const distance = 2 * PIXEL_DENSITY;\n\n const bgCanvasCtx = bgCanvas.getContext(\"2d\");\n if (bgCanvasCtx == null) {\n throw new Error(\"Could not construct canvas context\");\n }\n bgCanvasCtx.fillStyle = bgColor;\n bgCanvasCtx.fillRect(0, 0, width, height);\n if (!windowShade) {\n bgCanvasCtx.fillStyle = fgColor;\n for (let x = 0; x < width; x += distance) {\n for (let y = PIXEL_DENSITY; y < height; y += distance) {\n bgCanvasCtx.fillRect(x, y, PIXEL_DENSITY, PIXEL_DENSITY);\n }\n }\n }\n return bgCanvas;\n}\n\nfunction Visualizer({ analyser }: Props) {\n useLayoutEffect(() => {\n analyser.fftSize = 2048;\n }, [analyser.fftSize]);\n const colors = useTypedSelector(Selectors.getSkinColors);\n const style = useTypedSelector(Selectors.getVisualizerStyle);\n const status = useTypedSelector(Selectors.getMediaStatus);\n const getWindowShade = useTypedSelector(Selectors.getWindowShade);\n const dummyVizData = useTypedSelector(Selectors.getDummyVizData);\n\n const toggleVisualizerStyle = useActionCreator(Actions.toggleVisualizerStyle);\n const windowShade = getWindowShade(\"main\");\n const renderWidth = windowShade ? 38 : 76;\n const renderHeight = windowShade ? 5 : 16;\n\n const width = renderWidth * PIXEL_DENSITY;\n const height = renderHeight * PIXEL_DENSITY;\n\n const bgCanvas = useMemo(() => {\n return preRenderBg(\n width,\n height,\n colors[0],\n colors[1],\n Boolean(windowShade)\n );\n }, [colors, height, width, windowShade]);\n\n const paintOscilloscopeFrame = usePaintOscilloscopeFrame({\n analyser,\n height,\n width,\n renderWidth,\n });\n const paintBarFrame = usePaintBarFrame({\n analyser,\n height,\n renderHeight,\n });\n const paintBar = usePaintBar({ height, renderHeight });\n\n const paintFrame = useCallback(\n (canvasCtx: CanvasRenderingContext2D) => {\n if (status !== MEDIA_STATUS.PLAYING) {\n return;\n }\n if (dummyVizData) {\n canvasCtx.drawImage(bgCanvas, 0, 0);\n Object.entries(dummyVizData).forEach(([i, value]) => {\n paintBar(canvasCtx, Number(i), value, -1);\n });\n return;\n }\n switch (style) {\n case VISUALIZERS.OSCILLOSCOPE:\n canvasCtx.drawImage(bgCanvas, 0, 0);\n paintOscilloscopeFrame(canvasCtx);\n break;\n case VISUALIZERS.BAR:\n canvasCtx.drawImage(bgCanvas, 0, 0);\n paintBarFrame(canvasCtx);\n break;\n default:\n canvasCtx.clearRect(0, 0, width, height);\n }\n },\n [\n bgCanvas,\n dummyVizData,\n height,\n paintBar,\n paintBarFrame,\n paintOscilloscopeFrame,\n status,\n style,\n width,\n ]\n );\n\n const [canvas, setCanvas] = useState(null);\n\n useLayoutEffect(() => {\n if (canvas == null) {\n return;\n }\n const canvasCtx = canvas.getContext(\"2d\");\n if (canvasCtx == null) {\n return;\n }\n canvasCtx.imageSmoothingEnabled = false;\n\n let animationRequest: number | null = null;\n // Kick off the animation loop\n const loop = () => {\n paintFrame(canvasCtx);\n animationRequest = window.requestAnimationFrame(loop);\n };\n loop();\n\n return () => {\n if (animationRequest != null) {\n window.cancelAnimationFrame(animationRequest);\n }\n };\n }, [canvas, paintFrame]);\n\n return (\n \n );\n}\n\nexport default Visualizer;\n","import { memo } from \"react\";\nimport * as Actions from \"../../actionCreators\";\nimport { useActionCreator } from \"../../hooks\";\n\nconst ActionButtons = memo(() => {\n const previous = useActionCreator(Actions.previous);\n const play = useActionCreator(Actions.play);\n const pause = useActionCreator(Actions.pause);\n const next = useActionCreator(Actions.next);\n const stop = useActionCreator(Actions.stop);\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n );\n});\n\nexport default ActionButtons;\n","import * as React from \"react\";\n\nimport * as Actions from \"../actionCreators\";\nimport * as Selectors from \"../selectors\";\nimport { useTypedSelector, useActionCreator } from \"../hooks\";\n\ninterface Props {\n id?: string;\n style?: React.CSSProperties;\n className?: string;\n}\n\nexport default function Balance({ style, className, id }: Props) {\n const balance = useTypedSelector(Selectors.getBalance);\n const setBalance = useActionCreator(Actions.setBalance);\n const setFocus = useActionCreator(Actions.setFocus);\n const unsetFocus = useActionCreator(Actions.unsetFocus);\n return (\n setBalance(Number(e.target.value))}\n onMouseDown={() => setFocus(\"balance\")}\n onMouseUp={unsetFocus}\n title=\"Balance\"\n />\n );\n}\n","import { memo } from \"react\";\n\nimport Balance from \"../Balance\";\nimport * as Selectors from \"../../selectors\";\nimport { useTypedSelector } from \"../../hooks\";\n\nexport const offsetFromBalance = (balance: number): number => {\n const percent = Math.abs(balance) / 100;\n const sprite = Math.floor(percent * 27);\n const offset = sprite * 15;\n return offset;\n};\n\nconst MainBalance = memo(() => {\n const balance = useTypedSelector(Selectors.getBalance);\n return (\n \n );\n});\n\nexport default MainBalance;\n","import { memo } from \"react\";\nimport ClickedDiv from \"../ClickedDiv\";\nimport { useActionCreator } from \"../../hooks\";\n\nimport * as Actions from \"../../actionCreators\";\n\nconst Close = memo(() => {\n const close = useActionCreator(Actions.close);\n return ;\n});\n\nexport default Close;\n","import { memo } from \"react\";\nimport classnames from \"classnames\";\n\nimport * as Actions from \"../../actionCreators\";\nimport { Action, Thunk } from \"../../types\";\nimport OptionsContextMenu from \"../OptionsContextMenu\";\nimport ContextMenuTarget from \"../ContextMenuTarget\";\nimport { useActionCreator, useTypedSelector } from \"../../hooks\";\nimport * as Selectors from \"../../selectors\";\n\nfunction setFocusDouble(): Action {\n return Actions.setFocus(\"double\");\n}\n\nfunction mouseUp(): Thunk {\n return (dispatch) => {\n dispatch(Actions.toggleDoubleSizeMode());\n dispatch(Actions.unsetFocus());\n };\n}\n\nconst ClutterBar = memo(() => {\n const handleMouseDown = useActionCreator(setFocusDouble);\n const handleMouseUp = useActionCreator(mouseUp);\n const doubled = useTypedSelector(Selectors.getDoubled);\n return (\n
    \n }>\n
    \n \n
    \n
    \n \n
    \n
    \n );\n});\n\nexport default ClutterBar;\n","import { memo } from \"react\";\n\nimport * as Actions from \"../../actionCreators\";\nimport { useActionCreator } from \"../../hooks\";\n\nconst Eject = memo(() => {\n const openMediaFileDialog = useActionCreator(Actions.openMediaFileDialog);\n return
    ;\n});\n\nexport default Eject;\n","import { memo } from \"react\";\nimport classnames from \"classnames\";\n\nimport * as Selectors from \"../../selectors\";\nimport * as Actions from \"../../actionCreators\";\nimport { useActionCreator, useTypedSelector } from \"../../hooks\";\n\nfunction toggleEqualizer() {\n return Actions.toggleWindow(\"equalizer\");\n}\n\nconst EqToggleButton = memo(() => {\n const handleClick = useActionCreator(toggleEqualizer);\n const windowOpen = useTypedSelector(Selectors.getWindowOpen)(\"equalizer\");\n return (\n \n );\n});\n\nexport default EqToggleButton;\n","import { memo } from \"react\";\nimport classnames from \"classnames\";\n\nimport * as Selectors from \"../../selectors\";\nimport * as Actions from \"../../actionCreators\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\nfunction togglePlaylist() {\n return Actions.toggleWindow(\"playlist\");\n}\n\nconst PlaylistToggleButton = memo(() => {\n const selected = useTypedSelector(Selectors.getWindowOpen)(\"playlist\");\n const handleClick = useActionCreator(togglePlaylist);\n return (\n \n );\n});\n\nexport default PlaylistToggleButton;\n","import { memo, Fragment } from \"react\";\nimport Character from \"./Character\";\n\ninterface Props {\n children: string;\n}\n\nconst CharacterString = memo((props: Props) => {\n const text = `${props.children}` || \"\";\n const chars = text.split(\"\");\n return (\n \n {chars.map((character, index) => (\n {character}\n ))}\n \n );\n});\n\nexport default CharacterString;\n","import { memo } from \"react\";\n\nimport CharacterString from \"../CharacterString\";\nimport * as Selectors from \"../../selectors\";\nimport { useTypedSelector } from \"../../hooks\";\n\nconst Kbps = memo(() => {\n const kbps = useTypedSelector(Selectors.getKbps);\n return (\n
    \n {kbps || \"\"}\n
    \n );\n});\n\nexport default Kbps;\n","import { memo } from \"react\";\n\nimport CharacterString from \"../CharacterString\";\nimport * as Selectors from \"../../selectors\";\nimport { useTypedSelector } from \"../../hooks\";\n\nconst Khz = memo(() => {\n const khz = useTypedSelector(Selectors.getKhz);\n return (\n
    \n {khz || \"\"}\n
    \n );\n});\n\nexport default Khz;\n","// Single line text display that can animate and hold multiple registers\n// Knows how to display various modes like tracking, volume, balance, etc.\nimport * as React from \"react\";\nimport CharacterString from \"../CharacterString\";\nimport * as Actions from \"../../actionCreators\";\nimport * as Selectors from \"../../selectors\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\nconst SEPARATOR = \" *** \";\n\nconst CHAR_WIDTH = 5;\nconst MARQUEE_MAX_LENGTH = 31;\n\n// Always positive modulus\nexport const mod = (n: number, m: number): number => ((n % m) + m) % m;\n\nconst isLong = (text: string): boolean => text.length >= MARQUEE_MAX_LENGTH;\n\n// Given text and step, how many pixels should it be shifted?\nexport const stepOffset = (\n text: string,\n step: number,\n pixels: number\n): number => {\n if (!isLong(text)) {\n return 0;\n }\n\n const stepOffsetWidth = step * CHAR_WIDTH; // Steps move one char at a time\n const offset = stepOffsetWidth + pixels;\n const stringLength = (text.length + SEPARATOR.length) * CHAR_WIDTH;\n\n return mod(offset, stringLength);\n};\n\n// Format an int as pixels\nexport const pixelUnits = (pixels: number): string => `${pixels}px`;\n\n// If text is wider than the marquee, it needs to loop\nexport const loopText = (text: string): string =>\n isLong(text)\n ? `${text}${SEPARATOR}${text}`\n : text.padEnd(MARQUEE_MAX_LENGTH, \" \");\n\ninterface UseStepperArgs {\n step: () => void;\n dragging: boolean;\n}\n\n// Call `step` every second, except when dragging. Resume stepping 1 second after dragging ceases.\nfunction useStepper({ step, dragging }: UseStepperArgs): void {\n const [stepping, setStepping] = React.useState(true);\n React.useEffect(() => {\n if (stepping === false) {\n return;\n }\n const stepHandle = setInterval(step, 220);\n return () => clearInterval(stepHandle);\n }, [step, stepping]);\n\n React.useEffect(() => {\n if (dragging) {\n setStepping(false);\n return;\n }\n const steppingTimeout = window.setTimeout(() => {\n setStepping(true);\n }, 1000);\n return () => {\n window.clearTimeout(steppingTimeout);\n };\n }, [dragging]);\n}\n\n// When user calls `handleMouseDown`, and moves the mouse, `dragOffset` will update as they drag.\nfunction useDragX() {\n const [mouseDownX, setMouseDownX] = React.useState(null);\n const [dragOffset, setDragOffset] = React.useState(0);\n\n React.useEffect(() => {\n if (mouseDownX == null) {\n return;\n }\n const xStart = mouseDownX;\n const handleMouseMove = (ee: MouseEvent) => {\n const diff = ee.clientX - xStart;\n setDragOffset(-diff);\n };\n\n // TODO: Use `once` or something instead of this flag nonsense\n let cleanedUp = false;\n const handleMouseUp = () => {\n if (cleanedUp) {\n return;\n }\n document.removeEventListener(\"mousemove\", handleMouseMove);\n document.removeEventListener(\"mouseUp\", handleMouseUp);\n setMouseDownX(null);\n cleanedUp = true;\n };\n\n document.addEventListener(\"mousemove\", handleMouseMove);\n document.addEventListener(\"mouseup\", handleMouseUp);\n\n return handleMouseUp;\n }, [mouseDownX]);\n\n const handleMouseDown = React.useCallback(\n (e: React.MouseEvent): void => {\n setMouseDownX(e.clientX);\n },\n []\n );\n\n return { handleMouseDown, dragOffset, dragging: mouseDownX != null };\n}\n\nconst Marquee = React.memo(() => {\n const text = useTypedSelector(Selectors.getMarqueeText);\n const doubled = useTypedSelector(Selectors.getDoubled);\n const marqueeStep = useTypedSelector(Selectors.getMarqueeStep);\n const stepMarquee = useActionCreator(Actions.stepMarquee);\n const { handleMouseDown, dragOffset, dragging } = useDragX();\n const offset = stepOffset(text, marqueeStep, dragOffset);\n const offsetPixels = pixelUnits(-offset);\n\n useStepper({ step: stepMarquee, dragging });\n\n return (\n \n \n {loopText(text)}\n
    \n
    \n );\n});\n\nexport default Marquee;\n","import { memo } from \"react\";\nimport classnames from \"classnames\";\nimport * as Selectors from \"../../selectors\";\nimport { useTypedSelector } from \"../../hooks\";\n\nconst MonoStereo = memo(() => {\n const channels = useTypedSelector(Selectors.getChannels);\n return (\n
    \n
    \n
    \n
    \n );\n});\n\nexport default MonoStereo;\n","import { memo, useCallback } from \"react\";\n\nimport {\n SEEK_TO_PERCENT_COMPLETE,\n SET_FOCUS,\n UNSET_FOCUS,\n SET_SCRUB_POSITION,\n} from \"../../actionTypes\";\nimport * as Selectors from \"../../selectors\";\nimport { useTypedSelector, useTypedDispatch } from \"../../hooks\";\n\nfunction usePosition() {\n const duration = useTypedSelector(Selectors.getDuration);\n const timeElapsed = useTypedSelector(Selectors.getTimeElapsed);\n const position = duration ? (Math.floor(timeElapsed) / duration) * 100 : 0;\n const scrubPosition = useTypedSelector(Selectors.getUserInputScrubPosition);\n const userInputFocus = useTypedSelector(Selectors.getUserInputFocus);\n\n const displayedPosition =\n userInputFocus === \"position\" ? scrubPosition : position;\n\n return [position, displayedPosition];\n}\n\nconst Position = memo(() => {\n const [position, displayedPosition] = usePosition();\n const dispatch = useTypedDispatch();\n\n const seekToPercentComplete = useCallback(\n (e) => {\n dispatch({\n type: SEEK_TO_PERCENT_COMPLETE,\n percent: Number((e.target as HTMLInputElement).value),\n });\n dispatch({ type: UNSET_FOCUS });\n },\n [dispatch]\n );\n\n const setPosition = useCallback(\n (e) => {\n dispatch({ type: SET_FOCUS, input: \"position\" });\n dispatch({\n type: SET_SCRUB_POSITION,\n position: Number((e.target as HTMLInputElement).value),\n });\n },\n [dispatch]\n );\n\n // In shade mode, the position slider shows up differently depending on if\n // it's near the start, middle or end of its progress\n let className = \"\";\n if (position <= 33) {\n className = \"left\";\n } else if (position >= 66) {\n className = \"right\";\n }\n\n return (\n {} /* React complains without this, can probably rename onInput to onChange */\n }\n onMouseUp={seekToPercentComplete}\n onMouseDown={setPosition}\n title=\"Seeking Bar\"\n />\n );\n});\n\nexport default Position;\n","import { memo } from \"react\";\nimport classnames from \"classnames\";\nimport * as Actions from \"../../actionCreators\";\nimport * as Selectors from \"../../selectors\";\nimport ContextMenuWraper from \"../ContextMenuWrapper\";\nimport { Node } from \"../ContextMenu\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\nconst Repeat = memo(() => {\n const repeat = useTypedSelector(Selectors.getRepeat);\n const handleClick = useActionCreator(Actions.toggleRepeat);\n return (\n (\n \n )}\n >\n \n \n );\n});\n\nexport default Repeat;\n","import { memo } from \"react\";\nimport ClickedDiv from \"../ClickedDiv\";\n\nimport * as Actions from \"../../actionCreators\";\nimport { useActionCreator } from \"../../hooks\";\n\nconst Shade = memo(() => {\n const handleClick = useActionCreator(Actions.toggleMainWindowShadeMode);\n return (\n e.stopPropagation()}\n title=\"Toggle Windowshade Mode\"\n />\n );\n});\n\nexport default Shade;\n","import { memo } from \"react\";\nimport ClickedDiv from \"../ClickedDiv\";\nimport * as Actions from \"../../actionCreators\";\nimport { useActionCreator } from \"../../hooks\";\n\nconst Minimize = memo(() => {\n const minimize = useActionCreator(Actions.minimize);\n return ;\n});\n\nexport default Minimize;\n","import { memo } from \"react\";\nimport classnames from \"classnames\";\nimport * as Actions from \"../../actionCreators\";\nimport * as Selectors from \"../../selectors\";\nimport ContextMenuWraper from \"../ContextMenuWrapper\";\nimport { Node } from \"../ContextMenu\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\nconst Shuffle = memo(() => {\n const shuffle = useTypedSelector(Selectors.getShuffle);\n const handleClick = useActionCreator(Actions.toggleShuffle);\n return (\n (\n \n )}\n >\n \n \n );\n});\n\nexport default Shuffle;\n","import { memo } from \"react\";\nimport * as Utils from \"../../utils\";\n\nimport * as Actions from \"../../actionCreators\";\nimport * as Selectors from \"../../selectors\";\nimport { TIME_MODE } from \"../../constants\";\nimport { useActionCreator, useTypedSelector } from \"../../hooks\";\n\nconst Time = memo(() => {\n const toggleTimeMode = useActionCreator(Actions.toggleTimeMode);\n const timeElapsed = useTypedSelector(Selectors.getTimeElapsed);\n const duration = useTypedSelector(Selectors.getDuration) || 0;\n const timeMode = useTypedSelector(Selectors.getTimeMode);\n const seconds =\n timeMode === TIME_MODE.ELAPSED ? timeElapsed : duration - timeElapsed;\n\n const timeObj = Utils.getTimeObj(seconds);\n return (\n
    \n {timeMode === TIME_MODE.REMAINING &&
    }\n \n \n \n \n
    \n );\n});\n\nexport default Time;\n","import * as React from \"react\";\nimport * as Actions from \"../actionCreators\";\nimport * as Selectors from \"../selectors\";\nimport { useTypedSelector, useActionCreator } from \"../hooks\";\n\ninterface Props {\n id?: string;\n style?: React.CSSProperties;\n className?: string;\n}\n\nexport default function Volume({ id, style, className }: Props) {\n const volume = useTypedSelector(Selectors.getVolume);\n const setFocus = useActionCreator(Actions.setFocus);\n const unsetFocus = useActionCreator(Actions.unsetFocus);\n const setVolume = useActionCreator(Actions.setVolume);\n\n return (\n setVolume(Number(e.target.value))}\n onMouseDown={() => setFocus(\"volume\")}\n onMouseUp={unsetFocus}\n title=\"Volume Bar\"\n />\n );\n}\n","import { memo } from \"react\";\nimport * as Selectors from \"../../selectors\";\n\nimport Volume from \"../Volume\";\nimport { useTypedSelector } from \"../../hooks\";\n\nconst MainVolume = memo(() => {\n const volume = useTypedSelector(Selectors.getVolume);\n const percent = volume / 100;\n const sprite = Math.round(percent * 28);\n const offset = (sprite - 1) * 15;\n\n const style = {\n backgroundPosition: `0 -${offset}px`,\n };\n return (\n
    \n \n
    \n );\n});\n\nexport default MainVolume;\n","import * as React from \"react\";\nimport classnames from \"classnames\";\nimport { WINDOWS, MEDIA_STATUS, LOAD_STYLE } from \"../../constants\";\nimport * as Actions from \"../../actionCreators\";\n\nimport DropTarget from \"../DropTarget\";\nimport MiniTime from \"../MiniTime\";\n\nimport ClickedDiv from \"../ClickedDiv\";\nimport ContextMenuTarget from \"../ContextMenuTarget\";\nimport Visualizer from \"../Visualizer\";\nimport ActionButtons from \"./ActionButtons\";\nimport MainBalance from \"./MainBalance\";\nimport Close from \"./Close\";\nimport ClutterBar from \"./ClutterBar\";\nimport MainContextMenu from \"./MainContextMenu\";\nimport Eject from \"./Eject\";\nimport EqToggleButton from \"./EqToggleButton\";\nimport PlaylistToggleButton from \"./PlaylistToggleButton\";\nimport Kbps from \"./Kbps\";\nimport Khz from \"./Khz\";\nimport Marquee from \"./Marquee\";\nimport MonoStereo from \"./MonoStereo\";\nimport Position from \"./Position\";\nimport Repeat from \"./Repeat\";\nimport Shade from \"./Shade\";\nimport Minimize from \"./Minimize\";\nimport Shuffle from \"./Shuffle\";\nimport Time from \"./Time\";\nimport MainVolume from \"./MainVolume\";\nimport * as Selectors from \"../../selectors\";\n\nimport \"../../../css/main-window.css\";\nimport { FilePicker } from \"../../types\";\nimport FocusTarget from \"../FocusTarget\";\nimport { useActionCreator, useTypedSelector } from \"../../hooks\";\n\ninterface Props {\n analyser: AnalyserNode;\n filePickers: FilePicker[];\n}\n\nfunction loadMediaAndPlay(e: React.DragEvent) {\n return Actions.loadMedia(e, LOAD_STYLE.PLAY);\n}\n\nconst MainWindow = React.memo(({ analyser, filePickers }: Props) => {\n const mainShade = useTypedSelector(Selectors.getWindowShade)(\"main\");\n const status = useTypedSelector(Selectors.getMediaStatus);\n const focused = useTypedSelector(Selectors.getFocusedWindow);\n const loading = useTypedSelector(Selectors.getLoading);\n const doubled = useTypedSelector(Selectors.getDoubled);\n const llama = useTypedSelector(Selectors.getLlamaMode);\n const working = useTypedSelector(Selectors.getWorking);\n\n const className = classnames({\n window: true,\n play: status === MEDIA_STATUS.PLAYING,\n stop: status === MEDIA_STATUS.STOPPED,\n pause: status === MEDIA_STATUS.PAUSED,\n selected: focused === WINDOWS.MAIN,\n shade: mainShade,\n draggable: true,\n loading,\n doubled,\n llama,\n });\n\n const toggleMainWindowShadeMode = useActionCreator(\n Actions.toggleMainWindowShadeMode\n );\n const scrollVolume = useActionCreator(Actions.scrollVolume);\n const loadMedia = useActionCreator(loadMediaAndPlay);\n\n return (\n \n \n \n }\n >\n \n \n {mainShade && }\n \n \n \n
    \n
    \n \n {!working &&
    }\n \n
    \n \n
    \n \n \n \n \n \n \n \n
    \n \n \n
    \n \n \n \n
    \n \n \n
    \n \n \n \n );\n});\n\nexport default MainWindow;\n","import ResizeTarget from \"../ResizeTarget\";\nimport * as Actions from \"../../actionCreators\";\nimport * as Selectors from \"../../selectors\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\ntype Props = {\n widthOnly?: boolean;\n};\n\nfunction PlaylistResizeTarget({ widthOnly }: Props) {\n const windowSize = useTypedSelector(Selectors.getWindowSize);\n const setWindowSize = useActionCreator(Actions.setWindowSize);\n const currentSize = windowSize(\"playlist\");\n\n return (\n {\n setWindowSize(\"playlist\", size);\n }}\n widthOnly={widthOnly}\n />\n );\n}\nexport default PlaylistResizeTarget;\n","import { useMemo } from \"react\";\nimport classnames from \"classnames\";\nimport { getTimeStr } from \"../../utils\";\nimport * as Selectors from \"../../selectors\";\n\nimport {\n WINDOWS,\n WINDOW_RESIZE_SEGMENT_WIDTH,\n WINDOW_WIDTH,\n CHARACTER_WIDTH,\n UTF8_ELLIPSIS,\n} from \"../../constants\";\nimport * as Actions from \"../../actionCreators\";\nimport CharacterString from \"../CharacterString\";\nimport PlaylistResizeTarget from \"./PlaylistResizeTarget\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\nfunction PlaylistShade() {\n const focused = useTypedSelector(Selectors.getFocusedWindow);\n const getWindowSize = useTypedSelector(Selectors.getWindowSize);\n const playlistSize = getWindowSize(\"playlist\");\n const duration = useTypedSelector(Selectors.getDuration);\n const name = useTypedSelector(Selectors.getMinimalMediaText);\n\n const closeWindow = useActionCreator(Actions.closeWindow);\n const toggleShade = useActionCreator(Actions.togglePlaylistShadeMode);\n const focusWindow = useActionCreator(Actions.setFocusedWindow);\n\n const addedWidth = playlistSize[0] * WINDOW_RESIZE_SEGMENT_WIDTH;\n\n const trimmedName = useMemo(() => {\n if (name == null) {\n return \"[No file]\";\n }\n\n const MIN_NAME_WIDTH = 205;\n\n const nameLength = (MIN_NAME_WIDTH + addedWidth) / CHARACTER_WIDTH;\n return name.length > nameLength\n ? name.slice(0, nameLength - 1) + UTF8_ELLIPSIS\n : name;\n }, [addedWidth, name]);\n\n const time = useMemo(() => {\n return name == null ? \"\" : getTimeStr(duration);\n }, [duration, name]);\n\n return (\n focusWindow(\"playlist\")}\n onDoubleClick={toggleShade}\n >\n
    \n
    \n
    \n {trimmedName}\n
    \n
    \n {time}\n
    \n \n
    \n closeWindow(\"playlist\")}\n />\n
    \n
    \n
    \n );\n}\n\nexport default PlaylistShade;\n","import { memo, ReactNode } from \"react\";\nimport classnames from \"classnames\";\nimport { useIsHovered } from \"../../hooks\";\n\ninterface Props {\n children: ReactNode;\n}\n\n// We implement hover ourselves, because we hate ourselves and https://stackoverflow.com/a/13259049/1263117\nfunction PlaylistMenuEntry({ children }: Props) {\n const { ref, hover } = useIsHovered();\n return (\n
  • \n {children}\n
  • \n );\n}\n\nexport default memo(PlaylistMenuEntry);\n","import { Children, memo, useState, ReactNode, useCallback } from \"react\";\nimport classnames from \"classnames\";\nimport { useOnClickAway } from \"../../hooks\";\n\nimport PlaylistMenuEnry from \"./PlaylistMenuEntry\";\n\ninterface Props {\n id: string;\n children: ReactNode | Array;\n}\n\ninterface State {\n selected: boolean;\n}\n\nfunction PlaylistMenu(props: Props) {\n const [selected, setSelected] = useState(false);\n\n const [ref, setRef] = useState(null);\n\n const callback = useCallback(() => {\n // If we've clicked on a Context Menu spawed inside this menu, it will\n // register as an external click. However, hiding the menu will remove\n // the Context Menu from the DOM. Therefore, we wait until the next\n // event loop to actually hide ourselves.\n setTimeout(() => {\n // Close the menu\n setSelected(false);\n }, 0);\n }, []);\n\n useOnClickAway(ref, selected ? callback : null);\n\n return (\n setSelected((selected_) => !selected_)}\n >\n
    \n {selected && (\n
      \n {Children.map(props.children, (child, i) => (\n {child}\n ))}\n
    \n )}\n
    \n );\n}\nexport default memo(PlaylistMenu);\n","import * as Selectors from \"../../selectors\";\nimport * as Actions from \"../../actionCreators\";\nimport PlaylistMenu from \"./PlaylistMenu\";\n\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\nconst AddMenu = () => {\n const nextIndex = useTypedSelector(Selectors.getTrackCount);\n const addDirAtIndex = useActionCreator(Actions.addDirAtIndex);\n const addFilesAtIndex = useActionCreator(Actions.addFilesAtIndex);\n const addFilesFromUrl = useActionCreator(Actions.addFilesFromUrl);\n return (\n \n
    addFilesFromUrl(nextIndex)} />\n
    addDirAtIndex(nextIndex)} />\n
    addFilesAtIndex(nextIndex)} />\n \n );\n};\n\nexport default AddMenu;\n","import * as Actions from \"../../actionCreators\";\nimport PlaylistMenu from \"./PlaylistMenu\";\nimport { useActionCreator } from \"../../hooks\";\n\n/* eslint-disable no-alert */\n\nconst RemoveMenu = () => {\n const removeSelected = useActionCreator(Actions.removeSelectedTracks);\n const removeAll = useActionCreator(Actions.removeAllTracks);\n const crop = useActionCreator(Actions.cropPlaylist);\n return (\n \n alert(\"Not supported in Webamp\")}\n />\n
    \n
    \n
    \n \n );\n};\n\nexport default RemoveMenu;\n","import PlaylistMenu from \"./PlaylistMenu\";\nimport * as Actions from \"../../actionCreators\";\nimport { useActionCreator } from \"../../hooks\";\n\nexport default function SelectionMenu() {\n const invert = useActionCreator(Actions.invertSelection);\n const zero = useActionCreator(Actions.selectZero);\n const all = useActionCreator(Actions.selectAll);\n return (\n \n
    \n
    \n
    \n \n );\n}\n","import * as Actions from \"../../actionCreators\";\n\nimport { Hr, Node } from \"../ContextMenu\";\nimport ContextMenuTarget from \"../ContextMenuTarget\";\nimport { useActionCreator } from \"../../hooks\";\n\ninterface DispatchProps {\n sortListByTitle: () => void;\n reverseList: () => void;\n randomizeList: () => void;\n}\n\n/* eslint-disable no-alert */\n/* TODO: This should really be kitty-corner to the upper right hand corner of the MiscMenu */\nexport default function SortContextMenu() {\n const reverseList = useActionCreator(Actions.reverseList);\n const randomizeList = useActionCreator(Actions.randomizeList);\n const sortListByTitle = useActionCreator(Actions.sortListByTitle);\n return (\n (\n <>\n \n
    \n \n \n \n )}\n >\n
    \n \n );\n}\n","import { Node } from \"../ContextMenu\";\nimport ContextMenuTarget from \"../ContextMenuTarget\";\nimport * as Actions from \"../../actionCreators\";\nimport { useActionCreator } from \"../../hooks\";\n\nconst MiscOptionsContextMenu = () => {\n const downloadHtmlPlaylist = useActionCreator(Actions.downloadHtmlPlaylist);\n return (\n (\n \n )}\n >\n
    \n \n );\n};\n\nexport default MiscOptionsContextMenu;\n","import PlaylistMenu from \"./PlaylistMenu\";\nimport SortContextMenu from \"./SortContextMenu\";\nimport MiscOptionsContextMenu from \"./MiscOptionsContextMenu\";\n\nconst MiscMenu = () => (\n \n
    e.stopPropagation()}>\n \n
    \n alert(\"Not supported in Webamp\")}\n />\n\n
    e.stopPropagation()}>\n \n
    \n
    \n);\n\nexport default MiscMenu;\n","import * as Actions from \"../../actionCreators\";\nimport PlaylistMenu from \"./PlaylistMenu\";\nimport { useActionCreator } from \"../../hooks\";\n\n/* eslint-disable no-alert */\nexport default function ListMenu() {\n const removeAllTracks = useActionCreator(Actions.removeAllTracks);\n const addFilesFromList = useActionCreator(Actions.addFilesFromList);\n const saveFilesToList = useActionCreator(Actions.saveFilesToList);\n return (\n \n
    \n
    \n
    \n \n );\n}\n","import { useMemo } from \"react\";\n\nimport CharacterString from \"../CharacterString\";\nimport * as Actions from \"../../selectors\";\nimport { useTypedSelector } from \"../../hooks\";\n\n// While all the browsers I care about support String.prototype.padEnd,\n// Not all node versions do, and I want tests to pass in Jest...\n// Sigh.\nfunction rightPad(str: string, len: number, fillChar: string): string {\n while (str.length < len) {\n str += fillChar;\n }\n return str;\n}\n\nconst RunningTimeDisplay = () => {\n const runningTimeMessage = useTypedSelector(Actions.getRunningTimeMessage);\n const text = useMemo(() => rightPad(runningTimeMessage, 18, \" \"), [\n runningTimeMessage,\n ]);\n return (\n
    \n {/* This div is probably not strictly needed */}\n
    \n {text}\n
    \n
    \n );\n};\n\nexport default RunningTimeDisplay;\n","import { Fragment } from \"react\";\n\nimport * as Actions from \"../../actionCreators\";\n\nimport MiniTime from \"../MiniTime\";\nimport RunningTimeDisplay from \"./RunningTimeDisplay\";\nimport { useActionCreator } from \"../../hooks\";\n\nconst PlaylistWindow = () => {\n const play = useActionCreator(Actions.play);\n const pause = useActionCreator(Actions.pause);\n const stop = useActionCreator(Actions.stop);\n const openMediaFileDialog = useActionCreator(Actions.openMediaFileDialog);\n const next = useActionCreator(Actions.next);\n const previous = useActionCreator(Actions.previous);\n return (\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n );\n};\nexport default PlaylistWindow;\n","import { useCallback, ReactNode } from \"react\";\nimport classnames from \"classnames\";\nimport {\n CLICKED_TRACK,\n CTRL_CLICKED_TRACK,\n SHIFT_CLICKED_TRACK,\n} from \"../../actionTypes\";\nimport * as Selectors from \"../../selectors\";\nimport * as Actions from \"../../actionCreators\";\nimport {\n useTypedSelector,\n useActionCreator,\n useTypedDispatch,\n} from \"../../hooks\";\n\ninterface Props {\n id: number;\n index: number;\n handleMoveClick: (e: React.MouseEvent) => void;\n children: ReactNode;\n}\n\nfunction TrackCell({ children, handleMoveClick, index, id }: Props) {\n const skinPlaylistStyle = useTypedSelector(Selectors.getSkinPlaylistStyle);\n const selectedTrackIds = useTypedSelector(Selectors.getSelectedTrackIds);\n const currentTrackId = useTypedSelector(Selectors.getCurrentTrackId);\n const selected = selectedTrackIds.has(id);\n const current = currentTrackId === id;\n\n const dispatch = useTypedDispatch();\n const playTrackNow = useActionCreator(Actions.playTrackNow);\n\n const onMouseDown = useCallback(\n (e: React.MouseEvent) => {\n if (e.shiftKey) {\n e.preventDefault();\n dispatch({ type: SHIFT_CLICKED_TRACK, index });\n return;\n } else if (e.metaKey || e.ctrlKey) {\n e.preventDefault();\n dispatch({ type: CTRL_CLICKED_TRACK, index });\n return;\n }\n\n if (!selected) {\n dispatch({ type: CLICKED_TRACK, index });\n }\n\n handleMoveClick(e);\n },\n [dispatch, handleMoveClick, index, selected]\n );\n\n const style: React.CSSProperties = {\n backgroundColor: selected ? skinPlaylistStyle.selectedbg : undefined,\n color: current ? skinPlaylistStyle.current : undefined,\n };\n return (\n e.stopPropagation()}\n onMouseDown={onMouseDown}\n onContextMenu={(e) => e.preventDefault()}\n onDoubleClick={() => playTrackNow(id)}\n >\n {children}\n
    \n );\n}\n\nexport default TrackCell;\n","import * as Selectors from \"../../selectors\";\nimport { useTypedSelector } from \"../../hooks\";\n\ninterface Props {\n id: number;\n paddedTrackNumber: string;\n}\n\nconst TrackTitle = ({ id, paddedTrackNumber }: Props) => {\n const title = useTypedSelector(Selectors.getTrackDisplayName)(id);\n return (\n \n {paddedTrackNumber}. {title}\n \n );\n};\n\nexport default TrackTitle;\n","import { useState, useEffect } from \"react\";\n\nimport { getTimeStr } from \"../../utils\";\nimport * as Selectors from \"../../selectors\";\nimport { TRACK_HEIGHT } from \"../../constants\";\nimport * as Actions from \"../../actionCreators\";\nimport TrackCell from \"./TrackCell\";\nimport TrackTitle from \"./TrackTitle\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\nfunction getNumberLength(number: number): number {\n return number.toString().length;\n}\n\nfunction TrackList() {\n const offset = useTypedSelector(Selectors.getScrollOffset);\n const trackIds = useTypedSelector(Selectors.getVisibleTrackIds);\n const tracks = useTypedSelector(Selectors.getTracks);\n const numberOfTracks = useTypedSelector(Selectors.getNumberOfTracks);\n\n const selectZero = useActionCreator(Actions.selectZero);\n const dragSelected = useActionCreator(Actions.dragSelected);\n const scrollPlaylistByDelta = useActionCreator(Actions.scrollPlaylistByDelta);\n\n const [node, setNode] = useState(null);\n const [moving, setMoving] = useState(false);\n const [mouseStartY, setMouseStartY] = useState(null);\n\n const _handleMoveClick = (e: React.MouseEvent) => {\n setMoving(true);\n setMouseStartY(e.clientY);\n };\n\n useEffect(() => {\n if (node == null || mouseStartY == null || moving === false) {\n return;\n }\n const { top, bottom, left, right } = node.getBoundingClientRect();\n let lastDiff = 0;\n const handleMouseMove = (ee: MouseEvent) => {\n const { clientY: y, clientX: x } = ee;\n if (y < top || y > bottom || x < left || x > right) {\n // Mouse is outside the track list\n return;\n }\n const proposedDiff = Math.floor((y - mouseStartY) / TRACK_HEIGHT);\n if (proposedDiff !== lastDiff) {\n const diffDiff = proposedDiff - lastDiff;\n dragSelected(diffDiff);\n lastDiff = proposedDiff;\n }\n };\n\n const handleMouseUp = () => setMoving(false);\n window.addEventListener(\"mouseup\", handleMouseUp);\n window.addEventListener(\"mousemove\", handleMouseMove);\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n };\n // I'm not 100% sure how well this would work if it rebound mid drag, so\n // we'll just pretend it's okay that we have stale values in there.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [moving]);\n\n function _renderTracks(\n format: (id: number, i: number) => JSX.Element | string\n ) {\n return trackIds.map((id, i) => (\n \n {format(id, i)}\n \n ));\n }\n\n const maxTrackNumberLength = getNumberLength(numberOfTracks);\n const paddedTrackNumForIndex = (i: number) =>\n (i + 1 + offset).toString().padStart(maxTrackNumberLength, \"\\u00A0\");\n return (\n \n
    \n {_renderTracks((id, i) => (\n \n ))}\n
    \n
    \n {_renderTracks((id) => getTimeStr(tracks[id].duration))}\n
    \n
    \n );\n}\n\nexport default TrackList;\n","import { memo } from \"react\";\n\n// Here we import the rc-slider class just to get it's type.\n// We expect the Typescript compiler to not actually include this in the bundle.\nimport RcSlider from \"rc-slider\";\n// @ts-ignore\nimport SliderComponent from \"rc-slider/lib/Slider\";\n\nimport {\n getAllTracksAreVisible,\n getPlaylistScrollPosition,\n} from \"../../selectors\";\nimport * as Actions from \"../../actionCreators\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\n// Here we inform TypeScript to use the default export's type for our partial import.\nconst Slider = SliderComponent as typeof RcSlider;\n\nconst Handle = () =>
    ;\n\nconst ScrollBar = () => {\n const playlistScrollPosition = useTypedSelector(getPlaylistScrollPosition);\n const allTracksAreVisible = useTypedSelector(getAllTracksAreVisible);\n const setPlaylistScrollPosition = useActionCreator((position: number) =>\n Actions.setPlaylistScrollPosition(100 - position)\n );\n return (\n \n );\n};\n\nexport default memo(ScrollBar);\n","import { useCallback } from \"react\";\nimport classnames from \"classnames\";\n\nimport { WINDOWS, TRACK_HEIGHT, LOAD_STYLE } from \"../../constants\";\nimport * as Actions from \"../../actionCreators\";\nimport * as Selectors from \"../../selectors\";\n\nimport { clamp } from \"../../utils\";\nimport DropTarget from \"../DropTarget\";\nimport Visualizer from \"../Visualizer\";\nimport PlaylistShade from \"./PlaylistShade\";\nimport AddMenu from \"./AddMenu\";\nimport RemoveMenu from \"./RemoveMenu\";\nimport SelectionMenu from \"./SelectionMenu\";\nimport MiscMenu from \"./MiscMenu\";\nimport ListMenu from \"./ListMenu\";\nimport PlaylistResizeTarget from \"./PlaylistResizeTarget\";\nimport PlaylistActionArea from \"./PlaylistActionArea\";\nimport TrackList from \"./TrackList\";\nimport ScrollBar from \"./ScrollBar\";\n\nimport \"../../../css/playlist-window.css\";\nimport { AppState } from \"../../types\";\nimport FocusTarget from \"../FocusTarget\";\nimport { useActionCreator, useTypedSelector } from \"../../hooks\";\n\ninterface Props {\n analyser: AnalyserNode;\n}\n\nfunction _maxTrackIndex(state: AppState) {\n return state.playlist.trackOrder.length - 1;\n}\n\nfunction PlaylistWindow({ analyser }: Props) {\n const offset = useTypedSelector(Selectors.getScrollOffset);\n const getWindowSize = useTypedSelector(Selectors.getWindowSize);\n const selectedWindow = useTypedSelector(Selectors.getFocusedWindow);\n const getWindowShade = useTypedSelector(Selectors.getWindowShade);\n const getWindowOpen = useTypedSelector(Selectors.getWindowOpen);\n const maxTrackIndex = useTypedSelector(_maxTrackIndex);\n const skinPlaylistStyle = useTypedSelector(Selectors.getSkinPlaylistStyle);\n const getWindowPixelSize = useTypedSelector(Selectors.getWindowPixelSize);\n\n const selected = selectedWindow === WINDOWS.PLAYLIST;\n const playlistShade = Boolean(getWindowShade(WINDOWS.PLAYLIST));\n const playlistSize = getWindowSize(WINDOWS.PLAYLIST);\n const playlistWindowPixelSize = getWindowPixelSize(WINDOWS.PLAYLIST);\n\n const close = useActionCreator(Actions.closeWindow);\n const toggleShade = useActionCreator(Actions.togglePlaylistShadeMode);\n const scrollUpFourTracks = useActionCreator(Actions.scrollUpFourTracks);\n const scrollDownFourTracks = useActionCreator(Actions.scrollDownFourTracks);\n const scrollVolume = useActionCreator(Actions.scrollVolume);\n const loadMedia = useActionCreator(Actions.loadMedia);\n\n const showVisualizer = playlistSize[0] > 2;\n const activateVisualizer = !getWindowOpen(WINDOWS.MAIN);\n\n const handleDrop = useCallback(\n (\n e: React.DragEvent,\n targetCoords: { x: number; y: number }\n ) => {\n const top = e.clientY - targetCoords.y;\n const atIndex = clamp(\n offset + Math.round((top - 23) / TRACK_HEIGHT),\n 0,\n maxTrackIndex + 1\n );\n loadMedia(e, LOAD_STYLE.NONE, atIndex);\n },\n [loadMedia, maxTrackIndex, offset]\n );\n\n if (playlistShade) {\n return ;\n }\n\n const style = {\n color: skinPlaylistStyle.normal,\n backgroundColor: skinPlaylistStyle.normalbg,\n fontFamily: `${skinPlaylistStyle.font}, Arial, sans-serif`,\n height: `${playlistWindowPixelSize.height}px`,\n width: `${playlistWindowPixelSize.width}px`,\n };\n\n const classes = classnames(\"window\", \"draggable\", { selected });\n\n const showSpacers = playlistSize[0] % 2 === 0;\n\n return (\n \n \n
    \n
    \n {showSpacers && (\n
    \n )}\n
    \n
    \n {showSpacers && (\n
    \n )}\n
    \n
    \n
    \n close(WINDOWS.PLAYLIST)}\n />\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n {showVisualizer && (\n
    \n {activateVisualizer && (\n
    \n \n
    \n )}\n
    \n )}\n \n \n
    \n \n \n
    \n
    \n \n \n );\n}\n\nexport default PlaylistWindow;\n","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\n/* eslint-disable react/prop-types */\nimport React from 'react';\n\nvar Track = function Track(props) {\n var _ref, _ref2;\n\n var className = props.className,\n included = props.included,\n vertical = props.vertical,\n offset = props.offset,\n length = props.length,\n style = props.style,\n reverse = props.reverse;\n\n var positonStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', offset + '%'), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, 'height', length + '%'), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', offset + '%'), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, 'width', length + '%'), _ref2);\n\n var elStyle = _extends({}, style, positonStyle);\n return included ? React.createElement('div', { className: className, style: elStyle }) : null;\n};\n\nexport default Track;","import addDOMEventListener from 'add-dom-event-listener';\nimport ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n return addDOMEventListener(target, eventType, callback, option);\n}","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport warning from 'warning';\n\nvar calcPoints = function calcPoints(vertical, marks, dots, step, min, max) {\n warning(dots ? step > 0 : true, '`Slider[step]` should be a positive number in order to make Slider[dots] work.');\n var points = Object.keys(marks).map(parseFloat).sort(function (a, b) {\n return a - b;\n });\n if (dots && step) {\n for (var i = min; i <= max; i += step) {\n if (points.indexOf(i) === -1) {\n points.push(i);\n }\n }\n }\n return points;\n};\n\nvar Steps = function Steps(_ref) {\n var prefixCls = _ref.prefixCls,\n vertical = _ref.vertical,\n reverse = _ref.reverse,\n marks = _ref.marks,\n dots = _ref.dots,\n step = _ref.step,\n included = _ref.included,\n lowerBound = _ref.lowerBound,\n upperBound = _ref.upperBound,\n max = _ref.max,\n min = _ref.min,\n dotStyle = _ref.dotStyle,\n activeDotStyle = _ref.activeDotStyle;\n\n var range = max - min;\n var elements = calcPoints(vertical, marks, dots, step, min, max).map(function (point) {\n var _classNames;\n\n var offset = Math.abs(point - min) / range * 100 + '%';\n\n var isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var style = vertical ? _extends({}, dotStyle, _defineProperty({}, reverse ? 'top' : 'bottom', offset)) : _extends({}, dotStyle, _defineProperty({}, reverse ? 'right' : 'left', offset));\n if (isActived) {\n style = _extends({}, style, activeDotStyle);\n }\n\n var pointClassName = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls + '-dot', true), _defineProperty(_classNames, prefixCls + '-dot-active', isActived), _defineProperty(_classNames, prefixCls + '-dot-reverse', reverse), _classNames));\n\n return React.createElement('span', { className: pointClassName, style: style, key: point });\n });\n\n return React.createElement(\n 'div',\n { className: prefixCls + '-step' },\n elements\n );\n};\n\nSteps.propTypes = {\n prefixCls: PropTypes.string,\n activeDotStyle: PropTypes.object,\n dotStyle: PropTypes.object,\n min: PropTypes.number,\n max: PropTypes.number,\n upperBound: PropTypes.number,\n lowerBound: PropTypes.number,\n included: PropTypes.bool,\n dots: PropTypes.bool,\n step: PropTypes.number,\n marks: PropTypes.object,\n vertical: PropTypes.bool,\n reverse: PropTypes.bool\n};\n\nexport default Steps;","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nvar Marks = function Marks(_ref) {\n var className = _ref.className,\n vertical = _ref.vertical,\n reverse = _ref.reverse,\n marks = _ref.marks,\n included = _ref.included,\n upperBound = _ref.upperBound,\n lowerBound = _ref.lowerBound,\n max = _ref.max,\n min = _ref.min,\n onClickLabel = _ref.onClickLabel;\n\n var marksKeys = Object.keys(marks);\n\n var range = max - min;\n var elements = marksKeys.map(parseFloat).sort(function (a, b) {\n return a - b;\n }).map(function (point) {\n var _classNames;\n\n var markPoint = marks[point];\n var markPointIsObject = typeof markPoint === 'object' && !React.isValidElement(markPoint);\n var markLabel = markPointIsObject ? markPoint.label : markPoint;\n if (!markLabel && markLabel !== 0) {\n return null;\n }\n\n var isActive = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var markClassName = classNames((_classNames = {}, _defineProperty(_classNames, className + '-text', true), _defineProperty(_classNames, className + '-text-active', isActive), _classNames));\n\n var bottomStyle = _defineProperty({\n marginBottom: '-50%'\n }, reverse ? 'top' : 'bottom', (point - min) / range * 100 + '%');\n\n var leftStyle = _defineProperty({\n transform: 'translateX(-50%)',\n msTransform: 'translateX(-50%)'\n }, reverse ? 'right' : 'left', reverse ? (point - min / 4) / range * 100 + '%' : (point - min) / range * 100 + '%');\n\n var style = vertical ? bottomStyle : leftStyle;\n var markStyle = markPointIsObject ? _extends({}, style, markPoint.style) : style;\n return React.createElement(\n 'span',\n {\n className: markClassName,\n style: markStyle,\n key: point,\n onMouseDown: function onMouseDown(e) {\n return onClickLabel(e, point);\n },\n onTouchStart: function onTouchStart(e) {\n return onClickLabel(e, point);\n }\n },\n markLabel\n );\n });\n\n return React.createElement(\n 'div',\n { className: className },\n elements\n );\n};\n\nMarks.propTypes = {\n className: PropTypes.string,\n vertical: PropTypes.bool,\n reverse: PropTypes.bool,\n marks: PropTypes.object,\n included: PropTypes.bool,\n upperBound: PropTypes.number,\n lowerBound: PropTypes.number,\n max: PropTypes.number,\n min: PropTypes.number,\n onClickLabel: PropTypes.func\n};\n\nexport default Marks;","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport addEventListener from 'rc-util/es/Dom/addEventListener';\n\nvar Handle = function (_React$Component) {\n _inherits(Handle, _React$Component);\n\n function Handle() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Handle);\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 = _possibleConstructorReturn(this, (_ref = Handle.__proto__ || Object.getPrototypeOf(Handle)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n clickFocused: false\n }, _this.setHandleRef = function (node) {\n _this.handle = node;\n }, _this.handleMouseUp = function () {\n if (document.activeElement === _this.handle) {\n _this.setClickFocus(true);\n }\n }, _this.handleMouseDown = function () {\n // fix https://github.com/ant-design/ant-design/issues/15324\n _this.focus();\n }, _this.handleBlur = function () {\n _this.setClickFocus(false);\n }, _this.handleKeyDown = function () {\n _this.setClickFocus(false);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Handle, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // mouseup won't trigger if mouse moved out of handle,\n // so we listen on document here.\n this.onMouseUpListener = addEventListener(document, 'mouseup', this.handleMouseUp);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.onMouseUpListener) {\n this.onMouseUpListener.remove();\n }\n }\n }, {\n key: 'setClickFocus',\n value: function setClickFocus(focused) {\n this.setState({ clickFocused: focused });\n }\n }, {\n key: 'clickFocus',\n value: function clickFocus() {\n this.setClickFocus(true);\n this.focus();\n }\n }, {\n key: 'focus',\n value: function focus() {\n this.handle.focus();\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.handle.blur();\n }\n }, {\n key: 'render',\n value: function render() {\n var _ref2, _ref3;\n\n var _props = this.props,\n prefixCls = _props.prefixCls,\n vertical = _props.vertical,\n reverse = _props.reverse,\n offset = _props.offset,\n style = _props.style,\n disabled = _props.disabled,\n min = _props.min,\n max = _props.max,\n value = _props.value,\n tabIndex = _props.tabIndex,\n restProps = _objectWithoutProperties(_props, ['prefixCls', 'vertical', 'reverse', 'offset', 'style', 'disabled', 'min', 'max', 'value', 'tabIndex']);\n\n var className = classNames(this.props.className, _defineProperty({}, prefixCls + '-handle-click-focused', this.state.clickFocused));\n var positionStyle = vertical ? (_ref2 = {}, _defineProperty(_ref2, reverse ? 'top' : 'bottom', offset + '%'), _defineProperty(_ref2, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref2, 'transform', 'translateY(+50%)'), _ref2) : (_ref3 = {}, _defineProperty(_ref3, reverse ? 'right' : 'left', offset + '%'), _defineProperty(_ref3, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref3, 'transform', 'translateX(' + (reverse ? '+' : '-') + '50%)'), _ref3);\n var elStyle = _extends({}, style, positionStyle);\n\n var _tabIndex = tabIndex || 0;\n if (disabled || tabIndex === null) {\n _tabIndex = null;\n }\n\n return React.createElement('div', _extends({\n ref: this.setHandleRef,\n tabIndex: _tabIndex\n }, restProps, {\n className: className,\n style: elStyle,\n onBlur: this.handleBlur,\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleMouseDown\n\n // aria attribute\n , role: 'slider',\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuenow': value,\n 'aria-disabled': !!disabled\n }));\n }\n }]);\n\n return Handle;\n}(React.Component);\n\nexport default Handle;\n\n\nHandle.propTypes = {\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n vertical: PropTypes.bool,\n offset: PropTypes.number,\n style: PropTypes.object,\n disabled: PropTypes.bool,\n min: PropTypes.number,\n max: PropTypes.number,\n value: PropTypes.number,\n tabIndex: PropTypes.number,\n reverse: PropTypes.bool\n};","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n\n /**\n * TAB\n */\n TAB: 9,\n\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n\n /**\n * ENTER\n */\n ENTER: 13,\n\n /**\n * SHIFT\n */\n SHIFT: 16,\n\n /**\n * CTRL\n */\n CTRL: 17,\n\n /**\n * ALT\n */\n ALT: 18,\n\n /**\n * PAUSE\n */\n PAUSE: 19,\n\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n\n /**\n * ESC\n */\n ESC: 27,\n\n /**\n * SPACE\n */\n SPACE: 32,\n\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n\n /**\n * END\n */\n END: 35,\n\n /**\n * HOME\n */\n HOME: 36,\n\n /**\n * LEFT\n */\n LEFT: 37,\n\n /**\n * UP\n */\n UP: 38,\n\n /**\n * RIGHT\n */\n RIGHT: 39,\n\n /**\n * DOWN\n */\n DOWN: 40,\n\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n\n /**\n * INSERT\n */\n INSERT: 45,\n\n /**\n * DELETE\n */\n DELETE: 46,\n\n /**\n * ZERO\n */\n ZERO: 48,\n\n /**\n * ONE\n */\n ONE: 49,\n\n /**\n * TWO\n */\n TWO: 50,\n\n /**\n * THREE\n */\n THREE: 51,\n\n /**\n * FOUR\n */\n FOUR: 52,\n\n /**\n * FIVE\n */\n FIVE: 53,\n\n /**\n * SIX\n */\n SIX: 54,\n\n /**\n * SEVEN\n */\n SEVEN: 55,\n\n /**\n * EIGHT\n */\n EIGHT: 56,\n\n /**\n * NINE\n */\n NINE: 57,\n\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n\n /**\n * A\n */\n A: 65,\n\n /**\n * B\n */\n B: 66,\n\n /**\n * C\n */\n C: 67,\n\n /**\n * D\n */\n D: 68,\n\n /**\n * E\n */\n E: 69,\n\n /**\n * F\n */\n F: 70,\n\n /**\n * G\n */\n G: 71,\n\n /**\n * H\n */\n H: 72,\n\n /**\n * I\n */\n I: 73,\n\n /**\n * J\n */\n J: 74,\n\n /**\n * K\n */\n K: 75,\n\n /**\n * L\n */\n L: 76,\n\n /**\n * M\n */\n M: 77,\n\n /**\n * N\n */\n N: 78,\n\n /**\n * O\n */\n O: 79,\n\n /**\n * P\n */\n P: 80,\n\n /**\n * Q\n */\n Q: 81,\n\n /**\n * R\n */\n R: 82,\n\n /**\n * S\n */\n S: 83,\n\n /**\n * T\n */\n T: 84,\n\n /**\n * U\n */\n U: 85,\n\n /**\n * V\n */\n V: 86,\n\n /**\n * W\n */\n W: 87,\n\n /**\n * X\n */\n X: 88,\n\n /**\n * Y\n */\n Y: 89,\n\n /**\n * Z\n */\n Z: 90,\n\n /**\n * META\n */\n META: 91,\n\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n\n /**\n * F1\n */\n F1: 112,\n\n /**\n * F2\n */\n F2: 113,\n\n /**\n * F3\n */\n F3: 114,\n\n /**\n * F4\n */\n F4: 115,\n\n /**\n * F5\n */\n F5: 116,\n\n /**\n * F6\n */\n F6: 117,\n\n /**\n * F7\n */\n F7: 118,\n\n /**\n * F8\n */\n F8: 119,\n\n /**\n * F9\n */\n F9: 120,\n\n /**\n * F10\n */\n F10: 121,\n\n /**\n * F11\n */\n F11: 122,\n\n /**\n * F12\n */\n F12: 123,\n\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n\n /**\n * DASH\n */\n DASH: 189,\n\n /**\n * EQUALS\n */\n EQUALS: 187,\n\n /**\n * COMMA\n */\n COMMA: 188,\n\n /**\n * PERIOD\n */\n PERIOD: 190,\n\n /**\n * SLASH\n */\n SLASH: 191,\n\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n\n if (e.altKey && !e.ctrlKey || e.metaKey || // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n } // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n\n\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n\n default:\n return true;\n }\n },\n\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n } // Safari sends zero key code for non-latin characters.\n\n\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport { findDOMNode } from 'react-dom';\nimport keyCode from 'rc-util/es/KeyCode';\n\nexport function isEventFromHandle(e, handles) {\n try {\n return Object.keys(handles).some(function (key) {\n return e.target === findDOMNode(handles[key]);\n });\n } catch (error) {\n return false;\n }\n}\n\nexport function isValueOutOfRange(value, _ref) {\n var min = _ref.min,\n max = _ref.max;\n\n return value < min || value > max;\n}\n\nexport function isNotTouchEvent(e) {\n return e.touches.length > 1 || e.type.toLowerCase() === 'touchend' && e.touches.length > 0;\n}\n\nexport function getClosestPoint(val, _ref2) {\n var marks = _ref2.marks,\n step = _ref2.step,\n min = _ref2.min,\n max = _ref2.max;\n\n var points = Object.keys(marks).map(parseFloat);\n if (step !== null) {\n var maxSteps = Math.floor((max - min) / step);\n var steps = Math.min((val - min) / step, maxSteps);\n var closestStep = Math.round(steps) * step + min;\n points.push(closestStep);\n }\n var diffs = points.map(function (point) {\n return Math.abs(val - point);\n });\n return points[diffs.indexOf(Math.min.apply(Math, _toConsumableArray(diffs)))];\n}\n\nexport function getPrecision(step) {\n var stepString = step.toString();\n var precision = 0;\n if (stepString.indexOf('.') >= 0) {\n precision = stepString.length - stepString.indexOf('.') - 1;\n }\n return precision;\n}\n\nexport function getMousePosition(vertical, e) {\n return vertical ? e.clientY : e.pageX;\n}\n\nexport function getTouchPosition(vertical, e) {\n return vertical ? e.touches[0].clientY : e.touches[0].pageX;\n}\n\nexport function getHandleCenterPosition(vertical, handle) {\n var coords = handle.getBoundingClientRect();\n return vertical ? coords.top + coords.height * 0.5 : window.pageXOffset + coords.left + coords.width * 0.5;\n}\n\nexport function ensureValueInRange(val, _ref3) {\n var max = _ref3.max,\n min = _ref3.min;\n\n if (val <= min) {\n return min;\n }\n if (val >= max) {\n return max;\n }\n return val;\n}\n\nexport function ensureValuePrecision(val, props) {\n var step = props.step;\n\n var closestPoint = isFinite(getClosestPoint(val, props)) ? getClosestPoint(val, props) : 0; // eslint-disable-line\n return step === null ? closestPoint : parseFloat(closestPoint.toFixed(getPrecision(step)));\n}\n\nexport function pauseEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n}\n\nexport function calculateNextValue(func, value, props) {\n var operations = {\n increase: function increase(a, b) {\n return a + b;\n },\n decrease: function decrease(a, b) {\n return a - b;\n }\n };\n\n var indexToGet = operations[func](Object.keys(props.marks).indexOf(JSON.stringify(value)), 1);\n var keyToGet = Object.keys(props.marks)[indexToGet];\n\n if (props.step) {\n return operations[func](value, props.step);\n } else if (!!Object.keys(props.marks).length && !!props.marks[keyToGet]) {\n return props.marks[keyToGet];\n }\n return value;\n}\n\nexport function getKeyboardValueMutator(e, vertical, reverse) {\n var increase = 'increase';\n var decrease = 'decrease';\n var method = increase;\n switch (e.keyCode) {\n case keyCode.UP:\n method = vertical && reverse ? decrease : increase;break;\n case keyCode.RIGHT:\n method = !vertical && reverse ? decrease : increase;break;\n case keyCode.DOWN:\n method = vertical && reverse ? increase : decrease;break;\n case keyCode.LEFT:\n method = !vertical && reverse ? increase : decrease;break;\n\n case keyCode.END:\n return function (value, props) {\n return props.max;\n };\n case keyCode.HOME:\n return function (value, props) {\n return props.min;\n };\n case keyCode.PAGE_UP:\n return function (value, props) {\n return value + props.step * 2;\n };\n case keyCode.PAGE_DOWN:\n return function (value, props) {\n return value - props.step * 2;\n };\n\n default:\n return undefined;\n }\n return function (value, props) {\n return calculateNextValue(method, value, props);\n };\n}","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _get from 'babel-runtime/helpers/get';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport addEventListener from 'rc-util/es/Dom/addEventListener';\nimport classNames from 'classnames';\nimport warning from 'warning';\nimport Steps from './Steps';\nimport Marks from './Marks';\nimport Handle from '../Handle';\nimport * as utils from '../utils';\n\nfunction noop() {}\n\nexport default function createSlider(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_Component) {\n _inherits(ComponentEnhancer, _Component);\n\n function ComponentEnhancer(props) {\n _classCallCheck(this, ComponentEnhancer);\n\n var _this = _possibleConstructorReturn(this, (ComponentEnhancer.__proto__ || Object.getPrototypeOf(ComponentEnhancer)).call(this, props));\n\n _this.onMouseDown = function (e) {\n if (e.button !== 0) {\n return;\n }\n\n var isVertical = _this.props.vertical;\n var position = utils.getMousePosition(isVertical, e);\n if (!utils.isEventFromHandle(e, _this.handlesRefs)) {\n _this.dragOffset = 0;\n } else {\n var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);\n _this.dragOffset = position - handlePosition;\n position = handlePosition;\n }\n _this.removeDocumentEvents();\n _this.onStart(position);\n _this.addDocumentMouseEvents();\n };\n\n _this.onTouchStart = function (e) {\n if (utils.isNotTouchEvent(e)) return;\n\n var isVertical = _this.props.vertical;\n var position = utils.getTouchPosition(isVertical, e);\n if (!utils.isEventFromHandle(e, _this.handlesRefs)) {\n _this.dragOffset = 0;\n } else {\n var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);\n _this.dragOffset = position - handlePosition;\n position = handlePosition;\n }\n _this.onStart(position);\n _this.addDocumentTouchEvents();\n utils.pauseEvent(e);\n };\n\n _this.onFocus = function (e) {\n var _this$props = _this.props,\n onFocus = _this$props.onFocus,\n vertical = _this$props.vertical;\n\n if (utils.isEventFromHandle(e, _this.handlesRefs)) {\n var handlePosition = utils.getHandleCenterPosition(vertical, e.target);\n _this.dragOffset = 0;\n _this.onStart(handlePosition);\n utils.pauseEvent(e);\n if (onFocus) {\n onFocus(e);\n }\n }\n };\n\n _this.onBlur = function (e) {\n var onBlur = _this.props.onBlur;\n\n _this.onEnd();\n if (onBlur) {\n onBlur(e);\n }\n };\n\n _this.onMouseUp = function () {\n if (_this.handlesRefs[_this.prevMovedHandleIndex]) {\n _this.handlesRefs[_this.prevMovedHandleIndex].clickFocus();\n }\n };\n\n _this.onMouseMove = function (e) {\n if (!_this.sliderRef) {\n _this.onEnd();\n return;\n }\n var position = utils.getMousePosition(_this.props.vertical, e);\n _this.onMove(e, position - _this.dragOffset);\n };\n\n _this.onTouchMove = function (e) {\n if (utils.isNotTouchEvent(e) || !_this.sliderRef) {\n _this.onEnd();\n return;\n }\n\n var position = utils.getTouchPosition(_this.props.vertical, e);\n _this.onMove(e, position - _this.dragOffset);\n };\n\n _this.onKeyDown = function (e) {\n if (_this.sliderRef && utils.isEventFromHandle(e, _this.handlesRefs)) {\n _this.onKeyboard(e);\n }\n };\n\n _this.onClickMarkLabel = function (e, value) {\n e.stopPropagation();\n _this.onChange({ value: value });\n _this.setState({ value: value }, function () {\n return _this.onEnd(true);\n });\n };\n\n _this.saveSlider = function (slider) {\n _this.sliderRef = slider;\n };\n\n var step = props.step,\n max = props.max,\n min = props.min;\n\n var isPointDiffEven = isFinite(max - min) ? (max - min) % step === 0 : true; // eslint-disable-line\n warning(step && Math.floor(step) === step ? isPointDiffEven : true, 'Slider[max] - Slider[min] (%s) should be a multiple of Slider[step] (%s)', max - min, step);\n _this.handlesRefs = {};\n return _this;\n }\n\n _createClass(ComponentEnhancer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // Snapshot testing cannot handle refs, so be sure to null-check this.\n this.document = this.sliderRef && this.sliderRef.ownerDocument;\n\n var _props = this.props,\n autoFocus = _props.autoFocus,\n disabled = _props.disabled;\n\n if (autoFocus && !disabled) {\n this.focus();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (_get(ComponentEnhancer.prototype.__proto__ || Object.getPrototypeOf(ComponentEnhancer.prototype), 'componentWillUnmount', this)) _get(ComponentEnhancer.prototype.__proto__ || Object.getPrototypeOf(ComponentEnhancer.prototype), 'componentWillUnmount', this).call(this);\n this.removeDocumentEvents();\n }\n }, {\n key: 'getSliderStart',\n value: function getSliderStart() {\n var slider = this.sliderRef;\n var _props2 = this.props,\n vertical = _props2.vertical,\n reverse = _props2.reverse;\n\n var rect = slider.getBoundingClientRect();\n if (vertical) {\n return reverse ? rect.bottom : rect.top;\n }\n return window.pageXOffset + (reverse ? rect.right : rect.left);\n }\n }, {\n key: 'getSliderLength',\n value: function getSliderLength() {\n var slider = this.sliderRef;\n if (!slider) {\n return 0;\n }\n\n var coords = slider.getBoundingClientRect();\n return this.props.vertical ? coords.height : coords.width;\n }\n }, {\n key: 'addDocumentTouchEvents',\n value: function addDocumentTouchEvents() {\n // just work for Chrome iOS Safari and Android Browser\n this.onTouchMoveListener = addEventListener(this.document, 'touchmove', this.onTouchMove);\n this.onTouchUpListener = addEventListener(this.document, 'touchend', this.onEnd);\n }\n }, {\n key: 'addDocumentMouseEvents',\n value: function addDocumentMouseEvents() {\n this.onMouseMoveListener = addEventListener(this.document, 'mousemove', this.onMouseMove);\n this.onMouseUpListener = addEventListener(this.document, 'mouseup', this.onEnd);\n }\n }, {\n key: 'removeDocumentEvents',\n value: function removeDocumentEvents() {\n /* eslint-disable no-unused-expressions */\n this.onTouchMoveListener && this.onTouchMoveListener.remove();\n this.onTouchUpListener && this.onTouchUpListener.remove();\n\n this.onMouseMoveListener && this.onMouseMoveListener.remove();\n this.onMouseUpListener && this.onMouseUpListener.remove();\n /* eslint-enable no-unused-expressions */\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (!this.props.disabled) {\n this.handlesRefs[0].focus();\n }\n }\n }, {\n key: 'blur',\n value: function blur() {\n var _this2 = this;\n\n if (!this.props.disabled) {\n Object.keys(this.handlesRefs).forEach(function (key) {\n if (_this2.handlesRefs[key] && _this2.handlesRefs[key].blur) {\n _this2.handlesRefs[key].blur();\n }\n });\n }\n }\n }, {\n key: 'calcValue',\n value: function calcValue(offset) {\n var _props3 = this.props,\n vertical = _props3.vertical,\n min = _props3.min,\n max = _props3.max;\n\n var ratio = Math.abs(Math.max(offset, 0) / this.getSliderLength());\n var value = vertical ? (1 - ratio) * (max - min) + min : ratio * (max - min) + min;\n return value;\n }\n }, {\n key: 'calcValueByPos',\n value: function calcValueByPos(position) {\n var sign = this.props.reverse ? -1 : +1;\n var pixelOffset = sign * (position - this.getSliderStart());\n var nextValue = this.trimAlignValue(this.calcValue(pixelOffset));\n return nextValue;\n }\n }, {\n key: 'calcOffset',\n value: function calcOffset(value) {\n var _props4 = this.props,\n min = _props4.min,\n max = _props4.max;\n\n var ratio = (value - min) / (max - min);\n return ratio * 100;\n }\n }, {\n key: 'saveHandle',\n value: function saveHandle(index, handle) {\n this.handlesRefs[index] = handle;\n }\n }, {\n key: 'render',\n value: function render() {\n var _classNames;\n\n var _props5 = this.props,\n prefixCls = _props5.prefixCls,\n className = _props5.className,\n marks = _props5.marks,\n dots = _props5.dots,\n step = _props5.step,\n included = _props5.included,\n disabled = _props5.disabled,\n vertical = _props5.vertical,\n reverse = _props5.reverse,\n min = _props5.min,\n max = _props5.max,\n children = _props5.children,\n maximumTrackStyle = _props5.maximumTrackStyle,\n style = _props5.style,\n railStyle = _props5.railStyle,\n dotStyle = _props5.dotStyle,\n activeDotStyle = _props5.activeDotStyle;\n\n var _get$call = _get(ComponentEnhancer.prototype.__proto__ || Object.getPrototypeOf(ComponentEnhancer.prototype), 'render', this).call(this),\n tracks = _get$call.tracks,\n handles = _get$call.handles;\n\n var sliderClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, prefixCls + '-with-marks', Object.keys(marks).length), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _defineProperty(_classNames, prefixCls + '-vertical', vertical), _defineProperty(_classNames, className, className), _classNames));\n return React.createElement(\n 'div',\n {\n ref: this.saveSlider,\n className: sliderClassName,\n onTouchStart: disabled ? noop : this.onTouchStart,\n onMouseDown: disabled ? noop : this.onMouseDown,\n onMouseUp: disabled ? noop : this.onMouseUp,\n onKeyDown: disabled ? noop : this.onKeyDown,\n onFocus: disabled ? noop : this.onFocus,\n onBlur: disabled ? noop : this.onBlur,\n style: style\n },\n React.createElement('div', {\n className: prefixCls + '-rail',\n style: _extends({}, maximumTrackStyle, railStyle)\n }),\n tracks,\n React.createElement(Steps, {\n prefixCls: prefixCls,\n vertical: vertical,\n reverse: reverse,\n marks: marks,\n dots: dots,\n step: step,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n dotStyle: dotStyle,\n activeDotStyle: activeDotStyle\n }),\n handles,\n React.createElement(Marks, {\n className: prefixCls + '-mark',\n onClickLabel: disabled ? noop : this.onClickMarkLabel,\n vertical: vertical,\n marks: marks,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n reverse: reverse\n }),\n children\n );\n }\n }]);\n\n return ComponentEnhancer;\n }(Component), _class.displayName = 'ComponentEnhancer(' + Component.displayName + ')', _class.propTypes = _extends({}, Component.propTypes, {\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n marks: PropTypes.object,\n included: PropTypes.bool,\n className: PropTypes.string,\n prefixCls: PropTypes.string,\n disabled: PropTypes.bool,\n children: PropTypes.any,\n onBeforeChange: PropTypes.func,\n onChange: PropTypes.func,\n onAfterChange: PropTypes.func,\n handle: PropTypes.func,\n dots: PropTypes.bool,\n vertical: PropTypes.bool,\n style: PropTypes.object,\n reverse: PropTypes.bool,\n minimumTrackStyle: PropTypes.object, // just for compatibility, will be deperecate\n maximumTrackStyle: PropTypes.object, // just for compatibility, will be deperecate\n handleStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n trackStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n railStyle: PropTypes.object,\n dotStyle: PropTypes.object,\n activeDotStyle: PropTypes.object,\n autoFocus: PropTypes.bool,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n }), _class.defaultProps = _extends({}, Component.defaultProps, {\n prefixCls: 'rc-slider',\n className: '',\n min: 0,\n max: 100,\n step: 1,\n marks: {},\n handle: function handle(_ref) {\n var index = _ref.index,\n restProps = _objectWithoutProperties(_ref, ['index']);\n\n delete restProps.dragging;\n if (restProps.value === null) {\n return null;\n }\n\n return React.createElement(Handle, _extends({}, restProps, { key: index }));\n },\n\n onBeforeChange: noop,\n onChange: noop,\n onAfterChange: noop,\n included: true,\n disabled: false,\n dots: false,\n vertical: false,\n reverse: false,\n trackStyle: [{}],\n handleStyle: [{}],\n railStyle: {},\n dotStyle: {},\n activeDotStyle: {}\n }), _temp;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* eslint-disable react/prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar Slider = function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n function Slider(props) {\n _classCallCheck(this, Slider);\n\n var _this = _possibleConstructorReturn(this, (Slider.__proto__ || Object.getPrototypeOf(Slider)).call(this, props));\n\n _this.onEnd = function (force) {\n var dragging = _this.state.dragging;\n\n _this.removeDocumentEvents();\n if (dragging || force) {\n _this.props.onAfterChange(_this.getValue());\n }\n _this.setState({ dragging: false });\n };\n\n var defaultValue = props.defaultValue !== undefined ? props.defaultValue : props.min;\n var value = props.value !== undefined ? props.value : defaultValue;\n\n _this.state = {\n value: _this.trimAlignValue(value),\n dragging: false\n };\n\n warning(!('minimumTrackStyle' in props), 'minimumTrackStyle will be deprecated, please use trackStyle instead.');\n warning(!('maximumTrackStyle' in props), 'maximumTrackStyle will be deprecated, please use railStyle instead.');\n return _this;\n }\n\n _createClass(Slider, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (!('value' in this.props || 'min' in this.props || 'max' in this.props)) {\n return;\n }\n var _props = this.props,\n value = _props.value,\n onChange = _props.onChange;\n\n var theValue = value !== undefined ? value : prevState.value;\n var nextValue = this.trimAlignValue(theValue, this.props);\n if (nextValue !== prevState.value) {\n // eslint-disable-next-line\n this.setState({ value: nextValue });\n if (utils.isValueOutOfRange(theValue, this.props)) {\n onChange(nextValue);\n }\n }\n }\n }, {\n key: 'onChange',\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n var nextState = state.value > this.props.max ? _extends({}, state, { value: this.props.max }) : state;\n if (isNotControlled) {\n this.setState(nextState);\n }\n\n var changedValue = nextState.value;\n props.onChange(changedValue);\n }\n }, {\n key: 'onStart',\n value: function onStart(position) {\n this.setState({ dragging: true });\n var props = this.props;\n var prevValue = this.getValue();\n props.onBeforeChange(prevValue);\n\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n\n if (value === prevValue) return;\n\n this.prevMovedHandleIndex = 0;\n\n this.onChange({ value: value });\n }\n }, {\n key: 'onMove',\n value: function onMove(e, position) {\n utils.pauseEvent(e);\n var oldValue = this.state.value;\n\n var value = this.calcValueByPos(position);\n if (value === oldValue) return;\n\n this.onChange({ value: value });\n }\n }, {\n key: 'onKeyboard',\n value: function onKeyboard(e) {\n var _props2 = this.props,\n reverse = _props2.reverse,\n vertical = _props2.vertical;\n\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n if (valueMutator) {\n utils.pauseEvent(e);\n var state = this.state;\n var oldValue = state.value;\n var mutatedValue = valueMutator(oldValue, this.props);\n var value = this.trimAlignValue(mutatedValue);\n if (value === oldValue) return;\n\n this.onChange({ value: value });\n this.props.onAfterChange(value);\n this.onEnd();\n }\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n return this.state.value;\n }\n }, {\n key: 'getLowerBound',\n value: function getLowerBound() {\n return this.props.min;\n }\n }, {\n key: 'getUpperBound',\n value: function getUpperBound() {\n return this.state.value;\n }\n }, {\n key: 'trimAlignValue',\n value: function trimAlignValue(v) {\n var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (v === null) {\n return null;\n }\n\n var mergedProps = _extends({}, this.props, nextProps);\n var val = utils.ensureValueInRange(v, mergedProps);\n return utils.ensureValuePrecision(val, mergedProps);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props3 = this.props,\n prefixCls = _props3.prefixCls,\n vertical = _props3.vertical,\n included = _props3.included,\n disabled = _props3.disabled,\n minimumTrackStyle = _props3.minimumTrackStyle,\n trackStyle = _props3.trackStyle,\n handleStyle = _props3.handleStyle,\n tabIndex = _props3.tabIndex,\n min = _props3.min,\n max = _props3.max,\n reverse = _props3.reverse,\n handleGenerator = _props3.handle;\n var _state = this.state,\n value = _state.value,\n dragging = _state.dragging;\n\n var offset = this.calcOffset(value);\n var handle = handleGenerator({\n className: prefixCls + '-handle',\n prefixCls: prefixCls,\n vertical: vertical,\n offset: offset,\n value: value,\n dragging: dragging,\n disabled: disabled,\n min: min,\n max: max,\n reverse: reverse,\n index: 0,\n tabIndex: tabIndex,\n style: handleStyle[0] || handleStyle,\n ref: function ref(h) {\n return _this2.saveHandle(0, h);\n }\n });\n\n var _trackStyle = trackStyle[0] || trackStyle;\n var track = React.createElement(Track, {\n className: prefixCls + '-track',\n vertical: vertical,\n included: included,\n offset: 0,\n reverse: reverse,\n length: offset,\n style: _extends({}, minimumTrackStyle, _trackStyle)\n });\n\n return { tracks: track, handles: handle };\n }\n }]);\n\n return Slider;\n}(React.Component);\n\nSlider.propTypes = {\n defaultValue: PropTypes.number,\n value: PropTypes.number,\n disabled: PropTypes.bool,\n autoFocus: PropTypes.bool,\n tabIndex: PropTypes.number,\n reverse: PropTypes.bool,\n min: PropTypes.number,\n max: PropTypes.number\n};\n\n\nexport default createSlider(Slider);","/**\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","import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _toConsumableArray from 'babel-runtime/helpers/toConsumableArray';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* eslint-disable react/prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { polyfill } from 'react-lifecycles-compat';\nimport shallowEqual from 'shallowequal';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar _trimAlignValue = function _trimAlignValue(_ref) {\n var value = _ref.value,\n handle = _ref.handle,\n bounds = _ref.bounds,\n props = _ref.props;\n var allowCross = props.allowCross,\n pushable = props.pushable;\n\n var thershold = Number(pushable);\n var valInRange = utils.ensureValueInRange(value, props);\n var valNotConflict = valInRange;\n if (!allowCross && handle != null && bounds !== undefined) {\n if (handle > 0 && valInRange <= bounds[handle - 1] + thershold) {\n valNotConflict = bounds[handle - 1] + thershold;\n }\n if (handle < bounds.length - 1 && valInRange >= bounds[handle + 1] - thershold) {\n valNotConflict = bounds[handle + 1] - thershold;\n }\n }\n return utils.ensureValuePrecision(valNotConflict, props);\n};\n\nvar Range = function (_React$Component) {\n _inherits(Range, _React$Component);\n\n function Range(props) {\n _classCallCheck(this, Range);\n\n var _this = _possibleConstructorReturn(this, (Range.__proto__ || Object.getPrototypeOf(Range)).call(this, props));\n\n _this.onEnd = function (force) {\n var handle = _this.state.handle;\n\n _this.removeDocumentEvents();\n\n if (handle !== null || force) {\n _this.props.onAfterChange(_this.getValue());\n }\n\n _this.setState({\n handle: null\n });\n };\n\n var count = props.count,\n min = props.min,\n max = props.max;\n\n var initialValue = Array.apply(undefined, _toConsumableArray(Array(count + 1))).map(function () {\n return min;\n });\n var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;\n var value = props.value !== undefined ? props.value : defaultValue;\n var bounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: props\n });\n });\n var recent = bounds[0] === max ? 0 : bounds.length - 1;\n\n _this.state = {\n handle: null,\n recent: recent,\n bounds: bounds\n };\n return _this;\n }\n\n _createClass(Range, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n\n if (!('value' in this.props || 'min' in this.props || 'max' in this.props)) {\n return;\n }\n if (this.props.min === prevProps.min && this.props.max === prevProps.max && shallowEqual(this.props.value, prevProps.value)) {\n return;\n }\n var _props = this.props,\n onChange = _props.onChange,\n value = _props.value;\n\n var currentValue = value || prevState.bounds;\n if (currentValue.some(function (v) {\n return utils.isValueOutOfRange(v, _this2.props);\n })) {\n var newValues = currentValue.map(function (v) {\n return utils.ensureValueInRange(v, _this2.props);\n });\n onChange(newValues);\n }\n }\n }, {\n key: 'onChange',\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n if (isNotControlled) {\n this.setState(state);\n } else {\n var controlledState = {};\n\n ['handle', 'recent'].forEach(function (item) {\n if (state[item] !== undefined) {\n controlledState[item] = state[item];\n }\n });\n\n if (Object.keys(controlledState).length) {\n this.setState(controlledState);\n }\n }\n\n var data = _extends({}, this.state, state);\n var changedValue = data.bounds;\n props.onChange(changedValue);\n }\n }, {\n key: 'onStart',\n value: function onStart(position) {\n var props = this.props;\n var state = this.state;\n var bounds = this.getValue();\n props.onBeforeChange(bounds);\n\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n\n var closestBound = this.getClosestBound(value);\n this.prevMovedHandleIndex = this.getBoundNeedMoving(value, closestBound);\n\n this.setState({\n handle: this.prevMovedHandleIndex,\n recent: this.prevMovedHandleIndex\n });\n\n var prevValue = bounds[this.prevMovedHandleIndex];\n if (value === prevValue) return;\n\n var nextBounds = [].concat(_toConsumableArray(state.bounds));\n nextBounds[this.prevMovedHandleIndex] = value;\n this.onChange({ bounds: nextBounds });\n }\n }, {\n key: 'onMove',\n value: function onMove(e, position) {\n utils.pauseEvent(e);\n var state = this.state;\n\n var value = this.calcValueByPos(position);\n var oldValue = state.bounds[state.handle];\n if (value === oldValue) return;\n\n this.moveTo(value);\n }\n }, {\n key: 'onKeyboard',\n value: function onKeyboard(e) {\n var _props2 = this.props,\n reverse = _props2.reverse,\n vertical = _props2.vertical;\n\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var state = this.state,\n props = this.props;\n var bounds = state.bounds,\n handle = state.handle;\n\n var oldValue = bounds[handle === null ? state.recent : handle];\n var mutatedValue = valueMutator(oldValue, props);\n var value = _trimAlignValue({\n value: mutatedValue,\n handle: handle,\n bounds: state.bounds,\n props: props\n });\n if (value === oldValue) return;\n var isFromKeyboardEvent = true;\n this.moveTo(value, isFromKeyboardEvent);\n }\n }\n }, {\n key: 'getValue',\n value: function getValue() {\n return this.state.bounds;\n }\n }, {\n key: 'getClosestBound',\n value: function getClosestBound(value) {\n var bounds = this.state.bounds;\n\n var closestBound = 0;\n for (var i = 1; i < bounds.length - 1; ++i) {\n if (value >= bounds[i]) {\n closestBound = i;\n }\n }\n if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {\n closestBound += 1;\n }\n return closestBound;\n }\n }, {\n key: 'getBoundNeedMoving',\n value: function getBoundNeedMoving(value, closestBound) {\n var _state = this.state,\n bounds = _state.bounds,\n recent = _state.recent;\n\n var boundNeedMoving = closestBound;\n var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];\n\n if (isAtTheSamePoint && bounds[recent] === bounds[closestBound]) {\n boundNeedMoving = recent;\n }\n\n if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {\n boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;\n }\n return boundNeedMoving;\n }\n }, {\n key: 'getLowerBound',\n value: function getLowerBound() {\n return this.state.bounds[0];\n }\n }, {\n key: 'getUpperBound',\n value: function getUpperBound() {\n var bounds = this.state.bounds;\n\n return bounds[bounds.length - 1];\n }\n\n /**\n * Returns an array of possible slider points, taking into account both\n * `marks` and `step`. The result is cached.\n */\n\n }, {\n key: 'getPoints',\n value: function getPoints() {\n var _props3 = this.props,\n marks = _props3.marks,\n step = _props3.step,\n min = _props3.min,\n max = _props3.max;\n\n var cache = this._getPointsCache;\n if (!cache || cache.marks !== marks || cache.step !== step) {\n var pointsObject = _extends({}, marks);\n if (step !== null) {\n for (var point = min; point <= max; point += step) {\n pointsObject[point] = point;\n }\n }\n var points = Object.keys(pointsObject).map(parseFloat);\n points.sort(function (a, b) {\n return a - b;\n });\n this._getPointsCache = { marks: marks, step: step, points: points };\n }\n return this._getPointsCache.points;\n }\n }, {\n key: 'moveTo',\n value: function moveTo(value, isFromKeyboardEvent) {\n var _this3 = this;\n\n var state = this.state,\n props = this.props;\n\n var nextBounds = [].concat(_toConsumableArray(state.bounds));\n var handle = state.handle === null ? state.recent : state.handle;\n nextBounds[handle] = value;\n var nextHandle = handle;\n if (props.pushable !== false) {\n this.pushSurroundingHandles(nextBounds, nextHandle);\n } else if (props.allowCross) {\n nextBounds.sort(function (a, b) {\n return a - b;\n });\n nextHandle = nextBounds.indexOf(value);\n }\n this.onChange({\n recent: nextHandle,\n handle: nextHandle,\n bounds: nextBounds\n });\n if (isFromKeyboardEvent) {\n // known problem: because setState is async,\n // so trigger focus will invoke handler's onEnd and another handler's onStart too early,\n // cause onBeforeChange and onAfterChange receive wrong value.\n // here use setState callback to hack,but not elegant\n this.props.onAfterChange(nextBounds);\n this.setState({}, function () {\n _this3.handlesRefs[nextHandle].focus();\n });\n this.onEnd();\n }\n }\n }, {\n key: 'pushSurroundingHandles',\n value: function pushSurroundingHandles(bounds, handle) {\n var value = bounds[handle];\n var threshold = this.props.pushable;\n\n threshold = Number(threshold);\n\n var direction = 0;\n if (bounds[handle + 1] - value < threshold) {\n direction = +1; // push to right\n }\n if (value - bounds[handle - 1] < threshold) {\n direction = -1; // push to left\n }\n\n if (direction === 0) {\n return;\n }\n\n var nextHandle = handle + direction;\n var diffToNext = direction * (bounds[nextHandle] - value);\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // revert to original value if pushing is impossible\n bounds[handle] = bounds[nextHandle] - direction * threshold;\n }\n }\n }, {\n key: 'pushHandle',\n value: function pushHandle(bounds, handle, direction, amount) {\n var originalValue = bounds[handle];\n var currentValue = bounds[handle];\n while (direction * (currentValue - originalValue) < amount) {\n if (!this.pushHandleOnePoint(bounds, handle, direction)) {\n // can't push handle enough to create the needed `amount` gap, so we\n // revert its position to the original value\n bounds[handle] = originalValue;\n return false;\n }\n currentValue = bounds[handle];\n }\n // the handle was pushed enough to create the needed `amount` gap\n return true;\n }\n }, {\n key: 'pushHandleOnePoint',\n value: function pushHandleOnePoint(bounds, handle, direction) {\n var points = this.getPoints();\n var pointIndex = points.indexOf(bounds[handle]);\n var nextPointIndex = pointIndex + direction;\n if (nextPointIndex >= points.length || nextPointIndex < 0) {\n // reached the minimum or maximum available point, can't push anymore\n return false;\n }\n var nextHandle = handle + direction;\n var nextValue = points[nextPointIndex];\n var threshold = this.props.pushable;\n\n var diffToNext = direction * (bounds[nextHandle] - nextValue);\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // couldn't push next handle, so we won't push this one either\n return false;\n }\n // push the handle\n bounds[handle] = nextValue;\n return true;\n }\n }, {\n key: 'trimAlignValue',\n value: function trimAlignValue(value) {\n var _state2 = this.state,\n handle = _state2.handle,\n bounds = _state2.bounds;\n\n return _trimAlignValue({\n value: value,\n handle: handle,\n bounds: bounds,\n props: this.props\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _state3 = this.state,\n handle = _state3.handle,\n bounds = _state3.bounds;\n var _props4 = this.props,\n prefixCls = _props4.prefixCls,\n vertical = _props4.vertical,\n included = _props4.included,\n disabled = _props4.disabled,\n min = _props4.min,\n max = _props4.max,\n reverse = _props4.reverse,\n handleGenerator = _props4.handle,\n trackStyle = _props4.trackStyle,\n handleStyle = _props4.handleStyle,\n tabIndex = _props4.tabIndex;\n\n\n var offsets = bounds.map(function (v) {\n return _this4.calcOffset(v);\n });\n\n var handleClassName = prefixCls + '-handle';\n var handles = bounds.map(function (v, i) {\n var _classNames;\n\n var _tabIndex = tabIndex[i] || 0;\n if (disabled || tabIndex[i] === null) {\n _tabIndex = null;\n }\n return handleGenerator({\n className: classNames((_classNames = {}, _defineProperty(_classNames, handleClassName, true), _defineProperty(_classNames, handleClassName + '-' + (i + 1), true), _classNames)),\n prefixCls: prefixCls,\n vertical: vertical,\n offset: offsets[i],\n value: v,\n dragging: handle === i,\n index: i,\n tabIndex: _tabIndex,\n min: min,\n max: max,\n reverse: reverse,\n disabled: disabled,\n style: handleStyle[i],\n ref: function ref(h) {\n return _this4.saveHandle(i, h);\n }\n });\n });\n\n var tracks = bounds.slice(0, -1).map(function (_, index) {\n var _classNames2;\n\n var i = index + 1;\n var trackClassName = classNames((_classNames2 = {}, _defineProperty(_classNames2, prefixCls + '-track', true), _defineProperty(_classNames2, prefixCls + '-track-' + i, true), _classNames2));\n return React.createElement(Track, {\n className: trackClassName,\n vertical: vertical,\n reverse: reverse,\n included: included,\n offset: offsets[i - 1],\n length: offsets[i] - offsets[i - 1],\n style: trackStyle[index],\n key: i\n });\n });\n\n return { tracks: tracks, handles: handles };\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(props, state) {\n if ('value' in props || 'min' in props || 'max' in props) {\n var value = props.value || state.bounds;\n var nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n bounds: state.bounds,\n props: props\n });\n });\n if (nextBounds.length === state.bounds.length && nextBounds.every(function (v, i) {\n return v === state.bounds[i];\n })) {\n return null;\n }\n return _extends({}, state, {\n bounds: nextBounds\n });\n }\n return null;\n }\n }]);\n\n return Range;\n}(React.Component);\n\nRange.displayName = 'Range';\nRange.propTypes = {\n autoFocus: PropTypes.bool,\n defaultValue: PropTypes.arrayOf(PropTypes.number),\n value: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n pushable: PropTypes.oneOfType([PropTypes.bool, PropTypes.number]),\n allowCross: PropTypes.bool,\n disabled: PropTypes.bool,\n reverse: PropTypes.bool,\n tabIndex: PropTypes.arrayOf(PropTypes.number),\n min: PropTypes.number,\n max: PropTypes.number\n};\nRange.defaultProps = {\n count: 1,\n allowCross: true,\n pushable: false,\n tabIndex: []\n};\n\n\npolyfill(Range);\n\nexport default createSlider(Range);","export default function contains(root, n) {\n var node = n;\n\n while (node) {\n if (node === root) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nvar ContainerRender = /*#__PURE__*/function (_React$Component) {\n _inherits(ContainerRender, _React$Component);\n\n var _super = _createSuper(ContainerRender);\n\n function ContainerRender() {\n var _this;\n\n _classCallCheck(this, ContainerRender);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _this.removeContainer = function () {\n if (_this.container) {\n ReactDOM.unmountComponentAtNode(_this.container);\n\n _this.container.parentNode.removeChild(_this.container);\n\n _this.container = null;\n }\n };\n\n _this.renderComponent = function (props, ready) {\n var _this$props = _this.props,\n visible = _this$props.visible,\n getComponent = _this$props.getComponent,\n forceRender = _this$props.forceRender,\n getContainer = _this$props.getContainer,\n parent = _this$props.parent;\n\n if (visible || parent._component || forceRender) {\n if (!_this.container) {\n _this.container = getContainer();\n }\n\n ReactDOM.unstable_renderSubtreeIntoContainer(parent, getComponent(props), _this.container, function callback() {\n if (ready) {\n ready.call(this);\n }\n });\n }\n };\n\n return _this;\n }\n\n _createClass(ContainerRender, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.autoMount) {\n this.renderComponent();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.props.autoMount) {\n this.renderComponent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.props.autoDestroy) {\n this.removeContainer();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children({\n renderComponent: this.renderComponent,\n removeContainer: this.removeContainer\n });\n }\n }]);\n\n return ContainerRender;\n}(React.Component);\n\nContainerRender.propTypes = {\n autoMount: PropTypes.bool,\n autoDestroy: PropTypes.bool,\n visible: PropTypes.bool,\n forceRender: PropTypes.bool,\n parent: PropTypes.any,\n getComponent: PropTypes.func.isRequired,\n getContainer: PropTypes.func.isRequired,\n children: PropTypes.func.isRequired\n};\nContainerRender.defaultProps = {\n autoMount: true,\n autoDestroy: true,\n forceRender: false\n};\nexport { ContainerRender as default };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nvar Portal = /*#__PURE__*/function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n var _super = _createSuper(Portal);\n\n function Portal() {\n _classCallCheck(this, Portal);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Portal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.createContainer();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var didUpdate = this.props.didUpdate;\n\n if (didUpdate) {\n didUpdate(prevProps);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeContainer();\n }\n }, {\n key: \"createContainer\",\n value: function createContainer() {\n this._container = this.props.getContainer();\n this.forceUpdate();\n }\n }, {\n key: \"removeContainer\",\n value: function removeContainer() {\n if (this._container) {\n this._container.parentNode.removeChild(this._container);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this._container) {\n return ReactDOM.createPortal(this.props.children, this._container);\n }\n\n return null;\n }\n }]);\n\n return Portal;\n}(React.Component);\n\nPortal.propTypes = {\n getContainer: PropTypes.func.isRequired,\n children: PropTypes.node.isRequired,\n didUpdate: PropTypes.func\n};\nexport { Portal as default };","import _extends from 'babel-runtime/helpers/extends';\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _extends({}, baseAlign, align);\n}\n\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n for (var placement in builtinPlacements) {\n if (builtinPlacements.hasOwnProperty(placement)) {\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return prefixCls + '-placement-' + placement;\n }\n }\n }\n return '';\n}\n\nexport function saveRef(name, component) {\n this[name] = component;\n}","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\n\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n var name = getTransformName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX; // https://stackoverflow.com/a/3485654/3040605\n\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n\n if (node.nodeType === 9) {\n return node;\n }\n\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n} // 设置 elem 相对 elem.ownerDocument 的坐标\n\n\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n } // force relayout\n\n\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n\n css(elem, originalStyle); // force relayout\n\n forceRelayout(elem);\n\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n\n var ret = {};\n\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n\n var _off = offset[_key] - originalOffset[_key];\n\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n\n css(elem, ret);\n}\n\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n // backcompat 取 body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, ex) {\n var extra = ex;\n\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var val;\n var elem = args[0]; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nvar getParent = utils.getParent;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n } // ie 这个也不是完全可行\n\n /*\n
    \n
    \n 元素 6 高 100px 宽 50px
    \n
    \n
    \n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n\n return null;\n}\n\nvar getParent$1 = utils.getParent;\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n\n for (parent = getParent$1(element); parent && parent !== body; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * 获得元素的显示部分的区域\n */\n\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el); // add border\n\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n\n el = getOffsetParent(el);\n } // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n\n\n var originalPosition = null;\n\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n\n var bodyStyle = window.getComputedStyle(body);\n\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n } // Reset element position after calculate the visible area\n\n\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n } // Left edge inside and right edge outside viewport, try to resize it.\n\n\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n } // Right edge outside viewport, try to move it.\n\n\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n } // Top edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n } // Top edge inside and bottom edge outside viewport, try to resize it.\n\n\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n } // Bottom edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n;\n\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\n\n\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport); // 当前节点可以被放置的显示区域\n\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport); // 当前节点所占的区域, left/top/width/height\n\n var elRegion = getRegion(source); // 将 offset 转换成数值,支持百分比\n\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion); // 当前节点将要被放置的位置\n\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset); // 当前节点将要所处的区域\n\n var newElRegion = utils.merge(elRegion, elFuturePos); // 如果可视区域不能完全放置当前节点时允许调整\n\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n }); // 偏移量也反下\n\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n }); // 偏移量也反下\n\n\n var _newOffset = flipOffset(offset, 1);\n\n var _newTargetOffset = flipOffset(targetOffset, 1);\n\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n } // 如果失败,重新计算当前节点将要被放置的位置\n\n\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n\n if (isStillFailX || isStillFailY) {\n points = align.points;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n } // 2. 只有指定了可以调整当前方向才调整\n\n\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实要调整,甚至可能会调整高度宽度\n\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n } // need judge to in case set fixed with in css on height auto element\n\n\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n } // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
    \n\n\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\n\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point\n\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2({}, align, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\n","import contains from 'rc-util/es/Dom/contains';\n\nexport function buffer(fn, ms) {\n var timer = void 0;\n\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n\n function bufferFn() {\n clear();\n timer = setTimeout(fn, ms);\n }\n\n bufferFn.clear = clear;\n\n return bufferFn;\n}\n\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\n\nexport function isWindow(obj) {\n return obj && typeof obj === 'object' && obj.window === obj;\n}\n\nexport function isSimilarValue(val1, val2) {\n var int1 = Math.floor(val1);\n var int2 = Math.floor(val2);\n return Math.abs(int1 - int2) <= 1;\n}\n\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement)) {\n activeElement.focus();\n }\n}","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from 'rc-util/es/Dom/addEventListener';\n\nimport { isWindow, buffer, isSamePoint, isSimilarValue, restoreFocus } from './util';\n\nfunction getElement(func) {\n if (typeof func !== 'function' || !func) return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (typeof point !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function (_Component) {\n _inherits(Align, _Component);\n\n function Align() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Align);\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 = _possibleConstructorReturn(this, (_ref = Align.__proto__ || Object.getPrototypeOf(Align)).call.apply(_ref, [this].concat(args))), _this), _this.forceAlign = function () {\n var _this$props = _this.props,\n disabled = _this$props.disabled,\n target = _this$props.target,\n align = _this$props.align,\n onAlign = _this$props.onAlign;\n\n if (!disabled && target) {\n var source = ReactDOM.findDOMNode(_this);\n\n var result = void 0;\n var element = getElement(target);\n var point = getPoint(target);\n\n // IE lose focus after element realign\n // We should record activeElement and restore later\n var activeElement = document.activeElement;\n\n if (element) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n\n restoreFocus(activeElement, source);\n\n if (onAlign) {\n onAlign(source, result);\n }\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Align, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var props = this.props;\n // if parent ref not attached .... use document.getElementById\n this.forceAlign();\n if (!props.disabled && props.monitorWindowResize) {\n this.startMonitorWindowResize();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var reAlign = false;\n var props = this.props;\n\n if (!props.disabled) {\n var source = ReactDOM.findDOMNode(this);\n var sourceRect = source ? source.getBoundingClientRect() : null;\n\n if (prevProps.disabled) {\n reAlign = true;\n } else {\n var lastElement = getElement(prevProps.target);\n var currentElement = getElement(props.target);\n var lastPoint = getPoint(prevProps.target);\n var currentPoint = getPoint(props.target);\n\n if (isWindow(lastElement) && isWindow(currentElement)) {\n // Skip if is window\n reAlign = false;\n } else if (lastElement !== currentElement || // Element change\n lastElement && !currentElement && currentPoint || // Change from element to point\n lastPoint && currentPoint && currentElement || // Change from point to element\n currentPoint && !isSamePoint(lastPoint, currentPoint)) {\n reAlign = true;\n }\n\n // If source element size changed\n var preRect = this.sourceRect || {};\n if (!reAlign && source && (!isSimilarValue(preRect.width, sourceRect.width) || !isSimilarValue(preRect.height, sourceRect.height))) {\n reAlign = true;\n }\n }\n\n this.sourceRect = sourceRect;\n }\n\n if (reAlign) {\n this.forceAlign();\n }\n\n if (props.monitorWindowResize && !props.disabled) {\n this.startMonitorWindowResize();\n } else {\n this.stopMonitorWindowResize();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stopMonitorWindowResize();\n }\n }, {\n key: 'startMonitorWindowResize',\n value: function startMonitorWindowResize() {\n if (!this.resizeHandler) {\n this.bufferMonitor = buffer(this.forceAlign, this.props.monitorBufferTime);\n this.resizeHandler = addEventListener(window, 'resize', this.bufferMonitor);\n }\n }\n }, {\n key: 'stopMonitorWindowResize',\n value: function stopMonitorWindowResize() {\n if (this.resizeHandler) {\n this.bufferMonitor.clear();\n this.resizeHandler.remove();\n this.resizeHandler = null;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n childrenProps = _props.childrenProps,\n children = _props.children;\n\n var child = React.Children.only(children);\n if (childrenProps) {\n var newProps = {};\n var propList = Object.keys(childrenProps);\n propList.forEach(function (prop) {\n newProps[prop] = _this2.props[childrenProps[prop]];\n });\n\n return React.cloneElement(child, newProps);\n }\n return child;\n }\n }]);\n\n return Align;\n}(Component);\n\nAlign.propTypes = {\n childrenProps: PropTypes.object,\n align: PropTypes.object.isRequired,\n target: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n clientX: PropTypes.number,\n clientY: PropTypes.number,\n pageX: PropTypes.number,\n pageY: PropTypes.number\n })]),\n onAlign: PropTypes.func,\n monitorBufferTime: PropTypes.number,\n monitorWindowResize: PropTypes.bool,\n disabled: PropTypes.bool,\n children: PropTypes.any\n};\nAlign.defaultProps = {\n target: function target() {\n return window;\n },\n monitorBufferTime: 50,\n monitorWindowResize: false,\n disabled: false\n};\n\n\nexport default Align;","// export this package's api\nimport Align from './Align';\n\nexport default Align;","import React from 'react';\n\nvar unsafeLifecyclesPolyfill = function unsafeLifecyclesPolyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n } // only handle componentWillReceiveProps\n\n\n if (typeof prototype.componentWillReceiveProps !== 'function') {\n return Component;\n } // In React 16.9, React.Profiler was introduced together with UNSAFE_componentWillReceiveProps\n // https://reactjs.org/blog/2019/08/08/react-v16.9.0.html#performance-measurements-with-reactprofiler\n\n\n if (!React.Profiler) {\n return Component;\n } // Here polyfill get started\n\n\n prototype.UNSAFE_componentWillReceiveProps = prototype.componentWillReceiveProps;\n delete prototype.componentWillReceiveProps;\n return Component;\n};\n\nexport default unsafeLifecyclesPolyfill;","import React from 'react';\n\nexport function toArrayChildren(children) {\n var ret = [];\n React.Children.forEach(children, function (child) {\n ret.push(child);\n });\n return ret;\n}\n\nexport function findChildInChildrenByKey(children, key) {\n var ret = null;\n if (children) {\n children.forEach(function (child) {\n if (ret) {\n return;\n }\n if (child && child.key === key) {\n ret = child;\n }\n });\n }\n return ret;\n}\n\nexport function findShownChildInChildrenByKey(children, key, showProp) {\n var ret = null;\n if (children) {\n children.forEach(function (child) {\n if (child && child.key === key && child.props[showProp]) {\n if (ret) {\n throw new Error('two child with same key for children');\n }\n ret = child;\n }\n });\n }\n return ret;\n}\n\nexport function findHiddenChildInChildrenByKey(children, key, showProp) {\n var found = 0;\n if (children) {\n children.forEach(function (child) {\n if (found) {\n return;\n }\n found = child && child.key === key && !child.props[showProp];\n });\n }\n return found;\n}\n\nexport function isSameChildren(c1, c2, showProp) {\n var same = c1.length === c2.length;\n if (same) {\n c1.forEach(function (child, index) {\n var child2 = c2[index];\n if (child && child2) {\n if (child && !child2 || !child && child2) {\n same = false;\n } else if (child.key !== child2.key) {\n same = false;\n } else if (showProp && child.props[showProp] !== child2.props[showProp]) {\n same = false;\n }\n }\n });\n }\n return same;\n}\n\nexport function mergeChildren(prev, next) {\n var ret = [];\n\n // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n var nextChildrenPending = {};\n var pendingChildren = [];\n prev.forEach(function (child) {\n if (child && findChildInChildrenByKey(next, child.key)) {\n if (pendingChildren.length) {\n nextChildrenPending[child.key] = pendingChildren;\n pendingChildren = [];\n }\n } else {\n pendingChildren.push(child);\n }\n });\n\n next.forEach(function (child) {\n if (child && Object.prototype.hasOwnProperty.call(nextChildrenPending, child.key)) {\n ret = ret.concat(nextChildrenPending[child.key]);\n }\n ret.push(child);\n });\n\n ret = ret.concat(pendingChildren);\n\n return ret;\n}","var START_EVENT_NAME_MAP = {\n transitionstart: {\n transition: 'transitionstart',\n WebkitTransition: 'webkitTransitionStart',\n MozTransition: 'mozTransitionStart',\n OTransition: 'oTransitionStart',\n msTransition: 'MSTransitionStart'\n },\n\n animationstart: {\n animation: 'animationstart',\n WebkitAnimation: 'webkitAnimationStart',\n MozAnimation: 'mozAnimationStart',\n OAnimation: 'oAnimationStart',\n msAnimation: 'MSAnimationStart'\n }\n};\n\nvar END_EVENT_NAME_MAP = {\n transitionend: {\n transition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'mozTransitionEnd',\n OTransition: 'oTransitionEnd',\n msTransition: 'MSTransitionEnd'\n },\n\n animationend: {\n animation: 'animationend',\n WebkitAnimation: 'webkitAnimationEnd',\n MozAnimation: 'mozAnimationEnd',\n OAnimation: 'oAnimationEnd',\n msAnimation: 'MSAnimationEnd'\n }\n};\n\nvar startEvents = [];\nvar endEvents = [];\n\nfunction detectEvents() {\n var testEl = document.createElement('div');\n var style = testEl.style;\n\n if (!('AnimationEvent' in window)) {\n delete START_EVENT_NAME_MAP.animationstart.animation;\n delete END_EVENT_NAME_MAP.animationend.animation;\n }\n\n if (!('TransitionEvent' in window)) {\n delete START_EVENT_NAME_MAP.transitionstart.transition;\n delete END_EVENT_NAME_MAP.transitionend.transition;\n }\n\n function process(EVENT_NAME_MAP, events) {\n for (var baseEventName in EVENT_NAME_MAP) {\n if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {\n var baseEvents = EVENT_NAME_MAP[baseEventName];\n for (var styleName in baseEvents) {\n if (styleName in style) {\n events.push(baseEvents[styleName]);\n break;\n }\n }\n }\n }\n }\n\n process(START_EVENT_NAME_MAP, startEvents);\n process(END_EVENT_NAME_MAP, endEvents);\n}\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n detectEvents();\n}\n\nfunction addEventListener(node, eventName, eventListener) {\n node.addEventListener(eventName, eventListener, false);\n}\n\nfunction removeEventListener(node, eventName, eventListener) {\n node.removeEventListener(eventName, eventListener, false);\n}\n\nvar TransitionEvents = {\n // Start events\n startEvents: startEvents,\n\n addStartEventListener: function addStartEventListener(node, eventListener) {\n if (startEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n startEvents.forEach(function (startEvent) {\n addEventListener(node, startEvent, eventListener);\n });\n },\n removeStartEventListener: function removeStartEventListener(node, eventListener) {\n if (startEvents.length === 0) {\n return;\n }\n startEvents.forEach(function (startEvent) {\n removeEventListener(node, startEvent, eventListener);\n });\n },\n\n\n // End events\n endEvents: endEvents,\n\n addEndEventListener: function addEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n endEvents.forEach(function (endEvent) {\n addEventListener(node, endEvent, eventListener);\n });\n },\n removeEndEventListener: function removeEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n return;\n }\n endEvents.forEach(function (endEvent) {\n removeEventListener(node, endEvent, eventListener);\n });\n }\n};\n\nexport default TransitionEvents;","import _typeof from 'babel-runtime/helpers/typeof';\nimport Event from './Event';\nimport classes from 'component-classes';\n\nvar isCssAnimationSupported = Event.endEvents.length !== 0;\nvar capitalPrefixes = ['Webkit', 'Moz', 'O',\n// ms is special .... !\n'ms'];\nvar prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];\n\nfunction getStyleProperty(node, name) {\n // old ff need null, https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle\n var style = window.getComputedStyle(node, null);\n var ret = '';\n for (var i = 0; i < prefixes.length; i++) {\n ret = style.getPropertyValue(prefixes[i] + name);\n if (ret) {\n break;\n }\n }\n return ret;\n}\n\nfunction fixBrowserByTimeout(node) {\n if (isCssAnimationSupported) {\n var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0;\n var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0;\n var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;\n var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;\n var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);\n // sometimes, browser bug\n node.rcEndAnimTimeout = setTimeout(function () {\n node.rcEndAnimTimeout = null;\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n }, time * 1000 + 200);\n }\n}\n\nfunction clearBrowserBugTimeout(node) {\n if (node.rcEndAnimTimeout) {\n clearTimeout(node.rcEndAnimTimeout);\n node.rcEndAnimTimeout = null;\n }\n}\n\nvar cssAnimation = function cssAnimation(node, transitionName, endCallback) {\n var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';\n var className = nameIsObj ? transitionName.name : transitionName;\n var activeClassName = nameIsObj ? transitionName.active : transitionName + '-active';\n var end = endCallback;\n var start = void 0;\n var active = void 0;\n var nodeClasses = classes(node);\n\n if (endCallback && Object.prototype.toString.call(endCallback) === '[object Object]') {\n end = endCallback.end;\n start = endCallback.start;\n active = endCallback.active;\n }\n\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n\n node.rcEndListener = function (e) {\n if (e && e.target !== node) {\n return;\n }\n\n if (node.rcAnimTimeout) {\n clearTimeout(node.rcAnimTimeout);\n node.rcAnimTimeout = null;\n }\n\n clearBrowserBugTimeout(node);\n\n nodeClasses.remove(className);\n nodeClasses.remove(activeClassName);\n\n Event.removeEndEventListener(node, node.rcEndListener);\n node.rcEndListener = null;\n\n // Usually this optional end is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (end) {\n end();\n }\n };\n\n Event.addEndEventListener(node, node.rcEndListener);\n\n if (start) {\n start();\n }\n nodeClasses.add(className);\n\n node.rcAnimTimeout = setTimeout(function () {\n node.rcAnimTimeout = null;\n nodeClasses.add(activeClassName);\n if (active) {\n setTimeout(active, 0);\n }\n fixBrowserByTimeout(node);\n // 30ms for firefox\n }, 30);\n\n return {\n stop: function stop() {\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n }\n };\n};\n\ncssAnimation.style = function (node, style, callback) {\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n\n node.rcEndListener = function (e) {\n if (e && e.target !== node) {\n return;\n }\n\n if (node.rcAnimTimeout) {\n clearTimeout(node.rcAnimTimeout);\n node.rcAnimTimeout = null;\n }\n\n clearBrowserBugTimeout(node);\n\n Event.removeEndEventListener(node, node.rcEndListener);\n node.rcEndListener = null;\n\n // Usually this optional callback is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (callback) {\n callback();\n }\n };\n\n Event.addEndEventListener(node, node.rcEndListener);\n\n node.rcAnimTimeout = setTimeout(function () {\n for (var s in style) {\n if (style.hasOwnProperty(s)) {\n node.style[s] = style[s];\n }\n }\n node.rcAnimTimeout = null;\n fixBrowserByTimeout(node);\n }, 0);\n};\n\ncssAnimation.setTransition = function (node, p, value) {\n var property = p;\n var v = value;\n if (value === undefined) {\n v = property;\n property = '';\n }\n property = property || '';\n capitalPrefixes.forEach(function (prefix) {\n node.style[prefix + 'Transition' + property] = v;\n });\n};\n\ncssAnimation.isCssAnimationSupported = isCssAnimationSupported;\n\nexport { isCssAnimationSupported };\n\nexport default cssAnimation;","var util = {\n isAppearSupported: function isAppearSupported(props) {\n return props.transitionName && props.transitionAppear || props.animation.appear;\n },\n isEnterSupported: function isEnterSupported(props) {\n return props.transitionName && props.transitionEnter || props.animation.enter;\n },\n isLeaveSupported: function isLeaveSupported(props) {\n return props.transitionName && props.transitionLeave || props.animation.leave;\n },\n allowAppearCallback: function allowAppearCallback(props) {\n return props.transitionAppear || props.animation.appear;\n },\n allowEnterCallback: function allowEnterCallback(props) {\n return props.transitionEnter || props.animation.enter;\n },\n allowLeaveCallback: function allowLeaveCallback(props) {\n return props.transitionLeave || props.animation.leave;\n }\n};\nexport default util;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport cssAnimate, { isCssAnimationSupported } from 'css-animation';\nimport animUtil from './util/animate';\n\nvar transitionMap = {\n enter: 'transitionEnter',\n appear: 'transitionAppear',\n leave: 'transitionLeave'\n};\n\nvar AnimateChild = function (_React$Component) {\n _inherits(AnimateChild, _React$Component);\n\n function AnimateChild() {\n _classCallCheck(this, AnimateChild);\n\n return _possibleConstructorReturn(this, (AnimateChild.__proto__ || Object.getPrototypeOf(AnimateChild)).apply(this, arguments));\n }\n\n _createClass(AnimateChild, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stop();\n }\n }, {\n key: 'componentWillEnter',\n value: function componentWillEnter(done) {\n if (animUtil.isEnterSupported(this.props)) {\n this.transition('enter', done);\n } else {\n done();\n }\n }\n }, {\n key: 'componentWillAppear',\n value: function componentWillAppear(done) {\n if (animUtil.isAppearSupported(this.props)) {\n this.transition('appear', done);\n } else {\n done();\n }\n }\n }, {\n key: 'componentWillLeave',\n value: function componentWillLeave(done) {\n if (animUtil.isLeaveSupported(this.props)) {\n this.transition('leave', done);\n } else {\n // always sync, do not interupt with react component life cycle\n // update hidden -> animate hidden ->\n // didUpdate -> animate leave -> unmount (if animate is none)\n done();\n }\n }\n }, {\n key: 'transition',\n value: function transition(animationType, finishCallback) {\n var _this2 = this;\n\n var node = ReactDOM.findDOMNode(this);\n var props = this.props;\n var transitionName = props.transitionName;\n var nameIsObj = typeof transitionName === 'object';\n this.stop();\n var end = function end() {\n _this2.stopper = null;\n finishCallback();\n };\n if ((isCssAnimationSupported || !props.animation[animationType]) && transitionName && props[transitionMap[animationType]]) {\n var name = nameIsObj ? transitionName[animationType] : transitionName + '-' + animationType;\n var activeName = name + '-active';\n if (nameIsObj && transitionName[animationType + 'Active']) {\n activeName = transitionName[animationType + 'Active'];\n }\n this.stopper = cssAnimate(node, {\n name: name,\n active: activeName\n }, end);\n } else {\n this.stopper = props.animation[animationType](node, end);\n }\n }\n }, {\n key: 'stop',\n value: function stop() {\n var stopper = this.stopper;\n if (stopper) {\n this.stopper = null;\n stopper.stop();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return AnimateChild;\n}(React.Component);\n\nAnimateChild.propTypes = {\n children: PropTypes.any,\n animation: PropTypes.any,\n transitionName: PropTypes.any\n};\nexport default AnimateChild;","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport unsafeLifecyclesPolyfill from 'rc-util/es/unsafeLifecyclesPolyfill';\nimport { toArrayChildren, mergeChildren, findShownChildInChildrenByKey, findChildInChildrenByKey, isSameChildren } from './ChildrenUtils';\nimport AnimateChild from './AnimateChild';\nimport animUtil from './util/animate';\n\nvar defaultKey = 'rc_animate_' + Date.now();\n\nfunction getChildrenFromProps(props) {\n var children = props.children;\n if (React.isValidElement(children)) {\n if (!children.key) {\n return React.cloneElement(children, {\n key: defaultKey\n });\n }\n }\n return children;\n}\n\nfunction noop() {}\n\nvar Animate = function (_React$Component) {\n _inherits(Animate, _React$Component);\n\n // eslint-disable-line\n\n function Animate(props) {\n _classCallCheck(this, Animate);\n\n var _this = _possibleConstructorReturn(this, (Animate.__proto__ || Object.getPrototypeOf(Animate)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.currentlyAnimatingKeys = {};\n _this.keysToEnter = [];\n _this.keysToLeave = [];\n\n _this.state = {\n children: toArrayChildren(getChildrenFromProps(props))\n };\n\n _this.childrenRefs = {};\n return _this;\n }\n\n _createClass(Animate, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var showProp = this.props.showProp;\n var children = this.state.children;\n if (showProp) {\n children = children.filter(function (child) {\n return !!child.props[showProp];\n });\n }\n children.forEach(function (child) {\n if (child) {\n _this2.performAppear(child.key);\n }\n });\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _this3 = this;\n\n this.nextProps = nextProps;\n var nextChildren = toArrayChildren(getChildrenFromProps(nextProps));\n var props = this.props;\n // exclusive needs immediate response\n if (props.exclusive) {\n Object.keys(this.currentlyAnimatingKeys).forEach(function (key) {\n _this3.stop(key);\n });\n }\n var showProp = props.showProp;\n var currentlyAnimatingKeys = this.currentlyAnimatingKeys;\n // last props children if exclusive\n var currentChildren = props.exclusive ? toArrayChildren(getChildrenFromProps(props)) : this.state.children;\n // in case destroy in showProp mode\n var newChildren = [];\n if (showProp) {\n currentChildren.forEach(function (currentChild) {\n var nextChild = currentChild && findChildInChildrenByKey(nextChildren, currentChild.key);\n var newChild = void 0;\n if ((!nextChild || !nextChild.props[showProp]) && currentChild.props[showProp]) {\n newChild = React.cloneElement(nextChild || currentChild, _defineProperty({}, showProp, true));\n } else {\n newChild = nextChild;\n }\n if (newChild) {\n newChildren.push(newChild);\n }\n });\n nextChildren.forEach(function (nextChild) {\n if (!nextChild || !findChildInChildrenByKey(currentChildren, nextChild.key)) {\n newChildren.push(nextChild);\n }\n });\n } else {\n newChildren = mergeChildren(currentChildren, nextChildren);\n }\n\n // need render to avoid update\n this.setState({\n children: newChildren\n });\n\n nextChildren.forEach(function (child) {\n var key = child && child.key;\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n var hasPrev = child && findChildInChildrenByKey(currentChildren, key);\n if (showProp) {\n var showInNext = child.props[showProp];\n if (hasPrev) {\n var showInNow = findShownChildInChildrenByKey(currentChildren, key, showProp);\n if (!showInNow && showInNext) {\n _this3.keysToEnter.push(key);\n }\n } else if (showInNext) {\n _this3.keysToEnter.push(key);\n }\n } else if (!hasPrev) {\n _this3.keysToEnter.push(key);\n }\n });\n\n currentChildren.forEach(function (child) {\n var key = child && child.key;\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n var hasNext = child && findChildInChildrenByKey(nextChildren, key);\n if (showProp) {\n var showInNow = child.props[showProp];\n if (hasNext) {\n var showInNext = findShownChildInChildrenByKey(nextChildren, key, showProp);\n if (!showInNext && showInNow) {\n _this3.keysToLeave.push(key);\n }\n } else if (showInNow) {\n _this3.keysToLeave.push(key);\n }\n } else if (!hasNext) {\n _this3.keysToLeave.push(key);\n }\n });\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var keysToEnter = this.keysToEnter;\n this.keysToEnter = [];\n keysToEnter.forEach(this.performEnter);\n var keysToLeave = this.keysToLeave;\n this.keysToLeave = [];\n keysToLeave.forEach(this.performLeave);\n }\n }, {\n key: 'isValidChildByKey',\n value: function isValidChildByKey(currentChildren, key) {\n var showProp = this.props.showProp;\n if (showProp) {\n return findShownChildInChildrenByKey(currentChildren, key, showProp);\n }\n return findChildInChildrenByKey(currentChildren, key);\n }\n }, {\n key: 'stop',\n value: function stop(key) {\n delete this.currentlyAnimatingKeys[key];\n var component = this.childrenRefs[key];\n if (component) {\n component.stop();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var props = this.props;\n this.nextProps = props;\n var stateChildren = this.state.children;\n var children = null;\n if (stateChildren) {\n children = stateChildren.map(function (child) {\n if (child === null || child === undefined) {\n return child;\n }\n if (!child.key) {\n throw new Error('must set key for children');\n }\n return React.createElement(\n AnimateChild,\n {\n key: child.key,\n ref: function ref(node) {\n _this4.childrenRefs[child.key] = node;\n },\n animation: props.animation,\n transitionName: props.transitionName,\n transitionEnter: props.transitionEnter,\n transitionAppear: props.transitionAppear,\n transitionLeave: props.transitionLeave\n },\n child\n );\n });\n }\n var Component = props.component;\n if (Component) {\n var passedProps = props;\n if (typeof Component === 'string') {\n passedProps = _extends({\n className: props.className,\n style: props.style\n }, props.componentProps);\n }\n return React.createElement(\n Component,\n passedProps,\n children\n );\n }\n return children[0] || null;\n }\n }]);\n\n return Animate;\n}(React.Component);\n\nAnimate.isAnimate = true;\nAnimate.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n component: PropTypes.any,\n componentProps: PropTypes.object,\n animation: PropTypes.object,\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n transitionEnter: PropTypes.bool,\n transitionAppear: PropTypes.bool,\n exclusive: PropTypes.bool,\n transitionLeave: PropTypes.bool,\n onEnd: PropTypes.func,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n onAppear: PropTypes.func,\n showProp: PropTypes.string,\n children: PropTypes.node\n};\nAnimate.defaultProps = {\n animation: {},\n component: 'span',\n componentProps: {},\n transitionEnter: true,\n transitionLeave: true,\n transitionAppear: false,\n onEnd: noop,\n onEnter: noop,\n onLeave: noop,\n onAppear: noop\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this5 = this;\n\n this.performEnter = function (key) {\n // may already remove by exclusive\n if (_this5.childrenRefs[key]) {\n _this5.currentlyAnimatingKeys[key] = true;\n _this5.childrenRefs[key].componentWillEnter(_this5.handleDoneAdding.bind(_this5, key, 'enter'));\n }\n };\n\n this.performAppear = function (key) {\n if (_this5.childrenRefs[key]) {\n _this5.currentlyAnimatingKeys[key] = true;\n _this5.childrenRefs[key].componentWillAppear(_this5.handleDoneAdding.bind(_this5, key, 'appear'));\n }\n };\n\n this.handleDoneAdding = function (key, type) {\n var props = _this5.props;\n delete _this5.currentlyAnimatingKeys[key];\n // if update on exclusive mode, skip check\n if (props.exclusive && props !== _this5.nextProps) {\n return;\n }\n var currentChildren = toArrayChildren(getChildrenFromProps(props));\n if (!_this5.isValidChildByKey(currentChildren, key)) {\n // exclusive will not need this\n _this5.performLeave(key);\n } else if (type === 'appear') {\n if (animUtil.allowAppearCallback(props)) {\n props.onAppear(key);\n props.onEnd(key, true);\n }\n } else if (animUtil.allowEnterCallback(props)) {\n props.onEnter(key);\n props.onEnd(key, true);\n }\n };\n\n this.performLeave = function (key) {\n // may already remove by exclusive\n if (_this5.childrenRefs[key]) {\n _this5.currentlyAnimatingKeys[key] = true;\n _this5.childrenRefs[key].componentWillLeave(_this5.handleDoneLeaving.bind(_this5, key));\n }\n };\n\n this.handleDoneLeaving = function (key) {\n var props = _this5.props;\n delete _this5.currentlyAnimatingKeys[key];\n // if update on exclusive mode, skip check\n if (props.exclusive && props !== _this5.nextProps) {\n return;\n }\n var currentChildren = toArrayChildren(getChildrenFromProps(props));\n // in case state change is too fast\n if (_this5.isValidChildByKey(currentChildren, key)) {\n _this5.performEnter(key);\n } else {\n var end = function end() {\n if (animUtil.allowLeaveCallback(props)) {\n props.onLeave(key);\n props.onEnd(key, false);\n }\n };\n if (!isSameChildren(_this5.state.children, currentChildren, props.showProp)) {\n _this5.setState({\n children: currentChildren\n }, end);\n } else {\n end();\n }\n }\n };\n};\n\nexport default unsafeLifecyclesPolyfill(Animate);","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nvar LazyRenderBox = function (_Component) {\n _inherits(LazyRenderBox, _Component);\n\n function LazyRenderBox() {\n _classCallCheck(this, LazyRenderBox);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n LazyRenderBox.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return nextProps.hiddenClassName || nextProps.visible;\n };\n\n LazyRenderBox.prototype.render = function render() {\n var _props = this.props,\n hiddenClassName = _props.hiddenClassName,\n visible = _props.visible,\n props = _objectWithoutProperties(_props, ['hiddenClassName', 'visible']);\n\n if (hiddenClassName || React.Children.count(props.children) > 1) {\n if (!visible && hiddenClassName) {\n props.className += ' ' + hiddenClassName;\n }\n return React.createElement('div', props);\n }\n\n return React.Children.only(props.children);\n };\n\n return LazyRenderBox;\n}(Component);\n\nLazyRenderBox.propTypes = {\n children: PropTypes.any,\n className: PropTypes.string,\n visible: PropTypes.bool,\n hiddenClassName: PropTypes.string\n};\n\n\nexport default LazyRenderBox;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport LazyRenderBox from './LazyRenderBox';\n\nvar PopupInner = function (_Component) {\n _inherits(PopupInner, _Component);\n\n function PopupInner() {\n _classCallCheck(this, PopupInner);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n PopupInner.prototype.render = function render() {\n var props = this.props;\n var className = props.className;\n if (!props.visible) {\n className += ' ' + props.hiddenClassName;\n }\n return React.createElement(\n 'div',\n {\n className: className,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onMouseDown: props.onMouseDown,\n onTouchStart: props.onTouchStart,\n style: props.style\n },\n React.createElement(\n LazyRenderBox,\n { className: props.prefixCls + '-content', visible: props.visible },\n props.children\n )\n );\n };\n\n return PopupInner;\n}(Component);\n\nPopupInner.propTypes = {\n hiddenClassName: PropTypes.string,\n className: PropTypes.string,\n prefixCls: PropTypes.string,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseDown: PropTypes.func,\n onTouchStart: PropTypes.func,\n children: PropTypes.any\n};\n\n\nexport default PopupInner;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport Align from 'rc-align';\nimport Animate from 'rc-animate';\nimport PopupInner from './PopupInner';\nimport LazyRenderBox from './LazyRenderBox';\nimport { saveRef } from './utils';\n\nvar Popup = function (_Component) {\n _inherits(Popup, _Component);\n\n function Popup(props) {\n _classCallCheck(this, Popup);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n // Used for stretch\n stretchChecked: false,\n targetWidth: undefined,\n targetHeight: undefined\n };\n\n _this.savePopupRef = saveRef.bind(_this, 'popupInstance');\n _this.saveAlignRef = saveRef.bind(_this, 'alignInstance');\n return _this;\n }\n\n Popup.prototype.componentDidMount = function componentDidMount() {\n this.rootNode = this.getPopupDomNode();\n this.setStretchSize();\n };\n\n Popup.prototype.componentDidUpdate = function componentDidUpdate() {\n this.setStretchSize();\n };\n\n // Record size if stretch needed\n\n\n Popup.prototype.getPopupDomNode = function getPopupDomNode() {\n return ReactDOM.findDOMNode(this.popupInstance);\n };\n\n // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n\n Popup.prototype.getMaskTransitionName = function getMaskTransitionName() {\n var props = this.props;\n var transitionName = props.maskTransitionName;\n var animation = props.maskAnimation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n };\n\n Popup.prototype.getTransitionName = function getTransitionName() {\n var props = this.props;\n var transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = props.prefixCls + '-' + props.animation;\n }\n return transitionName;\n };\n\n Popup.prototype.getClassName = function getClassName(currentAlignClassName) {\n return this.props.prefixCls + ' ' + this.props.className + ' ' + currentAlignClassName;\n };\n\n Popup.prototype.getPopupElement = function getPopupElement() {\n var _this2 = this;\n\n var savePopupRef = this.savePopupRef;\n var _state = this.state,\n stretchChecked = _state.stretchChecked,\n targetHeight = _state.targetHeight,\n targetWidth = _state.targetWidth;\n var _props = this.props,\n align = _props.align,\n visible = _props.visible,\n prefixCls = _props.prefixCls,\n style = _props.style,\n getClassNameFromAlign = _props.getClassNameFromAlign,\n destroyPopupOnHide = _props.destroyPopupOnHide,\n stretch = _props.stretch,\n children = _props.children,\n onMouseEnter = _props.onMouseEnter,\n onMouseLeave = _props.onMouseLeave,\n onMouseDown = _props.onMouseDown,\n onTouchStart = _props.onTouchStart;\n\n var className = this.getClassName(this.currentAlignClassName || getClassNameFromAlign(align));\n var hiddenClassName = prefixCls + '-hidden';\n\n if (!visible) {\n this.currentAlignClassName = null;\n }\n\n var sizeStyle = {};\n if (stretch) {\n // Stretch with target\n if (stretch.indexOf('height') !== -1) {\n sizeStyle.height = targetHeight;\n } else if (stretch.indexOf('minHeight') !== -1) {\n sizeStyle.minHeight = targetHeight;\n }\n if (stretch.indexOf('width') !== -1) {\n sizeStyle.width = targetWidth;\n } else if (stretch.indexOf('minWidth') !== -1) {\n sizeStyle.minWidth = targetWidth;\n }\n\n // Delay force align to makes ui smooth\n if (!stretchChecked) {\n sizeStyle.visibility = 'hidden';\n setTimeout(function () {\n if (_this2.alignInstance) {\n _this2.alignInstance.forceAlign();\n }\n }, 0);\n }\n }\n\n var newStyle = _extends({}, sizeStyle, style, this.getZIndexStyle());\n\n var popupInnerProps = {\n className: className,\n prefixCls: prefixCls,\n ref: savePopupRef,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onMouseDown,\n onTouchStart: onTouchStart,\n style: newStyle\n };\n if (destroyPopupOnHide) {\n return React.createElement(\n Animate,\n {\n component: '',\n exclusive: true,\n transitionAppear: true,\n transitionName: this.getTransitionName()\n },\n visible ? React.createElement(\n Align,\n {\n target: this.getAlignTarget(),\n key: 'popup',\n ref: this.saveAlignRef,\n monitorWindowResize: true,\n align: align,\n onAlign: this.onAlign\n },\n React.createElement(\n PopupInner,\n _extends({\n visible: true\n }, popupInnerProps),\n children\n )\n ) : null\n );\n }\n\n return React.createElement(\n Animate,\n {\n component: '',\n exclusive: true,\n transitionAppear: true,\n transitionName: this.getTransitionName(),\n showProp: 'xVisible'\n },\n React.createElement(\n Align,\n {\n target: this.getAlignTarget(),\n key: 'popup',\n ref: this.saveAlignRef,\n monitorWindowResize: true,\n xVisible: visible,\n childrenProps: { visible: 'xVisible' },\n disabled: !visible,\n align: align,\n onAlign: this.onAlign\n },\n React.createElement(\n PopupInner,\n _extends({\n hiddenClassName: hiddenClassName\n }, popupInnerProps),\n children\n )\n )\n );\n };\n\n Popup.prototype.getZIndexStyle = function getZIndexStyle() {\n var style = {};\n var props = this.props;\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n return style;\n };\n\n Popup.prototype.getMaskElement = function getMaskElement() {\n var props = this.props;\n var maskElement = void 0;\n if (props.mask) {\n var maskTransition = this.getMaskTransitionName();\n maskElement = React.createElement(LazyRenderBox, {\n style: this.getZIndexStyle(),\n key: 'mask',\n className: props.prefixCls + '-mask',\n hiddenClassName: props.prefixCls + '-mask-hidden',\n visible: props.visible\n });\n if (maskTransition) {\n maskElement = React.createElement(\n Animate,\n {\n key: 'mask',\n showProp: 'visible',\n transitionAppear: true,\n component: '',\n transitionName: maskTransition\n },\n maskElement\n );\n }\n }\n return maskElement;\n };\n\n Popup.prototype.render = function render() {\n return React.createElement(\n 'div',\n null,\n this.getMaskElement(),\n this.getPopupElement()\n );\n };\n\n return Popup;\n}(Component);\n\nPopup.propTypes = {\n visible: PropTypes.bool,\n style: PropTypes.object,\n getClassNameFromAlign: PropTypes.func,\n onAlign: PropTypes.func,\n getRootDomNode: PropTypes.func,\n align: PropTypes.any,\n destroyPopupOnHide: PropTypes.bool,\n className: PropTypes.string,\n prefixCls: PropTypes.string,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseDown: PropTypes.func,\n onTouchStart: PropTypes.func,\n stretch: PropTypes.string,\n children: PropTypes.node,\n point: PropTypes.shape({\n pageX: PropTypes.number,\n pageY: PropTypes.number\n })\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this3 = this;\n\n this.onAlign = function (popupDomNode, align) {\n var props = _this3.props;\n var currentAlignClassName = props.getClassNameFromAlign(align);\n // FIX: https://github.com/react-component/trigger/issues/56\n // FIX: https://github.com/react-component/tooltip/issues/79\n if (_this3.currentAlignClassName !== currentAlignClassName) {\n _this3.currentAlignClassName = currentAlignClassName;\n popupDomNode.className = _this3.getClassName(currentAlignClassName);\n }\n props.onAlign(popupDomNode, align);\n };\n\n this.setStretchSize = function () {\n var _props2 = _this3.props,\n stretch = _props2.stretch,\n getRootDomNode = _props2.getRootDomNode,\n visible = _props2.visible;\n var _state2 = _this3.state,\n stretchChecked = _state2.stretchChecked,\n targetHeight = _state2.targetHeight,\n targetWidth = _state2.targetWidth;\n\n\n if (!stretch || !visible) {\n if (stretchChecked) {\n _this3.setState({ stretchChecked: false });\n }\n return;\n }\n\n var $ele = getRootDomNode();\n if (!$ele) return;\n\n var height = $ele.offsetHeight;\n var width = $ele.offsetWidth;\n\n if (targetHeight !== height || targetWidth !== width || !stretchChecked) {\n _this3.setState({\n stretchChecked: true,\n targetHeight: height,\n targetWidth: width\n });\n }\n };\n\n this.getTargetElement = function () {\n return _this3.props.getRootDomNode();\n };\n\n this.getAlignTarget = function () {\n var point = _this3.props.point;\n\n if (point) {\n return point;\n }\n return _this3.getTargetElement;\n };\n};\n\nexport default Popup;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { findDOMNode, createPortal } from 'react-dom';\nimport { polyfill } from 'react-lifecycles-compat';\nimport contains from 'rc-util/es/Dom/contains';\nimport addEventListener from 'rc-util/es/Dom/addEventListener';\nimport ContainerRender from 'rc-util/es/ContainerRender';\nimport Portal from 'rc-util/es/Portal';\nimport classNames from 'classnames';\n\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils';\nimport Popup from './Popup';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument() {\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n\nvar IS_REACT_16 = !!createPortal;\n\nvar contextTypes = {\n rcTrigger: PropTypes.shape({\n onPopupMouseDown: PropTypes.func\n })\n};\n\nvar Trigger = function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n function Trigger(props) {\n _classCallCheck(this, Trigger);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _initialiseProps.call(_this);\n\n var popupVisible = void 0;\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: popupVisible,\n popupVisible: popupVisible\n };\n\n ALL_HANDLERS.forEach(function (h) {\n _this['fire' + h] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n Trigger.prototype.getChildContext = function getChildContext() {\n return {\n rcTrigger: {\n onPopupMouseDown: this.onPopupMouseDown\n }\n };\n };\n\n Trigger.prototype.componentDidMount = function componentDidMount() {\n this.componentDidUpdate({}, {\n popupVisible: this.state.popupVisible\n });\n };\n\n Trigger.prototype.componentDidUpdate = function componentDidUpdate(_, prevState) {\n var props = this.props;\n var state = this.state;\n var triggerAfterPopupVisibleChange = function triggerAfterPopupVisibleChange() {\n if (prevState.popupVisible !== state.popupVisible) {\n props.afterPopupVisibleChange(state.popupVisible);\n }\n };\n if (!IS_REACT_16) {\n this.renderComponent(null, triggerAfterPopupVisibleChange);\n }\n\n // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n if (state.popupVisible) {\n var currentDocument = void 0;\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument();\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n }\n // always hide on mobile\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument();\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n }\n // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument();\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n }\n // close popup when trigger type contains 'onContextMenu' and window is blur.\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n return;\n }\n\n this.clearOutsideHandler();\n };\n\n Trigger.prototype.componentWillUnmount = function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n };\n\n Trigger.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n };\n\n Trigger.prototype.getPopupDomNode = function getPopupDomNode() {\n // for test\n if (this._component && this._component.getPopupDomNode) {\n return this._component.getPopupDomNode();\n }\n return null;\n };\n\n Trigger.prototype.getPopupAlign = function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n return popupAlign;\n };\n\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n Trigger.prototype.setPopupVisible = function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n\n\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({ popupVisible: popupVisible, prevPopupVisible: prevPopupVisible });\n }\n this.props.onPopupVisibleChange(popupVisible);\n }\n\n // Always record the point position since mouseEnterDelay will delay the show\n if (alignPoint && event) {\n this.setPoint(event);\n }\n };\n\n Trigger.prototype.delaySetPopupVisible = function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n if (delay) {\n var point = event ? { pageX: event.pageX, pageY: event.pageY } : null;\n this.delayTimer = setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n };\n\n Trigger.prototype.clearDelayTimer = function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n };\n\n Trigger.prototype.clearOutsideHandler = function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n };\n\n Trigger.prototype.createTwoChains = function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n if (childPros[event] && props[event]) {\n return this['fire' + event];\n }\n return childPros[event] || props[event];\n };\n\n Trigger.prototype.isClickToShow = function isClickToShow() {\n var _props = this.props,\n action = _props.action,\n showAction = _props.showAction;\n\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n };\n\n Trigger.prototype.isContextMenuToShow = function isContextMenuToShow() {\n var _props2 = this.props,\n action = _props2.action,\n showAction = _props2.showAction;\n\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n };\n\n Trigger.prototype.isClickToHide = function isClickToHide() {\n var _props3 = this.props,\n action = _props3.action,\n hideAction = _props3.hideAction;\n\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n };\n\n Trigger.prototype.isMouseEnterToShow = function isMouseEnterToShow() {\n var _props4 = this.props,\n action = _props4.action,\n showAction = _props4.showAction;\n\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n };\n\n Trigger.prototype.isMouseLeaveToHide = function isMouseLeaveToHide() {\n var _props5 = this.props,\n action = _props5.action,\n hideAction = _props5.hideAction;\n\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n };\n\n Trigger.prototype.isFocusToShow = function isFocusToShow() {\n var _props6 = this.props,\n action = _props6.action,\n showAction = _props6.showAction;\n\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n };\n\n Trigger.prototype.isBlurToHide = function isBlurToHide() {\n var _props7 = this.props,\n action = _props7.action,\n hideAction = _props7.hideAction;\n\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n };\n\n Trigger.prototype.forcePopupAlign = function forcePopupAlign() {\n if (this.state.popupVisible && this._component && this._component.alignInstance) {\n this._component.alignInstance.forceAlign();\n }\n };\n\n Trigger.prototype.fireEvents = function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n if (childCallback) {\n childCallback(e);\n }\n var callback = this.props[type];\n if (callback) {\n callback(e);\n }\n };\n\n Trigger.prototype.close = function close() {\n this.setPopupVisible(false);\n };\n\n Trigger.prototype.render = function render() {\n var _this3 = this;\n\n var popupVisible = this.state.popupVisible;\n var _props8 = this.props,\n children = _props8.children,\n forceRender = _props8.forceRender,\n alignPoint = _props8.alignPoint,\n className = _props8.className;\n\n var child = React.Children.only(children);\n var newChildProps = { key: 'trigger' };\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n }\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n }\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter;\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n }\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n }\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n }\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n var trigger = React.cloneElement(child, newChildProps);\n\n if (!IS_REACT_16) {\n return React.createElement(\n ContainerRender,\n {\n parent: this,\n visible: popupVisible,\n autoMount: false,\n forceRender: forceRender,\n getComponent: this.getComponent,\n getContainer: this.getContainer\n },\n function (_ref2) {\n var renderComponent = _ref2.renderComponent;\n\n _this3.renderComponent = renderComponent;\n return trigger;\n }\n );\n }\n\n var portal = void 0;\n // prevent unmounting after it's rendered\n if (popupVisible || this._component || forceRender) {\n portal = React.createElement(\n Portal,\n { key: 'portal', getContainer: this.getContainer, didUpdate: this.handlePortalUpdate },\n this.getComponent()\n );\n }\n\n return [trigger, portal];\n };\n\n return Trigger;\n}(React.Component);\n\nTrigger.propTypes = {\n children: PropTypes.any,\n action: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n showAction: PropTypes.any,\n hideAction: PropTypes.any,\n getPopupClassNameFromAlign: PropTypes.any,\n onPopupVisibleChange: PropTypes.func,\n afterPopupVisibleChange: PropTypes.func,\n popup: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,\n popupStyle: PropTypes.object,\n prefixCls: PropTypes.string,\n popupClassName: PropTypes.string,\n className: PropTypes.string,\n popupPlacement: PropTypes.string,\n builtinPlacements: PropTypes.object,\n popupTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n popupAnimation: PropTypes.any,\n mouseEnterDelay: PropTypes.number,\n mouseLeaveDelay: PropTypes.number,\n zIndex: PropTypes.number,\n focusDelay: PropTypes.number,\n blurDelay: PropTypes.number,\n getPopupContainer: PropTypes.func,\n getDocument: PropTypes.func,\n forceRender: PropTypes.bool,\n destroyPopupOnHide: PropTypes.bool,\n mask: PropTypes.bool,\n maskClosable: PropTypes.bool,\n onPopupAlign: PropTypes.func,\n popupAlign: PropTypes.object,\n popupVisible: PropTypes.bool,\n defaultPopupVisible: PropTypes.bool,\n maskTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n maskAnimation: PropTypes.string,\n stretch: PropTypes.string,\n alignPoint: PropTypes.bool // Maybe we can support user pass position in the future\n};\nTrigger.contextTypes = contextTypes;\nTrigger.childContextTypes = contextTypes;\nTrigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: []\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this4 = this;\n\n this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this4.props.mouseEnterDelay;\n\n _this4.fireEvents('onMouseEnter', e);\n _this4.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n this.onMouseMove = function (e) {\n _this4.fireEvents('onMouseMove', e);\n _this4.setPoint(e);\n };\n\n this.onMouseLeave = function (e) {\n _this4.fireEvents('onMouseLeave', e);\n _this4.delaySetPopupVisible(false, _this4.props.mouseLeaveDelay);\n };\n\n this.onPopupMouseEnter = function () {\n _this4.clearDelayTimer();\n };\n\n this.onPopupMouseLeave = function (e) {\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && _this4._component && _this4._component.getPopupDomNode && contains(_this4._component.getPopupDomNode(), e.relatedTarget)) {\n return;\n }\n _this4.delaySetPopupVisible(false, _this4.props.mouseLeaveDelay);\n };\n\n this.onFocus = function (e) {\n _this4.fireEvents('onFocus', e);\n // incase focusin and focusout\n _this4.clearDelayTimer();\n if (_this4.isFocusToShow()) {\n _this4.focusTime = Date.now();\n _this4.delaySetPopupVisible(true, _this4.props.focusDelay);\n }\n };\n\n this.onMouseDown = function (e) {\n _this4.fireEvents('onMouseDown', e);\n _this4.preClickTime = Date.now();\n };\n\n this.onTouchStart = function (e) {\n _this4.fireEvents('onTouchStart', e);\n _this4.preTouchTime = Date.now();\n };\n\n this.onBlur = function (e) {\n _this4.fireEvents('onBlur', e);\n _this4.clearDelayTimer();\n if (_this4.isBlurToHide()) {\n _this4.delaySetPopupVisible(false, _this4.props.blurDelay);\n }\n };\n\n this.onContextMenu = function (e) {\n e.preventDefault();\n _this4.fireEvents('onContextMenu', e);\n _this4.setPopupVisible(true, e);\n };\n\n this.onContextMenuClose = function () {\n if (_this4.isContextMenuToShow()) {\n _this4.close();\n }\n };\n\n this.onClick = function (event) {\n _this4.fireEvents('onClick', event);\n // focus will trigger click\n if (_this4.focusTime) {\n var preTime = void 0;\n if (_this4.preClickTime && _this4.preTouchTime) {\n preTime = Math.min(_this4.preClickTime, _this4.preTouchTime);\n } else if (_this4.preClickTime) {\n preTime = _this4.preClickTime;\n } else if (_this4.preTouchTime) {\n preTime = _this4.preTouchTime;\n }\n if (Math.abs(preTime - _this4.focusTime) < 20) {\n return;\n }\n _this4.focusTime = 0;\n }\n _this4.preClickTime = 0;\n _this4.preTouchTime = 0;\n\n // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n if (_this4.isClickToShow() && (_this4.isClickToHide() || _this4.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n var nextVisible = !_this4.state.popupVisible;\n if (_this4.isClickToHide() && !nextVisible || nextVisible && _this4.isClickToShow()) {\n _this4.setPopupVisible(!_this4.state.popupVisible, event);\n }\n };\n\n this.onPopupMouseDown = function () {\n var _context$rcTrigger = _this4.context.rcTrigger,\n rcTrigger = _context$rcTrigger === undefined ? {} : _context$rcTrigger;\n\n _this4.hasPopupMouseDown = true;\n\n clearTimeout(_this4.mouseDownTimeout);\n _this4.mouseDownTimeout = setTimeout(function () {\n _this4.hasPopupMouseDown = false;\n }, 0);\n\n if (rcTrigger.onPopupMouseDown) {\n rcTrigger.onPopupMouseDown.apply(rcTrigger, arguments);\n }\n };\n\n this.onDocumentClick = function (event) {\n if (_this4.props.mask && !_this4.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n var root = findDOMNode(_this4);\n if (!contains(root, target) && !_this4.hasPopupMouseDown) {\n _this4.close();\n }\n };\n\n this.getRootDomNode = function () {\n return findDOMNode(_this4);\n };\n\n this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _props9 = _this4.props,\n popupPlacement = _props9.popupPlacement,\n builtinPlacements = _props9.builtinPlacements,\n prefixCls = _props9.prefixCls,\n alignPoint = _props9.alignPoint,\n getPopupClassNameFromAlign = _props9.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n return className.join(' ');\n };\n\n this.getComponent = function () {\n var _props10 = _this4.props,\n prefixCls = _props10.prefixCls,\n destroyPopupOnHide = _props10.destroyPopupOnHide,\n popupClassName = _props10.popupClassName,\n action = _props10.action,\n onPopupAlign = _props10.onPopupAlign,\n popupAnimation = _props10.popupAnimation,\n popupTransitionName = _props10.popupTransitionName,\n popupStyle = _props10.popupStyle,\n mask = _props10.mask,\n maskAnimation = _props10.maskAnimation,\n maskTransitionName = _props10.maskTransitionName,\n zIndex = _props10.zIndex,\n popup = _props10.popup,\n stretch = _props10.stretch,\n alignPoint = _props10.alignPoint;\n var _state = _this4.state,\n popupVisible = _state.popupVisible,\n point = _state.point;\n\n\n var align = _this4.getPopupAlign();\n\n var mouseProps = {};\n if (_this4.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this4.onPopupMouseEnter;\n }\n if (_this4.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this4.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this4.onPopupMouseDown;\n mouseProps.onTouchStart = _this4.onPopupMouseDown;\n\n return React.createElement(\n Popup,\n _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n action: action,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this4.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this4.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n ref: _this4.savePopup\n }),\n typeof popup === 'function' ? popup() : popup\n );\n };\n\n this.getContainer = function () {\n var props = _this4.props;\n\n var popupContainer = document.createElement('div');\n // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n var mountNode = props.getPopupContainer ? props.getPopupContainer(findDOMNode(_this4)) : props.getDocument().body;\n mountNode.appendChild(popupContainer);\n return popupContainer;\n };\n\n this.setPoint = function (point) {\n var alignPoint = _this4.props.alignPoint;\n\n if (!alignPoint || !point) return;\n\n _this4.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n this.handlePortalUpdate = function () {\n if (_this4.state.prevPopupVisible !== _this4.state.popupVisible) {\n _this4.props.afterPopupVisibleChange(_this4.state.popupVisible);\n }\n };\n\n this.savePopup = function (node) {\n _this4._component = node;\n };\n};\n\npolyfill(Trigger);\n\nexport default Trigger;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\n\nvar targetOffset = [0, 0];\n\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\n\nexport default placements;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nvar Content = function (_React$Component) {\n _inherits(Content, _React$Component);\n\n function Content() {\n _classCallCheck(this, Content);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Content.prototype.componentDidUpdate = function componentDidUpdate() {\n var trigger = this.props.trigger;\n\n if (trigger) {\n trigger.forcePopupAlign();\n }\n };\n\n Content.prototype.render = function render() {\n var _props = this.props,\n overlay = _props.overlay,\n prefixCls = _props.prefixCls,\n id = _props.id;\n\n return React.createElement(\n 'div',\n { className: prefixCls + '-inner', id: id, role: 'tooltip' },\n typeof overlay === 'function' ? overlay() : overlay\n );\n };\n\n return Content;\n}(React.Component);\n\nContent.propTypes = {\n prefixCls: PropTypes.string,\n overlay: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,\n id: PropTypes.string,\n trigger: PropTypes.any\n};\nexport default Content;","import _extends from 'babel-runtime/helpers/extends';\nimport _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Content from './Content';\n\nvar Tooltip = function (_Component) {\n _inherits(Tooltip, _Component);\n\n function Tooltip() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Tooltip);\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 = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.getPopupElement = function () {\n var _this$props = _this.props,\n arrowContent = _this$props.arrowContent,\n overlay = _this$props.overlay,\n prefixCls = _this$props.prefixCls,\n id = _this$props.id;\n\n return [React.createElement(\n 'div',\n { className: prefixCls + '-arrow', key: 'arrow' },\n arrowContent\n ), React.createElement(Content, {\n key: 'content',\n trigger: _this.trigger,\n prefixCls: prefixCls,\n id: id,\n overlay: overlay\n })];\n }, _this.saveTrigger = function (node) {\n _this.trigger = node;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Tooltip.prototype.getPopupDomNode = function getPopupDomNode() {\n return this.trigger.getPopupDomNode();\n };\n\n Tooltip.prototype.render = function render() {\n var _props = this.props,\n overlayClassName = _props.overlayClassName,\n trigger = _props.trigger,\n mouseEnterDelay = _props.mouseEnterDelay,\n mouseLeaveDelay = _props.mouseLeaveDelay,\n overlayStyle = _props.overlayStyle,\n prefixCls = _props.prefixCls,\n children = _props.children,\n onVisibleChange = _props.onVisibleChange,\n afterVisibleChange = _props.afterVisibleChange,\n transitionName = _props.transitionName,\n animation = _props.animation,\n placement = _props.placement,\n align = _props.align,\n destroyTooltipOnHide = _props.destroyTooltipOnHide,\n defaultVisible = _props.defaultVisible,\n getTooltipContainer = _props.getTooltipContainer,\n restProps = _objectWithoutProperties(_props, ['overlayClassName', 'trigger', 'mouseEnterDelay', 'mouseLeaveDelay', 'overlayStyle', 'prefixCls', 'children', 'onVisibleChange', 'afterVisibleChange', 'transitionName', 'animation', 'placement', 'align', 'destroyTooltipOnHide', 'defaultVisible', 'getTooltipContainer']);\n\n var extraProps = _extends({}, restProps);\n if ('visible' in this.props) {\n extraProps.popupVisible = this.props.visible;\n }\n return React.createElement(\n Trigger,\n _extends({\n popupClassName: overlayClassName,\n ref: this.saveTrigger,\n prefixCls: prefixCls,\n popup: this.getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltipOnHide,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps),\n children\n );\n };\n\n return Tooltip;\n}(Component);\n\nTooltip.propTypes = {\n trigger: PropTypes.any,\n children: PropTypes.any,\n defaultVisible: PropTypes.bool,\n visible: PropTypes.bool,\n placement: PropTypes.string,\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n animation: PropTypes.any,\n onVisibleChange: PropTypes.func,\n afterVisibleChange: PropTypes.func,\n overlay: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,\n overlayStyle: PropTypes.object,\n overlayClassName: PropTypes.string,\n prefixCls: PropTypes.string,\n mouseEnterDelay: PropTypes.number,\n mouseLeaveDelay: PropTypes.number,\n getTooltipContainer: PropTypes.func,\n destroyTooltipOnHide: PropTypes.bool,\n align: PropTypes.object,\n arrowContent: PropTypes.any,\n id: PropTypes.string\n};\nTooltip.defaultProps = {\n prefixCls: 'rc-tooltip',\n mouseEnterDelay: 0,\n destroyTooltipOnHide: false,\n mouseLeaveDelay: 0.1,\n align: {},\n placement: 'right',\n trigger: ['hover'],\n arrowContent: null\n};\n\n\nexport default Tooltip;","import Tooltip from './Tooltip';\n\nexport default Tooltip;","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Tooltip from 'rc-tooltip';\nimport Handle from './Handle';\n\nexport default function createSliderWithTooltip(Component) {\n var _class, _temp2;\n\n return _temp2 = _class = function (_React$Component) {\n _inherits(ComponentWrapper, _React$Component);\n\n function ComponentWrapper() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, ComponentWrapper);\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 = _possibleConstructorReturn(this, (_ref = ComponentWrapper.__proto__ || Object.getPrototypeOf(ComponentWrapper)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n visibles: {}\n }, _this.handleTooltipVisibleChange = function (index, visible) {\n _this.setState(function (prevState) {\n return {\n visibles: _extends({}, prevState.visibles, _defineProperty({}, index, visible))\n };\n });\n }, _this.handleWithTooltip = function (_ref2) {\n var value = _ref2.value,\n dragging = _ref2.dragging,\n index = _ref2.index,\n disabled = _ref2.disabled,\n restProps = _objectWithoutProperties(_ref2, ['value', 'dragging', 'index', 'disabled']);\n\n var _this$props = _this.props,\n tipFormatter = _this$props.tipFormatter,\n tipProps = _this$props.tipProps,\n handleStyle = _this$props.handleStyle;\n\n var _tipProps$prefixCls = tipProps.prefixCls,\n prefixCls = _tipProps$prefixCls === undefined ? 'rc-slider-tooltip' : _tipProps$prefixCls,\n _tipProps$overlay = tipProps.overlay,\n overlay = _tipProps$overlay === undefined ? tipFormatter(value) : _tipProps$overlay,\n _tipProps$placement = tipProps.placement,\n placement = _tipProps$placement === undefined ? 'top' : _tipProps$placement,\n _tipProps$visible = tipProps.visible,\n visible = _tipProps$visible === undefined ? false : _tipProps$visible,\n restTooltipProps = _objectWithoutProperties(tipProps, ['prefixCls', 'overlay', 'placement', 'visible']);\n\n var handleStyleWithIndex = void 0;\n if (Array.isArray(handleStyle)) {\n handleStyleWithIndex = handleStyle[index] || handleStyle[0];\n } else {\n handleStyleWithIndex = handleStyle;\n }\n\n return React.createElement(\n Tooltip,\n _extends({}, restTooltipProps, {\n prefixCls: prefixCls,\n overlay: overlay,\n placement: placement,\n visible: !disabled && (_this.state.visibles[index] || dragging) || visible,\n key: index\n }),\n React.createElement(Handle, _extends({}, restProps, {\n style: _extends({}, handleStyleWithIndex),\n value: value,\n onMouseEnter: function onMouseEnter() {\n return _this.handleTooltipVisibleChange(index, true);\n },\n onMouseLeave: function onMouseLeave() {\n return _this.handleTooltipVisibleChange(index, false);\n }\n }))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(ComponentWrapper, [{\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { handle: this.handleWithTooltip }));\n }\n }]);\n\n return ComponentWrapper;\n }(React.Component), _class.propTypes = {\n tipFormatter: PropTypes.func,\n handleStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n tipProps: PropTypes.object\n }, _class.defaultProps = {\n tipFormatter: function tipFormatter(value) {\n return value;\n },\n\n handleStyle: [{}],\n tipProps: {}\n }, _temp2;\n}","import Slider from './Slider';\nimport Range from './Range';\nimport Handle from './Handle';\nimport createSliderWithTooltip from './createSliderWithTooltip';\n\nSlider.Range = Range;\nSlider.Handle = Handle;\nSlider.createSliderWithTooltip = createSliderWithTooltip;\nexport default Slider;\nexport { Range, Handle, createSliderWithTooltip };","import { useMemo } from \"react\";\nimport Slider from \"rc-slider\";\nimport { Slider as SliderType } from \"../../types\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\nimport * as Selectors from \"../../selectors\";\nimport * as Actions from \"../../actionCreators\";\n\ninterface Props {\n id: string;\n band: SliderType;\n onChange(value: number): void;\n}\n\nconst MAX_VALUE = 100;\n// Given a value between 1-100, return the sprite number (0-27)\nexport const spriteNumber = (value: number): number => {\n const percent = value / 100;\n return Math.round(percent * 27);\n};\n\n// Given a sprite number, return the x,y\nexport const spriteOffsets = (number: number): { x: number; y: number } => {\n const x = number % 14;\n const y = Math.floor(number / 14);\n return { x, y };\n};\n\nconst Handle = () =>
    ;\n\nexport default function Band({ id, onChange, band }: Props) {\n const sliders = useTypedSelector(Selectors.getSliders);\n const value = sliders[band];\n const backgroundPosition = useMemo(() => {\n const { x, y } = spriteOffsets(spriteNumber(value));\n const xOffset = x * 15; // Each sprite is 15px wide\n const yOffset = y * 65; // Each sprite is 15px tall\n return `-${xOffset}px -${yOffset}px`;\n }, [value]);\n const focusBand = useActionCreator(Actions.focusBand);\n const usetFocus = useActionCreator(Actions.unsetFocus);\n\n const handleMouseDown = () => focusBand(band);\n\n return (\n
    \n \n
    \n );\n}\n","import classnames from \"classnames\";\n\nimport * as Actions from \"../../actionCreators\";\nimport * as Selectors from \"../../selectors\";\nimport { useActionCreator, useTypedSelector } from \"../../hooks\";\n\nconst EqOn = () => {\n const toggleEq = useActionCreator(Actions.toggleEq);\n const on = useTypedSelector(Selectors.getEqualizerEnabled);\n return (\n
    \n );\n};\n\nexport default EqOn;\n","import { memo } from \"react\";\nimport classnames from \"classnames\";\n\nimport * as Actions from \"../../actionCreators\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\nconst EqAuto = memo(() => {\n const selected = useTypedSelector((state) => state.equalizer.auto);\n const toggleAuto = useActionCreator(Actions.toggleEqAuto);\n return (\n
    \n );\n});\n\nexport default EqAuto;\n","// Adapted from https://github.com/morganherlocker/cubic-spline\n\nexport default function spline(xs, ys) {\n const ks = getNaturalKs(xs, ys);\n const maxX = xs[xs.length - 1];\n const allYs = [];\n let i = 1;\n for (let x = 0; x <= maxX; x++) {\n while (xs[i] < x) i++;\n const t = (x - xs[i - 1]) / (xs[i] - xs[i - 1]);\n const a = ks[i - 1] * (xs[i] - xs[i - 1]) - (ys[i] - ys[i - 1]);\n const b = -ks[i] * (xs[i] - xs[i - 1]) + (ys[i] - ys[i - 1]);\n const q =\n (1 - t) * ys[i - 1] + t * ys[i] + t * (1 - t) * (a * (1 - t) + b * t);\n allYs.push(q);\n }\n return allYs;\n}\n\nfunction getNaturalKs(xs, ys) {\n const ks = xs.map(() => 0);\n const n = xs.length - 1;\n const matrix = zerosMatrix(n + 1, n + 2);\n\n for (\n let i = 1;\n i < n;\n i++ // rows\n ) {\n matrix[i][i - 1] = 1 / (xs[i] - xs[i - 1]);\n matrix[i][i] = 2 * (1 / (xs[i] - xs[i - 1]) + 1 / (xs[i + 1] - xs[i]));\n matrix[i][i + 1] = 1 / (xs[i + 1] - xs[i]);\n matrix[i][n + 1] =\n 3 *\n ((ys[i] - ys[i - 1]) / ((xs[i] - xs[i - 1]) * (xs[i] - xs[i - 1])) +\n (ys[i + 1] - ys[i]) / ((xs[i + 1] - xs[i]) * (xs[i + 1] - xs[i])));\n }\n\n matrix[0][0] = 2 / (xs[1] - xs[0]);\n matrix[0][1] = 1 / (xs[1] - xs[0]);\n matrix[0][n + 1] =\n (3 * (ys[1] - ys[0])) / ((xs[1] - xs[0]) * (xs[1] - xs[0]));\n\n matrix[n][n - 1] = 1 / (xs[n] - xs[n - 1]);\n matrix[n][n] = 2 / (xs[n] - xs[n - 1]);\n matrix[n][n + 1] =\n (3 * (ys[n] - ys[n - 1])) / ((xs[n] - xs[n - 1]) * (xs[n] - xs[n - 1]));\n\n return solve(matrix, ks);\n}\n\nfunction solve(matrix, ks) {\n const m = matrix.length;\n // column\n for (let k = 0; k < m; k++) {\n // pivot for column\n let iMax = 0;\n let vali = Number.NEGATIVE_INFINITY;\n for (let i = k; i < m; i++)\n if (matrix[i][k] > vali) {\n iMax = i;\n vali = matrix[i][k];\n }\n swapRows(matrix, k, iMax);\n\n // for all rows below pivot\n for (let i = k + 1; i < m; i++) {\n for (let j = k + 1; j < m + 1; j++)\n matrix[i][j] =\n matrix[i][j] - matrix[k][j] * (matrix[i][k] / matrix[k][k]);\n matrix[i][k] = 0;\n }\n }\n // rows = columns\n for (let i = m - 1; i >= 0; i--) {\n const v = matrix[i][m] / matrix[i][i];\n ks[i] = v;\n // rows\n for (let j = i - 1; j >= 0; j--) {\n matrix[j][m] -= matrix[j][i] * v;\n matrix[j][i] = 0;\n }\n }\n return ks;\n}\n\nfunction zerosMatrix(rows, columns) {\n const matrix = [];\n for (let i = 0; i < rows; i++) {\n matrix.push([]);\n for (let j = 0; j < columns; j++) {\n matrix[i].push(0);\n }\n }\n return matrix;\n}\n\nfunction swapRows(m, k, l) {\n const p = m[k];\n m[k] = m[l];\n m[l] = p;\n}\n","import { useState, useMemo, useLayoutEffect } from \"react\";\nimport { percentToRange, clamp } from \"../../utils\";\nimport { BANDS } from \"../../constants\";\nimport spline from \"./spline\";\nimport * as Selectors from \"../../selectors\";\nimport { usePromiseValueOrNull, useTypedSelector } from \"../../hooks\";\nimport { Slider } from \"../../types\";\n\nconst GRAPH_HEIGHT = 19;\nconst GRAPH_WIDTH = 113;\n\nfunction EqGraph() {\n const sliders = useTypedSelector(Selectors.getSliders);\n\n const preampLineImagePromise = useTypedSelector(Selectors.getPreampLineImage);\n const preampLineImage = usePromiseValueOrNull(preampLineImagePromise);\n\n const [canvasNode, setCanvasNode] = useState(null);\n\n const canvasCtx = useMemo(() => canvasNode?.getContext(\"2d\") ?? null, [\n canvasNode,\n ]);\n const colorPattern = useColorPattern(canvasCtx);\n\n useLayoutEffect(() => {\n if (\n canvasCtx == null ||\n canvasNode == null ||\n preampLineImage == null ||\n colorPattern == null\n ) {\n return;\n }\n const width = Number(canvasNode.width);\n const height = Number(canvasNode.height);\n canvasCtx.clearRect(0, 0, width, height);\n drawEqLine({ colorPattern, sliders, canvasCtx, preampLineImage });\n }, [canvasCtx, canvasNode, colorPattern, preampLineImage, sliders]);\n\n return (\n \n );\n}\n\nfunction useColorPattern(canvasCtx: CanvasRenderingContext2D | null) {\n const lineColorsImagePromise = useTypedSelector(Selectors.getLineColorsImage);\n const lineColorsImage = usePromiseValueOrNull(lineColorsImagePromise);\n return useMemo(() => {\n if (canvasCtx == null || lineColorsImage == null) {\n return null;\n }\n return canvasCtx.createPattern(lineColorsImage, \"repeat-x\");\n }, [canvasCtx, lineColorsImage]);\n}\n\nfunction drawEqLine({\n colorPattern,\n sliders,\n canvasCtx,\n preampLineImage,\n}: {\n sliders: Record;\n colorPattern: CanvasPattern;\n preampLineImage: HTMLImageElement;\n canvasCtx: CanvasRenderingContext2D;\n}) {\n const preampValue = percentToRange(sliders.preamp / 100, 0, GRAPH_HEIGHT - 1);\n canvasCtx.drawImage(\n preampLineImage,\n 0,\n preampValue,\n preampLineImage.width,\n preampLineImage.height\n );\n\n const amplitudes = BANDS.map((band) => sliders[band]);\n\n canvasCtx.fillStyle = colorPattern;\n const paddingLeft = 2; // TODO: This should be 1.5\n\n const min = 0;\n const max = GRAPH_HEIGHT - 1;\n\n const xs: number[] = [];\n const ys: number[] = [];\n amplitudes.forEach((value, i) => {\n const percent = (100 - value) / 100;\n // Each band is 12 pixels widex\n xs.push(i * 12);\n ys.push(percentToRange(percent, min, max));\n });\n\n const allYs = spline(xs, ys);\n\n const maxX = xs[xs.length - 1];\n let lastY = ys[0];\n for (let x = 0; x <= maxX; x++) {\n const y = clamp(Math.round(allYs[x]), 0, GRAPH_HEIGHT - 1);\n const yTop = Math.min(y, lastY);\n const height = 1 + Math.abs(lastY - y);\n canvasCtx.fillRect(paddingLeft + x, yTop, 1, height);\n lastY = y;\n }\n}\n\nexport default EqGraph;\n","import builtin from \"../../../presets/builtin.json\";\nimport * as Actions from \"../../actionCreators\";\nimport { Node, Parent, Hr } from \"../ContextMenu\";\nimport ContextMenuTarget from \"../ContextMenuTarget\";\nimport { useActionCreator } from \"../../hooks\";\n\nconst PresetsContextMenu = () => {\n const openEqfFileDialog = useActionCreator(Actions.openEqfFileDialog);\n const downloadPreset = useActionCreator(Actions.downloadPreset);\n const setEqFromObject = useActionCreator(Actions.setEqFromObject);\n return (\n (\n <>\n \n {builtin.presets.map((preset) => (\n setEqFromObject(preset)}\n label={preset.name}\n />\n ))}\n
    \n \n
    \n \n \n )}\n >\n
    \n \n );\n};\n\nexport default PresetsContextMenu;\n","import ClickedDiv from \"../ClickedDiv\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\nimport * as Selectors from \"../../selectors\";\nimport * as Actions from \"../../actionCreators\";\nimport { WINDOWS } from \"../../constants\";\n\nexport default function EqTitleButtons() {\n const focusedWindow = useTypedSelector(Selectors.getFocusedWindow);\n\n const selected = focusedWindow === WINDOWS.EQUALIZER;\n const closeWindow = useActionCreator(Actions.closeWindow);\n const toggleEqualizerShadeMode = useActionCreator(\n Actions.toggleEqualizerShadeMode\n );\n return (\n \n
    \n closeWindow(WINDOWS.EQUALIZER)}\n />\n \n );\n}\n","import Volume from \"../Volume\";\nimport Balance from \"../Balance\";\nimport { segment } from \"../../utils\";\nimport EqTitleButtons from \"./EqTitleButtons\";\n\nimport * as Actions from \"../../actionCreators\";\nimport * as Selectors from \"../../selectors\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\n\nconst EqualizerShade = () => {\n const volume = useTypedSelector(Selectors.getVolume);\n const balance = useTypedSelector(Selectors.getBalance);\n const toggleEqualizerShadeMode = useActionCreator(\n Actions.toggleEqualizerShadeMode\n );\n\n const classes = [\"left\", \"center\", \"right\"];\n const eqVolumeClassName = segment(0, 100, volume, classes);\n const eqBalanceClassName = segment(-100, 100, balance, classes);\n return (\n \n \n \n \n
    \n );\n};\nexport default EqualizerShade;\n","import classnames from \"classnames\";\n\nimport { BANDS, WINDOWS } from \"../../constants\";\nimport * as Actions from \"../../actionCreators\";\nimport * as Selectors from \"../../selectors\";\n\nimport Band from \"./Band\";\nimport EqOn from \"./EqOn\";\nimport EqAuto from \"./EqAuto\";\nimport EqGraph from \"./EqGraph\";\nimport PresetsContextMenu from \"./PresetsContextMenu\";\nimport EqualizerShade from \"./EqualizerShade\";\n\nimport \"../../../css/equalizer-window.css\";\nimport { Band as BandType } from \"../../types\";\nimport FocusTarget from \"../FocusTarget\";\nimport { useTypedSelector, useActionCreator } from \"../../hooks\";\nimport EqTitleButtons from \"./EqTitleButtons\";\n\nconst bandClassName = (band: BandType) => `band-${band}`;\n\nconst EqualizerWindow = () => {\n const doubled = useTypedSelector(Selectors.getDoubled);\n const focusedWindow = useTypedSelector(Selectors.getFocusedWindow);\n const getWindowShade = useTypedSelector(Selectors.getWindowShade);\n\n const selected = focusedWindow === WINDOWS.EQUALIZER;\n const shade = getWindowShade(WINDOWS.EQUALIZER);\n\n const setPreampValue = useActionCreator(Actions.setPreamp);\n const setEqToMin = useActionCreator(Actions.setEqToMin);\n const setEqToMid = useActionCreator(Actions.setEqToMid);\n const setEqToMax = useActionCreator(Actions.setEqToMax);\n const setHertzValue = useActionCreator(Actions.setEqBand);\n const toggleEqualizerShadeMode = useActionCreator(\n Actions.toggleEqualizerShadeMode\n );\n\n const className = classnames({\n selected,\n doubled,\n shade,\n window: true,\n draggable: true,\n });\n return (\n
    \n \n {shade ? (\n \n ) : (\n
    \n \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n {BANDS.map((hertz) => (\n setHertzValue(hertz, value)}\n />\n ))}\n
    \n )}\n \n
    \n );\n};\nexport default EqualizerWindow;\n","import { LETTERS } from \"./constants\";\nimport { FONT_LOOKUP, imageConstFromChar } from \"./skinSprites\";\n\ninterface Selectors {\n [name: string]: string[];\n}\n\nexport const imageSelectors: Selectors = {\n MAIN_BALANCE_BACKGROUND: [\"#balance\"],\n MAIN_BALANCE_THUMB: [\n \"#balance::-webkit-slider-thumb\",\n \"#balance::-moz-range-thumb\",\n ],\n MAIN_BALANCE_THUMB_ACTIVE: [\n \"#balance:active::-webkit-slider-thumb\",\n \"#balance:active::-moz-range-thumb\",\n ],\n MAIN_PREVIOUS_BUTTON: [\".actions #previous\"],\n MAIN_PREVIOUS_BUTTON_ACTIVE: [\".actions #previous:active\"],\n MAIN_PLAY_BUTTON: [\".actions #play\"],\n MAIN_PLAY_BUTTON_ACTIVE: [\".actions #play:active\"],\n MAIN_PAUSE_BUTTON: [\".actions #pause\"],\n MAIN_PAUSE_BUTTON_ACTIVE: [\".actions #pause:active\"],\n MAIN_STOP_BUTTON: [\".actions #stop\"],\n MAIN_STOP_BUTTON_ACTIVE: [\".actions #stop:active\"],\n MAIN_NEXT_BUTTON: [\".actions #next\"],\n MAIN_NEXT_BUTTON_ACTIVE: [\".actions #next:active\"],\n MAIN_EJECT_BUTTON: [\"#eject\"],\n MAIN_EJECT_BUTTON_ACTIVE: [\"#eject:active\"],\n MAIN_WINDOW_BACKGROUND: [\"#main-window\"],\n MAIN_STEREO: [\".media-info #stereo\", \".stop .media-info #stereo.selected\"],\n MAIN_STEREO_SELECTED: [\".media-info #stereo.selected\"],\n MAIN_MONO: [\".media-info #mono\", \".stop .media-info #mono.selected\"],\n MAIN_MONO_SELECTED: [\".media-info #mono.selected\"],\n NO_MINUS_SIGN: [\"#time #minus-sign\"],\n MINUS_SIGN: [\"#time.countdown #minus-sign\"],\n DIGIT_0: [\".digit-0\"],\n DIGIT_1: [\".digit-1\"],\n DIGIT_2: [\".digit-2\"],\n DIGIT_3: [\".digit-3\"],\n DIGIT_4: [\".digit-4\"],\n DIGIT_5: [\".digit-5\"],\n DIGIT_6: [\".digit-6\"],\n DIGIT_7: [\".digit-7\"],\n DIGIT_8: [\".digit-8\"],\n DIGIT_9: [\".digit-9\"],\n NO_MINUS_SIGN_EX: [\"#time #minus-sign\"],\n MINUS_SIGN_EX: [\"#time.countdown #minus-sign\"],\n DIGIT_0_EX: [\".digit-0\"],\n DIGIT_1_EX: [\".digit-1\"],\n DIGIT_2_EX: [\".digit-2\"],\n DIGIT_3_EX: [\".digit-3\"],\n DIGIT_4_EX: [\".digit-4\"],\n DIGIT_5_EX: [\".digit-5\"],\n DIGIT_6_EX: [\".digit-6\"],\n DIGIT_7_EX: [\".digit-7\"],\n DIGIT_8_EX: [\".digit-8\"],\n DIGIT_9_EX: [\".digit-9\"],\n MAIN_PLAYING_INDICATOR: [\".play #play-pause\"],\n MAIN_PAUSED_INDICATOR: [\".pause #play-pause\"],\n MAIN_STOPPED_INDICATOR: [\".stop #play-pause\"],\n MAIN_NOT_WORKING_INDICATOR: [\"#work-indicator\"],\n MAIN_WORKING_INDICATOR: [\"#work-indicator.selected\"],\n PLAYLIST_TOP_TILE: [\n \".playlist-top-left-fill\",\n \".playlist-top-left-spacer\",\n \".playlist-top-right-fill\",\n \".playlist-top-right-spacer\",\n ],\n PLAYLIST_TOP_LEFT_CORNER: [\".playlist-top-left\"],\n PLAYLIST_TITLE_BAR: [\".playlist-top-title\"],\n PLAYLIST_TOP_RIGHT_CORNER: [\".playlist-top-right\"],\n PLAYLIST_TOP_TILE_SELECTED: [\n \".selected .playlist-top-left-fill\",\n \".selected .playlist-top-left-spacer\",\n \".selected .playlist-top-right-fill\",\n \".selected .playlist-top-right-spacer\",\n ],\n PLAYLIST_TOP_LEFT_SELECTED: [\".selected .playlist-top-left\"],\n PLAYLIST_TITLE_BAR_SELECTED: [\".selected .playlist-top-title\"],\n PLAYLIST_TOP_RIGHT_CORNER_SELECTED: [\".selected .playlist-top-right\"],\n PLAYLIST_LEFT_TILE: [\".playlist-middle-left\"],\n PLAYLIST_RIGHT_TILE: [\".playlist-middle-right\"],\n PLAYLIST_SCROLL_HANDLE: [\".playlist-scrollbar-handle\"],\n PLAYLIST_SCROLL_HANDLE_SELECTED: [\n \".playlist-middle-right:active .playlist-scrollbar-handle\",\n ],\n PLAYLIST_BOTTOM_TILE: [\".playlist-bottom\"],\n PLAYLIST_BOTTOM_LEFT_CORNER: [\".playlist-bottom-left\"],\n PLAYLIST_BOTTOM_RIGHT_CORNER: [\".playlist-bottom-right\"],\n PLAYLIST_VISUALIZER_BACKGROUND: [\".playlist-visualizer\"],\n PLAYLIST_SHADE_BACKGROUND: [\"#playlist-window-shade\"],\n PLAYLIST_SHADE_BACKGROUND_LEFT: [\"#playlist-window-shade .left\"],\n PLAYLIST_SHADE_BACKGROUND_RIGHT: [\"#playlist-window-shade .right\"],\n PLAYLIST_SHADE_BACKGROUND_RIGHT_SELECTED: [\n \"#playlist-window-shade.selected .right\",\n ],\n\n PLAYLIST_ADD_MENU_BAR: [\"#playlist-add-menu.selected .bar\"],\n PLAYLIST_ADD_URL: [\"#playlist-add-menu .add-url\"],\n PLAYLIST_ADD_URL_SELECTED: [\"#playlist-add-menu .hover .add-url\"],\n PLAYLIST_ADD_DIR: [\"#playlist-add-menu .add-dir\"],\n PLAYLIST_ADD_DIR_SELECTED: [\"#playlist-add-menu .hover .add-dir\"],\n PLAYLIST_ADD_FILE: [\"#playlist-add-menu .add-file\"],\n PLAYLIST_ADD_FILE_SELECTED: [\"#playlist-add-menu .hover .add-file\"],\n\n PLAYLIST_REMOVE_MENU_BAR: [\"#playlist-remove-menu.selected .bar\"],\n PLAYLIST_REMOVE_ALL: [\"#playlist-remove-menu .remove-all\"],\n PLAYLIST_REMOVE_ALL_SELECTED: [\"#playlist-remove-menu .hover .remove-all\"],\n PLAYLIST_CROP: [\"#playlist-remove-menu .crop\"],\n PLAYLIST_CROP_SELECTED: [\"#playlist-remove-menu .hover .crop\"],\n PLAYLIST_REMOVE_SELECTED: [\"#playlist-remove-menu .remove-selected\"],\n PLAYLIST_REMOVE_SELECTED_SELECTED: [\n \"#playlist-remove-menu .hover .remove-selected\",\n ],\n PLAYLIST_REMOVE_MISC: [\"#playlist-remove-menu .remove-misc\"],\n PLAYLIST_REMOVE_MISC_SELECTED: [\"#playlist-remove-menu .hover .remove-misc\"],\n\n PLAYLIST_SELECT_MENU_BAR: [\"#playlist-selection-menu.selected .bar\"],\n PLAYLIST_INVERT_SELECTION: [\"#playlist-selection-menu .invert-selection\"],\n PLAYLIST_INVERT_SELECTION_SELECTED: [\n \"#playlist-selection-menu .hover .invert-selection\",\n ],\n PLAYLIST_SELECT_ZERO: [\"#playlist-selection-menu .select-zero\"],\n PLAYLIST_SELECT_ZERO_SELECTED: [\n \"#playlist-selection-menu .hover .select-zero\",\n ],\n PLAYLIST_SELECT_ALL: [\"#playlist-selection-menu .select-all\"],\n PLAYLIST_SELECT_ALL_SELECTED: [\"#playlist-selection-menu .hover .select-all\"],\n PLAYLIST_CLOSE_SELECTED: [\"#playlist-close-button:active\"],\n PLAYLIST_COLLAPSE_SELECTED: [\n \"#playlist-window #playlist-shade-button:active\",\n ],\n PLAYLIST_EXPAND_SELECTED: [\n \"#playlist-window-shade #playlist-shade-button:active\",\n ],\n\n PLAYLIST_MISC_MENU_BAR: [\"#playlist-misc-menu.selected .bar\"],\n PLAYLIST_MISC_OPTIONS: [\"#playlist-misc-menu .misc-options\"],\n PLAYLIST_MISC_OPTIONS_SELECTED: [\"#playlist-misc-menu .hover .misc-options\"],\n PLAYLIST_FILE_INFO: [\"#playlist-misc-menu .file-info\"],\n PLAYLIST_FILE_INFO_SELECTED: [\"#playlist-misc-menu .hover .file-info\"],\n PLAYLIST_SORT_LIST: [\"#playlist-misc-menu .sort-list\"],\n PLAYLIST_SORT_LIST_SELECTED: [\"#playlist-misc-menu .hover .sort-list\"],\n\n PLAYLIST_LIST_BAR: [\"#playlist-list-menu.selected .bar\"],\n PLAYLIST_NEW_LIST: [\"#playlist-list-menu .new-list\"],\n PLAYLIST_NEW_LIST_SELECTED: [\"#playlist-list-menu .hover .new-list\"],\n PLAYLIST_LOAD_LIST: [\"#playlist-list-menu .load-list\"],\n PLAYLIST_LOAD_LIST_SELECTED: [\"#playlist-list-menu .hover .load-list\"],\n PLAYLIST_SAVE_LIST: [\"#playlist-list-menu .save-list\"],\n PLAYLIST_SAVE_LIST_SELECTED: [\"#playlist-list-menu .hover .save-list\"],\n\n EQ_WINDOW_BACKGROUND: [\"#equalizer-window:not(.shade)\"],\n EQ_TITLE_BAR: [\".equalizer-top\"],\n EQ_TITLE_BAR_SELECTED: [\".selected .equalizer-top\"],\n EQ_SLIDER_BACKGROUND: [\".band\"],\n EQ_SLIDER_THUMB: [\".band .rc-slider-handle\"],\n // But the \"active\" pseudo selector on the parent, since clicking\n // anywhere on the track moves the slider.\n EQ_SLIDER_THUMB_SELECTED: [\".band .rc-slider:active .rc-slider-handle\"],\n EQ_ON_BUTTON: [\"#on\"],\n EQ_ON_BUTTON_DEPRESSED: [\"#on:active\"],\n EQ_ON_BUTTON_SELECTED: [\"#on.selected\"],\n EQ_ON_BUTTON_SELECTED_DEPRESSED: [\"#on.selected:active\"],\n EQ_AUTO_BUTTON: [\"#auto\"],\n EQ_AUTO_BUTTON_DEPRESSED: [\"#auto:active\"],\n EQ_AUTO_BUTTON_SELECTED: [\"#auto.selected\"],\n EQ_AUTO_BUTTON_SELECTED_DEPRESSED: [\"#auto.selected:active\"],\n EQ_GRAPH_BACKGROUND: [\"#eqGraph\"],\n EQ_PRESETS_BUTTON: [\"#presets\"],\n EQ_PRESETS_BUTTON_SELECTED: [\"#presets:active\"],\n EQ_PREAMP_LINE: [\"#preamp-line\"],\n EQ_SHADE_BACKGROUND: [\"#equalizer-window.shade\"],\n EQ_SHADE_BACKGROUND_SELECTED: [\"#equalizer-window.shade.selected\"],\n EQ_SHADE_VOLUME_SLIDER_LEFT: [\n \"#equalizer-volume.left::-webkit-slider-thumb\",\n \"#equalizer-volume.left::-moz-range-thumb\",\n ],\n EQ_SHADE_VOLUME_SLIDER_CENTER: [\n \"#equalizer-volume.center::-webkit-slider-thumb\",\n \"#equalizer-volume.center::-moz-range-thumb\",\n ],\n EQ_SHADE_VOLUME_SLIDER_RIGHT: [\n \"#equalizer-volume.right::-webkit-slider-thumb\",\n \"#equalizer-volume.right::-moz-range-thumb\",\n ],\n EQ_SHADE_BALANCE_SLIDER_LEFT: [\n \"#equalizer-balance.left::-webkit-slider-thumb\",\n \"#equalizer-balance.left::-moz-range-thumb\",\n ],\n EQ_SHADE_BALANCE_SLIDER_CENTER: [\n \"#equalizer-balance.center::-webkit-slider-thumb\",\n \"#equalizer-balance.center::-moz-range-thumb\",\n ],\n EQ_SHADE_BALANCE_SLIDER_RIGHT: [\n \"#equalizer-balance.right::-webkit-slider-thumb\",\n \"#equalizer-balance.right::-moz-range-thumb\",\n ],\n EQ_MAXIMIZE_BUTTON_ACTIVE: [\"#equalizer-shade:active\"],\n EQ_MINIMIZE_BUTTON_ACTIVE: [\n \"#equalizer-window.shade #equalizer-shade:active\",\n ],\n EQ_CLOSE_BUTTON: [\n \"#equalizer-window.selected #eq-buttons.clicked #equalizer-close\",\n ],\n EQ_CLOSE_BUTTON_ACTIVE: [\n \"#equalizer-window.selected #eq-buttons.clicked #equalizer-close:active\",\n ],\n EQ_SHADE_CLOSE_BUTTON: [\n \"#equalizer-window.shade.selected #eq-buttons.clicked #equalizer-close\",\n ],\n EQ_SHADE_CLOSE_BUTTON_ACTIVE: [\n \"#equalizer-window.shade.selected #eq-buttons.clicked #equalizer-close:active\",\n ],\n MAIN_POSITION_SLIDER_BACKGROUND: [\"#position\"],\n MAIN_POSITION_SLIDER_THUMB: [\n \"#position::-webkit-slider-thumb\",\n \"#position::-moz-range-thumb\",\n ],\n MAIN_POSITION_SLIDER_THUMB_SELECTED: [\n \"#position:active::-webkit-slider-thumb\",\n \"#position:active::-moz-range-thumb\",\n ],\n MAIN_SHUFFLE_BUTTON: [\"#shuffle\"],\n MAIN_SHUFFLE_BUTTON_DEPRESSED: [\"#shuffle:active\"],\n MAIN_SHUFFLE_BUTTON_SELECTED: [\"#shuffle.selected\"],\n MAIN_SHUFFLE_BUTTON_SELECTED_DEPRESSED: [\"#shuffle.selected:active\"],\n MAIN_REPEAT_BUTTON: [\"#repeat\"],\n MAIN_REPEAT_BUTTON_DEPRESSED: [\"#repeat:active\"],\n MAIN_REPEAT_BUTTON_SELECTED: [\"#repeat.selected\"],\n MAIN_REPEAT_BUTTON_SELECTED_DEPRESSED: [\"#repeat.selected:active\"],\n MAIN_EQ_BUTTON: [\"#equalizer-button\"],\n MAIN_EQ_BUTTON_SELECTED: [\"#equalizer-button.selected\"],\n MAIN_EQ_BUTTON_DEPRESSED: [\"#equalizer-button:active\"],\n MAIN_EQ_BUTTON_DEPRESSED_SELECTED: [\"#equalizer-button.selected:active\"],\n MAIN_PLAYLIST_BUTTON: [\"#playlist-button\"],\n MAIN_PLAYLIST_BUTTON_SELECTED: [\"#playlist-button.selected\"],\n MAIN_PLAYLIST_BUTTON_DEPRESSED: [\"#playlist-button:active\"],\n MAIN_PLAYLIST_BUTTON_DEPRESSED_SELECTED: [\"#playlist-button.selected:active\"],\n MAIN_TITLE_BAR: [\"#title-bar\"],\n MAIN_TITLE_BAR_SELECTED: [\".selected #title-bar\"],\n MAIN_EASTER_EGG_TITLE_BAR: [\".llama #title-bar\"],\n MAIN_EASTER_EGG_TITLE_BAR_SELECTED: [\".llama.selected #title-bar\"],\n MAIN_OPTIONS_BUTTON: [\".selected #title-bar #option.clicked\"],\n MAIN_OPTIONS_BUTTON_DEPRESSED: [\n \".selected #title-bar #option:active\",\n \".selected #title-bar #option.selected\",\n ],\n MAIN_MINIMIZE_BUTTON: [\".selected #title-bar #minimize.clicked\"],\n MAIN_MINIMIZE_BUTTON_DEPRESSED: [\".selected #title-bar #minimize:active\"],\n MAIN_SHADE_BUTTON: [\".selected #title-bar #shade.clicked\"],\n MAIN_SHADE_BUTTON_DEPRESSED: [\".selected #title-bar #shade:active\"],\n MAIN_CLOSE_BUTTON: [\".selected #title-bar #close.clicked\"],\n MAIN_CLOSE_BUTTON_DEPRESSED: [\".selected #title-bar #close:active\"],\n MAIN_CLUTTER_BAR_BACKGROUND: [\"#clutter-bar\"],\n MAIN_CLUTTER_BAR_BACKGROUND_DISABLED: [\"#clutter-bar.disabled\"],\n MAIN_CLUTTER_BAR_BUTTON_O_SELECTED: [\n \"#button-o:active\",\n \"#button-0.selected\",\n ],\n MAIN_CLUTTER_BAR_BUTTON_A_SELECTED: [\n \"#button-a:active\",\n \"#button-a.selected\",\n ],\n MAIN_CLUTTER_BAR_BUTTON_I_SELECTED: [\n \"#button-i:active\",\n \"#button-i.selected\",\n ],\n MAIN_CLUTTER_BAR_BUTTON_D_SELECTED: [\n \"#button-d:active\",\n \"#button-d.selected\",\n ],\n MAIN_CLUTTER_BAR_BUTTON_V_SELECTED: [\n \"#button-v:active\",\n \"#button-v.selected\",\n ],\n MAIN_SHADE_BACKGROUND: [\".shade #title-bar\"],\n MAIN_SHADE_BACKGROUND_SELECTED: [\".shade.selected #title-bar\"],\n MAIN_SHADE_BUTTON_SELECTED: [\".shade.selected #title-bar #shade\"],\n MAIN_SHADE_BUTTON_SELECTED_DEPRESSED: [\".shade #title-bar #shade:active\"],\n MAIN_SHADE_POSITION_BACKGROUND: [\".shade #position\"],\n MAIN_SHADE_POSITION_THUMB: [\n \".shade #position::-moz-range-thumb\",\n \".shade #position::-webkit-slider-thumb\",\n ],\n MAIN_SHADE_POSITION_THUMB_LEFT: [\n \".shade #position.left::-moz-range-thumb\",\n \".shade #position.left::-webkit-slider-thumb\",\n ],\n MAIN_SHADE_POSITION_THUMB_RIGHT: [\n \".shade #position.right::-moz-range-thumb\",\n \".shade #position.right::-webkit-slider-thumb\",\n ],\n MAIN_VOLUME_BACKGROUND: [\"#volume\"],\n MAIN_VOLUME_THUMB: [\n \"#volume input::-webkit-slider-thumb\",\n \"#volume input::-moz-range-thumb\",\n ],\n MAIN_VOLUME_THUMB_SELECTED: [\n \"#volume input:active::-webkit-slider-thumb\",\n \"#volume input:active::-moz-range-thumb\",\n ],\n GEN_TOP_CENTER_FILL: [\".gen-window .gen-top\"],\n GEN_TOP_LEFT: [\".gen-window .gen-top-left\"],\n GEN_TOP_LEFT_END: [\".gen-window .gen-top-left-end\"],\n GEN_TOP_RIGHT: [\".gen-window .gen-top-right\"],\n GEN_TOP_RIGHT_END: [\".gen-window .gen-top-right-end\"],\n GEN_TOP_LEFT_RIGHT_FILL: [\n \".gen-window .gen-top-left-fill\",\n \".gen-window .gen-top-right-fill\",\n ],\n\n GEN_TOP_CENTER_FILL_SELECTED: [\".gen-window.selected .gen-top\"],\n GEN_TOP_LEFT_SELECTED: [\".gen-window.selected .gen-top-left\"],\n GEN_TOP_LEFT_END_SELECTED: [\".gen-window.selected .gen-top-left-end\"],\n GEN_TOP_RIGHT_SELECTED: [\".gen-window.selected .gen-top-right\"],\n GEN_TOP_RIGHT_END_SELECTED: [\".gen-window.selected .gen-top-right-end\"],\n GEN_TOP_LEFT_RIGHT_FILL_SELECTED: [\n \".gen-window.selected .gen-top-left-fill\",\n \".gen-window.selected .gen-top-right-fill\",\n ],\n GEN_BOTTOM_LEFT: [\".gen-window .gen-bottom-left\"],\n GEN_BOTTOM_RIGHT: [\".gen-window .gen-bottom-right\"],\n GEN_BOTTOM_FILL: [\".gen-window .gen-bottom\"],\n GEN_MIDDLE_LEFT: [\".gen-window .gen-middle-left\"],\n GEN_MIDDLE_LEFT_BOTTOM: [\".gen-window .gen-middle-left-bottom\"],\n GEN_MIDDLE_RIGHT: [\".gen-window .gen-middle-right\"],\n GEN_MIDDLE_RIGHT_BOTTOM: [\".gen-window .gen-middle-right-bottom\"],\n GEN_CLOSE_SELECTED: [\".gen-window .gen-close:active\"],\n};\n\nObject.keys(FONT_LOOKUP).forEach((character) => {\n const key = imageConstFromChar(character);\n const code = character.charCodeAt(0);\n imageSelectors[key] = [`.character-${code}`];\n});\n\nLETTERS.forEach((character) => {\n imageSelectors[`GEN_TEXT_${character}`] = [\n `.gen-text-${character.toLowerCase()}`,\n ];\n imageSelectors[`GEN_TEXT_SELECTED_${character}`] = [\n `.gen-window.selected .gen-text-${character.toLowerCase()}`,\n ];\n});\n\nexport const cursorSelectors: Selectors = {\n CLOSE: [\"#title-bar #close\"],\n // This is not quite right. There are some areas that show this cursor\n // but are not clickable.\n EQSLID: [\"#equalizer-window .band .rc-slider\"],\n EQNORMAL: [\"#equalizer-window\"],\n EQCLOSE: [\"#equalizer-window #equalizer-close\"],\n EQTITLE: [\n \"#equalizer-window .title-bar\",\n \"#equalizer-window.shade\",\n \"#equalizer-window.shade input\",\n ],\n MAINMENU: [\"#main-window #option\", \"#webamp-context-menu .context-menu\"],\n MIN: [\"#main-window #minimize\"],\n NORMAL: [\n // Use this as the default cursor.\n \".window\",\n \".window input\", // Otherwise\n \"#main-window\",\n \"#main-window.shade #title-bar\",\n ],\n MMENU: [\"#main-window.shade #option\"],\n PNORMAL: [\"#playlist-window\"],\n // TODO: This is should really only apply to the top part of the top.\n // The chrome around the playlist window is larger than others. The\n // cursor only applies to the same height as the other window's chrome.\n PTBAR: [\"#playlist-window .playlist-top\"],\n PCLOSE: [\n \"#playlist-window #playlist-close-button\",\n \"#playlist-window-shade #playlist-close-button\",\n ],\n PWINBUT: [\n \"#playlist-window #playlist-shade-button\",\n \"#playlist-window-shade #playlist-shade-button\",\n ],\n POSBAR: [\"#main-window #position\"],\n PSIZE: [\"#playlist-window #playlist-resize-target\"],\n PWSSIZE: [\"#playlist-window-shade #playlist-resize-target\"],\n PWSNORM: [\"#playlist-window-shade\"],\n // TODO: The target for this is not quite right.\n PVSCROLL: [\"#playlist-window .playlist-scrollbar\"],\n SONGNAME: [\"#main-window #marquee\"],\n TITLEBAR: [\"#main-window #title-bar\"],\n VOLBAL: [\"#volume\", \"#volume input\", \"#balance\"],\n WINBUT: [\"#main-window #shade\"],\n WSNORMAL: [\"#main-window.shade #title-bar\"],\n WSPOSBAR: [\"#main-window.shade #position\"],\n};\n","import { createPortal } from \"react-dom\";\nimport { useMemo, useLayoutEffect } from \"react\";\n\ntype Props = {\n children: string;\n id: string;\n};\n\nexport default function Css({ children, id }: Props) {\n const style = useMemo(() => {\n const s = document.createElement(\"style\");\n s.type = \"text/css\";\n s.id = id;\n return s;\n }, [id]);\n\n useLayoutEffect(() => {\n document.head.appendChild(style);\n return () => style.remove();\n }, [style]);\n\n return createPortal(children, style);\n}\n","import { useMemo, useLayoutEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\n\ntype Props = {\n children: { [id: string]: string[] };\n};\n\n// this.props.children should be an object containing arrays of strings. The\n// keys are ids, and the arrays are arrays of polygon point strings\nexport default function ClipPaths({ children }: Props) {\n const paths = useMemo(() => {\n return document.createElement(\"div\");\n }, []);\n\n useLayoutEffect(() => {\n document.body.appendChild(paths);\n return () => paths.remove();\n }, [paths]);\n\n return createPortal(\n \n \n {Object.keys(children).map((id) => (\n \n {children[id].map((points, i) => (\n \n ))}\n \n ))}\n \n ,\n paths\n );\n}\n","// Dynamically set the css background images for all the sprites\nimport { LETTERS } from \"../constants\";\nimport { imageSelectors, cursorSelectors } from \"../skinSelectors\";\nimport { useTypedSelector } from \"../hooks\";\nimport * as Selectors from \"../selectors\";\nimport { SkinImages } from \"../types\";\nimport { createSelector } from \"reselect\";\nimport Css from \"./Css\";\nimport ClipPaths from \"./ClipPaths\";\nimport { convertAniBinaryToCSS } from \"ani-cursor\";\n\nconst CSS_PREFIX = \"#webamp\";\n\nconst mapRegionNamesToIds: { [key: string]: string } = {\n normal: \"mainWindowClipPath\",\n windowshade: \"shadeMainWindowClipPath\",\n equalizer: \"equalizerWindowClipPath\",\n equalizerws: \"shadeEqualizerWindowClipPath\",\n};\n\nconst mapRegionNamesToMatcher: { [key: string]: string } = {\n normal: \"#main-window:not(.shade)\",\n windowshade: \"#main-window.shade\",\n equalizer: \"#equalizer-window:not(.shade)\",\n equalizerws: \"#equalizer-window.shade\",\n};\n\nconst numExIsUsed = (skinImages: SkinImages) => Boolean(skinImages.DIGIT_0_EX);\n\nconst FALLBACKS: { [key: string]: string } = {\n MAIN_BALANCE_BACKGROUND: \"MAIN_VOLUME_BACKGROUND\",\n MAIN_BALANCE_THUMB: \"MAIN_VOLUME_THUMB\",\n MAIN_BALANCE_THUMB_ACTIVE: \"MAIN_VOLUME_THUMB_SELECTED\",\n EQ_MAXIMIZE_BUTTON_ACTIVE: \"EQ_MAXIMIZE_BUTTON_ACTIVE_FALLBACK\",\n};\n\n// Cursors might appear in context menus which are not nested inside the window layout div.\nfunction normalizeCursorSelector(selector: string): string {\n return `${\n // TODO: Fix this hack\n // Maybe our CSS name spacing should be based on some other class/id\n // than the one we use for defining the main div.\n // That way it could be shared by both the player and the context menu.\n selector.startsWith(\"#webamp-context-menu\") ? \"\" : CSS_PREFIX\n } ${selector}`;\n}\n\nconst getCssRules = createSelector(\n Selectors.getSkinImages,\n Selectors.getSkinCursors,\n Selectors.getSkinLetterWidths,\n Selectors.getSkinRegion,\n (skinImages, skinCursors, skinGenLetterWidths, skinRegion): string | null => {\n if (!skinImages || !skinCursors) {\n return null;\n }\n const cssRules = [];\n Object.keys(imageSelectors).forEach((imageName) => {\n const imageUrl =\n skinImages[imageName] || skinImages[FALLBACKS[imageName]];\n if (imageUrl) {\n imageSelectors[imageName].forEach((selector) => {\n cssRules.push(\n `${CSS_PREFIX} ${selector} {background-image: url(${imageUrl})}`\n );\n });\n }\n });\n\n if (skinGenLetterWidths != null) {\n LETTERS.forEach((letter) => {\n const width = skinGenLetterWidths[`GEN_TEXT_${letter}`];\n const selectedWidth =\n skinGenLetterWidths[`GEN_TEXT_SELECTED_${letter}`];\n cssRules.push(\n `${CSS_PREFIX} .gen-text-${letter.toLowerCase()} {width: ${width}px;}`\n );\n cssRules.push(\n `${CSS_PREFIX} .selected .gen-text-${letter.toLowerCase()} {width: ${selectedWidth}px;}`\n );\n });\n }\n\n Object.entries(cursorSelectors).forEach(([cursorName, cursorSelector]) => {\n const cursor = skinCursors[cursorName];\n if (cursor == null) {\n return;\n }\n const cursorRules = cursorSelector\n .map(normalizeCursorSelector)\n .map((selector) => {\n switch (cursor.type) {\n case \"cur\":\n return `${selector} {cursor: url(${cursor.url}), auto}`;\n case \"ani\": {\n return convertAniBinaryToCSS(selector, cursor.aniData);\n }\n }\n });\n cssRules.push(...cursorRules);\n });\n\n if (numExIsUsed(skinImages)) {\n // This alternate number file requires that the minus sign be\n // formatted differently.\n cssRules.push(\n `${CSS_PREFIX} .status #time #minus-sign { top: 0px; left: -1px; width: 9px; height: 13px; }`\n );\n }\n\n for (const [regionName, polygons] of Object.entries(skinRegion)) {\n if (polygons) {\n const matcher = mapRegionNamesToMatcher[regionName];\n const id = mapRegionNamesToIds[regionName];\n cssRules.push(`${CSS_PREFIX} ${matcher} { clip-path: url(#${id}); }`);\n }\n }\n\n return cssRules.join(\"\\n\");\n }\n);\n\nconst getClipPaths = createSelector(Selectors.getSkinRegion, (skinRegion) => {\n const clipPaths: { [id: string]: string[] } = {};\n for (const [regionName, polygons] of Object.entries(skinRegion)) {\n if (polygons) {\n const id = mapRegionNamesToIds[regionName];\n clipPaths[id] = polygons;\n }\n }\n return clipPaths;\n});\n\nexport default function Skin() {\n const cssRules = useTypedSelector(getCssRules);\n const clipPaths = useTypedSelector(getClipPaths);\n if (cssRules == null) {\n return null;\n }\n return (\n <>\n {cssRules}\n {clipPaths}\n \n );\n}\n","import {\n useLayoutEffect,\n useEffect,\n useState,\n useCallback,\n StrictMode,\n} from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { FilePicker } from \"../types\";\nimport { WINDOWS } from \"../constants\";\nimport * as Selectors from \"../selectors\";\nimport * as Actions from \"../actionCreators\";\nimport * as Utils from \"../utils\";\nimport MilkdropWindow from \"../components/MilkdropWindow\";\nimport ContextMenuWrapper from \"./ContextMenuWrapper\";\nimport MainContextMenu from \"./MainWindow/MainContextMenu\";\nimport WindowManager from \"./WindowManager\";\nimport MainWindow from \"./MainWindow\";\nimport PlaylistWindow from \"./PlaylistWindow\";\nimport EqualizerWindow from \"./EqualizerWindow\";\nimport Skin from \"./Skin\";\n\nimport \"../../css/webamp.css\";\nimport Media from \"../media\";\nimport { useTypedSelector, useActionCreator } from \"../hooks\";\n\ninterface Props {\n filePickers: FilePicker[];\n media: Media;\n}\n\n/**\n * Constructs the windows to render\n */\nexport default function App({ media, filePickers }: Props) {\n const closed = useTypedSelector(Selectors.getClosed);\n const genWindowsInfo = useTypedSelector(Selectors.getGenWindows);\n const zIndex = useTypedSelector(Selectors.getZIndex);\n\n const browserWindowSizeChanged = useActionCreator(\n Actions.browserWindowSizeChanged\n );\n const setFocusedWindow = useActionCreator(Actions.setFocusedWindow);\n\n const [webampNode] = useState(() => {\n const node = document.createElement(\"div\");\n node.id = \"webamp\";\n // @ts-ignore I think I'm supposed to set this with setAttribute, but I can't confirm.\n node.role = \"application\";\n return node;\n });\n\n useLayoutEffect(() => {\n webampNode.style.zIndex = String(zIndex);\n }, [webampNode, zIndex]);\n\n useLayoutEffect(() => {\n document.body.appendChild(webampNode);\n return () => {\n document.body.removeChild(webampNode);\n };\n }, [webampNode]);\n\n useEffect(() => {\n const handleWindowResize = () => {\n if (webampNode == null) {\n return;\n }\n // It's a bit tricky to measure the \"natural\" size of the browser window.\n // Specifically we want to know how large the window would be without our\n // own Webamp windows influencing it. To achieve this, we temporarily make\n // our container `overflow: hidden;`. We then make our container full\n // screen by setting the bottom/right properties to zero. This second part\n // allows our Webamp windows to stay visible during the resize. After we\n // measure, we set the style back so that we don't end up interfering with\n // click events outside of our Webamp windows.\n webampNode.style.right = \"0\";\n webampNode.style.bottom = \"0\";\n webampNode.style.overflow = \"hidden\";\n browserWindowSizeChanged(Utils.getWindowSize());\n webampNode.style.right = \"auto\";\n webampNode.style.bottom = \"auto\";\n webampNode.style.overflow = \"visible\";\n };\n\n handleWindowResize();\n\n window.addEventListener(\"resize\", handleWindowResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleWindowResize);\n };\n }, [browserWindowSizeChanged, webampNode]);\n\n const renderWindows = useCallback(() => {\n return Utils.objectMap(genWindowsInfo, (w, id) => {\n if (!w.open) {\n return null;\n }\n switch (id) {\n case WINDOWS.MAIN:\n return (\n \n );\n case WINDOWS.EQUALIZER:\n return ;\n case WINDOWS.PLAYLIST:\n return ;\n case WINDOWS.MILKDROP:\n return ;\n default:\n throw new Error(`Tried to render an unknown window: ${id}`);\n }\n });\n }, [media, filePickers, genWindowsInfo]);\n\n const handleBlur = (e: React.FocusEvent) => {\n if (!e.currentTarget.contains(e.relatedTarget as Element)) {\n setFocusedWindow(null);\n }\n };\n\n if (closed) {\n return null;\n }\n\n return ReactDOM.createPortal(\n \n
    \n \n }\n >\n \n \n
    \n
    ,\n webampNode\n );\n}\n","import {\n play,\n pause,\n stop,\n adjustVolume,\n toggleRepeat,\n toggleShuffle,\n openMediaFileDialog,\n seekForward,\n seekBackward,\n reverseList,\n nextN,\n next,\n previous,\n toggleDoubleSizeMode,\n toggleWindow,\n} from \"./actionCreators\";\n\nimport { TOGGLE_TIME_MODE, TOGGLE_LLAMA_MODE } from \"./actionTypes\";\n\nimport { Dispatch } from \"./types\";\n\nconst IGNORE_EVENTS_FROM_TAGS = new Set([\"input\", \"textarea\", \"select\"]);\n\nexport function bindHotkeys(dispatch: Dispatch): () => void {\n let currentPos: number = 0;\n const trigger = [\n 78, // N\n 85, // U\n 76, // L\n 76, // L\n 83, // S\n 79, // O\n 70, // F\n 84, // T\n ];\n\n const listener = (e: KeyboardEvent) => {\n if (\n e.target instanceof Element &&\n IGNORE_EVENTS_FROM_TAGS.has(e.target.tagName.toLowerCase())\n ) {\n return;\n }\n if (e.ctrlKey) {\n switch (e.keyCode) {\n case 68: // CTRL+D\n dispatch(toggleDoubleSizeMode());\n e.preventDefault(); // Supress the \"Bookmark\" action on windows.\n break;\n case 76: // CTRL+L FIXME\n break;\n case 82: // CTRL+R\n dispatch(reverseList());\n break;\n case 84: // CTRL+T\n dispatch({ type: TOGGLE_TIME_MODE });\n break;\n }\n } else if (e.altKey) {\n switch (e.keyCode) {\n case 87: // ALT+W\n dispatch(toggleWindow(\"main\"));\n break;\n case 69: // ALT+E\n dispatch(toggleWindow(\"playlist\"));\n break;\n case 71: // ALT+G\n dispatch(toggleWindow(\"equalizer\"));\n break;\n }\n } else {\n switch (e.keyCode) {\n case 37: // left arrow\n dispatch(seekBackward(5));\n break;\n case 38: // up arrow\n dispatch(adjustVolume(1));\n break;\n case 39: // right arrow\n dispatch(seekForward(5));\n break;\n case 40: // down arrow\n dispatch(adjustVolume(-1));\n break;\n case 66: // B\n dispatch(next());\n break;\n case 67: // C\n dispatch(pause());\n break;\n case 76: // L\n dispatch(openMediaFileDialog());\n break;\n case 82: // R\n dispatch(toggleRepeat());\n break;\n case 83: // S\n dispatch(toggleShuffle());\n break;\n case 86: // V\n dispatch(stop());\n break;\n case 88: // X\n dispatch(play());\n break;\n case 90: // Z\n dispatch(previous());\n break;\n case 96: // numpad 0\n dispatch(openMediaFileDialog());\n break;\n case 97: // numpad 1\n dispatch(nextN(-10));\n break;\n case 98: // numpad 2\n dispatch(adjustVolume(-1));\n break;\n case 99: // numpad 3\n dispatch(nextN(10));\n break;\n case 100: // numpad 4\n dispatch(previous());\n break;\n case 101: // numpad 5\n dispatch(play());\n break;\n case 102: // numpad 6\n dispatch(next());\n break;\n case 103: // numpad 7\n dispatch(seekBackward(5));\n break;\n case 104: // numpad 8\n dispatch(adjustVolume(1));\n break;\n case 105: // numpad 9\n dispatch(seekForward(5));\n break;\n }\n }\n\n // Easter Egg\n\n // Ignore escape. Usually this gets swallowed by the browser, but not always.\n if (e.keyCode !== 27) {\n currentPos = e.keyCode === trigger[currentPos] ? currentPos + 1 : 0;\n if (currentPos === trigger.length) {\n dispatch({ type: TOGGLE_LLAMA_MODE });\n }\n }\n };\n document.addEventListener(\"keydown\", listener);\n\n return () => {\n document.removeEventListener(\"keydown\", listener);\n };\n}\n","export default class Emitter {\n _listeners: { [event: string]: Array<(...args: any[]) => void> };\n\n constructor() {\n this._listeners = {};\n }\n\n on(event: string, callback: (...args: any[]) => void) {\n const eventListeners = this._listeners[event] || [];\n eventListeners.push(callback);\n this._listeners[event] = eventListeners;\n const unsubscribe = () => {\n this._listeners[event] = eventListeners.filter((cb) => cb !== callback);\n };\n return unsubscribe;\n }\n\n trigger(event: string, ...args: any[]) {\n const callbacks = this._listeners[event];\n if (callbacks) {\n callbacks.forEach((cb) => cb(...args));\n }\n }\n\n dispose() {\n this._listeners = {};\n }\n}\n","// The Web Audio API does not offer an easy way to make a stereo balance\n// control. This is an attempt to fill that void, using an API similar to\n// [StereoPannerNode](https://developer.mozilla.org/en-US/docs/Web/API/StereoPannerNode)\nexport default function StereoBalanceNode(context, options = { balance: 0 }) {\n let balance = 0;\n\n // ChannelSplitterNode cannot be told to use a `channelInterperatation` of\n // \"speakers\". This means that if we get a mono file, we will end up only\n // playing in the left speaker. So instead we use this dummy gain node to\n // convert whatever source we get (stereo, mono, or n channels) into a stereo\n // signal.\n // Idea credit: https://github.com/WebAudio/web-audio-api/issues/975#issue-177242377\n const upMixer = context.createGain();\n upMixer.channelCount = 2;\n upMixer.channelCountMode = \"explicit\";\n upMixer.channelInterpretation = \"speakers\";\n\n const splitter = context.createChannelSplitter(2);\n\n // Create the gains for left and right\n const leftGain = context.createGain();\n const rightGain = context.createGain();\n\n const merger = context.createChannelMerger(2);\n\n upMixer.connect(splitter);\n\n splitter.connect(leftGain, 0);\n splitter.connect(rightGain, 1);\n\n leftGain.connect(merger, 0, 0);\n rightGain.connect(merger, 0, 1);\n\n // -1 (left) to 1 (right)\n function set(rawValue) {\n const value = Number(rawValue);\n leftGain.gain.value = value > 0 ? 1 - value : 1;\n rightGain.gain.value = value > 0 ? 1 : 1 + value;\n balance = value;\n }\n\n function get() {\n return balance;\n }\n\n // Create our own version of an [AudioParam](https://developer.mozilla.org/en-US/docs/Web/API/AudioParam).\n // We don't currently support any of the \"over time\" methods, but maybe some day\n // we'll want to.\n const audioParam = {};\n Object.defineProperties(audioParam, {\n value: { get, set, enumerable: true, configurable: true },\n });\n\n // The way the `.connect` API works, we can't actually construct our own\n // AudioNode. Instead we have to take an existing node and monkey patch it.\n Object.defineProperties(upMixer, {\n balance: {\n value: audioParam,\n enumerable: true,\n writable: false,\n configurable: true,\n },\n connect: {\n value: AudioNode.prototype.connect.bind(merger),\n enumerable: false,\n writable: false,\n configurable: true,\n },\n disconnect: {\n value: AudioNode.prototype.disconnect.bind(merger),\n enumerable: false,\n writable: false,\n configurable: true,\n },\n });\n\n if (balance !== options.balance) {\n set(options.balance);\n }\n\n return upMixer;\n}\n","import Emitter from \"../emitter\";\nimport { clamp } from \"../utils\";\nimport { MEDIA_STATUS } from \"../constants\";\nimport { MediaStatus } from \"../types\";\n\nexport default class ElementSource {\n _emitter: Emitter;\n _context: AudioContext;\n _source: AudioNode;\n _destination: AudioNode;\n _audio: HTMLAudioElement;\n _stalled: boolean;\n _status: MediaStatus;\n\n on(eventType: string, cb: (...args: any[]) => void) {\n return this._emitter.on(eventType, cb);\n }\n\n constructor(context: AudioContext, destination: AudioNode) {\n this._emitter = new Emitter();\n this._context = context;\n this._destination = destination;\n this._audio = document.createElement(\"audio\");\n this._audio.crossOrigin = \"anonymous\";\n this._stalled = false;\n this._status = MEDIA_STATUS.STOPPED;\n\n // TODO: #leak\n this._audio.addEventListener(\"suspend\", () => {\n this._setStalled(true);\n });\n\n // TODO: #leak\n this._audio.addEventListener(\"durationchange\", () => {\n this._emitter.trigger(\"loaded\");\n this._setStalled(false);\n });\n\n // TODO: #leak\n this._audio.addEventListener(\"ended\", () => {\n this._emitter.trigger(\"ended\");\n this._setStatus(MEDIA_STATUS.STOPPED);\n });\n\n // TODO: Throttle to 50 (if needed)\n // TODO: #leak\n this._audio.addEventListener(\"timeupdate\", () => {\n this._emitter.trigger(\"positionChange\");\n });\n\n // TODO: #leak\n this._audio.addEventListener(\"error\", (e) => {\n switch (this._audio.error!.code) {\n case 1:\n // The fetching of the associated resource was aborted by the user's request.\n console.error(\"MEDIA_ERR_ABORTED\", e);\n break;\n case 2:\n console.error(\"MEDIA_ERR_NETWORK\", e);\n // Some kind of network error occurred which prevented the media from being successfully fetched, despite having previously been available.\n break;\n case 3:\n // Despite having previously been determined to be usable, an error occurred while trying to decode the media resource, resulting in an error.\n\n // There is a bug in Chrome where improperly terminated mp3s can cuase this error.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=794782\n // Related: Commit f44e826c83c74fef04c2c448af30cfb353b28312\n console.error(\"PIPELINE_ERROR_DECODE\", e);\n break;\n case 4:\n console.error(\"MEDIA_ERR_SRC_NOT_SUPPORTED\", e);\n // The associated resource or media provider object (such as a MediaStream) has been found to be unsuitable.\n break;\n }\n // Rather than just geting stuck in this error state, we can just pretend this is\n // the end of the track.\n\n this._emitter.trigger(\"ended\");\n this._setStatus(MEDIA_STATUS.STOPPED);\n });\n\n this._source = this._context.createMediaElementSource(this._audio);\n this._source.connect(destination);\n }\n\n _setStalled(stalled: boolean) {\n this._stalled = stalled;\n this._emitter.trigger(\"stallChanged\");\n }\n\n disconnect() {\n this._source.disconnect();\n }\n\n // Async for now, for compatibility with BufferAudioSource\n // TODO: This does not need to be async\n async loadUrl(url: string) {\n this._audio.src = url;\n }\n\n async play() {\n if (this._status !== MEDIA_STATUS.PAUSED) {\n this.seekToTime(0);\n }\n try {\n await this._audio.play();\n // TODO #race\n } catch (err) {\n //\n }\n this._setStatus(MEDIA_STATUS.PLAYING);\n }\n\n pause() {\n this._audio.pause();\n this._setStatus(MEDIA_STATUS.PAUSED);\n }\n\n stop() {\n this._audio.pause();\n this._audio.currentTime = 0;\n this._setStatus(MEDIA_STATUS.STOPPED);\n }\n\n seekToTime(time: number) {\n /* TODO: We could check if this is actually seekable:\n const { seekable } = this._audio;\n for (let i = 0; i < seekable.length; i++) {\n console.log(\"start\", seekable.start(i), \"end\", seekable.end(i));\n }\n */\n this._audio.currentTime = clamp(time, 0, this.getDuration());\n this._emitter.trigger(\"positionChange\");\n }\n\n getStalled() {\n return this._stalled;\n }\n\n getStatus() {\n return this._status;\n }\n\n getDuration() {\n const { duration } = this._audio;\n // Safari on iOS currently has a strange behavior where it reports\n // the duration as infinity if an Accept-Ranges header is not returned.\n // For now, 0 is better even though it's still wrong.\n return isNaN(duration) || duration === Infinity ? 0 : duration;\n }\n\n getTimeElapsed() {\n return this._audio.currentTime;\n }\n\n _setStatus(status: MediaStatus) {\n this._status = status;\n this._emitter.trigger(\"statusChange\");\n }\n\n dispose() {\n // TODO: Dispose subscriptions to this.audio\n this.stop();\n this._emitter.dispose();\n }\n}\n","/* Emulate the native