@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 +273 -3
- package/dist/tctwins-dxf-next-viewer.d.ts +4 -4
- package/dist/tctwins-dxf-next-viewer.es.js +3 -3
- package/dist/tctwins-dxf-next-viewer.es.js.gz +0 -0
- package/dist/tctwins-dxf-next-viewer.umd.js +2 -2
- package/dist/tctwins-dxf-next-viewer.umd.js.gz +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,275 @@
|
|
|
1
|
-
#
|
|
1
|
+
# xtd 二维文件查看器 VUE3
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
# 安装相关依赖
|
|
4
4
|
|
|
5
|
-
|
|
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: () =>
|
|
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: () =>
|
|
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: () =>
|
|
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: () =>
|
|
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
|
|
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"],
|
|
Binary file
|
|
@@ -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&<.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&<.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"})});
|
|
Binary file
|