From 0ddb7751a18a977a741334fc11fc28fcb7bb2a38 Mon Sep 17 00:00:00 2001 From: Harvey Zack Date: Sun, 20 Oct 2024 15:06:06 +0800 Subject: [PATCH] Refactor Artplayer class to update build timestamp --- docs/uncompiled/artplayer-plugin-hls-control/index.js | 2 ++ docs/uncompiled/artplayer-plugin-hls-control/index.js.map | 2 +- docs/uncompiled/artplayer/index.js | 2 +- packages/artplayer-plugin-hls-control/src/index.js | 8 ++++++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/docs/uncompiled/artplayer-plugin-hls-control/index.js b/docs/uncompiled/artplayer-plugin-hls-control/index.js index f26c12765..2813c5650 100644 --- a/docs/uncompiled/artplayer-plugin-hls-control/index.js +++ b/docs/uncompiled/artplayer-plugin-hls-control/index.js @@ -187,6 +187,7 @@ function artplayerPluginHlsControl(option = {}) { art.loading.show = true; art.notice.show = `${title}: ${item.html}`; art.emit("artplayerPluginHlsControl:quality", item); + for(let index = 0; index < selector.length; index++)selector[index].default = selector[index] === item; return item.html; }; if (config.control) art.controls.update({ @@ -245,6 +246,7 @@ function artplayerPluginHlsControl(option = {}) { art.loading.show = true; art.notice.show = `${title}: ${item.html}`; art.emit("artplayerPluginHlsControl:audio", item); + for(let index = 0; index < selector.length; index++)selector[index].default = selector[index] === item; return item.html; }; if (config.control) art.controls.update({ diff --git a/docs/uncompiled/artplayer-plugin-hls-control/index.js.map b/docs/uncompiled/artplayer-plugin-hls-control/index.js.map index 66bb51250..5d4dac3c2 100644 --- a/docs/uncompiled/artplayer-plugin-hls-control/index.js.map +++ b/docs/uncompiled/artplayer-plugin-hls-control/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["packages/artplayer-plugin-hls-control/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-fcdfb7ede3ffa9c4.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e5365aae8b5bd745.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import $quality from 'bundle-text:./quality.svg';\nimport $audio from 'bundle-text:./audio.svg';\n\nfunction uniqBy(array, property) {\n const seen = new Map();\n return array.filter((item) => {\n const key = item[property];\n if (key === undefined) {\n return true;\n }\n return !seen.has(key) && seen.set(key, 1);\n });\n}\n\nexport default function artplayerPluginHlsControl(option = {}) {\n return (art) => {\n const { $video } = art.template;\n const { errorHandle, query, queryAll, inverseClass } = art.constructor.utils;\n\n function updateQuality(hls) {\n if (!hls.levels.length) return;\n\n const config = option.quality || {};\n const auto = config.auto || 'Auto';\n const title = config.title || 'Quality';\n const getName = config.getName || ((level) => level.name || level.height + 'P');\n const defaultLevel = hls.levels[hls.currentLevel];\n const defaultHtml = defaultLevel ? getName(defaultLevel) : auto;\n\n const selector = uniqBy(\n hls.levels.map((item, index) => {\n return {\n html: getName(item, index),\n value: index,\n default: hls.currentLevel === index,\n };\n }),\n 'html',\n ).sort((a, b) => b.value - a.value);\n\n selector.push({\n html: auto,\n value: -1,\n default: hls.currentLevel === -1,\n });\n\n const onSelect = (item) => {\n hls.currentLevel = item.value;\n art.loading.show = true;\n art.notice.show = `${title}: ${item.html}`;\n art.emit('artplayerPluginHlsControl:quality', item);\n return item.html;\n };\n\n if (config.control) {\n art.controls.update({\n name: 'hls-quality',\n position: 'right',\n html: defaultHtml,\n style: { padding: '0 10px' },\n selector: selector,\n onSelect: onSelect,\n mounted: ($control) => {\n art.on('artplayerPluginHlsControl:quality', (item) => {\n const $value = query('.art-selector-value', $control);\n const $items = queryAll('.art-selector-item', $control);\n $value.innerHTML = item.html;\n const $item = $items.find((element) => Number(element.dataset.value) === item.value);\n inverseClass($item, 'art-current');\n });\n },\n });\n }\n\n if (config.setting) {\n art.setting.update({\n name: 'hls-quality',\n tooltip: defaultHtml,\n html: title,\n icon: $quality,\n width: 200,\n selector: selector,\n onSelect: onSelect,\n mounted: (_, setting) => {\n art.on('artplayerPluginHlsControl:quality', (item) => {\n setting.tooltip = item.html;\n\n const element = setting.selector.find(\n (element) => Number(element.$item?.dataset?.value) === item.value,\n );\n\n if (element?.$item) {\n inverseClass(element.$item, 'art-current');\n }\n });\n },\n });\n }\n }\n\n function updateAudio(hls) {\n if (!hls.audioTracks.length) return;\n\n const config = option.audio || {};\n const auto = config.auto || 'Auto';\n const title = config.title || 'Audio';\n const getName = config.getName || ((track) => track.name || track.lang || track.language);\n const defaultTrack = hls.audioTracks[hls.audioTrack];\n const defaultHtml = defaultTrack ? getName(defaultTrack) : auto;\n\n const selector = uniqBy(\n hls.audioTracks.map((item, index) => {\n return {\n html: getName(item, index),\n value: item.id,\n default: hls.audioTrack === item.id,\n };\n }),\n 'html',\n );\n\n const onSelect = (item) => {\n hls.audioTrack = item.value;\n art.loading.show = true;\n art.notice.show = `${title}: ${item.html}`;\n art.emit('artplayerPluginHlsControl:audio', item);\n return item.html;\n };\n\n if (config.control) {\n art.controls.update({\n name: 'hls-audio',\n position: 'right',\n html: defaultHtml,\n style: { padding: '0 10px' },\n selector: selector,\n onSelect: onSelect,\n mounted: ($control) => {\n art.on('artplayerPluginHlsControl:audio', (item) => {\n const $value = query('.art-selector-value', $control);\n const $items = queryAll('.art-selector-item', $control);\n $value.innerHTML = item.html;\n const $item = $items.find((element) => Number(element.dataset.value) === item.value);\n inverseClass($item, 'art-current');\n });\n },\n });\n }\n\n if (config.setting) {\n art.setting.update({\n name: 'hls-audio',\n tooltip: defaultHtml,\n html: title,\n icon: $audio,\n width: 200,\n selector: selector,\n onSelect: onSelect,\n mounted: (_, setting) => {\n art.on('artplayerPluginHlsControl:audio', (item) => {\n setting.tooltip = item.html;\n const element = setting.selector.find(\n (element) => Number(element.$item?.dataset?.value) === item.value,\n );\n if (element?.$item) {\n inverseClass(element.$item, 'art-current');\n }\n });\n },\n });\n }\n }\n\n function update() {\n errorHandle(art.hls?.media === $video, 'Cannot find instance of HLS from \"art.hls\"');\n updateQuality(art.hls);\n updateAudio(art.hls);\n }\n\n art.on('ready', update);\n art.on('restart', update);\n\n return {\n name: 'artplayerPluginHlsControl',\n update,\n };\n };\n}\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginHlsControl'] = artplayerPluginHlsControl;\n}\n","module.exports = \"e0a30f4de7c57e4d\";","module.exports = \"fd952d8b3d447899\";","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file +{"mappings":"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","sources":["packages/artplayer-plugin-hls-control/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-fcdfb7ede3ffa9c4.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e5365aae8b5bd745.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import $quality from 'bundle-text:./quality.svg';\nimport $audio from 'bundle-text:./audio.svg';\n\nfunction uniqBy(array, property) {\n const seen = new Map();\n return array.filter((item) => {\n const key = item[property];\n if (key === undefined) {\n return true;\n }\n return !seen.has(key) && seen.set(key, 1);\n });\n}\n\nexport default function artplayerPluginHlsControl(option = {}) {\n return (art) => {\n const { $video } = art.template;\n const { errorHandle, query, queryAll, inverseClass } = art.constructor.utils;\n\n function updateQuality(hls) {\n if (!hls.levels.length) return;\n\n const config = option.quality || {};\n const auto = config.auto || 'Auto';\n const title = config.title || 'Quality';\n const getName = config.getName || ((level) => level.name || level.height + 'P');\n const defaultLevel = hls.levels[hls.currentLevel];\n const defaultHtml = defaultLevel ? getName(defaultLevel) : auto;\n\n const selector = uniqBy(\n hls.levels.map((item, index) => {\n return {\n html: getName(item, index),\n value: index,\n default: hls.currentLevel === index,\n };\n }),\n 'html',\n ).sort((a, b) => b.value - a.value);\n\n selector.push({\n html: auto,\n value: -1,\n default: hls.currentLevel === -1,\n });\n\n const onSelect = (item) => {\n hls.currentLevel = item.value;\n art.loading.show = true;\n art.notice.show = `${title}: ${item.html}`;\n art.emit('artplayerPluginHlsControl:quality', item);\n for (let index = 0; index < selector.length; index++) {\n selector[index].default = selector[index] === item;\n }\n return item.html;\n };\n\n if (config.control) {\n art.controls.update({\n name: 'hls-quality',\n position: 'right',\n html: defaultHtml,\n style: { padding: '0 10px' },\n selector: selector,\n onSelect: onSelect,\n mounted: ($control) => {\n art.on('artplayerPluginHlsControl:quality', (item) => {\n const $value = query('.art-selector-value', $control);\n const $items = queryAll('.art-selector-item', $control);\n $value.innerHTML = item.html;\n const $item = $items.find((element) => Number(element.dataset.value) === item.value);\n inverseClass($item, 'art-current');\n });\n },\n });\n }\n\n if (config.setting) {\n art.setting.update({\n name: 'hls-quality',\n tooltip: defaultHtml,\n html: title,\n icon: $quality,\n width: 200,\n selector: selector,\n onSelect: onSelect,\n mounted: (_, setting) => {\n art.on('artplayerPluginHlsControl:quality', (item) => {\n setting.tooltip = item.html;\n\n const element = setting.selector.find(\n (element) => Number(element.$item?.dataset?.value) === item.value,\n );\n\n if (element?.$item) {\n inverseClass(element.$item, 'art-current');\n }\n });\n },\n });\n }\n }\n\n function updateAudio(hls) {\n if (!hls.audioTracks.length) return;\n\n const config = option.audio || {};\n const auto = config.auto || 'Auto';\n const title = config.title || 'Audio';\n const getName = config.getName || ((track) => track.name || track.lang || track.language);\n const defaultTrack = hls.audioTracks[hls.audioTrack];\n const defaultHtml = defaultTrack ? getName(defaultTrack) : auto;\n\n const selector = uniqBy(\n hls.audioTracks.map((item, index) => {\n return {\n html: getName(item, index),\n value: item.id,\n default: hls.audioTrack === item.id,\n };\n }),\n 'html',\n );\n\n const onSelect = (item) => {\n hls.audioTrack = item.value;\n art.loading.show = true;\n art.notice.show = `${title}: ${item.html}`;\n art.emit('artplayerPluginHlsControl:audio', item);\n for (let index = 0; index < selector.length; index++) {\n selector[index].default = selector[index] === item;\n }\n return item.html;\n };\n\n if (config.control) {\n art.controls.update({\n name: 'hls-audio',\n position: 'right',\n html: defaultHtml,\n style: { padding: '0 10px' },\n selector: selector,\n onSelect: onSelect,\n mounted: ($control) => {\n art.on('artplayerPluginHlsControl:audio', (item) => {\n const $value = query('.art-selector-value', $control);\n const $items = queryAll('.art-selector-item', $control);\n $value.innerHTML = item.html;\n const $item = $items.find((element) => Number(element.dataset.value) === item.value);\n inverseClass($item, 'art-current');\n });\n },\n });\n }\n\n if (config.setting) {\n art.setting.update({\n name: 'hls-audio',\n tooltip: defaultHtml,\n html: title,\n icon: $audio,\n width: 200,\n selector: selector,\n onSelect: onSelect,\n mounted: (_, setting) => {\n art.on('artplayerPluginHlsControl:audio', (item) => {\n setting.tooltip = item.html;\n const element = setting.selector.find(\n (element) => Number(element.$item?.dataset?.value) === item.value,\n );\n if (element?.$item) {\n inverseClass(element.$item, 'art-current');\n }\n });\n },\n });\n }\n }\n\n function update() {\n errorHandle(art.hls?.media === $video, 'Cannot find instance of HLS from \"art.hls\"');\n updateQuality(art.hls);\n updateAudio(art.hls);\n }\n\n art.on('ready', update);\n art.on('restart', update);\n\n return {\n name: 'artplayerPluginHlsControl',\n update,\n };\n };\n}\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginHlsControl'] = artplayerPluginHlsControl;\n}\n","module.exports = \"e0a30f4de7c57e4d\";","module.exports = \"fd952d8b3d447899\";","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file diff --git a/docs/uncompiled/artplayer/index.js b/docs/uncompiled/artplayer/index.js index 071d6b001..a03d2926e 100644 --- a/docs/uncompiled/artplayer/index.js +++ b/docs/uncompiled/artplayer/index.js @@ -242,7 +242,7 @@ class Artplayer extends (0, _emitterDefault.default) { return "development"; } static get build() { - return "2024-10-20 14:45:09"; + return "2024-10-20 15:04:08"; } static get config() { return 0, _configDefault.default; diff --git a/packages/artplayer-plugin-hls-control/src/index.js b/packages/artplayer-plugin-hls-control/src/index.js index d8bc89861..d06dd0513 100644 --- a/packages/artplayer-plugin-hls-control/src/index.js +++ b/packages/artplayer-plugin-hls-control/src/index.js @@ -49,6 +49,9 @@ export default function artplayerPluginHlsControl(option = {}) { art.loading.show = true; art.notice.show = `${title}: ${item.html}`; art.emit('artplayerPluginHlsControl:quality', item); + for (let index = 0; index < selector.length; index++) { + selector[index].default = selector[index] === item; + } return item.html; }; @@ -124,6 +127,9 @@ export default function artplayerPluginHlsControl(option = {}) { art.loading.show = true; art.notice.show = `${title}: ${item.html}`; art.emit('artplayerPluginHlsControl:audio', item); + for (let index = 0; index < selector.length; index++) { + selector[index].default = selector[index] === item; + } return item.html; }; @@ -159,9 +165,11 @@ export default function artplayerPluginHlsControl(option = {}) { mounted: (_, setting) => { art.on('artplayerPluginHlsControl:audio', (item) => { setting.tooltip = item.html; + const element = setting.selector.find( (element) => Number(element.$item?.dataset?.value) === item.value, ); + if (element?.$item) { inverseClass(element.$item, 'art-current'); }