@realsee/dnalogel
Version:
85 lines (84 loc) • 2.48 kB
JavaScript
import { Subscribe as y, Five as s } from "@realsee/five";
import L from "./ItemLabelComponent.js";
import { DISPLAY_STRATEGY_TYPE as g } from "./typings.js";
import { parseModelItemLabelPluginData as E } from "./utils/parseData.js";
import "../vendor/svelte/internal/index.js";
import "three";
import "./ItemLabelItem.js";
import "../vendor/classnames/index.js";
import "../shared-utils/debounce.js";
const C = (n, o) => {
var a, d;
const e = {
container: document.createElement("div"),
data: null,
enabled: !0,
fiveModeEnabled: void 0,
itemLabels: [],
wrapper: null,
app: void 0,
hooks: new y(),
modelOcclusionEnable: (a = o == null ? void 0 : o.modelOcclusionEnable) != null ? a : !0,
displayStrategyType: (d = o == null ? void 0 : o.displayStrategyType) != null ? d : g.SMALL
};
e.container.setAttribute("class", "model-item-label-plugin-container"), e.container.style.cssText = `
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 5;
`, e.container.style.pointerEvents = "none";
const p = (t) => (e.wrapper = t, t.appendChild(e.container), i(), !0), c = (t) => {
e.itemLabels = E(t), i();
}, u = () => (e.enabled || (e.enabled = !0, i()), !0), b = () => (e.enabled && (e.enabled = !1, i()), !0), l = () => {
f(), e.container.remove();
}, i = () => {
var t;
if (e.wrapper) {
if (!e.enabled || !e.fiveModeEnabled) {
(t = e.app) == null || t.$destroy(), e.app = void 0;
return;
}
e.app ? e.app.$set({
five: n,
itemLabels: e.itemLabels
}) : e.app = new L({
target: e.container,
props: {
five: n,
modelOcclusionEnable: e.modelOcclusionEnable,
itemLabels: e.itemLabels,
hooks: e.hooks,
displayStrategyType: e.displayStrategyType
}
});
}
}, m = () => {
n.on("modeChange", r), n.once("dispose", l);
}, f = () => {
n.off("modeChange", r);
}, r = (t) => {
if (e.enabled) {
if (t !== s.Mode.Floorplan) {
e.fiveModeEnabled = !1, i();
return;
}
n.once("initAnimationEnded", () => {
e.fiveModeEnabled = n.currentMode === s.Mode.Floorplan, i();
});
}
};
return m(), {
appendTo: p,
load: c,
enable: u,
disable: b,
dispose: l,
hooks: e.hooks
};
};
export {
C as ModelItemLabelPlugin,
C as default
};