!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["video/player/video-scaling"]=t():e["video/player/video-scaling"]=t()}(globalThis,(()=>(()=>{var e,t,n={891:(e,t,n)=>{var o=n(904),r=n(955)(o);r.push([e.id,'@charset "UTF-8";\n/* 视频缩放组件样式补充 */\n/* 确保缩放功能在不同播放器版本中都能正常工作 */\n.bilibili-player-video {\n position: relative;\n overflow: hidden;\n}\n\n.bpx-player-video-container {\n position: relative;\n overflow: hidden;\n}\n\n/* 自定义缩放时的平滑过渡效果 */\n.bilibili-player-video video,\nvideo[class^=bpx-player-video-element],\n.bilibili-player-video .bpx-player-video-element {\n transition: transform 0.3s ease;\n}',"",{version:3,sources:["webpack://./registry/lib/components/video/player/video-scaling/styles.scss"],names:[],mappings:"AAAA,gBAAgB;AAChB,eAAe;AACf,0BAA0B;AAC1B;EACE,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA,kBAAkB;AAClB;;;EAGE,+BAA+B;AACjC",sourcesContent:['@charset "UTF-8";\n/* 视频缩放组件样式补充 */\n/* 确保缩放功能在不同播放器版本中都能正常工作 */\n.bilibili-player-video {\n position: relative;\n overflow: hidden;\n}\n\n.bpx-player-video-container {\n position: relative;\n overflow: hidden;\n}\n\n/* 自定义缩放时的平滑过渡效果 */\n.bilibili-player-video video,\nvideo[class^=bpx-player-video-element],\n.bilibili-player-video .bpx-player-video-element {\n transition: transform 0.3s ease;\n}'],sourceRoot:""}]),e.exports=r},955:e=>{"use strict"; // eslint-disable-next-line func-names e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")}, // eslint-disable-next-line func-names t.i=function(e,n,o){"string"==typeof e&&( // eslint-disable-next-line no-param-reassign e=[[null,e,""]]);var r={};if(o)for(var i=0;i{"use strict";function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var o,r,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(o=n.next()).done)&&(i.push(o.value),!t||i.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw r}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);"Object"===o&&e.constructor&&(o=e.constructor.name);if("Map"===o||"Set"===o)return Array.from(e);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return n(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n{var o=n(891);o&&o.__esModule&&(o=o.default),e.exports="string"==typeof o?o:o.toString()},825:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=825,e.exports=t},290:e=>{"use strict";e.exports='> 允许调整视频的显示缩放比例,让您根据屏幕大小和个人偏好自定义视频播放体验。\n\n#### 🔧 **选项**\n\n- \\`缩放比例\\`:选择预设的视频缩放比例,包括 75%、100%(默认)、110%、125%、150% 以及自定义选项。\n\n- \\`自定义缩放比 (%)\\`:当选择 "自定义" 选项时显示,可在 50%-300% 范围内以 10% 为步长自由调整缩放比例。\n\n- \\`显示缩放提示\\`:启用后,在调整缩放比例时会显示短暂提示,告知当前缩放比例。\n\n- \\`提示显示时间 (秒)\\`:控制缩放提示的显示时长,可在 0.5-5 秒范围内以 0.5 秒为步长调整。\n\n- \\`显示控制栏按钮\\`:在播放器控制栏添加一个缩放按钮,点击可循环切换预设的缩放比例。\n\n#### **使用方法**\n\n1. **通过设置面板**:在组件设置中直接选择预设的缩放比例,或选择 "自定义" 后调整滑动条设置特定比例。\n\n2. **通过控制栏按钮**:如果启用了控制栏按钮,点击播放器控制栏上的缩放图标(放大镜图标)可循环切换预设缩放比例。\n\n#### **注意事项**\n\n- 视频切换时,缩放比例会自动重置为当前设置的值。\n- 过高的缩放比例可能导致视频内容超出屏幕范围,建议根据实际屏幕尺寸适当调整。\n'}},o={};function r(e){var t=o[e];if(void 0!==t)return t.exports;var i=o[e]={id:e,exports:{}};return n[e](i,i.exports,r),i.exports}t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(n,o){if(1&o&&(n=this(n)),8&o)return n;if("object"==typeof n&&n){if(4&o&&n.__esModule)return n;if(16&o&&"function"==typeof n.then)return n}var i=Object.create(null);r.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var s=2&o&&n;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((e=>a[e]=()=>n[e]));return a.default=()=>n,r.d(i,a),i},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{"use strict";r.d(i,{component:()=>O});const e=coreApis.settings,t=coreApis.observer,n=coreApis.componentApis.define,o=coreApis.componentApis.video.videoControlBar,a=coreApis.componentApis.video.playerAgent,s=["75%","100%","110%","125%","150%","自定义"],c={"75%":.75,"100%":1,"110%":1.1,"125%":1.25,"150%":1.5,自定义:1},l=50,d=300,u=10,p=1.5,f=.5,y=5,m=.5,v="be-video-scale-toast";function h(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class b{constructor(){h(this,"currentScale",1)}get(){return this.currentScale}set(e){this.currentScale=e}}async function g(e){try{const t=await a.playerAgent.query.video.element();t&&(t.style.transform=`scale(${e})`,t.style.transformOrigin="center")}catch(e){console.error("视频缩放: 无法获取视频元素",e)}}function A(e,t,n){if("自定义"===e){const e=Math.max(l,Math.min(d,t));n.set(e/100)}else n.set(c[e]);return n.get()}function w(e,t){console.error(`${e}失败`,t)}var x=r(290);const B={defaultValue:100,displayName:"自定义缩放比 (%)",slider:{min:l,max:d,step:u},formatValue:e=>e,hidden:!0},S={defaultValue:p,displayName:"提示显示时间 (秒)",slider:{min:f,max:y,step:m},hidden:!1};let C=!1,j=null;const O=(0,n.defineComponentMetadata)({author:{name:"weedy233",link:"https://github.com/weedy233"},name:"videoScaling",displayName:"视频缩放",description:x,tags:[componentsTags.video],instantStyles:[{name:"videoScaling",style:()=>Promise.resolve().then(r.t.bind(r,485,23))}],options:{scalePreset:{defaultValue:"100%",displayName:"缩放比例",dropdownEnum:[...s]},customScale:B,showToast:{defaultValue:!0,displayName:"显示缩放提示"},toastDuration:S,showControlBarButton:{defaultValue:!0,displayName:"显示控制栏按钮"}},entry:async n=>{let{settings:r}=n;const i=new b,a=Date.now();let l=a;S.hidden=!r.options.showToast;const d=async e=>{try{await g(e);const t=Date.now(),n=t-a>=3e3,o=t-l>=3e3;r.options.showToast&&100!==e&&n&&o&&function(e,t){try{let n=document.querySelector(`.${v}`);n||(n=document.createElement("div"),n.className=v);const o=dq("video")||dq("bwp-video");if(o){n.parentNode!==document.body&&document.body.appendChild(n);const t=o.getBoundingClientRect();n.style.cssText=`\n position: fixed;\n top: ${t.top+t.height/2}px;\n left: ${t.left+t.width/2}px;\n transform: translate(-50%, -50%);\n background-color: rgba(0, 0, 0, 0.7);\n color: white;\n padding: 8px 16px;\n border-radius: 4px;\n z-index: 9999;\n font-size: 16px;\n pointer-events: none;\n `,n.textContent=`缩放: ${Math.round(100*e)}%`,n.timeoutId&&clearTimeout(n.timeoutId)}const r=1e3*t;n.timeoutId=setTimeout((()=>{n.remove()}),r)}catch(e){w("显示缩放提示",e)}}(e,r.options.toastDuration)}catch(e){w("应用缩放和显示提示",e)}},u=async()=>{try{const e=r.options.scalePreset;B.hidden="自定义"!==e;const t=A(e,r.options.customScale,i);await d(t)}catch(e){w("根据设置更新缩放",e)}};(0,e.addComponentListener)("videoScaling.scalePreset",u),(0,e.addComponentListener)("videoScaling.customScale",(async e=>{try{const t=r.options.scalePreset;if("自定义"===t){const n=A(t,e,i);await d(n)}}catch(e){w("处理自定义缩放变化",e)}})),(0,e.addComponentListener)("videoScaling.showToast",(e=>{S.hidden=!e}));try{await u()}catch(e){w("初始化视频缩放",e)}try{(0,t.videoChange)((async()=>{try{l=Date.now(),await u()}catch(e){w("重置视频缩放",e)}}))}catch(e){w("导入observer",e)}j=async e=>{try{e&&!C?(await(0,o.addControlBarButton)({name:"videoScaling",displayName:"视频缩放",icon:"mdi-magnify",order:100,action:async()=>{try{const e=i.get(),t=s.filter((e=>"自定义"!==e));let n=-1;for(let o=0;o{document.querySelectorAll(`.${v}`).forEach((e=>{const t=e;t.timeoutId&&clearTimeout(t.timeoutId),e.remove()}))},reload:async()=>{const t=(0,e.getComponentSettings)("videoScaling");t&&t.options.scalePreset&&t.options.scalePreset&&"string"==typeof t.options.scalePreset&&t.options.scalePreset in c&&await g(c[t.options.scalePreset])},commitHash:"a2570ee6e7f389e71a57d7ccdd11741115826b68",coreVersion:"2.10.7",description:(()=>{const e=r(825);return{...Object.fromEntries(e.keys().map((t=>[t.match(/index\.(.+)\.md$/)[1],e(t)]))),"zh-CN":()=>Promise.resolve().then(r.t.bind(r,290,17)).then((e=>e.default))}})()})})(),i=i.component})())); //# sourceMappingURL=https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/registry/dist/components/video/player/video-scaling.js.map