{"version":3,"sources":["webpack:///./node_modules/@iconify/react/dist/icon.js","webpack:///./node_modules/@iconify/icons-mdi/play-circle.js","webpack:///./node_modules/react-h5-audio-player/es/utils.js","webpack:///./node_modules/react-h5-audio-player/es/ProgressBar.js","webpack:///./node_modules/react-h5-audio-player/es/constants.js","webpack:///./node_modules/react-h5-audio-player/es/CurrentTime.js","webpack:///./node_modules/react-h5-audio-player/es/Duration.js","webpack:///./node_modules/react-h5-audio-player/es/VolumeBar.js","webpack:///./node_modules/react-h5-audio-player/es/index.js","webpack:///./src/components/HomeBut.js","webpack:///./node_modules/@iconify/icons-mdi/rewind.js","webpack:///./node_modules/@iconify/icons-mdi/volume-high.js","webpack:///./node_modules/@iconify/icons-mdi/volume-mute.js","webpack:///./node_modules/@iconify/icons-mdi/repeat-off.js","webpack:///./node_modules/@iconify/icons-mdi/fast-forward.js","webpack:///./node_modules/@iconify/icons-mdi/skip-next.js","webpack:///./node_modules/@iconify/icons-mdi/skip-previous.js","webpack:///./node_modules/@iconify/icons-mdi/repeat.js","webpack:///./node_modules/@iconify/icons-mdi/pause-circle.js"],"names":["Object","defineProperty","exports","value","InlineIcon","Icon","obj","_react","__esModule","_typeof","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","idCounter","unitsSplit","unitsTest","iconAttributes","defaultAttributes","left","top","width","height","rotate","hFlip","vFlip","SVG","icon","instance","Constructor","TypeError","_classCallCheck","this","_item","protoProps","staticProps","result","create","node","keys","forEach","name","indexOf","size","ratio","precision","Math","ceil","split","num","results","code","shift","isNumber","test","parseFloat","isNaN","push","join","body","match","prefix","regex","ids","strReplace","search","replace","subject","pos","slice","exec","Date","now","toString","random","id","newID","item","align","horizontal","vertical","transform","style","attributes","inline","box","inlineTop","inlineHeight","flip","toLowerCase","units","parseInt","round","tempValue","transformations","unshift","customWidth","customHeight","calculateDimension","verticalAlign","preserveAspectRatio","getAlignment","viewBox","replaceIDs","color","addExtra","splitAttributes","data","getAttributes","svg","attr","component","iconProps","customAttributes","iconData","normalize","_key","xmlns","focusable","dangerouslySetInnerHTML","__html","createElement","_default","default","getMainLayoutClassName","layout","getPosX","event","MouseEvent","clientX","touches","addHeadingZero","getDisplayTimeBySeconds","seconds","totalSeconds","timeFormat","isFinite","min","floor","minStr","secStr","minStrForHour","mmSs","hhMmSs","throttle","func","limit","inThrottle","arg","setTimeout","RHAP_UI","_Component","ProgressBar","_this","_len","arguments","args","Array","call","apply","concat","isDraggingProgress","currentTimePos","hasDownloadProgressAnimation","downloadProgressArr","waitingForSeekCallback","_this$props","audio","progressBar","src","srcDuration","currentTime","current","progressBarRect","getBoundingClientRect","maxRelativePos","relativePos","getDuration","toFixed","preventDefault","stopPropagation","_this$getCurrentProgr","getCurrentProgress","nativeEvent","timeOnMouseMove","setState","window","addEventListener","handleWindowMouseOrTouchMove","handleWindowMouseOrTouchUp","windowSelection","getSelection","type","empty","state","_this$getCurrentProgr2","newTime","_this$props2","onChangeCurrentTimeError","onSeek","then","err","Error","newProps","readyState","HAVE_NOTHING","HAVE_METADATA","removeEventListener","e","duration","progressUpdateInterval","buffered","bufferedStart","start","bufferedEnd","end","clearTimeout","downloadProgressAnimationTimer","_proto","_this$props3","componentDidUpdate","hasAddedAudioEventListener","handleAudioTimeUpdate","handleAudioDownloadProgressUpdate","componentWillUnmount","render","_this$props4","showDownloadProgress","showFilledProgress","_this$state","className","ref","role","Number","tabIndex","onMouseDown","handleMouseDownOrTouchStartProgressBar","onTouchStart","onContextMenu","handleContextMenu","map","_ref","transitionDuration","_PureComponent","CurrentTime","defaultCurrentTime","isLeftTime","handleAudioCurrentTimeChange","_audio","_defaultCurrentTime","_isLeftTime","_timeFormat","componentDidMount","addAudioEventListeners","Duration","defaultDuration","handleAudioDurationChange","_defaultDuration","VolumeControls","volume","currentVolumePos","lastVolume","hasVolumeAnimation","isDraggingVolume","volumeBar","currentVolume","volumeBarRect","_this$getCurrentVolum","getCurrentVolume","_this$getCurrentVolum2","onMuteChange","volumeAnimationTimer","handleAudioVolumeChange","showFilledVolume","handleVolumnControlMouseOrTouchDown","H5AudioPlayer","paused","ended","playAudioPromise","pause","playPromise","play","catch","onPlayError","forceUpdate","onPlay","onPause","onEnded","onAbort","loop","progressJumpSteps","progressJumpStep","jumpStep","backward","setJumpTime","forward","time","prevTime","newVolume","hasDefaultKeyBindings","container","togglePlay","handleClickRewind","handleClickForward","setJumpVolume","volumeJumpStep","handleClickLoopButton","handleClickVolumeButton","modules","comp","renderUIModule","customIcons","showSkipControls","onClickPrevious","onClickNext","showJumpControls","customAdditionalControls","customVolumeControls","muted","volumeProp","loopProp","mse","CURRENT_TIME","CURRENT_LEFT_TIME","PROGRESS_BAR","DURATION","ADDITIONAL_CONTROLS","renderUIModules","MAIN_CONTROLS","actionIcon","isPlaying","onClick","previous","rewind","next","VOLUME_CONTROLS","LOOP","loopIcon","loopOff","VOLUME","volumeIcon","_ref$volume","volumeMute","VolumeBar","handleMuteChange","_this2","onError","onCanPlay","onCanPlayThrough","handlePlay","handleAbort","handleEnded","onPlaying","onSeeking","onSeeked","onWaiting","onEmptied","onStalled","onSuspend","onLoadStart","onLoadedMetaData","onLoadedData","handlePause","onListen","listenInterval","onVolumeChange","onEcrypted","prevProps","autoPlayAfterSrcChange","removeAttribute","load","_this$props5","preload","autoPlay","crossOrigin","mediaGroup","header","footer","customProgressBarSection","customControlsSection","children","onKeyDown","handleKeyDown","controls","HomeBut","fill","stroke","d"],"mappings":"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","file":"46648100663a1fb34308602bb821e6a4a1ee9222-f65cb4bb0820c679d8da.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.InlineIcon = exports.Icon = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/**\n * Unique id counter\n *\n * @type {number}\n */\n\n\nvar idCounter = 0;\n/**\n * Regex used to split dimensions\n *\n * @type {RegExp}\n * @private\n */\n\nvar unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nvar unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\n/**\n * Attributes used for icon\n *\n * @type {string[]}\n */\n\nvar iconAttributes = ['width', 'height', 'inline', 'hFlip', 'vFlip', 'flip', 'rotate', 'align', 'color', 'box'];\n/**\n * Default attribute values\n *\n * @type {object}\n */\n\nvar defaultAttributes = {\n left: 0,\n top: 0,\n width: 16,\n height: 16,\n rotate: 0,\n hFlip: false,\n vFlip: false\n};\n/**\n * Add missing properties to icon\n *\n * Important: in PHP version of this library this function is part of Collection class: Collection::addMissingAttributes()\n *\n * JavaScript version uses separate file so this function could be used in React and other components without loading\n * entire Collection class.\n *\n * @param {object} data\n * @return {object}\n */\n\nfunction normalize(data) {\n // Object.create, compatible with IE11\n var item = Object.create(null);\n var key;\n\n for (key in defaultAttributes) {\n item[key] = defaultAttributes[key];\n }\n\n for (key in data) {\n item[key] = data[key];\n } // Attributes derived from other attributes\n\n\n if (item.inlineTop === void 0) {\n item.inlineTop = item.top;\n }\n\n if (item.inlineHeight === void 0) {\n item.inlineHeight = item.height;\n }\n\n if (item.verticalAlign === void 0) {\n // -0.143 if icon is designed for 14px height,\n // otherwise assume icon is designed for 16px height\n item.verticalAlign = item.height % 7 === 0 && item.height % 8 !== 0 ? -0.143 : -0.125;\n }\n\n return item;\n}\n/**\n * Get preserveAspectRatio attribute value\n *\n * @param {object} align\n * @return {string}\n * @private\n */\n\n\nfunction getAlignment(align) {\n var result;\n\n switch (align.horizontal) {\n case 'left':\n result = 'xMin';\n break;\n\n case 'right':\n result = 'xMax';\n break;\n\n default:\n result = 'xMid';\n }\n\n switch (align.vertical) {\n case 'top':\n result += 'YMin';\n break;\n\n case 'bottom':\n result += 'YMax';\n break;\n\n default:\n result += 'YMid';\n }\n\n result += align.slice ? ' slice' : ' meet';\n return result;\n}\n/**\n * SVG class\n *\n * @see @iconify/json-tools/src/svg.js\n */\n\n\nvar SVG = /*#__PURE__*/function () {\n /**\n * Constructor\n *\n * @param icon Icon data\n * Use Collection.getIconData() to retrieve icon data\n */\n function SVG(icon) {\n _classCallCheck(this, SVG);\n\n this._item = icon;\n }\n /**\n * Get SVG attributes\n *\n * @param {object} props Custom properties (same as query string in Iconify API)\n * @returns {string}\n */\n\n\n _createClass(SVG, [{\n key: \"getAttributes\",\n value: function getAttributes(props) {\n var item = this._item;\n\n if (_typeof(props) !== 'object') {\n props = Object.create(null);\n } // Set data\n\n\n var align = {\n horizontal: 'center',\n vertical: 'middle',\n slice: false\n };\n var transform = {\n rotate: item.rotate,\n hFlip: item.hFlip,\n vFlip: item.vFlip\n };\n var style = Object.create(null);\n var attributes = Object.create(null); // Get width/height\n\n var inline = props.inline === true || props.inline === 'true' || props.inline === '1';\n var box = {\n left: item.left,\n top: inline ? item.inlineTop : item.top,\n width: item.width,\n height: inline ? item.inlineHeight : item.height\n }; // Transformations\n\n ['hFlip', 'vFlip'].forEach(function (key) {\n if (props[key] !== void 0 && (props[key] === true || props[key] === 'true' || props[key] === '1')) {\n transform[key] = !transform[key];\n }\n });\n\n if (props.flip !== void 0) {\n props.flip.toLowerCase().split(/[\\s,]+/).forEach(function (value) {\n switch (value) {\n case 'horizontal':\n transform.hFlip = !transform.hFlip;\n break;\n\n case 'vertical':\n transform.vFlip = !transform.vFlip;\n }\n });\n }\n\n if (props.rotate !== void 0) {\n var value = props.rotate;\n\n if (typeof value === 'number') {\n transform.rotate += value;\n } else if (typeof value === 'string') {\n var units = value.replace(/^-?[0-9.]*/, '');\n\n if (units === '') {\n value = parseInt(value);\n\n if (!isNaN(value)) {\n transform.rotate += value;\n }\n } else if (units !== value) {\n var split = false;\n\n switch (units) {\n case '%':\n // 25% -> 1, 50% -> 2, ...\n split = 25;\n break;\n\n case 'deg':\n // 90deg -> 1, 180deg -> 2, ...\n split = 90;\n }\n\n if (split) {\n value = parseInt(value.slice(0, value.length - units.length));\n\n if (!isNaN(value)) {\n transform.rotate += Math.round(value / split);\n }\n }\n }\n }\n } // Apply transformations to box\n\n\n var transformations = [],\n tempValue;\n\n if (transform.hFlip) {\n if (transform.vFlip) {\n transform.rotate += 2;\n } else {\n // Horizontal flip\n transformations.push('translate(' + (box.width + box.left) + ' ' + (0 - box.top) + ')');\n transformations.push('scale(-1 1)');\n box.top = box.left = 0;\n }\n } else if (transform.vFlip) {\n // Vertical flip\n transformations.push('translate(' + (0 - box.left) + ' ' + (box.height + box.top) + ')');\n transformations.push('scale(1 -1)');\n box.top = box.left = 0;\n }\n\n switch (transform.rotate % 4) {\n case 1:\n // 90deg\n tempValue = box.height / 2 + box.top;\n transformations.unshift('rotate(90 ' + tempValue + ' ' + tempValue + ')'); // swap width/height and x/y\n\n if (box.left !== 0 || box.top !== 0) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n\n break;\n\n case 2:\n // 180deg\n transformations.unshift('rotate(180 ' + (box.width / 2 + box.left) + ' ' + (box.height / 2 + box.top) + ')');\n break;\n\n case 3:\n // 270deg\n tempValue = box.width / 2 + box.left;\n transformations.unshift('rotate(-90 ' + tempValue + ' ' + tempValue + ')'); // swap width/height and x/y\n\n if (box.left !== 0 || box.top !== 0) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n\n break;\n } // Calculate dimensions\n // Values for width/height: null = default, 'auto' = from svg, false = do not set\n // Default: if both values aren't set, height defaults to '1em', width is calculated from height\n\n\n var customWidth = props.width ? props.width : null;\n var customHeight = props.height ? props.height : null;\n var width, height;\n\n if (customWidth === null && customHeight === null) {\n customHeight = '1em';\n }\n\n if (customWidth !== null && customHeight !== null) {\n width = customWidth;\n height = customHeight;\n } else if (customWidth !== null) {\n width = customWidth;\n height = SVG.calculateDimension(width, box.height / box.width);\n } else {\n height = customHeight;\n width = SVG.calculateDimension(height, box.width / box.height);\n }\n\n if (width !== false) {\n attributes.width = width === 'auto' ? box.width : width;\n }\n\n if (height !== false) {\n attributes.height = height === 'auto' ? box.height : height;\n } // Add vertical-align for inline icon\n\n\n if (inline && item.verticalAlign !== 0) {\n style['vertical-align'] = item.verticalAlign + 'em';\n } // Check custom alignment\n\n\n if (props.align !== void 0) {\n props.align.toLowerCase().split(/[\\s,]+/).forEach(function (value) {\n switch (value) {\n case 'left':\n case 'right':\n case 'center':\n align.horizontal = value;\n break;\n\n case 'top':\n case 'bottom':\n case 'middle':\n align.vertical = value;\n break;\n\n case 'crop':\n align.slice = true;\n break;\n\n case 'meet':\n align.slice = false;\n }\n });\n } // Generate viewBox and preserveAspectRatio attributes\n\n\n attributes.preserveAspectRatio = getAlignment(align);\n attributes.viewBox = box.left + ' ' + box.top + ' ' + box.width + ' ' + box.height; // Generate body\n\n var body = SVG.replaceIDs(item.body);\n\n if (props.color !== void 0) {\n body = body.replace(/currentColor/g, props.color);\n }\n\n if (transformations.length) {\n body = '' + body + '';\n }\n\n if (props.box === true || props.box === 'true' || props.box === '1') {\n // Add transparent bounding box\n body += '';\n }\n\n return {\n attributes: attributes,\n body: body,\n style: style\n };\n }\n /**\n * Generate SVG\n *\n * @param {object} props Custom properties (same as query string in Iconify API)\n * @param {boolean} [addExtra] True if extra attributes should be added to SVG.\n * Due to lack of functions in JavaScript for escaping attributes, it is your job to make sure key and value are both properly escaped. Default value is false.\n * @returns {string}\n */\n\n }, {\n key: \"getSVG\",\n value: function getSVG(props, addExtra) {\n var attributes = SVG.splitAttributes(props),\n data = this.getAttributes(attributes.icon);\n var svg = '';\n return svg;\n }\n /**\n * Split attributes\n *\n * @param props\n * @return {{icon: {}, node: {}}}\n */\n\n }], [{\n key: \"splitAttributes\",\n value: function splitAttributes(props) {\n var result = {\n icon: Object.create(null),\n node: Object.create(null)\n };\n Object.keys(props).forEach(function (name) {\n result[iconAttributes.indexOf(name) === -1 ? 'node' : 'icon'][name] = props[name];\n });\n return result;\n }\n /**\n * Calculate second dimension when only 1 dimension is set\n *\n * @param {string|number} size One dimension (such as width)\n * @param {number} ratio Width/height ratio.\n * If size == width, ratio = height/width\n * If size == height, ratio = width/height\n * @param {number} [precision] Floating number precision in result to minimize output. Default = 100\n * @return {string|number|null} Another dimension, null on error\n */\n\n }, {\n key: \"calculateDimension\",\n value: function calculateDimension(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n\n precision = precision === void 0 ? 100 : precision;\n\n if (typeof size === 'number') {\n return Math.ceil(size * ratio * precision) / precision;\n } // split code into sets of strings and numbers\n\n\n var split = size.split(unitsSplit);\n\n if (split === null || !split.length) {\n return null;\n }\n\n var results = [],\n code = split.shift(),\n isNumber = unitsTest.test(code),\n num;\n\n while (true) {\n if (isNumber) {\n num = parseFloat(code);\n\n if (isNaN(num)) {\n results.push(code);\n } else {\n results.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n results.push(code);\n } // next\n\n\n code = split.shift();\n\n if (code === void 0) {\n return results.join('');\n }\n\n isNumber = !isNumber;\n }\n }\n /**\n * Replace IDs in SVG output with unique IDs\n * Fast replacement without parsing XML, assuming commonly used patterns.\n *\n * @param {string} body\n * @return {string}\n */\n\n }, {\n key: \"replaceIDs\",\n value: function replaceIDs(body) {\n var regex = /\\sid=\"(\\S+)\"/g,\n ids = [],\n match,\n prefix;\n\n function strReplace(search, replace, subject) {\n var pos = 0;\n\n while ((pos = subject.indexOf(search, pos)) !== -1) {\n subject = subject.slice(0, pos) + replace + subject.slice(pos + search.length);\n pos += replace.length;\n }\n\n return subject;\n } // Find all IDs\n\n\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n\n if (!ids.length) {\n return body;\n }\n\n prefix = 'IconifyId-' + Date.now().toString(16) + '-' + (Math.random() * 0x1000000 | 0).toString(16) + '-'; // Replace with unique ids\n\n ids.forEach(function (id) {\n var newID = prefix + idCounter;\n idCounter++;\n body = strReplace('=\"' + id + '\"', '=\"' + newID + '\"', body);\n body = strReplace('=\"#' + id + '\"', '=\"#' + newID + '\"', body);\n body = strReplace('(#' + id + ')', '(#' + newID + ')', body);\n });\n return body;\n }\n }]);\n\n return SVG;\n}();\n/**\n * Create React component with SVG data\n *\n * @param {object} props\n * @param {boolean} inline\n * @return {null|React.Component}\n */\n\n\nfunction component(props, inline) {\n if (_typeof(props.icon) !== 'object') {\n return null;\n } // Split properties into SVG properties and icon properties\n\n\n var split = SVG.splitAttributes(props),\n iconProps = split.icon,\n customAttributes = split.node;\n delete customAttributes.icon; // Set default inline value\n\n if (iconProps.inline === void 0) {\n iconProps.inline = inline;\n } // Get SVG data\n\n\n var svg = new SVG(normalize(props.icon));\n var iconData = svg.getAttributes(iconProps); // Set style\n\n var style = {\n transform: 'rotate(360deg)'\n };\n\n if (iconData.style['vertical-align'] !== void 0) {\n style.verticalAlign = iconData.style['vertical-align'];\n }\n\n if (props.style !== void 0) {\n for (var _key in props.style) {\n style[_key] = props.style[_key];\n }\n } // Generate element attributes\n\n\n var attributes = {\n xmlns: 'http://www.w3.org/2000/svg',\n focusable: false,\n style: style\n };\n var key;\n\n for (key in customAttributes) {\n attributes[key] = customAttributes[key];\n }\n\n for (key in iconData.attributes) {\n attributes[key] = iconData.attributes[key];\n }\n\n attributes.dangerouslySetInnerHTML = {\n __html: iconData.body\n }; // Generate SVG\n\n return _react[\"default\"].createElement('svg', attributes, null);\n}\n/**\n * Icon without vertical alignment\n *\n * @param {object} props\n * @return {React.Component}\n * @constructor\n */\n\n\nvar Icon = function Icon(props) {\n return component(props, false);\n};\n/**\n * Icon with vertical alignment\n *\n * @param {object} props\n * @return {React.Component}\n * @constructor\n */\n\n\nexports.Icon = Icon;\n\nvar InlineIcon = function InlineIcon(props) {\n return component(props, true);\n};\n/**\n * Default export\n */\n\n\nexports.InlineIcon = InlineIcon;\nvar _default = Icon;\nexports[\"default\"] = _default;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","export var getMainLayoutClassName = function getMainLayoutClassName(layout) {\n switch (layout) {\n case 'stacked':\n return 'rhap_stacked';\n\n case 'stacked-reverse':\n return 'rhap_stacked-reverse';\n\n case 'horizontal':\n return 'rhap_horizontal';\n\n case 'horizontal-reverse':\n return 'rhap_horizontal-reverse';\n\n default:\n return 'rhap_stacked';\n }\n};\nexport var getPosX = function getPosX(event) {\n if (event instanceof MouseEvent) {\n return event.clientX;\n } else {\n return event.touches[0].clientX;\n }\n};\n\nvar addHeadingZero = function addHeadingZero(num) {\n return num > 9 ? num.toString() : \"0\" + num;\n};\n\nexport var getDisplayTimeBySeconds = function getDisplayTimeBySeconds(seconds, totalSeconds, timeFormat) {\n if (!isFinite(seconds)) {\n return null;\n }\n\n var min = Math.floor(seconds / 60);\n var minStr = addHeadingZero(min);\n var secStr = addHeadingZero(Math.floor(seconds % 60));\n var minStrForHour = addHeadingZero(Math.floor(min % 60));\n var hourStr = Math.floor(min / 60);\n var mmSs = minStr + \":\" + secStr;\n var hhMmSs = hourStr + \":\" + minStrForHour + \":\" + secStr;\n\n if (timeFormat === 'auto') {\n if (totalSeconds >= 3600) {\n return hhMmSs;\n } else {\n return mmSs;\n }\n } else if (timeFormat === 'mm:ss') {\n return mmSs;\n } else if (timeFormat === 'hh:mm:ss') {\n return hhMmSs;\n }\n};\nexport function throttle(func, limit) {\n var inThrottle = false;\n return function (arg) {\n if (!inThrottle) {\n func(arg);\n inThrottle = true;\n setTimeout(function () {\n return inThrottle = false;\n }, limit);\n }\n };\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport React, { Component, forwardRef } from 'react';\nimport { getPosX, throttle } from './utils';\n\nvar ProgressBar = function (_Component) {\n _inheritsLoose(ProgressBar, _Component);\n\n function ProgressBar() {\n var _this;\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 = _Component.call.apply(_Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"timeOnMouseMove\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"downloadProgressAnimationTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isDraggingProgress: false,\n currentTimePos: '0%',\n hasDownloadProgressAnimation: false,\n downloadProgressArr: [],\n waitingForSeekCallback: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getCurrentProgress\", function (event) {\n var _this$props = _this.props,\n audio = _this$props.audio,\n progressBar = _this$props.progressBar;\n var isSingleFileProgressiveDownload = audio.src.indexOf('blob:') !== 0 && typeof _this.props.srcDuration === 'undefined';\n\n if (isSingleFileProgressiveDownload && (!audio.src || !isFinite(audio.currentTime) || !progressBar.current)) {\n return {\n currentTime: 0,\n currentTimePos: '0%'\n };\n }\n\n var progressBarRect = progressBar.current.getBoundingClientRect();\n var maxRelativePos = progressBarRect.width;\n var relativePos = getPosX(event) - progressBarRect.left;\n\n if (relativePos < 0) {\n relativePos = 0;\n } else if (relativePos > maxRelativePos) {\n relativePos = maxRelativePos;\n }\n\n var duration = _this.getDuration();\n\n var currentTime = duration * relativePos / maxRelativePos;\n return {\n currentTime: currentTime,\n currentTimePos: (relativePos / maxRelativePos * 100).toFixed(2) + \"%\"\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleContextMenu\", function (event) {\n event.preventDefault();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDownOrTouchStartProgressBar\", function (event) {\n event.stopPropagation();\n\n var _this$getCurrentProgr = _this.getCurrentProgress(event.nativeEvent),\n currentTime = _this$getCurrentProgr.currentTime,\n currentTimePos = _this$getCurrentProgr.currentTimePos;\n\n if (isFinite(currentTime)) {\n _this.timeOnMouseMove = currentTime;\n\n _this.setState({\n isDraggingProgress: true,\n currentTimePos: currentTimePos\n });\n\n if (event.nativeEvent instanceof MouseEvent) {\n window.addEventListener('mousemove', _this.handleWindowMouseOrTouchMove);\n window.addEventListener('mouseup', _this.handleWindowMouseOrTouchUp);\n } else {\n window.addEventListener('touchmove', _this.handleWindowMouseOrTouchMove);\n window.addEventListener('touchend', _this.handleWindowMouseOrTouchUp);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchMove\", function (event) {\n if (event instanceof MouseEvent) {\n event.preventDefault();\n }\n\n event.stopPropagation();\n var windowSelection = window.getSelection();\n\n if (windowSelection && windowSelection.type === 'Range') {\n windowSelection.empty();\n }\n\n var isDraggingProgress = _this.state.isDraggingProgress;\n\n if (isDraggingProgress) {\n var _this$getCurrentProgr2 = _this.getCurrentProgress(event),\n currentTime = _this$getCurrentProgr2.currentTime,\n currentTimePos = _this$getCurrentProgr2.currentTimePos;\n\n _this.timeOnMouseMove = currentTime;\n\n _this.setState({\n currentTimePos: currentTimePos\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchUp\", function (event) {\n event.stopPropagation();\n var newTime = _this.timeOnMouseMove;\n var _this$props2 = _this.props,\n audio = _this$props2.audio,\n onChangeCurrentTimeError = _this$props2.onChangeCurrentTimeError,\n onSeek = _this$props2.onSeek;\n\n if (onSeek) {\n _this.setState({\n isDraggingProgress: false,\n waitingForSeekCallback: true\n }, function () {\n onSeek(audio, newTime).then(function () {\n return _this.setState({\n waitingForSeekCallback: false\n });\n }, function (err) {\n throw new Error(err);\n });\n });\n } else {\n var newProps = {\n isDraggingProgress: false\n };\n\n if (audio.readyState === audio.HAVE_NOTHING || audio.readyState === audio.HAVE_METADATA || !isFinite(newTime)) {\n newProps.currentTimePos = '0%';\n onChangeCurrentTimeError && onChangeCurrentTimeError();\n } else {\n audio.currentTime = newTime;\n }\n\n _this.setState(newProps);\n }\n\n if (event instanceof MouseEvent) {\n window.removeEventListener('mousemove', _this.handleWindowMouseOrTouchMove);\n window.removeEventListener('mouseup', _this.handleWindowMouseOrTouchUp);\n } else {\n window.removeEventListener('touchmove', _this.handleWindowMouseOrTouchMove);\n window.removeEventListener('touchend', _this.handleWindowMouseOrTouchUp);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioTimeUpdate\", throttle(function (e) {\n var isDraggingProgress = _this.state.isDraggingProgress;\n var audio = e.target;\n if (isDraggingProgress || _this.state.waitingForSeekCallback === true) return;\n var currentTime = audio.currentTime;\n\n var duration = _this.getDuration();\n\n _this.setState({\n currentTimePos: (currentTime / duration * 100 || 0).toFixed(2) + \"%\"\n });\n }, _this.props.progressUpdateInterval));\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioDownloadProgressUpdate\", function (e) {\n var audio = e.target;\n\n var duration = _this.getDuration();\n\n var downloadProgressArr = [];\n\n for (var i = 0; i < audio.buffered.length; i++) {\n var bufferedStart = audio.buffered.start(i);\n var bufferedEnd = audio.buffered.end(i);\n downloadProgressArr.push({\n left: (Math.round(100 / duration * bufferedStart) || 0) + \"%\",\n width: (Math.round(100 / duration * (bufferedEnd - bufferedStart)) || 0) + \"%\"\n });\n }\n\n clearTimeout(_this.downloadProgressAnimationTimer);\n\n _this.setState({\n downloadProgressArr: downloadProgressArr,\n hasDownloadProgressAnimation: true\n });\n\n _this.downloadProgressAnimationTimer = setTimeout(function () {\n _this.setState({\n hasDownloadProgressAnimation: false\n });\n }, 200);\n });\n\n return _this;\n }\n\n var _proto = ProgressBar.prototype;\n\n _proto.getDuration = function getDuration() {\n var _this$props3 = this.props,\n audio = _this$props3.audio,\n srcDuration = _this$props3.srcDuration;\n return typeof srcDuration === 'undefined' ? audio.duration : srcDuration;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var audio = this.props.audio;\n\n if (audio && !this.hasAddedAudioEventListener) {\n this.audio = audio;\n this.hasAddedAudioEventListener = true;\n audio.addEventListener('timeupdate', this.handleAudioTimeUpdate);\n audio.addEventListener('progress', this.handleAudioDownloadProgressUpdate);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('timeupdate', this.handleAudioTimeUpdate);\n this.audio.removeEventListener('progress', this.handleAudioDownloadProgressUpdate);\n }\n\n clearTimeout(this.downloadProgressAnimationTimer);\n };\n\n _proto.render = function render() {\n var _this$props4 = this.props,\n showDownloadProgress = _this$props4.showDownloadProgress,\n showFilledProgress = _this$props4.showFilledProgress,\n progressBar = _this$props4.progressBar;\n var _this$state = this.state,\n currentTimePos = _this$state.currentTimePos,\n downloadProgressArr = _this$state.downloadProgressArr,\n hasDownloadProgressAnimation = _this$state.hasDownloadProgressAnimation;\n return React.createElement(\"div\", {\n className: \"rhap_progress-container\",\n ref: progressBar,\n \"aria-label\": \"Audio Progress Control\",\n role: \"progressbar\",\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-valuenow\": Number(currentTimePos.split('%')[0]),\n tabIndex: 0,\n onMouseDown: this.handleMouseDownOrTouchStartProgressBar,\n onTouchStart: this.handleMouseDownOrTouchStartProgressBar,\n onContextMenu: this.handleContextMenu\n }, React.createElement(\"div\", {\n className: \"rhap_progress-bar \" + (showDownloadProgress ? 'rhap_progress-bar-show-download' : '')\n }, React.createElement(\"div\", {\n className: \"rhap_progress-indicator\",\n style: {\n left: currentTimePos\n }\n }), showFilledProgress && React.createElement(\"div\", {\n className: \"rhap_progress-filled\",\n style: {\n width: currentTimePos\n }\n }), showDownloadProgress && downloadProgressArr.map(function (_ref, i) {\n var left = _ref.left,\n width = _ref.width;\n return React.createElement(\"div\", {\n key: i,\n className: \"rhap_download-progress\",\n style: {\n left: left,\n width: width,\n transitionDuration: hasDownloadProgressAnimation ? '.2s' : '0s'\n }\n });\n })));\n };\n\n return ProgressBar;\n}(Component);\n\nvar ProgressBarForwardRef = function ProgressBarForwardRef(props, ref) {\n return React.createElement(ProgressBar, _extends({}, props, {\n progressBar: ref\n }));\n};\n\nexport default forwardRef(ProgressBarForwardRef);\nexport { ProgressBar, ProgressBarForwardRef };","export var RHAP_UI;\n\n(function (RHAP_UI) {\n RHAP_UI[\"CURRENT_TIME\"] = \"CURRENT_TIME\";\n RHAP_UI[\"CURRENT_LEFT_TIME\"] = \"CURRENT_LEFT_TIME\";\n RHAP_UI[\"PROGRESS_BAR\"] = \"PROGRESS_BAR\";\n RHAP_UI[\"DURATION\"] = \"DURATION\";\n RHAP_UI[\"ADDITIONAL_CONTROLS\"] = \"ADDITIONAL_CONTROLS\";\n RHAP_UI[\"MAIN_CONTROLS\"] = \"MAIN_CONTROLS\";\n RHAP_UI[\"VOLUME_CONTROLS\"] = \"VOLUME_CONTROLS\";\n RHAP_UI[\"LOOP\"] = \"LOOP\";\n RHAP_UI[\"VOLUME\"] = \"VOLUME\";\n})(RHAP_UI || (RHAP_UI = {}));","import _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { PureComponent } from 'react';\nimport { getDisplayTimeBySeconds } from './utils';\n\nvar CurrentTime = function (_PureComponent) {\n _inheritsLoose(CurrentTime, _PureComponent);\n\n function CurrentTime(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n currentTime: _this.props.defaultCurrentTime\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioCurrentTimeChange\", function (e) {\n var audio = e.target;\n var _this$props = _this.props,\n isLeftTime = _this$props.isLeftTime,\n timeFormat = _this$props.timeFormat,\n defaultCurrentTime = _this$props.defaultCurrentTime;\n\n _this.setState({\n currentTime: getDisplayTimeBySeconds(isLeftTime ? audio.duration - audio.currentTime : audio.currentTime, audio.duration, timeFormat) || defaultCurrentTime\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"addAudioEventListeners\", function () {\n var audio = _this.props.audio;\n\n if (audio && !_this.hasAddedAudioEventListener) {\n _this.audio = audio;\n _this.hasAddedAudioEventListener = true;\n audio.addEventListener('timeupdate', _this.handleAudioCurrentTimeChange);\n audio.addEventListener('loadedmetadata', _this.handleAudioCurrentTimeChange);\n }\n });\n\n var _audio = props.audio,\n _defaultCurrentTime = props.defaultCurrentTime,\n _isLeftTime = props.isLeftTime,\n _timeFormat = props.timeFormat;\n var currentTime = _defaultCurrentTime;\n\n if (_audio) {\n currentTime = getDisplayTimeBySeconds(_isLeftTime ? _audio.duration - _audio.currentTime : _audio.currentTime, _audio.duration, _timeFormat);\n }\n\n _this.state = {\n currentTime: currentTime\n };\n return _this;\n }\n\n var _proto = CurrentTime.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.addAudioEventListeners();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.addAudioEventListeners();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('timeupdate', this.handleAudioCurrentTimeChange);\n this.audio.removeEventListener('loadedmetadata', this.handleAudioCurrentTimeChange);\n }\n };\n\n _proto.render = function render() {\n return this.state.currentTime;\n };\n\n return CurrentTime;\n}(PureComponent);\n\nexport default CurrentTime;","import _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { PureComponent } from 'react';\nimport { getDisplayTimeBySeconds } from './utils';\n\nvar Duration = function (_PureComponent) {\n _inheritsLoose(Duration, _PureComponent);\n\n function Duration(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n duration: _this.props.audio ? getDisplayTimeBySeconds(_this.props.audio.duration, _this.props.audio.duration, _this.props.timeFormat) : _this.props.defaultDuration\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioDurationChange\", function (e) {\n var audio = e.target;\n var _this$props = _this.props,\n timeFormat = _this$props.timeFormat,\n defaultDuration = _this$props.defaultDuration;\n\n _this.setState({\n duration: getDisplayTimeBySeconds(audio.duration, audio.duration, timeFormat) || defaultDuration\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"addAudioEventListeners\", function () {\n var audio = _this.props.audio;\n\n if (audio && !_this.hasAddedAudioEventListener) {\n _this.audio = audio;\n _this.hasAddedAudioEventListener = true;\n audio.addEventListener('durationchange', _this.handleAudioDurationChange);\n audio.addEventListener('abort', _this.handleAudioDurationChange);\n }\n });\n\n var _audio = props.audio,\n _timeFormat = props.timeFormat,\n _defaultDuration = props.defaultDuration;\n _this.state = {\n duration: _audio ? getDisplayTimeBySeconds(_audio.duration, _audio.duration, _timeFormat) : _defaultDuration\n };\n return _this;\n }\n\n var _proto = Duration.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.addAudioEventListeners();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.addAudioEventListeners();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('durationchange', this.handleAudioDurationChange);\n this.audio.removeEventListener('abort', this.handleAudioDurationChange);\n }\n };\n\n _proto.render = function render() {\n return this.state.duration;\n };\n\n return Duration;\n}(PureComponent);\n\nexport default Duration;","import _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport React, { Component, createRef } from 'react';\nimport { getPosX } from './utils';\n\nvar VolumeControls = function (_Component) {\n _inheritsLoose(VolumeControls, _Component);\n\n function VolumeControls() {\n var _this;\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 = _Component.call.apply(_Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"volumeBar\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"volumeAnimationTimer\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"lastVolume\", _this.props.volume);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n currentVolumePos: (_this.lastVolume / 1 * 100 || 0).toFixed(2) + \"%\",\n hasVolumeAnimation: false,\n isDraggingVolume: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getCurrentVolume\", function (event) {\n var audio = _this.props.audio;\n\n if (!_this.volumeBar.current) {\n return {\n currentVolume: audio.volume,\n currentVolumePos: _this.state.currentVolumePos\n };\n }\n\n var volumeBarRect = _this.volumeBar.current.getBoundingClientRect();\n\n var maxRelativePos = volumeBarRect.width;\n var relativePos = getPosX(event) - volumeBarRect.left;\n var currentVolume;\n var currentVolumePos;\n\n if (relativePos < 0) {\n currentVolume = 0;\n currentVolumePos = '0%';\n } else if (relativePos > volumeBarRect.width) {\n currentVolume = 1;\n currentVolumePos = '100%';\n } else {\n currentVolume = relativePos / maxRelativePos;\n currentVolumePos = relativePos / maxRelativePos * 100 + \"%\";\n }\n\n return {\n currentVolume: currentVolume,\n currentVolumePos: currentVolumePos\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleContextMenu\", function (event) {\n event.preventDefault();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickVolumeButton\", function () {\n var audio = _this.props.audio;\n\n if (audio.volume > 0) {\n _this.lastVolume = audio.volume;\n audio.volume = 0;\n } else {\n audio.volume = _this.lastVolume;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleVolumnControlMouseOrTouchDown\", function (event) {\n event.stopPropagation();\n var audio = _this.props.audio;\n\n var _this$getCurrentVolum = _this.getCurrentVolume(event.nativeEvent),\n currentVolume = _this$getCurrentVolum.currentVolume,\n currentVolumePos = _this$getCurrentVolum.currentVolumePos;\n\n audio.volume = currentVolume;\n\n _this.setState({\n isDraggingVolume: true,\n currentVolumePos: currentVolumePos\n });\n\n if (event.nativeEvent instanceof MouseEvent) {\n window.addEventListener('mousemove', _this.handleWindowMouseOrTouchMove);\n window.addEventListener('mouseup', _this.handleWindowMouseOrTouchUp);\n } else {\n window.addEventListener('touchmove', _this.handleWindowMouseOrTouchMove);\n window.addEventListener('touchend', _this.handleWindowMouseOrTouchUp);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchMove\", function (event) {\n if (event instanceof MouseEvent) {\n event.preventDefault();\n }\n\n event.stopPropagation();\n var audio = _this.props.audio;\n var windowSelection = window.getSelection();\n\n if (windowSelection && windowSelection.type === 'Range') {\n windowSelection.empty();\n }\n\n var isDraggingVolume = _this.state.isDraggingVolume;\n\n if (isDraggingVolume) {\n var _this$getCurrentVolum2 = _this.getCurrentVolume(event),\n currentVolume = _this$getCurrentVolum2.currentVolume,\n currentVolumePos = _this$getCurrentVolum2.currentVolumePos;\n\n audio.volume = currentVolume;\n\n _this.setState({\n currentVolumePos: currentVolumePos\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchUp\", function (event) {\n event.stopPropagation();\n\n _this.setState({\n isDraggingVolume: false\n });\n\n if (event instanceof MouseEvent) {\n window.removeEventListener('mousemove', _this.handleWindowMouseOrTouchMove);\n window.removeEventListener('mouseup', _this.handleWindowMouseOrTouchUp);\n } else {\n window.removeEventListener('touchmove', _this.handleWindowMouseOrTouchMove);\n window.removeEventListener('touchend', _this.handleWindowMouseOrTouchUp);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAudioVolumeChange\", function (e) {\n var isDraggingVolume = _this.state.isDraggingVolume;\n var _ref = e.target,\n volume = _ref.volume;\n\n if (_this.lastVolume > 0 && volume === 0 || _this.lastVolume === 0 && volume > 0) {\n _this.props.onMuteChange();\n }\n\n _this.lastVolume = volume;\n if (isDraggingVolume) return;\n\n _this.setState({\n hasVolumeAnimation: true,\n currentVolumePos: (volume / 1 * 100 || 0).toFixed(2) + \"%\"\n });\n\n clearTimeout(_this.volumeAnimationTimer);\n _this.volumeAnimationTimer = setTimeout(function () {\n _this.setState({\n hasVolumeAnimation: false\n });\n }, 100);\n });\n\n return _this;\n }\n\n var _proto = VolumeControls.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var audio = this.props.audio;\n\n if (audio && !this.hasAddedAudioEventListener) {\n this.audio = audio;\n this.hasAddedAudioEventListener = true;\n audio.addEventListener('volumechange', this.handleAudioVolumeChange);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('volumechange', this.handleAudioVolumeChange);\n }\n\n clearTimeout(this.volumeAnimationTimer);\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n audio = _this$props.audio,\n showFilledVolume = _this$props.showFilledVolume;\n var _this$state = this.state,\n currentVolumePos = _this$state.currentVolumePos,\n hasVolumeAnimation = _this$state.hasVolumeAnimation;\n\n var _ref2 = audio || {},\n volume = _ref2.volume;\n\n return React.createElement(\"div\", {\n ref: this.volumeBar,\n onMouseDown: this.handleVolumnControlMouseOrTouchDown,\n onTouchStart: this.handleVolumnControlMouseOrTouchDown,\n onContextMenu: this.handleContextMenu,\n role: \"progressbar\",\n \"aria-label\": \"volume Control\",\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-valuenow\": Number((volume * 100).toFixed(0)),\n tabIndex: 0,\n className: \"rhap_volume-bar-area\"\n }, React.createElement(\"div\", {\n className: \"rhap_volume-bar\"\n }, React.createElement(\"div\", {\n className: \"rhap_volume-indicator\",\n style: {\n left: currentVolumePos,\n transitionDuration: hasVolumeAnimation ? '.1s' : '0s'\n }\n }), showFilledVolume && React.createElement(\"div\", {\n className: \"rhap_volume-filled\",\n style: {\n width: currentVolumePos\n }\n })));\n };\n\n return VolumeControls;\n}(Component);\n\nexport default VolumeControls;","import _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport React, { Component, cloneElement, isValidElement, createRef } from 'react';\nimport { Icon } from '@iconify/react';\nimport playCircle from '@iconify/icons-mdi/play-circle';\nimport pauseCircle from '@iconify/icons-mdi/pause-circle';\nimport skipPrevious from '@iconify/icons-mdi/skip-previous';\nimport skipNext from '@iconify/icons-mdi/skip-next';\nimport fastForward from '@iconify/icons-mdi/fast-forward';\nimport rewind from '@iconify/icons-mdi/rewind';\nimport volumeHigh from '@iconify/icons-mdi/volume-high';\nimport volumeMute from '@iconify/icons-mdi/volume-mute';\nimport repeat from '@iconify/icons-mdi/repeat';\nimport repeatOff from '@iconify/icons-mdi/repeat-off';\nimport ProgressBar from './ProgressBar';\nimport CurrentTime from './CurrentTime';\nimport Duration from './Duration';\nimport VolumeBar from './VolumeBar';\nimport { RHAP_UI } from './constants';\nimport { throttle, getMainLayoutClassName, getDisplayTimeBySeconds } from './utils';\n\nvar H5AudioPlayer = function (_Component) {\n _inheritsLoose(H5AudioPlayer, _Component);\n\n function H5AudioPlayer() {\n var _this;\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 = _Component.call.apply(_Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"audio\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"progressBar\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"container\", createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"lastVolume\", _this.props.volume);\n\n _defineProperty(_assertThisInitialized(_this), \"listenTracker\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"volumeAnimationTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"downloadProgressAnimationTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"togglePlay\", function (e) {\n e.stopPropagation();\n var audio = _this.audio.current;\n\n if ((audio.paused || audio.ended) && audio.src) {\n _this.playAudioPromise();\n } else if (!audio.paused) {\n audio.pause();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"playAudioPromise\", function () {\n var playPromise = _this.audio.current.play();\n\n if (playPromise) {\n playPromise.then(null).catch(function (err) {\n var onPlayError = _this.props.onPlayError;\n onPlayError && onPlayError(new Error(err));\n });\n } else {\n _this.forceUpdate();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isPlaying\", function () {\n var audio = _this.audio.current;\n if (!audio) return false;\n return !audio.paused && !audio.ended;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePlay\", function (e) {\n _this.forceUpdate();\n\n _this.props.onPlay && _this.props.onPlay(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePause\", function (e) {\n if (!_this.audio) return;\n\n _this.forceUpdate();\n\n _this.props.onPause && _this.props.onPause(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleEnded\", function (e) {\n if (!_this.audio) return;\n\n _this.forceUpdate();\n\n _this.props.onEnded && _this.props.onEnded(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleAbort\", function (e) {\n _this.props.onAbort && _this.props.onAbort(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickVolumeButton\", function () {\n var audio = _this.audio.current;\n\n if (audio.volume > 0) {\n _this.lastVolume = audio.volume;\n audio.volume = 0;\n } else {\n audio.volume = _this.lastVolume;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMuteChange\", function () {\n _this.forceUpdate();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickLoopButton\", function () {\n _this.audio.current.loop = !_this.audio.current.loop;\n\n _this.forceUpdate();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickRewind\", function () {\n var _this$props = _this.props,\n progressJumpSteps = _this$props.progressJumpSteps,\n progressJumpStep = _this$props.progressJumpStep;\n var jumpStep = progressJumpSteps.backward || progressJumpStep;\n\n _this.setJumpTime(-jumpStep);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickForward\", function () {\n var _this$props2 = _this.props,\n progressJumpSteps = _this$props2.progressJumpSteps,\n progressJumpStep = _this$props2.progressJumpStep;\n var jumpStep = progressJumpSteps.forward || progressJumpStep;\n\n _this.setJumpTime(jumpStep);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setJumpTime\", function (time) {\n var audio = _this.audio.current;\n var duration = audio.duration,\n prevTime = audio.currentTime;\n\n if (audio.readyState === audio.HAVE_NOTHING || audio.readyState === audio.HAVE_METADATA || !isFinite(duration) || !isFinite(prevTime)) {\n return _this.props.onChangeCurrentTimeError && _this.props.onChangeCurrentTimeError();\n }\n\n var currentTime = prevTime + time / 1000;\n\n if (currentTime < 0) {\n audio.currentTime = 0;\n currentTime = 0;\n } else if (currentTime > duration) {\n audio.currentTime = duration;\n currentTime = duration;\n } else {\n audio.currentTime = currentTime;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setJumpVolume\", function (volume) {\n var newVolume = _this.audio.current.volume + volume;\n if (newVolume < 0) newVolume = 0;else if (newVolume > 1) newVolume = 1;\n _this.audio.current.volume = newVolume;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleKeyDown\", function (e) {\n if (_this.props.hasDefaultKeyBindings) {\n switch (e.key) {\n case ' ':\n if (e.target === _this.container.current || e.target === _this.progressBar.current) {\n e.preventDefault();\n\n _this.togglePlay(e);\n }\n\n break;\n\n case 'ArrowLeft':\n _this.handleClickRewind();\n\n break;\n\n case 'ArrowRight':\n _this.handleClickForward();\n\n break;\n\n case 'ArrowUp':\n e.preventDefault();\n\n _this.setJumpVolume(_this.props.volumeJumpStep);\n\n break;\n\n case 'ArrowDown':\n e.preventDefault();\n\n _this.setJumpVolume(-_this.props.volumeJumpStep);\n\n break;\n\n case 'l':\n _this.handleClickLoopButton();\n\n break;\n\n case 'm':\n _this.handleClickVolumeButton();\n\n break;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderUIModules\", function (modules) {\n return modules.map(function (comp, i) {\n return _this.renderUIModule(comp, i);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderUIModule\", function (comp, key) {\n var _this$props3 = _this.props,\n defaultCurrentTime = _this$props3.defaultCurrentTime,\n progressUpdateInterval = _this$props3.progressUpdateInterval,\n showDownloadProgress = _this$props3.showDownloadProgress,\n showFilledProgress = _this$props3.showFilledProgress,\n showFilledVolume = _this$props3.showFilledVolume,\n defaultDuration = _this$props3.defaultDuration,\n customIcons = _this$props3.customIcons,\n showSkipControls = _this$props3.showSkipControls,\n onClickPrevious = _this$props3.onClickPrevious,\n onClickNext = _this$props3.onClickNext,\n onChangeCurrentTimeError = _this$props3.onChangeCurrentTimeError,\n showJumpControls = _this$props3.showJumpControls,\n customAdditionalControls = _this$props3.customAdditionalControls,\n customVolumeControls = _this$props3.customVolumeControls,\n muted = _this$props3.muted,\n timeFormat = _this$props3.timeFormat,\n volumeProp = _this$props3.volume,\n loopProp = _this$props3.loop,\n mse = _this$props3.mse;\n\n switch (comp) {\n case RHAP_UI.CURRENT_TIME:\n return React.createElement(\"div\", {\n key: key,\n id: \"rhap_current-time\",\n className: \"rhap_time rhap_current-time\"\n }, React.createElement(CurrentTime, {\n audio: _this.audio.current,\n isLeftTime: false,\n defaultCurrentTime: defaultCurrentTime,\n timeFormat: timeFormat\n }));\n\n case RHAP_UI.CURRENT_LEFT_TIME:\n return React.createElement(\"div\", {\n key: key,\n id: \"rhap_current-left-time\",\n className: \"rhap_time rhap_current-left-time\"\n }, React.createElement(CurrentTime, {\n audio: _this.audio.current,\n isLeftTime: true,\n defaultCurrentTime: defaultCurrentTime,\n timeFormat: timeFormat\n }));\n\n case RHAP_UI.PROGRESS_BAR:\n return React.createElement(ProgressBar, {\n key: key,\n ref: _this.progressBar,\n audio: _this.audio.current,\n progressUpdateInterval: progressUpdateInterval,\n showDownloadProgress: showDownloadProgress,\n showFilledProgress: showFilledProgress,\n onSeek: mse && mse.onSeek,\n onChangeCurrentTimeError: onChangeCurrentTimeError,\n srcDuration: mse && mse.srcDuration\n });\n\n case RHAP_UI.DURATION:\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_time rhap_total-time\"\n }, mse && mse.srcDuration ? getDisplayTimeBySeconds(mse.srcDuration, mse.srcDuration, _this.props.timeFormat) : React.createElement(Duration, {\n audio: _this.audio.current,\n defaultDuration: defaultDuration,\n timeFormat: timeFormat\n }));\n\n case RHAP_UI.ADDITIONAL_CONTROLS:\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_additional-controls\"\n }, _this.renderUIModules(customAdditionalControls));\n\n case RHAP_UI.MAIN_CONTROLS:\n {\n var isPlaying = _this.isPlaying();\n\n var actionIcon;\n\n if (isPlaying) {\n actionIcon = customIcons.pause ? customIcons.pause : React.createElement(Icon, {\n icon: pauseCircle\n });\n } else {\n actionIcon = customIcons.play ? customIcons.play : React.createElement(Icon, {\n icon: playCircle\n });\n }\n\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_main-controls\"\n }, showSkipControls && React.createElement(\"button\", {\n \"aria-label\": \"Previous\",\n className: \"rhap_button-clear rhap_main-controls-button rhap_skip-button\",\n type: \"button\",\n onClick: onClickPrevious\n }, customIcons.previous ? customIcons.previous : React.createElement(Icon, {\n icon: skipPrevious\n })), showJumpControls && React.createElement(\"button\", {\n \"aria-label\": \"Rewind\",\n className: \"rhap_button-clear rhap_main-controls-button rhap_rewind-button\",\n type: \"button\",\n onClick: _this.handleClickRewind\n }, customIcons.rewind ? customIcons.rewind : React.createElement(Icon, {\n icon: rewind\n })), React.createElement(\"button\", {\n \"aria-label\": isPlaying ? 'Pause' : 'Play',\n className: \"rhap_button-clear rhap_main-controls-button rhap_play-pause-button\",\n type: \"button\",\n onClick: _this.togglePlay\n }, actionIcon), showJumpControls && React.createElement(\"button\", {\n \"aria-label\": \"Forward\",\n className: \"rhap_button-clear rhap_main-controls-button rhap_forward-button\",\n type: \"button\",\n onClick: _this.handleClickForward\n }, customIcons.forward ? customIcons.forward : React.createElement(Icon, {\n icon: fastForward\n })), showSkipControls && React.createElement(\"button\", {\n \"aria-label\": \"Skip\",\n className: \"rhap_button-clear rhap_main-controls-button rhap_skip-button\",\n type: \"button\",\n onClick: onClickNext\n }, customIcons.next ? customIcons.next : React.createElement(Icon, {\n icon: skipNext\n })));\n }\n\n case RHAP_UI.VOLUME_CONTROLS:\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_volume-controls\"\n }, _this.renderUIModules(customVolumeControls));\n\n case RHAP_UI.LOOP:\n {\n var loop = _this.audio.current ? _this.audio.current.loop : loopProp;\n var loopIcon;\n\n if (loop) {\n loopIcon = customIcons.loop ? customIcons.loop : React.createElement(Icon, {\n icon: repeat\n });\n } else {\n loopIcon = customIcons.loopOff ? customIcons.loopOff : React.createElement(Icon, {\n icon: repeatOff\n });\n }\n\n return React.createElement(\"button\", {\n key: key,\n \"aria-label\": loop ? 'Enable Loop' : 'Disable Loop',\n className: \"rhap_button-clear rhap_repeat-button\",\n type: \"button\",\n onClick: _this.handleClickLoopButton\n }, loopIcon);\n }\n\n case RHAP_UI.VOLUME:\n {\n var _ref = _this.audio.current || {},\n _ref$volume = _ref.volume,\n volume = _ref$volume === void 0 ? muted ? 0 : volumeProp : _ref$volume;\n\n var volumeIcon;\n\n if (volume) {\n volumeIcon = customIcons.volume ? customIcons.volume : React.createElement(Icon, {\n icon: volumeHigh\n });\n } else {\n volumeIcon = customIcons.volume ? customIcons.volumeMute : React.createElement(Icon, {\n icon: volumeMute\n });\n }\n\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_volume-container\"\n }, React.createElement(\"button\", {\n \"aria-label\": volume ? 'Mute' : 'Unmute',\n onClick: _this.handleClickVolumeButton,\n type: \"button\",\n className: \"rhap_button-clear rhap_volume-button\"\n }, volumeIcon), React.createElement(VolumeBar, {\n audio: _this.audio.current,\n volume: volume,\n onMuteChange: _this.handleMuteChange,\n showFilledVolume: showFilledVolume\n }));\n }\n\n default:\n if (!isValidElement(comp)) {\n return null;\n }\n\n return comp.key ? comp : cloneElement(comp, {\n key: key\n });\n }\n });\n\n return _this;\n }\n\n var _proto = H5AudioPlayer.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this.forceUpdate();\n var audio = this.audio.current;\n\n if (this.props.muted) {\n audio.volume = 0;\n } else {\n audio.volume = this.lastVolume;\n }\n\n audio.addEventListener('error', function (e) {\n _this2.props.onError && _this2.props.onError(e);\n });\n audio.addEventListener('canplay', function (e) {\n _this2.props.onCanPlay && _this2.props.onCanPlay(e);\n });\n audio.addEventListener('canplaythrough', function (e) {\n _this2.props.onCanPlayThrough && _this2.props.onCanPlayThrough(e);\n });\n audio.addEventListener('play', this.handlePlay);\n audio.addEventListener('abort', this.handleAbort);\n audio.addEventListener('ended', this.handleEnded);\n audio.addEventListener('playing', function (e) {\n _this2.props.onPlaying && _this2.props.onPlaying(e);\n });\n audio.addEventListener('seeking', function (e) {\n _this2.props.onSeeking && _this2.props.onSeeking(e);\n });\n audio.addEventListener('seeked', function (e) {\n _this2.props.onSeeked && _this2.props.onSeeked(e);\n });\n audio.addEventListener('waiting', function (e) {\n _this2.props.onWaiting && _this2.props.onWaiting(e);\n });\n audio.addEventListener('emptied', function (e) {\n _this2.props.onEmptied && _this2.props.onEmptied(e);\n });\n audio.addEventListener('stalled', function (e) {\n _this2.props.onStalled && _this2.props.onStalled(e);\n });\n audio.addEventListener('suspend', function (e) {\n _this2.props.onSuspend && _this2.props.onSuspend(e);\n });\n audio.addEventListener('loadstart', function (e) {\n _this2.props.onLoadStart && _this2.props.onLoadStart(e);\n });\n audio.addEventListener('loadedmetadata', function (e) {\n _this2.props.onLoadedMetaData && _this2.props.onLoadedMetaData(e);\n });\n audio.addEventListener('loadeddata', function (e) {\n _this2.props.onLoadedData && _this2.props.onLoadedData(e);\n });\n audio.addEventListener('pause', this.handlePause);\n audio.addEventListener('timeupdate', throttle(function (e) {\n _this2.props.onListen && _this2.props.onListen(e);\n }, this.props.listenInterval));\n audio.addEventListener('volumechange', function (e) {\n _this2.props.onVolumeChange && _this2.props.onVolumeChange(e);\n });\n audio.addEventListener('encrypted', function (e) {\n var mse = _this2.props.mse;\n mse && mse.onEcrypted && mse.onEcrypted(e);\n });\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props4 = this.props,\n src = _this$props4.src,\n autoPlayAfterSrcChange = _this$props4.autoPlayAfterSrcChange;\n\n if (prevProps.src !== src) {\n if (autoPlayAfterSrcChange) {\n this.playAudioPromise();\n } else {\n this.forceUpdate();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var audio = this.audio.current;\n\n if (audio) {\n audio.removeEventListener('play', this.handlePlay);\n audio.removeEventListener('pause', this.handlePause);\n audio.removeEventListener('abort', this.handleAbort);\n audio.removeAttribute('src');\n audio.load();\n }\n };\n\n _proto.render = function render() {\n var _this$props5 = this.props,\n className = _this$props5.className,\n src = _this$props5.src,\n loopProp = _this$props5.loop,\n preload = _this$props5.preload,\n autoPlay = _this$props5.autoPlay,\n crossOrigin = _this$props5.crossOrigin,\n mediaGroup = _this$props5.mediaGroup,\n header = _this$props5.header,\n footer = _this$props5.footer,\n layout = _this$props5.layout,\n customProgressBarSection = _this$props5.customProgressBarSection,\n customControlsSection = _this$props5.customControlsSection,\n children = _this$props5.children,\n style = _this$props5.style;\n var loop = this.audio.current ? this.audio.current.loop : loopProp;\n return React.createElement(\"div\", {\n role: \"group\",\n tabIndex: 0,\n \"aria-label\": \"Audio Player\",\n className: \"rhap_container \" + className,\n onKeyDown: this.handleKeyDown,\n ref: this.container,\n style: style\n }, React.createElement(\"audio\", {\n src: src,\n controls: false,\n loop: loop,\n autoPlay: autoPlay,\n preload: preload,\n crossOrigin: crossOrigin,\n mediaGroup: mediaGroup,\n ref: this.audio\n }, children), header && React.createElement(\"div\", {\n className: \"rhap_header\"\n }, header), React.createElement(\"div\", {\n className: \"rhap_main \" + getMainLayoutClassName(layout)\n }, React.createElement(\"div\", {\n className: \"rhap_progress-section\"\n }, this.renderUIModules(customProgressBarSection)), React.createElement(\"div\", {\n className: \"rhap_controls-section\"\n }, this.renderUIModules(customControlsSection))), footer && React.createElement(\"div\", {\n className: \"rhap_footer\"\n }, footer));\n };\n\n return H5AudioPlayer;\n}(Component);\n\n_defineProperty(H5AudioPlayer, \"defaultProps\", {\n autoPlay: false,\n autoPlayAfterSrcChange: true,\n listenInterval: 1000,\n progressJumpStep: 5000,\n progressJumpSteps: {},\n volumeJumpStep: 0.1,\n loop: false,\n muted: false,\n preload: 'auto',\n progressUpdateInterval: 20,\n defaultCurrentTime: '--:--',\n defaultDuration: '--:--',\n timeFormat: 'auto',\n volume: 1,\n className: '',\n showJumpControls: true,\n showSkipControls: false,\n showDownloadProgress: true,\n showFilledProgress: true,\n showFilledVolume: false,\n customIcons: {},\n customProgressBarSection: [RHAP_UI.CURRENT_TIME, RHAP_UI.PROGRESS_BAR, RHAP_UI.DURATION],\n customControlsSection: [RHAP_UI.ADDITIONAL_CONTROLS, RHAP_UI.MAIN_CONTROLS, RHAP_UI.VOLUME_CONTROLS],\n customAdditionalControls: [RHAP_UI.LOOP],\n customVolumeControls: [RHAP_UI.VOLUME],\n layout: 'stacked',\n hasDefaultKeyBindings: true\n});\n\nexport default H5AudioPlayer;\nexport { RHAP_UI };","import React from 'react';\n\n\nconst HomeBut = props => {\n return(\n <>\n\n )\n\n\n}\n\nexport default HomeBut;\n","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;"],"sourceRoot":""}