mirror of
https://github.com/pengzhanbo/vuepress-theme-plume.git
synced 2026-04-23 10:58:13 +08:00
1 line
2.2 KiB
JavaScript
1 line
2.2 KiB
JavaScript
import{J as e,M as t,P as n,c as r,f as i,j as a,l as o,y as s}from"./runtime-core.esm-bundler-TY2dTQsQ.js";import{b as c}from"./composables-B_J_gYEQ.js";import{t as l}from"./plugin-vue_export-helper-PrwMxFSs.js";var u={class:`bg-filter`},d=l(s({__name:`TintPlate`,props:{rgb:{},r:{},g:{},b:{},light:{},dark:{}},setup(s){let l=r(()=>s.rgb?s.rgb:s.light||s.dark?p({light:s.light,dark:s.dark}):p({r:s.r,g:s.g,b:s.b})),d={r:{value:200,offset:36},g:{value:200,offset:36},b:{value:200,offset:36}},f={r:{value:32,offset:36},g:{value:32,offset:36},b:{value:32,offset:36}};function p(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function m(e){return typeof e==`number`||Number(e)===Number.parseInt(e)?[e,e,e].map(e=>Number(e)):e.includes(`,`)?e.replace(/\s/g,``).split(`,`).map(e=>Number(e)):[]}function h([e,t,n]){return{r:g(e),g:g(t),b:g(n)}}function g(e){let t=256-e;return{value:e,offset:t>64?64:t}}function _(e){return Object.keys(e).forEach(t=>{let n=e[t];n.value=Number(n.value),n.offset=Number(n.offset)}),e}let v=e(`canvas`),y=c(),b=null,x=0,S,C=r(()=>{let e=y.value?f:d,t=l.value;if(!t)return e;if(typeof t==`string`||typeof t==`number`){if(y.value)return f;let e=m(t);return e.length===3?h(e):d}if(typeof t==`object`){if(`r`in t)return y.value?f:_({...d,...t});let n=y.value?`dark`:`light`;if(n in t){let r=t[n];if(typeof r==`string`||typeof r==`number`){let e=m(r);return e.length===3?h(e):d}return _({...e,...t})}}return e});a(()=>{v.value&&(b=v.value.getContext(`2d`),S&&window.cancelAnimationFrame(S),w())}),t(()=>{S&&window.cancelAnimationFrame(S)});function w(){for(let e=0;e<=35;e++)for(let t=0;t<=35;t++)T(e,t,E(e,t,x),D(e,t,x),O(e,t,x));x+=.02,S=window.requestAnimationFrame(w)}function T(e,t,n,r,i){b&&(b.fillStyle=`rgb(${n},${r},${i})`,b.fillRect(e,t,1,1))}function E(e,t,n){let r=C.value.r;return Math.floor(r.value+r.offset*Math.cos((e*e-t*t)/300+n))}function D(e,t,n){let r=C.value.g;return Math.floor(r.value+r.offset*Math.sin((e*e*Math.cos(n/4)+t*t*Math.sin(n/3))/300))}function O(e,t,n){let r=C.value.b;return Math.floor(r.value+r.offset*Math.sin(5*Math.sin(n/9)+((e-100)*(e-100)+(t-100)*(t-100))/1100))}return(e,t)=>(n(),i(`div`,u,[o(`canvas`,{ref_key:`canvas`,ref:v,width:`32`,height:`32`},null,512)]))}}),[[`__scopeId`,`data-v-8fe0c190`]]);export{d as default}; |