floor-editor-ts 1.3.0 → 1.3.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.
package/dist/floor-editor.es.js
CHANGED
|
@@ -6392,6 +6392,11 @@ function updateBackgroundImage(updates) {
|
|
|
6392
6392
|
if (f.backgroundImage) Object.assign(f.backgroundImage, updates);
|
|
6393
6393
|
});
|
|
6394
6394
|
}
|
|
6395
|
+
var cameraThumbnailOpacity = writable(.65);
|
|
6396
|
+
function updateCameraThumbnailOpacity(opacity) {
|
|
6397
|
+
const clamped = Math.min(1, Math.max(.05, opacity));
|
|
6398
|
+
cameraThumbnailOpacity.set(clamped);
|
|
6399
|
+
}
|
|
6395
6400
|
function addColumn(position, shape = "round") {
|
|
6396
6401
|
const id = uid$1();
|
|
6397
6402
|
mutate((f) => {
|
|
@@ -6989,19 +6994,34 @@ var DEFAULT_CONFIG = {
|
|
|
6989
6994
|
showCameraLabels: true,
|
|
6990
6995
|
cameraHeatmapMatrix: [],
|
|
6991
6996
|
siteCameras: [],
|
|
6992
|
-
cameraThumbnail: ""
|
|
6997
|
+
cameraThumbnail: "",
|
|
6998
|
+
cameraThumbnailOpacity: .65,
|
|
6999
|
+
canvasBackground: "#f8f9fa",
|
|
7000
|
+
floorPlateBackground: "#f8f9fa"
|
|
6993
7001
|
};
|
|
6994
7002
|
function normalizeConfig(value) {
|
|
6995
7003
|
if (!value || typeof value !== "object") return { ...DEFAULT_CONFIG };
|
|
6996
7004
|
const siteCameras = Array.isArray(value.siteCameras) ? value.siteCameras.filter((c) => !!c && typeof c === "object" && typeof c.serial === "string" && typeof c.name === "string") : DEFAULT_CONFIG.siteCameras;
|
|
6997
7005
|
const image = typeof value.cameraThumbnail === "string" ? value.cameraThumbnail ? value.cameraThumbnail : DEFAULT_CONFIG.cameraThumbnail : DEFAULT_CONFIG.cameraThumbnail;
|
|
7006
|
+
const opacity = typeof value.cameraThumbnailOpacity === "number" && value.cameraThumbnailOpacity >= 0 && value.cameraThumbnailOpacity <= 1 ? value.cameraThumbnailOpacity : DEFAULT_CONFIG.cameraThumbnailOpacity;
|
|
7007
|
+
const canvasBackground = normalizeColor$1(value.canvasBackground, DEFAULT_CONFIG.canvasBackground);
|
|
7008
|
+
const floorPlateBackground = normalizeColor$1(value.floorPlateBackground, DEFAULT_CONFIG.floorPlateBackground);
|
|
6998
7009
|
return {
|
|
6999
7010
|
...DEFAULT_CONFIG,
|
|
7000
7011
|
...value,
|
|
7001
7012
|
siteCameras,
|
|
7002
|
-
cameraThumbnail: image
|
|
7013
|
+
cameraThumbnail: image,
|
|
7014
|
+
cameraThumbnailOpacity: opacity,
|
|
7015
|
+
canvasBackground,
|
|
7016
|
+
floorPlateBackground
|
|
7003
7017
|
};
|
|
7004
7018
|
}
|
|
7019
|
+
function normalizeColor$1(value, fallback) {
|
|
7020
|
+
if (typeof value !== "string") return fallback;
|
|
7021
|
+
const trimmed = value.trim();
|
|
7022
|
+
if (/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(trimmed)) return trimmed;
|
|
7023
|
+
return fallback;
|
|
7024
|
+
}
|
|
7005
7025
|
function normalizeFloorData(data) {
|
|
7006
7026
|
if (!data || typeof data !== "object") return createDefaultProject();
|
|
7007
7027
|
if (!Array.isArray(data.floors) || data.floors.length === 0) return createDefaultProject();
|
|
@@ -58101,9 +58121,9 @@ var root_17$2 = /* @__PURE__ */ from_html(`<div class="text-[10px] text-gray-400
|
|
|
58101
58121
|
var root_18$2 = /* @__PURE__ */ from_html(`<button> </button>`);
|
|
58102
58122
|
var root_20$2 = /* @__PURE__ */ from_html(`<button draggable="true"><span role="button" tabindex="0"> </span> <div class="w-8 h-8 rounded-lg flex items-center justify-center"><div class="w-4 h-4 rounded-sm"></div></div> <span class="text-[10px] font-medium text-gray-600 leading-tight text-center"> </span></button>`);
|
|
58103
58123
|
var root_19$2 = /* @__PURE__ */ from_html(`<div class="mt-1"><h4 class="text-[10px] font-semibold text-gray-400 uppercase mb-1.5">Recent</h4> <div class="grid grid-cols-2 gap-2"></div></div> <hr class="border-gray-100"/>`, 1);
|
|
58104
|
-
var root_22$
|
|
58124
|
+
var root_22$1 = /* @__PURE__ */ from_html(`<span class="text-xs font-medium text-gray-600"> <mark class="bg-yellow-200 text-gray-800 rounded-sm px-0.5"> </mark> </span>`);
|
|
58105
58125
|
var root_23$2 = /* @__PURE__ */ from_html(`<span class="text-xs font-medium text-gray-600"> </span>`);
|
|
58106
|
-
var root_21$
|
|
58126
|
+
var root_21$2 = /* @__PURE__ */ from_html(`<button draggable="true"><span role="button" tabindex="0"> </span> <div class="w-10 h-10 rounded-lg flex items-center justify-center"><div class="w-5 h-5 rounded-sm"></div></div> <!> <span class="text-[10px] text-gray-400"> </span></button>`);
|
|
58107
58127
|
var root_15$2 = /* @__PURE__ */ from_html(`<div class="space-y-2"><div class="relative"><input type="text" placeholder="Search furniture..." class="w-full px-3 py-2 pr-8 border border-gray-200 rounded-lg text-sm focus:ring-2 focus:ring-blue-200 focus:border-blue-400 outline-none"/> <!></div> <!> <div class="flex flex-wrap gap-1 max-h-24 overflow-y-auto"><button>All</button> <button> </button> <!></div> <!> <div class="grid grid-cols-2 gap-2 mt-2"></div></div>`);
|
|
58108
58128
|
var root_24$2 = /* @__PURE__ */ from_html(`<div class="fixed z-50 pointer-events-none"><div class="bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden" style="width: 220px;"><div class="w-full h-[120px] bg-gray-50 flex items-center justify-center p-3"><div class="w-16 h-16 rounded-xl flex items-center justify-center"><div class="w-10 h-10 rounded-md"></div></div></div> <div class="p-3 space-y-1.5"><div class="flex items-center gap-2"><span class="text-sm font-semibold text-gray-800"> </span> <span class="px-1.5 py-0.5 rounded-full text-[9px] font-semibold text-white"> </span></div> <div class="text-xs text-gray-500"> </div></div></div></div>`);
|
|
58109
58129
|
var root_25$1 = /* @__PURE__ */ from_html(`<div class="fixed inset-0 bg-black/50 z-50 flex items-center justify-center"><div class="bg-white rounded-xl shadow-2xl w-80 p-5"><h3 class="text-sm font-bold text-gray-800 mb-1">Import RoomPlan</h3> <p class="text-xs text-gray-400 mb-4"> </p> <div class="space-y-3"><label class="flex items-start gap-2.5 cursor-pointer"><input type="checkbox" class="accent-blue-500 mt-0.5"/> <div><div class="text-sm font-medium text-gray-700">Straighten walls</div> <div class="text-xs text-gray-400">Snap near-horizontal/vertical walls to axis</div></div></label> <label class="flex items-start gap-2.5 cursor-pointer"><input type="checkbox" class="accent-blue-500 mt-0.5"/> <div><div class="text-sm font-medium text-gray-700">Enforce orthogonal <span class="text-xs text-blue-400 font-mono"> </span></div> <div class="text-xs text-gray-400">Force all walls to 90°/180° angles</div></div></label> <label class="block"><div class="text-xs text-gray-500 mb-1">Corner merge distance (cm)</div> <input type="number" min="0" max="50" step="5" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label></div> <div class="flex gap-2 mt-5"><button class="flex-1 px-3 py-2 border border-gray-200 rounded-lg text-sm text-gray-600 hover:bg-gray-50 transition-colors">Cancel</button> <button class="flex-1 px-3 py-2 bg-blue-500 text-white rounded-lg text-sm font-medium hover:bg-blue-600 transition-colors">Import</button></div></div></div>`);
|
|
@@ -58761,7 +58781,7 @@ function BuildPanel($$anchor, $$props) {
|
|
|
58761
58781
|
var div_29 = sibling(node_6, 2);
|
|
58762
58782
|
each(div_29, 21, () => get(filtered), index$1, ($$anchor, item) => {
|
|
58763
58783
|
const s = /* @__PURE__ */ user_derived(() => get(search).toLowerCase());
|
|
58764
|
-
var button_23 = root_21$
|
|
58784
|
+
var button_23 = root_21$2();
|
|
58765
58785
|
var span_10 = child(button_23);
|
|
58766
58786
|
var text_22 = child(span_10, true);
|
|
58767
58787
|
reset(span_10);
|
|
@@ -58771,7 +58791,7 @@ function BuildPanel($$anchor, $$props) {
|
|
|
58771
58791
|
var node_7 = sibling(div_30, 2);
|
|
58772
58792
|
var consequent_12 = ($$anchor) => {
|
|
58773
58793
|
const idx = /* @__PURE__ */ user_derived(() => get(item).name.toLowerCase().indexOf(get(s)));
|
|
58774
|
-
var span_11 = root_22$
|
|
58794
|
+
var span_11 = root_22$1();
|
|
58775
58795
|
var text_23 = child(span_11, true);
|
|
58776
58796
|
var mark = sibling(text_23);
|
|
58777
58797
|
var text_24 = child(mark, true);
|
|
@@ -59354,17 +59374,18 @@ var root_12$1 = /* @__PURE__ */ from_html(`<label class="block"><span class="tex
|
|
|
59354
59374
|
var root_15$1 = /* @__PURE__ */ from_html(`<label class="block"><span class="text-xs text-gray-500">Camera Name</span> <input type="text" placeholder="Display name" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500">Camera Serial</span> <input type="text" placeholder="Device serial" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label>`, 1);
|
|
59355
59375
|
var root_16 = /* @__PURE__ */ from_html(`<button></button>`);
|
|
59356
59376
|
var root_10$1 = /* @__PURE__ */ from_html(`<h3 class="text-sm font-semibold text-gray-700 mb-3 flex items-center gap-2"><span class="w-6 h-6 bg-purple-100 rounded flex items-center justify-center text-xs"> </span> <button> </button></h3> <div class="space-y-3"><!> <div><div class="flex items-center gap-1 mb-2"><span class="text-xs text-gray-500">Color</span> <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="text-gray-400"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="9" cy="9" r="2"></circle><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"></path></svg></div> <div class="grid grid-cols-5 gap-1.5 mb-2"></div> <div class="flex items-center gap-2"><span class="text-xs text-gray-500">Custom:</span> <input type="color" class="w-8 h-6 rounded border border-gray-200 cursor-pointer"/></div></div> <label class="block"><span class="text-xs text-gray-500"> </span> <input type="number" min="1" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500"> </span> <input type="number" min="1" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500"> </span> <input type="number" min="1" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500">Material</span> <select class="w-full px-2 py-1 border border-gray-200 rounded text-sm"><option>Wood</option><option>Metal</option><option>Fabric</option><option>Leather</option><option>Glass</option><option>Plastic</option><option>Stone</option><option>Ceramic</option></select></label> <label class="block"><span class="text-xs text-gray-500">Rotation (degrees)</span> <input type="number" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <div class="flex gap-1"><button class="flex-1 px-2 py-1.5 border border-gray-200 rounded text-sm hover:bg-gray-50 transition-colors" title="Rotate 90° left">↺ 90°</button> <button class="flex-1 px-2 py-1.5 border border-gray-200 rounded text-sm hover:bg-gray-50 transition-colors" title="Rotate 90° right">↻ 90°</button></div> <div class="flex gap-1"><button class="flex-1 px-2 py-1.5 border border-gray-200 rounded text-sm hover:bg-gray-50 transition-colors" title="Flip horizontally">↔ Flip H</button> <button class="flex-1 px-2 py-1.5 border border-gray-200 rounded text-sm hover:bg-gray-50 transition-colors" title="Flip vertically">↕ Flip V</button></div> <button class="w-full px-2 py-1.5 border border-gray-300 rounded text-sm text-gray-600 hover:bg-gray-50 transition-colors">Reset to defaults</button></div>`, 1);
|
|
59357
|
-
var root_18$1 = /* @__PURE__ */ from_html(`<
|
|
59358
|
-
var root_19$1 = /* @__PURE__ */ from_html(`<
|
|
59359
|
-
var
|
|
59360
|
-
var
|
|
59361
|
-
var
|
|
59362
|
-
var
|
|
59363
|
-
var
|
|
59364
|
-
var root_26 = /* @__PURE__ */ from_html(`<
|
|
59365
|
-
var
|
|
59366
|
-
var
|
|
59367
|
-
var root_28 = /* @__PURE__ */ from_html(`<div class="
|
|
59377
|
+
var root_18$1 = /* @__PURE__ */ from_html(`<label class="block pb-3 border-b border-gray-200"><span class="text-xs text-gray-500"> </span> <input type="range" min="0.05" max="1" step="0.05" class="w-full"/></label>`);
|
|
59378
|
+
var root_19$1 = /* @__PURE__ */ from_html(`<option> </option>`);
|
|
59379
|
+
var root_20$1 = /* @__PURE__ */ from_html(`<button></button>`);
|
|
59380
|
+
var root_23$1 = /* @__PURE__ */ from_html(`<button><div class="w-full h-12 rounded-md mb-1 overflow-hidden"></div> <div class="text-center leading-3 text-[10px] text-gray-600 truncate"> </div></button>`);
|
|
59381
|
+
var root_21$1 = /* @__PURE__ */ from_html(`<div><span class="text-xs font-medium text-gray-600 mb-1.5 block"> </span> <div class="grid grid-cols-3 gap-1.5"></div></div>`);
|
|
59382
|
+
var root_17$1 = /* @__PURE__ */ from_html(`<h3 class="text-sm font-semibold text-gray-700 mb-3 flex items-center gap-2"><span class="w-6 h-6 bg-green-100 rounded flex items-center justify-center text-xs">⬜</span> Room Properties</h3> <div class="space-y-3"><!> <label class="block"><span class="text-xs text-gray-500">Room Type</span> <select class="w-full px-2 py-1 border border-gray-200 rounded text-sm"></select></label> <label class="block"><span class="text-xs text-gray-500">Room Name</span> <input type="text" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500">Category</span> <select class="w-full px-2 py-1 border border-gray-200 rounded text-sm"><option>🏠 Indoor</option><option>🌳 Outdoor</option><option>🚗 Garage</option><option>🔧 Utility</option></select></label> <div><span class="text-xs text-gray-500">Area</span> <p class="text-sm text-gray-700"> </p></div> <div><span class="text-xs text-gray-500 mb-1.5 block">Room Color</span> <div class="grid grid-cols-5 gap-1.5 mb-2"></div> <div class="flex items-center gap-2"><span class="text-xs text-gray-500">Custom:</span> <input type="color" class="w-8 h-6 rounded border border-gray-200 cursor-pointer"/></div></div> <div><div class="flex items-center gap-1 mb-2"><span class="text-xs text-gray-500">Floor Material</span> <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="text-gray-400"><path d="M3 3h18v18H3z"></path><path d="M8 8h8v8H8z"></path></svg></div> <div class="space-y-3"></div></div></div>`, 1);
|
|
59383
|
+
var root_24$1 = /* @__PURE__ */ from_html(`<h3 class="text-sm font-semibold text-gray-700 mb-3 flex items-center gap-2"><span class="w-6 h-6 bg-gray-200 rounded flex items-center justify-center text-xs">🪜</span> Stair Properties</h3> <div class="space-y-3"><label class="block"><span class="text-xs text-gray-500">Type</span> <select class="w-full px-2 py-1 border border-gray-200 rounded text-sm"><option>Straight</option><option>L-Shaped</option><option>U-Shaped</option><option>Spiral</option></select></label> <label class="block"><span class="text-xs text-gray-500"> </span> <input type="number" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500"> </span> <input type="number" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500">Risers</span> <input type="number" min="3" max="30" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500">Direction</span> <div class="flex gap-2"><button>Up ↑</button> <button>Down ↓</button></div></label> <label class="block"><span class="text-xs text-gray-500">Rotation (degrees)</span> <input type="number" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label></div>`, 1);
|
|
59384
|
+
var root_26 = /* @__PURE__ */ from_html(`<button></button>`);
|
|
59385
|
+
var root_27 = /* @__PURE__ */ from_html(`<label class="block"><span class="text-xs text-gray-500">Rotation (degrees)</span> <input type="number" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label>`);
|
|
59386
|
+
var root_25 = /* @__PURE__ */ from_html(`<h3 class="text-sm font-semibold text-gray-700 mb-3 flex items-center gap-2"><span class="w-6 h-6 bg-gray-200 rounded flex items-center justify-center text-xs">🏛️</span> Column Properties</h3> <div class="space-y-3"><label class="block"><span class="text-xs text-gray-500">Shape</span> <div class="flex gap-2"><button>⭕ Round</button> <button>⬜ Square</button></div></label> <label class="block"><span class="text-xs text-gray-500"> </span> <input type="number" min="10" max="200" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500"> </span> <input type="number" min="50" max="1000" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <div><span class="text-xs text-gray-500 mb-1.5 block">Color</span> <div class="grid grid-cols-5 gap-1.5 mb-2"></div> <div class="flex items-center gap-2"><span class="text-xs text-gray-500">Custom:</span> <input type="color" class="w-8 h-6 rounded border border-gray-200 cursor-pointer"/></div></div> <!></div>`, 1);
|
|
59387
|
+
var root_28 = /* @__PURE__ */ from_html(`<div class="space-y-3"><h3 class="text-sm font-semibold text-gray-700 mb-3 flex items-center gap-2"><span class="w-6 h-6 bg-emerald-100 rounded flex items-center justify-center text-xs">🏷️</span> Text Annotation</h3> <label class="block"><span class="text-xs text-gray-500">Text</span> <input type="text" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500">Font Size</span> <input type="number" min="8" max="72" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500">Color</span> <div class="flex items-center gap-2"><input type="color" class="w-8 h-6 rounded border border-gray-200 cursor-pointer"/> <span class="text-xs text-gray-400"> </span></div></label> <label class="block"><span class="text-xs text-gray-500">Rotation (°)</span> <input type="number" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500">X</span> <input type="number" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <label class="block"><span class="text-xs text-gray-500">Y</span> <input type="number" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label></div>`);
|
|
59388
|
+
var root_29 = /* @__PURE__ */ from_html(`<div class="mt-4 pt-3 border-t border-gray-200"><h3 class="text-sm font-semibold text-gray-700 mb-3 flex items-center gap-2"><span class="w-6 h-6 bg-blue-100 rounded flex items-center justify-center text-xs">🖼️</span> Background Image</h3> <div class="space-y-3"><label class="block"><span class="text-xs text-gray-500">Opacity</span> <input type="range" min="0.05" max="1" step="0.05" class="w-full"/></label> <label class="block"><span class="text-xs text-gray-500">Scale</span> <input type="range" min="0.1" max="5" step="0.05" class="w-full"/></label> <label class="block"><span class="text-xs text-gray-500">Rotation</span> <input type="number" class="w-full px-2 py-1 border border-gray-200 rounded text-sm"/></label> <div class="flex gap-2"><button> </button> <button class="flex-1 px-2 py-1.5 border rounded text-sm border-gray-200 hover:bg-gray-50">📏 Set Scale</button></div> <button class="w-full px-2 py-1.5 border border-red-300 rounded text-sm text-red-600 hover:bg-red-50">Remove Image</button></div></div>`);
|
|
59368
59389
|
var root$3 = /* @__PURE__ */ from_html(`<div data-properties-panel="" style="top: 48px; bottom: 36px;"><!> <!></div>`);
|
|
59369
59390
|
function PropertiesPanel($$anchor, $$props) {
|
|
59370
59391
|
push($$props, true);
|
|
@@ -59402,7 +59423,7 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
59402
59423
|
function unitLabel() {
|
|
59403
59424
|
return get(settings).units === "imperial" ? "in" : "cm";
|
|
59404
59425
|
}
|
|
59405
|
-
let is3D = prop($$props, "is3D", 3, false), siteCameras = prop($$props, "siteCameras", 19, () => []);
|
|
59426
|
+
let is3D = prop($$props, "is3D", 3, false), siteCameras = prop($$props, "siteCameras", 19, () => []), cameraThumbnail = prop($$props, "cameraThumbnail", 3, "");
|
|
59406
59427
|
let wallSideTab = /* @__PURE__ */ state("interior");
|
|
59407
59428
|
let selectedWall = /* @__PURE__ */ user_derived(() => {
|
|
59408
59429
|
var _$$get$walls$find, _$$get;
|
|
@@ -59436,17 +59457,25 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
59436
59457
|
var _$$get8;
|
|
59437
59458
|
return !!((_$$get8 = get(floor)) === null || _$$get8 === void 0 ? void 0 : _$$get8.backgroundImage);
|
|
59438
59459
|
});
|
|
59460
|
+
let hasCameraThumbnailOverlay = /* @__PURE__ */ user_derived(() => {
|
|
59461
|
+
var _cameraThumbnail, _$$get9;
|
|
59462
|
+
return !!((_cameraThumbnail = cameraThumbnail()) === null || _cameraThumbnail === void 0 ? void 0 : _cameraThumbnail.trim()) && !((_$$get9 = get(floor)) === null || _$$get9 === void 0 ? void 0 : _$$get9.backgroundImage);
|
|
59463
|
+
});
|
|
59464
|
+
let thumbOpacity = /* @__PURE__ */ state(.65);
|
|
59465
|
+
cameraThumbnailOpacity.subscribe((v) => {
|
|
59466
|
+
set(thumbOpacity, v, true);
|
|
59467
|
+
});
|
|
59439
59468
|
let selectedRoom = /* @__PURE__ */ user_derived(() => {
|
|
59440
|
-
var _ref, _$$get$rooms$find, _$$
|
|
59441
|
-
return (_ref = (_$$get$rooms$find = (_$$
|
|
59469
|
+
var _ref, _$$get$rooms$find, _$$get10;
|
|
59470
|
+
return (_ref = (_$$get$rooms$find = (_$$get10 = get(floor)) === null || _$$get10 === void 0 || (_$$get10 = _$$get10.rooms) === null || _$$get10 === void 0 ? void 0 : _$$get10.find((r) => r.id === get(selRoomId))) !== null && _$$get$rooms$find !== void 0 ? _$$get$rooms$find : get(detectedRooms).find((r) => r.id === get(selRoomId))) !== null && _ref !== void 0 ? _ref : null;
|
|
59442
59471
|
});
|
|
59443
59472
|
let selectedDoorWall = /* @__PURE__ */ user_derived(() => {
|
|
59444
|
-
var _ref2, _$$
|
|
59445
|
-
return (_ref2 = get(selectedDoor) && ((_$$
|
|
59473
|
+
var _ref2, _$$get11;
|
|
59474
|
+
return (_ref2 = get(selectedDoor) && ((_$$get11 = get(floor)) === null || _$$get11 === void 0 || (_$$get11 = _$$get11.walls) === null || _$$get11 === void 0 ? void 0 : _$$get11.find((w) => w.id === get(selectedDoor).wallId))) !== null && _ref2 !== void 0 ? _ref2 : null;
|
|
59446
59475
|
});
|
|
59447
59476
|
let selectedWindowWall = /* @__PURE__ */ user_derived(() => {
|
|
59448
|
-
var _ref3, _$$
|
|
59449
|
-
return (_ref3 = get(selectedWindow) && ((_$$
|
|
59477
|
+
var _ref3, _$$get12;
|
|
59478
|
+
return (_ref3 = get(selectedWindow) && ((_$$get12 = get(floor)) === null || _$$get12 === void 0 || (_$$get12 = _$$get12.walls) === null || _$$get12 === void 0 ? void 0 : _$$get12.find((w) => w.id === get(selectedWindow).wallId))) !== null && _ref3 !== void 0 ? _ref3 : null;
|
|
59450
59479
|
});
|
|
59451
59480
|
function calcWallLength(wall) {
|
|
59452
59481
|
if (wall.curvePoint) {
|
|
@@ -59543,9 +59572,9 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
59543
59572
|
}
|
|
59544
59573
|
const useSiteCameraSelect = /* @__PURE__ */ user_derived(() => siteCameras().length > 0);
|
|
59545
59574
|
const usedCameraSerials = /* @__PURE__ */ user_derived(() => {
|
|
59546
|
-
var _$$
|
|
59575
|
+
var _$$get13;
|
|
59547
59576
|
const used = /* @__PURE__ */ new Set();
|
|
59548
|
-
if (!((_$$
|
|
59577
|
+
if (!((_$$get13 = get(floor)) === null || _$$get13 === void 0 ? void 0 : _$$get13.furniture) || !get(selectedFurniture)) return used;
|
|
59549
59578
|
for (const item of get(floor).furniture) {
|
|
59550
59579
|
if (item.catalogId !== "camera" || item.id === get(selectedFurniture).id) continue;
|
|
59551
59580
|
if (item.serial) used.add(item.serial);
|
|
@@ -60132,7 +60161,7 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60132
60161
|
reset(label_11);
|
|
60133
60162
|
reset(div_11);
|
|
60134
60163
|
template_effect(($0, $1, $2, $3, $4, $5, $6, $7) => {
|
|
60135
|
-
var _$$
|
|
60164
|
+
var _$$get14, _$$get15, _$$get16, _$$get17;
|
|
60136
60165
|
set_text(text_6, `Width (${$0 !== null && $0 !== void 0 ? $0 : ""})`);
|
|
60137
60166
|
set_value(input_5, $1);
|
|
60138
60167
|
set_text(text_7, `Distance from A (${$2 !== null && $2 !== void 0 ? $2 : ""})`);
|
|
@@ -60145,10 +60174,10 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60145
60174
|
var _select$__value;
|
|
60146
60175
|
select.value = (_select$__value = select.__value = get(selectedDoor).type) !== null && _select$__value !== void 0 ? _select$__value : "", select_option(select, get(selectedDoor).type);
|
|
60147
60176
|
}
|
|
60148
|
-
set_class(button_9, 1, `flex-1 px-2 py-1.5 border rounded text-sm transition-colors ${((_$$
|
|
60149
|
-
set_class(button_10, 1, `flex-1 px-2 py-1.5 border rounded text-sm transition-colors ${((_$$
|
|
60150
|
-
set_class(button_11, 1, `flex-1 px-2 py-1.5 border rounded text-sm transition-colors ${!((_$$
|
|
60151
|
-
set_class(button_12, 1, `flex-1 px-2 py-1.5 border rounded text-sm transition-colors ${((_$$
|
|
60177
|
+
set_class(button_9, 1, `flex-1 px-2 py-1.5 border rounded text-sm transition-colors ${((_$$get14 = get(selectedDoor)) === null || _$$get14 === void 0 ? void 0 : _$$get14.swingDirection) === "left" ? "bg-blue-100 border-blue-400 text-blue-700" : "border-gray-200 hover:bg-gray-50"}`);
|
|
60178
|
+
set_class(button_10, 1, `flex-1 px-2 py-1.5 border rounded text-sm transition-colors ${((_$$get15 = get(selectedDoor)) === null || _$$get15 === void 0 ? void 0 : _$$get15.swingDirection) === "right" ? "bg-blue-100 border-blue-400 text-blue-700" : "border-gray-200 hover:bg-gray-50"}`);
|
|
60179
|
+
set_class(button_11, 1, `flex-1 px-2 py-1.5 border rounded text-sm transition-colors ${!((_$$get16 = get(selectedDoor)) === null || _$$get16 === void 0 ? void 0 : _$$get16.flipSide) ? "bg-blue-100 border-blue-400 text-blue-700" : "border-gray-200 hover:bg-gray-50"}`);
|
|
60180
|
+
set_class(button_12, 1, `flex-1 px-2 py-1.5 border rounded text-sm transition-colors ${((_$$get17 = get(selectedDoor)) === null || _$$get17 === void 0 ? void 0 : _$$get17.flipSide) ? "bg-blue-100 border-blue-400 text-blue-700" : "border-gray-200 hover:bg-gray-50"}`);
|
|
60152
60181
|
}, [
|
|
60153
60182
|
() => unitLabel(),
|
|
60154
60183
|
() => displayValue(get(selectedDoor).width),
|
|
@@ -60540,19 +60569,38 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60540
60569
|
delegated("click", button_19, resetFurnitureDefaults);
|
|
60541
60570
|
append($$anchor, fragment_3);
|
|
60542
60571
|
};
|
|
60543
|
-
var
|
|
60572
|
+
var consequent_10 = ($$anchor) => {
|
|
60544
60573
|
var fragment_7 = root_17$1();
|
|
60545
60574
|
var div_21 = sibling(first_child(fragment_7), 2);
|
|
60546
|
-
var
|
|
60547
|
-
var
|
|
60575
|
+
var node_8 = child(div_21);
|
|
60576
|
+
var consequent_8 = ($$anchor) => {
|
|
60577
|
+
var label_26 = root_18$1();
|
|
60578
|
+
var span_19 = child(label_26);
|
|
60579
|
+
var text_23 = child(span_19);
|
|
60580
|
+
reset(span_19);
|
|
60581
|
+
var input_21 = sibling(span_19, 2);
|
|
60582
|
+
remove_input_defaults(input_21);
|
|
60583
|
+
reset(label_26);
|
|
60584
|
+
template_effect(($0) => {
|
|
60585
|
+
set_text(text_23, `Camera Thumbnail Opacity (${$0 !== null && $0 !== void 0 ? $0 : ""}%)`);
|
|
60586
|
+
set_value(input_21, get(thumbOpacity));
|
|
60587
|
+
}, [() => Math.round(get(thumbOpacity) * 100)]);
|
|
60588
|
+
delegated("input", input_21, (e) => updateCameraThumbnailOpacity(Number(e.target.value)));
|
|
60589
|
+
append($$anchor, label_26);
|
|
60590
|
+
};
|
|
60591
|
+
if_block(node_8, ($$render) => {
|
|
60592
|
+
if (get(hasCameraThumbnailOverlay)) $$render(consequent_8);
|
|
60593
|
+
});
|
|
60594
|
+
var label_27 = sibling(node_8, 2);
|
|
60595
|
+
var select_4 = sibling(child(label_27), 2);
|
|
60548
60596
|
each(select_4, 21, () => roomTypes, index$1, ($$anchor, rt) => {
|
|
60549
|
-
var option_21 =
|
|
60550
|
-
var
|
|
60597
|
+
var option_21 = root_19$1();
|
|
60598
|
+
var text_24 = child(option_21);
|
|
60551
60599
|
reset(option_21);
|
|
60552
60600
|
var option_21_value = {};
|
|
60553
60601
|
template_effect(() => {
|
|
60554
60602
|
var _$$get$icon, _$$get$label;
|
|
60555
|
-
set_text(
|
|
60603
|
+
set_text(text_24, `${(_$$get$icon = get(rt).icon) !== null && _$$get$icon !== void 0 ? _$$get$icon : ""} ${(_$$get$label = get(rt).label) !== null && _$$get$label !== void 0 ? _$$get$label : ""}`);
|
|
60556
60604
|
if (option_21_value !== (option_21_value = get(rt).id)) {
|
|
60557
60605
|
var _option_21$__value;
|
|
60558
60606
|
option_21.value = (_option_21$__value = option_21.__value = get(rt).id) !== null && _option_21$__value !== void 0 ? _option_21$__value : "";
|
|
@@ -60563,13 +60611,13 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60563
60611
|
reset(select_4);
|
|
60564
60612
|
var select_4_value;
|
|
60565
60613
|
init_select(select_4);
|
|
60566
|
-
reset(label_26);
|
|
60567
|
-
var label_27 = sibling(label_26, 2);
|
|
60568
|
-
var input_21 = sibling(child(label_27), 2);
|
|
60569
|
-
remove_input_defaults(input_21);
|
|
60570
60614
|
reset(label_27);
|
|
60571
60615
|
var label_28 = sibling(label_27, 2);
|
|
60572
|
-
var
|
|
60616
|
+
var input_22 = sibling(child(label_28), 2);
|
|
60617
|
+
remove_input_defaults(input_22);
|
|
60618
|
+
reset(label_28);
|
|
60619
|
+
var label_29 = sibling(label_28, 2);
|
|
60620
|
+
var select_5 = sibling(child(label_29), 2);
|
|
60573
60621
|
var option_22 = child(select_5);
|
|
60574
60622
|
option_22.value = option_22.__value = "indoor";
|
|
60575
60623
|
var option_23 = sibling(option_22);
|
|
@@ -60581,16 +60629,16 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60581
60629
|
reset(select_5);
|
|
60582
60630
|
var select_5_value;
|
|
60583
60631
|
init_select(select_5);
|
|
60584
|
-
reset(
|
|
60585
|
-
var div_22 = sibling(
|
|
60632
|
+
reset(label_29);
|
|
60633
|
+
var div_22 = sibling(label_29, 2);
|
|
60586
60634
|
var p_1 = sibling(child(div_22), 2);
|
|
60587
|
-
var
|
|
60635
|
+
var text_25 = child(p_1, true);
|
|
60588
60636
|
reset(p_1);
|
|
60589
60637
|
reset(div_22);
|
|
60590
60638
|
var div_23 = sibling(div_22, 2);
|
|
60591
60639
|
var div_24 = sibling(child(div_23), 2);
|
|
60592
60640
|
each(div_24, 21, () => roomColorPresets, index$1, ($$anchor, preset) => {
|
|
60593
|
-
var button_20 =
|
|
60641
|
+
var button_20 = root_20$1();
|
|
60594
60642
|
template_effect(() => {
|
|
60595
60643
|
var _$$get$color5;
|
|
60596
60644
|
set_class(button_20, 1, `w-7 h-7 rounded-md border-2 hover:border-gray-300 transition-colors ${get(selectedRoom).color === get(preset).color ? "border-blue-500 ring-1 ring-blue-200" : "border-gray-200"}`);
|
|
@@ -60602,50 +60650,50 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60602
60650
|
});
|
|
60603
60651
|
reset(div_24);
|
|
60604
60652
|
var div_25 = sibling(div_24, 2);
|
|
60605
|
-
var
|
|
60606
|
-
remove_input_defaults(
|
|
60653
|
+
var input_23 = sibling(child(div_25), 2);
|
|
60654
|
+
remove_input_defaults(input_23);
|
|
60607
60655
|
reset(div_25);
|
|
60608
60656
|
reset(div_23);
|
|
60609
60657
|
var div_26 = sibling(div_23, 2);
|
|
60610
60658
|
var div_27 = sibling(child(div_26), 2);
|
|
60611
60659
|
each(div_27, 21, () => textureGroups, index$1, ($$anchor, group) => {
|
|
60612
|
-
var div_28 =
|
|
60613
|
-
var
|
|
60614
|
-
var
|
|
60615
|
-
reset(
|
|
60616
|
-
var div_29 = sibling(
|
|
60660
|
+
var div_28 = root_21$1();
|
|
60661
|
+
var span_20 = child(div_28);
|
|
60662
|
+
var text_26 = child(span_20, true);
|
|
60663
|
+
reset(span_20);
|
|
60664
|
+
var div_29 = sibling(span_20, 2);
|
|
60617
60665
|
each(div_29, 21, () => get(group).ids, index$1, ($$anchor, matId) => {
|
|
60618
60666
|
const mat = /* @__PURE__ */ user_derived(() => floorMaterials.find((m) => m.id === get(matId)));
|
|
60619
60667
|
var fragment_8 = comment();
|
|
60620
|
-
var
|
|
60621
|
-
var
|
|
60668
|
+
var node_9 = first_child(fragment_8);
|
|
60669
|
+
var consequent_9 = ($$anchor) => {
|
|
60622
60670
|
const texPath = /* @__PURE__ */ user_derived(() => {
|
|
60623
60671
|
var _floorTexPaths$$$get$;
|
|
60624
60672
|
return (_floorTexPaths$$$get$ = floorTexPaths[get(mat).id]) !== null && _floorTexPaths$$$get$ !== void 0 ? _floorTexPaths$$$get$ : "";
|
|
60625
60673
|
});
|
|
60626
|
-
var button_21 =
|
|
60674
|
+
var button_21 = root_23$1();
|
|
60627
60675
|
var div_30 = child(button_21);
|
|
60628
60676
|
var div_31 = sibling(div_30, 2);
|
|
60629
|
-
var
|
|
60677
|
+
var text_27 = child(div_31, true);
|
|
60630
60678
|
reset(div_31);
|
|
60631
60679
|
reset(button_21);
|
|
60632
60680
|
template_effect(() => {
|
|
60633
60681
|
set_class(button_21, 1, `p-1 rounded-lg border-2 hover:border-gray-300 transition-all text-xs ${get(selectedRoom).floorTexture === get(mat).id ? "border-blue-500 ring-2 ring-blue-200 shadow-sm" : "border-gray-200"}`);
|
|
60634
60682
|
set_attribute(button_21, "title", get(mat).name);
|
|
60635
60683
|
set_style(div_30, get(texPath) ? `background-image: url(${get(texPath)}); background-size: cover; background-position: center;` : `background-color: ${get(mat).color}`);
|
|
60636
|
-
set_text(
|
|
60684
|
+
set_text(text_27, get(mat).name);
|
|
60637
60685
|
});
|
|
60638
60686
|
delegated("click", button_21, () => onRoomFloor(get(mat).id));
|
|
60639
60687
|
append($$anchor, button_21);
|
|
60640
60688
|
};
|
|
60641
|
-
if_block(
|
|
60642
|
-
if (get(mat)) $$render(
|
|
60689
|
+
if_block(node_9, ($$render) => {
|
|
60690
|
+
if (get(mat)) $$render(consequent_9);
|
|
60643
60691
|
});
|
|
60644
60692
|
append($$anchor, fragment_8);
|
|
60645
60693
|
});
|
|
60646
60694
|
reset(div_29);
|
|
60647
60695
|
reset(div_28);
|
|
60648
|
-
template_effect(() => set_text(
|
|
60696
|
+
template_effect(() => set_text(text_26, get(group).label));
|
|
60649
60697
|
append($$anchor, div_28);
|
|
60650
60698
|
});
|
|
60651
60699
|
reset(div_27);
|
|
@@ -60657,16 +60705,16 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60657
60705
|
var _select_4$__value;
|
|
60658
60706
|
select_4.value = (_select_4$__value = select_4.__value = get(selectedRoomType)) !== null && _select_4$__value !== void 0 ? _select_4$__value : "", select_option(select_4, get(selectedRoomType));
|
|
60659
60707
|
}
|
|
60660
|
-
set_value(
|
|
60708
|
+
set_value(input_22, get(selectedRoom).name);
|
|
60661
60709
|
if (select_5_value !== (select_5_value = (_$$get$roomType = get(selectedRoom).roomType) !== null && _$$get$roomType !== void 0 ? _$$get$roomType : "indoor")) {
|
|
60662
60710
|
var _select_5$__value, _$$get$roomType2, _$$get$roomType3;
|
|
60663
60711
|
select_5.value = (_select_5$__value = select_5.__value = (_$$get$roomType2 = get(selectedRoom).roomType) !== null && _$$get$roomType2 !== void 0 ? _$$get$roomType2 : "indoor") !== null && _select_5$__value !== void 0 ? _select_5$__value : "", select_option(select_5, (_$$get$roomType3 = get(selectedRoom).roomType) !== null && _$$get$roomType3 !== void 0 ? _$$get$roomType3 : "indoor");
|
|
60664
60712
|
}
|
|
60665
|
-
set_text(
|
|
60666
|
-
set_value(
|
|
60713
|
+
set_text(text_25, $0);
|
|
60714
|
+
set_value(input_23, (_$$get$color6 = get(selectedRoom).color) !== null && _$$get$color6 !== void 0 ? _$$get$color6 : "#ffffff");
|
|
60667
60715
|
}, [() => formatArea(get(selectedRoom).area, get(settings).units)]);
|
|
60668
60716
|
delegated("change", select_4, onRoomType);
|
|
60669
|
-
delegated("input",
|
|
60717
|
+
delegated("input", input_22, onRoomName);
|
|
60670
60718
|
delegated("change", select_5, (e) => {
|
|
60671
60719
|
if (get(selectedRoom)) {
|
|
60672
60720
|
const v = e.target.value;
|
|
@@ -60674,14 +60722,14 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60674
60722
|
updateDetectedRoom(get(selectedRoom).id, { roomType: v });
|
|
60675
60723
|
}
|
|
60676
60724
|
});
|
|
60677
|
-
delegated("input",
|
|
60725
|
+
delegated("input", input_23, (e) => onRoomColor(e.target.value));
|
|
60678
60726
|
append($$anchor, fragment_7);
|
|
60679
60727
|
};
|
|
60680
|
-
var
|
|
60681
|
-
var fragment_9 =
|
|
60728
|
+
var consequent_11 = ($$anchor) => {
|
|
60729
|
+
var fragment_9 = root_24$1();
|
|
60682
60730
|
var div_32 = sibling(first_child(fragment_9), 2);
|
|
60683
|
-
var
|
|
60684
|
-
var select_6 = sibling(child(
|
|
60731
|
+
var label_30 = child(div_32);
|
|
60732
|
+
var select_6 = sibling(child(label_30), 2);
|
|
60685
60733
|
var option_26 = child(select_6);
|
|
60686
60734
|
option_26.value = option_26.__value = "straight";
|
|
60687
60735
|
var option_27 = sibling(option_26);
|
|
@@ -60693,13 +60741,6 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60693
60741
|
reset(select_6);
|
|
60694
60742
|
var select_6_value;
|
|
60695
60743
|
init_select(select_6);
|
|
60696
|
-
reset(label_29);
|
|
60697
|
-
var label_30 = sibling(label_29, 2);
|
|
60698
|
-
var span_20 = child(label_30);
|
|
60699
|
-
var text_27 = child(span_20);
|
|
60700
|
-
reset(span_20);
|
|
60701
|
-
var input_23 = sibling(span_20, 2);
|
|
60702
|
-
remove_input_defaults(input_23);
|
|
60703
60744
|
reset(label_30);
|
|
60704
60745
|
var label_31 = sibling(label_30, 2);
|
|
60705
60746
|
var span_21 = child(label_31);
|
|
@@ -60709,33 +60750,40 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60709
60750
|
remove_input_defaults(input_24);
|
|
60710
60751
|
reset(label_31);
|
|
60711
60752
|
var label_32 = sibling(label_31, 2);
|
|
60712
|
-
var
|
|
60753
|
+
var span_22 = child(label_32);
|
|
60754
|
+
var text_29 = child(span_22);
|
|
60755
|
+
reset(span_22);
|
|
60756
|
+
var input_25 = sibling(span_22, 2);
|
|
60713
60757
|
remove_input_defaults(input_25);
|
|
60714
60758
|
reset(label_32);
|
|
60715
60759
|
var label_33 = sibling(label_32, 2);
|
|
60716
|
-
var
|
|
60760
|
+
var input_26 = sibling(child(label_33), 2);
|
|
60761
|
+
remove_input_defaults(input_26);
|
|
60762
|
+
reset(label_33);
|
|
60763
|
+
var label_34 = sibling(label_33, 2);
|
|
60764
|
+
var div_33 = sibling(child(label_34), 2);
|
|
60717
60765
|
var button_22 = child(div_33);
|
|
60718
60766
|
var button_23 = sibling(button_22, 2);
|
|
60719
60767
|
reset(div_33);
|
|
60720
|
-
reset(label_33);
|
|
60721
|
-
var label_34 = sibling(label_33, 2);
|
|
60722
|
-
var input_26 = sibling(child(label_34), 2);
|
|
60723
|
-
remove_input_defaults(input_26);
|
|
60724
60768
|
reset(label_34);
|
|
60769
|
+
var label_35 = sibling(label_34, 2);
|
|
60770
|
+
var input_27 = sibling(child(label_35), 2);
|
|
60771
|
+
remove_input_defaults(input_27);
|
|
60772
|
+
reset(label_35);
|
|
60725
60773
|
reset(div_32);
|
|
60726
60774
|
template_effect(($0, $1, $2, $3) => {
|
|
60727
60775
|
if (select_6_value !== (select_6_value = get(selectedStair).stairType || "straight")) {
|
|
60728
60776
|
var _select_6$__value;
|
|
60729
60777
|
select_6.value = (_select_6$__value = select_6.__value = get(selectedStair).stairType || "straight") !== null && _select_6$__value !== void 0 ? _select_6$__value : "", select_option(select_6, get(selectedStair).stairType || "straight");
|
|
60730
60778
|
}
|
|
60731
|
-
set_text(
|
|
60732
|
-
set_value(
|
|
60733
|
-
set_text(
|
|
60734
|
-
set_value(
|
|
60735
|
-
set_value(
|
|
60779
|
+
set_text(text_28, `Width (${$0 !== null && $0 !== void 0 ? $0 : ""})`);
|
|
60780
|
+
set_value(input_24, $1);
|
|
60781
|
+
set_text(text_29, `Depth (${$2 !== null && $2 !== void 0 ? $2 : ""})`);
|
|
60782
|
+
set_value(input_25, $3);
|
|
60783
|
+
set_value(input_26, get(selectedStair).riserCount);
|
|
60736
60784
|
set_class(button_22, 1, `flex-1 px-2 py-1.5 border rounded text-sm transition-colors ${get(selectedStair).direction === "up" ? "bg-blue-100 border-blue-400 text-blue-700" : "border-gray-200 hover:bg-gray-50"}`);
|
|
60737
60785
|
set_class(button_23, 1, `flex-1 px-2 py-1.5 border rounded text-sm transition-colors ${get(selectedStair).direction === "down" ? "bg-blue-100 border-blue-400 text-blue-700" : "border-gray-200 hover:bg-gray-50"}`);
|
|
60738
|
-
set_value(
|
|
60786
|
+
set_value(input_27, get(selectedStair).rotation);
|
|
60739
60787
|
}, [
|
|
60740
60788
|
() => unitLabel(),
|
|
60741
60789
|
() => displayValue(get(selectedStair).width),
|
|
@@ -60743,29 +60791,22 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60743
60791
|
() => displayValue(get(selectedStair).depth)
|
|
60744
60792
|
]);
|
|
60745
60793
|
delegated("change", select_6, (e) => updateStair(get(selectedStair).id, { stairType: e.target.value }));
|
|
60746
|
-
delegated("input",
|
|
60747
|
-
delegated("input",
|
|
60748
|
-
delegated("input",
|
|
60794
|
+
delegated("input", input_24, (e) => updateStair(get(selectedStair).id, { width: inputToCm(Number(e.target.value)) }));
|
|
60795
|
+
delegated("input", input_25, (e) => updateStair(get(selectedStair).id, { depth: inputToCm(Number(e.target.value)) }));
|
|
60796
|
+
delegated("input", input_26, (e) => updateStair(get(selectedStair).id, { riserCount: Number(e.target.value) }));
|
|
60749
60797
|
delegated("click", button_22, () => updateStair(get(selectedStair).id, { direction: "up" }));
|
|
60750
60798
|
delegated("click", button_23, () => updateStair(get(selectedStair).id, { direction: "down" }));
|
|
60751
|
-
delegated("input",
|
|
60799
|
+
delegated("input", input_27, (e) => updateStair(get(selectedStair).id, { rotation: Number(e.target.value) }));
|
|
60752
60800
|
append($$anchor, fragment_9);
|
|
60753
60801
|
};
|
|
60754
|
-
var
|
|
60755
|
-
var fragment_10 =
|
|
60802
|
+
var consequent_13 = ($$anchor) => {
|
|
60803
|
+
var fragment_10 = root_25();
|
|
60756
60804
|
var div_34 = sibling(first_child(fragment_10), 2);
|
|
60757
|
-
var
|
|
60758
|
-
var div_35 = sibling(child(
|
|
60805
|
+
var label_36 = child(div_34);
|
|
60806
|
+
var div_35 = sibling(child(label_36), 2);
|
|
60759
60807
|
var button_24 = child(div_35);
|
|
60760
60808
|
var button_25 = sibling(button_24, 2);
|
|
60761
60809
|
reset(div_35);
|
|
60762
|
-
reset(label_35);
|
|
60763
|
-
var label_36 = sibling(label_35, 2);
|
|
60764
|
-
var span_22 = child(label_36);
|
|
60765
|
-
var text_29 = child(span_22);
|
|
60766
|
-
reset(span_22);
|
|
60767
|
-
var input_27 = sibling(span_22, 2);
|
|
60768
|
-
remove_input_defaults(input_27);
|
|
60769
60810
|
reset(label_36);
|
|
60770
60811
|
var label_37 = sibling(label_36, 2);
|
|
60771
60812
|
var span_23 = child(label_37);
|
|
@@ -60774,10 +60815,17 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60774
60815
|
var input_28 = sibling(span_23, 2);
|
|
60775
60816
|
remove_input_defaults(input_28);
|
|
60776
60817
|
reset(label_37);
|
|
60777
|
-
var
|
|
60818
|
+
var label_38 = sibling(label_37, 2);
|
|
60819
|
+
var span_24 = child(label_38);
|
|
60820
|
+
var text_31 = child(span_24);
|
|
60821
|
+
reset(span_24);
|
|
60822
|
+
var input_29 = sibling(span_24, 2);
|
|
60823
|
+
remove_input_defaults(input_29);
|
|
60824
|
+
reset(label_38);
|
|
60825
|
+
var div_36 = sibling(label_38, 2);
|
|
60778
60826
|
var div_37 = sibling(child(div_36), 2);
|
|
60779
60827
|
each(div_37, 21, () => columnColorPresets, index$1, ($$anchor, preset) => {
|
|
60780
|
-
var button_26 =
|
|
60828
|
+
var button_26 = root_26();
|
|
60781
60829
|
template_effect(() => {
|
|
60782
60830
|
var _$$get$color7;
|
|
60783
60831
|
set_class(button_26, 1, `w-7 h-7 rounded-md border-2 hover:border-gray-300 transition-colors ${get(selectedColumn).color === get(preset).color ? "border-blue-500 ring-1 ring-blue-200" : "border-gray-200"}`);
|
|
@@ -60789,32 +60837,32 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60789
60837
|
});
|
|
60790
60838
|
reset(div_37);
|
|
60791
60839
|
var div_38 = sibling(div_37, 2);
|
|
60792
|
-
var
|
|
60793
|
-
remove_input_defaults(
|
|
60840
|
+
var input_30 = sibling(child(div_38), 2);
|
|
60841
|
+
remove_input_defaults(input_30);
|
|
60794
60842
|
reset(div_38);
|
|
60795
60843
|
reset(div_36);
|
|
60796
|
-
var
|
|
60797
|
-
var
|
|
60798
|
-
var
|
|
60799
|
-
var
|
|
60800
|
-
remove_input_defaults(
|
|
60801
|
-
reset(
|
|
60802
|
-
template_effect(() => set_value(
|
|
60803
|
-
delegated("input",
|
|
60804
|
-
append($$anchor,
|
|
60844
|
+
var node_10 = sibling(div_36, 2);
|
|
60845
|
+
var consequent_12 = ($$anchor) => {
|
|
60846
|
+
var label_39 = root_27();
|
|
60847
|
+
var input_31 = sibling(child(label_39), 2);
|
|
60848
|
+
remove_input_defaults(input_31);
|
|
60849
|
+
reset(label_39);
|
|
60850
|
+
template_effect(() => set_value(input_31, get(selectedColumn).rotation));
|
|
60851
|
+
delegated("input", input_31, (e) => updateColumn(get(selectedColumn).id, { rotation: Number(e.target.value) }));
|
|
60852
|
+
append($$anchor, label_39);
|
|
60805
60853
|
};
|
|
60806
|
-
if_block(
|
|
60807
|
-
if (get(selectedColumn).shape === "square") $$render(
|
|
60854
|
+
if_block(node_10, ($$render) => {
|
|
60855
|
+
if (get(selectedColumn).shape === "square") $$render(consequent_12);
|
|
60808
60856
|
});
|
|
60809
60857
|
reset(div_34);
|
|
60810
60858
|
template_effect(($0, $1, $2, $3) => {
|
|
60811
60859
|
set_class(button_24, 1, `flex-1 px-2 py-1.5 border rounded text-sm transition-colors ${get(selectedColumn).shape === "round" ? "bg-blue-100 border-blue-400 text-blue-700" : "border-gray-200 hover:bg-gray-50"}`);
|
|
60812
60860
|
set_class(button_25, 1, `flex-1 px-2 py-1.5 border rounded text-sm transition-colors ${get(selectedColumn).shape === "square" ? "bg-blue-100 border-blue-400 text-blue-700" : "border-gray-200 hover:bg-gray-50"}`);
|
|
60813
|
-
set_text(
|
|
60814
|
-
set_value(
|
|
60815
|
-
set_text(
|
|
60816
|
-
set_value(
|
|
60817
|
-
set_value(
|
|
60861
|
+
set_text(text_30, `${get(selectedColumn).shape === "round" ? "Diameter" : "Side Length"} (${$0 !== null && $0 !== void 0 ? $0 : ""})`);
|
|
60862
|
+
set_value(input_28, $1);
|
|
60863
|
+
set_text(text_31, `Height (${$2 !== null && $2 !== void 0 ? $2 : ""})`);
|
|
60864
|
+
set_value(input_29, $3);
|
|
60865
|
+
set_value(input_30, get(selectedColumn).color);
|
|
60818
60866
|
}, [
|
|
60819
60867
|
() => unitLabel(),
|
|
60820
60868
|
() => displayValue(get(selectedColumn).diameter),
|
|
@@ -60823,33 +60871,29 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60823
60871
|
]);
|
|
60824
60872
|
delegated("click", button_24, () => updateColumn(get(selectedColumn).id, { shape: "round" }));
|
|
60825
60873
|
delegated("click", button_25, () => updateColumn(get(selectedColumn).id, { shape: "square" }));
|
|
60826
|
-
delegated("input",
|
|
60827
|
-
delegated("input",
|
|
60828
|
-
delegated("input",
|
|
60874
|
+
delegated("input", input_28, (e) => updateColumn(get(selectedColumn).id, { diameter: inputToCm(Number(e.target.value)) }));
|
|
60875
|
+
delegated("input", input_29, (e) => updateColumn(get(selectedColumn).id, { height: inputToCm(Number(e.target.value)) }));
|
|
60876
|
+
delegated("input", input_30, (e) => updateColumn(get(selectedColumn).id, { color: e.target.value }));
|
|
60829
60877
|
append($$anchor, fragment_10);
|
|
60830
60878
|
};
|
|
60831
|
-
var
|
|
60832
|
-
var div_39 =
|
|
60833
|
-
var
|
|
60834
|
-
var input_31 = sibling(child(label_39), 2);
|
|
60835
|
-
remove_input_defaults(input_31);
|
|
60836
|
-
reset(label_39);
|
|
60837
|
-
var label_40 = sibling(label_39, 2);
|
|
60879
|
+
var consequent_14 = ($$anchor) => {
|
|
60880
|
+
var div_39 = root_28();
|
|
60881
|
+
var label_40 = sibling(child(div_39), 2);
|
|
60838
60882
|
var input_32 = sibling(child(label_40), 2);
|
|
60839
60883
|
remove_input_defaults(input_32);
|
|
60840
60884
|
reset(label_40);
|
|
60841
60885
|
var label_41 = sibling(label_40, 2);
|
|
60842
|
-
var
|
|
60843
|
-
var input_33 = child(div_40);
|
|
60886
|
+
var input_33 = sibling(child(label_41), 2);
|
|
60844
60887
|
remove_input_defaults(input_33);
|
|
60845
|
-
var span_24 = sibling(input_33, 2);
|
|
60846
|
-
var text_31 = child(span_24, true);
|
|
60847
|
-
reset(span_24);
|
|
60848
|
-
reset(div_40);
|
|
60849
60888
|
reset(label_41);
|
|
60850
60889
|
var label_42 = sibling(label_41, 2);
|
|
60851
|
-
var
|
|
60890
|
+
var div_40 = sibling(child(label_42), 2);
|
|
60891
|
+
var input_34 = child(div_40);
|
|
60852
60892
|
remove_input_defaults(input_34);
|
|
60893
|
+
var span_25 = sibling(input_34, 2);
|
|
60894
|
+
var text_32 = child(span_25, true);
|
|
60895
|
+
reset(span_25);
|
|
60896
|
+
reset(div_40);
|
|
60853
60897
|
reset(label_42);
|
|
60854
60898
|
var label_43 = sibling(label_42, 2);
|
|
60855
60899
|
var input_35 = sibling(child(label_43), 2);
|
|
@@ -60859,22 +60903,26 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60859
60903
|
var input_36 = sibling(child(label_44), 2);
|
|
60860
60904
|
remove_input_defaults(input_36);
|
|
60861
60905
|
reset(label_44);
|
|
60906
|
+
var label_45 = sibling(label_44, 2);
|
|
60907
|
+
var input_37 = sibling(child(label_45), 2);
|
|
60908
|
+
remove_input_defaults(input_37);
|
|
60909
|
+
reset(label_45);
|
|
60862
60910
|
reset(div_39);
|
|
60863
60911
|
template_effect(($0, $1) => {
|
|
60864
|
-
set_value(
|
|
60865
|
-
set_value(
|
|
60866
|
-
set_value(
|
|
60867
|
-
set_text(
|
|
60868
|
-
set_value(
|
|
60869
|
-
set_value(
|
|
60870
|
-
set_value(
|
|
60912
|
+
set_value(input_32, get(selectedTextAnnotation).text);
|
|
60913
|
+
set_value(input_33, get(selectedTextAnnotation).fontSize);
|
|
60914
|
+
set_value(input_34, get(selectedTextAnnotation).color);
|
|
60915
|
+
set_text(text_32, get(selectedTextAnnotation).color);
|
|
60916
|
+
set_value(input_35, get(selectedTextAnnotation).rotation);
|
|
60917
|
+
set_value(input_36, $0);
|
|
60918
|
+
set_value(input_37, $1);
|
|
60871
60919
|
}, [() => Math.round(get(selectedTextAnnotation).x), () => Math.round(get(selectedTextAnnotation).y)]);
|
|
60872
|
-
delegated("input",
|
|
60873
|
-
delegated("input",
|
|
60874
|
-
delegated("input",
|
|
60875
|
-
delegated("input",
|
|
60876
|
-
delegated("input",
|
|
60877
|
-
delegated("input",
|
|
60920
|
+
delegated("input", input_32, (e) => updateTextAnnotation(get(selectedTextAnnotation).id, { text: e.target.value }));
|
|
60921
|
+
delegated("input", input_33, (e) => updateTextAnnotation(get(selectedTextAnnotation).id, { fontSize: Number(e.target.value) }));
|
|
60922
|
+
delegated("input", input_34, (e) => updateTextAnnotation(get(selectedTextAnnotation).id, { color: e.target.value }));
|
|
60923
|
+
delegated("input", input_35, (e) => updateTextAnnotation(get(selectedTextAnnotation).id, { rotation: Number(e.target.value) }));
|
|
60924
|
+
delegated("input", input_36, (e) => updateTextAnnotation(get(selectedTextAnnotation).id, { x: Number(e.target.value) }));
|
|
60925
|
+
delegated("input", input_37, (e) => updateTextAnnotation(get(selectedTextAnnotation).id, { y: Number(e.target.value) }));
|
|
60878
60926
|
append($$anchor, div_39);
|
|
60879
60927
|
};
|
|
60880
60928
|
if_block(node, ($$render) => {
|
|
@@ -60882,20 +60930,16 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60882
60930
|
else if (get(selectedDoor)) $$render(consequent_2, 1);
|
|
60883
60931
|
else if (get(selectedWindow)) $$render(consequent_3, 2);
|
|
60884
60932
|
else if (get(selectedFurniture)) $$render(consequent_7, 3);
|
|
60885
|
-
else if (get(selectedRoom)) $$render(
|
|
60886
|
-
else if (get(selectedStair)) $$render(
|
|
60887
|
-
else if (get(selectedColumn)) $$render(
|
|
60888
|
-
else if (get(selectedTextAnnotation)) $$render(
|
|
60933
|
+
else if (get(selectedRoom)) $$render(consequent_10, 4);
|
|
60934
|
+
else if (get(selectedStair)) $$render(consequent_11, 5);
|
|
60935
|
+
else if (get(selectedColumn)) $$render(consequent_13, 6);
|
|
60936
|
+
else if (get(selectedTextAnnotation)) $$render(consequent_14, 7);
|
|
60889
60937
|
});
|
|
60890
|
-
var
|
|
60891
|
-
var
|
|
60892
|
-
var div_41 =
|
|
60938
|
+
var node_11 = sibling(node, 2);
|
|
60939
|
+
var consequent_15 = ($$anchor) => {
|
|
60940
|
+
var div_41 = root_29();
|
|
60893
60941
|
var div_42 = sibling(child(div_41), 2);
|
|
60894
|
-
var
|
|
60895
|
-
var input_37 = sibling(child(label_45), 2);
|
|
60896
|
-
remove_input_defaults(input_37);
|
|
60897
|
-
reset(label_45);
|
|
60898
|
-
var label_46 = sibling(label_45, 2);
|
|
60942
|
+
var label_46 = child(div_42);
|
|
60899
60943
|
var input_38 = sibling(child(label_46), 2);
|
|
60900
60944
|
remove_input_defaults(input_38);
|
|
60901
60945
|
reset(label_46);
|
|
@@ -60903,9 +60947,13 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60903
60947
|
var input_39 = sibling(child(label_47), 2);
|
|
60904
60948
|
remove_input_defaults(input_39);
|
|
60905
60949
|
reset(label_47);
|
|
60906
|
-
var
|
|
60950
|
+
var label_48 = sibling(label_47, 2);
|
|
60951
|
+
var input_40 = sibling(child(label_48), 2);
|
|
60952
|
+
remove_input_defaults(input_40);
|
|
60953
|
+
reset(label_48);
|
|
60954
|
+
var div_43 = sibling(label_48, 2);
|
|
60907
60955
|
var button_27 = child(div_43);
|
|
60908
|
-
var
|
|
60956
|
+
var text_33 = child(button_27, true);
|
|
60909
60957
|
reset(button_27);
|
|
60910
60958
|
var button_28 = sibling(button_27, 2);
|
|
60911
60959
|
reset(div_43);
|
|
@@ -60913,15 +60961,15 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60913
60961
|
reset(div_42);
|
|
60914
60962
|
reset(div_41);
|
|
60915
60963
|
template_effect(() => {
|
|
60916
|
-
set_value(
|
|
60917
|
-
set_value(
|
|
60918
|
-
set_value(
|
|
60964
|
+
set_value(input_38, get(floor).backgroundImage.opacity);
|
|
60965
|
+
set_value(input_39, get(floor).backgroundImage.scale);
|
|
60966
|
+
set_value(input_40, get(floor).backgroundImage.rotation);
|
|
60919
60967
|
set_class(button_27, 1, `flex-1 px-2 py-1.5 border rounded text-sm ${get(floor).backgroundImage.locked ? "bg-amber-100 border-amber-400 text-amber-700" : "border-gray-200 hover:bg-gray-50"}`);
|
|
60920
|
-
set_text(
|
|
60968
|
+
set_text(text_33, get(floor).backgroundImage.locked ? "🔒 Locked" : "🔓 Unlocked");
|
|
60921
60969
|
});
|
|
60922
|
-
delegated("input",
|
|
60923
|
-
delegated("input",
|
|
60924
|
-
delegated("input",
|
|
60970
|
+
delegated("input", input_38, (e) => updateBackgroundImage({ opacity: Number(e.target.value) }));
|
|
60971
|
+
delegated("input", input_39, (e) => updateBackgroundImage({ scale: Number(e.target.value) }));
|
|
60972
|
+
delegated("input", input_40, (e) => updateBackgroundImage({ rotation: Number(e.target.value) }));
|
|
60925
60973
|
delegated("click", button_27, () => updateBackgroundImage({ locked: !get(floor).backgroundImage.locked }));
|
|
60926
60974
|
delegated("click", button_28, () => {
|
|
60927
60975
|
calibrationPoints.set([]);
|
|
@@ -60930,9 +60978,9 @@ function PropertiesPanel($$anchor, $$props) {
|
|
|
60930
60978
|
delegated("click", button_29, () => setBackgroundImage(void 0));
|
|
60931
60979
|
append($$anchor, div_41);
|
|
60932
60980
|
};
|
|
60933
|
-
if_block(
|
|
60934
|
-
var _$$
|
|
60935
|
-
if (get(hasBgImage) && ((_$$
|
|
60981
|
+
if_block(node_11, ($$render) => {
|
|
60982
|
+
var _$$get18;
|
|
60983
|
+
if (get(hasBgImage) && ((_$$get18 = get(floor)) === null || _$$get18 === void 0 ? void 0 : _$$get18.backgroundImage)) $$render(consequent_15);
|
|
60936
60984
|
});
|
|
60937
60985
|
reset(div);
|
|
60938
60986
|
template_effect(() => classes = set_class(div, 1, `${is3D() ? "w-80" : "w-64"} shrink-0 bg-white border-l border-gray-200 flex flex-col overflow-y-auto p-3 fixed right-0 z-40 shadow-lg`, null, classes, { hidden: !get(hasSelection) }));
|
|
@@ -64717,7 +64765,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
64717
64765
|
const $panMode = () => store_get(panMode, "$panMode", $$stores);
|
|
64718
64766
|
const $projectSettings = () => store_get(projectSettings, "$projectSettings", $$stores);
|
|
64719
64767
|
const [$$stores, $$cleanup] = setup_stores();
|
|
64720
|
-
let selectedCameraSerial = prop($$props, "selectedCameraSerial", 3, null), showCameraCones = prop($$props, "showCameraCones", 3, false), showCameraLabels = prop($$props, "showCameraLabels", 3, true), cameraHeatmapMatrix = prop($$props, "cameraHeatmapMatrix", 19, () => []), cameraThumbnail = prop($$props, "cameraThumbnail", 3, "");
|
|
64768
|
+
let selectedCameraSerial = prop($$props, "selectedCameraSerial", 3, null), showCameraCones = prop($$props, "showCameraCones", 3, false), showCameraLabels = prop($$props, "showCameraLabels", 3, true), cameraHeatmapMatrix = prop($$props, "cameraHeatmapMatrix", 19, () => []), cameraThumbnail = prop($$props, "cameraThumbnail", 3, ""), canvasBackground = prop($$props, "canvasBackground", 3, "#2E353F"), floorPlateBackground = prop($$props, "floorPlateBackground", 3, "#ffffff");
|
|
64721
64769
|
let canvas;
|
|
64722
64770
|
let ctx;
|
|
64723
64771
|
let width = /* @__PURE__ */ state(800);
|
|
@@ -64817,6 +64865,8 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
64817
64865
|
showCameraLabels();
|
|
64818
64866
|
cameraHeatmapMatrix();
|
|
64819
64867
|
cameraThumbnail();
|
|
64868
|
+
canvasBackground();
|
|
64869
|
+
floorPlateBackground();
|
|
64820
64870
|
$$props.projectName;
|
|
64821
64871
|
$$props.heatmapEnabled;
|
|
64822
64872
|
$$props.heatmapMatrix;
|
|
@@ -64894,6 +64944,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
64894
64944
|
let isCalibrating = /* @__PURE__ */ state(false);
|
|
64895
64945
|
let calPoints = /* @__PURE__ */ state(proxy([]));
|
|
64896
64946
|
let bgImage = /* @__PURE__ */ state(null);
|
|
64947
|
+
let thumbnailOpacity = /* @__PURE__ */ state(.65);
|
|
64897
64948
|
user_effect(() => {
|
|
64898
64949
|
var _$$get, _cameraThumbnail$trim, _cameraThumbnail;
|
|
64899
64950
|
const floorBgUrl = (_$$get = get(currentFloor)) === null || _$$get === void 0 || (_$$get = _$$get.backgroundImage) === null || _$$get === void 0 ? void 0 : _$$get.dataUrl;
|
|
@@ -65648,31 +65699,55 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
65648
65699
|
function drawColumn$1(col, selected) {
|
|
65649
65700
|
drawColumn(getCS(), col, selected);
|
|
65650
65701
|
}
|
|
65702
|
+
function getCameraThumbnailBounds(floor = get(currentFloor)) {
|
|
65703
|
+
if (!floor) return null;
|
|
65704
|
+
return getFloorBounds(floor, { includeWallThickness: true });
|
|
65705
|
+
}
|
|
65706
|
+
function drawFloorPlateBackground() {
|
|
65707
|
+
var _$$get3;
|
|
65708
|
+
if (!((_$$get3 = get(currentFloor)) === null || _$$get3 === void 0 || (_$$get3 = _$$get3.walls) === null || _$$get3 === void 0 ? void 0 : _$$get3.length)) return;
|
|
65709
|
+
const bounds = getCameraThumbnailBounds(get(currentFloor));
|
|
65710
|
+
if (!bounds) return;
|
|
65711
|
+
const topLeft = worldToScreen(bounds.minX, bounds.minY);
|
|
65712
|
+
const bottomRight = worldToScreen(bounds.maxX, bounds.maxY);
|
|
65713
|
+
ctx.fillStyle = floorPlateBackground();
|
|
65714
|
+
ctx.fillRect(topLeft.x, topLeft.y, bottomRight.x - topLeft.x, bottomRight.y - topLeft.y);
|
|
65715
|
+
}
|
|
65716
|
+
function isCameraThumbnailOverlayActive() {
|
|
65717
|
+
var _cameraThumbnail2, _$$get4;
|
|
65718
|
+
return !!(((_cameraThumbnail2 = cameraThumbnail()) === null || _cameraThumbnail2 === void 0 ? void 0 : _cameraThumbnail2.trim()) && get(bgImage) && !((_$$get4 = get(currentFloor)) === null || _$$get4 === void 0 ? void 0 : _$$get4.backgroundImage));
|
|
65719
|
+
}
|
|
65651
65720
|
function drawBackgroundImage() {
|
|
65652
|
-
|
|
65721
|
+
var _$$get5;
|
|
65722
|
+
if (!get(bgImage) || !((_$$get5 = get(currentFloor)) === null || _$$get5 === void 0 ? void 0 : _$$get5.backgroundImage)) return;
|
|
65653
65723
|
const bg = get(currentFloor).backgroundImage;
|
|
65654
65724
|
ctx.save();
|
|
65655
|
-
|
|
65656
|
-
|
|
65657
|
-
|
|
65658
|
-
|
|
65659
|
-
|
|
65660
|
-
|
|
65661
|
-
|
|
65662
|
-
ctx.drawImage(get(bgImage), -sw / 2, -sh / 2, sw, sh);
|
|
65663
|
-
} else if (cameraThumbnail()) {
|
|
65664
|
-
const bounds = getFloorBounds(get(currentFloor), { includeWallThickness: true });
|
|
65665
|
-
if (!bounds) {
|
|
65666
|
-
ctx.restore();
|
|
65667
|
-
return;
|
|
65668
|
-
}
|
|
65669
|
-
ctx.globalAlpha = .85;
|
|
65670
|
-
const topLeft = worldToScreen(bounds.minX, bounds.minY);
|
|
65671
|
-
const bottomRight = worldToScreen(bounds.maxX, bounds.maxY);
|
|
65672
|
-
ctx.drawImage(get(bgImage), topLeft.x, topLeft.y, bottomRight.x - topLeft.x, bottomRight.y - topLeft.y);
|
|
65673
|
-
}
|
|
65725
|
+
ctx.globalAlpha = bg.opacity;
|
|
65726
|
+
const s = worldToScreen(bg.position.x, bg.position.y);
|
|
65727
|
+
ctx.translate(s.x, s.y);
|
|
65728
|
+
ctx.rotate(bg.rotation * Math.PI / 180);
|
|
65729
|
+
const sw = get(bgImage).width * bg.scale * get(zoom);
|
|
65730
|
+
const sh = get(bgImage).height * bg.scale * get(zoom);
|
|
65731
|
+
ctx.drawImage(get(bgImage), -sw / 2, -sh / 2, sw, sh);
|
|
65674
65732
|
ctx.restore();
|
|
65675
65733
|
}
|
|
65734
|
+
function drawCameraThumbnail() {
|
|
65735
|
+
if (!isCameraThumbnailOverlayActive() || !get(bgImage) || !get(currentFloor)) return;
|
|
65736
|
+
const bounds = getCameraThumbnailBounds();
|
|
65737
|
+
if (!bounds) return;
|
|
65738
|
+
ctx.save();
|
|
65739
|
+
ctx.globalAlpha = get(thumbnailOpacity);
|
|
65740
|
+
const topLeft = worldToScreen(bounds.minX, bounds.minY);
|
|
65741
|
+
const bottomRight = worldToScreen(bounds.maxX, bounds.maxY);
|
|
65742
|
+
ctx.drawImage(get(bgImage), topLeft.x, topLeft.y, bottomRight.x - topLeft.x, bottomRight.y - topLeft.y);
|
|
65743
|
+
ctx.restore();
|
|
65744
|
+
}
|
|
65745
|
+
function drawFloorHeatmapLayer() {
|
|
65746
|
+
var _$$props$heatmapMatri, _$$props$heatmapMatri2;
|
|
65747
|
+
const floor = get(currentFloor);
|
|
65748
|
+
if (!floor || !$$props.heatmapEnabled || !((_$$props$heatmapMatri = $$props.heatmapMatrix) === null || _$$props$heatmapMatri === void 0 ? void 0 : _$$props$heatmapMatri.length)) return;
|
|
65749
|
+
drawFloorHeatmap(getCS(), floor, (_$$props$heatmapMatri2 = $$props.heatmapMatrix) !== null && _$$props$heatmapMatri2 !== void 0 ? _$$props$heatmapMatri2 : [], get(detectedRooms));
|
|
65750
|
+
}
|
|
65676
65751
|
function getFloorWallBounds(floor = get(currentFloor)) {
|
|
65677
65752
|
var _floor$walls;
|
|
65678
65753
|
if (!(floor === null || floor === void 0 || (_floor$walls = floor.walls) === null || _floor$walls === void 0 ? void 0 : _floor$walls.length)) return null;
|
|
@@ -65720,7 +65795,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
65720
65795
|
}
|
|
65721
65796
|
canvasDirty = false;
|
|
65722
65797
|
ctx.clearRect(0, 0, get(width), get(height));
|
|
65723
|
-
ctx.fillStyle =
|
|
65798
|
+
ctx.fillStyle = canvasBackground();
|
|
65724
65799
|
ctx.fillRect(0, 0, get(width), get(height));
|
|
65725
65800
|
if (!$$props.viewOnly) drawGrid();
|
|
65726
65801
|
if (!$$props.viewOnly && get(layerVis).guides) drawGuides$1();
|
|
@@ -65742,11 +65817,8 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
65742
65817
|
function isSelected(id) {
|
|
65743
65818
|
return id === selId || multiIds.has(id);
|
|
65744
65819
|
}
|
|
65820
|
+
drawFloorPlateBackground();
|
|
65745
65821
|
drawRooms$1();
|
|
65746
|
-
if (floor && $$props.heatmapEnabled && $$props.heatmapMatrix && $$props.heatmapMatrix.length > 0) {
|
|
65747
|
-
var _$$props$heatmapMatri;
|
|
65748
|
-
drawFloorHeatmap(getCS(), floor, (_$$props$heatmapMatri = $$props.heatmapMatrix) !== null && _$$props$heatmapMatri !== void 0 ? _$$props$heatmapMatri : [], get(detectedRooms));
|
|
65749
|
-
}
|
|
65750
65822
|
if (!$$props.viewOnly) drawSnapPoints$1();
|
|
65751
65823
|
if (get(layerVis).walls) {
|
|
65752
65824
|
for (const w of floor.walls) drawWall$1(w, isSelected(w.id));
|
|
@@ -66333,6 +66405,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
66333
66405
|
if (get(layerVis).annotations && floor) drawAnnotations$1(floor);
|
|
66334
66406
|
if (get(annotating) && get(annotationStart)) drawAnnotationPreview();
|
|
66335
66407
|
if (floor) drawTextAnnotations$1(floor);
|
|
66408
|
+
drawCameraThumbnail();
|
|
66336
66409
|
if (get(draggingHandle) === "rotate" && get(currentSelectedId) && get(currentFloor)) {
|
|
66337
66410
|
const fi = get(currentFloor).furniture.find((f) => f.id === get(currentSelectedId));
|
|
66338
66411
|
if (fi) {
|
|
@@ -66369,6 +66442,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
66369
66442
|
ctx.setLineDash([]);
|
|
66370
66443
|
ctx.restore();
|
|
66371
66444
|
}
|
|
66445
|
+
drawFloorHeatmapLayer();
|
|
66372
66446
|
drawMinimap$1();
|
|
66373
66447
|
requestAnimationFrame(draw);
|
|
66374
66448
|
}
|
|
@@ -66494,6 +66568,10 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
66494
66568
|
}
|
|
66495
66569
|
}
|
|
66496
66570
|
document.addEventListener("paste", handlePaste);
|
|
66571
|
+
const unsubThumbOpacity = cameraThumbnailOpacity.subscribe((v) => {
|
|
66572
|
+
set(thumbnailOpacity, v, true);
|
|
66573
|
+
markDirty();
|
|
66574
|
+
});
|
|
66497
66575
|
return () => {
|
|
66498
66576
|
resizeObs.disconnect();
|
|
66499
66577
|
unsub1();
|
|
@@ -66513,6 +66591,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
66513
66591
|
unsubZoom();
|
|
66514
66592
|
unsubCamX();
|
|
66515
66593
|
unsubCamY();
|
|
66594
|
+
unsubThumbOpacity();
|
|
66516
66595
|
unsub_col();
|
|
66517
66596
|
unsub_cols();
|
|
66518
66597
|
unsub_layers();
|
|
@@ -66683,7 +66762,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
66683
66762
|
return findRoomAt(p, get(detectedRooms), get(currentFloor).walls);
|
|
66684
66763
|
}
|
|
66685
66764
|
function onMouseDown(e) {
|
|
66686
|
-
var _$$
|
|
66765
|
+
var _$$get6;
|
|
66687
66766
|
if ($$props.viewOnly) return;
|
|
66688
66767
|
markDirty();
|
|
66689
66768
|
if (e.button === 1 || e.button === 0 && (get(spaceDown) || $panMode() || e.shiftKey && get(currentTool) === "select")) {
|
|
@@ -66764,7 +66843,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
66764
66843
|
placingStair.set(false);
|
|
66765
66844
|
return;
|
|
66766
66845
|
}
|
|
66767
|
-
if (tool === "select" && ((_$$
|
|
66846
|
+
if (tool === "select" && ((_$$get6 = get(currentFloor)) === null || _$$get6 === void 0 ? void 0 : _$$get6.guides)) {
|
|
66768
66847
|
const GUIDE_HIT = 6 / get(zoom);
|
|
66769
66848
|
for (const g of get(currentFloor).guides) {
|
|
66770
66849
|
if (g.orientation === "horizontal" && Math.abs(wp.y - g.position) < GUIDE_HIT) {
|
|
@@ -66833,9 +66912,9 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
66833
66912
|
const dist = Math.hypot(newPts[1].x - newPts[0].x, newPts[1].y - newPts[0].y);
|
|
66834
66913
|
const realDist = prompt("Enter the real-world distance between these two points (in cm):");
|
|
66835
66914
|
if (realDist && Number(realDist) > 0) {
|
|
66836
|
-
var _$$
|
|
66915
|
+
var _$$get7;
|
|
66837
66916
|
const pixelsPerCm = dist / Number(realDist);
|
|
66838
|
-
if ((_$$
|
|
66917
|
+
if ((_$$get7 = get(currentFloor)) === null || _$$get7 === void 0 ? void 0 : _$$get7.backgroundImage) updateBackgroundImage({ scale: get(currentFloor).backgroundImage.scale * (1 / pixelsPerCm) });
|
|
66839
66918
|
}
|
|
66840
66919
|
calibrationMode.set(false);
|
|
66841
66920
|
return [];
|
|
@@ -67205,7 +67284,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
67205
67284
|
}
|
|
67206
67285
|
}
|
|
67207
67286
|
function onMouseMove(e) {
|
|
67208
|
-
var _$$
|
|
67287
|
+
var _$$get8, _$$get9, _$$get10, _$$get11;
|
|
67209
67288
|
if ($$props.viewOnly) return;
|
|
67210
67289
|
markDirty();
|
|
67211
67290
|
const rect = canvas.getBoundingClientRect();
|
|
@@ -67223,7 +67302,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
67223
67302
|
} : r));
|
|
67224
67303
|
return;
|
|
67225
67304
|
}
|
|
67226
|
-
if (get(draggingGuideId) && ((_$$
|
|
67305
|
+
if (get(draggingGuideId) && ((_$$get8 = get(currentFloor)) === null || _$$get8 === void 0 ? void 0 : _$$get8.guides)) {
|
|
67227
67306
|
const g = get(currentFloor).guides.find((g) => g.id === get(draggingGuideId));
|
|
67228
67307
|
if (g) {
|
|
67229
67308
|
const newPos = g.orientation === "horizontal" ? get(mousePos).y : get(mousePos).x;
|
|
@@ -67379,7 +67458,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
67379
67458
|
}
|
|
67380
67459
|
}
|
|
67381
67460
|
}
|
|
67382
|
-
if (get(draggingTextAnnotationId) && ((_$$
|
|
67461
|
+
if (get(draggingTextAnnotationId) && ((_$$get9 = get(currentFloor)) === null || _$$get9 === void 0 ? void 0 : _$$get9.textAnnotations)) {
|
|
67383
67462
|
const basePos = {
|
|
67384
67463
|
x: get(mousePos).x - textAnnotationDragOffset.x,
|
|
67385
67464
|
y: get(mousePos).y - textAnnotationDragOffset.y
|
|
@@ -67396,7 +67475,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
67396
67475
|
}, true);
|
|
67397
67476
|
}
|
|
67398
67477
|
}
|
|
67399
|
-
if (get(draggingColumnId) && ((_$$
|
|
67478
|
+
if (get(draggingColumnId) && ((_$$get10 = get(currentFloor)) === null || _$$get10 === void 0 ? void 0 : _$$get10.columns)) {
|
|
67400
67479
|
const basePos = {
|
|
67401
67480
|
x: get(mousePos).x - columnDragOffset.x,
|
|
67402
67481
|
y: get(mousePos).y - columnDragOffset.y
|
|
@@ -67406,7 +67485,7 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
67406
67485
|
y: snap(basePos.y)
|
|
67407
67486
|
});
|
|
67408
67487
|
}
|
|
67409
|
-
if (get(draggingStairId) && ((_$$
|
|
67488
|
+
if (get(draggingStairId) && ((_$$get11 = get(currentFloor)) === null || _$$get11 === void 0 ? void 0 : _$$get11.stairs)) {
|
|
67410
67489
|
const basePos = {
|
|
67411
67490
|
x: get(mousePos).x - stairDragOffset.x,
|
|
67412
67491
|
y: get(mousePos).y - stairDragOffset.y
|
|
@@ -67417,12 +67496,12 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
67417
67496
|
});
|
|
67418
67497
|
}
|
|
67419
67498
|
if (get(draggingFurnitureId)) {
|
|
67420
|
-
var _$$
|
|
67499
|
+
var _$$get12;
|
|
67421
67500
|
const basePos = {
|
|
67422
67501
|
x: get(mousePos).x - dragOffset.x,
|
|
67423
67502
|
y: get(mousePos).y - dragOffset.y
|
|
67424
67503
|
};
|
|
67425
|
-
const fi = (_$$
|
|
67504
|
+
const fi = (_$$get12 = get(currentFloor)) === null || _$$get12 === void 0 ? void 0 : _$$get12.furniture.find((f) => f.id === get(draggingFurnitureId));
|
|
67426
67505
|
if (fi) {
|
|
67427
67506
|
const wallSnap = snapFurnitureToWall(basePos, fi.catalogId, fi.rotation);
|
|
67428
67507
|
if (wallSnap) {
|
|
@@ -67435,13 +67514,13 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
67435
67514
|
wallAngle: wallSnap.wallAngle
|
|
67436
67515
|
}, true);
|
|
67437
67516
|
} else {
|
|
67438
|
-
var _$$
|
|
67517
|
+
var _$$get13;
|
|
67439
67518
|
const snapped = {
|
|
67440
67519
|
x: snap(basePos.x),
|
|
67441
67520
|
y: snap(basePos.y)
|
|
67442
67521
|
};
|
|
67443
67522
|
const GUIDE_SNAP = 10;
|
|
67444
|
-
if ((_$$
|
|
67523
|
+
if ((_$$get13 = get(currentFloor)) === null || _$$get13 === void 0 ? void 0 : _$$get13.guides) for (const g of get(currentFloor).guides) {
|
|
67445
67524
|
if (g.orientation === "horizontal" && Math.abs(snapped.y - g.position) < GUIDE_SNAP) snapped.y = g.position;
|
|
67446
67525
|
if (g.orientation === "vertical" && Math.abs(snapped.x - g.position) < GUIDE_SNAP) snapped.x = g.position;
|
|
67447
67526
|
}
|
|
@@ -68137,8 +68216,8 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
68137
68216
|
}
|
|
68138
68217
|
}
|
|
68139
68218
|
let cursorStyle = /* @__PURE__ */ user_derived(() => {
|
|
68140
|
-
var _$$
|
|
68141
|
-
return get(spaceDown) || get(isPanning) || $panMode() || get(shiftDown) && get(currentTool) === "select" ? "grab" : get(draggingFurnitureId) ? "move" : get(draggingRoomId) ? "move" : get(draggingMultiSelect) ? "move" : get(draggingDoorId) ? "move" : get(draggingWindowId) ? "move" : get(draggingStairId) ? "move" : get(draggingColumnId) ? "move" : get(draggingTextAnnotationId) ? "move" : get(draggingWallParallel) ? "move" : get(draggingCurveHandle) ? "crosshair" : get(draggingWallEndpoint) ? "crosshair" : get(draggingHandle) === "rotate" ? "grabbing" : get(draggingHandle) === "resize-t" || get(draggingHandle) === "resize-b" ? "ns-resize" : get(draggingHandle) === "resize-l" || get(draggingHandle) === "resize-r" ? "ew-resize" : ((_$$
|
|
68219
|
+
var _$$get14;
|
|
68220
|
+
return get(spaceDown) || get(isPanning) || $panMode() || get(shiftDown) && get(currentTool) === "select" ? "grab" : get(draggingFurnitureId) ? "move" : get(draggingRoomId) ? "move" : get(draggingMultiSelect) ? "move" : get(draggingDoorId) ? "move" : get(draggingWindowId) ? "move" : get(draggingStairId) ? "move" : get(draggingColumnId) ? "move" : get(draggingTextAnnotationId) ? "move" : get(draggingWallParallel) ? "move" : get(draggingCurveHandle) ? "crosshair" : get(draggingWallEndpoint) ? "crosshair" : get(draggingHandle) === "rotate" ? "grabbing" : get(draggingHandle) === "resize-t" || get(draggingHandle) === "resize-b" ? "ns-resize" : get(draggingHandle) === "resize-l" || get(draggingHandle) === "resize-r" ? "ew-resize" : ((_$$get14 = get(draggingHandle)) === null || _$$get14 === void 0 ? void 0 : _$$get14.startsWith("resize")) ? "nwse-resize" : get(currentTool) === "text" ? "text" : get(currentTool) === "select" ? "default" : get(currentTool) === "furniture" ? "copy" : get(currentTool) === "door" || get(currentTool) === "window" ? get(placementPreview) ? "crosshair" : "not-allowed" : "crosshair";
|
|
68142
68221
|
});
|
|
68143
68222
|
var div = root$1();
|
|
68144
68223
|
event("keydown", $window, onKeyDown);
|
|
@@ -68225,8 +68304,8 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
68225
68304
|
}
|
|
68226
68305
|
set(editingTextAnnotationId, null);
|
|
68227
68306
|
} else if (e.key === "Escape") {
|
|
68228
|
-
var _$$
|
|
68229
|
-
if ((_$$
|
|
68307
|
+
var _$$get15;
|
|
68308
|
+
if ((_$$get15 = get(currentFloor)) === null || _$$get15 === void 0 ? void 0 : _$$get15.textAnnotations) {
|
|
68230
68309
|
const ta = get(currentFloor).textAnnotations.find((t) => t.id === get(editingTextAnnotationId));
|
|
68231
68310
|
if (ta && ta.text === "Text" && !get(editingTextAnnotationValue).trim()) {
|
|
68232
68311
|
removeTextAnnotation(get(editingTextAnnotationId));
|
|
@@ -68578,8 +68657,8 @@ function FloorPlanCanvas($$anchor, $$props) {
|
|
|
68578
68657
|
var text_16 = child(div_8);
|
|
68579
68658
|
reset(div_8);
|
|
68580
68659
|
template_effect(() => {
|
|
68581
|
-
var _$$
|
|
68582
|
-
return set_text(text_16, `Click to place · Scroll or R to rotate (${(_$$
|
|
68660
|
+
var _$$get16;
|
|
68661
|
+
return set_text(text_16, `Click to place · Scroll or R to rotate (${(_$$get16 = get(currentPlacingRotation)) !== null && _$$get16 !== void 0 ? _$$get16 : ""}°) · Esc
|
|
68583
68662
|
to cancel`);
|
|
68584
68663
|
});
|
|
68585
68664
|
append($$anchor, div_8);
|
|
@@ -69677,6 +69756,9 @@ function App($$anchor, $$props) {
|
|
|
69677
69756
|
let config = /* @__PURE__ */ state(proxy({ ...DEFAULT_CONFIG }));
|
|
69678
69757
|
(_$$props$stores = $$props.stores) === null || _$$props$stores === void 0 || _$$props$stores.floorData.subscribe((v) => set(floorData, v, true));
|
|
69679
69758
|
(_$$props$stores2 = $$props.stores) === null || _$$props$stores2 === void 0 || _$$props$stores2.config.subscribe((v) => set(config, normalizeConfig(v), true));
|
|
69759
|
+
user_effect(() => {
|
|
69760
|
+
if (get(config).cameraThumbnailOpacity != null) cameraThumbnailOpacity.set(get(config).cameraThumbnailOpacity);
|
|
69761
|
+
});
|
|
69680
69762
|
let commandPaletteOpen = /* @__PURE__ */ state(false);
|
|
69681
69763
|
let printOpen = /* @__PURE__ */ state(false);
|
|
69682
69764
|
let mode = /* @__PURE__ */ state("2d");
|
|
@@ -69818,6 +69900,14 @@ function App($$anchor, $$props) {
|
|
|
69818
69900
|
var _$$get12;
|
|
69819
69901
|
return ((_$$get12 = get(config)) === null || _$$get12 === void 0 ? void 0 : _$$get12.cameraThumbnail) || "";
|
|
69820
69902
|
});
|
|
69903
|
+
let $11 = /* @__PURE__ */ user_derived(() => {
|
|
69904
|
+
var _$$get13;
|
|
69905
|
+
return (_$$get13 = get(config)) === null || _$$get13 === void 0 ? void 0 : _$$get13.canvasBackground;
|
|
69906
|
+
});
|
|
69907
|
+
let $12 = /* @__PURE__ */ user_derived(() => {
|
|
69908
|
+
var _$$get14;
|
|
69909
|
+
return (_$$get14 = get(config)) === null || _$$get14 === void 0 ? void 0 : _$$get14.floorPlateBackground;
|
|
69910
|
+
});
|
|
69821
69911
|
FloorPlanCanvas(node_3, {
|
|
69822
69912
|
get viewOnly() {
|
|
69823
69913
|
return get($0);
|
|
@@ -69851,6 +69941,12 @@ function App($$anchor, $$props) {
|
|
|
69851
69941
|
},
|
|
69852
69942
|
get cameraThumbnail() {
|
|
69853
69943
|
return get($10);
|
|
69944
|
+
},
|
|
69945
|
+
get canvasBackground() {
|
|
69946
|
+
return get($11);
|
|
69947
|
+
},
|
|
69948
|
+
get floorPlateBackground() {
|
|
69949
|
+
return get($12);
|
|
69854
69950
|
}
|
|
69855
69951
|
});
|
|
69856
69952
|
}
|
|
@@ -69879,8 +69975,12 @@ function App($$anchor, $$props) {
|
|
|
69879
69975
|
{
|
|
69880
69976
|
let $0 = /* @__PURE__ */ user_derived(() => get(mode) === "3d");
|
|
69881
69977
|
let $1 = /* @__PURE__ */ user_derived(() => {
|
|
69882
|
-
var _$$get$siteCameras, _$$
|
|
69883
|
-
return (_$$get$siteCameras = (_$$
|
|
69978
|
+
var _$$get$siteCameras, _$$get15;
|
|
69979
|
+
return (_$$get$siteCameras = (_$$get15 = get(config)) === null || _$$get15 === void 0 ? void 0 : _$$get15.siteCameras) !== null && _$$get$siteCameras !== void 0 ? _$$get$siteCameras : [];
|
|
69980
|
+
});
|
|
69981
|
+
let $2 = /* @__PURE__ */ user_derived(() => {
|
|
69982
|
+
var _$$get$cameraThumbnai, _$$get16;
|
|
69983
|
+
return (_$$get$cameraThumbnai = (_$$get16 = get(config)) === null || _$$get16 === void 0 ? void 0 : _$$get16.cameraThumbnail) !== null && _$$get$cameraThumbnai !== void 0 ? _$$get$cameraThumbnai : "";
|
|
69884
69984
|
});
|
|
69885
69985
|
PropertiesPanel($$anchor, {
|
|
69886
69986
|
get is3D() {
|
|
@@ -69888,6 +69988,9 @@ function App($$anchor, $$props) {
|
|
|
69888
69988
|
},
|
|
69889
69989
|
get siteCameras() {
|
|
69890
69990
|
return get($1);
|
|
69991
|
+
},
|
|
69992
|
+
get cameraThumbnail() {
|
|
69993
|
+
return get($2);
|
|
69891
69994
|
}
|
|
69892
69995
|
});
|
|
69893
69996
|
}
|