UNPKG

diginext-pixi

Version:
1 lines 5.26 kB
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var o=Object.getOwnPropertyDescriptor(t,i);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,o)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&__createBinding(t,e,i);return __setModuleDefault(t,e),t},__rest=this&&this.__rest||function(e,t){var i={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(i[r[o]]=e[r[o]])}return i},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.BasicApp=void 0;const react_1=__importStar(require("react")),pixi_js_1=__importStar(require("pixi.js")),Event_1=__importDefault(require("../data/Event")),object_1=require("diginext-utils/dist/object");require("../plugins/ResizeObserver");const math_1=require("diginext-utils/dist/math"),BasicApp=e=>{var{maxDevicePixelRatio:t=2,backgroundAlpha:i=1,resize:r=!0}=e,o=__rest(e,["maxDevicePixelRatio","backgroundAlpha","resize"]);if(!o.listener)return console.log("no listener render nothing !"),react_1.default.createElement(react_1.default.Fragment,null);o.listener&&o.listener.useSubscription((e=>{n(e)}));const n=e=>{var t,i;const{type:r,data:o,bridge:n}=e;if((0,object_1.toBool)(n)){const{stage:e}=null===(t=window.uData)||void 0===t?void 0:t.app;if(!e)return;e.emit(r,o)}else if(r===Event_1.default.BRIDGE_FROM_LISTENER){const{stage:t}=null===(i=window.uData)||void 0===i?void 0:i.app;if(!t)return;const{type:r,data:o}=e.data;t.emit(r,{data:o})}},a=(0,react_1.useRef)(null);return(0,react_1.useEffect)((()=>((()=>{var e,n;if("undefined"==typeof window)return;if(!a.current)return;const l=t||2,u=(0,math_1.clamp)(.75*window.devicePixelRatio||1,1,l),d=Object.assign({},o),{listener:s={}}=d,c=(__rest(d,["listener"]),new pixi_js_1.Application({resolution:u,backgroundAlpha:i,autoDensity:!0,antialias:!0,autoStart:!0}));window.uData=window.uData||{},window.uData=Object.assign(Object.assign({},window.uData),{app:c}),a.current&&a.current.appendChild(c.view);const{stage:_,renderer:v}=c;let f=0,p=0;function h(e,t,i=!1){var r,o,n,a,l,u;const d=null===(r=window.uData)||void 0===r?void 0:r.app;if(!d)return void(null===(n=null===(o=window.uData)||void 0===o?void 0:o.resizeObserver)||void 0===n||n.disconnect());const{stage:s,renderer:c}=null===(a=window.uData)||void 0===a?void 0:a.app;s&&c&&(e=(0,object_1.toInt)(Math.floor(e)),t=(0,object_1.toInt)(Math.floor(t)),e&&t&&(e!=f||t!=p||i)&&(f=e,p=t,null===(l=c.resize)||void 0===l||l.call(c,e,t),null===(u=d.render)||void 0===u||u.call(d),s.emit(Event_1.default.RESIZE,{data:{width:e,height:t}})))}h(null===(e=null==a?void 0:a.current)||void 0===e?void 0:e.offsetWidth,null===(n=null==a?void 0:a.current)||void 0===n?void 0:n.offsetHeight),r&&(window.uData.resizeObserver=new ResizeObserver((e=>{const t=e[0],{width:i,height:r}=(null==t?void 0:t.contentRect)||{};h(i,r)})),window.uData.resizeObserver.observe(null==a?void 0:a.current)),_.on(Event_1.default.HANDLE_EVENT,(e=>{s&&s.emit(Object.assign({},e))})),_.on(Event_1.default.BRIDGE_TO_LISTENER,(e=>{const{data:t}=e;s&&s.emit(Object.assign({},t))})),s.emit({type:Event_1.default.LOADED_BASIC_COMP}),r&&setTimeout((()=>{var e,t;h(null===(e=null==a?void 0:a.current)||void 0===e?void 0:e.offsetWidth,null===(t=null==a?void 0:a.current)||void 0===t?void 0:t.offsetHeight,!0)}),32)})(),()=>{(()=>{var e,t,i,r,o,n,l,u;console.log("dispose!");const d=null===(e=window.uData)||void 0===e?void 0:e.app;if(!d)return;const s=d.stage;if(s&&(s.emit("dispose"),null===(i=null===(t=window.uData)||void 0===t?void 0:t.app)||void 0===i||i.destroy(),null===(n=null===(o=null===(r=window.uData)||void 0===r?void 0:r.resizeObserver)||void 0===o?void 0:o.disconnect)||void 0===n||n.call(o),(null===(l=null===pixi_js_1.default||void 0===pixi_js_1.default?void 0:pixi_js_1.default.utils)||void 0===l?void 0:l.TextureCache)&&Object.keys(null===(u=null===pixi_js_1.default||void 0===pixi_js_1.default?void 0:pixi_js_1.default.utils)||void 0===u?void 0:u.TextureCache).forEach((function(e){var t;null===(t=null===pixi_js_1.default||void 0===pixi_js_1.default?void 0:pixi_js_1.default.utils)||void 0===t||t.TextureCache[e].destroy(!0)})),a.current))for(;a.current.firstChild;)a.current.removeChild(a.current.firstChild)})()}))),react_1.default.createElement(react_1.default.Fragment,null,react_1.default.createElement("div",{ref:a,style:style.holder,className:"holder"}))};exports.BasicApp=BasicApp,exports.default=exports.BasicApp;const style={holder:{position:"absolute",width:"100%",height:"100%",top:"0px",left:"0px",overflow:"hidden"}};