@realsee/dnalogel
Version:
108 lines (107 loc) • 3.3 kB
JavaScript
var l = Object.defineProperty, m = Object.defineProperties;
var d = Object.getOwnPropertyDescriptors;
var h = Object.getOwnPropertySymbols;
var u = Object.prototype.hasOwnProperty, b = Object.prototype.propertyIsEnumerable;
var a = (i, e, t) => e in i ? l(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t, s = (i, e) => {
for (var t in e || (e = {}))
u.call(e, t) && a(i, t, e[t]);
if (h)
for (var t of h(e))
b.call(e, t) && a(i, t, e[t]);
return i;
}, r = (i, e) => m(i, d(e));
var o = (i, e, t) => (a(i, typeof e != "symbol" ? e + "" : e, t), t);
import { Five as v } from "@realsee/five";
import { Controller as c } from "../base/BasePlugin.js";
import "../shared-utils/Subscribe.js";
import "hammerjs";
import "three";
import "../vendor/@tweenjs/tween/dist/tween.esm.js.js";
import "../CSS3DRenderPlugin/utils/three/CSS3DRender.js";
import "../shared-utils/positionToVector3.js";
import "../CSS3DRenderPlugin/utils/three/CSS3DRenderer.js";
import "three/examples/jsm/renderers/CSS3DRenderer";
import "../CSS3DRenderPlugin/utils/getAllCSS3DObject.js";
import "../shared-utils/util.js";
import "../CSS3DRenderPlugin/utils/createResizeObserver.js";
import "../CSS3DRenderPlugin/utils/even.js";
import "../CSS3DRenderPlugin/utils/three/CSS3DObject.js";
import "../CSS3DRenderPlugin/utils/three/OpacityMesh.js";
import "../shared-utils/three/centerPoint.js";
import "../shared-utils/three/getObjectVisible.js";
import "../CSS3DRenderPlugin/utils/three/CSS3DScene.js";
import "../CSS3DRenderPlugin/utils/three/CSS3DGroup.js";
import "../CSS3DRenderPlugin/utils/generateBehindFiveElement.js";
import "animejs";
import "../shared-utils/url/absoluteUrl.js";
class K extends c {
constructor(t) {
super(t);
o(this, "state");
o(this, "container");
o(this, "enabled");
this.five = t, this.five.once("dispose", this.dispose), this.enabled = !0, this.state = this.initState();
}
/**
* 启用组件
* @param options
*/
enable(t) {
this.enabled = !0, this.updateState(r(s({}, t), { userAction: !0 }));
}
/**
* 禁用组件
* @param options
*/
disable(t) {
this.enabled = !1, this.updateState(r(s({}, t), { userAction: !0 }));
}
/**
* 显示 UI
* @param options
* @returns
*/
show(t) {
if (this.state.enabled)
return this.setState(r(s({}, this.state), { visible: !0 }), t), Promise.resolve();
}
/**
* 隐藏 UI
* @param options
* @returns
*/
hide(t) {
if (this.state.enabled)
return this.setState(r(s({}, this.state), { visible: !1 }), t), Promise.resolve();
}
/**
* 销毁对象
*/
dispose() {
this.container.remove();
}
/**
* 设置状态
* @param state @T 状态
* @param options @BaseOptions 可选配置
* @returns
*/
setState(t, n) {
if (!this.enabled)
return;
const p = s({}, this.state);
this.state = s(s(s({}, this.state), t), n), this.stateChangedCallback(p, n);
}
get visible() {
return this.five.state.mode === v.Mode.Panorama;
}
appendTo(t) {
this.enabled && (this.container = t, this.render());
}
updateState(t) {
this.setState(r(s({}, this.state), { enabled: this.enabled, visible: this.visible }), t);
}
}
export {
K as BasePanoPluginController
};