@xtctwins/tctwins-dxf-next-viewer 0.0.4 → 0.0.5

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 CHANGED
@@ -1,5 +1,275 @@
1
- # Vue 3 + TypeScript + Vite
1
+ # xtd 二维文件查看器 VUE3
2
2
 
3
- This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
3
+ # 安装相关依赖
4
4
 
5
- Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
5
+ ## 网络请求 axios
6
+
7
+ <https://www.npmjs.com/package/axios>
8
+
9
+ ```ssh
10
+ npm i axios
11
+ ```
12
+
13
+ ## UI element-plus
14
+
15
+ <https://www.npmjs.com/package/element-plus>
16
+
17
+ ```ssh
18
+ npm i element-plus
19
+ ```
20
+
21
+ ## 事件总线 mitt
22
+
23
+ <https://www.npmjs.com/package/mitt>
24
+
25
+ ```ssh
26
+ npm i mitt
27
+ ```
28
+
29
+ ## 状态管理 pinia
30
+
31
+ <https://www.npmjs.com/package/pinia>
32
+
33
+ ```ssh
34
+ npm i pinia
35
+ ```
36
+
37
+ ## 3D three
38
+
39
+ <https://www.npmjs.com/package/three>
40
+
41
+ ```ssh
42
+ npm i three
43
+ ```
44
+
45
+ # 安装依赖
46
+
47
+ ```ssh
48
+ npm i @xtctwins/tctwins-dxf-next-viewer
49
+ ```
50
+
51
+ # 拷贝资源
52
+
53
+ ```
54
+ 拷贝文件夹@xtctwins/tctwins-dxf-next-viewer/dist/tctwins-dxf-viewer到项目public目录下,确保资源访问路径为:http://{访问域名}/tctwins-dxf-viewer/*
55
+ ```
56
+
57
+ # Example
58
+
59
+ ```vue
60
+ <template>
61
+ <TctwinsDxf
62
+ is-pc
63
+ reset
64
+ measure
65
+ comment
66
+ hidden
67
+ layer
68
+ anno
69
+ screenshot
70
+ :dxf-file-url="fileUrl"
71
+ :fonts="fonts"
72
+ :panel-right-keys="['anno']"
73
+ :panel-right-width="300"
74
+ @event-handle="eventHandle">
75
+ <template #leftpanel>
76
+ <!-- 左侧面板内容示例 -->
77
+ <!-- <transition name="dxf-panel-transition">
78
+ <PLayerTool v-if="props.isPc && toolbar.isToolActiveByKey('layer')" />
79
+ </transition> -->
80
+ </template>
81
+ <template #rightpanel>
82
+ <!-- 右侧面板内容示例 -->
83
+ <!-- <transition name="dxf-panel-transition">
84
+ <PCommentTool v-if="props.isPc && toolbar.isToolActiveByKey('comment')" />
85
+ </transition>
86
+ <transition name="dxf-panel-transition">
87
+ <PAnnoTool v-if="props.isPc && toolbar.isToolActiveByKey('anno')" />
88
+ </transition> -->
89
+ </template>
90
+ <template #toolpanel>
91
+ <!-- 工具面板内容示例 -->
92
+ <!-- <PToolbar
93
+ v-if="props.isPc"
94
+ :toolbars="toolbar.visibleTools" /> -->
95
+ </template>
96
+ </TctwinsDxf>
97
+ </template>
98
+ <script setup>
99
+ import { ref } from "vue";
100
+ import { TctwinsDxf } from "@xtctwins/tctwins-dxf-next-viewer";
101
+ const fileUrl = ref("https://xxxxxx/demo.xtd");
102
+ // 字体链接列表,默认字体可取tctwins-dxf-viewer/fonts下的文字路径
103
+ const fonts = ref([]);
104
+ const eventHandle = (event) => {
105
+ console.log("通知事件", event);
106
+ };
107
+ </script>
108
+ ```
109
+
110
+ # Components
111
+
112
+ ## 组件 TctwinsDxf
113
+
114
+ 查看器组件
115
+
116
+ ### Attributes
117
+
118
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
119
+ | --------------- | -------------------------------- | ----------- | ------ | --------- |
120
+ | isPc | 是否为 PC 端 | boolean | - | true |
121
+ | fonts | 字体链接列表 | string[] | - | - |
122
+ | dxfFileUrl | xtd 文件 url | string | - | - |
123
+ | dxfBuffer | xtd 文件 buffer | ArrayBuffer | - | - |
124
+ | reset | 开启重置功能 | boolean | - | false |
125
+ | measure | 开启测量功能 | boolean | - | false |
126
+ | comment | 开启批注功能 | boolean | - | false |
127
+ | anno | 开启标注功能 | boolean | - | false |
128
+ | layer | 开启图层功能 | boolean | - | false |
129
+ | hidden | 隐藏批注、测量、标注等信息 | boolean | - | false |
130
+ | screenshot | 开启截图功能 | boolean | - | false |
131
+ | panelLeftWidth | 右侧面板宽度 | number | - | 240 |
132
+ | panelRightWidth | 右侧面板宽度 | number | - | 240 |
133
+ | panelLeftKeys | 左侧面板显示内容 | string[] | - | ['layer'] |
134
+ | panelRightKeys | 右侧面板显示内容 | string[] | - | [] |
135
+ | panelExtraKeys | 操作其他功能时,不需要关闭的面板 | number | - | ['layer'] |
136
+
137
+ ### Events
138
+
139
+ | 事件名 | 说明 | 回调参数 |
140
+ | ----------- | -------- | ------------------------------------------------------------- |
141
+ | eventHandle | 事件总线 | event: { eventTarget: string;eventName: string;content: any;} |
142
+
143
+ ### Slots
144
+
145
+ | 方法名 | 说明 |
146
+ | ---------- | ------------ |
147
+ | leftpanel | 左侧面板内容 |
148
+ | toolpanel | 工具面板内容 |
149
+ | rightpanel | 右侧面板内容 |
150
+
151
+ ## 组件 TctwinsDxfPanel
152
+
153
+ 自定义左侧或右侧面板组件时使用,可添加到 TctwinsDxf 组件的 leftpanel 或 rightpanel 插槽中使用
154
+
155
+ ### Attributes
156
+
157
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
158
+ | ----- | ---- | ------ | ------ | ------ |
159
+ | title | 标题 | string | - | - |
160
+
161
+ ### Events
162
+
163
+ | 事件名 | 说明 | 回调参数 |
164
+ | ---------- | -------- | -------- |
165
+ | closePanel | 关闭面板 | - |
166
+
167
+ ### Slots
168
+
169
+ | 方法名 | 说明 |
170
+ | ------- | ---- |
171
+ | default | - |
172
+
173
+ ## 组件 TctwinsDxfDialog
174
+
175
+ 自定义左侧或右侧可拖动面板组件时使用,可添加到 TctwinsDxf 组件的 leftpanel 或 rightpanel 插槽中使用
176
+
177
+ ### Attributes
178
+
179
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
180
+ | ----- | -------- | ---- | ------ | ------ |
181
+ | title | 标题名称 | - | - | 标题 |
182
+ | width | 宽度 | - | - | 240 |
183
+
184
+ ### Events
185
+
186
+ | 事件名 | 说明 | 回调参数 |
187
+ | ---------- | -------- | -------- |
188
+ | closePanel | 关闭面板 | - |
189
+
190
+ ### Slots
191
+
192
+ | 方法名 | 说明 |
193
+ | ------- | ---- |
194
+ | default | - |
195
+
196
+ ## 组件 TctwinsDxfTool
197
+
198
+ 自定义工具面板组件时使用,可添加到 TctwinsDxf 组件的 toolpanel 插槽中使用
199
+
200
+ ### Attributes
201
+
202
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
203
+ | ----------- | -------------------------------- | ------- | ------ | ------ |
204
+ | hideAllTool | 工具显示时,是否隐藏其他全部按钮 | boolean | - | false |
205
+
206
+ ### Slots
207
+
208
+ | 方法名 | 说明 |
209
+ | ------- | ---- |
210
+ | default | - |
211
+
212
+ # 工具方法
213
+
214
+ ## 方法: setToolStatusByKey(key: string, isOpen?: boolean)
215
+
216
+ 激活或关闭工具
217
+
218
+ ### 参数
219
+
220
+ | 参数 | 说明 |
221
+ | ------ | -------- |
222
+ | key | 工具 key |
223
+ | isOpen | 是否激活 |
224
+
225
+ ### 示例
226
+
227
+ ```ts
228
+ // 激活重置工具
229
+ setToolStatusByKey("reset", true);
230
+ ```
231
+
232
+ ## 方法: isToolStatusByKey(key: string)
233
+
234
+ 判断工具是否激活
235
+
236
+ ### 参数
237
+
238
+ | 参数 | 说明 |
239
+ | ---- | -------- |
240
+ | key | 工具 key |
241
+
242
+ ### 示例
243
+
244
+ ```ts
245
+ if (isToolStatusByKey("reset")) {
246
+ console.log("重置工具已激活");
247
+ }
248
+ ```
249
+
250
+ ## 方法: closeAllTool()
251
+
252
+ 关闭所有工具
253
+
254
+ ### 示例
255
+
256
+ ```ts
257
+ closeAllTool();
258
+ ```
259
+
260
+ ## 方法: toggleAllTool(showState: boolean)
261
+
262
+ 显示或隐藏所有工具
263
+
264
+ ### 参数
265
+
266
+ | 参数 | 说明 |
267
+ | --------- | -------------- |
268
+ | showState | 显示或隐藏工具 |
269
+
270
+ ### 示例
271
+
272
+ ```ts
273
+ // 显示所有工具
274
+ toggleAllTool(true);
275
+ ```
@@ -122,7 +122,7 @@ default: number;
122
122
  };
123
123
  panelLeftKeys: {
124
124
  type: ArrayConstructor;
125
- default: () => never[];
125
+ default: () => string[];
126
126
  };
127
127
  panelRightKeys: {
128
128
  type: ArrayConstructor;
@@ -130,7 +130,7 @@ default: () => never[];
130
130
  };
131
131
  panelExtraKeys: {
132
132
  type: ArrayConstructor;
133
- default: () => never[];
133
+ default: () => string[];
134
134
  };
135
135
  }>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
136
136
  eventHandle: (...args: any[]) => void;
@@ -190,7 +190,7 @@ default: number;
190
190
  };
191
191
  panelLeftKeys: {
192
192
  type: ArrayConstructor;
193
- default: () => never[];
193
+ default: () => string[];
194
194
  };
