endset_three_editor 0.9.1 → 0.9.2

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.
@@ -1928,7 +1928,7 @@ let ne = null;
1928
1928
  function _o(r) {
1929
1929
  return ne ? (ne.domElement.parentNode !== r && r.appendChild(ne.domElement), ne) : (ne = new Bo(), ne.setSize(r.clientWidth, r.clientHeight), ne.domElement.style.position = "absolute", ne.domElement.style.top = "0", ne.domElement.style.left = "0", ne.domElement.style.pointerEvents = "none", r.appendChild(ne.domElement), ne);
1930
1930
  }
1931
- function du() {
1931
+ function hu() {
1932
1932
  return ne;
1933
1933
  }
1934
1934
  function $o(r, e) {
@@ -5032,7 +5032,7 @@ let Es = [], zt = [], Rt = !0, _e = null, Ds = null, Yt = null, We = [];
5032
5032
  const tt = /* @__PURE__ */ new Map();
5033
5033
  let es, Kt = null, Mt = null, vt = null;
5034
5034
  async function la(r, e = "edit", t) {
5035
- I.container = r, I.mode = e, ua(), ha(), pa(), t && (await Ua(t.scene, e, t.dataPanels, t.waters, t.textures), t != null && t.camera && (I.defaultMainCamera = t.camera, Zn(!0))), ma(), Aa(), es && I.orbitControls && (I.orbitControls.target.fromArray(es), I.orbitControls.update()), da(), $n(), Qn(), Mt = (n) => Ia(n), vt = () => ya(), e === "edit" && r.addEventListener("click", Mt), window.addEventListener("resize", vt), t || ga(), e === "edit" && fa();
5035
+ I.container = r, I.mode = e, ua(), ha(), pa(), t && (await za(t.scene, e, t.dataPanels, t.waters, t.textures), t != null && t.camera && (I.defaultMainCamera = t.camera, Zn(!0))), ma(), Aa(), es && I.orbitControls && (I.orbitControls.target.fromArray(es), I.orbitControls.update()), da(), $n(), Qn(), Mt = (n) => Ia(n), vt = () => ya(), e === "edit" && r.addEventListener("click", Mt), window.addEventListener("resize", vt), t || ga(), e === "edit" && fa();
5036
5036
  }
5037
5037
  function ca() {
5038
5038
  return window.devicePixelRatio;
@@ -5361,7 +5361,7 @@ function Ha() {
5361
5361
  function ka() {
5362
5362
  return I.selectedObject;
5363
5363
  }
5364
- function vu(r, e, t) {
5364
+ function Tu(r, e, t) {
5365
5365
  if (!I.scene) return;
5366
5366
  const n = tt.get(r);
5367
5367
  if (n) {
@@ -5369,13 +5369,13 @@ function vu(r, e, t) {
5369
5369
  s && s.updateItemByCode(e, t);
5370
5370
  }
5371
5371
  }
5372
- function Tu() {
5372
+ function Eu() {
5373
5373
  return I.scene;
5374
5374
  }
5375
5375
  function ja() {
5376
5376
  return I.camera;
5377
5377
  }
5378
- function Eu() {
5378
+ function Du() {
5379
5379
  return I.renderer;
5380
5380
  }
5381
5381
  async function Fa() {
@@ -5393,7 +5393,7 @@ async function Fa() {
5393
5393
  const e = [], t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), s = {}, i = [], o = [];
5394
5394
  r.traverse((f) => {
5395
5395
  var M, C;
5396
- if (f.userData.type === "lightHelper" && e.push(f), f.type === "DirectionalLight" && f.userData.helper && (t.set(f, f.userData.helper), f.userData.helper = void 0), f.userData.isWater && f.type === "Mesh" && f.parent) {
5396
+ if (f.userData._sourceUuid = f.uuid, f.userData.type === "lightHelper" && e.push(f), f.type === "DirectionalLight" && f.userData.helper && (t.set(f, f.userData.helper), f.userData.helper = void 0), f.userData.isWater && f.type === "Mesh" && f.parent) {
5397
5397
  const g = f, w = g.material;
5398
5398
  let T = "#4fc3f7";
5399
5399
  w.uniforms && w.uniforms.waterColor && (T = "#" + w.uniforms.waterColor.value.getHexString());
@@ -5481,6 +5481,8 @@ async function Fa() {
5481
5481
  }
5482
5482
  t.forEach((f, M) => {
5483
5483
  M.userData.helper = f;
5484
+ }), r.traverse((f) => {
5485
+ delete f.userData._sourceUuid;
5484
5486
  });
5485
5487
  const u = {
5486
5488
  position: (y = I.camera) == null ? void 0 : y.position.toArray(),
@@ -5499,10 +5501,34 @@ async function Fa() {
5499
5501
  };
5500
5502
  return ye == null || ye(!1), p;
5501
5503
  }
5502
- async function Ua(r, e = "edit", t, n, s) {
5503
- var o, a, l, c, d, u, m;
5504
+ function Ua(r) {
5504
5505
  if (r instanceof ArrayBuffer || ArrayBuffer.isView(r)) {
5505
- const p = await new Vn().parseAsync(r, ""), y = p.scene || ((o = p.scenes) == null ? void 0 : o[0]), h = (a = I.scene) == null ? void 0 : a.environment;
5506
+ if (r instanceof ArrayBuffer) return r;
5507
+ const e = r;
5508
+ return e.buffer.slice(e.byteOffset, e.byteOffset + e.byteLength);
5509
+ }
5510
+ if (typeof r == "string") {
5511
+ const e = r.trim();
5512
+ let t = e;
5513
+ if (e.startsWith("data:")) {
5514
+ const n = e.indexOf(",");
5515
+ if (n === -1) return null;
5516
+ t = e.slice(n + 1);
5517
+ }
5518
+ if (/^Z2xURg/.test(t)) {
5519
+ const n = atob(t), s = new Uint8Array(n.length);
5520
+ for (let i = 0; i < n.length; i++) s[i] = n.charCodeAt(i);
5521
+ return s.buffer;
5522
+ }
5523
+ return null;
5524
+ }
5525
+ return r && typeof r == "object" && r.type === "Buffer" && Array.isArray(r.data) ? new Uint8Array(r.data).buffer : null;
5526
+ }
5527
+ async function za(r, e = "edit", t, n, s) {
5528
+ var o, a, l, c, d, u, m;
5529
+ const i = Ua(r);
5530
+ if (i) {
5531
+ const p = await new Vn().parseAsync(i, ""), y = p.scene || ((o = p.scenes) == null ? void 0 : o[0]), h = (a = I.scene) == null ? void 0 : a.environment;
5506
5532
  if (I.scene = y, h)
5507
5533
  I.scene.environment = h;
5508
5534
  else if (I.renderer) {
@@ -5523,7 +5549,7 @@ async function Ua(r, e = "edit", t, n, s) {
5523
5549
  (c = I.scene) == null || c.add(h);
5524
5550
  }
5525
5551
  if (t && ((d = I.scene) == null || d.traverse((p) => {
5526
- const y = p.userData.id || p.uuid, h = t[y];
5552
+ const y = p.userData.id || p.userData._sourceUuid || p.uuid, h = t[y];
5527
5553
  if (h && p.userData.isMovable) {
5528
5554
  Ma(p);
5529
5555
  const A = new _t({
@@ -5532,7 +5558,7 @@ async function Ua(r, e = "edit", t, n, s) {
5532
5558
  });
5533
5559
  A.attachTo(p), A.visible = !1, h.width && A.setWidth(h.width), h.fontSize && A.setFontSize(h.fontSize), h.offsetY !== void 0 && A.setOffsetY(h.offsetY), h.offsetX !== void 0 && A.setOffsetX(h.offsetX), h.offsetZ !== void 0 && A.setOffsetZ(h.offsetZ), Wn(p, A);
5534
5560
  }
5535
- })), n && n.length > 0 && Promise.resolve().then(() => Qa).then(({ addWater: p, addWaterCylinder: y }) => {
5561
+ })), n && n.length > 0 && Promise.resolve().then(() => Ja).then(({ addWater: p, addWaterCylinder: y }) => {
5536
5562
  for (const h of n) {
5537
5563
  const A = h.geometryType || "box";
5538
5564
  let f;
@@ -5602,11 +5628,11 @@ function ei(r) {
5602
5628
  for (const t of e)
5603
5629
  ei(t);
5604
5630
  }
5605
- function za() {
5631
+ function Ga() {
5606
5632
  Kt !== null && (cancelAnimationFrame(Kt), Kt = null), Mt && I.container && (I.container.removeEventListener("click", Mt), Mt = null), vt && (window.removeEventListener("resize", vt), vt = null), I.orbitControls && (I.orbitControls.dispose(), I.orbitControls = null), I.transformControls && (I.transformControls.dispose(), I.transformControls = null), Ge && (Ge.dispose(), Ge = null), I.scene && (ei(I.scene), I.scene = null), I.renderer && (I.renderer.dispose(), I.renderer.domElement && I.container && I.container.removeChild(I.renderer.domElement), I.renderer = null), tr(), I.camera = null, I.gridHelper = null, I.selectedObject = null, I.container = null, I.mode = "", We = [], tt.clear(), is(), Vt = !1, et = !1;
5607
5633
  }
5608
- const Ga = /^[og]\s*(.+)?/, Wa = /^mtllib /, Ba = /^usemtl /, Xa = /^usemap /, bn = /\s+/, xn = new R(), gs = new R(), In = new R(), Cn = new R(), Ie = new R(), Gt = new oe();
5609
- function qa() {
5634
+ const Wa = /^[og]\s*(.+)?/, Ba = /^mtllib /, Xa = /^usemtl /, qa = /^usemap /, bn = /\s+/, xn = new R(), gs = new R(), In = new R(), Cn = new R(), Ie = new R(), Gt = new oe();
5635
+ function Va() {
5610
5636
  const r = {
5611
5637
  objects: [],
5612
5638
  object: {},
@@ -5766,7 +5792,7 @@ function qa() {
5766
5792
  };
5767
5793
  return r.startObject("", !1), r;
5768
5794
  }
5769
- class Va extends Ls {
5795
+ class Ya extends Ls {
5770
5796
  /**
5771
5797
  * Constructs a new OBJ loader.
5772
5798
  *
@@ -5810,7 +5836,7 @@ class Va extends Ls {
5810
5836
  * @return {Group} The parsed OBJ.
5811
5837
  */
5812
5838
  parse(e) {
5813
- const t = new qa();
5839
+ const t = new Va();
5814
5840
  e.indexOf(`\r
5815
5841
  `) !== -1 && (e = e.replace(/\r\n/g, `
5816
5842
  `)), e.indexOf(`\\
@@ -5891,14 +5917,14 @@ class Va extends Ls {
5891
5917
  } else if (d === "p") {
5892
5918
  const m = c.slice(1).trim().split(" ");
5893
5919
  t.addPointGeometry(m);
5894
- } else if ((s = Ga.exec(c)) !== null) {
5920
+ } else if ((s = Wa.exec(c)) !== null) {
5895
5921
  const u = (" " + s[0].slice(1).trim()).slice(1);
5896
5922
  t.startObject(u);
5897
- } else if (Ba.test(c))
5923
+ } else if (Xa.test(c))
5898
5924
  t.object.startMaterial(c.substring(7).trim(), t.materialLibraries);
5899
- else if (Wa.test(c))
5925
+ else if (Ba.test(c))
5900
5926
  t.materialLibraries.push(c.substring(7).trim());
5901
- else if (Xa.test(c))
5927
+ else if (qa.test(c))
5902
5928
  console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.');
5903
5929
  else if (d === "s") {
5904
5930
  if (s = c.split(" "), s.length > 1) {
@@ -5958,7 +5984,7 @@ class Va extends Ls {
5958
5984
  }
5959
5985
  }
5960
5986
  const ys = /* @__PURE__ */ new WeakMap();
5961
- class Ya extends Ls {
5987
+ class Ka extends Ls {
5962
5988
  /**
5963
5989
  * Constructs a new Draco loader.
5964
5990
  *
@@ -6101,7 +6127,7 @@ class Ya extends Ls {
6101
6127
  return e ? t.push(this._loadLibrary("draco_decoder.js", "text")) : (t.push(this._loadLibrary("draco_wasm_wrapper.js", "text")), t.push(this._loadLibrary("draco_decoder.wasm", "arraybuffer"))), this.decoderPending = Promise.all(t).then((n) => {
6102
6128
  const s = n[0];
6103
6129
  e || (this.decoderConfig.wasmBinary = n[1]);
6104
- const i = Ka.toString(), o = [
6130
+ const i = Za.toString(), o = [
6105
6131
  "/* draco decoder */",
6106
6132
  s,
6107
6133
  "",
@@ -6149,7 +6175,7 @@ class Ya extends Ls {
6149
6175
  return this.workerPool.length = 0, this.workerSourceURL !== "" && URL.revokeObjectURL(this.workerSourceURL), this;
6150
6176
  }
6151
6177
  }
6152
- function Ka() {
6178
+ function Za() {
6153
6179
  let r, e;
6154
6180
  onmessage = function(o) {
6155
6181
  const a = o.data;
@@ -6253,7 +6279,7 @@ function Ka() {
6253
6279
  }
6254
6280
  }
6255
6281
  }
6256
- class Za extends S {
6282
+ class Qa extends S {
6257
6283
  /**
6258
6284
  * Constructs a new water instance.
6259
6285
  *
@@ -6464,7 +6490,7 @@ function ri(r) {
6464
6490
  function ai(r, e, t, n, s, i = "水体(Water)") {
6465
6491
  const a = new P.TextureLoader().load(ti, (d) => {
6466
6492
  d.wrapS = d.wrapT = P.RepeatWrapping, d.repeat.set(s, s), d.generateMipmaps = !0, d.minFilter = P.LinearMipmapLinearFilter, d.magFilter = P.LinearFilter;
6467
- }), l = Math.min(1024, Math.max(256, Math.round(Math.sqrt(e * t) * 64))), c = new Za(r, {
6493
+ }), l = Math.min(1024, Math.max(256, Math.round(Math.sqrt(e * t) * 64))), c = new Qa(r, {
6468
6494
  textureWidth: l,
6469
6495
  textureHeight: l,
6470
6496
  waterNormals: a,
@@ -6527,9 +6553,9 @@ function ui(r) {
6527
6553
  const n = (o = r.name.split(".").pop()) == null ? void 0 : o.toLowerCase(), s = URL.createObjectURL(r);
6528
6554
  let i;
6529
6555
  if (n === "obj")
6530
- i = new Va();
6556
+ i = new Ya();
6531
6557
  else if (n === "gltf" || n === "glb") {
6532
- const a = new Ya();
6558
+ const a = new Ka();
6533
6559
  a.setDecoderPath(
6534
6560
  "https://www.gstatic.com/draco/versioned/decoders/1.5.7/"
6535
6561
  );
@@ -6581,7 +6607,7 @@ function di(r) {
6581
6607
  break;
6582
6608
  }
6583
6609
  }
6584
- const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6610
+ const Ja = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6585
6611
  __proto__: null,
6586
6612
  addBox: si,
6587
6613
  addDataPanel: ci,
@@ -6594,13 +6620,13 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6594
6620
  getDataPanel: St,
6595
6621
  importModelFromFile: ui,
6596
6622
  removeDataPanel: Bn
6597
- }, Symbol.toStringTag, { value: "Module" })), Ja = {
6623
+ }, Symbol.toStringTag, { value: "Module" })), _a = {
6598
6624
  key: 1,
6599
6625
  class: "toggle-placeholder"
6600
- }, _a = { class: "tree-icon" }, $a = { class: "tree-name" }, el = {
6626
+ }, $a = { class: "tree-icon" }, el = { class: "tree-name" }, tl = {
6601
6627
  key: 0,
6602
6628
  class: "tree-children"
6603
- }, tl = /* @__PURE__ */ Be({
6629
+ }, sl = /* @__PURE__ */ Be({
6604
6630
  __name: "TreeItem",
6605
6631
  props: {
6606
6632
  node: {},
@@ -6648,15 +6674,15 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6648
6674
  key: 0,
6649
6675
  class: "toggle-icon",
6650
6676
  onClick: A[0] || (A[0] = bs((M) => xi(o)(h.node.uuid), ["stop"]))
6651
- }, ue(a.value ? "▼" : "▶"), 1)) : (N(), F("span", Ja)),
6652
- b("span", _a, ue(p(h.node)), 1),
6653
- b("span", $a, ue(y(h.node)), 1),
6677
+ }, ue(a.value ? "▼" : "▶"), 1)) : (N(), F("span", _a)),
6678
+ b("span", $a, ue(p(h.node)), 1),
6679
+ b("span", el, ue(y(h.node)), 1),
6654
6680
  b("button", {
6655
6681
  class: "tree-delete",
6656
6682
  onClick: bs(m, ["stop"])
6657
6683
  }, "×")
6658
6684
  ], 2),
6659
- a.value && l.value ? (N(), F("div", el, [
6685
+ a.value && l.value ? (N(), F("div", tl, [
6660
6686
  (N(!0), F(Pe, null, ns(c.value, (M) => (N(), bt(f, {
6661
6687
  key: M.uuid,
6662
6688
  node: M,
@@ -6674,46 +6700,46 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6674
6700
  for (const [n, s] of e)
6675
6701
  t[n] = s;
6676
6702
  return t;
6677
- }, sl = /* @__PURE__ */ Xe(tl, [["__scopeId", "data-v-5ad9c842"]]), nl = { class: "property-group" }, il = { class: "row" }, ol = { class: "property-group" }, rl = { class: "row" }, al = { class: "property-group" }, ll = { class: "row" }, cl = {
6703
+ }, nl = /* @__PURE__ */ Xe(sl, [["__scopeId", "data-v-5ad9c842"]]), il = { class: "property-group" }, ol = { class: "row" }, rl = { class: "property-group" }, al = { class: "row" }, ll = { class: "property-group" }, cl = { class: "row" }, ul = {
6678
6704
  key: 0,
6679
6705
  class: "property-group light-group"
6680
- }, ul = { class: "slider-row" }, dl = {
6706
+ }, dl = { class: "slider-row" }, hl = {
6681
6707
  key: 1,
6682
6708
  class: "property-group material-group"
6683
- }, hl = { class: "color-row" }, fl = ["value"], pl = ["value"], Al = { class: "slider-row" }, ml = { class: "slider-value" }, gl = { class: "slider-row" }, yl = { class: "slider-value" }, bl = { class: "slider-row" }, xl = { class: "slider-value" }, Il = { class: "texture-row" }, Cl = { class: "texture-controls" }, wl = {
6709
+ }, fl = { class: "color-row" }, pl = ["value"], Al = ["value"], ml = { class: "slider-row" }, gl = { class: "slider-value" }, yl = { class: "slider-row" }, bl = { class: "slider-value" }, xl = { class: "slider-row" }, Il = { class: "slider-value" }, Cl = { class: "texture-row" }, wl = { class: "texture-controls" }, Ml = {
6684
6710
  key: 0,
6685
6711
  class: "texture-upload-btn",
6686
6712
  title: "上传法线贴图"
6687
- }, Ml = {
6713
+ }, vl = {
6688
6714
  class: "texture-modify-btn",
6689
6715
  title: "点击修改法线贴图"
6690
- }, vl = { class: "texture-filename" }, Tl = {
6716
+ }, Tl = { class: "texture-filename" }, El = {
6691
6717
  key: 0,
6692
6718
  class: "slider-row"
6693
- }, El = { class: "slider-value" }, Dl = { class: "texture-row" }, Pl = { class: "texture-controls" }, Rl = {
6719
+ }, Dl = { class: "slider-value" }, Pl = { class: "texture-row" }, Rl = { class: "texture-controls" }, Ol = {
6694
6720
  key: 0,
6695
6721
  class: "texture-upload-btn",
6696
6722
  title: "上传环境光遮蔽贴图"
6697
- }, Ol = {
6723
+ }, Sl = {
6698
6724
  class: "texture-modify-btn",
6699
6725
  title: "点击修改 AO 贴图"
6700
- }, Sl = { class: "texture-filename" }, Ll = {
6726
+ }, Ll = { class: "texture-filename" }, Nl = {
6701
6727
  key: 1,
6702
6728
  class: "slider-row"
6703
- }, Nl = { class: "slider-value" }, Hl = { class: "texture-row" }, kl = { class: "texture-controls" }, jl = {
6729
+ }, Hl = { class: "slider-value" }, kl = { class: "texture-row" }, jl = { class: "texture-controls" }, Fl = {
6704
6730
  key: 0,
6705
6731
  class: "texture-upload-btn",
6706
6732
  title: "上传模型贴图"
6707
- }, Fl = {
6733
+ }, Ul = {
6708
6734
  class: "texture-modify-btn",
6709
6735
  title: "点击修改模型贴图"
6710
- }, Ul = { class: "texture-filename" }, zl = {
6736
+ }, zl = { class: "texture-filename" }, Gl = {
6711
6737
  key: 2,
6712
6738
  class: "material-hint"
6713
- }, Gl = {
6739
+ }, Wl = {
6714
6740
  key: 2,
6715
6741
  class: "property-group water-group"
6716
- }, Wl = { class: "color-row" }, Bl = ["value"], Xl = ["value"], ql = /* @__PURE__ */ Be({
6742
+ }, Bl = { class: "color-row" }, Xl = ["value"], ql = ["value"], Vl = /* @__PURE__ */ Be({
6717
6743
  __name: "TransformTab",
6718
6744
  props: {
6719
6745
  transform: {},
@@ -6983,9 +7009,9 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6983
7009
  },
6984
7010
  { immediate: !0 }
6985
7011
  ), (D, x) => (N(), F("div", null, [
6986
- b("div", nl, [
7012
+ b("div", il, [
6987
7013
  x[19] || (x[19] = b("label", null, "位置", -1)),
6988
- b("div", il, [
7014
+ b("div", ol, [
6989
7015
  x[16] || (x[16] = b("span", null, "X:", -1)),
6990
7016
  j(b("input", {
6991
7017
  type: "number",
@@ -7030,9 +7056,9 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7030
7056
  ])
7031
7057
  ])
7032
7058
  ]),
7033
- b("div", ol, [
7059
+ b("div", rl, [
7034
7060
  x[23] || (x[23] = b("label", null, "旋转 (弧度)", -1)),
7035
- b("div", rl, [
7061
+ b("div", al, [
7036
7062
  x[20] || (x[20] = b("span", null, "X:", -1)),
7037
7063
  j(b("input", {
7038
7064
  type: "number",
@@ -7077,9 +7103,9 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7077
7103
  ])
7078
7104
  ])
7079
7105
  ]),
7080
- b("div", al, [
7106
+ b("div", ll, [
7081
7107
  x[27] || (x[27] = b("label", null, "缩放", -1)),
7082
- b("div", ll, [
7108
+ b("div", cl, [
7083
7109
  x[24] || (x[24] = b("span", null, "X:", -1)),
7084
7110
  j(b("input", {
7085
7111
  type: "number",
@@ -7124,9 +7150,9 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7124
7150
  ])
7125
7151
  ])
7126
7152
  ]),
7127
- D.selectedObject && D.selectedObject.type === "DirectionalLight" ? (N(), F("div", cl, [
7153
+ D.selectedObject && D.selectedObject.type === "DirectionalLight" ? (N(), F("div", ul, [
7128
7154
  x[29] || (x[29] = b("label", null, "光源属性", -1)),
7129
- b("div", ul, [
7155
+ b("div", dl, [
7130
7156
  x[28] || (x[28] = b("span", { class: "slider-label" }, "强度", -1)),
7131
7157
  j(b("input", {
7132
7158
  type: "range",
@@ -7161,25 +7187,25 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7161
7187
  ])
7162
7188
  ])
7163
7189
  ])) : le("", !0),
7164
- D.selectedObject ? (N(), F("div", dl, [
7190
+ D.selectedObject ? (N(), F("div", hl, [
7165
7191
  x[45] || (x[45] = b("label", null, "材质", -1)),
7166
- b("div", hl, [
7192
+ b("div", fl, [
7167
7193
  x[30] || (x[30] = b("span", { class: "slider-label" }, "颜色", -1)),
7168
7194
  b("input", {
7169
7195
  type: "color",
7170
7196
  value: o.value,
7171
7197
  onInput: E,
7172
7198
  class: "color-picker"
7173
- }, null, 40, fl),
7199
+ }, null, 40, pl),
7174
7200
  b("input", {
7175
7201
  type: "text",
7176
7202
  value: o.value,
7177
7203
  onInput: L,
7178
7204
  class: "color-text-input",
7179
7205
  placeholder: "#ffffff"
7180
- }, null, 40, pl)
7206
+ }, null, 40, Al)
7181
7207
  ]),
7182
- b("div", Al, [
7208
+ b("div", ml, [
7183
7209
  x[31] || (x[31] = b("span", { class: "slider-label" }, "金属度", -1)),
7184
7210
  j(b("input", {
7185
7211
  type: "range",
@@ -7196,9 +7222,9 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7196
7222
  { number: !0 }
7197
7223
  ]
7198
7224
  ]),
7199
- b("span", ml, ue(i.metalness.toFixed(2)), 1)
7225
+ b("span", gl, ue(i.metalness.toFixed(2)), 1)
7200
7226
  ]),
7201
- b("div", gl, [
7227
+ b("div", yl, [
7202
7228
  x[32] || (x[32] = b("span", { class: "slider-label" }, "粗糙度", -1)),
7203
7229
  j(b("input", {
7204
7230
  type: "range",
@@ -7215,9 +7241,9 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7215
7241
  { number: !0 }
7216
7242
  ]
7217
7243
  ]),
7218
- b("span", yl, ue(i.roughness.toFixed(2)), 1)
7244
+ b("span", bl, ue(i.roughness.toFixed(2)), 1)
7219
7245
  ]),
7220
- b("div", bl, [
7246
+ b("div", xl, [
7221
7247
  x[33] || (x[33] = b("span", { class: "slider-label" }, "透明度", -1)),
7222
7248
  j(b("input", {
7223
7249
  type: "range",
@@ -7234,20 +7260,20 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7234
7260
  { number: !0 }
7235
7261
  ]
7236
7262
  ]),
7237
- b("span", xl, ue(i.opacity.toFixed(2)), 1)
7263
+ b("span", Il, ue(i.opacity.toFixed(2)), 1)
7238
7264
  ]),
7239
- b("div", Il, [
7265
+ b("div", Cl, [
7240
7266
  x[36] || (x[36] = b("span", { class: "slider-label" }, "法线贴图", -1)),
7241
- b("div", Cl, [
7267
+ b("div", wl, [
7242
7268
  l.value ? (N(), F(Pe, { key: 1 }, [
7243
- b("label", Ml, [
7269
+ b("label", vl, [
7244
7270
  b("input", {
7245
7271
  type: "file",
7246
7272
  accept: "image/*",
7247
7273
  onChange: B,
7248
7274
  class: "texture-file-input"
7249
7275
  }, null, 32),
7250
- b("span", vl, ue(c.value), 1),
7276
+ b("span", Tl, ue(c.value), 1),
7251
7277
  x[35] || (x[35] = b("span", { class: "modify-hint" }, "修改", -1))
7252
7278
  ]),
7253
7279
  b("button", {
@@ -7255,7 +7281,7 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7255
7281
  title: "移除法线贴图",
7256
7282
  onClick: $
7257
7283
  }, " ✕ ")
7258
- ], 64)) : (N(), F("label", wl, [
7284
+ ], 64)) : (N(), F("label", Ml, [
7259
7285
  b("input", {
7260
7286
  type: "file",
7261
7287
  accept: "image/*",
@@ -7266,7 +7292,7 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7266
7292
  ]))
7267
7293
  ])
7268
7294
  ]),
7269
- l.value ? (N(), F("div", Tl, [
7295
+ l.value ? (N(), F("div", El, [
7270
7296
  x[37] || (x[37] = b("span", { class: "slider-label" }, "法线强度", -1)),
7271
7297
  j(b("input", {
7272
7298
  type: "range",
@@ -7283,20 +7309,20 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7283
7309
  { number: !0 }
7284
7310
  ]
7285
7311
  ]),
7286
- b("span", El, ue(i.normalScale.toFixed(2)), 1)
7312
+ b("span", Dl, ue(i.normalScale.toFixed(2)), 1)
7287
7313
  ])) : le("", !0),
7288
- b("div", Dl, [
7314
+ b("div", Pl, [
7289
7315
  x[40] || (x[40] = b("span", { class: "slider-label" }, "AO 贴图", -1)),
7290
- b("div", Pl, [
7316
+ b("div", Rl, [
7291
7317
  y.value ? (N(), F(Pe, { key: 1 }, [
7292
- b("label", Ol, [
7318
+ b("label", Sl, [
7293
7319
  b("input", {
7294
7320
  type: "file",
7295
7321
  accept: "image/*",
7296
7322
  onChange: K,
7297
7323
  class: "texture-file-input"
7298
7324
  }, null, 32),
7299
- b("span", Sl, ue(h.value), 1),
7325
+ b("span", Ll, ue(h.value), 1),
7300
7326
  x[39] || (x[39] = b("span", { class: "modify-hint" }, "修改", -1))
7301
7327
  ]),
7302
7328
  b("button", {
@@ -7304,7 +7330,7 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7304
7330
  title: "移除 AO 贴图",
7305
7331
  onClick: ke
7306
7332
  }, " ✕ ")
7307
- ], 64)) : (N(), F("label", Rl, [
7333
+ ], 64)) : (N(), F("label", Ol, [
7308
7334
  b("input", {
7309
7335
  type: "file",
7310
7336
  accept: "image/*",
@@ -7315,7 +7341,7 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7315
7341
  ]))
7316
7342
  ])
7317
7343
  ]),
7318
- y.value ? (N(), F("div", Ll, [
7344
+ y.value ? (N(), F("div", Nl, [
7319
7345
  x[41] || (x[41] = b("span", { class: "slider-label" }, "AO 强度", -1)),
7320
7346
  j(b("input", {
7321
7347
  type: "range",
@@ -7332,20 +7358,20 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7332
7358
  { number: !0 }
7333
7359
  ]
7334
7360
  ]),
7335
- b("span", Nl, ue(i.aoIntensity.toFixed(2)), 1)
7361
+ b("span", Hl, ue(i.aoIntensity.toFixed(2)), 1)
7336
7362
  ])) : le("", !0),
7337
- b("div", Hl, [
7363
+ b("div", kl, [
7338
7364
  x[44] || (x[44] = b("span", { class: "slider-label" }, "模型贴图", -1)),
7339
- b("div", kl, [
7365
+ b("div", jl, [
7340
7366
  u.value ? (N(), F(Pe, { key: 1 }, [
7341
- b("label", Fl, [
7367
+ b("label", Ul, [
7342
7368
  b("input", {
7343
7369
  type: "file",
7344
7370
  accept: "image/*",
7345
7371
  onChange: k,
7346
7372
  class: "texture-file-input"
7347
7373
  }, null, 32),
7348
- b("span", Ul, ue(m.value), 1),
7374
+ b("span", zl, ue(m.value), 1),
7349
7375
  x[43] || (x[43] = b("span", { class: "modify-hint" }, "修改", -1))
7350
7376
  ]),
7351
7377
  b("button", {
@@ -7353,7 +7379,7 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7353
7379
  title: "移除模型贴图",
7354
7380
  onClick: te
7355
7381
  }, " ✕ ")
7356
- ], 64)) : (N(), F("label", jl, [
7382
+ ], 64)) : (N(), F("label", Fl, [
7357
7383
  b("input", {
7358
7384
  type: "file",
7359
7385
  accept: "image/*",
@@ -7364,43 +7390,43 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7364
7390
  ]))
7365
7391
  ])
7366
7392
  ]),
7367
- a.value ? le("", !0) : (N(), F("div", zl, " ⚠️ 当前材质不支持金属度/粗糙度(仅支持 Standard/Phong) "))
7393
+ a.value ? le("", !0) : (N(), F("div", Gl, " ⚠️ 当前材质不支持金属度/粗糙度(仅支持 Standard/Phong) "))
7368
7394
  ])) : le("", !0),
7369
- nt.value ? (N(), F("div", Gl, [
7395
+ nt.value ? (N(), F("div", Wl, [
7370
7396
  x[47] || (x[47] = b("label", null, "水体属性", -1)),
7371
- b("div", Wl, [
7397
+ b("div", Bl, [
7372
7398
  x[46] || (x[46] = b("span", { class: "slider-label" }, "水体颜色", -1)),
7373
7399
  b("input", {
7374
7400
  type: "color",
7375
7401
  value: Fe.value,
7376
7402
  onInput: fi,
7377
7403
  class: "color-picker"
7378
- }, null, 40, Bl),
7404
+ }, null, 40, Xl),
7379
7405
  b("input", {
7380
7406
  type: "text",
7381
7407
  value: Fe.value,
7382
7408
  onInput: pi,
7383
7409
  class: "color-text-input",
7384
7410
  placeholder: "#4fc3f7"
7385
- }, null, 40, Xl)
7411
+ }, null, 40, ql)
7386
7412
  ])
7387
7413
  ])) : le("", !0)
7388
7414
  ]));
7389
7415
  }
7390
- }), Vl = /* @__PURE__ */ Xe(ql, [["__scopeId", "data-v-a0505cb0"]]), Yl = { class: "userdata-tab" }, Kl = { class: "property-group userdata-group" }, Zl = { class: "userdata-add-row" }, Ql = ["onKeyup"], Jl = {
7416
+ }), Yl = /* @__PURE__ */ Xe(Vl, [["__scopeId", "data-v-a0505cb0"]]), Kl = { class: "userdata-tab" }, Zl = { class: "property-group userdata-group" }, Ql = { class: "userdata-add-row" }, Jl = ["onKeyup"], _l = {
7391
7417
  key: 0,
7392
7418
  class: "userdata-list"
7393
- }, _l = { class: "ud-key" }, $l = {
7419
+ }, $l = { class: "ud-key" }, ec = {
7394
7420
  key: 0,
7395
7421
  class: "ud-value-readonly",
7396
7422
  title: "isMovable 为系统属性,不可修改"
7397
- }, ec = { class: "ud-value-json-preview" }, tc = ["onClick"], sc = {
7423
+ }, tc = { class: "ud-value-json-preview" }, sc = ["onClick"], nc = {
7398
7424
  key: 0,
7399
7425
  class: "ud-json-error"
7400
- }, nc = { class: "ud-json-actions" }, ic = ["onClick"], oc = ["onClick"], rc = {
7426
+ }, ic = { class: "ud-json-actions" }, oc = ["onClick"], rc = ["onClick"], ac = {
7401
7427
  key: 1,
7402
7428
  class: "userdata-empty"
7403
- }, ac = /* @__PURE__ */ Be({
7429
+ }, lc = /* @__PURE__ */ Be({
7404
7430
  __name: "UserDataTab",
7405
7431
  props: {
7406
7432
  selectedObject: {}
@@ -7515,10 +7541,10 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7515
7541
  C ? c(C) : a.value = [], s.value = null, i.value = "";
7516
7542
  },
7517
7543
  { immediate: !0 }
7518
- ), (C, g) => (N(), F("div", Yl, [
7519
- b("div", Kl, [
7544
+ ), (C, g) => (N(), F("div", Kl, [
7545
+ b("div", Zl, [
7520
7546
  g[3] || (g[3] = b("label", null, "userData 属性", -1)),
7521
- b("div", Zl, [
7547
+ b("div", Ql, [
7522
7548
  j(b("input", {
7523
7549
  type: "text",
7524
7550
  "onUpdate:modelValue": g[0] || (g[0] = (w) => t.value = w),
@@ -7533,7 +7559,7 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7533
7559
  placeholder: "值",
7534
7560
  class: "ud-input ud-textarea",
7535
7561
  onKeyup: rt(bs(u, ["prevent"]), ["enter"])
7536
- }, null, 40, Ql), [
7562
+ }, null, 40, Jl), [
7537
7563
  [Y, n.value]
7538
7564
  ]),
7539
7565
  b("button", {
@@ -7542,7 +7568,7 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7542
7568
  onClick: u
7543
7569
  }, " + ")
7544
7570
  ]),
7545
- a.value.length > 0 ? (N(), F("div", Jl, [
7571
+ a.value.length > 0 ? (N(), F("div", _l, [
7546
7572
  (N(!0), F(Pe, null, ns(a.value, (w, T) => (N(), F("div", {
7547
7573
  key: w.key,
7548
7574
  class: ve(["userdata-item", {
@@ -7550,17 +7576,17 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7550
7576
  "editing-json": s.value === w.key
7551
7577
  }])
7552
7578
  }, [
7553
- b("span", _l, ue(w.key), 1),
7554
- w.key === "isMovable" ? (N(), F("span", $l, ue(String(w.value)) + " 🔒 ", 1)) : w.key !== "isMovable" ? (N(), F(Pe, { key: 1 }, [
7579
+ b("span", $l, ue(w.key), 1),
7580
+ w.key === "isMovable" ? (N(), F("span", ec, ue(String(w.value)) + " 🔒 ", 1)) : w.key !== "isMovable" ? (N(), F(Pe, { key: 1 }, [
7555
7581
  s.value !== w.key ? (N(), F(Pe, { key: 0 }, [
7556
- b("span", ec, ue(p(w.value)), 1),
7582
+ b("span", tc, ue(p(w.value)), 1),
7557
7583
  b("button", {
7558
7584
  class: "ud-btn edit-json-btn",
7559
7585
  title: "编辑对象",
7560
7586
  onClick: (E) => y(w.key)
7561
- }, " ✎ ", 8, tc)
7587
+ }, " ✎ ", 8, sc)
7562
7588
  ], 64)) : (N(), F(Pe, { key: 1 }, [
7563
- o.value ? (N(), F("div", sc, " ⚠ " + ue(o.value), 1)) : le("", !0),
7589
+ o.value ? (N(), F("div", nc, " ⚠ " + ue(o.value), 1)) : le("", !0),
7564
7590
  j(b("textarea", {
7565
7591
  "onUpdate:modelValue": g[2] || (g[2] = (E) => i.value = E),
7566
7592
  class: ve(["ud-json-textarea", { "has-error": o.value }]),
@@ -7569,12 +7595,12 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7569
7595
  }, null, 34), [
7570
7596
  [Y, i.value]
7571
7597
  ]),
7572
- b("div", nc, [
7598
+ b("div", ic, [
7573
7599
  b("button", {
7574
7600
  class: "ud-btn apply-btn",
7575
7601
  title: "应用修改",
7576
7602
  onClick: (E) => A(w.key)
7577
- }, " ✓ ", 8, ic),
7603
+ }, " ✓ ", 8, oc),
7578
7604
  b("button", {
7579
7605
  class: "ud-btn cancel-btn",
7580
7606
  title: "取消编辑",
@@ -7587,10 +7613,10 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7587
7613
  class: "ud-btn del-btn",
7588
7614
  title: "删除",
7589
7615
  onClick: (E) => m(w.key)
7590
- }, " ✕ ", 8, oc)) : le("", !0)
7616
+ }, " ✕ ", 8, rc)) : le("", !0)
7591
7617
  ], 64)) : le("", !0)
7592
7618
  ], 2))), 128))
7593
- ])) : (N(), F("div", rc, "暂无自定义数据")),
7619
+ ])) : (N(), F("div", ac, "暂无自定义数据")),
7594
7620
  b("button", {
7595
7621
  class: "get-camera-btn",
7596
7622
  onClick: M
@@ -7598,7 +7624,7 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7598
7624
  ])
7599
7625
  ]));
7600
7626
  }
7601
- }), lc = /* @__PURE__ */ Xe(ac, [["__scopeId", "data-v-4e117415"]]), cc = { class: "datapanel-tab" }, uc = { class: "property-group" }, dc = { class: "dp-section" }, hc = { class: "dp-visibility-row" }, fc = { class: "dp-toggle" }, pc = { class: "dp-visibility-text" }, Ac = { class: "dp-section" }, mc = { class: "dp-section" }, gc = { class: "dp-size-row" }, yc = { class: "dp-size-value" }, bc = { class: "dp-section" }, xc = { class: "dp-size-row" }, Ic = { class: "dp-section" }, Cc = { class: "dp-size-row" }, wc = { class: "dp-section" }, Mc = { class: "dp-size-row" }, vc = { class: "dp-section" }, Tc = { class: "dp-list" }, Ec = ["onUpdate:modelValue"], Dc = ["onUpdate:modelValue"], Pc = ["onUpdate:modelValue"], Rc = ["onUpdate:modelValue"], Oc = ["onClick"], Sc = { class: "dp-add-row" }, Lc = /* @__PURE__ */ Be({
7627
+ }), cc = /* @__PURE__ */ Xe(lc, [["__scopeId", "data-v-4e117415"]]), uc = { class: "datapanel-tab" }, dc = { class: "property-group" }, hc = { class: "dp-section" }, fc = { class: "dp-visibility-row" }, pc = { class: "dp-toggle" }, Ac = { class: "dp-visibility-text" }, mc = { class: "dp-section" }, gc = { class: "dp-section" }, yc = { class: "dp-size-row" }, bc = { class: "dp-size-value" }, xc = { class: "dp-section" }, Ic = { class: "dp-size-row" }, Cc = { class: "dp-section" }, wc = { class: "dp-size-row" }, Mc = { class: "dp-section" }, vc = { class: "dp-size-row" }, Tc = { class: "dp-section" }, Ec = { class: "dp-list" }, Dc = ["onUpdate:modelValue"], Pc = ["onUpdate:modelValue"], Rc = ["onUpdate:modelValue"], Oc = ["onUpdate:modelValue"], Sc = ["onClick"], Lc = { class: "dp-add-row" }, Nc = /* @__PURE__ */ Be({
7602
7628
  __name: "DataPanelTab",
7603
7629
  props: {
7604
7630
  selectedObject: {}
@@ -7647,13 +7673,13 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7647
7673
  }, 0);
7648
7674
  },
7649
7675
  { immediate: !0 }
7650
- ), (C, g) => (N(), F("div", cc, [
7651
- b("div", uc, [
7676
+ ), (C, g) => (N(), F("div", uc, [
7677
+ b("div", dc, [
7652
7678
  g[29] || (g[29] = b("label", null, "📊 数据面板", -1)),
7653
- b("div", dc, [
7679
+ b("div", hc, [
7654
7680
  g[14] || (g[14] = b("span", { class: "dp-label-sm" }, "可见性", -1)),
7655
- b("div", hc, [
7656
- b("label", fc, [
7681
+ b("div", fc, [
7682
+ b("label", pc, [
7657
7683
  j(b("input", {
7658
7684
  type: "checkbox",
7659
7685
  "onUpdate:modelValue": g[0] || (g[0] = (w) => s.value = w)
@@ -7662,10 +7688,10 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7662
7688
  ]),
7663
7689
  g[13] || (g[13] = b("span", { class: "dp-toggle-slider" }, null, -1))
7664
7690
  ]),
7665
- b("span", pc, ue(s.value ? "显示中" : "已隐藏"), 1)
7691
+ b("span", Ac, ue(s.value ? "显示中" : "已隐藏"), 1)
7666
7692
  ])
7667
7693
  ]),
7668
- b("div", Ac, [
7694
+ b("div", mc, [
7669
7695
  g[15] || (g[15] = b("span", { class: "dp-label-sm" }, "标题", -1)),
7670
7696
  j(b("input", {
7671
7697
  type: "text",
@@ -7676,9 +7702,9 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7676
7702
  [Y, t.value]
7677
7703
  ])
7678
7704
  ]),
7679
- b("div", mc, [
7705
+ b("div", gc, [
7680
7706
  g[18] || (g[18] = b("span", { class: "dp-label-sm" }, "面板宽度", -1)),
7681
- b("div", gc, [
7707
+ b("div", yc, [
7682
7708
  g[16] || (g[16] = b("span", { class: "dp-range-label" }, "窄", -1)),
7683
7709
  j(b("input", {
7684
7710
  type: "range",
@@ -7696,12 +7722,12 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7696
7722
  ]
7697
7723
  ]),
7698
7724
  g[17] || (g[17] = b("span", { class: "dp-range-label" }, "宽", -1)),
7699
- b("span", yc, ue(l.value) + "em", 1)
7725
+ b("span", bc, ue(l.value) + "em", 1)
7700
7726
  ])
7701
7727
  ]),
7702
- b("div", bc, [
7728
+ b("div", xc, [
7703
7729
  g[21] || (g[21] = b("span", { class: "dp-label-sm" }, "面板左右位置", -1)),
7704
- b("div", xc, [
7730
+ b("div", Ic, [
7705
7731
  g[19] || (g[19] = b("span", { class: "dp-range-label" }, "偏左", -1)),
7706
7732
  j(b("input", {
7707
7733
  type: "range",
@@ -7734,9 +7760,9 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7734
7760
  ])
7735
7761
  ])
7736
7762
  ]),
7737
- b("div", Ic, [
7763
+ b("div", Cc, [
7738
7764
  g[24] || (g[24] = b("span", { class: "dp-label-sm" }, "面板上下位置", -1)),
7739
- b("div", Cc, [
7765
+ b("div", wc, [
7740
7766
  g[22] || (g[22] = b("span", { class: "dp-range-label" }, "偏下", -1)),
7741
7767
  j(b("input", {
7742
7768
  type: "range",
@@ -7769,9 +7795,9 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7769
7795
  ])
7770
7796
  ])
7771
7797
  ]),
7772
- b("div", wc, [
7798
+ b("div", Mc, [
7773
7799
  g[27] || (g[27] = b("span", { class: "dp-label-sm" }, "面板前后位置", -1)),
7774
- b("div", Mc, [
7800
+ b("div", vc, [
7775
7801
  g[25] || (g[25] = b("span", { class: "dp-range-label" }, "近", -1)),
7776
7802
  j(b("input", {
7777
7803
  type: "range",
@@ -7804,9 +7830,9 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7804
7830
  ])
7805
7831
  ])
7806
7832
  ]),
7807
- b("div", vc, [
7833
+ b("div", Tc, [
7808
7834
  g[28] || (g[28] = b("span", { class: "dp-label-sm" }, "数据项", -1)),
7809
- b("div", Tc, [
7835
+ b("div", Ec, [
7810
7836
  (N(!0), F(Pe, null, ns(n.value, (w, T) => (N(), F("div", {
7811
7837
  key: T,
7812
7838
  class: "dp-item"
@@ -7816,7 +7842,7 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7816
7842
  class: "dp-input dp-input-sm",
7817
7843
  "onUpdate:modelValue": (E) => w.label = E,
7818
7844
  placeholder: "标签"
7819
- }, null, 8, Ec), [
7845
+ }, null, 8, Dc), [
7820
7846
  [Y, w.label]
7821
7847
  ]),
7822
7848
  j(b("input", {
@@ -7824,7 +7850,7 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7824
7850
  class: "dp-input dp-input-sm",
7825
7851
  "onUpdate:modelValue": (E) => w.value = E,
7826
7852
  placeholder: "值"
7827
- }, null, 8, Dc), [
7853
+ }, null, 8, Pc), [
7828
7854
  [Y, w.value]
7829
7855
  ]),
7830
7856
  j(b("input", {
@@ -7832,7 +7858,7 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7832
7858
  class: "dp-input dp-input-xs",
7833
7859
  "onUpdate:modelValue": (E) => w.unit = E,
7834
7860
  placeholder: "单位"
7835
- }, null, 8, Pc), [
7861
+ }, null, 8, Rc), [
7836
7862
  [Y, w.unit]
7837
7863
  ]),
7838
7864
  j(b("input", {
@@ -7840,17 +7866,17 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7840
7866
  class: "dp-input dp-input-xs",
7841
7867
  "onUpdate:modelValue": (E) => w.code = E,
7842
7868
  placeholder: "编码"
7843
- }, null, 8, Rc), [
7869
+ }, null, 8, Oc), [
7844
7870
  [Y, w.code]
7845
7871
  ]),
7846
7872
  b("button", {
7847
7873
  class: "dp-btn dp-btn-del",
7848
7874
  onClick: (E) => f(T),
7849
7875
  title: "删除此项"
7850
- }, "✕", 8, Oc)
7876
+ }, "✕", 8, Sc)
7851
7877
  ]))), 128))
7852
7878
  ]),
7853
- b("div", Sc, [
7879
+ b("div", Lc, [
7854
7880
  j(b("input", {
7855
7881
  type: "text",
7856
7882
  class: "dp-input dp-input-sm",
@@ -7897,8 +7923,8 @@ const Qa = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7897
7923
  ])
7898
7924
  ]));
7899
7925
  }
7900
- }), Nc = /* @__PURE__ */ Xe(Lc, [["__scopeId", "data-v-b4c7c7dc"]]);
7901
- function Hc(r) {
7926
+ }), Hc = /* @__PURE__ */ Xe(Nc, [["__scopeId", "data-v-b4c7c7dc"]]);
7927
+ function kc(r) {
7902
7928
  const e = z(/* @__PURE__ */ new Set()), t = (s) => {
7903
7929
  const i = new Set(e.value);
7904
7930
  i.has(s) ? i.delete(s) : i.add(s), e.value = i;
@@ -7918,22 +7944,22 @@ function Hc(r) {
7918
7944
  { immediate: !0 }
7919
7945
  ), { expandedSet: e, toggleExpand: t };
7920
7946
  }
7921
- const kc = {
7947
+ const jc = {
7922
7948
  key: 0,
7923
7949
  class: "property-panel"
7924
- }, jc = { class: "property-group tree-group" }, Fc = { class: "tree-container" }, Uc = {
7950
+ }, Fc = { class: "property-group tree-group" }, Uc = { class: "tree-container" }, zc = {
7925
7951
  key: 0,
7926
7952
  class: "tree-empty"
7927
- }, zc = { class: "property-group" }, Gc = { class: "transform-mode-row" }, Wc = {
7953
+ }, Gc = { class: "property-group" }, Wc = { class: "transform-mode-row" }, Bc = {
7928
7954
  key: 0,
7929
7955
  class: "tabs"
7930
- }, Bc = {
7956
+ }, Xc = {
7931
7957
  key: 1,
7932
7958
  class: "tab-content"
7933
- }, Xc = {
7959
+ }, qc = {
7934
7960
  key: 1,
7935
7961
  class: "property-panel empty"
7936
- }, qc = /* @__PURE__ */ Be({
7962
+ }, Vc = /* @__PURE__ */ Be({
7937
7963
  __name: "index",
7938
7964
  props: {
7939
7965
  transform: {},
@@ -7949,16 +7975,16 @@ const kc = {
7949
7975
  const o = () => n("propertyChange"), a = z("transform"), l = ot(() => {
7950
7976
  var y;
7951
7977
  return !!(t.selectedObject && ((y = t.selectedObject.userData) != null && y._hasDataPanel));
7952
- }), c = z(0), d = Ci(t, "selectedObject"), { expandedSet: u, toggleExpand: m } = Hc(d);
7978
+ }), c = z(0), d = Ci(t, "selectedObject"), { expandedSet: u, toggleExpand: m } = kc(d);
7953
7979
  wi("treeExpand", { expandedSet: u, toggleExpand: m });
7954
7980
  const p = (y) => {
7955
7981
  c.value++, n("treeDelete", y);
7956
7982
  };
7957
- return (y, h) => y.transform ? (N(), F("div", kc, [
7958
- b("div", jc, [
7983
+ return (y, h) => y.transform ? (N(), F("div", jc, [
7984
+ b("div", Fc, [
7959
7985
  h[7] || (h[7] = b("label", null, "场景物体", -1)),
7960
- b("div", Fc, [
7961
- (N(!0), F(Pe, null, ns(y.treeData, (A) => (N(), bt(sl, {
7986
+ b("div", Uc, [
7987
+ (N(!0), F(Pe, null, ns(y.treeData, (A) => (N(), bt(nl, {
7962
7988
  key: A.uuid,
7963
7989
  node: A,
7964
7990
  "selected-object": y.selectedObject,
@@ -7966,12 +7992,12 @@ const kc = {
7966
7992
  onSelect: h[0] || (h[0] = (f) => n("treeSelect", f)),
7967
7993
  onDelete: p
7968
7994
  }, null, 8, ["node", "selected-object", "version"]))), 128)),
7969
- y.treeData.length === 0 ? (N(), F("div", Uc, "暂无物体")) : le("", !0)
7995
+ y.treeData.length === 0 ? (N(), F("div", zc, "暂无物体")) : le("", !0)
7970
7996
  ])
7971
7997
  ]),
7972
- b("div", zc, [
7998
+ b("div", Gc, [
7973
7999
  h[8] || (h[8] = b("label", null, "全局属性", -1)),
7974
- b("div", Gc, [
8000
+ b("div", Wc, [
7975
8001
  b("button", {
7976
8002
  class: ve(["mode-btn", { active: s.value === "translate" }]),
7977
8003
  title: "移动 (W)",
@@ -7989,7 +8015,7 @@ const kc = {
7989
8015
  }, " ⤡ 缩放 ", 2)
7990
8016
  ])
7991
8017
  ]),
7992
- y.selectedObject ? (N(), F("div", Wc, [
8018
+ y.selectedObject ? (N(), F("div", Bc, [
7993
8019
  b("button", {
7994
8020
  class: ve(["tab-btn", { active: a.value === "transform" }]),
7995
8021
  onClick: h[4] || (h[4] = (A) => a.value = "transform")
@@ -8004,26 +8030,26 @@ const kc = {
8004
8030
  onClick: h[6] || (h[6] = (A) => a.value = "datapanel")
8005
8031
  }, " 📊 数据面板 ", 2)) : le("", !0)
8006
8032
  ])) : le("", !0),
8007
- y.selectedObject ? (N(), F("div", Bc, [
8008
- j(rs(Vl, {
8033
+ y.selectedObject ? (N(), F("div", Xc, [
8034
+ j(rs(Yl, {
8009
8035
  transform: y.transform,
8010
8036
  "selected-object": y.selectedObject,
8011
8037
  onPropertyChange: o
8012
8038
  }, null, 8, ["transform", "selected-object"]), [
8013
8039
  [Ze, a.value === "transform"]
8014
8040
  ]),
8015
- j(rs(lc, { "selected-object": y.selectedObject }, null, 8, ["selected-object"]), [
8041
+ j(rs(cc, { "selected-object": y.selectedObject }, null, 8, ["selected-object"]), [
8016
8042
  [Ze, a.value === "userdata"]
8017
8043
  ]),
8018
- j(rs(Nc, { "selected-object": y.selectedObject }, null, 8, ["selected-object"]), [
8044
+ j(rs(Hc, { "selected-object": y.selectedObject }, null, 8, ["selected-object"]), [
8019
8045
  [Ze, a.value === "datapanel"]
8020
8046
  ])
8021
8047
  ])) : le("", !0)
8022
- ])) : (N(), F("div", Xc, h[9] || (h[9] = [
8048
+ ])) : (N(), F("div", qc, h[9] || (h[9] = [
8023
8049
  b("p", null, "未选中任何模型", -1)
8024
8050
  ])));
8025
8051
  }
8026
- }), Vc = /* @__PURE__ */ Xe(qc, [["__scopeId", "data-v-c92c9fa7"]]), Yc = { class: "top-bar" }, Kc = { class: "left-section" }, Zc = { class: "dropdown-menu" }, Qc = { class: "dropdown-menu sub-menu" }, Jc = { class: "dropdown-menu sub-menu" }, _c = { class: "dropdown-menu" }, $c = /* @__PURE__ */ Be({
8052
+ }), Yc = /* @__PURE__ */ Xe(Vc, [["__scopeId", "data-v-c92c9fa7"]]), Kc = { class: "top-bar" }, Zc = { class: "left-section" }, Qc = { class: "dropdown-menu" }, Jc = { class: "dropdown-menu sub-menu" }, _c = { class: "dropdown-menu sub-menu" }, $c = { class: "dropdown-menu" }, eu = /* @__PURE__ */ Be({
8027
8053
  __name: "TopBar",
8028
8054
  emits: ["addModel", "importModel"],
8029
8055
  setup(r, { emit: e }) {
@@ -8040,15 +8066,15 @@ const kc = {
8040
8066
  if (!localStorage.getItem("test_id")) return localStorage.setItem("test_id", "123");
8041
8067
  _n(localStorage.getItem("test_id"));
8042
8068
  }, y = () => Zn();
8043
- return (h, A) => (N(), F("div", Yc, [
8044
- b("div", Kc, [
8069
+ return (h, A) => (N(), F("div", Kc, [
8070
+ b("div", Zc, [
8045
8071
  b("div", {
8046
8072
  class: "dropdown-wrapper",
8047
8073
  onMouseenter: A[11] || (A[11] = (f) => n.value = !0),
8048
8074
  onMouseleave: A[12] || (A[12] = (f) => n.value = !1)
8049
8075
  }, [
8050
8076
  A[17] || (A[17] = b("button", { class: "menu-btn" }, "添加", -1)),
8051
- j(b("div", Zc, [
8077
+ j(b("div", Qc, [
8052
8078
  b("div", {
8053
8079
  class: "menu-item",
8054
8080
  onClick: d
@@ -8059,7 +8085,7 @@ const kc = {
8059
8085
  onMouseleave: A[6] || (A[6] = (f) => s.value = !1)
8060
8086
  }, [
8061
8087
  A[15] || (A[15] = b("span", null, "网格", -1)),
8062
- j(b("div", Qc, [
8088
+ j(b("div", Jc, [
8063
8089
  b("div", {
8064
8090
  class: "menu-item",
8065
8091
  onClick: A[0] || (A[0] = (f) => o("addModel", "box"))
@@ -8094,7 +8120,7 @@ const kc = {
8094
8120
  onMouseleave: A[9] || (A[9] = (f) => i.value = !1)
8095
8121
  }, [
8096
8122
  A[16] || (A[16] = b("span", null, "光源", -1)),
8097
- j(b("div", Jc, [
8123
+ j(b("div", _c, [
8098
8124
  b("div", {
8099
8125
  class: "menu-item",
8100
8126
  onClick: A[7] || (A[7] = (f) => o("addModel", "directionalLight"))
@@ -8121,7 +8147,7 @@ const kc = {
8121
8147
  onMouseleave: A[14] || (A[14] = (f) => t.value = !1)
8122
8148
  }, [
8123
8149
  A[19] || (A[19] = b("button", { class: "menu-btn" }, "帮助", -1)),
8124
- j(b("div", _c, [
8150
+ j(b("div", $c, [
8125
8151
  b("div", {
8126
8152
  class: "menu-item",
8127
8153
  onClick: m
@@ -8153,10 +8179,10 @@ const kc = {
8153
8179
  }, null, 544)
8154
8180
  ]));
8155
8181
  }
8156
- }), eu = /* @__PURE__ */ Xe($c, [["__scopeId", "data-v-a9ed5f3e"]]), tu = { class: "bottom-bar" }, su = /* @__PURE__ */ Be({
8182
+ }), tu = /* @__PURE__ */ Xe(eu, [["__scopeId", "data-v-a9ed5f3e"]]), su = { class: "bottom-bar" }, nu = /* @__PURE__ */ Be({
8157
8183
  __name: "BottomBar",
8158
8184
  setup(r) {
8159
- return (e, t) => (N(), F("div", tu, t[0] || (t[0] = [
8185
+ return (e, t) => (N(), F("div", su, t[0] || (t[0] = [
8160
8186
  b("div", { class: "status-left" }, [
8161
8187
  b("span", null, "就绪")
8162
8188
  ], -1),
@@ -8165,10 +8191,10 @@ const kc = {
8165
8191
  ], -1)
8166
8192
  ])));
8167
8193
  }
8168
- }), nu = /* @__PURE__ */ Xe(su, [["__scopeId", "data-v-3427bb27"]]), iu = { class: "app-layout" }, ou = {
8194
+ }), iu = /* @__PURE__ */ Xe(nu, [["__scopeId", "data-v-3427bb27"]]), ou = { class: "app-layout" }, ru = {
8169
8195
  key: 0,
8170
8196
  class: "loading-overlay"
8171
- }, ru = /* @__PURE__ */ Be({
8197
+ }, au = /* @__PURE__ */ Be({
8172
8198
  __name: "DrawingBoard",
8173
8199
  props: {
8174
8200
  mode: { default: "edit" },
@@ -8227,13 +8253,13 @@ const kc = {
8227
8253
  return Mi(() => {
8228
8254
  A(), h.value && _o(h.value);
8229
8255
  }), vi(() => {
8230
- console.log("endset_three_editor destroy"), za();
8231
- }), (f, M) => (N(), F("div", iu, [
8232
- t.value ? (N(), F("div", ou, M[0] || (M[0] = [
8256
+ console.log("endset_three_editor destroy"), Ga();
8257
+ }), (f, M) => (N(), F("div", ou, [
8258
+ t.value ? (N(), F("div", ru, M[0] || (M[0] = [
8233
8259
  b("div", { class: "loading-spinner" }, null, -1),
8234
8260
  b("div", { class: "loading-text" }, "加载中...", -1)
8235
8261
  ]))) : le("", !0),
8236
- f.mode === "edit" ? (N(), bt(eu, {
8262
+ f.mode === "edit" ? (N(), bt(tu, {
8237
8263
  key: 1,
8238
8264
  onAddModel: l,
8239
8265
  onImportModel: c
@@ -8246,7 +8272,7 @@ const kc = {
8246
8272
  ref_key: "containerRef",
8247
8273
  ref: h
8248
8274
  }, null, 2),
8249
- f.mode === "edit" ? (N(), bt(Vc, {
8275
+ f.mode === "edit" ? (N(), bt(Yc, {
8250
8276
  key: 0,
8251
8277
  transform: s,
8252
8278
  "tree-data": d.value,
@@ -8257,17 +8283,17 @@ const kc = {
8257
8283
  onTransformModeChange: y
8258
8284
  }, null, 8, ["transform", "tree-data", "selected-object"])) : le("", !0)
8259
8285
  ], 2),
8260
- f.mode === "edit" ? (N(), bt(nu, { key: 2 })) : le("", !0)
8286
+ f.mode === "edit" ? (N(), bt(iu, { key: 2 })) : le("", !0)
8261
8287
  ]));
8262
8288
  }
8263
- }), Du = /* @__PURE__ */ Xe(ru, [["__scopeId", "data-v-1be6406e"]]);
8289
+ }), Pu = /* @__PURE__ */ Xe(au, [["__scopeId", "data-v-1be6406e"]]);
8264
8290
  export {
8265
- nu as BottomBar,
8291
+ iu as BottomBar,
8266
8292
  _t as DataPanel,
8267
- Du as DrawingBoard,
8268
- Vc as PropertyPanel,
8269
- eu as TopBar,
8270
- sl as TreeItem,
8293
+ Pu as DrawingBoard,
8294
+ Yc as PropertyPanel,
8295
+ tu as TopBar,
8296
+ nl as TreeItem,
8271
8297
  si as addBox,
8272
8298
  ci as addDataPanel,
8273
8299
  ii as addDirectionalLight,
@@ -8278,21 +8304,21 @@ export {
8278
8304
  ri as addWaterCylinder,
8279
8305
  li as addWaterPlane,
8280
8306
  _o as createCSS2DRenderer,
8281
- za as destroyEditor,
8307
+ Ga as destroyEditor,
8282
8308
  tr as disposeCSS2DRenderer,
8283
8309
  Fa as exportSceneToJSON,
8284
8310
  wa as focusOnObject,
8285
- du as getCSS2DRenderer,
8311
+ hu as getCSS2DRenderer,
8286
8312
  ja as getCamera,
8287
8313
  St as getDataPanel,
8288
- Eu as getRenderer,
8289
- Tu as getScene,
8314
+ Du as getRenderer,
8315
+ Eu as getScene,
8290
8316
  Ha as getSceneObjects,
8291
8317
  ka as getSelectedObject,
8292
8318
  ui as importModelFromFile,
8293
8319
  Zn as initDefaultMainCamera,
8294
8320
  la as initEditor,
8295
- Ua as loadSceneFromJSON,
8321
+ za as loadSceneFromJSON,
8296
8322
  Na as onSceneObjectsChangeCallback,
8297
8323
  Ta as registerModelDataPanel,
8298
8324
  Bn as removeDataPanel,
@@ -8307,7 +8333,7 @@ export {
8307
8333
  Sa as setSelectedObjectCallback,
8308
8334
  La as setTransformChangeCallback,
8309
8335
  xa as setTransformMode,
8310
- vu as updateDataPanelValue,
8311
- Hc as useTreeExpand
8336
+ Tu as updateDataPanelValue,
8337
+ kc as useTreeExpand
8312
8338
  };
8313
8339
  //# sourceMappingURL=three-editor.es.js.map