fix(build): update cpy options to use flat for output directory

This commit is contained in:
Harvey Zhao committed 2026-03-07 15:32:38 +08:00
1 parent 699bf09577
commit 3bf0707faa
95 files changed
+29 -90819

No files matched your search

+1 -101
View File
@@ -4,104 +4,4 @@
* (c) 2017-2026 Harvey Zhao
* Released under the MIT License.
*/
function artplayerPluginAmbilight(option = {}) {
return (art) => {
const { $video } = art.template;
const { createElement, addClass, setStyles } = art.constructor.utils;
const { blur = "50px", opacity = 0.5, frequency = 10, duration = 0.3 } = option;
const $ambilight = createElement("div");
const gridItems = createGridItems($ambilight);
setupAmbilight($ambilight, $video);
setupGridItems(gridItems, blur, opacity, duration);
const updateColors = createColorUpdater($video, gridItems, frequency);
let animationFrameId = null;
function start() {
if (!animationFrameId) {
updateColors();
}
}
function stop() {
if (animationFrameId) {
cancelAnimationFrame(animationFrameId);
animationFrameId = null;
}
}
art.on("ready", start);
art.on("destroy", stop);
return {
name: "artplayerPluginAmbilight",
start,
stop
};
function createGridItems($ambilight2) {
$ambilight2.innerHTML = Array.from({ length: 9 }).fill("<div></div>").join("");
return Array.from($ambilight2.children);
}
function setupAmbilight($ambilight2, $video2) {
addClass($ambilight2, "artplayer-plugin-ambilight");
$video2.parentNode.insertBefore($ambilight2, $video2);
setStyles($ambilight2, {
position: "absolute",
top: 0,
left: 0,
zIndex: 9,
inset: 0,
display: "grid",
gridTemplateColumns: "1fr 1fr 1fr",
gridTemplateRows: "1fr 1fr 1fr"
});
}
function setupGridItems(gridItems2, blur2, opacity2, duration2) {
gridItems2.forEach(($item) => {
setStyles($item, {
opacity: opacity2,
filter: `blur(${blur2})`,
transition: `background-color ${duration2}s ease`
});
});
}
function createColorUpdater($video2, gridItems2, frequency2) {
const canvas = createElement("canvas");
const ctx = canvas.getContext("2d");
canvas.width = 3;
canvas.height = 3;
function getAverageColor(x, y, w, h) {
ctx.drawImage($video2, x, y, w, h, 0, 0, 1, 1);
const [r, g, b] = ctx.getImageData(0, 0, 1, 1).data;
return `rgb(${r}, ${g}, ${b})`;
}
let lastUpdateTime = 0;
return function updateColors2() {
const now = performance.now();
if (now - lastUpdateTime < 1e3 / frequency2 || !art.playing) {
animationFrameId = requestAnimationFrame(updateColors2);
return;
}
lastUpdateTime = now;
const w = $video2.videoWidth / 3;
const h = $video2.videoHeight / 3;
const colors = [
[0, 0],
[w, 0],
[2 * w, 0],
[0, h],
[w, h],
[2 * w, h],
[0, 2 * h],
[w, 2 * h],
[2 * w, 2 * h]
].map(([x, y]) => getAverageColor(x, y, w, h));
gridItems2.forEach(($item, index) => {
$item.style.backgroundColor = colors[index];
});
animationFrameId = requestAnimationFrame(updateColors2);
};
}
};
}
if (typeof window !== "undefined") {
window.artplayerPluginAmbilight = artplayerPluginAmbilight;
}
export {
artplayerPluginAmbilight as default
};
function t(t={}){return e=>{const{$video:n}=e.template,{createElement:r,addClass:i,setStyles:o}=e.constructor.utils,{blur:a="50px",opacity:l=.5,frequency:d=10,duration:u=.3}=t,s=r("div"),c=((f=s).innerHTML=Array.from({length:9}).fill("<div></div>").join(""),Array.from(f.children));var f,m,g,p;!function(t,e){i(t,"artplayer-plugin-ambilight"),e.parentNode.insertBefore(t,e),o(t,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"})}(s,n),m=a,g=l,p=u,c.forEach(t=>{o(t,{opacity:g,filter:`blur(${m})`,transition:`background-color ${p}s ease`})});const y=function(t,n,i){const o=r("canvas"),a=o.getContext("2d");o.width=3,o.height=3;let l=0;return function r(){const o=performance.now();if(o-l<1e3/i||!e.playing)return void(h=requestAnimationFrame(r));l=o;const d=t.videoWidth/3,u=t.videoHeight/3,s=[[0,0],[d,0],[2*d,0],[0,u],[d,u],[2*d,u],[0,2*u],[d,2*u],[2*d,2*u]].map(([e,n])=>function(e,n,r,i){a.drawImage(t,e,n,r,i,0,0,1,1);const[o,l,d]=a.getImageData(0,0,1,1).data;return`rgb(${o}, ${l}, ${d})`}(e,n,d,u));n.forEach((t,e)=>{t.style.backgroundColor=s[e]}),h=requestAnimationFrame(r)}}(n,c,d);let h=null;function b(){h||y()}function v(){h&&(cancelAnimationFrame(h),h=null)}return e.on("ready",b),e.on("destroy",v),{name:"artplayerPluginAmbilight",start:b,stop:v}}}"undefined"!==typeof window&&(window.artplayerPluginAmbilight=t);export{t as default};