195
195
  panelRightKeys: {
196
196
  type: ArrayConstructor;
@@ -198,7 +198,7 @@ default: () => never[];
198
198
  };
199
199
  panelExtraKeys: {
200
200
  type: ArrayConstructor;
201
- default: () => never[];
201
+ default: () => string[];
202
202
  };
203
203
  }>> & Readonly<{
204
204
  onEventHandle?: ((...args: any[]) => any) | undefined;
@@ -213,7 +213,7 @@ const In = z7("dxfToolbar", {
213
213
  * @param panelExtraKeys
214
214
  */
215
215
  initPanelConfig(n, e, t) {
216
- this.panelLeftKeys = [.../* @__PURE__ */ new Set([...n, "layer"])], this.panelRightKeys = [.../* @__PURE__ */ new Set([...e])], this.panelExtraKeys = [.../* @__PURE__ */ new Set([...t, "layer"])];
216
+ this.panelLeftKeys = [.../* @__PURE__ */ new Set([...n])], this.panelRightKeys = [.../* @__PURE__ */ new Set([...e])], this.panelExtraKeys = [.../* @__PURE__ */ new Set([...t])];
217
217
  },
218
218
  toggleAllTool(n) {
219
219
  const e = this.isPc ? this.ptools : this.mtools;
@@ -45724,7 +45724,7 @@ const GN = { class: "tctwins_dxf_container" }, VN = { class: "dxf_panel_containe
45724
45724
  // 需要监听左侧面板关闭的工具key
45725
45725
  panelLeftKeys: {
45726
45726
  type: Array,
45727
- default: () => []
45727
+ default: () => ["layer"]
45728
45728
  },
45729
45729
  // 需要监听右侧面板关闭的工具key
45730
45730
  panelRightKeys: {
@@ -45734,7 +45734,7 @@ const GN = { class: "tctwins_dxf_container" }, VN = { class: "dxf_panel_containe
45734
45734
  // 切换工具时,不需要关闭的面板工具key
45735
45735
  panelExtraKeys: {
45736
45736
  type: Array,
45737
- default: () => []
45737
+ default: () => ["layer"]
45738
45738
  }
45739
45739
  },
45740
45740
  emits: ["eventHandle"],
@@ -1,4 +1,4 @@
1
- (function(J,fn){typeof exports=="object"&&typeof module<"u"?fn(exports,require("pinia"),require("vue"),require("mitt"),require("axios")):typeof define=="function"&&define.amd?define(["exports","pinia","vue","mitt","axios"],fn):(J=typeof globalThis<"u"?globalThis:J||self,fn(J["tctwins-dxf-next-viewer"]={},J.Pinia,J.Vue,J.Mitt,J.Axios))})(this,function(J,fn,h,n9,r9){"use strict";var ED=Object.defineProperty;var TD=(J,fn,h)=>fn in J?ED(J,fn,{enumerable:!0,configurable:!0,writable:!0,value:h}):J[fn]=h;var t9=(J,fn,h)=>TD(J,typeof fn!="symbol"?fn+"":fn,h);const an=fn.defineStore("dxfToolbar",{state:()=>({isPc:!0,ptools:{top:[],left:[{id:4,key:"layer",name:"图层",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/layer.svg",imgActive:"/tctwins-dxf-viewer/action-bar/layer-active.svg",isActive:!1}],right:[],bottom:[{id:0,key:"reset",name:"复位",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/reset.svg",imgActive:"/tctwins-dxf-viewer/action-bar/reset.svg",isActive:!1},{id:1,key:"measure",name:"测量",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/measure.svg",imgActive:"/tctwins-dxf-viewer/action-bar/measure-active.svg",isActive:!1},{id:2,key:"comment",name:"批注",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/comment.svg",imgActive:"/tctwins-dxf-viewer/action-bar/comment-active.svg",isActive:!1},{id:3,key:"anno",name:"标注",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/annotation.svg",imgActive:"/tctwins-dxf-viewer/action-bar/annotation-active.svg",isActive:!1},{id:5,key:"hidden",name:"隐藏",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/hide.svg",imgActive:"/tctwins-dxf-viewer/action-bar/show.svg",isActive:!1},{id:6,key:"screenshot",name:"截图",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/screenshot.svg",imgActive:"/tctwins-dxf-viewer/action-bar/screenshot-active.svg",isActive:!1}]},mtools:{top:[],left:[],right:[],bottom:[{id:0,key:"reset",name:"复位",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/reset.svg",imgActive:"/tctwins-dxf-viewer/action-bar/reset.svg",isActive:!1},{id:1,key:"measure",name:"测量",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/measure.svg",imgActive:"/tctwins-dxf-viewer/action-bar/measure-active.svg",isActive:!1},{id:2,key:"comment",name:"批注",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/comment.svg",imgActive:"/tctwins-dxf-viewer/action-bar/comment-active.svg",isActive:!1},{id:3,key:"anno",name:"标注",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/annotation.svg",imgActive:"/tctwins-dxf-viewer/action-bar/annotation-active.svg",isActive:!1},{id:4,key:"layer",name:"图层",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/layer.svg",imgActive:"/tctwins-dxf-viewer/action-bar/layer-active.svg",isActive:!1},{id:5,key:"hidden",name:"隐藏",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/hide.svg",imgActive:"/tctwins-dxf-viewer/action-bar/show.svg",isActive:!1},{id:6,key:"screenshot",name:"截图",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/screenshot.svg",imgActive:"/tctwins-dxf-viewer/action-bar/screenshot-active.svg",isActive:!1}]},visibleToolKeys:[],panelLeftKeys:[],panelRightKeys:[],panelExtraKeys:[]}),actions:{setIsPc(n){this.isPc=n},setToolActiveStatus(n,e){const t=this.isPc?this.ptools:this.mtools;let r;const i=Object.keys(t);for(const s of i)if(r=t[s].find(a=>a.key===n),r){r.isActive=e??!r.isActive;break}},closeAllTool(){const n=new Set(this.panelExtraKeys),e=this.isPc?this.ptools:this.mtools;if(!e)return;Object.keys(e).forEach(r=>{e[r].forEach(i=>{n.has(i.key)||(i.isActive=!1)})})},enableToolByKeys(n){this.visibleToolKeys=n},initPanelConfig(n,e,t){this.panelLeftKeys=[...new Set([...n,"layer"])],this.panelRightKeys=[...new Set([...e])],this.panelExtraKeys=[...new Set([...t,"layer"])]},toggleAllTool(n){const e=this.isPc?this.ptools:this.mtools;if(!e)return;Object.keys(e).forEach(r=>{e[r].forEach(i=>{i.hasActiveState=n})})}},getters:{visibleTools:n=>{const e=new Set(n.visibleToolKeys),t=n.isPc?n.ptools:n.mtools;return{top:t.top.filter(r=>e.has(r.key)&&r.hasActiveState),bottom:t.bottom.filter(r=>e.has(r.key)&&r.hasActiveState),left:t.left.filter(r=>e.has(r.key)&&r.hasActiveState),right:t.right.filter(r=>e.has(r.key)&&r.hasActiveState)}},isToolActiveByKey:n=>e=>{const t=n.isPc?n.ptools:n.mtools;let r;const i=Object.keys(t);for(const s of i)if(r=t[s].find(a=>a.key===e),r)break;return(r==null?void 0:r.isActive)??!1},showLeftPanel:n=>{if(n.panelLeftKeys.length===0)return!1;const e=n.isPc?n.ptools:n.mtools,t=Object.keys(e);for(const r of t)if(e[r].find(s=>n.panelLeftKeys.includes(s.key)&&s.isActive))return!0;return!1},showRightPanel:n=>{if(n.panelRightKeys.length===0)return!1;const e=n.isPc?n.ptools:n.mtools,t=Object.keys(e);for(const r of t)if(e[r].find(s=>n.panelRightKeys.includes(s.key)&&s.isActive))return!0;return!1}}});class En{static setToolActiveByKey(e,t=!an().isToolActiveByKey(e)){switch(e){case"reset":window.dxfViewer.resetView();break;case"measure":window.dxfViewer.setActiveMeasureTool(t),t&&window.dxfViewer.measureTool.setCurrentTool(this.viewerState.measureType);break;case"comment":window.dxfViewer.setActiveCommentTool(t);break;case"anno":window.dxfViewer.setActiveAnnotationTool(t);break;case"layer":break;case"hidden":window.dxfViewer.toolManager.visibility=!t;break;case"screenshot":break;case"fullscreen":t?document.documentElement.requestFullscreen():document.exitFullscreen&&document.exitFullscreen();break}}static setViewerState(e,t){e in this.viewerState&&(this.viewerState[e]=t)}static closeAll(){window.dxfViewer.closeAll()}static destroyViewer(){window.dxfViewer=null,console.log("旧模型已销毁")}}t9(En,"viewerState",{measureType:"distance",commentType:"draw"});const i9={key:0,class:"tctwins-dxf-message-panel"},s9={class:"tctwins-dxf-message-box"},a9={class:"tctwins-dxf-message-container__icon"},o9=["src"],l9=h.defineComponent({__name:"TctwinsDxfMessage",setup(n,{expose:e}){const t=h.ref(!1),r=h.ref(),i=h.ref({success:{backgroundColor:"rgb(240,249,235)",borderColor:"rgb(225,243,216)",color:"rgb(103,194,58)"},warn:{backgroundColor:"rgb(253, 246, 236)",borderColor:"rgb(250, 236, 216)",color:"rgb(230, 162, 60)"},info:{backgroundColor:"rgb(244, 244, 245)",borderColor:"rgb(233, 233, 235)",color:"rgb(144, 147, 153)"},error:{backgroundColor:"rgb(254,240,240)",borderColor:"rgb(253,226,226)",color:"rgb(245,108,108)"}}),s=h.ref({icon:"success",backgroundColor:"rgb(140,249,235)",borderColor:"rgb(225,243,216)",color:"rgb(103,194,58)",message:"说明"}),a=d=>{s.value={icon:d.status,message:d.message,backgroundColor:i.value[d.status].backgroundColor,borderColor:i.value[d.status].borderColor,color:i.value[d.status].color},t.value=!0,d.duration&&(r.value&&clearTimeout(r.value),r.value=setTimeout(()=>{p()},d.duration))},o=(d,f)=>{a({status:"success",message:d,duration:f})},c=(d,f)=>{a({status:"warn",message:d,duration:f})},l=(d,f)=>{a({status:"info",message:d,duration:f})},u=(d,f)=>{a({status:"error",message:d,duration:f})},p=()=>{t.value=!1};return e({open:a,success:o,warn:c,info:l,error:u,close:p}),(d,f)=>t.value?(h.openBlock(),h.createElementBlock("div",i9,[h.createElementVNode("div",s9,[h.createElementVNode("div",{class:"tctwins-dxf-message-container",style:h.normalizeStyle({backgroundColor:s.value.backgroundColor,border:`1px solid ${s.value.borderColor}`})},[h.createElementVNode("div",a9,[h.createElementVNode("img",{class:"img",src:`/tctwins-dxf-viewer/message/${s.value.icon}.svg`},null,8,o9)]),h.createElementVNode("div",{class:"tctwins-dxf-message-container__message",style:h.normalizeStyle({color:s.value.color})},h.toDisplayString(s.value.message),5),h.createElementVNode("div",{class:"tctwins-dxf-message-container__close",onClick:p},f[0]||(f[0]=[h.createElementVNode("img",{class:"img",src:"/tctwins-dxf-viewer/message/close.svg"},null,-1)]))],4)])])):h.createCommentVNode("",!0)}}),on=(n,e)=>{const t=n.__vccOpts||n;for(const[r,i]of e)t[r]=i;return t},Xh=on(l9,[["__scopeId","data-v-da28a592"]]),c9={class:"tctwins_dxf_tool_container"},h9={class:"tctwins_dxf_tool_group"},d1=on(h.defineComponent({__name:"TctwinsDxfTool",props:{hideAllTool:{type:Boolean,default:!1}},setup(n){const e=n,t=an();return h.onMounted(()=>{e.hideAllTool&&t.toggleAllTool(!1)}),h.onUnmounted(()=>{e.hideAllTool&&t.toggleAllTool(!0)}),(r,i)=>(h.openBlock(),h.createElementBlock("div",c9,[h.createElementVNode("div",h9,[h.renderSlot(r.$slots,"default",{},void 0,!0)])]))}}),[["__scopeId","data-v-d221f989"]]),u9={class:"tctwins_dxf_dialog_container"},d9={class:"tctwins_dxf_dialog_content"},p9={class:"dialog-header__title"},f9={class:"title"},m9={class:"dialog-content"},Nl=on(h.defineComponent({__name:"TctwinsDxfDialog",props:{title:{type:String,default:"标题"},width:{type:Number,default:240}},emits:["closePanel"],setup(n,{emit:e}){const t=n,r=e,i=h.ref(0),s=h.ref(0),a=h.ref(0),o=h.ref(0),c=h.ref(0),l=h.ref(0),u=h.ref(null),p=v=>{var y;a.value=v.clientX,o.value=v.clientY,c.value=i.value,l.value=s.value,u.value=((y=document.querySelector(".tctwins_dxf_dialog_content"))==null?void 0:y.getBoundingClientRect())||null,document.addEventListener("mousemove",d),document.addEventListener("mouseup",f)},d=v=>{var E;if(!u.value)return;const y=v.clientX-a.value,g=v.clientY-o.value,b=c.value-y,_=l.value-g;let x=((E=document.querySelector(".tctwins_dxf_draggable_dialog"))==null?void 0:E.getBoundingClientRect())||null;const S=u.value.width-((x==null?void 0:x.width)||0),w=u.value.height-((x==null?void 0:x.height)||0);i.value=Math.max(0,Math.min(S,b)),s.value=Math.max(0,Math.min(w,_))},f=()=>{document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",f)};h.onMounted(()=>{var y;const v=document.querySelector(".tctwins_dxf_dialog_content");if(v){i.value=0;let g=((y=document.querySelector(".tctwins_dxf_draggable_dialog"))==null?void 0:y.getBoundingClientRect())||null;s.value=(v.clientHeight-((g==null?void 0:g.height)||0))/2}});const m=()=>{r("closePanel")};return(v,y)=>(h.openBlock(),h.createElementBlock("div",u9,[h.createElementVNode("div",d9,[h.createElementVNode("div",{class:"tctwins_dxf_draggable_dialog",style:h.normalizeStyle({width:`${t.width}px`,right:`${i.value}px`,bottom:`${s.value}px`}),onMousedown:p},[h.createElementVNode("div",{class:"dialog-header",onMousedown:p},[h.renderSlot(v.$slots,"title",{},()=>[h.createElementVNode("div",p9,[h.createElementVNode("div",f9,h.toDisplayString(t.title),1),h.createElementVNode("div",{class:"close",onClick:m},y[0]||(y[0]=[h.createElementVNode("img",{class:"close-img",src:"/tctwins-dxf-viewer/utils/close-white.svg"},null,-1)]))])],!0)],32),h.createElementVNode("div",m9,[h.renderSlot(v.$slots,"default",{},()=>[y[1]||(y[1]=h.createElementVNode("div",null,"测试正文",-1))],!0)])],36)])]))}}),[["__scopeId","data-v-4c8bde48"]]),g9={class:"tctwins_dxf_panel_container"},v9={class:"tctwins_dxf_panel_header"},y9={class:"dxf-panel-title"},_9={class:"title"},x9={class:"tctwins_dxf_panel_body"},p1=on(h.defineComponent({__name:"TctwinsDxfPanel",props:{title:{type:String,default:"标题"}},emits:["closePanel"],setup(n,{emit:e}){const t=n,r=e,i=()=>{r("closePanel")};return(s,a)=>(h.openBlock(),h.createElementBlock("div",g9,[h.createElementVNode("div",v9,[h.renderSlot(s.$slots,"title",{},()=>[h.createElementVNode("div",y9,[h.createElementVNode("div",_9,h.toDisplayString(t.title),1),h.createElementVNode("div",{class:"close",onClick:i},a[0]||(a[0]=[h.createElementVNode("img",{class:"close-img",src:"/tctwins-dxf-viewer/utils/close-white.svg"},null,-1)]))])],!0)]),h.createElementVNode("div",x9,[h.renderSlot(s.$slots,"default",{},void 0,!0)])]))}}),[["__scopeId","data-v-0a7ea02d"]]),b9={class:"p-dxf-anno-tool"},S9=on(h.defineComponent({__name:"PAnnoTool",setup(n){const e=an(),t=()=>{e.setToolActiveStatus("anno",!1)};return(r,i)=>{const s=p1;return h.openBlock(),h.createElementBlock("div",b9,[h.createVNode(s,{title:"标注",onClosePanel:t})])}}}),[["__scopeId","data-v-193b64ce"]]),w9={class:"p-dxf-comment-tool"},E9=on(h.defineComponent({__name:"PCommentTool",setup(n){const e=an(),t=()=>{e.setToolActiveStatus("comment",!1)};return(r,i)=>{const s=p1;return h.openBlock(),h.createElementBlock("div",w9,[h.createVNode(s,{title:"批注",onClosePanel:t})])}}}),[["__scopeId","data-v-c614982a"]]),T9=Symbol(),Dl="el",M9="is-",_0=(n,e,t,r,i)=>{let s=`${n}-${e}`;return t&&(s+=`-${t}`),r&&(s+=`__${r}`),i&&(s+=`--${i}`),s},A9=Symbol("namespaceContextKey"),Il=n=>{const e=h.getCurrentInstance()?h.inject(A9,h.ref(Dl)):h.ref(Dl);return h.computed(()=>h.unref(e)||Dl)},Je=(n,e)=>{const t=Il();return{namespace:t,b:(v="")=>_0(t.value,n,v,"",""),e:v=>v?_0(t.value,n,"",v,""):"",m:v=>v?_0(t.value,n,"","",v):"",be:(v,y)=>v&&y?_0(t.value,n,v,y,""):"",em:(v,y)=>v&&y?_0(t.value,n,"",v,y):"",bm:(v,y)=>v&&y?_0(t.value,n,v,"",y):"",bem:(v,y,g)=>v&&y&&g?_0(t.value,n,v,y,g):"",is:(v,...y)=>{const g=y.length>=1?y[0]:!0;return v&&g?`${M9}${v}`:""},cssVar:v=>{const y={};for(const g in v)v[g]&&(y[`--${t.value}-${g}`]=v[g]);return y},cssVarName:v=>`--${t.value}-${v}`,cssVarBlock:v=>{const y={};for(const g in v)v[g]&&(y[`--${t.value}-${n}-${g}`]=v[g]);return y},cssVarBlockName:v=>`--${t.value}-${n}-${v}`}};/**
1
+ (function(J,fn){typeof exports=="object"&&typeof module<"u"?fn(exports,require("pinia"),require("vue"),require("mitt"),require("axios")):typeof define=="function"&&define.amd?define(["exports","pinia","vue","mitt","axios"],fn):(J=typeof globalThis<"u"?globalThis:J||self,fn(J["tctwins-dxf-next-viewer"]={},J.Pinia,J.Vue,J.Mitt,J.Axios))})(this,function(J,fn,h,n9,r9){"use strict";var ED=Object.defineProperty;var TD=(J,fn,h)=>fn in J?ED(J,fn,{enumerable:!0,configurable:!0,writable:!0,value:h}):J[fn]=h;var t9=(J,fn,h)=>TD(J,typeof fn!="symbol"?fn+"":fn,h);const an=fn.defineStore("dxfToolbar",{state:()=>({isPc:!0,ptools:{top:[],left:[{id:4,key:"layer",name:"图层",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/layer.svg",imgActive:"/tctwins-dxf-viewer/action-bar/layer-active.svg",isActive:!1}],right:[],bottom:[{id:0,key:"reset",name:"复位",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/reset.svg",imgActive:"/tctwins-dxf-viewer/action-bar/reset.svg",isActive:!1},{id:1,key:"measure",name:"测量",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/measure.svg",imgActive:"/tctwins-dxf-viewer/action-bar/measure-active.svg",isActive:!1},{id:2,key:"comment",name:"批注",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/comment.svg",imgActive:"/tctwins-dxf-viewer/action-bar/comment-active.svg",isActive:!1},{id:3,key:"anno",name:"标注",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/annotation.svg",imgActive:"/tctwins-dxf-viewer/action-bar/annotation-active.svg",isActive:!1},{id:5,key:"hidden",name:"隐藏",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/hide.svg",imgActive:"/tctwins-dxf-viewer/action-bar/show.svg",isActive:!1},{id:6,key:"screenshot",name:"截图",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/screenshot.svg",imgActive:"/tctwins-dxf-viewer/action-bar/screenshot-active.svg",isActive:!1}]},mtools:{top:[],left:[],right:[],bottom:[{id:0,key:"reset",name:"复位",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/reset.svg",imgActive:"/tctwins-dxf-viewer/action-bar/reset.svg",isActive:!1},{id:1,key:"measure",name:"测量",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/measure.svg",imgActive:"/tctwins-dxf-viewer/action-bar/measure-active.svg",isActive:!1},{id:2,key:"comment",name:"批注",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/comment.svg",imgActive:"/tctwins-dxf-viewer/action-bar/comment-active.svg",isActive:!1},{id:3,key:"anno",name:"标注",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/annotation.svg",imgActive:"/tctwins-dxf-viewer/action-bar/annotation-active.svg",isActive:!1},{id:4,key:"layer",name:"图层",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/layer.svg",imgActive:"/tctwins-dxf-viewer/action-bar/layer-active.svg",isActive:!1},{id:5,key:"hidden",name:"隐藏",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/hide.svg",imgActive:"/tctwins-dxf-viewer/action-bar/show.svg",isActive:!1},{id:6,key:"screenshot",name:"截图",hasActiveState:!0,img:"/tctwins-dxf-viewer/action-bar/screenshot.svg",imgActive:"/tctwins-dxf-viewer/action-bar/screenshot-active.svg",isActive:!1}]},visibleToolKeys:[],panelLeftKeys:[],panelRightKeys:[],panelExtraKeys:[]}),actions:{setIsPc(n){this.isPc=n},setToolActiveStatus(n,e){const t=this.isPc?this.ptools:this.mtools;let r;const i=Object.keys(t);for(const s of i)if(r=t[s].find(a=>a.key===n),r){r.isActive=e??!r.isActive;break}},closeAllTool(){const n=new Set(this.panelExtraKeys),e=this.isPc?this.ptools:this.mtools;if(!e)return;Object.keys(e).forEach(r=>{e[r].forEach(i=>{n.has(i.key)||(i.isActive=!1)})})},enableToolByKeys(n){this.visibleToolKeys=n},initPanelConfig(n,e,t){this.panelLeftKeys=[...new Set([...n])],this.panelRightKeys=[...new Set([...e])],this.panelExtraKeys=[...new Set([...t])]},toggleAllTool(n){const e=this.isPc?this.ptools:this.mtools;if(!e)return;Object.keys(e).forEach(r=>{e[r].forEach(i=>{i.hasActiveState=n})})}},getters:{visibleTools:n=>{const e=new Set(n.visibleToolKeys),t=n.isPc?n.ptools:n.mtools;return{top:t.top.filter(r=>e.has(r.key)&&r.hasActiveState),bottom:t.bottom.filter(r=>e.has(r.key)&&r.hasActiveState),left:t.left.filter(r=>e.has(r.key)&&r.hasActiveState),right:t.right.filter(r=>e.has(r.key)&&r.hasActiveState)}},isToolActiveByKey:n=>e=>{const t=n.isPc?n.ptools:n.mtools;let r;const i=Object.keys(t);for(const s of i)if(r=t[s].find(a=>a.key===e),r)break;return(r==null?void 0:r.isActive)??!1},showLeftPanel:n=>{if(n.panelLeftKeys.length===0)return!1;const e=n.isPc?n.ptools:n.mtools,t=Object.keys(e);for(const r of t)if(e[r].find(s=>n.panelLeftKeys.includes(s.key)&&s.isActive))return!0;return!1},showRightPanel:n=>{if(n.panelRightKeys.length===0)return!1;const e=n.isPc?n.ptools:n.mtools,t=Object.keys(e);for(const r of t)if(e[r].find(s=>n.panelRightKeys.includes(s.key)&&s.isActive))return!0;return!1}}});class En{static setToolActiveByKey(e,t=!an().isToolActiveByKey(e)){switch(e){case"reset":window.dxfViewer.resetView();break;case"measure":window.dxfViewer.setActiveMeasureTool(t),t&&window.dxfViewer.measureTool.setCurrentTool(this.viewerState.measureType);break;case"comment":window.dxfViewer.setActiveCommentTool(t);break;case"anno":window.dxfViewer.setActiveAnnotationTool(t);break;case"layer":break;case"hidden":window.dxfViewer.toolManager.visibility=!t;break;case"screenshot":break;case"fullscreen":t?document.documentElement.requestFullscreen():document.exitFullscreen&&document.exitFullscreen();break}}static setViewerState(e,t){e in this.viewerState&&(this.viewerState[e]=t)}static closeAll(){window.dxfViewer.closeAll()}static destroyViewer(){window.dxfViewer=null,console.log("旧模型已销毁")}}t9(En,"viewerState",{measureType:"distance",commentType:"draw"});const i9={key:0,class:"tctwins-dxf-message-panel"},s9={class:"tctwins-dxf-message-box"},a9={class:"tctwins-dxf-message-container__icon"},o9=["src"],l9=h.defineComponent({__name:"TctwinsDxfMessage",setup(n,{expose:e}){const t=h.ref(!1),r=h.ref(),i=h.ref({success:{backgroundColor:"rgb(240,249,235)",borderColor:"rgb(225,243,216)",color:"rgb(103,194,58)"},warn:{backgroundColor:"rgb(253, 246, 236)",borderColor:"rgb(250, 236, 216)",color:"rgb(230, 162, 60)"},info:{backgroundColor:"rgb(244, 244, 245)",borderColor:"rgb(233, 233, 235)",color:"rgb(144, 147, 153)"},error:{backgroundColor:"rgb(254,240,240)",borderColor:"rgb(253,226,226)",color:"rgb(245,108,108)"}}),s=h.ref({icon:"success",backgroundColor:"rgb(140,249,235)",borderColor:"rgb(225,243,216)",color:"rgb(103,194,58)",message:"说明"}),a=d=>{s.value={icon:d.status,message:d.message,backgroundColor:i.value[d.status].backgroundColor,borderColor:i.value[d.status].borderColor,color:i.value[d.status].color},t.value=!0,d.duration&&(r.value&&clearTimeout(r.value),r.value=setTimeout(()=>{p()},d.duration))},o=(d,f)=>{a({status:"success",message:d,duration:f})},c=(d,f)=>{a({status:"warn",message:d,duration:f})},l=(d,f)=>{a({status:"info",message:d,duration:f})},u=(d,f)=>{a({status:"error",message:d,duration:f})},p=()=>{t.value=!1};return e({open:a,success:o,warn:c,info:l,error:u,close:p}),(d,f)=>t.value?(h.openBlock(),h.createElementBlock("div",i9,[h.createElementVNode("div",s9,[h.createElementVNode("div",{class:"tctwins-dxf-message-container",style:h.normalizeStyle({backgroundColor:s.value.backgroundColor,border:`1px solid ${s.value.borderColor}`})},[h.createElementVNode("div",a9,[h.createElementVNode("img",{class:"img",src:`/tctwins-dxf-viewer/message/${s.value.icon}.svg`},null,8,o9)]),h.createElementVNode("div",{class:"tctwins-dxf-message-container__message",style:h.normalizeStyle({color:s.value.color})},h.toDisplayString(s.value.message),5),h.createElementVNode("div",{class:"tctwins-dxf-message-container__close",onClick:p},f[0]||(f[0]=[h.createElementVNode("img",{class:"img",src:"/tctwins-dxf-viewer/message/close.svg"},null,-1)]))],4)])])):h.createCommentVNode("",!0)}}),on=(n,e)=>{const t=n.__vccOpts||n;for(const[r,i]of e)t[r]=i;return t},Xh=on(l9,[["__scopeId","data-v-da28a592"]]),c9={class:"tctwins_dxf_tool_container"},h9={class:"tctwins_dxf_tool_group"},d1=on(h.defineComponent({__name:"TctwinsDxfTool",props:{hideAllTool:{type:Boolean,default:!1}},setup(n){const e=n,t=an();return h.onMounted(()=>{e.hideAllTool&&t.toggleAllTool(!1)}),h.onUnmounted(()=>{e.hideAllTool&&t.toggleAllTool(!0)}),(r,i)=>(h.openBlock(),h.createElementBlock("div",c9,[h.createElementVNode("div",h9,[h.renderSlot(r.$slots,"default",{},void 0,!0)])]))}}),[["__scopeId","data-v-d221f989"]]),u9={class:"tctwins_dxf_dialog_container"},d9={class:"tctwins_dxf_dialog_content"},p9={class:"dialog-header__title"},f9={class:"title"},m9={class:"dialog-content"},Nl=on(h.defineComponent({__name:"TctwinsDxfDialog",props:{title:{type:String,default:"标题"},width:{type:Number,default:240}},emits:["closePanel"],setup(n,{emit:e}){const t=n,r=e,i=h.ref(0),s=h.ref(0),a=h.ref(0),o=h.ref(0),c=h.ref(0),l=h.ref(0),u=h.ref(null),p=v=>{var y;a.value=v.clientX,o.value=v.clientY,c.value=i.value,l.value=s.value,u.value=((y=document.querySelector(".tctwins_dxf_dialog_content"))==null?void 0:y.getBoundingClientRect())||null,document.addEventListener("mousemove",d),document.addEventListener("mouseup",f)},d=v=>{var E;if(!u.value)return;const y=v.clientX-a.value,g=v.clientY-o.value,b=c.value-y,_=l.value-g;let x=((E=document.querySelector(".tctwins_dxf_draggable_dialog"))==null?void 0:E.getBoundingClientRect())||null;const S=u.value.width-((x==null?void 0:x.width)||0),w=u.value.height-((x==null?void 0:x.height)||0);i.value=Math.max(0,Math.min(S,b)),s.value=Math.max(0,Math.min(w,_))},f=()=>{document.removeEventListener("mousemove",d),document.removeEventListener("mouseup",f)};h.onMounted(()=>{var y;const v=document.querySelector(".tctwins_dxf_dialog_content");if(v){i.value=0;let g=((y=document.querySelector(".tctwins_dxf_draggable_dialog"))==null?void 0:y.getBoundingClientRect())||null;s.value=(v.clientHeight-((g==null?void 0:g.height)||0))/2}});const m=()=>{r("closePanel")};return(v,y)=>(h.openBlock(),h.createElementBlock("div",u9,[h.createElementVNode("div",d9,[h.createElementVNode("div",{class:"tctwins_dxf_draggable_dialog",style:h.normalizeStyle({width:`${t.width}px`,right:`${i.value}px`,bottom:`${s.value}px`}),onMousedown:p},[h.createElementVNode("div",{class:"dialog-header",onMousedown:p},[h.renderSlot(v.$slots,"title",{},()=>[h.createElementVNode("div",p9,[h.createElementVNode("div",f9,h.toDisplayString(t.title),1),h.createElementVNode("div",{class:"close",onClick:m},y[0]||(y[0]=[h.createElementVNode("img",{class:"close-img",src:"/tctwins-dxf-viewer/utils/close-white.svg"},null,-1)]))])],!0)],32),h.createElementVNode("div",m9,[h.renderSlot(v.$slots,"default",{},()=>[y[1]||(y[1]=h.createElementVNode("div",null,"测试正文",-1))],!0)])],36)])]))}}),[["__scopeId","data-v-4c8bde48"]]),g9={class:"tctwins_dxf_panel_container"},v9={class:"tctwins_dxf_panel_header"},y9={class:"dxf-panel-title"},_9={class:"title"},x9={class:"tctwins_dxf_panel_body"},p1=on(h.defineComponent({__name:"TctwinsDxfPanel",props:{title:{type:String,default:"标题"}},emits:["closePanel"],setup(n,{emit:e}){const t=n,r=e,i=()=>{r("closePanel")};return(s,a)=>(h.openBlock(),h.createElementBlock("div",g9,[h.createElementVNode("div",v9,[h.renderSlot(s.$slots,"title",{},()=>[h.createElementVNode("div",y9,[h.createElementVNode("div",_9,h.toDisplayString(t.title),1),h.createElementVNode("div",{class:"close",onClick:i},a[0]||(a[0]=[h.createElementVNode("img",{class:"close-img",src:"/tctwins-dxf-viewer/utils/close-white.svg"},null,-1)]))])],!0)]),h.createElementVNode("div",x9,[h.renderSlot(s.$slots,"default",{},void 0,!0)])]))}}),[["__scopeId","data-v-0a7ea02d"]]),b9={class:"p-dxf-anno-tool"},S9=on(h.defineComponent({__name:"PAnnoTool",setup(n){const e=an(),t=()=>{e.setToolActiveStatus("anno",!1)};return(r,i)=>{const s=p1;return h.openBlock(),h.createElementBlock("div",b9,[h.createVNode(s,{title:"标注",onClosePanel:t})])}}}),[["__scopeId","data-v-193b64ce"]]),w9={class:"p-dxf-comment-tool"},E9=on(h.defineComponent({__name:"PCommentTool",setup(n){const e=an(),t=()=>{e.setToolActiveStatus("comment",!1)};return(r,i)=>{const s=p1;return h.openBlock(),h.createElementBlock("div",w9,[h.createVNode(s,{title:"批注",onClosePanel:t})])}}}),[["__scopeId","data-v-c614982a"]]),T9=Symbol(),Dl="el",M9="is-",_0=(n,e,t,r,i)=>{let s=`${n}-${e}`;return t&&(s+=`-${t}`),r&&(s+=`__${r}`),i&&(s+=`--${i}`),s},A9=Symbol("namespaceContextKey"),Il=n=>{const e=h.getCurrentInstance()?h.inject(A9,h.ref(Dl)):h.ref(Dl);return h.computed(()=>h.unref(e)||Dl)},Je=(n,e)=>{const t=Il();return{namespace:t,b:(v="")=>_0(t.value,n,v,"",""),e:v=>v?_0(t.value,n,"",v,""):"",m:v=>v?_0(t.value,n,"","",v):"",be:(v,y)=>v&&y?_0(t.value,n,v,y,""):"",em:(v,y)=>v&&y?_0(t.value,n,"",v,y):"",bm:(v,y)=>v&&y?_0(t.value,n,v,"",y):"",bem:(v,y,g)=>v&&y&&g?_0(t.value,n,v,y,g):"",is:(v,...y)=>{const g=y.length>=1?y[0]:!0;return v&&g?`${M9}${v}`:""},cssVar:v=>{const y={};for(const g in v)v[g]&&(y[`--${t.value}-${g}`]=v[g]);return y},cssVarName:v=>`--${t.value}-${v}`,cssVarBlock:v=>{const y={};for(const g in v)v[g]&&(y[`--${t.value}-${n}-${g}`]=v[g]);return y},cssVarBlockName:v=>`--${t.value}-${n}-${v}`}};/**
2
2
  * @vue/shared v3.5.13
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
@@ -12707,4 +12707,4 @@ void main() {
12707
12707
 
12708
12708
  fragColor = vec4(color, 1.0);
12709
12709
  }
12710
- `}}_TransformColor(e){if(!this.options.colorCorrection&&!this.options.blackWhiteInversion)return e;const t=Pl(this.clearColor);if(e===16777215&&t>=.8)return 0;if(e===0&&t<=.2)return 16777215;if(!this.options.colorCorrection)return e;const r=Pl(e),i=(s=e,a=this.clearColor,(Pl(s)+.05)/(Pl(a)+.05));var s,a;if((i>=1?i:1/i)<1.5){let o;o=t>.5?t/2:2*t,e=o>r?function(c,l){const u=Uf(c);return u.l*=l,u.l>1&&(u.l=1),If(u)}(e,o/r):function(c,l){const u=Uf(c);return u.l/=l,If(u)}(e,r/o)}return e}}Ra.MessageLevel=zh,Ra.DefaultOptions={canvasWidth:400,canvasHeight:300,autoResize:!1,clearColor:new Ge("#fff"),clearAlpha:1,canvasAlpha:!1,canvasPremultipliedAlpha:!0,antialias:!0,colorCorrection:!1,blackWhiteInversion:!0,pointSize:2,sceneOptions:ha.DefaultOptions,retainParsedDxf:!1,preserveDrawingBuffer:!1,fileEncoding:"utf-8",fonts:[]},Ra.SetupWorker=function(){new Sn(self,!0)};const ZN=Object.freeze({0:"default",1:"in",2:"ft",4:"mm",6:"m",8:"km",12:"cm"}),Ct=Object.freeze({NONE:0,FULL:1,POINT:2,MAX:3});class Nf{constructor(e,t,r){if(this.viewer=e,this.key=r.key,r.hasOwnProperty("verticesOffset")){const i=new Float32Array(t.vertices,r.verticesOffset*Float32Array.BYTES_PER_ELEMENT,r.verticesSize);(this.key.geometryType!==Ue.GeometryType.POINT_INSTANCE||t.pointShapeHasDot)&&(this.vertices=new Dt(i,2)),this.key.geometryType===Ue.GeometryType.POINT_INSTANCE&&(this.transforms=new ZP(i,2))}if(r.hasOwnProperty("chunks")){this.chunks=[];for(const i of r.chunks){const s=new Float32Array(t.vertices,i.verticesOffset*Float32Array.BYTES_PER_ELEMENT,i.verticesSize),a=new Uint16Array(t.indices,i.indicesOffset*Uint16Array.BYTES_PER_ELEMENT,i.indicesSize);this.chunks.push({vertices:new Dt(s,2),indices:new Dt(a,1)})}}if(r.hasOwnProperty("transformsOffset")){const i=new Float32Array(t.transforms,r.transformsOffset*Float32Array.BYTES_PER_ELEMENT,r.transformsSize),s=new C2(i,6);this.transforms0=new Fr(s,3,0),this.transforms1=new Fr(s,3,3)}this.layer=this.key.layerName!==null?this.viewer.layers.get(this.key.layerName):null}GetInstanceType(){switch(this.key.geometryType){case Ue.GeometryType.BLOCK_INSTANCE:return Ct.FULL;case Ue.GeometryType.POINT_INSTANCE:return Ct.POINT;default:return Ct.NONE}}*CreateObjects(e=null){if(this.key.geometryType!==Ue.GeometryType.BLOCK_INSTANCE&&this.key.geometryType!==Ue.GeometryType.POINT_INSTANCE)yield*this._CreateObjects(e);else{if(e!==null)throw new Error("Unexpected instance batch specified for instance batch");yield*this._CreateBlockInstanceObjects()}}*_CreateObjects(e){var t,r;const i=e?e._GetInstanceColor(this):this.key.color,s=(t=e==null?void 0:e.layer)!==null&&t!==void 0?t:this.layer;let a=e?e.key.lineType:this.key.lineType,o=!1;s&&(a==1?s.lineType!=="CONTINUOUS"&&s.lineType!=="CONTINOUS"&&((s.lineType=="DASH"||s.lineType.includes("DASH"))&&(a=3,o=!0),s.lineType=="DASHED"&&(a=4,o=!0)):a==2||a==3&&(o=!0));const c=(this.key.geometryType===Ue.GeometryType.POINTS||this.key.geometryType===Ue.GeometryType.POINT_INSTANCE?this.viewer._GetSimplePointMaterial:a===3||a===4?this.viewer._GetSimpleDashedMaterial:this.viewer._GetSimpleColorMaterial).call(this.viewer,this.viewer._TransformColor(i),a,(r=e==null?void 0:e.GetInstanceType())!==null&&r!==void 0?r:Ct.NONE);let l;switch(this.key.geometryType){case Ue.GeometryType.POINTS:case Ue.GeometryType.POINT_INSTANCE:l=tR;break;case Ue.GeometryType.LINES:case Ue.GeometryType.INDEXED_LINES:l=QP;break;case Ue.GeometryType.TRIANGLES:case Ue.GeometryType.INDEXED_TRIANGLES:l=On;break;default:throw new Error("Unexpected geometry type:"+this.key.geometryType)}function u(p,d){const f=e?new l8:new kn;if(f.setAttribute("position",p),o){const v=new Float32Array(p.array.length/2);let y=0;for(let g=0;g<p.array.length/2-1;g++){const b=p.array[2*(g+1)]-p.array[2*g],_=p.array[2*(g+1)+1]-p.array[2*g+1];y+=Math.sqrt(b*b+_*_),v[g+1]=y}f.setAttribute("lineDistance",new Dt(v,1))}e==null||e._SetInstanceTransformAttribute(f),d&&f.setIndex(d);const m=new l(f,c);return m.frustumCulled=!1,m.matrixAutoUpdate=!1,m._dxfViewerLayer=s,m}if(this.chunks)for(const p of this.chunks)yield u(p.vertices,p.indices);else yield u(this.vertices)}_SetInstanceTransformAttribute(e){if(!e.isInstancedBufferGeometry)throw new Error("InstancedBufferGeometry expected");this.key.geometryType===Ue.GeometryType.POINT_INSTANCE?e.setAttribute("instanceTransform",this.transforms):(e.setAttribute("instanceTransform0",this.transforms0),e.setAttribute("instanceTransform1",this.transforms1))}*_CreateBlockInstanceObjects(){const e=this.viewer.blocks.get(this.key.blockName);if(e){for(const t of e.batches)yield*t.CreateObjects(this);this.vertices&&(yield*this._CreateObjects())}}_GetInstanceColor(e){const t=e.key.color;return t===bn.BY_BLOCK?this.key.color:t===bn.BY_LAYER?e.layer?e.layer.color:this.layer?this.layer.color:0:t}}class Df{constructor(e,t,r,i,s){this.name=e,this.displayName=t,this.color=r,this.objects=[],this.visible=i,this.lineType=s}PushObject(e){this.objects.push(e)}Dispose(){for(const e of this.objects)e.geometry.dispose();this.objects=null}}class KN{constructor(){this.batches=[]}PushBatch(e){this.batches.push(e)}}const Hh="__dxf_";function La(n){return n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Gh(n){return n<.003?12.92*n:1.055*Math.pow(n,1/2.4)-.055}function Pl(n){return .2126*La(((16711680&n)>>>16)/255)+.7152*La(((65280&n)>>>8)/255)+.0722*La((255&n)/255)}function If({h:n,l:e,s:t}){let r,i,s;if(t===0)r=i=s=e;else{let a=function(l,u,p){return p<0&&(p+=1),p>1&&(p-=1),p<1/6?l+6*(u-l)*p:p<.5?u:p<2/3?l+(u-l)*(2/3-p)*6:l};const o=e<.5?e*(1+t):e+t-e*t,c=2*e-o;r=a(c,o,n+1/3),i=a(c,o,n),s=a(c,o,n-1/3)}return Math.min(Math.floor(256*Gh(r)),255)<<16|Math.min(Math.floor(256*Gh(i)),255)<<8|Math.min(Math.floor(256*Gh(s)),255)}function Uf(n){const e=La(((16711680&n)>>>16)/255),t=La(((65280&n)>>>8)/255),r=La((255&n)/255),i=Math.max(e,t,r),s=Math.min(e,t,r);let a,o;const c=(i+s)/2;if(i===s)a=o=0;else{const l=i-s;switch(o=c>.5?l/(2-i-s):l/(i+s),i){case e:a=(t-r)/l+(t<r?6:0);break;case t:a=(r-e)/l+2;break;case r:a=(e-t)/l+4}a/=6}return{h:a,l:c,s:o}}Hc.i;var JN=Hc.b;const QN=n=>{const e={antialias:!0,colorStr:"#000",autoResize:!0,isTouch:!1,colorCorrection:!0,canvasContainerId:"canvasContainer",sceneOptions:{wireframeMesh:!0},fonts:n.fonts};window.dxfViewer=new JN(e),n.callback&&(n==null||n.callback())},eD=(n,e)=>{const t=new Date().getTime();window.dxfViewer.Loadxtd({buffer:n,progressCbk:r}).then(i=>{const a=new Date().getTime()-t;console.log(`加载时长: ${a/1e3} s`),e&&e({code:200,result:"加载完成!"}),window.dxfViewer.eventTrigger.on("setActive",o=>{console.log(o)})}).catch(i=>{console.log(i),e&&e({code:500,result:"该文件无法打开",msg:i.message})});function r(i,s,a){let o,c;switch(i){case"font":o="加载字体...";break;case"fetch":o="加载文件...";break;case"parse":o="解析文件...";break;case"prepare":o="处理渲染数据...";break}a===null?c=-1:c=s/a,console.log(`${o},进度:${c}`)}},tD=n=>{r9.get(n.url,{withCredentials:!1,responseType:"arraybuffer"}).then(e=>{n.success(e.data)}).catch(e=>{n.error(e)})},nD=fn.defineStore("dxfConfig",{state:()=>({panelLeftWidth:240,panelRightWidth:240}),actions:{setPanelWidth(n=240,e=240){this.panelLeftWidth=n,this.panelRightWidth=e}},getters:{getPanelLeftWidth:n=>n.panelLeftWidth,getPanelRightWidth:n=>n.panelRightWidth}});class Bf{static getTheme(){return document.documentElement.getAttribute("data-theme")}static setTheme(e){document.documentElement.setAttribute("data-theme",e)}static setProperty(e,t){document.documentElement.style.setProperty(e,t)}}const rD={class:"tctwins_dxf_container"},iD={class:"dxf_panel_container"},sD={class:"dxf_left_panel"},aD={class:"dxf_center_panel"},oD={class:"dxf_toolbar_container"},lD={class:"dxf_right_panel"},cD=h.defineComponent({__name:"TctwinsDxf",props:{isPc:{type:Boolean,default:!0},fonts:{type:Array,required:!0,default:()=>[]},dxfFileUrl:{type:String,default:""},dxfBuffer:{type:ArrayBuffer,default:null},reset:{type:Boolean,default:!1},measure:{type:Boolean,default:!1},comment:{type:Boolean,default:!1},anno:{type:Boolean,default:!1},layer:{type:Boolean,default:!1},hidden:{type:Boolean,default:!1},screenshot:{type:Boolean,default:!1},panelLeftWidth:{type:Number,default:240},panelRightWidth:{type:Number,default:240},panelLeftKeys:{type:Array,default:()=>[]},panelRightKeys:{type:Array,default:()=>[]},panelExtraKeys:{type:Array,default:()=>[]}},emits:["eventHandle"],setup(n,{emit:e}){const t=n,r=e,i=h.ref();let s;const a=an(),o=nD(),c=h.ref({top:[],bottom:[],left:[],right:[]}),l=h.ref({image:"/tctwins-dxf-viewer/annotation/image.svg",file:"/tctwins-dxf-viewer/annotation/file.svg",record:"/tctwins-dxf-viewer/annotation/record.svg",text:"/tctwins-dxf-viewer/annotation/text.svg",video:"/tctwins-dxf-viewer/annotation/video.svg"});h.watch(()=>a.showLeftPanel,g=>{Bf.setProperty("--default-tctwins-dxf-panel-left-width",g?`${o.getPanelLeftWidth}px`:"0px")}),h.watch(()=>a.showRightPanel,g=>{Bf.setProperty("--default-tctwins-dxf-panel-right-width",g?`${o.getPanelRightWidth}px`:"0px")});const u=()=>{let g=window.dxfViewer.eventTrigger;g.on("measure_created",b=>{lt.emit(Kt,{isTool:!0,event_target:"MeasureTool",event_name:"createMeasure",content:{...b,type:b.type}})}),g.on("measure_delete",b=>{lt.emit(Kt,{isTool:!0,event_target:"MeasureTool",event_name:"deleteMeasure",content:{id:b}})}),g.on("comment_created",b=>{lt.emit(Kt,{isTool:!0,event_target:"CommentTool",event_name:"createComment",content:{...b,type:b.type}})}),g.on("comment_delete",b=>{lt.emit(Kt,{isTool:!0,event_target:"CommentTool",event_name:"deleteComment",content:{id:b}})}),g.on("annotation_created",b=>{lt.emit(Kt,{isTool:!0,event_target:"AnnotationTool",event_name:"createAnnotation",content:{...b}})}),g.on("annotation_delete",b=>{lt.emit(Kt,{isTool:!0,event_target:"AnnotationTool",event_name:"deleteAnnotation",content:{...b}})}),g.on("clickAnnotation",b=>{lt.emit(Kt,{isTool:!0,event_target:"AnnotationTool",event_name:"clickAnnotation",content:{type:b.type,annoId:b.id,other:{position:b.position,object:b.object}}})}),g.on("annotation_delete",b=>{lt.emit(Kt,{isTool:!0,event_target:"AnnotationTool",event_name:"deleteAnnotation",content:{...b}})})};h.onMounted(()=>{p(),window.dxfViewer&&(window.dxfViewer=null,console.log("旧文件已销毁")),m(),d(),f(),lt.on("DxfViewer",u)});const p=()=>{o.setPanelWidth(t.panelLeftWidth,t.panelRightWidth),a.initPanelConfig(t.panelLeftKeys,t.panelRightKeys,t.panelExtraKeys),a.setIsPc(t.isPc);const g=Object.entries(t);let b=[];g.forEach(([_,x])=>{x&&b.push(_)}),a.enableToolByKeys(b),c.value=a.visibleTools},d=()=>{lt.on(Kt,g=>{r("eventHandle",g)})},f=()=>{lt.on(Hi,g=>{g.open?i.value.open({status:g.status,message:g.message,duration:g.duration??0}):i.value.close()})},m=()=>{t.dxfBuffer?(console.log("已获取dxfBuffer"),s=t.dxfBuffer,v()):t.dxfFileUrl&&(console.log("已获取dxfUrl: ",t.dxfFileUrl),tD({url:t.dxfFileUrl,success:g=>{s=g,v()},error:g=>{console.log(g)}}))},v=()=>{QN({fonts:t.fonts,isTouch:!1,callback:()=>{const g=b=>{window.dxfViewer.Subscribe(b,_=>lt.emit(b,_))};for(const b of["loaded","cleared","destroyed","resized","pointerdown","pointerup","viewChanged","message"])g(b);y()}})},y=async()=>{eD(s,g=>{var b;g.code==200&&lt.emit("DxfViewer"),lt.emit(Kt,{isTool:!1,event_target:"DxfViewer",event_name:"modelLoaded",content:g}),(b=window.dxfViewer.annotationTool)==null||b.setTypeImage(l.value),console.log(g)})};return h.onUnmounted(()=>{En.destroyViewer()}),(g,b)=>{const _=oA,x=JM,S=MM,w=xM,E=mM,T=lM,A=VT,M=E9,O=S9,C=Xh;return h.openBlock(),h.createElementBlock("div",rD,[h.createElementVNode("div",iD,[h.createElementVNode("div",sD,[h.renderSlot(g.$slots,"leftpanel",{},()=>[h.createVNode(h.Transition,{name:"dxf-panel-transition"},{default:h.withCtx(()=>[t.isPc&&h.unref(a).isToolActiveByKey("layer")?(h.openBlock(),h.createBlock(_,{key:0})):h.createCommentVNode("",!0)]),_:1})])]),h.createElementVNode("div",aD,[b[0]||(b[0]=h.createElementVNode("div",{id:"canvasContainer",class:"canvasContainer"},null,-1)),b[1]||(b[1]=h.createElementVNode("div",{id:"toolContainer"},null,-1)),h.createElementVNode("div",oD,[t.isPc?(h.openBlock(),h.createBlock(x,{key:0,toolbars:h.unref(a).visibleTools},null,8,["toolbars"])):(h.openBlock(),h.createBlock(S,{key:1,toolbars:h.unref(a).visibleTools},null,8,["toolbars"])),t.isPc&&h.unref(a).isToolActiveByKey("measure")?(h.openBlock(),h.createBlock(w,{key:2})):h.createCommentVNode("",!0),t.isPc&&h.unref(a).isToolActiveByKey("screenshot")?(h.openBlock(),h.createBlock(E,{key:3})):h.createCommentVNode("",!0),t.isPc&&h.unref(a).isToolActiveByKey("comment")?(h.openBlock(),h.createBlock(T,{key:4})):h.createCommentVNode("",!0),t.isPc&&h.unref(a).isToolActiveByKey("anno")?(h.openBlock(),h.createBlock(A,{key:5})):h.createCommentVNode("",!0),h.renderSlot(g.$slots,"toolpanel")])]),h.createElementVNode("div",lD,[h.renderSlot(g.$slots,"rightpanel",{},()=>[h.createVNode(h.Transition,{name:"dxf-panel-transition"},{default:h.withCtx(()=>[t.isPc&&h.unref(a).isToolActiveByKey("comment")?(h.openBlock(),h.createBlock(M,{key:0})):h.createCommentVNode("",!0)]),_:1}),h.createVNode(h.Transition,{name:"dxf-panel-transition"},{default:h.withCtx(()=>[t.isPc&&h.unref(a).isToolActiveByKey("anno")?(h.openBlock(),h.createBlock(O,{key:0})):h.createCommentVNode("",!0)]),_:1})])])]),h.createVNode(C,{ref_key:"tctwindDxfMessageRef",ref:i},null,512)])}}}),hD=(n,e)=>{En.setToolActiveByKey(n,e),an().setToolActiveStatus(n,e)},uD=n=>an().isToolActiveByKey(n),dD=()=>{En.closeAll(),an().closeAllTool()},pD=n=>{an().toggleAllTool(n)};J.TctwinsDxf=cD,J.TctwinsDxfDialog=Nl,J.TctwinsDxfMessage=Xh,J.TctwinsDxfPanel=p1,J.TctwinsDxfTool=d1,J.closeAllTool=dD,J.isToolStatusByKey=uD,J.setToolStatusByKey=hD,J.toggleAllTool=pD,Object.defineProperty(J,Symbol.toStringTag,{value:"Module"})});
12710
+ `}}_TransformColor(e){if(!this.options.colorCorrection&&!this.options.blackWhiteInversion)return e;const t=Pl(this.clearColor);if(e===16777215&&t>=.8)return 0;if(e===0&&t<=.2)return 16777215;if(!this.options.colorCorrection)return e;const r=Pl(e),i=(s=e,a=this.clearColor,(Pl(s)+.05)/(Pl(a)+.05));var s,a;if((i>=1?i:1/i)<1.5){let o;o=t>.5?t/2:2*t,e=o>r?function(c,l){const u=Uf(c);return u.l*=l,u.l>1&&(u.l=1),If(u)}(e,o/r):function(c,l){const u=Uf(c);return u.l/=l,If(u)}(e,r/o)}return e}}Ra.MessageLevel=zh,Ra.DefaultOptions={canvasWidth:400,canvasHeight:300,autoResize:!1,clearColor:new Ge("#fff"),clearAlpha:1,canvasAlpha:!1,canvasPremultipliedAlpha:!0,antialias:!0,colorCorrection:!1,blackWhiteInversion:!0,pointSize:2,sceneOptions:ha.DefaultOptions,retainParsedDxf:!1,preserveDrawingBuffer:!1,fileEncoding:"utf-8",fonts:[]},Ra.SetupWorker=function(){new Sn(self,!0)};const ZN=Object.freeze({0:"default",1:"in",2:"ft",4:"mm",6:"m",8:"km",12:"cm"}),Ct=Object.freeze({NONE:0,FULL:1,POINT:2,MAX:3});class Nf{constructor(e,t,r){if(this.viewer=e,this.key=r.key,r.hasOwnProperty("verticesOffset")){const i=new Float32Array(t.vertices,r.verticesOffset*Float32Array.BYTES_PER_ELEMENT,r.verticesSize);(this.key.geometryType!==Ue.GeometryType.POINT_INSTANCE||t.pointShapeHasDot)&&(this.vertices=new Dt(i,2)),this.key.geometryType===Ue.GeometryType.POINT_INSTANCE&&(this.transforms=new ZP(i,2))}if(r.hasOwnProperty("chunks")){this.chunks=[];for(const i of r.chunks){const s=new Float32Array(t.vertices,i.verticesOffset*Float32Array.BYTES_PER_ELEMENT,i.verticesSize),a=new Uint16Array(t.indices,i.indicesOffset*Uint16Array.BYTES_PER_ELEMENT,i.indicesSize);this.chunks.push({vertices:new Dt(s,2),indices:new Dt(a,1)})}}if(r.hasOwnProperty("transformsOffset")){const i=new Float32Array(t.transforms,r.transformsOffset*Float32Array.BYTES_PER_ELEMENT,r.transformsSize),s=new C2(i,6);this.transforms0=new Fr(s,3,0),this.transforms1=new Fr(s,3,3)}this.layer=this.key.layerName!==null?this.viewer.layers.get(this.key.layerName):null}GetInstanceType(){switch(this.key.geometryType){case Ue.GeometryType.BLOCK_INSTANCE:return Ct.FULL;case Ue.GeometryType.POINT_INSTANCE:return Ct.POINT;default:return Ct.NONE}}*CreateObjects(e=null){if(this.key.geometryType!==Ue.GeometryType.BLOCK_INSTANCE&&this.key.geometryType!==Ue.GeometryType.POINT_INSTANCE)yield*this._CreateObjects(e);else{if(e!==null)throw new Error("Unexpected instance batch specified for instance batch");yield*this._CreateBlockInstanceObjects()}}*_CreateObjects(e){var t,r;const i=e?e._GetInstanceColor(this):this.key.color,s=(t=e==null?void 0:e.layer)!==null&&t!==void 0?t:this.layer;let a=e?e.key.lineType:this.key.lineType,o=!1;s&&(a==1?s.lineType!=="CONTINUOUS"&&s.lineType!=="CONTINOUS"&&((s.lineType=="DASH"||s.lineType.includes("DASH"))&&(a=3,o=!0),s.lineType=="DASHED"&&(a=4,o=!0)):a==2||a==3&&(o=!0));const c=(this.key.geometryType===Ue.GeometryType.POINTS||this.key.geometryType===Ue.GeometryType.POINT_INSTANCE?this.viewer._GetSimplePointMaterial:a===3||a===4?this.viewer._GetSimpleDashedMaterial:this.viewer._GetSimpleColorMaterial).call(this.viewer,this.viewer._TransformColor(i),a,(r=e==null?void 0:e.GetInstanceType())!==null&&r!==void 0?r:Ct.NONE);let l;switch(this.key.geometryType){case Ue.GeometryType.POINTS:case Ue.GeometryType.POINT_INSTANCE:l=tR;break;case Ue.GeometryType.LINES:case Ue.GeometryType.INDEXED_LINES:l=QP;break;case Ue.GeometryType.TRIANGLES:case Ue.GeometryType.INDEXED_TRIANGLES:l=On;break;default:throw new Error("Unexpected geometry type:"+this.key.geometryType)}function u(p,d){const f=e?new l8:new kn;if(f.setAttribute("position",p),o){const v=new Float32Array(p.array.length/2);let y=0;for(let g=0;g<p.array.length/2-1;g++){const b=p.array[2*(g+1)]-p.array[2*g],_=p.array[2*(g+1)+1]-p.array[2*g+1];y+=Math.sqrt(b*b+_*_),v[g+1]=y}f.setAttribute("lineDistance",new Dt(v,1))}e==null||e._SetInstanceTransformAttribute(f),d&&f.setIndex(d);const m=new l(f,c);return m.frustumCulled=!1,m.matrixAutoUpdate=!1,m._dxfViewerLayer=s,m}if(this.chunks)for(const p of this.chunks)yield u(p.vertices,p.indices);else yield u(this.vertices)}_SetInstanceTransformAttribute(e){if(!e.isInstancedBufferGeometry)throw new Error("InstancedBufferGeometry expected");this.key.geometryType===Ue.GeometryType.POINT_INSTANCE?e.setAttribute("instanceTransform",this.transforms):(e.setAttribute("instanceTransform0",this.transforms0),e.setAttribute("instanceTransform1",this.transforms1))}*_CreateBlockInstanceObjects(){const e=this.viewer.blocks.get(this.key.blockName);if(e){for(const t of e.batches)yield*t.CreateObjects(this);this.vertices&&(yield*this._CreateObjects())}}_GetInstanceColor(e){const t=e.key.color;return t===bn.BY_BLOCK?this.key.color:t===bn.BY_LAYER?e.layer?e.layer.color:this.layer?this.layer.color:0:t}}class Df{constructor(e,t,r,i,s){this.name=e,this.displayName=t,this.color=r,this.objects=[],this.visible=i,this.lineType=s}PushObject(e){this.objects.push(e)}Dispose(){for(const e of this.objects)e.geometry.dispose();this.objects=null}}class KN{constructor(){this.batches=[]}PushBatch(e){this.batches.push(e)}}const Hh="__dxf_";function La(n){return n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Gh(n){return n<.003?12.92*n:1.055*Math.pow(n,1/2.4)-.055}function Pl(n){return .2126*La(((16711680&n)>>>16)/255)+.7152*La(((65280&n)>>>8)/255)+.0722*La((255&n)/255)}function If({h:n,l:e,s:t}){let r,i,s;if(t===0)r=i=s=e;else{let a=function(l,u,p){return p<0&&(p+=1),p>1&&(p-=1),p<1/6?l+6*(u-l)*p:p<.5?u:p<2/3?l+(u-l)*(2/3-p)*6:l};const o=e<.5?e*(1+t):e+t-e*t,c=2*e-o;r=a(c,o,n+1/3),i=a(c,o,n),s=a(c,o,n-1/3)}return Math.min(Math.floor(256*Gh(r)),255)<<16|Math.min(Math.floor(256*Gh(i)),255)<<8|Math.min(Math.floor(256*Gh(s)),255)}function Uf(n){const e=La(((16711680&n)>>>16)/255),t=La(((65280&n)>>>8)/255),r=La((255&n)/255),i=Math.max(e,t,r),s=Math.min(e,t,r);let a,o;const c=(i+s)/2;if(i===s)a=o=0;else{const l=i-s;switch(o=c>.5?l/(2-i-s):l/(i+s),i){case e:a=(t-r)/l+(t<r?6:0);break;case t:a=(r-e)/l+2;break;case r:a=(e-t)/l+4}a/=6}return{h:a,l:c,s:o}}Hc.i;var JN=Hc.b;const QN=n=>{const e={antialias:!0,colorStr:"#000",autoResize:!0,isTouch:!1,colorCorrection:!0,canvasContainerId:"canvasContainer",sceneOptions:{wireframeMesh:!0},fonts:n.fonts};window.dxfViewer=new JN(e),n.callback&&(n==null||n.callback())},eD=(n,e)=>{const t=new Date().getTime();window.dxfViewer.Loadxtd({buffer:n,progressCbk:r}).then(i=>{const a=new Date().getTime()-t;console.log(`加载时长: ${a/1e3} s`),e&&e({code:200,result:"加载完成!"}),window.dxfViewer.eventTrigger.on("setActive",o=>{console.log(o)})}).catch(i=>{console.log(i),e&&e({code:500,result:"该文件无法打开",msg:i.message})});function r(i,s,a){let o,c;switch(i){case"font":o="加载字体...";break;case"fetch":o="加载文件...";break;case"parse":o="解析文件...";break;case"prepare":o="处理渲染数据...";break}a===null?c=-1:c=s/a,console.log(`${o},进度:${c}`)}},tD=n=>{r9.get(n.url,{withCredentials:!1,responseType:"arraybuffer"}).then(e=>{n.success(e.data)}).catch(e=>{n.error(e)})},nD=fn.defineStore("dxfConfig",{state:()=>({panelLeftWidth:240,panelRightWidth:240}),actions:{setPanelWidth(n=240,e=240){this.panelLeftWidth=n,this.panelRightWidth=e}},getters:{getPanelLeftWidth:n=>n.panelLeftWidth,getPanelRightWidth:n=>n.panelRightWidth}});class Bf{static getTheme(){return document.documentElement.getAttribute("data-theme")}static setTheme(e){document.documentElement.setAttribute("data-theme",e)}static setProperty(e,t){document.documentElement.style.setProperty(e,t)}}const rD={class:"tctwins_dxf_container"},iD={class:"dxf_panel_container"},sD={class:"dxf_left_panel"},aD={class:"dxf_center_panel"},oD={class:"dxf_toolbar_container"},lD={class:"dxf_right_panel"},cD=h.defineComponent({__name:"TctwinsDxf",props:{isPc:{type:Boolean,default:!0},fonts:{type:Array,required:!0,default:()=>[]},dxfFileUrl:{type:String,default:""},dxfBuffer:{type:ArrayBuffer,default:null},reset:{type:Boolean,default:!1},measure:{type:Boolean,default:!1},comment:{type:Boolean,default:!1},anno:{type:Boolean,default:!1},layer:{type:Boolean,default:!1},hidden:{type:Boolean,default:!1},screenshot:{type:Boolean,default:!1},panelLeftWidth:{type:Number,default:240},panelRightWidth:{type:Number,default:240},panelLeftKeys:{type:Array,default:()=>["layer"]},panelRightKeys:{type:Array,default:()=>[]},panelExtraKeys:{type:Array,default:()=>["layer"]}},emits:["eventHandle"],setup(n,{emit:e}){const t=n,r=e,i=h.ref();let s;const a=an(),o=nD(),c=h.ref({top:[],bottom:[],left:[],right:[]}),l=h.ref({image:"/tctwins-dxf-viewer/annotation/image.svg",file:"/tctwins-dxf-viewer/annotation/file.svg",record:"/tctwins-dxf-viewer/annotation/record.svg",text:"/tctwins-dxf-viewer/annotation/text.svg",video:"/tctwins-dxf-viewer/annotation/video.svg"});h.watch(()=>a.showLeftPanel,g=>{Bf.setProperty("--default-tctwins-dxf-panel-left-width",g?`${o.getPanelLeftWidth}px`:"0px")}),h.watch(()=>a.showRightPanel,g=>{Bf.setProperty("--default-tctwins-dxf-panel-right-width",g?`${o.getPanelRightWidth}px`:"0px")});const u=()=>{let g=window.dxfViewer.eventTrigger;g.on("measure_created",b=>{lt.emit(Kt,{isTool:!0,event_target:"MeasureTool",event_name:"createMeasure",content:{...b,type:b.type}})}),g.on("measure_delete",b=>{lt.emit(Kt,{isTool:!0,event_target:"MeasureTool",event_name:"deleteMeasure",content:{id:b}})}),g.on("comment_created",b=>{lt.emit(Kt,{isTool:!0,event_target:"CommentTool",event_name:"createComment",content:{...b,type:b.type}})}),g.on("comment_delete",b=>{lt.emit(Kt,{isTool:!0,event_target:"CommentTool",event_name:"deleteComment",content:{id:b}})}),g.on("annotation_created",b=>{lt.emit(Kt,{isTool:!0,event_target:"AnnotationTool",event_name:"createAnnotation",content:{...b}})}),g.on("annotation_delete",b=>{lt.emit(Kt,{isTool:!0,event_target:"AnnotationTool",event_name:"deleteAnnotation",content:{...b}})}),g.on("clickAnnotation",b=>{lt.emit(Kt,{isTool:!0,event_target:"AnnotationTool",event_name:"clickAnnotation",content:{type:b.type,annoId:b.id,other:{position:b.position,object:b.object}}})}),g.on("annotation_delete",b=>{lt.emit(Kt,{isTool:!0,event_target:"AnnotationTool",event_name:"deleteAnnotation",content:{...b}})})};h.onMounted(()=>{p(),window.dxfViewer&&(window.dxfViewer=null,console.log("旧文件已销毁")),m(),d(),f(),lt.on("DxfViewer",u)});const p=()=>{o.setPanelWidth(t.panelLeftWidth,t.panelRightWidth),a.initPanelConfig(t.panelLeftKeys,t.panelRightKeys,t.panelExtraKeys),a.setIsPc(t.isPc);const g=Object.entries(t);let b=[];g.forEach(([_,x])=>{x&&b.push(_)}),a.enableToolByKeys(b),c.value=a.visibleTools},d=()=>{lt.on(Kt,g=>{r("eventHandle",g)})},f=()=>{lt.on(Hi,g=>{g.open?i.value.open({status:g.status,message:g.message,duration:g.duration??0}):i.value.close()})},m=()=>{t.dxfBuffer?(console.log("已获取dxfBuffer"),s=t.dxfBuffer,v()):t.dxfFileUrl&&(console.log("已获取dxfUrl: ",t.dxfFileUrl),tD({url:t.dxfFileUrl,success:g=>{s=g,v()},error:g=>{console.log(g)}}))},v=()=>{QN({fonts:t.fonts,isTouch:!1,callback:()=>{const g=b=>{window.dxfViewer.Subscribe(b,_=>lt.emit(b,_))};for(const b of["loaded","cleared","destroyed","resized","pointerdown","pointerup","viewChanged","message"])g(b);y()}})},y=async()=>{eD(s,g=>{var b;g.code==200&&lt.emit("DxfViewer"),lt.emit(Kt,{isTool:!1,event_target:"DxfViewer",event_name:"modelLoaded",content:g}),(b=window.dxfViewer.annotationTool)==null||b.setTypeImage(l.value),console.log(g)})};return h.onUnmounted(()=>{En.destroyViewer()}),(g,b)=>{const _=oA,x=JM,S=MM,w=xM,E=mM,T=lM,A=VT,M=E9,O=S9,C=Xh;return h.openBlock(),h.createElementBlock("div",rD,[h.createElementVNode("div",iD,[h.createElementVNode("div",sD,[h.renderSlot(g.$slots,"leftpanel",{},()=>[h.createVNode(h.Transition,{name:"dxf-panel-transition"},{default:h.withCtx(()=>[t.isPc&&h.unref(a).isToolActiveByKey("layer")?(h.openBlock(),h.createBlock(_,{key:0})):h.createCommentVNode("",!0)]),_:1})])]),h.createElementVNode("div",aD,[b[0]||(b[0]=h.createElementVNode("div",{id:"canvasContainer",class:"canvasContainer"},null,-1)),b[1]||(b[1]=h.createElementVNode("div",{id:"toolContainer"},null,-1)),h.createElementVNode("div",oD,[t.isPc?(h.openBlock(),h.createBlock(x,{key:0,toolbars:h.unref(a).visibleTools},null,8,["toolbars"])):(h.openBlock(),h.createBlock(S,{key:1,toolbars:h.unref(a).visibleTools},null,8,["toolbars"])),t.isPc&&h.unref(a).isToolActiveByKey("measure")?(h.openBlock(),h.createBlock(w,{key:2})):h.createCommentVNode("",!0),t.isPc&&h.unref(a).isToolActiveByKey("screenshot")?(h.openBlock(),h.createBlock(E,{key:3})):h.createCommentVNode("",!0),t.isPc&&h.unref(a).isToolActiveByKey("comment")?(h.openBlock(),h.createBlock(T,{key:4})):h.createCommentVNode("",!0),t.isPc&&h.unref(a).isToolActiveByKey("anno")?(h.openBlock(),h.createBlock(A,{key:5})):h.createCommentVNode("",!0),h.renderSlot(g.$slots,"toolpanel")])]),h.createElementVNode("div",lD,[h.renderSlot(g.$slots,"rightpanel",{},()=>[h.createVNode(h.Transition,{name:"dxf-panel-transition"},{default:h.withCtx(()=>[t.isPc&&h.unref(a).isToolActiveByKey("comment")?(h.openBlock(),h.createBlock(M,{key:0})):h.createCommentVNode("",!0)]),_:1}),h.createVNode(h.Transition,{name:"dxf-panel-transition"},{default:h.withCtx(()=>[t.isPc&&h.unref(a).isToolActiveByKey("anno")?(h.openBlock(),h.createBlock(O,{key:0})):h.createCommentVNode("",!0)]),_:1})])])]),h.createVNode(C,{ref_key:"tctwindDxfMessageRef",ref:i},null,512)])}}}),hD=(n,e)=>{En.setToolActiveByKey(n,e),an().setToolActiveStatus(n,e)},uD=n=>an().isToolActiveByKey(n),dD=()=>{En.closeAll(),an().closeAllTool()},pD=n=>{an().toggleAllTool(n)};J.TctwinsDxf=cD,J.TctwinsDxfDialog=Nl,J.TctwinsDxfMessage=Xh,J.TctwinsDxfPanel=p1,J.TctwinsDxfTool=d1,J.closeAllTool=dD,J.isToolStatusByKey=uD,J.setToolStatusByKey=hD,J.toggleAllTool=pD,Object.defineProperty(J,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xtctwins/tctwins-dxf-next-viewer",
3
3
  "private": false,
4
- "version": "0.0.4",
4
+ "version": "0.0.5",
5
5
  "type": "module",
6
6
  "main": "dist/tctwins-dxf-next-viewer.umd.js",
7
7
  "module": "dist/tctwins-dxf-next-viewer.es.js",