{"version":3,"sources":["webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@iconify/icons-mdi/play-circle.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@iconify/react/dist/iconify.mjs","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/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/constants.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/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/@iconify/icons-mdi/volume-high.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@iconify/icons-mdi/volume-mute.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@iconify/icons-mdi/repeat-off.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.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/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@iconify/icons-mdi/pause-circle.js"],"names":["_classCallCheck","instance","Constructor","TypeError","setPrototypeOf","module","exports","subClass","superClass","prototype","Object","create","constructor","value","writable","configurable","defineProperty","__esModule","default","_possibleConstructorReturn","self","call","_getPrototypeOf","o","getPrototypeOf","bind","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","result","Super","NewTarget","this","arguments","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","key","getOwnPropertyDescriptors","defineProperties","matchName","iconDefaults","freeze","left","top","width","height","rotate","vFlip","hFlip","fullIcon","data","stringToIcon","validate","allowSimpleName","provider","undefined","colonSeparated","split","slice","shift","name2","pop","prefix","name","validateIcon","dashSeparated","_result","join","_result2","icon","match","mergeIconData","alias","prop","getIconData$1","full","getIcon","iteration","icons","assign","aliases","item","result2","parent","chars","parseIconSet","callback","options","names","not_found","Array","iconData","parseAliases","isVariation","optionalProperties","quicklyValidateIconSet","obj","_prop","body","_prop2","_name","_icon","_prop3","storage$1","w","window","_iconifyStorage","version","storage","err","getStorage","providerStorage","missing","newStorage","addIconSet","storage2","t","Date","now","getIconFromStorage","simpleNames","allowSimpleNames","allow","getIconData","addIcon","addIconToStorage","defaults","inline","hAlign","vAlign","mergeCustomisations","defaults2","attr","unitsSplit","unitsTest","calculateSize","size","ratio","precision","Math","ceil","oldParts","newParts","code","isNumber","test","num","parseFloat","isNaN","preserveAspectRatio","props","iconToSVG","customisations","box","tempValue","transformations","rotation","toString","floor","unshift","attributes","viewBox","regex","randomPrefix","random","counter","replaceIDs","ids","exec","id","newID","escapedID","replace","RegExp","setAPIModule","getAPIModule","createAPIConfig","resources","path","maxURL","timeout","index","dataAfterTimeout","configStorage","fallBackAPISources","fallBackAPI","addAPIProvider","customConfig","config","getAPIConfig","concat","mergeParams","base","params","hasParams","indexOf","encodeURIComponent","Error","paramToString","maxLengthCache","pathCache","fetchModule","fetch","detectFetch","fetchAPIModule","prepare","results","maxLength","maxHostLength","host","max","url","cacheKey","calculateMaxLength","type","send","_config","getPath","iconsList","uri","defaultError","then","response","status","json","setTimeout","shouldAbort","catch","callbacks","pendingUpdates","removeCallback","sources","providerCallbacks","items","row","idCounter","defaultConfig","sendQuery","payload","query","done","resourcesCount","startIndex","list","nextIndex","lastError","startTime","queriesSent","timer","queue","doneCallbacks","resetTimer","clearTimeout","abort","subscribe","overwrite","failQuery","clearQueue","execNext","resource","status2","isError","queued","moduleResponse","queriesPending","initRedundancy","cfg","newConfig","setConfig","queries","cleanup","queryCallback","doneCallback","query2","error","find","setIndex","getIndex","emptyCallback$1","redundancyCache","sendAPIQuery","redundancy","api","cached","_config2","cachedReundancy","getRedundancyCache","_config3","_api2","cache","emptyCallback","pendingIcons","iconsToLoad","loaderFlags","queueFlags","loadedNewIcons","providerLoaderFlags","providerPendingUpdates","hasPending","oldLength","pending","loaded","updateCallbacks","errorsCache","loadNewIcons","providerIconsToLoad","providerQueueFlags","providerPendingIcons","sort","icons2","time","console","parsed","store","err2","loadIcons","sortedIcons","a","b","localeCompare","lastIcon","localStorage","sortIcons","listToIcons","callCallback","lastProvider","lastPrefix","newIcons","providerNewIcons","pendingQueue","pendingSources","storeCallback","local","session","count","emptyList","_window","getGlobal","setCount","setItem","cachePrefix","getCount","count2","getItem","total","parseInt","loadCache","minTime","load","func","valid","JSON","parse","removeItem","destroyCache","initCache","separator","flipFromString","custom","flip","str","trim","alignmentFromString","align","rotateFromString","defaultValue","units","value2","_num","svgDefaults","inlineDefaults","document","stringify","_window2","IconifyPreload","added","addCollection","IconifyProviders","providers","_err","_React$Component","IconComponent","_super","_this","state","_loading","setState","changed","iconName","_abortLoading","_setData","classes","onLoad","_checkIcon","oldProps","children","createElement","newProps","className","ref","defaultProps","style","componentProps","color","localCounter","_key","dangerouslySetInnerHTML","__html","verticalAlign","_render","_inline","_ref","Component","forwardRef","getMainLayoutClassName","layout","getPosX","event","MouseEvent","clientX","touches","addHeadingZero","getDisplayTimeBySeconds","seconds","totalSeconds","timeFormat","isFinite","min","minStr","secStr","minStrForHour","hourStr","mmSs","hhMmSs","throttle","limit","inThrottle","arg","_Component","ProgressBar","_len","args","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","addEventListener","handleWindowMouseOrTouchMove","handleWindowMouseOrTouchUp","windowSelection","getSelection","empty","_this$getCurrentProgr2","newTime","_this$props2","onChangeCurrentTimeError","onSeek","readyState","HAVE_NOTHING","HAVE_METADATA","removeEventListener","duration","progressUpdateInterval","buffered","bufferedStart","start","bufferedEnd","end","round","downloadProgressAnimationTimer","_this$props3","hasAddedAudioEventListener","handleAudioTimeUpdate","handleAudioDownloadProgressUpdate","_this$props4","showDownloadProgress","showFilledProgress","i18nProgressBar","_this$state","role","Number","tabIndex","onMouseDown","handleMouseDownOrTouchStartProgressBar","onTouchStart","onContextMenu","handleContextMenu","map","transitionDuration","_PureComponent","CurrentTime","defaultCurrentTime","isLeftTime","handleAudioCurrentTimeChange","_audio","_defaultCurrentTime","_isLeftTime","_timeFormat","addAudioEventListeners","Duration","defaultDuration","handleAudioDurationChange","_defaultDuration","RHAP_UI","VolumeControls","volume","currentVolumePos","lastVolume","hasVolumeAnimation","isDraggingVolume","volumeBar","currentVolume","volumeBarRect","_this$getCurrentVolum","getCurrentVolume","_this$getCurrentVolum2","onMuteChange","volumeAnimationTimer","handleAudioVolumeChange","showFilledVolume","i18nVolumeControl","handleVolumnControlMouseOrTouchDown","H5AudioPlayer","paused","ended","playAudioPromise","pause","playPromise","play","onPlayError","forceUpdate","onPlay","onPause","onEnded","onAbort","loop","progressJumpSteps","progressJumpStep","jumpStep","backward","setJumpTime","forward","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","i18nAriaLabels","CURRENT_TIME","CURRENT_LEFT_TIME","PROGRESS_BAR","progressControl","DURATION","ADDITIONAL_CONTROLS","renderUIModules","MAIN_CONTROLS","actionIcon","isPlaying","previous","onClick","rewind","next","VOLUME_CONTROLS","LOOP","loopIcon","loopOff","VOLUME","volumeIcon","_ref$volume","volumeMute","VolumeBar","handleMuteChange","volumeControl","_this2","onError","onCanPlay","onCanPlayThrough","handlePlay","handleAbort","handleEnded","onPlaying","onSeeking","onSeeked","onWaiting","onEmptied","onStalled","onSuspend","onLoadStart","onLoadedMetaData","onLoadedData","handlePause","onListen","listenInterval","onVolumeChange","onEcrypted","prevProps","autoPlayAfterSrcChange","_this$props5","preload","autoPlay","crossOrigin","mediaGroup","header","footer","customProgressBarSection","customControlsSection","loopClass","isPlayingClass","player","onKeyDown","handleKeyDown","controls","HomeBut","fill","stroke","xmlns","d","_inherits","toPropertyKey","_defineProperties","descriptor","protoProps","staticProps","_typeof","assertThisInitialized","_createClass"],"mappings":"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","file":"984ccc3c14f39a27dd3937d158a921d6a9f9bef7-1fc61ed84088c768f704.js","sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import _classCallCheck from \"/datadrive/gatsby/ireland-annual-review/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/datadrive/gatsby/ireland-annual-review/node_modules/@babel/runtime/helpers/esm/createClass.js\";\nimport _inherits from \"/datadrive/gatsby/ireland-annual-review/node_modules/@babel/runtime/helpers/esm/inherits.js\";\nimport _possibleConstructorReturn from \"/datadrive/gatsby/ireland-annual-review/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\";\nimport _getPrototypeOf from \"/datadrive/gatsby/ireland-annual-review/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\";\nimport _defineProperty from \"/datadrive/gatsby/ireland-annual-review/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport \"core-js/modules/es.array.sort.js\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport React from 'react';\nvar matchName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nvar iconDefaults = Object.freeze({\n left: 0,\n top: 0,\n width: 16,\n height: 16,\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nfunction fullIcon(data) {\n return _objectSpread(_objectSpread({}, iconDefaults), data);\n}\nvar stringToIcon = function stringToIcon(value, validate, allowSimpleName) {\n var provider = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : \"\";\n var colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n var name2 = colonSeparated.pop();\n var prefix = colonSeparated.pop();\n var result = {\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix: prefix,\n name: name2\n };\n return validate && !validateIcon(result) ? null : result;\n }\n var name = colonSeparated[0];\n var dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n var _result = {\n provider: provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIcon(_result) ? null : _result;\n }\n if (allowSimpleName && provider === \"\") {\n var _result2 = {\n provider: provider,\n prefix: \"\",\n name: name\n };\n return validate && !validateIcon(_result2, allowSimpleName) ? null : _result2;\n }\n return null;\n};\nvar validateIcon = function validateIcon(icon, allowSimpleName) {\n if (!icon) {\n return false;\n }\n return !!((icon.provider === \"\" || icon.provider.match(matchName)) && (allowSimpleName && icon.prefix === \"\" || icon.prefix.match(matchName)) && icon.name.match(matchName));\n};\nfunction mergeIconData(icon, alias) {\n var result = _objectSpread({}, icon);\n for (var key in iconDefaults) {\n var prop = key;\n if (alias[prop] !== void 0) {\n var value = alias[prop];\n if (result[prop] === void 0) {\n result[prop] = value;\n continue;\n }\n switch (prop) {\n case \"rotate\":\n result[prop] = (result[prop] + value) % 4;\n break;\n case \"hFlip\":\n case \"vFlip\":\n result[prop] = value !== result[prop];\n break;\n default:\n result[prop] = value;\n }\n }\n }\n return result;\n}\nfunction getIconData$1(data, name) {\n var full = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n function getIcon(name2, iteration) {\n if (data.icons[name2] !== void 0) {\n return Object.assign({}, data.icons[name2]);\n }\n if (iteration > 5) {\n return null;\n }\n var aliases = data.aliases;\n if (aliases && aliases[name2] !== void 0) {\n var item = aliases[name2];\n var result2 = getIcon(item.parent, iteration + 1);\n if (result2) {\n return mergeIconData(result2, item);\n }\n return result2;\n }\n var chars = data.chars;\n if (!iteration && chars && chars[name2] !== void 0) {\n return getIcon(chars[name2], iteration + 1);\n }\n return null;\n }\n var result = getIcon(name, 0);\n if (result) {\n for (var key in iconDefaults) {\n if (result[key] === void 0 && data[key] !== void 0) {\n result[key] = data[key];\n }\n }\n }\n return result && full ? fullIcon(result) : result;\n}\nfunction isVariation(item) {\n for (var key in iconDefaults) {\n if (item[key] !== void 0) {\n return true;\n }\n }\n return false;\n}\nfunction parseIconSet(data, callback, options) {\n options = options || {};\n var names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach(function (name) {\n callback(name, null);\n names.push(name);\n });\n }\n var icons = data.icons;\n Object.keys(icons).forEach(function (name) {\n var iconData = getIconData$1(data, name, true);\n if (iconData) {\n callback(name, iconData);\n names.push(name);\n }\n });\n var parseAliases = options.aliases || \"all\";\n if (parseAliases !== \"none\" && typeof data.aliases === \"object\") {\n var aliases = data.aliases;\n Object.keys(aliases).forEach(function (name) {\n if (parseAliases === \"variations\" && isVariation(aliases[name])) {\n return;\n }\n var iconData = getIconData$1(data, name, true);\n if (iconData) {\n callback(name, iconData);\n names.push(name);\n }\n });\n }\n return names;\n}\nvar optionalProperties = {\n provider: \"string\",\n aliases: \"object\",\n not_found: \"object\"\n};\nfor (var prop in iconDefaults) {\n optionalProperties[prop] = typeof iconDefaults[prop];\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n var data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n for (var _prop in optionalProperties) {\n if (obj[_prop] !== void 0 && typeof obj[_prop] !== optionalProperties[_prop]) {\n return null;\n }\n }\n var icons = data.icons;\n for (var name in icons) {\n var icon = icons[name];\n if (!name.match(matchName) || typeof icon.body !== \"string\") {\n return null;\n }\n for (var _prop2 in iconDefaults) {\n if (icon[_prop2] !== void 0 && typeof icon[_prop2] !== typeof iconDefaults[_prop2]) {\n return null;\n }\n }\n }\n var aliases = data.aliases;\n if (aliases) {\n for (var _name in aliases) {\n var _icon = aliases[_name];\n var parent = _icon.parent;\n if (!_name.match(matchName) || typeof parent !== \"string\" || !icons[parent] && !aliases[parent]) {\n return null;\n }\n for (var _prop3 in iconDefaults) {\n if (_icon[_prop3] !== void 0 && typeof _icon[_prop3] !== typeof iconDefaults[_prop3]) {\n return null;\n }\n }\n }\n }\n return data;\n}\nvar storageVersion = 1;\nvar storage$1 = /* @__PURE__ */Object.create(null);\ntry {\n var w = window || self;\n if (w && w._iconifyStorage.version === storageVersion) {\n storage$1 = w._iconifyStorage.storage;\n }\n} catch (err) {}\nfunction shareStorage() {\n try {\n var _w = window || self;\n if (_w && !_w._iconifyStorage) {\n _w._iconifyStorage = {\n version: storageVersion,\n storage: storage$1\n };\n }\n } catch (err) {}\n}\nfunction newStorage(provider, prefix) {\n return {\n provider: provider,\n prefix: prefix,\n icons: /* @__PURE__ */Object.create(null),\n missing: /* @__PURE__ */Object.create(null)\n };\n}\nfunction getStorage(provider, prefix) {\n if (storage$1[provider] === void 0) {\n storage$1[provider] = /* @__PURE__ */Object.create(null);\n }\n var providerStorage = storage$1[provider];\n if (providerStorage[prefix] === void 0) {\n providerStorage[prefix] = newStorage(provider, prefix);\n }\n return providerStorage[prefix];\n}\nfunction addIconSet(storage2, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n var t = Date.now();\n return parseIconSet(data, function (name, icon) {\n if (icon) {\n storage2.icons[name] = icon;\n } else {\n storage2.missing[name] = t;\n }\n });\n}\nfunction addIconToStorage(storage2, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage2.icons[name] = Object.freeze(fullIcon(icon));\n return true;\n }\n } catch (err) {}\n return false;\n}\nfunction getIconFromStorage(storage2, name) {\n var value = storage2.icons[name];\n return value === void 0 ? null : value;\n}\nfunction listIcons(provider, prefix) {\n var allIcons = [];\n var providers;\n if (typeof provider === \"string\") {\n providers = [provider];\n } else {\n providers = Object.keys(storage$1);\n }\n providers.forEach(function (provider2) {\n var prefixes;\n if (typeof provider2 === \"string\" && typeof prefix === \"string\") {\n prefixes = [prefix];\n } else {\n prefixes = storage$1[provider2] === void 0 ? [] : Object.keys(storage$1[provider2]);\n }\n prefixes.forEach(function (prefix2) {\n var storage2 = getStorage(provider2, prefix2);\n var icons = Object.keys(storage2.icons).map(function (name) {\n return (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name;\n });\n allIcons = allIcons.concat(icons);\n });\n });\n return allIcons;\n}\nvar simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n var icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n return icon ? getIconFromStorage(getStorage(icon.provider, icon.prefix), icon.name) : null;\n}\nfunction addIcon(name, data) {\n var icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n var storage = getStorage(icon.provider, icon.prefix);\n return addIconToStorage(storage, icon.name, data);\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = typeof data.provider === \"string\" ? data.provider : \"\";\n }\n if (simpleNames && provider === \"\" && (typeof data.prefix !== \"string\" || data.prefix === \"\")) {\n var added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, function (name, icon) {\n if (icon && addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n if (typeof data.prefix !== \"string\" || !validateIcon({\n provider: provider,\n prefix: data.prefix,\n name: \"a\"\n })) {\n return false;\n }\n var storage = getStorage(provider, data.prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconExists(name) {\n return getIconData(name) !== null;\n}\nfunction getIcon(name) {\n var result = getIconData(name);\n return result ? _objectSpread({}, result) : null;\n}\nvar defaults = Object.freeze({\n inline: false,\n width: null,\n height: null,\n hAlign: \"center\",\n vAlign: \"middle\",\n slice: false,\n hFlip: false,\n vFlip: false,\n rotate: 0\n});\nfunction mergeCustomisations(defaults2, item) {\n var result = {};\n for (var key in defaults2) {\n var attr = key;\n result[attr] = defaults2[attr];\n if (item[attr] === void 0) {\n continue;\n }\n var value = item[attr];\n switch (attr) {\n case \"inline\":\n case \"slice\":\n if (typeof value === \"boolean\") {\n result[attr] = value;\n }\n break;\n case \"hFlip\":\n case \"vFlip\":\n if (value === true) {\n result[attr] = !result[attr];\n }\n break;\n case \"hAlign\":\n case \"vAlign\":\n if (typeof value === \"string\" && value !== \"\") {\n result[attr] = value;\n }\n break;\n case \"width\":\n case \"height\":\n if (typeof value === \"string\" && value !== \"\" || typeof value === \"number\" && value || value === null) {\n result[attr] = value;\n }\n break;\n case \"rotate\":\n if (typeof value === \"number\") {\n result[attr] += value;\n }\n break;\n }\n }\n return result;\n}\nvar unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nvar unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision === void 0 ? 100 : precision;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n var oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n var newParts = [];\n var code = oldParts.shift();\n var isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n var num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\nfunction preserveAspectRatio(props) {\n var result = \"\";\n switch (props.hAlign) {\n case \"left\":\n result += \"xMin\";\n break;\n case \"right\":\n result += \"xMax\";\n break;\n default:\n result += \"xMid\";\n }\n switch (props.vAlign) {\n case \"top\":\n result += \"YMin\";\n break;\n case \"bottom\":\n result += \"YMax\";\n break;\n default:\n result += \"YMid\";\n }\n result += props.slice ? \" slice\" : \" meet\";\n return result;\n}\nfunction iconToSVG(icon, customisations) {\n var box = {\n left: icon.left,\n top: icon.top,\n width: icon.width,\n height: icon.height\n };\n var body = icon.body;\n [icon, customisations].forEach(function (props) {\n var transformations = [];\n var hFlip = props.hFlip;\n var vFlip = props.vFlip;\n var rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\");\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\");\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n var tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\");\n break;\n case 2:\n transformations.unshift(\"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\");\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\");\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== 0 || box.top !== 0) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = '' + body + \"\";\n }\n });\n var width, height;\n if (customisations.width === null && customisations.height === null) {\n height = \"1em\";\n width = calculateSize(height, box.width / box.height);\n } else if (customisations.width !== null && customisations.height !== null) {\n width = customisations.width;\n height = customisations.height;\n } else if (customisations.height !== null) {\n height = customisations.height;\n width = calculateSize(height, box.width / box.height);\n } else {\n width = customisations.width;\n height = calculateSize(width, box.height / box.width);\n }\n if (width === \"auto\") {\n width = box.width;\n }\n if (height === \"auto\") {\n height = box.height;\n }\n width = typeof width === \"string\" ? width : width.toString() + \"\";\n height = typeof height === \"string\" ? height : height.toString() + \"\";\n var result = {\n attributes: {\n width: width,\n height: height,\n preserveAspectRatio: preserveAspectRatio(customisations),\n viewBox: box.left.toString() + \" \" + box.top.toString() + \" \" + box.width.toString() + \" \" + box.height.toString()\n },\n body: body\n };\n if (customisations.inline) {\n result.inline = true;\n }\n return result;\n}\nfunction buildIcon(icon, customisations) {\n return iconToSVG(fullIcon(icon), customisations ? mergeCustomisations(defaults, customisations) : defaults);\n}\nvar regex = /\\sid=\"(\\S+)\"/g;\nvar randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nvar counter = 0;\nfunction replaceIDs(body) {\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : randomPrefix;\n var ids = [];\n var match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n ids.forEach(function (id) {\n var newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n var escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"), \"$1\" + newID + \"$3\");\n });\n return body;\n}\nvar storage = /* @__PURE__ */Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\nfunction createAPIConfig(source) {\n var resources;\n if (typeof source.resources === \"string\") {\n resources = [source.resources];\n } else {\n resources = source.resources;\n if (!(resources instanceof Array) || !resources.length) {\n return null;\n }\n }\n var result = {\n resources: resources,\n path: source.path === void 0 ? \"/\" : source.path,\n maxURL: source.maxURL ? source.maxURL : 500,\n rotate: source.rotate ? source.rotate : 750,\n timeout: source.timeout ? source.timeout : 5e3,\n random: source.random === true,\n index: source.index ? source.index : 0,\n dataAfterTimeout: source.dataAfterTimeout !== false\n };\n return result;\n}\nvar configStorage = /* @__PURE__ */Object.create(null);\nvar fallBackAPISources = [\"https://api.simplesvg.com\", \"https://api.unisvg.com\"];\nvar fallBackAPI = [];\nwhile (fallBackAPISources.length > 0) {\n if (fallBackAPISources.length === 1) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n if (Math.random() > 0.5) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n fallBackAPI.push(fallBackAPISources.pop());\n }\n }\n}\nconfigStorage[\"\"] = createAPIConfig({\n resources: [\"https://api.iconify.design\"].concat(fallBackAPI)\n});\nfunction addAPIProvider(provider, customConfig) {\n var config = createAPIConfig(customConfig);\n if (config === null) {\n return false;\n }\n configStorage[provider] = config;\n return true;\n}\nfunction getAPIConfig(provider) {\n return configStorage[provider];\n}\nfunction listAPIProviders() {\n return Object.keys(configStorage);\n}\nvar mergeParams = function mergeParams(base, params) {\n var result = base,\n hasParams = result.indexOf(\"?\") !== -1;\n function paramToString(value) {\n switch (typeof value) {\n case \"boolean\":\n return value ? \"true\" : \"false\";\n case \"number\":\n return encodeURIComponent(value);\n case \"string\":\n return encodeURIComponent(value);\n default:\n throw new Error(\"Invalid parameter\");\n }\n }\n Object.keys(params).forEach(function (key) {\n var value;\n try {\n value = paramToString(params[key]);\n } catch (err) {\n return;\n }\n result += (hasParams ? \"&\" : \"?\") + encodeURIComponent(key) + \"=\" + value;\n hasParams = true;\n });\n return result;\n};\nvar maxLengthCache = {};\nvar pathCache = {};\nvar detectFetch = function detectFetch() {\n var callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {}\n return null;\n};\nvar fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n var config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n var result;\n if (!config.maxURL) {\n result = 0;\n } else {\n var maxHostLength = 0;\n config.resources.forEach(function (item) {\n var host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n var url = mergeParams(prefix + \".json\", {\n icons: \"\"\n });\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n var cacheKey = provider + \":\" + prefix;\n pathCache[provider] = config.path;\n maxLengthCache[cacheKey] = result;\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nvar prepare = function prepare(provider, prefix, icons) {\n var results = [];\n var maxLength = maxLengthCache[prefix];\n if (maxLength === void 0) {\n maxLength = calculateMaxLength(provider, prefix);\n }\n var type = \"icons\";\n var item = {\n type: type,\n provider: provider,\n prefix: prefix,\n icons: []\n };\n var length = 0;\n icons.forEach(function (name, index) {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type: type,\n provider: provider,\n prefix: prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n if (pathCache[provider] === void 0) {\n var _config = getAPIConfig(provider);\n if (!_config) {\n return \"/\";\n }\n pathCache[provider] = _config.path;\n }\n return pathCache[provider];\n }\n return \"/\";\n}\nvar send = function send(host, params, callback) {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n var path = getPath(params.provider);\n switch (params.type) {\n case \"icons\":\n {\n var prefix = params.prefix;\n var icons = params.icons;\n var iconsList = icons.join(\",\");\n path += mergeParams(prefix + \".json\", {\n icons: iconsList\n });\n break;\n }\n case \"custom\":\n {\n var uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n var defaultError = 503;\n fetchModule(host + path).then(function (response) {\n var status = response.status;\n if (status !== 200) {\n setTimeout(function () {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then(function (data) {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(function () {\n callback(\"next\", defaultError);\n });\n return;\n }\n setTimeout(function () {\n callback(\"success\", data);\n });\n }).catch(function () {\n callback(\"next\", defaultError);\n });\n};\nvar fetchAPIModule = {\n prepare: prepare,\n send: send\n};\nfunction sortIcons(icons) {\n var result = {\n loaded: [],\n missing: [],\n pending: []\n };\n var storage = /* @__PURE__ */Object.create(null);\n icons.sort(function (a, b) {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n var lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach(function (icon) {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n var provider = icon.provider;\n var prefix = icon.prefix;\n var name = icon.name;\n if (storage[provider] === void 0) {\n storage[provider] = /* @__PURE__ */Object.create(null);\n }\n var providerStorage = storage[provider];\n if (providerStorage[prefix] === void 0) {\n providerStorage[prefix] = getStorage(provider, prefix);\n }\n var localStorage = providerStorage[prefix];\n var list;\n if (localStorage.icons[name] !== void 0) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing[name] !== void 0) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n var item = {\n provider: provider,\n prefix: prefix,\n name: name\n };\n list.push(item);\n });\n return result;\n}\nvar callbacks = /* @__PURE__ */Object.create(null);\nvar pendingUpdates = /* @__PURE__ */Object.create(null);\nfunction removeCallback(sources, id) {\n sources.forEach(function (source) {\n var provider = source.provider;\n if (callbacks[provider] === void 0) {\n return;\n }\n var providerCallbacks = callbacks[provider];\n var prefix = source.prefix;\n var items = providerCallbacks[prefix];\n if (items) {\n providerCallbacks[prefix] = items.filter(function (row) {\n return row.id !== id;\n });\n }\n });\n}\nfunction updateCallbacks(provider, prefix) {\n if (pendingUpdates[provider] === void 0) {\n pendingUpdates[provider] = /* @__PURE__ */Object.create(null);\n }\n var providerPendingUpdates = pendingUpdates[provider];\n if (!providerPendingUpdates[prefix]) {\n providerPendingUpdates[prefix] = true;\n setTimeout(function () {\n providerPendingUpdates[prefix] = false;\n if (callbacks[provider] === void 0 || callbacks[provider][prefix] === void 0) {\n return;\n }\n var items = callbacks[provider][prefix].slice(0);\n if (!items.length) {\n return;\n }\n var storage = getStorage(provider, prefix);\n var hasPending = false;\n items.forEach(function (item) {\n var icons = item.icons;\n var oldLength = icons.pending.length;\n icons.pending = icons.pending.filter(function (icon) {\n if (icon.prefix !== prefix) {\n return true;\n }\n var name = icon.name;\n if (storage.icons[name] !== void 0) {\n icons.loaded.push({\n provider: provider,\n prefix: prefix,\n name: name\n });\n } else if (storage.missing[name] !== void 0) {\n icons.missing.push({\n provider: provider,\n prefix: prefix,\n name: name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([{\n provider: provider,\n prefix: prefix\n }], item.id);\n }\n item.callback(icons.loaded.slice(0), icons.missing.slice(0), icons.pending.slice(0), item.abort);\n }\n });\n });\n }\n}\nvar idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n var id = idCounter++;\n var abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n var item = {\n id: id,\n icons: icons,\n callback: callback,\n abort: abort\n };\n pendingSources.forEach(function (source) {\n var provider = source.provider;\n var prefix = source.prefix;\n if (callbacks[provider] === void 0) {\n callbacks[provider] = /* @__PURE__ */Object.create(null);\n }\n var providerCallbacks = callbacks[provider];\n if (providerCallbacks[prefix] === void 0) {\n providerCallbacks[prefix] = [];\n }\n providerCallbacks[prefix].push(item);\n });\n return abort;\n}\nfunction listToIcons(list) {\n var validate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var simpleNames = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var result = [];\n list.forEach(function (item) {\n var icon = typeof item === \"string\" ? stringToIcon(item, false, simpleNames) : item;\n if (!validate || validateIcon(icon, simpleNames)) {\n result.push({\n provider: icon.provider,\n prefix: icon.prefix,\n name: icon.name\n });\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n var resourcesCount = config.resources.length;\n var startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n var resources;\n if (config.random) {\n var list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n var nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n var startTime = Date.now();\n var status = \"pending\";\n var queriesSent = 0;\n var lastError;\n var timer = null;\n var queue = [];\n var doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach(function (item) {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime: startTime,\n payload: payload,\n status: status,\n queriesSent: queriesSent,\n queriesPending: queue.length,\n subscribe: subscribe,\n abort: abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach(function (callback) {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach(function (item) {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n var isError = response !== \"success\";\n queue = queue.filter(function (queued) {\n return queued !== item;\n });\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n var index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach(function (callback) {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n var resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(function () {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n var item = {\n status: \"pending\",\n resource: resource,\n callback: function callback(status2, data) {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction setConfig(config) {\n if (typeof config !== \"object\" || typeof config.resources !== \"object\" || !(config.resources instanceof Array) || !config.resources.length) {\n throw new Error(\"Invalid Reduncancy configuration\");\n }\n var newConfig = /* @__PURE__ */Object.create(null);\n var key;\n for (key in defaultConfig) {\n if (config[key] !== void 0) {\n newConfig[key] = config[key];\n } else {\n newConfig[key] = defaultConfig[key];\n }\n }\n return newConfig;\n}\nfunction initRedundancy(cfg) {\n var config = setConfig(cfg);\n var queries = [];\n function cleanup() {\n queries = queries.filter(function (item) {\n return item().status === \"pending\";\n });\n }\n function query(payload, queryCallback, doneCallback) {\n var query2 = sendQuery(config, payload, queryCallback, function (data, error) {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n });\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n var result = queries.find(function (value) {\n return callback(value);\n });\n return result !== void 0 ? result : null;\n }\n var instance = {\n query: query,\n find: find,\n setIndex: function setIndex(index) {\n config.index = index;\n },\n getIndex: function getIndex() {\n return config.index;\n },\n cleanup: cleanup\n };\n return instance;\n}\nfunction emptyCallback$1() {}\nvar redundancyCache = /* @__PURE__ */Object.create(null);\nfunction getRedundancyCache(provider) {\n if (redundancyCache[provider] === void 0) {\n var _config2 = getAPIConfig(provider);\n if (!_config2) {\n return;\n }\n var redundancy = initRedundancy(_config2);\n var cachedReundancy = {\n config: _config2,\n redundancy: redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n var redundancy;\n var send;\n if (typeof target === \"string\") {\n var api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n var cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n var _config3 = createAPIConfig(target);\n if (_config3) {\n redundancy = initRedundancy(_config3);\n var moduleKey = target.resources ? target.resources[0] : \"\";\n var _api2 = getAPIModule(moduleKey);\n if (_api2) {\n send = _api2.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\nvar cache = {};\nfunction emptyCallback() {}\nvar pendingIcons = /* @__PURE__ */Object.create(null);\nvar iconsToLoad = /* @__PURE__ */Object.create(null);\nvar loaderFlags = /* @__PURE__ */Object.create(null);\nvar queueFlags = /* @__PURE__ */Object.create(null);\nfunction loadedNewIcons(provider, prefix) {\n if (loaderFlags[provider] === void 0) {\n loaderFlags[provider] = /* @__PURE__ */Object.create(null);\n }\n var providerLoaderFlags = loaderFlags[provider];\n if (!providerLoaderFlags[prefix]) {\n providerLoaderFlags[prefix] = true;\n setTimeout(function () {\n providerLoaderFlags[prefix] = false;\n updateCallbacks(provider, prefix);\n });\n }\n}\nvar errorsCache = /* @__PURE__ */Object.create(null);\nfunction loadNewIcons(provider, prefix, icons) {\n function err() {\n var key = (provider === \"\" ? \"\" : \"@\" + provider + \":\") + prefix;\n var time = Math.floor(Date.now() / 6e4);\n if (errorsCache[key] < time) {\n errorsCache[key] = time;\n console.error('Unable to retrieve icons for \"' + key + '\" because API is not configured properly.');\n }\n }\n if (iconsToLoad[provider] === void 0) {\n iconsToLoad[provider] = /* @__PURE__ */Object.create(null);\n }\n var providerIconsToLoad = iconsToLoad[provider];\n if (queueFlags[provider] === void 0) {\n queueFlags[provider] = /* @__PURE__ */Object.create(null);\n }\n var providerQueueFlags = queueFlags[provider];\n if (pendingIcons[provider] === void 0) {\n pendingIcons[provider] = /* @__PURE__ */Object.create(null);\n }\n var providerPendingIcons = pendingIcons[provider];\n if (providerIconsToLoad[prefix] === void 0) {\n providerIconsToLoad[prefix] = icons;\n } else {\n providerIconsToLoad[prefix] = providerIconsToLoad[prefix].concat(icons).sort();\n }\n if (!providerQueueFlags[prefix]) {\n providerQueueFlags[prefix] = true;\n setTimeout(function () {\n providerQueueFlags[prefix] = false;\n var icons2 = providerIconsToLoad[prefix];\n delete providerIconsToLoad[prefix];\n var api = getAPIModule(provider);\n if (!api) {\n err();\n return;\n }\n var params = api.prepare(provider, prefix, icons2);\n params.forEach(function (item) {\n sendAPIQuery(provider, item, function (data, error) {\n var storage = getStorage(provider, prefix);\n if (typeof data !== \"object\") {\n if (error !== 404) {\n return;\n }\n var t = Date.now();\n item.icons.forEach(function (name) {\n storage.missing[name] = t;\n });\n } else {\n try {\n var parsed = addIconSet(storage, data);\n if (!parsed.length) {\n return;\n }\n var pending = providerPendingIcons[prefix];\n parsed.forEach(function (name) {\n delete pending[name];\n });\n if (cache.store) {\n cache.store(provider, data);\n }\n } catch (err2) {\n console.error(err2);\n }\n }\n loadedNewIcons(provider, prefix);\n });\n });\n });\n }\n}\nvar loadIcons = function loadIcons(icons, callback) {\n var cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n var sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n var callCallback = true;\n if (callback) {\n setTimeout(function () {\n if (callCallback) {\n callback(sortedIcons.loaded, sortedIcons.missing, sortedIcons.pending, emptyCallback);\n }\n });\n }\n return function () {\n callCallback = false;\n };\n }\n var newIcons = /* @__PURE__ */Object.create(null);\n var sources = [];\n var lastProvider, lastPrefix;\n sortedIcons.pending.forEach(function (icon) {\n var provider = icon.provider;\n var prefix = icon.prefix;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push({\n provider: provider,\n prefix: prefix\n });\n if (pendingIcons[provider] === void 0) {\n pendingIcons[provider] = /* @__PURE__ */Object.create(null);\n }\n var providerPendingIcons = pendingIcons[provider];\n if (providerPendingIcons[prefix] === void 0) {\n providerPendingIcons[prefix] = /* @__PURE__ */Object.create(null);\n }\n if (newIcons[provider] === void 0) {\n newIcons[provider] = /* @__PURE__ */Object.create(null);\n }\n var providerNewIcons = newIcons[provider];\n if (providerNewIcons[prefix] === void 0) {\n providerNewIcons[prefix] = [];\n }\n });\n var time = Date.now();\n sortedIcons.pending.forEach(function (icon) {\n var provider = icon.provider;\n var prefix = icon.prefix;\n var name = icon.name;\n var pendingQueue = pendingIcons[provider][prefix];\n if (pendingQueue[name] === void 0) {\n pendingQueue[name] = time;\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach(function (source) {\n var provider = source.provider;\n var prefix = source.prefix;\n if (newIcons[provider][prefix].length) {\n loadNewIcons(provider, prefix, newIcons[provider][prefix]);\n }\n });\n return callback ? storeCallback(callback, sortedIcons, sources) : emptyCallback;\n};\nvar loadIcon = function loadIcon(icon) {\n return new Promise(function (fulfill, reject) {\n var iconObj = typeof icon === \"string\" ? stringToIcon(icon) : icon;\n loadIcons([iconObj || icon], function (loaded) {\n if (loaded.length && iconObj) {\n var _storage = getStorage(iconObj.provider, iconObj.prefix);\n var data = getIconFromStorage(_storage, iconObj.name);\n if (data) {\n fulfill(data);\n return;\n }\n }\n reject(icon);\n });\n });\n};\nvar cacheVersion = \"iconify2\";\nvar cachePrefix = \"iconify\";\nvar countKey = cachePrefix + \"-count\";\nvar versionKey = cachePrefix + \"-version\";\nvar hour = 36e5;\nvar cacheExpiration = 168;\nvar config = {\n local: true,\n session: true\n};\nvar loaded = false;\nvar count = {\n local: 0,\n session: 0\n};\nvar emptyList = {\n local: [],\n session: []\n};\nvar _window = typeof window === \"undefined\" ? {} : window;\nfunction getGlobal(key) {\n var attr = key + \"Storage\";\n try {\n if (_window && _window[attr] && typeof _window[attr].length === \"number\") {\n return _window[attr];\n }\n } catch (err) {}\n config[key] = false;\n return null;\n}\nfunction setCount(storage, key, value) {\n try {\n storage.setItem(countKey, value.toString());\n count[key] = value;\n return true;\n } catch (err) {\n return false;\n }\n}\nfunction getCount(storage) {\n var count2 = storage.getItem(countKey);\n if (count2) {\n var total = parseInt(count2);\n return total ? total : 0;\n }\n return 0;\n}\nfunction initCache(storage, key) {\n try {\n storage.setItem(versionKey, cacheVersion);\n } catch (err) {}\n setCount(storage, key, 0);\n}\nfunction destroyCache(storage) {\n try {\n var total = getCount(storage);\n for (var i = 0; i < total; i++) {\n storage.removeItem(cachePrefix + i.toString());\n }\n } catch (err) {}\n}\nvar loadCache = function loadCache() {\n if (loaded) {\n return;\n }\n loaded = true;\n var minTime = Math.floor(Date.now() / hour) - cacheExpiration;\n function load(key) {\n var func = getGlobal(key);\n if (!func) {\n return;\n }\n var getItem = function getItem(index) {\n var name = cachePrefix + index.toString();\n var item = func.getItem(name);\n if (typeof item !== \"string\") {\n return false;\n }\n var valid = true;\n try {\n var data = JSON.parse(item);\n if (typeof data !== \"object\" || typeof data.cached !== \"number\" || data.cached < minTime || typeof data.provider !== \"string\" || typeof data.data !== \"object\" || typeof data.data.prefix !== \"string\") {\n valid = false;\n } else {\n var provider = data.provider;\n var prefix = data.data.prefix;\n var _storage2 = getStorage(provider, prefix);\n valid = addIconSet(_storage2, data.data).length > 0;\n }\n } catch (err) {\n valid = false;\n }\n if (!valid) {\n func.removeItem(name);\n }\n return valid;\n };\n try {\n var version = func.getItem(versionKey);\n if (version !== cacheVersion) {\n if (version) {\n destroyCache(func);\n }\n initCache(func, key);\n return;\n }\n var total = getCount(func);\n for (var i = total - 1; i >= 0; i--) {\n if (!getItem(i)) {\n if (i === total - 1) {\n total--;\n } else {\n emptyList[key].push(i);\n }\n }\n }\n setCount(func, key, total);\n } catch (err) {}\n }\n for (var key in config) {\n load(key);\n }\n};\nvar storeCache = function storeCache(provider, data) {\n if (!loaded) {\n loadCache();\n }\n function store(key) {\n if (!config[key]) {\n return false;\n }\n var func = getGlobal(key);\n if (!func) {\n return false;\n }\n var index = emptyList[key].shift();\n if (index === void 0) {\n index = count[key];\n if (!setCount(func, key, index + 1)) {\n return false;\n }\n }\n try {\n var item = {\n cached: Math.floor(Date.now() / hour),\n provider: provider,\n data: data\n };\n func.setItem(cachePrefix + index.toString(), JSON.stringify(item));\n } catch (err) {\n return false;\n }\n return true;\n }\n if (!Object.keys(data.icons).length) {\n return;\n }\n if (data.not_found) {\n data = Object.assign({}, data);\n delete data.not_found;\n }\n if (!store(\"local\")) {\n store(\"session\");\n }\n};\nfunction toggleBrowserCache(storage, value) {\n switch (storage) {\n case \"local\":\n case \"session\":\n config[storage] = value;\n break;\n case \"all\":\n for (var key in config) {\n config[key] = value;\n }\n break;\n }\n}\nvar separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach(function (str) {\n var value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\nfunction alignmentFromString(custom, align) {\n align.split(separator).forEach(function (str) {\n var value = str.trim();\n switch (value) {\n case \"left\":\n case \"center\":\n case \"right\":\n custom.hAlign = value;\n break;\n case \"top\":\n case \"middle\":\n case \"bottom\":\n custom.vAlign = value;\n break;\n case \"slice\":\n case \"crop\":\n custom.slice = true;\n break;\n case \"meet\":\n custom.slice = false;\n }\n });\n}\nfunction rotateFromString(value) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n var num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n var split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n var _num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(_num)) {\n return 0;\n }\n _num = _num / split;\n return _num % 1 === 0 ? cleanup(_num) : 0;\n }\n }\n return defaultValue;\n}\n\n/**\n * Default SVG attributes\n */\nvar svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlnsXlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n 'style': {} // Include style if it isn't set to add verticalAlign later\n};\n/**\n * Default values for customisations for inline icon\n */\nvar inlineDefaults = _objectSpread(_objectSpread({}, defaults), {}, {\n inline: true\n});\n/**\n * Render icon\n */\nvar _render = function render(\n// Icon must be validated before calling this function\nicon,\n// Partial properties\nprops,\n// True if icon should have vertical-align added\ninline,\n// Optional reference for SVG, extracted by React.forwardRef()\nref) {\n // Get default properties\n var defaultProps = inline ? inlineDefaults : defaults;\n // Get all customisations\n var customisations = mergeCustomisations(defaultProps, props);\n // Create style\n var style = typeof props.style === 'object' && props.style !== null ? props.style : {};\n // Create SVG component properties\n var componentProps = _objectSpread(_objectSpread({}, svgDefaults), {}, {\n ref: ref,\n style: style\n });\n // Get element properties\n for (var key in props) {\n var value = props[key];\n if (value === void 0) {\n continue;\n }\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'children':\n case 'onLoad':\n case '_ref':\n case '_inline':\n break;\n // Boolean attributes\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] = value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n break;\n // Alignment as string\n case 'align':\n if (typeof value === 'string') {\n alignmentFromString(customisations, value);\n }\n break;\n // Color: copy to style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n } else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n // Copy missing property if it does not exist in customisations\n default:\n if (defaultProps[key] === void 0) {\n componentProps[key] = value;\n }\n }\n }\n // Generate icon\n var item = iconToSVG(icon, customisations);\n // Counter for ids based on \"id\" property to render icons consistently on server and client\n var localCounter = 0;\n var id = props.id;\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n }\n // Add icon stuff\n componentProps.dangerouslySetInnerHTML = {\n __html: replaceIDs(item.body, id ? function () {\n return id + 'ID' + localCounter++;\n } : 'iconifyReact')\n };\n for (var _key in item.attributes) {\n componentProps[_key] = item.attributes[_key];\n }\n if (item.inline && style.verticalAlign === void 0) {\n style.verticalAlign = '-0.125em';\n }\n return React.createElement('svg', componentProps);\n};\n\n/**\n * Enable cache\n */\nfunction enableCache(storage) {\n toggleBrowserCache(storage, true);\n}\n/**\n * Disable cache\n */\nfunction disableCache(storage) {\n toggleBrowserCache(storage, false);\n}\n/**\n * Initialise stuff\n */\n// Enable short names\nallowSimpleNames(true);\n// Set API module\nsetAPIModule('', fetchAPIModule);\n/**\n * Browser stuff\n */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n // Set cache and load existing cache\n cache.store = storeCache;\n loadCache();\n var _window2 = window;\n // Load icons from global \"IconifyPreload\"\n if (_window2.IconifyPreload !== void 0) {\n var preload = _window2.IconifyPreload;\n var err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach(function (item) {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' || item === null || item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' || typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n } catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window2.IconifyProviders !== void 0) {\n var providers = _window2.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (var key in providers) {\n var _err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n var value = providers[key];\n if (typeof value !== 'object' || !value || value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(_err);\n }\n } catch (e) {\n console.error(_err);\n }\n }\n }\n }\n}\nvar IconComponent = /*#__PURE__*/function (_React$Component) {\n _inherits(IconComponent, _React$Component);\n var _super = _createSuper(IconComponent);\n function IconComponent(props) {\n var _this;\n _classCallCheck(this, IconComponent);\n _this = _super.call(this, props);\n _this.state = {\n // Render placeholder before component is mounted\n icon: null\n };\n return _this;\n }\n /**\n * Abort loading icon\n */\n _createClass(IconComponent, [{\n key: \"_abortLoading\",\n value: function _abortLoading() {\n if (this._loading) {\n this._loading.abort();\n this._loading = null;\n }\n }\n /**\n * Update state\n */\n }, {\n key: \"_setData\",\n value: function _setData(icon) {\n if (this.state.icon !== icon) {\n this.setState({\n icon: icon\n });\n }\n }\n /**\n * Check if icon should be loaded\n */\n }, {\n key: \"_checkIcon\",\n value: function _checkIcon(changed) {\n var state = this.state;\n var icon = this.props.icon;\n // Icon is an object\n if (typeof icon === 'object' && icon !== null && typeof icon.body === 'string') {\n // Stop loading\n this._icon = '';\n this._abortLoading();\n if (changed || state.icon === null) {\n // Set data if it was changed\n this._setData({\n data: fullIcon(icon)\n });\n }\n return;\n }\n // Invalid icon?\n var iconName;\n if (typeof icon !== 'string' || (iconName = stringToIcon(icon, false, true)) === null) {\n this._abortLoading();\n this._setData(null);\n return;\n }\n // Load icon\n var data = getIconData(iconName);\n if (data === null) {\n // Icon needs to be loaded\n if (!this._loading || this._loading.name !== icon) {\n // New icon to load\n this._abortLoading();\n this._icon = '';\n this._setData(null);\n this._loading = {\n name: icon,\n abort: loadIcons([iconName], this._checkIcon.bind(this, false))\n };\n }\n return;\n }\n // Icon data is available\n if (this._icon !== icon || state.icon === null) {\n // New icon or icon has been loaded\n this._abortLoading();\n this._icon = icon;\n // Add classes\n var classes = ['iconify'];\n if (iconName.prefix !== '') {\n classes.push('iconify--' + iconName.prefix);\n }\n if (iconName.provider !== '') {\n classes.push('iconify--' + iconName.provider);\n }\n // Set data\n this._setData({\n data: data,\n classes: classes\n });\n if (this.props.onLoad) {\n this.props.onLoad(icon);\n }\n }\n }\n /**\n * Component mounted\n */\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._checkIcon(false);\n }\n /**\n * Component updated\n */\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(oldProps) {\n if (oldProps.icon !== this.props.icon) {\n this._checkIcon(true);\n }\n }\n /**\n * Abort loading\n */\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._abortLoading();\n }\n /**\n * Render\n */\n }, {\n key: \"render\",\n value: function render() {\n var props = this.props;\n var icon = this.state.icon;\n if (icon === null) {\n // Render placeholder\n return props.children ? props.children : React.createElement('span', {});\n }\n // Add classes\n var newProps = props;\n if (icon.classes) {\n newProps = _objectSpread(_objectSpread({}, props), {}, {\n className: (typeof props.className === 'string' ? props.className + ' ' : '') + icon.classes.join(' ')\n });\n }\n // Render icon\n return _render(icon.data, newProps, props._inline, props._ref);\n }\n }]);\n return IconComponent;\n}(React.Component);\n/**\n * Block icon\n *\n * @param props - Component properties\n */\nvar Icon = React.forwardRef(function Icon(props, ref) {\n var newProps = _objectSpread(_objectSpread({}, props), {}, {\n _ref: ref,\n _inline: false\n });\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Inline icon (has negative verticalAlign that makes it behave like icon font)\n *\n * @param props - Component properties\n */\nvar InlineIcon = React.forwardRef(function InlineIcon(props, ref) {\n var newProps = _objectSpread(_objectSpread({}, props), {}, {\n _ref: ref,\n _inline: true\n });\n return React.createElement(IconComponent, newProps);\n});\n/**\n * Internal API\n */\nvar _api = {\n getAPIConfig: getAPIConfig,\n setAPIModule: setAPIModule,\n sendAPIQuery: sendAPIQuery,\n setFetch: setFetch,\n getFetch: getFetch,\n listAPIProviders: listAPIProviders,\n mergeParams: mergeParams\n};\nexport { Icon, InlineIcon, _api, addAPIProvider, addCollection, addIcon, buildIcon, calculateSize, disableCache, enableCache, getIcon, iconExists, listIcons, loadIcon, loadIcons, replaceIDs, shareStorage };","export var getMainLayoutClassName = function getMainLayoutClassName(layout) {\n switch (layout) {\n case 'stacked':\n return 'rhap_stacked';\n case 'stacked-reverse':\n return 'rhap_stacked-reverse';\n case 'horizontal':\n return 'rhap_horizontal';\n case 'horizontal-reverse':\n return 'rhap_horizontal-reverse';\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};\nvar addHeadingZero = function addHeadingZero(num) {\n return num > 9 ? num.toString() : \"0\".concat(num);\n};\nexport var getDisplayTimeBySeconds = function getDisplayTimeBySeconds(seconds, totalSeconds, timeFormat) {\n if (!isFinite(seconds)) {\n return null;\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 = \"\".concat(minStr, \":\").concat(secStr);\n var hhMmSs = \"\".concat(hourStr, \":\").concat(minStrForHour, \":\").concat(secStr);\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 _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nimport React, { Component, forwardRef } from 'react';\nimport { getPosX, throttle } from './utils';\nvar ProgressBar = function (_Component) {\n _inherits(ProgressBar, _Component);\n var _super = _createSuper(ProgressBar);\n function ProgressBar() {\n var _this;\n _classCallCheck(this, ProgressBar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"timeOnMouseMove\", 0);\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n _defineProperty(_assertThisInitialized(_this), \"downloadProgressAnimationTimer\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isDraggingProgress: false,\n currentTimePos: '0%',\n hasDownloadProgressAnimation: false,\n downloadProgressArr: [],\n waitingForSeekCallback: false\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 if (isSingleFileProgressiveDownload && (!audio.src || !isFinite(audio.currentTime) || !progressBar.current)) {\n return {\n currentTime: 0,\n currentTimePos: '0%'\n };\n }\n var progressBarRect = progressBar.current.getBoundingClientRect();\n var maxRelativePos = progressBarRect.width;\n var relativePos = getPosX(event) - progressBarRect.left;\n if (relativePos < 0) {\n relativePos = 0;\n } else if (relativePos > maxRelativePos) {\n relativePos = maxRelativePos;\n }\n var duration = _this.getDuration();\n var currentTime = duration * relativePos / maxRelativePos;\n return {\n currentTime: currentTime,\n currentTimePos: \"\".concat((relativePos / maxRelativePos * 100).toFixed(2), \"%\")\n };\n });\n _defineProperty(_assertThisInitialized(_this), \"handleContextMenu\", function (event) {\n event.preventDefault();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDownOrTouchStartProgressBar\", function (event) {\n event.stopPropagation();\n var _this$getCurrentProgr = _this.getCurrentProgress(event.nativeEvent),\n currentTime = _this$getCurrentProgr.currentTime,\n currentTimePos = _this$getCurrentProgr.currentTimePos;\n if (isFinite(currentTime)) {\n _this.timeOnMouseMove = currentTime;\n _this.setState({\n isDraggingProgress: true,\n currentTimePos: currentTimePos\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 event.stopPropagation();\n var windowSelection = window.getSelection();\n if (windowSelection && windowSelection.type === 'Range') {\n windowSelection.empty();\n }\n var isDraggingProgress = _this.state.isDraggingProgress;\n if (isDraggingProgress) {\n var _this$getCurrentProgr2 = _this.getCurrentProgress(event),\n currentTime = _this$getCurrentProgr2.currentTime,\n currentTimePos = _this$getCurrentProgr2.currentTimePos;\n _this.timeOnMouseMove = currentTime;\n _this.setState({\n currentTimePos: currentTimePos\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 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 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 _this.setState(newProps);\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 _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 var duration = _this.getDuration();\n _this.setState({\n currentTimePos: \"\".concat((currentTime / duration * 100 || 0).toFixed(2), \"%\")\n });\n }, _this.props.progressUpdateInterval));\n _defineProperty(_assertThisInitialized(_this), \"handleAudioDownloadProgressUpdate\", function (e) {\n var audio = e.target;\n var duration = _this.getDuration();\n var downloadProgressArr = [];\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: \"\".concat(Math.round(100 / duration * bufferedStart) || 0, \"%\"),\n width: \"\".concat(Math.round(100 / duration * (bufferedEnd - bufferedStart)) || 0, \"%\")\n });\n }\n clearTimeout(_this.downloadProgressAnimationTimer);\n _this.setState({\n downloadProgressArr: downloadProgressArr,\n hasDownloadProgressAnimation: true\n });\n _this.downloadProgressAnimationTimer = setTimeout(function () {\n _this.setState({\n hasDownloadProgressAnimation: false\n });\n }, 200);\n });\n return _this;\n }\n _createClass(ProgressBar, [{\n key: \"getDuration\",\n value: 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 key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var audio = this.props.audio;\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 key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('timeupdate', this.handleAudioTimeUpdate);\n this.audio.removeEventListener('progress', this.handleAudioDownloadProgressUpdate);\n }\n clearTimeout(this.downloadProgressAnimationTimer);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n showDownloadProgress = _this$props4.showDownloadProgress,\n showFilledProgress = _this$props4.showFilledProgress,\n progressBar = _this$props4.progressBar,\n i18nProgressBar = _this$props4.i18nProgressBar;\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\": i18nProgressBar,\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 \".concat(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);\nvar ProgressBarForwardRef = function ProgressBarForwardRef(props, ref) {\n return React.createElement(ProgressBar, _extends({}, props, {\n progressBar: ref\n }));\n};\nexport default forwardRef(ProgressBarForwardRef);\nexport { ProgressBar, ProgressBarForwardRef };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nimport { PureComponent } from 'react';\nimport { getDisplayTimeBySeconds } from './utils';\nvar CurrentTime = function (_PureComponent) {\n _inherits(CurrentTime, _PureComponent);\n var _super = _createSuper(CurrentTime);\n function CurrentTime(props) {\n var _this;\n _classCallCheck(this, CurrentTime);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n currentTime: _this.props.defaultCurrentTime\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 _this.setState({\n currentTime: getDisplayTimeBySeconds(isLeftTime ? audio.duration - audio.currentTime : audio.currentTime, audio.duration, timeFormat) || defaultCurrentTime\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"addAudioEventListeners\", function () {\n var audio = _this.props.audio;\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 var _audio = props.audio,\n _defaultCurrentTime = props.defaultCurrentTime,\n _isLeftTime = props.isLeftTime,\n _timeFormat = props.timeFormat;\n var currentTime = _defaultCurrentTime;\n if (_audio) {\n currentTime = getDisplayTimeBySeconds(_isLeftTime ? _audio.duration - _audio.currentTime : _audio.currentTime, _audio.duration, _timeFormat);\n }\n _this.state = {\n currentTime: currentTime\n };\n return _this;\n }\n _createClass(CurrentTime, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.addAudioEventListeners();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.addAudioEventListeners();\n }\n }, {\n key: \"componentWillUnmount\",\n value: 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 key: \"render\",\n value: function render() {\n return this.state.currentTime;\n }\n }]);\n return CurrentTime;\n}(PureComponent);\nexport default CurrentTime;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nimport { PureComponent } from 'react';\nimport { getDisplayTimeBySeconds } from './utils';\nvar Duration = function (_PureComponent) {\n _inherits(Duration, _PureComponent);\n var _super = _createSuper(Duration);\n function Duration(props) {\n var _this;\n _classCallCheck(this, Duration);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\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 _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 _this.setState({\n duration: getDisplayTimeBySeconds(audio.duration, audio.duration, timeFormat) || defaultDuration\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"addAudioEventListeners\", function () {\n var audio = _this.props.audio;\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 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 _createClass(Duration, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.addAudioEventListeners();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.addAudioEventListeners();\n }\n }, {\n key: \"componentWillUnmount\",\n value: 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 key: \"render\",\n value: function render() {\n return this.state.duration;\n }\n }]);\n return Duration;\n}(PureComponent);\nexport default Duration;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nimport React, { Component, createRef } from 'react';\nimport { getPosX } from './utils';\nvar VolumeControls = function (_Component) {\n _inherits(VolumeControls, _Component);\n var _super = _createSuper(VolumeControls);\n function VolumeControls() {\n var _this;\n _classCallCheck(this, VolumeControls);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"audio\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"hasAddedAudioEventListener\", false);\n _defineProperty(_assertThisInitialized(_this), \"volumeBar\", createRef());\n _defineProperty(_assertThisInitialized(_this), \"volumeAnimationTimer\", 0);\n _defineProperty(_assertThisInitialized(_this), \"lastVolume\", _this.props.volume);\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n currentVolumePos: \"\".concat((_this.lastVolume / 1 * 100 || 0).toFixed(2), \"%\"),\n hasVolumeAnimation: false,\n isDraggingVolume: false\n });\n _defineProperty(_assertThisInitialized(_this), \"getCurrentVolume\", function (event) {\n var audio = _this.props.audio;\n if (!_this.volumeBar.current) {\n return {\n currentVolume: audio.volume,\n currentVolumePos: _this.state.currentVolumePos\n };\n }\n var volumeBarRect = _this.volumeBar.current.getBoundingClientRect();\n var maxRelativePos = volumeBarRect.width;\n var relativePos = getPosX(event) - volumeBarRect.left;\n var currentVolume;\n var currentVolumePos;\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 = \"\".concat(relativePos / maxRelativePos * 100, \"%\");\n }\n return {\n currentVolume: currentVolume,\n currentVolumePos: currentVolumePos\n };\n });\n _defineProperty(_assertThisInitialized(_this), \"handleContextMenu\", function (event) {\n event.preventDefault();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleClickVolumeButton\", function () {\n var audio = _this.props.audio;\n if (audio.volume > 0) {\n _this.lastVolume = audio.volume;\n audio.volume = 0;\n } else {\n audio.volume = _this.lastVolume;\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleVolumnControlMouseOrTouchDown\", function (event) {\n event.stopPropagation();\n var audio = _this.props.audio;\n var _this$getCurrentVolum = _this.getCurrentVolume(event.nativeEvent),\n currentVolume = _this$getCurrentVolum.currentVolume,\n currentVolumePos = _this$getCurrentVolum.currentVolumePos;\n audio.volume = currentVolume;\n _this.setState({\n isDraggingVolume: true,\n currentVolumePos: currentVolumePos\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 _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchMove\", function (event) {\n if (event instanceof MouseEvent) {\n event.preventDefault();\n }\n event.stopPropagation();\n var audio = _this.props.audio;\n var windowSelection = window.getSelection();\n if (windowSelection && windowSelection.type === 'Range') {\n windowSelection.empty();\n }\n var isDraggingVolume = _this.state.isDraggingVolume;\n if (isDraggingVolume) {\n var _this$getCurrentVolum2 = _this.getCurrentVolume(event),\n currentVolume = _this$getCurrentVolum2.currentVolume,\n currentVolumePos = _this$getCurrentVolum2.currentVolumePos;\n audio.volume = currentVolume;\n _this.setState({\n currentVolumePos: currentVolumePos\n });\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleWindowMouseOrTouchUp\", function (event) {\n event.stopPropagation();\n _this.setState({\n isDraggingVolume: false\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 _defineProperty(_assertThisInitialized(_this), \"handleAudioVolumeChange\", function (e) {\n var isDraggingVolume = _this.state.isDraggingVolume;\n var _ref = e.target,\n volume = _ref.volume;\n if (_this.lastVolume > 0 && volume === 0 || _this.lastVolume === 0 && volume > 0) {\n _this.props.onMuteChange();\n }\n _this.lastVolume = volume;\n if (isDraggingVolume) return;\n _this.setState({\n hasVolumeAnimation: true,\n currentVolumePos: \"\".concat((volume / 1 * 100 || 0).toFixed(2), \"%\")\n });\n clearTimeout(_this.volumeAnimationTimer);\n _this.volumeAnimationTimer = setTimeout(function () {\n _this.setState({\n hasVolumeAnimation: false\n });\n }, 100);\n });\n return _this;\n }\n _createClass(VolumeControls, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var audio = this.props.audio;\n if (audio && !this.hasAddedAudioEventListener) {\n this.audio = audio;\n this.hasAddedAudioEventListener = true;\n audio.addEventListener('volumechange', this.handleAudioVolumeChange);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.audio && this.hasAddedAudioEventListener) {\n this.audio.removeEventListener('volumechange', this.handleAudioVolumeChange);\n }\n clearTimeout(this.volumeAnimationTimer);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n audio = _this$props.audio,\n showFilledVolume = _this$props.showFilledVolume,\n i18nVolumeControl = _this$props.i18nVolumeControl;\n var _this$state = this.state,\n currentVolumePos = _this$state.currentVolumePos,\n hasVolumeAnimation = _this$state.hasVolumeAnimation;\n var _ref2 = audio || {},\n volume = _ref2.volume;\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\": i18nVolumeControl,\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);\nexport default VolumeControls;","export var RHAP_UI;\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 _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\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';\nvar H5AudioPlayer = function (_Component) {\n _inherits(H5AudioPlayer, _Component);\n var _super = _createSuper(H5AudioPlayer);\n function H5AudioPlayer() {\n var _this;\n _classCallCheck(this, H5AudioPlayer);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"audio\", createRef());\n _defineProperty(_assertThisInitialized(_this), \"progressBar\", createRef());\n _defineProperty(_assertThisInitialized(_this), \"container\", createRef());\n _defineProperty(_assertThisInitialized(_this), \"lastVolume\", _this.props.volume);\n _defineProperty(_assertThisInitialized(_this), \"listenTracker\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"volumeAnimationTimer\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"downloadProgressAnimationTimer\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"togglePlay\", function (e) {\n e.stopPropagation();\n var audio = _this.audio.current;\n if ((audio.paused || audio.ended) && audio.src) {\n _this.playAudioPromise();\n } else if (!audio.paused) {\n audio.pause();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"playAudioPromise\", function () {\n var playPromise = _this.audio.current.play();\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 _defineProperty(_assertThisInitialized(_this), \"isPlaying\", function () {\n var audio = _this.audio.current;\n if (!audio) return false;\n return !audio.paused && !audio.ended;\n });\n _defineProperty(_assertThisInitialized(_this), \"handlePlay\", function (e) {\n _this.forceUpdate();\n _this.props.onPlay && _this.props.onPlay(e);\n });\n _defineProperty(_assertThisInitialized(_this), \"handlePause\", function (e) {\n if (!_this.audio) return;\n _this.forceUpdate();\n _this.props.onPause && _this.props.onPause(e);\n });\n _defineProperty(_assertThisInitialized(_this), \"handleEnded\", function (e) {\n if (!_this.audio) return;\n _this.forceUpdate();\n _this.props.onEnded && _this.props.onEnded(e);\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAbort\", function (e) {\n _this.props.onAbort && _this.props.onAbort(e);\n });\n _defineProperty(_assertThisInitialized(_this), \"handleClickVolumeButton\", function () {\n var audio = _this.audio.current;\n if (audio.volume > 0) {\n _this.lastVolume = audio.volume;\n audio.volume = 0;\n } else {\n audio.volume = _this.lastVolume;\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMuteChange\", function () {\n _this.forceUpdate();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleClickLoopButton\", function () {\n _this.audio.current.loop = !_this.audio.current.loop;\n _this.forceUpdate();\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 _this.setJumpTime(-jumpStep);\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 _this.setJumpTime(jumpStep);\n });\n _defineProperty(_assertThisInitialized(_this), \"setJumpTime\", function (time) {\n var audio = _this.audio.current;\n var duration = audio.duration,\n prevTime = audio.currentTime;\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 var currentTime = prevTime + time / 1000;\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 _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 _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 _this.togglePlay(e);\n }\n break;\n case 'ArrowLeft':\n _this.handleClickRewind();\n break;\n case 'ArrowRight':\n _this.handleClickForward();\n break;\n case 'ArrowUp':\n e.preventDefault();\n _this.setJumpVolume(_this.props.volumeJumpStep);\n break;\n case 'ArrowDown':\n e.preventDefault();\n _this.setJumpVolume(-_this.props.volumeJumpStep);\n break;\n case 'l':\n _this.handleClickLoopButton();\n break;\n case 'm':\n _this.handleClickVolumeButton();\n break;\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 _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 i18nAriaLabels = _this$props3.i18nAriaLabels;\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 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 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 i18nProgressBar: i18nAriaLabels.progressControl\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 case RHAP_UI.ADDITIONAL_CONTROLS:\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_additional-controls\"\n }, _this.renderUIModules(customAdditionalControls));\n case RHAP_UI.MAIN_CONTROLS:\n {\n var isPlaying = _this.isPlaying();\n var actionIcon;\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 return React.createElement(\"div\", {\n key: key,\n className: \"rhap_main-controls\"\n }, showSkipControls && React.createElement(\"button\", {\n \"aria-label\": i18nAriaLabels.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\": i18nAriaLabels.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 ? i18nAriaLabels.pause : i18nAriaLabels.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\": i18nAriaLabels.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\": i18nAriaLabels.next,\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 case RHAP_UI.VOLUME_CONTROLS:\n return React.createElement(\"div\", {\n key: key,\n className: \"rhap_volume-controls\"\n }, _this.renderUIModules(customVolumeControls));\n case RHAP_UI.LOOP:\n {\n var loop = _this.audio.current ? _this.audio.current.loop : loopProp;\n var loopIcon;\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 return React.createElement(\"button\", {\n key: key,\n \"aria-label\": loop ? i18nAriaLabels.loop : i18nAriaLabels.loopOff,\n className: \"rhap_button-clear rhap_repeat-button\",\n type: \"button\",\n onClick: _this.handleClickLoopButton\n }, loopIcon);\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 var volumeIcon;\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 return React.createElement(\"div\", {\n key: key,\n className: \"rhap_volume-container\"\n }, React.createElement(\"button\", {\n \"aria-label\": volume ? i18nAriaLabels.volume : i18nAriaLabels.volumeMute,\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 i18nVolumeControl: i18nAriaLabels.volumeControl\n }));\n }\n default:\n if (!isValidElement(comp)) {\n return null;\n }\n return comp.key ? comp : cloneElement(comp, {\n key: key\n });\n }\n });\n return _this;\n }\n _createClass(H5AudioPlayer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n this.forceUpdate();\n var audio = this.audio.current;\n if (this.props.muted) {\n audio.volume = 0;\n } else {\n audio.volume = this.lastVolume;\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 key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props4 = this.props,\n src = _this$props4.src,\n autoPlayAfterSrcChange = _this$props4.autoPlayAfterSrcChange;\n if (prevProps.src !== src) {\n if (autoPlayAfterSrcChange) {\n this.playAudioPromise();\n } else {\n this.forceUpdate();\n }\n }\n }\n }, {\n key: \"render\",\n value: 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 i18nAriaLabels = _this$props5.i18nAriaLabels;\n var loop = this.audio.current ? this.audio.current.loop : loopProp;\n var loopClass = loop ? 'rhap_loop--on' : 'rhap_loop--off';\n var isPlayingClass = this.isPlaying() ? 'rhap_play-status--playing' : 'rhap_play-status--paused';\n return React.createElement(\"div\", {\n role: \"group\",\n tabIndex: 0,\n \"aria-label\": i18nAriaLabels.player,\n className: \"rhap_container \".concat(loopClass, \" \").concat(isPlayingClass, \" \").concat(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 \".concat(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_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 i18nAriaLabels: {\n player: 'Audio player',\n progressControl: 'Audio progress control',\n volumeControl: 'Volume control',\n play: 'Play',\n pause: 'Pause',\n rewind: 'Rewind',\n forward: 'Forward',\n previous: 'Previous',\n next: 'Skip',\n loop: 'Disable loop',\n loopOff: 'Enable loop',\n volume: 'Mute',\n volumeMute: 'Unmute'\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;","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","var toPropertyKey = require(\"./toPropertyKey.js\");\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, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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;","import toPropertyKey from \"./toPropertyKey.js\";\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, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","var data = {\n \"body\": \"\",\n \"width\": 24,\n \"height\": 24\n};\nexports.__esModule = true;\nexports.default = data;"],"sourceRoot":""}