@x-viewer/ui 0.10.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.esm.js +7 -7
- package/package.json +2 -2
package/README.md
CHANGED
package/dist/index.esm.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @x-viewer/ui v0.10.
|
|
2
|
+
* @x-viewer/ui v0.10.1 build Fri Jan 23 2026
|
|
3
3
|
* undefined
|
|
4
|
-
* Copyright
|
|
4
|
+
* Copyright 2026 x-viewer
|
|
5
5
|
* @license UNLICENSED
|
|
6
6
|
*/
|
|
7
7
|
import { THREE } from '@x-viewer/core';
|
|
8
8
|
|
|
9
|
-
function styleInject(
|
|
9
|
+
function styleInject(_0x1dd3c6,_0xaccb50){if(_0xaccb50===void 0x0)_0xaccb50={};var _0x1b1ef1=_0xaccb50['insertAt'];if(!_0x1dd3c6||typeof document==='undefined')return;var _0x118001=document['head']||document['getElementsByTagName']('head')[0x0],_0x2af4d8=document['createElement']('style');_0x2af4d8['type']='text/css',_0x1b1ef1==='top'?_0x118001['firstChild']?_0x118001['insertBefore'](_0x2af4d8,_0x118001['firstChild']):_0x118001['appendChild'](_0x2af4d8):_0x118001['appendChild'](_0x2af4d8),_0x2af4d8['styleSheet']?_0x2af4d8['styleSheet']['cssText']=_0x1dd3c6:_0x2af4d8['appendChild'](document['createTextNode'](_0x1dd3c6));}
|
|
10
10
|
|
|
11
|
-
var css_248z$2 = ".base-panel{background-color:hsla(0,0%,100%,.9);border-radius:4px;box-shadow:1px 3px 10px 0 rgba(0,0,0,.4);color:#000;height:350px;max-height:90%;max-width:50%;min-height:40px;min-width:200px;overflow:hidden;position:absolute;resize:both;right:20px;top:30px;user-select:none;width:330px;z-index:2}.base-panel ::-webkit-scrollbar{width:6px}.base-panel ::-webkit-scrollbar-track{background:#e1e1e1;border-radius:1px}.base-panel ::-webkit-scrollbar-thumb{background:#888;border-radius:1px}.base-panel ::-webkit-scrollbar-thumb:hover{background:#555}.base-panel:hover{background-color:hsla(0,0%,100%,.95)}.base-panel input{background-color:#fff;border:1px solid #d9d9d9;box-shadow:0 2px 0 rgba(0,0,0,.02);color:rgba(0,0,0,.88);height:auto;padding:0 2px;transition:all .2s cubic-bezier(.645,.045,.355,1)}.base-panel input:hover{border-color:#4096ff;color:#4096ff}.base-panel input[type=button]{cursor:pointer;height:auto;padding:1px 10px;text-align:center;user-select:none;white-space:nowrap}.base-panel input[type=button]:hover{border-color:#4096ff;color:#4096ff;z-index:2}.base-panel input[type=text]{padding:0 2px}.base-panel input[type=color]{background-color:transparent;border:0;height:16px;overflow:hidden;padding:0;width:30px}.base-panel select{background-color:#fff;border:1px solid #d9d9d9;box-shadow:0 2px 0 rgba(0,0,0,.02);color:rgba(0,0,0,.88);cursor:pointer;height:auto;padding:1px 10px;text-align:center;transition:all .2s cubic-bezier(.645,.045,.355,1);user-select:none;white-space:nowrap}.base-panel select:hover{border-color:#4096ff;color:#4096ff;z-index:2}.base-panel ::-webkit-color-swatch{height:16px;margin-top:-5px;position:relative;width:40px}.base-panel .header{align-items:center;background-color:rgba(0,0,0,.133);border-bottom:1px solid #ccc;cursor:move;display:flex;font-size:16px;height:40px;padding-left:12px;width:100%}.base-panel .header .expander{cursor:pointer;
|
|
11
|
+
var css_248z$2 = ".base-panel{background-color:hsla(0,0%,100%,.9);border-radius:4px;box-shadow:1px 3px 10px 0 rgba(0,0,0,.4);color:#000;height:350px;max-height:90%;max-width:50%;min-height:40px;min-width:200px;overflow:hidden;position:absolute;resize:both;right:20px;top:30px;user-select:none;width:330px;z-index:2}.base-panel ::-webkit-scrollbar{width:6px}.base-panel ::-webkit-scrollbar-track{background:#e1e1e1;border-radius:1px}.base-panel ::-webkit-scrollbar-thumb{background:#888;border-radius:1px}.base-panel ::-webkit-scrollbar-thumb:hover{background:#555}.base-panel:hover{background-color:hsla(0,0%,100%,.95)}.base-panel input{background-color:#fff;border:1px solid #d9d9d9;box-shadow:0 2px 0 rgba(0,0,0,.02);color:rgba(0,0,0,.88);height:auto;padding:0 2px;transition:all .2s cubic-bezier(.645,.045,.355,1)}.base-panel input:hover{border-color:#4096ff;color:#4096ff}.base-panel input[type=button]{cursor:pointer;height:auto;padding:1px 10px;text-align:center;user-select:none;white-space:nowrap}.base-panel input[type=button]:hover{border-color:#4096ff;color:#4096ff;z-index:2}.base-panel input[type=text]{padding:0 2px}.base-panel input[type=color]{background-color:transparent;border:0;height:16px;overflow:hidden;padding:0;width:30px}.base-panel select{background-color:#fff;border:1px solid #d9d9d9;box-shadow:0 2px 0 rgba(0,0,0,.02);color:rgba(0,0,0,.88);cursor:pointer;height:auto;padding:1px 10px;text-align:center;transition:all .2s cubic-bezier(.645,.045,.355,1);user-select:none;white-space:nowrap}.base-panel select:hover{border-color:#4096ff;color:#4096ff;z-index:2}.base-panel ::-webkit-color-swatch{height:16px;margin-top:-5px;position:relative;width:40px}.base-panel .header{align-items:center;background-color:rgba(0,0,0,.133);border-bottom:1px solid #ccc;cursor:move;display:flex;font-size:16px;height:40px;padding-left:12px;width:100%}.base-panel .header .expander{align-items:center;box-sizing:content-box;cursor:pointer;display:inline-flex;justify-content:center;line-height:1;opacity:.7;padding:10px;position:absolute;right:36px;transform-origin:center center;-webkit-transform-origin:center center;transition:transform .05s ease;-moz-transition:transform .05s ease;-webkit-transition:transform .05s ease}.base-panel .header .expander:hover{opacity:1}.base-panel .header .expander svg{display:block;height:16px;width:16px}.base-panel .header .expander-collapsed{transform:rotate(180deg);-webkit-transform:rotate(180deg)}.base-panel .header .close{cursor:pointer;opacity:.7;padding:10px;position:absolute;right:8px}.base-panel .header .close:hover{opacity:1}.base-panel .content{height:calc(100% - 40px);overflow-x:hidden;overflow-y:auto;padding:5px}.base-panel .content .color-input{border:1px solid gray;cursor:pointer;font-size:0;height:20px;width:20px}.base-panel .content .color-input:hover{border:1px solid blue}";
|
|
12
12
|
styleInject(css_248z$2);
|
|
13
13
|
|
|
14
14
|
var css_248z$1 = ".pop-panel{background:#fff;border-radius:4px;box-shadow:0 12px 48px 16px rgba(0,0,0,.03),0 9px 28px 0 rgba(0,0,0,.05),0 6px 16px -8px rgba(0,0,0,.08);color:#333;left:calc(90% - 160px);position:absolute;top:calc(70% - 100px);width:160px;z-index:99999999}.pop-panel .pop-panel-header{border-bottom:1px solid #efefef;color:#333;cursor:move;font-size:16px;font-weight:bolder;padding:16px 24px 8px;user-select:none}.pop-panel .pop-panel-body{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:16px 24px}.pop-panel .pop-panel-body .pop-panel-item{cursor:pointer;display:inline-block;font-size:16px;margin-right:16px}.pop-panel .pop-panel-body .pop-panel-item .x-viewer-iconfont{font-size:24px}.pop-panel .pop-panel-body .pop-panel-item:last-child{margin-right:0}.pop-panel .pop-panel-body .pop-panel-item.active,.pop-panel .pop-panel-body .pop-panel-item:hover{color:#2c7be5}.pop-panel .pop-panel-body .pop-panel-item.disable{color:#999;cursor:not-allowed}";
|
|
15
15
|
styleInject(css_248z$1);
|
|
16
16
|
|
|
17
|
-
class BasePanel{constructor(
|
|
17
|
+
class BasePanel{constructor(_0x484b17){this['mouseDownPositionX']=-0x1,this['mouseDownPositionY']=-0x1,this['originalPanelHeight']=-0x1,this['onHide']=()=>{var _0x4576fe;this['setVisible'](![]),(_0x4576fe=this['onClose'])===null||_0x4576fe===void 0x0?void 0x0:_0x4576fe['call'](this);},this['onPointerDown']=_0x1105a7=>{_0x1105a7['target']['classList']['contains']('draggable')&&_0x1105a7['button']===0x0&&(this['mouseDownPositionX']=_0x1105a7['x'],this['mouseDownPositionY']=_0x1105a7['y'],document['addEventListener']('pointermove',this['onPointerMove']),document['addEventListener']('pointerup',this['onPointerUp']));},this['onPointerMove']=_0x2a90ea=>{const _0x4cf8c2=this['root'],_0xd04a60=_0x2a90ea['x']-this['mouseDownPositionX'],_0x21d00b=_0x2a90ea['y']-this['mouseDownPositionY'],_0xeb154f=this['getPanelTransform']();let _0x5f5b8c=_0x4cf8c2['offsetLeft']+_0xeb154f['x']+_0xd04a60,_0x3eda04=_0x4cf8c2['offsetTop']+_0xeb154f['y']+_0x21d00b;const _0x3868f3=this['viewportContainer'];if(_0x3868f3){const _0x119b38=_0x3868f3['clientLeft']+_0x3868f3['clientWidth'],_0x134633=_0x3868f3['clientTop']+_0x3868f3['clientHeight'];_0x5f5b8c<0x0&&(_0x5f5b8c=0x0),_0x5f5b8c>0x0&&_0x5f5b8c+_0x4cf8c2['clientWidth']>_0x119b38&&(_0xd04a60>0x0&&(_0x5f5b8c=_0x4cf8c2['offsetLeft']+_0xeb154f['x'])),_0x3eda04<0x0&&(_0x3eda04=0x0),_0x3eda04>0x0&&_0x3eda04+_0x4cf8c2['clientHeight']>_0x134633&&(_0x21d00b>0x0&&(_0x3eda04=_0x4cf8c2['offsetTop']+_0xeb154f['y']));}_0x4cf8c2['style']['left']=_0x5f5b8c-_0xeb154f['x']+'px',_0x4cf8c2['style']['top']=_0x3eda04-_0xeb154f['y']+'px',this['mouseDownPositionX']=_0x2a90ea['x'],this['mouseDownPositionY']=_0x2a90ea['y'];},this['onPointerUp']=()=>{document['removeEventListener']('pointermove',this['onPointerMove']),document['removeEventListener']('pointerup',this['onPointerUp']);};const {container:_0x195467,title:_0x4cbeae,cssClass:_0x31bb61,onClose:_0x39faf7,viewportContainer:_0x327c8f}=_0x484b17;this['root']=document['createElement']('div'),this['root']['classList']['add']('base-panel');_0x31bb61&&this['root']['classList']['add'](_0x31bb61);this['header']=document['createElement']('div'),this['header']['classList']['add']('header','draggable');const _0x4aab3b=document['createElement']('span');_0x4aab3b['innerText']=_0x4cbeae,_0x4aab3b['classList']['add']('draggable'),this['closeBtn']=document['createElement']('span'),this['closeBtn']['classList']['add']('close'),this['closeBtn']['innerHTML']='✕',this['collapseBtn']=document['createElement']('span'),this['collapseBtn']['classList']['add']('expander'),this['collapseBtn']['innerHTML']='<svg\x20viewBox=\x220\x200\x2024\x2024\x22\x20aria-hidden=\x22true\x22><path\x20d=\x22M6\x2015l6-6\x206\x206\x22\x20fill=\x22none\x22\x20stroke=\x22currentColor\x22\x20stroke-width=\x222\x22/></svg>',this['header']['appendChild'](_0x4aab3b),this['header']['appendChild'](this['collapseBtn']),this['header']['appendChild'](this['closeBtn']),this['root']['appendChild'](this['header']),this['content']=document['createElement']('div'),this['content']['classList']['add']('content'),this['root']['appendChild'](this['content']),_0x195467['appendChild'](this['root']),this['header']['addEventListener']('pointerdown',this['onPointerDown']),this['collapseBtn']['addEventListener']('click',_0xe4b39e=>{_0xe4b39e['stopPropagation']();const _0x22270e=this['originalPanelHeight']>0x0;_0x22270e?(this['collapseBtn']['classList']['remove']('expander-collapsed'),this['root']['style']['height']=this['originalPanelHeight']+'px',this['originalPanelHeight']=-0x1):(this['collapseBtn']['classList']['add']('expander-collapsed'),this['originalPanelHeight']=this['root']['clientHeight'],this['root']['style']['height']='0px');}),this['closeBtn']['addEventListener']('click',this['onHide']),_0x39faf7&&(this['onClose']=_0x39faf7),_0x327c8f&&(this['viewportContainer']=_0x327c8f);}['setVisible'](_0xc48d63){this['root']['style']['display']=_0xc48d63?'':'none';}['isVisible'](){return this['root']['style']['display']!=='none';}['setTitle'](_0x1f911a){this['header']['querySelector']('span.draggable')['innerText']=_0x1f911a;}['setContent'](_0x25f1a6){this['content']['innerHTML']=_0x25f1a6;}['destroy'](){this['header']['removeEventListener']('pointerdown',this['onPointerDown']),this['closeBtn']['removeEventListener']('click',this['onHide']);}['getPanelTransform'](){const _0x3a0aea=window['getComputedStyle'](this['root']);let _0xb69624=0x0,_0x22969c=0x0;const _0x442d56=_0x3a0aea['transform'];if(_0x442d56&&_0x442d56['startsWith']('matrix')){const _0x6f09cd=_0x442d56['match'](/matrix\([^\d\-]*([\d\.\-]+),[^\d\-]*([\d\.\-]+),[^\d\-]*([\d\.\-]+),[^\d\-]*([\d\.\-]+),[^\d\-]*([\d\.\-]+),[^\d\-]*([\d\.\-]+)\)/);_0x6f09cd&&(_0xb69624=parseFloat(_0x6f09cd[0x5]),_0x22969c=parseFloat(_0x6f09cd[0x6]));}else {if(_0x442d56&&_0x442d56['startsWith']('translate')){const _0x31c2c4=_0x442d56['match'](/translate\(([\d\.\-]+)px,\s*([\d\.\-]+)px\)/);_0x31c2c4&&(_0xb69624=parseFloat(_0x31c2c4[0x1]),_0x22969c=parseFloat(_0x31c2c4[0x2]));}}return new THREE['Vector2'](_0xb69624,_0x22969c);}}
|
|
18
18
|
|
|
19
|
-
class PopPanel{constructor(
|
|
19
|
+
class PopPanel{constructor(_0x29f262,_0x532c84,_0x117dea=document['body']){this['container']=_0x117dea,this['isFollowing']=![],this['diffX']=0x0,this['diffY']=0x0,this['start']=_0x40f38e=>{this['isFollowing']=!![],this['diffX']=_0x40f38e['clientX']-this['element']['offsetLeft'],this['diffY']=_0x40f38e['clientY']-this['element']['offsetTop'];},this['stop']=()=>{this['isFollowing']=![];},this['follow']=_0xd85c6c=>{if(!this['isFollowing'])return;const _0x31042e=_0xd85c6c['clientX']-this['diffX'],_0x449fde=_0xd85c6c['clientY']-this['diffY'];this['element']['style']['left']=_0x31042e+'px',this['element']['style']['top']=_0x449fde+'px';},this['element']=document['createElement']('div'),this['element']['id']=_0x29f262,this['element']['classList']['add']('pop-panel');const _0x56c8d1=document['createElement']('div');_0x56c8d1['classList']['add']('pop-panel-header'),_0x56c8d1['append'](_0x532c84),this['element']['appendChild'](_0x56c8d1),this['header']=_0x56c8d1;const _0x42f7f2=document['createElement']('div');_0x42f7f2['classList']['add']('pop-panel-body'),this['element']['appendChild'](_0x42f7f2),this['body']=_0x42f7f2,_0x56c8d1['addEventListener']('mousedown',this['start']),_0x56c8d1['addEventListener']('mouseup',this['stop']),document['body']['addEventListener']('mousemove',this['follow']),this['container']['appendChild'](this['element']);}['destroy'](){document['body']['removeEventListener']('mousemove',this['follow']),this['element']['removeEventListener']('mousedown',this['start']),this['element']['removeEventListener']('mouseup',this['stop']),this['element']['remove']();}}
|
|
20
20
|
|
|
21
21
|
var css_248z = ".follow-tooltip{background:rgba(25,25,25,.3);border-radius:2px;color:hsla(0,0%,100%,.8);font-size:12px;left:-500px;padding:6px;position:absolute;z-index:99999999}";
|
|
22
22
|
styleInject(css_248z);
|
|
23
23
|
|
|
24
|
-
class Tooltip{constructor(
|
|
24
|
+
class Tooltip{constructor(_0x46b0c5,_0x472abe,_0x43eb91){this['follow']=_0x3042e8=>{this['node']['style']['left']=_0x3042e8['offsetX']+0xf+'px',this['node']['style']['top']=_0x3042e8['offsetY']-0x1e+'px';},this['show']=()=>this['node']['hasAttribute']('hidden')&&this['node']['removeAttribute']('hidden'),this['hide']=()=>!this['node']['hasAttribute']('hidden')&&this['node']['setAttribute']('hidden',''),this['destroy']=()=>{this['target']?this['target']['removeEventListener']('mousemove',this['follow']):document['removeEventListener']('mousemove',this['follow']),this['parentNode']['removeChild'](this['node']);},this['node']=document['createElement']('div'),this['node']['id']=_0x46b0c5,_0x472abe&&this['node']['append'](_0x472abe),this['childNode']=document['createElement']('div'),this['target']=_0x43eb91===null||_0x43eb91===void 0x0?void 0x0:_0x43eb91['target'],this['parentNode']=(_0x43eb91===null||_0x43eb91===void 0x0?void 0x0:_0x43eb91['parentNode'])||document['body'],(_0x43eb91===null||_0x43eb91===void 0x0?void 0x0:_0x43eb91['followPointer'])&&(this['node']['classList']['add']('follow-tooltip'),this['target']?this['target']['addEventListener']('mousemove',this['follow']):document['addEventListener']('mousemove',this['follow'])),this['parentNode']['appendChild'](this['node']),!(_0x43eb91===null||_0x43eb91===void 0x0?void 0x0:_0x43eb91['showOnCreate'])&&this['node']['setAttribute']('hidden','');}['setContent'](_0x28b558){this['node']['textContent']&&(this['node']['textContent']=null);for(let _0xf0b84f=0x0;_0xf0b84f<this['node']['children']['length'];++_0xf0b84f){const _0x436fb6=this['node']['children'][_0xf0b84f];this['node']['removeChild'](_0x436fb6);}this['node']['append'](_0x28b558),this['node']['appendChild'](this['childNode']);}['updateChildContent'](_0x4f1283){this['childNode']['textContent']&&(this['childNode']['textContent']=null);for(let _0x89d0b2=0x0;_0x89d0b2<this['node']['children']['length'];++_0x89d0b2){const _0x5a5cde=this['node']['children'][_0x89d0b2];this['node']['removeChild'](_0x5a5cde);}this['childNode']['append'](_0x4f1283);}}
|
|
25
25
|
|
|
26
26
|
export { BasePanel, PopPanel, Tooltip };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@x-viewer/ui",
|
|
3
|
-
"version": "0.10.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.10.1",
|
|
4
|
+
"description": "UI component package providing reusable interface elements for x-viewer applications. Includes base panels, popup panels, tooltips, and internationalization support.",
|
|
5
5
|
"author": "x-viewer",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"keywords": [
|