@realsee/five 6.8.3 → 6.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/plugins/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five
4
- * Generated: 2026/5/11
5
- * Version: 6.8.3
4
+ * Generated: 2026/5/22
5
+ * Version: 6.8.5
6
6
  * Terms:
7
7
  * Realsee SDK License Agreement
8
8
  * Update: July 28, 2021
@@ -556,13 +556,17 @@ var ne = class {
556
556
  this.changeTapScreenPosition();
557
557
  }, this.dispose = () => {
558
558
  this.disable();
559
- }, this.five = t, this.state = Object.assign({
559
+ }, this.five = t;
560
+ let r = {
560
561
  enabled: !0,
561
562
  visible: !0,
562
563
  mode: "box",
563
564
  selectedId: null,
564
565
  selectAll: !1
565
- }, n == null ? void 0 : n.initialState), this._config = Object.assign({}, n == null ? void 0 : n.config), this.group.rotateX(Math.PI), this.wrapper.className = "ItemMaskPlugin", this.wrapper.innerHTML = "<span class=\"ItemMaskPluginCircle\"></span><span class=\"ItemMaskPluginCircle\"></span>", this.style.innerHTML = "\n .ItemMaskPlugin {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n pointer-events: none;\n }\n .ItemMaskPluginCircle {\n position: absolute;\n top: -10px;\n left: -10px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n box-shadow: 0px 0px 0px 2px #fff;\n }\n ", this.state.enabled && this._enable({ userAction: !1 });
566
+ };
567
+ this.state = Object.assign(r, n == null ? void 0 : n.initialState);
568
+ let a = Object.assign({}, n == null ? void 0 : n.config);
569
+ this._config = a, this.group.rotateX(Math.PI), this.wrapper.className = "ItemMaskPlugin", this.wrapper.innerHTML = "<span class=\"ItemMaskPluginCircle\"></span><span class=\"ItemMaskPluginCircle\"></span>", this.style.innerHTML = "\n .ItemMaskPlugin {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n pointer-events: none;\n }\n .ItemMaskPluginCircle {\n position: absolute;\n top: -10px;\n left: -10px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n box-shadow: 0px 0px 0px 2px #fff;\n }\n ", this.state.enabled && this._enable({ userAction: !1 });
566
570
  }
567
571
  load(e) {
568
572
  return S(this, void 0, void 0, function* () {
@@ -573,7 +577,7 @@ var ne = class {
573
577
  fragmentShader: "\n uniform sampler2D map;\n uniform float opacity;\n varying vec2 vUv;\n\n void main() {\n float alpha = 0.15;\n float depth = 0.003;\n if (vUv.x < depth || vUv.x > 1.0 - depth) {\n alpha = mix(1.0, 0.25, abs(vUv.y - 0.5) * 2.0);\n } else if (vUv.y < depth || vUv.y > 1.0 - depth) {\n alpha = mix(1.0, 0.25, abs(vUv.x - 0.5) * 2.0);\n }\n if (gl_FrontFacing) {\n gl_FragColor = vec4(1.0, 1.0, 1.0, alpha * opacity);\n } else {\n gl_FragColor = vec4(1.0, 1.0, 1.0, alpha / 4.0 * opacity);\n }\n }\n ",
574
578
  side: i.DoubleSide,
575
579
  visible: this.state.selectedId === `${e.category_name}${e.index}`,
576
- uniforms: { opacity: { value: this.state.mode === "box" ? 1 : 0 } },
580
+ uniforms: { opacity: { value: +(this.state.mode === "box") } },
577
581
  depthWrite: !1,
578
582
  depthTest: !1,
579
583
  transparent: !0
@@ -2154,14 +2158,18 @@ var U = (e) => {
2154
2158
  };
2155
2159
  }, this.dispose = () => {
2156
2160
  this.disable();
2157
- }, this.five = e, this.state = Object.assign({
2161
+ }, this.five = e;
2162
+ let r = {
2158
2163
  enabled: !1,
2159
2164
  visible: !0,
2160
2165
  arrowsVisible: !1
2161
- }, n == null ? void 0 : n.initialState), this._config = Object.assign({
2166
+ };
2167
+ this.state = Object.assign(r, n == null ? void 0 : n.initialState);
2168
+ let a = Object.assign({
2162
2169
  fixedLongitude: 0,
2163
2170
  orthoView: !0
2164
- }, n == null ? void 0 : n.config), this.state.enabled && this._enable({ userAction: !1 }), this.mc = new le.Manager(this.wrapper), this.mc.add(new le.Tap({ interval: 410 })), this.mc.add(new le.Pan({
2171
+ }, n == null ? void 0 : n.config);
2172
+ this._config = a, this.state.enabled && this._enable({ userAction: !1 }), this.mc = new le.Manager(this.wrapper), this.mc.add(new le.Tap({ interval: 410 })), this.mc.add(new le.Pan({
2165
2173
  threshold: 10,
2166
2174
  pointers: 0
2167
2175
  })), this.camera.setFromPose({
@@ -2425,10 +2433,14 @@ var ve = class {
2425
2433
  constructor(e, t) {
2426
2434
  super(e), this.dispose = () => {
2427
2435
  this.disable();
2428
- }, this.five = e, this.state = Object.assign({
2436
+ }, this.five = e;
2437
+ let n = {
2429
2438
  enabled: !0,
2430
2439
  visible: !0
2431
- }, t == null ? void 0 : t.initialState), this._config = Object.assign({}, t == null ? void 0 : t.config), this.state.enabled && this._enable({ userAction: !1 }), this.cancelAnimation = null, this.skipStart = 0, this.skipEnd = 0, this.location = 0, this.totalDistance = 0, this.trajectory = null, this.currentKeyFrame = null, this.nextKeyframe = null, this.nextButOneKeyframe = null, this.keyframes = [], this.rate = this.config.rate || 1, this.virualCamera = this.five.camera.clone(), this.playingState = {
2440
+ };
2441
+ this.state = Object.assign(n, t == null ? void 0 : t.initialState);
2442
+ let r = Object.assign({}, t == null ? void 0 : t.config);
2443
+ this._config = r, this.state.enabled && this._enable({ userAction: !1 }), this.cancelAnimation = null, this.skipStart = 0, this.skipEnd = 0, this.location = 0, this.totalDistance = 0, this.trajectory = null, this.currentKeyFrame = null, this.nextKeyframe = null, this.nextButOneKeyframe = null, this.keyframes = [], this.rate = this.config.rate || 1, this.virualCamera = this.five.camera.clone(), this.playingState = {
2432
2444
  keyframeIndex: null,
2433
2445
  progress: null
2434
2446
  }, this.timeArray = null, this.startTimestamp = null, this.playbackStartTime = null, this.playbackEndTime = null, Object.defineProperties(this, { currentDistance: {
@@ -2728,10 +2740,14 @@ var Se = "\nvarying vec2 vUv;\nvarying vec3 vPosition;\nvoid main() {\n vUv = u
2728
2740
  this.panoMesh.setOpacity(n), this.mesh.material.uniforms.progress.value = t, this.mesh.material.uniforms.opacity.value = n, this.mesh.material.uniforms.map.value.needsUpdate = !0, this.five.needsRender = !0;
2729
2741
  }, this.dispose = () => {
2730
2742
  this.disable();
2731
- }, this.five = e, this.state = Object.assign({
2743
+ }, this.five = e;
2744
+ let r = {
2732
2745
  enabled: !1,
2733
2746
  visible: !0
2734
- }, t == null ? void 0 : t.initialState), this._config = Object.assign(Object.assign({}, t == null ? void 0 : t.config), { maxOpacity: 1 }), !(typeof document > "u") && (this.canvas = document.createElement("canvas"), this.ctx = this.canvas.getContext("2d"), this.canvas.width = Te, this.canvas.height = Ee, this.ctx.shadowColor = "rgba(255,255,255,0.5)", this.ctx.shadowBlur = 6, this.ctx.shadowOffsetX = 0, this.ctx.shadowOffsetY = 0, this.mesh.material.uniforms.map.value = new i.CanvasTexture(this.canvas), this.group.add(this.mesh), this.panoMesh.setProgress(1), this.panoMesh.setOpacity(0), this.group.add(this.panoMesh), this.state.enabled && this._enable({ userAction: !1 }));
2747
+ };
2748
+ this.state = Object.assign(r, t == null ? void 0 : t.initialState);
2749
+ let a = Object.assign(Object.assign({}, t == null ? void 0 : t.config), { maxOpacity: 1 });
2750
+ this._config = a, !(typeof document > "u") && (this.canvas = document.createElement("canvas"), this.ctx = this.canvas.getContext("2d"), this.canvas.width = Te, this.canvas.height = Ee, this.ctx.shadowColor = "rgba(255,255,255,0.5)", this.ctx.shadowBlur = 6, this.ctx.shadowOffsetX = 0, this.ctx.shadowOffsetY = 0, this.mesh.material.uniforms.map.value = new i.CanvasTexture(this.canvas), this.group.add(this.mesh), this.panoMesh.setProgress(1), this.panoMesh.setOpacity(0), this.group.add(this.panoMesh), this.state.enabled && this._enable({ userAction: !1 }));
2735
2751
  }
2736
2752
  load(e) {
2737
2753
  return S(this, void 0, void 0, function* () {});
@@ -3158,11 +3174,14 @@ var Ie = class extends v.Controller {
3158
3174
  });
3159
3175
  }
3160
3176
  constructor(e, t) {
3161
- super(e), this.paths = /* @__PURE__ */ new Map(), this.up = new i.Vector3(0, 1, 0), this.state = Object.assign({
3177
+ super(e), this.paths = /* @__PURE__ */ new Map(), this.up = new i.Vector3(0, 1, 0);
3178
+ let n = {
3162
3179
  enabled: !0,
3163
3180
  visible: !0,
3164
3181
  playing: !1
3165
- }, t == null ? void 0 : t.initialState), this._config = Object.assign(Object.assign({}, {
3182
+ };
3183
+ this.state = Object.assign(n, t == null ? void 0 : t.initialState);
3184
+ let r = {
3166
3185
  lineCount: 6,
3167
3186
  spacing: .02,
3168
3187
  lineWidth: 2,
@@ -3180,7 +3199,8 @@ var Ie = class extends v.Controller {
3180
3199
  subMeshMaxOpacity: .5,
3181
3200
  subMeshSegmentInterval: 3,
3182
3201
  subMeshHighlightWidth: 1
3183
- }), t == null ? void 0 : t.config), t != null && t.paths && t.paths.length > 0 && t.paths.forEach((e) => {
3202
+ };
3203
+ this._config = Object.assign(Object.assign({}, r), t == null ? void 0 : t.config), t != null && t.paths && t.paths.length > 0 && t.paths.forEach((e) => {
3184
3204
  this.addPath(e);
3185
3205
  }), this.state.enabled && this._enable({ userAction: !1 });
3186
3206
  }
@@ -3318,7 +3338,7 @@ var Ie = class extends v.Controller {
3318
3338
  for (let n = 0; n < c; n++) {
3319
3339
  let r = (n - (c - 1) / 2) * l, a = e.points.map((a, o) => {
3320
3340
  let s = o / (e.points.length - 1), c = t.getTangent(s).normalize(), l = new i.Vector3().crossVectors(this.up, c).normalize(), u = r * Math.abs((o - e.points.length / 2) / e.points.length - .5) * -1;
3321
- return a.clone().addScaledVector(l, r + u).add(new i.Vector3(0, f + .02 * (n % 2 == 0 ? 1 : 0), 0));
3341
+ return a.clone().addScaledVector(l, r + u).add(new i.Vector3(0, f + .02 * (n % 2 == 0), 0));
3322
3342
  }), g = new i.CatmullRomCurve3(a), { positions: _ } = this.getPositions(g, s), v = new Fe();
3323
3343
  v.setPositions(_);
3324
3344
  let y = new Me({
@@ -3711,10 +3731,12 @@ var Ve = class extends x.Controller {
3711
3731
  this.five.off("render.prepare", this.render), (e = this.resizeObserver) == null || e.disconnect(), this.resizeObserver = void 0;
3712
3732
  }, this.dispose = () => {
3713
3733
  this.removeAll(), this._disable({ userAction: !1 });
3714
- }, this.five = e, this.renderer = new L(), this.renderer.domElement.id = "five-CSS3DPlugin", this.styleSheet.replaceSync(Re), /Chrome/.test(navigator.userAgent) && !/Edge|Edg|OPR/.test(navigator.userAgent) && this.styleSheet.insertRule("#five-CSS3DPlugin * { transform-style: preserve-3d; }"), document && document.adoptedStyleSheets.push(this.styleSheet), this.state = Object.assign({
3734
+ }, this.five = e, this.renderer = new L(), this.renderer.domElement.id = "five-CSS3DPlugin", this.styleSheet.replaceSync(Re), /Chrome/.test(navigator.userAgent) && !/Edge|Edg|OPR/.test(navigator.userAgent) && this.styleSheet.insertRule("#five-CSS3DPlugin * { transform-style: preserve-3d; }"), document && document.adoptedStyleSheets.push(this.styleSheet);
3735
+ let n = {
3715
3736
  enabled: !0,
3716
3737
  visible: !0
3717
- }, t == null ? void 0 : t.initialState), this.state.enabled ? this._enable({ userAction: !1 }) : this.styleSheet.disabled = !0;
3738
+ };
3739
+ this.state = Object.assign(n, t == null ? void 0 : t.initialState), this.state.enabled ? this._enable({ userAction: !1 }) : this.styleSheet.disabled = !0;
3718
3740
  }
3719
3741
  load(e) {
3720
3742
  return S(this, void 0, void 0, function* () {});
@@ -3875,10 +3897,12 @@ var Ve = class extends x.Controller {
3875
3897
  this.five.off("render.prepare", this.render), (e = this.resizeObserver) == null || e.disconnect(), this.resizeObserver = void 0;
3876
3898
  }, this.dispose = () => {
3877
3899
  this.removeAll(), this._disable({ userAction: !1 });
3878
- }, this.five = e, this.renderer = new Ye(), this.renderer.domElement.id = "five-CSS2DPlugin", this.styleSheet.replaceSync(Xe), document && document.adoptedStyleSheets.push(this.styleSheet), this.state = Object.assign({
3900
+ }, this.five = e, this.renderer = new Ye(), this.renderer.domElement.id = "five-CSS2DPlugin", this.styleSheet.replaceSync(Xe), document && document.adoptedStyleSheets.push(this.styleSheet);
3901
+ let n = {
3879
3902
  enabled: !0,
3880
3903
  visible: !0
3881
- }, t == null ? void 0 : t.initialState), this.state.enabled ? this._enable({ userAction: !1 }) : this.styleSheet.disabled = !0;
3904
+ };
3905
+ this.state = Object.assign(n, t == null ? void 0 : t.initialState), this.state.enabled ? this._enable({ userAction: !1 }) : this.styleSheet.disabled = !0;
3882
3906
  }
3883
3907
  load(e) {
3884
3908
  return S(this, void 0, void 0, function* () {});
@@ -4095,10 +4119,12 @@ var at = class extends i.Mesh {
4095
4119
  opacity: 1,
4096
4120
  depthTest: !1,
4097
4121
  depthWrite: !1
4098
- });
4099
- this.arrow = new at(new i.ConeGeometry(.04, this.arrowHeight, 32), r(), e.direction), this.arrow.name = `arrow-${e.direction}`, this.arrow.renderOrder = K.MOVE_HELPER_ARROW, this.arrowNeg = new at(new i.ConeGeometry(.04, this.arrowHeight, 32), r(), e.direction), this.arrowNeg.name = `arrow-neg-${e.direction}`, this.arrowNeg.renderOrder = K.MOVE_HELPER_ARROW;
4100
- let a = .004;
4101
- this.line = new at(new i.CylinderGeometry(a, a, this.lineHeight, 32), r(), e.direction), this.line.name = `line-${e.direction}`, this.line.renderOrder = K.MOVE_HELPER_ARROW, this.formatGeometries(), this.add(this.arrow, this.arrowNeg, this.line);
4122
+ }), a = new i.ConeGeometry(.04, this.arrowHeight, 32);
4123
+ this.arrow = new at(a, r(), e.direction), this.arrow.name = `arrow-${e.direction}`, this.arrow.renderOrder = K.MOVE_HELPER_ARROW;
4124
+ let o = new i.ConeGeometry(.04, this.arrowHeight, 32);
4125
+ this.arrowNeg = new at(o, r(), e.direction), this.arrowNeg.name = `arrow-neg-${e.direction}`, this.arrowNeg.renderOrder = K.MOVE_HELPER_ARROW;
4126
+ let s = .004, c = new i.CylinderGeometry(s, s, this.lineHeight, 32);
4127
+ this.line = new at(c, r(), e.direction), this.line.name = `line-${e.direction}`, this.line.renderOrder = K.MOVE_HELPER_ARROW, this.formatGeometries(), this.add(this.arrow, this.arrowNeg, this.line);
4102
4128
  }
4103
4129
  formatGeometries() {
4104
4130
  let e = this.lineHeight, t = this.arrowHeight;
@@ -4864,10 +4890,11 @@ var Et = class extends xt {
4864
4890
  };
4865
4891
  } else {
4866
4892
  if (!s) return this.dragEnd();
4893
+ let e = new i.Line3(c.clone().sub(s.normalize()), c.clone().add(s.normalize()));
4867
4894
  this.startInfo = {
4868
4895
  draggingDirection: n,
4869
4896
  startVectorProject: c,
4870
- line: new i.Line3(c.clone().sub(s.normalize()), c.clone().add(s.normalize()))
4897
+ line: e
4871
4898
  };
4872
4899
  try {
4873
4900
  let e = s.clone().normalize(), t = this.helperObject3D.getWorldPosition(new i.Vector3()), n = this.solidGuide.createSolidLine(t, e, {
@@ -5079,20 +5106,22 @@ var Et = class extends xt {
5079
5106
  this.helperController && this.helperController.onIntersectionOnModelUpdate(...e);
5080
5107
  };
5081
5108
  let { camera: l, model: u, scene: d } = e, f = e.getElement();
5082
- this.five = e, !(!l || !u || !f || !d) && (this.helperController = new n({
5109
+ if (this.five = e, !l || !u || !f || !d) return;
5110
+ let p = c == null ? d : c, m = () => {
5111
+ e.needsRender = !0;
5112
+ };
5113
+ this.helperController = new n({
5083
5114
  camera: l,
5084
5115
  model: u,
5085
5116
  domEvents: t,
5086
5117
  originObject3D: r,
5087
5118
  helperObject3D: i,
5088
5119
  container: f,
5089
- scene: c == null ? d : c,
5090
- onRender: () => {
5091
- e.needsRender = !0;
5092
- },
5120
+ scene: p,
5121
+ onRender: m,
5093
5122
  sharedHooks: o,
5094
5123
  sharedInternalHooks: s
5095
- }, a), e.on("wantsTapGesture", this.onFiveWantsTapGesture), e.on("wantsGesture", this.onFiveWantsGesture), e.on("intersectionOnModelUpdate", this.onFiveIntersectionOnModelUpdate));
5124
+ }, a), e.on("wantsTapGesture", this.onFiveWantsTapGesture), e.on("wantsGesture", this.onFiveWantsGesture), e.on("intersectionOnModelUpdate", this.onFiveIntersectionOnModelUpdate);
5096
5125
  }
5097
5126
  dispose() {
5098
5127
  var e;
@@ -13,24 +13,6 @@ type FiveProviderPropTypes = {
13
13
  onError?: (error: Error) => void;
14
14
  children: React.ReactNode;
15
15
  };
16
- /**
17
- * 创建一个 FiveProvider
18
- * 在 React 的体系下,使用 Provider 的方式来组织组件结构。
19
- * 在 FiveProvider 下,可以使用 FiveCanvas 来创建渲染画布。
20
- * 以及使用 useFiveState useFiveEvent等 Five React Hooks API 来对 FiveProvider 进行操作
21
- * @param fiveInitArgs - Five 初始化参数
22
- * @returns FiveProvider React 组件
23
- * @example
24
- * ```
25
- * const FiveProvider = createFiveProvider({...fiveInitArgs});
26
- * const App: React.FC = () => {
27
- * return <FiveProvider initialWork={work}>
28
- * <FiveCanvas width={512} height={512} />
29
- * </FiveProvider>
30
- * };
31
- * ReactDOM.render(<App/>, document.getElementById("app"));
32
- * ```
33
- */
34
16
  declare function createFiveProvider(fiveInitArgs?: Omit<FiveInitArgs, "renderer" | "scissor">): {
35
17
  new (props: FiveProviderPropTypes): {
36
18
  /**
package/react/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five
4
- * Generated: 2026/5/11
5
- * Version: 6.8.3
4
+ * Generated: 2026/5/22
5
+ * Version: 6.8.5
6
6
  * Terms:
7
7
  * Realsee SDK License Agreement
8
8
  * Update: July 28, 2021
@@ -252,4 +252,4 @@
252
252
  * No amendment to or modification of this Agreement will be binding unless in
253
253
  * writing and signed by Realsee. You and Realsee hereto confirm that this
254
254
  * Agreement and all related documents shall be drafted in English.
255
- */Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`react`);c=s(c);let l=require(`three`);l=s(l);let u=require(`@realsee/five`);var d=[],f=[];function p({preserveDrawingBuffer:e=!0,webgl2:t=!1}={}){if(typeof window>`u`)return;let n=null;if(n=t?d.shift():f.shift(),!n){if(t){let t=document.createElement(`canvas`),r=t.getContext(`webgl2`);r?n=new l.WebGLRenderer({preserveDrawingBuffer:e,antialias:!0,alpha:!0,stencil:!0,canvas:t,context:r}):(console.error(`error occurred when getting webgl2 canvas context, mybe webgl2 not support, fallback to webgl.`),n=new l.WebGLRenderer({preserveDrawingBuffer:e,antialias:!1,alpha:!0,stencil:!0}))}else n=new l.WebGLRenderer({preserveDrawingBuffer:e,antialias:!1,alpha:!0,stencil:!0});n.outputEncoding=l.sRGBEncoding}return n.autoClear=!0,n}function m(e){e&&(e.capabilities.isWebGL2?f.indexOf(e)===-1&&f.push(e):d.indexOf(e)===-1&&d.push(e))}var h=c.createContext(null);function g(){let e=c.useContext(h);if(!e)throw Error(`FiveProvider never found.`);return e.five}function _(){let e=c.useContext(h);if(!e)throw Error(`FiveProvider never found.`);return e.loadWork}function v(e,t){let n=Array.isArray(e)?e:[e],r=Array.isArray(t)?t:[t];if(n.length!==r.length)return!1;for(let e=0;e<n.length;e++)if(n[e].workCode!==r[e].workCode)return!1;return!0}function y(e={}){return class extends c.Component{constructor(t){super(t),this.__fiveEventDisposers=[],this.__fiveDisposeTimer=null,this.five=new u.Five(Object.assign(Object.assign({},e),{renderer:void 0})),this.loadWork=this.loadWork.bind(this),this.state={}}loadWork(e,t,n,r=!0){if(this.props.work)throw Error(`props 'works' is set in fiveProvider, if you need modify work internal, use 'initialWork' instead.`);return this.five.load(e,t,n,r)}shouldComponentUpdate(e){return this.five.renderer&&this.five&&e.work&&!v(e.work,this.five.works)&&this.five.load(e.work,e.initialState,e.initialOptions),!0}componentDidMount(){var t;clearTimeout(this.__fiveDisposeTimer),this.__fiveDisposeTimer=null;let n;if(typeof window<`u`){n=p({webgl2:e==null?void 0:e.webgl2,preserveDrawingBuffer:e==null?void 0:e.preserveDrawingBuffer});let t=(0,u.getViewportScale)()===1?window.devicePixelRatio:1;n==null||n.setPixelRatio(t)}this.five.renderer=n,this.setState({renderer:n}),this.__fiveEventDisposers.push(this.five.on(`load`,()=>{this.props.onWorksChange&&this.props.onWorksChange(this.five.works)})),this.__fiveEventDisposers.push(this.five.on(`stateChange`,(e,t)=>{this.props.onStateChange&&this.props.onStateChange(e,t)})),this.__fiveEventDisposers.push(this.five.on(`currentStateChange`,(e,t)=>{this.props.onCurrentStateChange&&this.props.onCurrentStateChange(e,t)})),this.__fiveEventDisposers.push(this.five.on(`error`,e=>{this.props.onError?this.props.onError(e):console.warn(e.message)}));let r=this.props.work||this.props.initialWork;r&&this.five.load(r,this.props.initialState,this.props.initialOptions,(t=this.props.initialUserAction)==null?!0:t)}componentWillUnmount(){var e;(e=this.five.controller)==null||e.destroy();let t=this.five.renderer;this.five.renderer=void 0,m(t),this.setState({renderer:void 0}),this.__fiveDisposeTimer=setTimeout(()=>{this.__fiveDisposeTimer=null,this.five.dispose()},1e3)}render(){let e=this.five,t=this.loadWork,n=this.state.renderer;return c.createElement(h.Provider,{value:{renderer:n,five:e,loadWork:t}},this.props.children)}}}var b=typeof window<`u`?c.useLayoutEffect:c.useEffect,x={display:`inline-block`,overflow:`hidden`},S=({width:e,height:t})=>{let n=g(),r=c.createRef(),i=Object.assign({width:e,height:t},x);return b(()=>{let i=r.current;if(!i||!n.renderer)return;let a=n.renderer.domElement;if(a.parentNode!==null&&a.parentNode!==i)throw Error(`There are more than 2 fiveCanvas in this context.`);return a.parentNode!==i&&i.appendChild(a),n.camera.aspect=e/t,n.camera.updateProjectionMatrix(),n.renderer.setSize(e,t),n.refresh({width:e,height:t}),n.needsRender=!0,()=>{a.parentNode===i&&i.removeChild(a)}},[n,n.renderer,e,t,r.current]),c.createElement(`div`,{ref:r,style:i})},C=({children:e})=>{let t=g(),n=c.useRef(null);return c.useEffect(()=>{let e=n.current;if(!e||!t.renderer)return;let r=t.renderer.domElement;e.appendChild(r);let i=()=>{var n;let{width:r,height:i}=e.getBoundingClientRect();r===0||i===0||(t.camera.aspect=r/i,t.camera.updateProjectionMatrix(),(n=t.renderer)==null||n.setSize(r,i),t.refresh({width:r,height:i}),t.needsRender=!0)},a=new ResizeObserver(i);return a.observe(e),i(),()=>{r.parentNode===e&&e.removeChild(r),a.unobserve(e),a.disconnect()}},[]),c.createElement(`div`,{ref:n,style:{position:`absolute`,top:0,left:0,right:0,bottom:0}},e)},w=({renderChildren:e,load:t,children:n,fallback:r})=>{let i=c.useContext(h),a=i==null?void 0:i.five,[o,s]=c.useState(!!e),[l,u]=c.useState(!1);return c.useEffect(()=>{a&&a.getElement()&&(s(!0),t&&t(a).then(e=>{a.load(...e)}))},[a]),c.useEffect(()=>{if(!a)return;let e=()=>u(!0);return a.on(`works.load`,e),a.works&&a.works.length>0&&u(!0),()=>{a.off(`works.load`,e)}},[a]),!a||!l&&!e||!o?r==null?null:c.createElement(c.Fragment,null,r):c.createElement(c.Fragment,null,n)},T={position:`relative`,width:`100vw`,height:`100vh`,overflow:`hidden`},E={backgroundAlpha:1,backgroundColor:0,imageOptions:{size:512},textureOptions:{autoResize:!1},preserveDrawingBuffer:!0,webgl2:!0},D=({fiveInitArgs:e=E,renderChildren:t,plugins:n,load:r,children:i,fullscreen:a,autoCanvas:o=!0,fallback:s})=>{let[l]=c.useState(()=>y(Object.assign(Object.assign({},e),{plugins:n}))),u=[];o&&u.push(c.createElement(C,{key:`auto-canvas`})),i&&u.push(i);let d=c.createElement(l,null,c.createElement(w,{load:r,renderChildren:t,fallback:s},...u));return a?c.createElement(`div`,{style:T},d):d};function O(){return g()}function k(e,t){let n=g(),r=[n];t!==void 0&&(r=r.concat(t)),c.useLayoutEffect(()=>e(n.scene),r)}var A=k;function j(){let e=g(),t=_(),[n,r]=c.useState(()=>e.works);return c.useLayoutEffect(()=>e.on(`load`,()=>r(e.works)),[e]),[n,t]}function M(e){return Object.assign({},e.state)}function N(){let e=g(),[t,n]=c.useState(()=>M(e)),r=c.useCallback((t,n=!1,r=!0)=>{let i=typeof t==`function`?t(e.getCurrentState()):t;e.setState(i,n,r)},[e]);return c.useLayoutEffect(()=>e.on(`stateChange`,()=>n(M(e))),[e]),[t,r]}function ee(){let e=g(),[t,n]=c.useState(()=>e.getCurrentState()),r=c.useCallback((t,n=!1,r=!0)=>{let i=typeof t==`function`?t(e.getCurrentState()):t;e.setState(i,n,r)},[e]);return c.useLayoutEffect(()=>e.on(`currentStateChange`,()=>n(e.getCurrentState())),[e]),[t,r]}function te(){let e=g(),[t,n]=c.useState(()=>e.getCurrentState());return c.useLayoutEffect(()=>e.on(`currentStateChange`,()=>n(e.getCurrentState())),[e]),e.works.getObserver(t)}function P(e,t,n){let r=g(),i=[r,e];n!==void 0&&(i=i.concat(n)),c.useLayoutEffect(()=>r.on(e,t),i)}function F(){let e=g();return{updateCamera:c.useCallback((t,n)=>e.updateCamera(t,n),[e]),getPixels:c.useCallback(e.getPixels.bind(e),[e]),render:c.useCallback(t=>e.render(t),[e]),needsRender:c.useCallback(()=>e.needsRender=!0,[e]),preloadPano:c.useCallback((t,n)=>e.preloadPano(t,n),[e])}}function I(){let e=g(),[t,n]=c.useState(()=>Symbol());return c.useLayoutEffect(()=>e.on(`cameraUpdate`,()=>n(Symbol())),[e]),c.useCallback((t,n)=>e.project2d(t,n),[e])}function L(e){let t=e.camera.getWorldDirection(new l.Vector3);return new l.Raycaster(e.camera.position,t)}function ne(){let e=g(),[t,n]=c.useState(()=>L(e));return c.useLayoutEffect(()=>e.on(`cameraUpdate`,()=>n(L(e))),[e]),t}function R(e){return e.camera.getWorldDirection(new l.Vector3)}function re(){let e=g(),[t,n]=c.useState(()=>R(e));return c.useLayoutEffect(()=>e.on(`cameraUpdate`,()=>n(R(e))),[e]),t}function ie(){let e=g();return c.useCallback(t=>e.model.intersectRaycaster(t),[e])}function z(e){return e.model.empty?`Empty`:`Loaded`}function ae(){let e=g(),[t,n]=c.useState(()=>z(e));return c.useLayoutEffect(()=>e.on(`modelLoaded`,()=>n(z(e))),[e]),t}var B=new Map,V=new Map;function H(e){let t=V.get(e);t&&t.forEach(e=>e())}function U(e,t){return V.has(e)||V.set(e,new Set),V.get(e).add(t),()=>{let n=V.get(e);n&&(n.delete(t),n.size===0&&V.delete(e))}}function W(e,t){return`${e}:${t}`}function G(e,t){var n;return(n=B.get(W(e,t)))==null?void 0:n.plugin}function K(e,t,n){B.set(W(e,t),{plugin:n}),H(e)}function q(e,t){var n,r;let i=g(),a=(r=(n=i.work)==null?void 0:n.workCode)==null?``:r,o=W(a,e),s=(0,c.useRef)(i),[,l]=(0,c.useState)(0);return(0,c.useEffect)(()=>{if(a)return U(a,()=>l(e=>e+1))},[a]),(0,c.useEffect)(()=>{if(s.current===i)return;s.current=i;let n=B.get(o);if(!n)return;let r=n.plugin;if(t!=null&&t.reCreateOnFiveChange&&t.createPlugin){typeof r.dispose==`function`&&r.dispose();let n=t.createPlugin(i);B.set(o,{plugin:n}),i.plugins[e]=n,H(a)}else r&&(typeof r.updateFive==`function`?r.updateFive(i):`five`in r&&(r.five=i))},[i]),(0,c.useCallback)(()=>{let n=B.get(o);if(n)return i.plugins[e]=n.plugin,n.plugin;let r=i.plugins[e];if(r)return B.set(o,{plugin:r}),r;if(t!=null&&t.createPlugin){let n=t.createPlugin(i);return B.set(o,{plugin:n}),i.plugins[e]=n,H(a),n}},[o,i,t==null?void 0:t.createPlugin])()}function J(){let e=g(),[t,n]=c.useState(e.model.shownFloor),[r,i]=c.useState(e.model.floorLength),a=c.useCallback(t=>{typeof t==`number`?e.model.show(t):e.model.show()},[e]);return c.useLayoutEffect(()=>{let t=[];return t.push(e.on(`modelShownFloorChange`,()=>n(e.model.shownFloor))),t.push(e.on(`modelLoaded`,()=>i(e.model.floorLength))),()=>{let e;for(;e=t.shift();)e()}},[e]),[t,r,a]}function oe(){let e=g(),[t,n]=c.useState(e.helperVisible),r=c.useCallback(t=>{e.helperVisible=t},[e]);return c.useLayoutEffect(()=>e.on(`helpersVisibleChange`,e=>n(e)),[e]),[t,r]}var se=`$five`;function Y(e,t){return t.indexOf(e)>=0}function X(e,t){for(let n of Object.keys(t))t[n]!==void 0&&(e[n]=t[n])}function ce(e,t){let n=Y(`state`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return Object.assign({},e.state)},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`stateChange`,()=>i(Symbol()))},[e]),[a,r]}function le(e,t){let n=Y(`currentState`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.getCurrentState()},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`currentStateChange`,()=>i(Symbol()))},[e]),[a,r]}function ue(e,t){let n=Y(`currentObserver`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.getCurrentState()},[e,r]);c.useLayoutEffect(()=>{if(n)return e.on(`currentStateChange`,()=>i(Symbol()))},[e]);let o;return a&&(o=e.works.getObserver(a)),[o,r]}function de(e,t){return[Y(`unsafe__fiveInstance`,t)?e:void 0]}function fe(e,t){let n=Y(`works`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.works},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`load`,()=>i(Symbol()))},[e]),[a,r]}function pe(e,t){let n=Y(`model`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.model},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`modelLoaded`,()=>i(Symbol()))},[e]),[a,r]}function me(e,t){return[Y(`scene`,t)?e.scene:void 0]}function he(e,t){let n=Y(`cameraDirection`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.camera.getWorldDirection(new l.Vector3)},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`cameraUpdate`,()=>i(Symbol()))},[e]),[a,r]}function ge(e,t){let n=Y(`cameraRaycaster`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n){let t=e.camera.getWorldDirection(new l.Vector3);return new l.Raycaster(e.camera.position,t)}},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`cameraUpdate`,()=>i(Symbol()))},[e]),[a,r]}function Z(e,t){let n=Y(`modelReadyState`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.model.empty?`Empty`:`Loaded`},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`modelLoaded`,()=>i(Symbol()))},[e]),[a,r]}function _e(e,t){let n=Y(`shownFloor`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.model.shownFloor},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`modelShownFloorChange`,()=>i(Symbol()))},[e]),[a,r]}function ve(e,t){let n=Y(`helperVisible`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.helperVisible},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`helpersVisibleChange`,()=>i(Symbol()))},[e]),[a,r]}function ye(e,t){if(Y(`loadWork`,t))return e}function be(e,t){if(Y(`setState`,t))return(...t)=>e.setState(...t)}function xe(e,t){if(Y(`on`,t))return(...t)=>e.on(...t)}function Se(e,t){if(Y(`on`,t))return(...t)=>e.once(...t)}function Ce(e,t){if(Y(`off`,t))return(...t)=>e.off(...t)}function we(e,t){if(Y(`intersectRaycaster`,t))return(...t)=>e.model.intersectRaycaster(...t)}function Te(e,t){if(Y(`project2d`,t))return(...t)=>e.project2d(...t)}function Ee(e,t){if(Y(`updateCamera`,t))return(...t)=>e.updateCamera(...t)}function De(e,t){if(Y(`getPixels`,t))return e.getPixels.bind(e)}function Oe(e,t){if(Y(`render`,t))return(...t)=>e.render(...t)}function ke(e,t){if(Y(`needsRender`,t))return()=>{e.needsRender=!0}}function Ae(e,t){if(Y(`preloadPano`,t))return(...t)=>e.preloadPano(...t)}function je(e,t){if(Y(`showFloor`,t))return t=>{typeof t==`number`?e.model.show(t):e.model.show()}}function Me(e,t){if(Y(`toggleHelperVisible`,t))return t=>{e.helperVisible=t}}function Ne(e){return function(t){return c.forwardRef((n,r)=>{let i=g(),a=_(),[o]=de(i,e),[s,l]=ce(i,e),[u,d]=le(i,e),[f,p]=ue(i,e),[m,h]=fe(i,e),[v,y]=pe(i,e),[b]=me(i,e),[x,S]=he(i,e),[C,w]=ge(i,e),[T,E]=Z(i,e),[D,O]=_e(i,e),[k,A]=ve(i,e),j=c.useMemo(()=>{let t={};return X(t,{setState:be(i,e),loadWork:ye(a,e),on:xe(i,e),once:Se(i,e),off:Ce(i,e),intersectRaycaster:we(i,e),project2d:Te(i,e),updateCamera:Ee(i,e),getPixels:De(i,e),render:Oe(i,e),needsRender:ke(i,e),preloadPano:Ae(i,e),showFloor:je(i,e),toggleHelperVisible:Me(i,e)}),t},[i,a]),M=c.useMemo(()=>{let e=Object.assign({},j);return X(e,{unsafe__fiveInstance:o,state:s,currentState:u,currentObserver:f,work:m,model:v,scene:b,cameraDirection:x,cameraRaycaster:C,modelReadyState:T,shownFloor:D,helperVisible:k}),e},[i,j,l,d,p,h,y,S,w,E,O,A]);return c.createElement(t,Object.assign({ref:r,$five:M},n))})}}function Pe(...e){return e}function Q(e,t){let n={},r=t.length,i=-1;for(;++i<r;){let r=t[i];r in e&&(n[r]=e[r])}return n}function Fe(e,t){return typeof e==`number`&&typeof t==`number`&&isNaN(e)&&isNaN(t)?!0:e===t}function Ie(e,t){for(let n=0;n<e.length;n++)for(let r=0;r<t.length;r++)if(e[n]===t[r])return!0;return!1}var $=class{constructor(e,t){this.values=e,this.listeners=[],this.onValuesChange=t}on(e,t){let n=[e,t];return this.listeners.push(n),()=>{let e=this.listeners.indexOf(n);e>=0&&this.listeners.splice(e,1)}}getValues(e){return Q(this.values,e)}setValues(e,t){let n=[];for(let r in t)e.indexOf(r)>=0&&!Fe(t[r],this.values[r])&&n.push(r);if(n.length===0)return;let r=Object.assign({},this.values);for(let e of n)this.values[e]=t[e];this.onValuesChange&&this.onValuesChange(this.values,r);for(let[e,t]of this.listeners){if(!Ie(e,n))continue;let i=Q(r,e);t(Q(this.values,e),i)}}};function Le(e){let t=c.createContext(null);return{useStore(e){let n=c.useContext(t);if(n===null)throw Error(`StoreProvider never found.`);let r=c.useRef(!0),[i,a]=c.useState(n.getValues(e)),o=[n,...e];return c.useLayoutEffect(()=>(r.current?r.current=!1:a(n.getValues(e)),n.on(e,e=>a(e))),o),[i,c.useCallback(t=>n.setValues(e,t),o)]},useStoreSetter(e){let n=c.useContext(t);if(n===null)throw Error(`StoreProvider never found.`);return c.useCallback(t=>n.setValues(e,t),[n,...e])},watchStore(e,n,r){let i=c.useContext(t);if(i===null)throw Error(`StoreProvider never found.`);let a=[i,...e];r!==void 0&&(a=a.concat(r)),c.useLayoutEffect(()=>i.on(e,n),a)},useStoreAction(n){let r=c.useContext(t);if(r===null)throw Error(`StoreProvider never found.`);return c.useCallback((...t)=>{let[i,...a]=e[n];return i(()=>r.getValues(a),e=>r.setValues(a,e),...t)},[])},StoreProvider:class extends c.Component{constructor(e){super(e),this.store=new $(e.initialValue,(...e)=>{this.props.onValuesChange&&this.props.onValuesChange(...e)})}shouldComponentUpdate(e){return e.children!==this.props.children}render(){return c.createElement(t.Provider,{value:this.store},this.props.children)}}}}exports.FiveApp=D,exports.FiveAutoCanvas=C,exports.FiveCanvas=S,exports.INJECTION_PROPNAME=se,exports.Store=$,exports.createFiveFeature=Pe,exports.createFiveProvider=y,exports.createStore=Le,exports.getPlugin=G,exports.setPlugin=K,exports.unsafe__useFiveInstance=O,exports.useFiveAction=F,exports.useFiveCameraDirection=re,exports.useFiveCameraRaycaster=ne,exports.useFiveCurrentObserver=te,exports.useFiveCurrentState=ee,exports.useFiveEventCallback=P,exports.useFiveFloor=J,exports.useFiveHelper=oe,exports.useFiveModelIntersectRaycaster=ie,exports.useFiveModelReadyState=ae,exports.useFivePlugin=q,exports.useFiveProject2d=I,exports.useFiveScene=A,exports.useFiveSceneEffect=k,exports.useFiveState=N,exports.useFiveWork=j,exports.withFive=Ne;
255
+ */Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`react`);c=s(c,1);let l=require(`three`);l=s(l,1);let u=require(`@realsee/five`);var d=[],f=[],p=null,m=3e3;function h({preserveDrawingBuffer:e=!0,premultipliedAlpha:t=!0,stencil:n=!0,antialias:r=!1,webgl2:i=!1,logarithmicDepthBuffer:a,precision:o,powerPreference:s,backgroundColor:c=1579548,backgroundAlpha:l=1,pixelRatio:m}={}){if(typeof window>`u`)return;p&&(clearTimeout(p),p=null);let h;return h=i?f.shift():d.shift(),h||(h=new u.InternalWebGLRenderer({preserveDrawingBuffer:e,premultipliedAlpha:t,stencil:n,antialias:r,webgl2:i,logarithmicDepthBuffer:a,precision:o,powerPreference:s})),m!==void 0&&h.setPixelRatio(m),h.setClearColor(c,l),h.autoClear=!0,h}function g(e){e&&(e.capabilities.isWebGL2?f.indexOf(e)===-1&&f.push(e):d.indexOf(e)===-1&&d.push(e),_())}function _(e=m){p&&clearTimeout(p),p=setTimeout(()=>{p=null,v()},e)}function v(){for(let e of d)e.dispose();for(let e of f)e.dispose();d.length=0,f.length=0}var y=c.createContext(null);function b(){let e=c.useContext(y);if(!e)throw Error(`FiveProvider never found.`);return e.five}function x(){let e=c.useContext(y);if(!e)throw Error(`FiveProvider never found.`);return e.loadWork}function S(e,t){let n=Array.isArray(e)?e:[e],r=Array.isArray(t)?t:[t];if(n.length!==r.length)return!1;for(let e=0;e<n.length;e++)if(n[e].workCode!==r[e].workCode)return!1;return!0}function C(e={}){let t=(0,u.getViewportScale)()===1?window.devicePixelRatio:1,n=e.backgroundColor;return{webgl2:e.webgl2,preserveDrawingBuffer:e.preserveDrawingBuffer,antialias:e.antialias,logarithmicDepthBuffer:e.logarithmicDepthBuffer,precision:e.precision,powerPreference:e.powerPreference,backgroundColor:(n instanceof l.Color,n),backgroundAlpha:e.backgroundAlpha,pixelRatio:t}}function w(e={}){return class extends c.Component{constructor(t){super(t),this.__fiveEventDisposers=[],this.__fiveDisposeTimer=null,this.five=new u.Five(Object.assign(Object.assign({},e),{renderer:void 0})),this.loadWork=this.loadWork.bind(this),this.state={}}loadWork(e,t,n,r=!0){if(this.props.work)throw Error(`props 'works' is set in fiveProvider, if you need modify work internal, use 'initialWork' instead.`);return this.five.load(e,t,n,r)}shouldComponentUpdate(e){return this.five.renderer&&this.five&&e.work&&!S(e.work,this.five.works)&&this.five.load(e.work,e.initialState,e.initialOptions),!0}componentDidMount(){var t;clearTimeout(this.__fiveDisposeTimer),this.__fiveDisposeTimer=null;let n;typeof window<`u`&&(n=h(C(e))),this.five.renderer=n,this.setState({renderer:n}),this.__fiveEventDisposers.push(this.five.on(`load`,()=>{this.props.onWorksChange&&this.props.onWorksChange(this.five.works)})),this.__fiveEventDisposers.push(this.five.on(`stateChange`,(e,t)=>{this.props.onStateChange&&this.props.onStateChange(e,t)})),this.__fiveEventDisposers.push(this.five.on(`currentStateChange`,(e,t)=>{this.props.onCurrentStateChange&&this.props.onCurrentStateChange(e,t)})),this.__fiveEventDisposers.push(this.five.on(`error`,e=>{this.props.onError?this.props.onError(e):console.warn(e.message)}));let r=this.props.work||this.props.initialWork;r&&this.five.load(r,this.props.initialState,this.props.initialOptions,(t=this.props.initialUserAction)==null?!0:t)}componentWillUnmount(){var e;(e=this.five.controller)==null||e.destroy();let t=this.five.renderer;this.five.renderer=void 0,g(t),this.setState({renderer:void 0}),this.__fiveDisposeTimer=setTimeout(()=>{this.__fiveDisposeTimer=null,this.five.dispose()},1e3)}render(){let e=this.five,t=this.loadWork,n=this.state.renderer;return c.createElement(y.Provider,{value:{renderer:n,five:e,loadWork:t}},this.props.children)}}}var T=typeof window<`u`?c.useLayoutEffect:c.useEffect,E={display:`inline-block`,overflow:`hidden`},D=({width:e,height:t})=>{let n=b(),r=c.createRef(),i=Object.assign({width:e,height:t},E);return T(()=>{let i=r.current;if(!i||!n.renderer)return;let a=n.renderer.domElement;if(a.parentNode!==null&&a.parentNode!==i)throw Error(`There are more than 2 fiveCanvas in this context.`);return a.parentNode!==i&&i.appendChild(a),n.camera.aspect=e/t,n.camera.updateProjectionMatrix(),n.renderer.setSize(e,t),n.refresh({width:e,height:t}),n.needsRender=!0,()=>{a.parentNode===i&&i.removeChild(a)}},[n,n.renderer,e,t,r.current]),c.createElement(`div`,{ref:r,style:i})},O=({children:e})=>{let t=b(),n=c.useRef(null);return c.useEffect(()=>{let e=n.current;if(!e||!t.renderer)return;let r=t.renderer.domElement;e.appendChild(r);let i=()=>{var n;let{width:r,height:i}=e.getBoundingClientRect();r===0||i===0||(t.camera.aspect=r/i,t.camera.updateProjectionMatrix(),(n=t.renderer)==null||n.setSize(r,i),t.refresh({width:r,height:i}),t.needsRender=!0)},a=new ResizeObserver(i);return a.observe(e),i(),()=>{r.parentNode===e&&e.removeChild(r),a.unobserve(e),a.disconnect()}},[]),c.createElement(`div`,{ref:n,style:{position:`absolute`,top:0,left:0,right:0,bottom:0}},e)},k=({renderChildren:e,load:t,children:n,fallback:r})=>{let i=c.useContext(y),a=i==null?void 0:i.five,[o,s]=c.useState(!!e),[l,u]=c.useState(!1);return c.useEffect(()=>{a&&a.getElement()&&(s(!0),t&&t(a).then(e=>{a.load(...e)}))},[a]),c.useEffect(()=>{if(!a)return;let e=()=>u(!0);return a.on(`works.load`,e),a.works&&a.works.length>0&&u(!0),()=>{a.off(`works.load`,e)}},[a]),!a||!l&&!e||!o?r==null?null:c.createElement(c.Fragment,null,r):c.createElement(c.Fragment,null,n)},A={position:`relative`,width:`100vw`,height:`100vh`,overflow:`hidden`},j={backgroundAlpha:1,backgroundColor:0,imageOptions:{size:512},textureOptions:{autoResize:!1},preserveDrawingBuffer:!0,webgl2:!0},M=({fiveInitArgs:e=j,renderChildren:t,plugins:n,load:r,children:i,fullscreen:a,autoCanvas:o=!0,fallback:s})=>{let[l]=c.useState(()=>w(Object.assign(Object.assign({},e),{plugins:n}))),u=[];o&&u.push(c.createElement(O,{key:`auto-canvas`})),i&&u.push(i);let d=c.createElement(l,null,c.createElement(k,{load:r,renderChildren:t,fallback:s},...u));return a?c.createElement(`div`,{style:A},d):d};function N(){return b()}function P(e,t){let n=b(),r=[n];t!==void 0&&(r=r.concat(t)),c.useLayoutEffect(()=>e(n.scene),r)}var ee=P;function te(){let e=b(),t=x(),[n,r]=c.useState(()=>e.works);return c.useLayoutEffect(()=>e.on(`load`,()=>r(e.works)),[e]),[n,t]}function F(e){return Object.assign({},e.state)}function I(){let e=b(),[t,n]=c.useState(()=>F(e)),r=c.useCallback((t,n=!1,r=!0)=>{let i=typeof t==`function`?t(e.getCurrentState()):t;e.setState(i,n,r)},[e]);return c.useLayoutEffect(()=>e.on(`stateChange`,()=>n(F(e))),[e]),[t,r]}function L(){let e=b(),[t,n]=c.useState(()=>e.getCurrentState()),r=c.useCallback((t,n=!1,r=!0)=>{let i=typeof t==`function`?t(e.getCurrentState()):t;e.setState(i,n,r)},[e]);return c.useLayoutEffect(()=>e.on(`currentStateChange`,()=>n(e.getCurrentState())),[e]),[t,r]}function R(){let e=b(),[t,n]=c.useState(()=>e.getCurrentState());return c.useLayoutEffect(()=>e.on(`currentStateChange`,()=>n(e.getCurrentState())),[e]),e.works.getObserver(t)}function ne(e,t,n){let r=b(),i=[r,e];n!==void 0&&(i=i.concat(n)),c.useLayoutEffect(()=>r.on(e,t),i)}function re(){let e=b();return{updateCamera:c.useCallback((t,n)=>e.updateCamera(t,n),[e]),getPixels:c.useCallback(e.getPixels.bind(e),[e]),render:c.useCallback(t=>e.render(t),[e]),needsRender:c.useCallback(()=>e.needsRender=!0,[e]),preloadPano:c.useCallback((t,n)=>e.preloadPano(t,n),[e])}}function ie(){let e=b(),[t,n]=c.useState(()=>Symbol());return c.useLayoutEffect(()=>e.on(`cameraUpdate`,()=>n(Symbol())),[e]),c.useCallback((t,n)=>e.project2d(t,n),[e])}function z(e){let t=e.camera.getWorldDirection(new l.Vector3);return new l.Raycaster(e.camera.position,t)}function ae(){let e=b(),[t,n]=c.useState(()=>z(e));return c.useLayoutEffect(()=>e.on(`cameraUpdate`,()=>n(z(e))),[e]),t}function B(e){return e.camera.getWorldDirection(new l.Vector3)}function oe(){let e=b(),[t,n]=c.useState(()=>B(e));return c.useLayoutEffect(()=>e.on(`cameraUpdate`,()=>n(B(e))),[e]),t}function V(){let e=b();return c.useCallback(t=>e.model.intersectRaycaster(t),[e])}function H(e){return e.model.empty?`Empty`:`Loaded`}function U(){let e=b(),[t,n]=c.useState(()=>H(e));return c.useLayoutEffect(()=>e.on(`modelLoaded`,()=>n(H(e))),[e]),t}var W=new Map,G=new Map;function K(e){let t=G.get(e);t&&t.forEach(e=>e())}function q(e,t){return G.has(e)||G.set(e,new Set),G.get(e).add(t),()=>{let n=G.get(e);n&&(n.delete(t),n.size===0&&G.delete(e))}}function J(e,t){return`${e}:${t}`}function se(e,t){var n;return(n=W.get(J(e,t)))==null?void 0:n.plugin}function ce(e,t,n){W.set(J(e,t),{plugin:n}),K(e)}function le(e,t){var n,r;let i=b(),a=(r=(n=i.work)==null?void 0:n.workCode)==null?``:r,o=J(a,e),s=(0,c.useRef)(i),[,l]=(0,c.useState)(0);return(0,c.useEffect)(()=>{if(a)return q(a,()=>l(e=>e+1))},[a]),(0,c.useEffect)(()=>{if(s.current===i)return;s.current=i;let n=W.get(o);if(!n)return;let r=n.plugin;if(t!=null&&t.reCreateOnFiveChange&&t.createPlugin){typeof r.dispose==`function`&&r.dispose();let n=t.createPlugin(i);W.set(o,{plugin:n}),i.plugins[e]=n,K(a)}else r&&(typeof r.updateFive==`function`?r.updateFive(i):`five`in r&&(r.five=i))},[i]),(0,c.useCallback)(()=>{let n=W.get(o);if(n)return i.plugins[e]=n.plugin,n.plugin;let r=i.plugins[e];if(r)return W.set(o,{plugin:r}),r;if(t!=null&&t.createPlugin){let n=t.createPlugin(i);return W.set(o,{plugin:n}),i.plugins[e]=n,K(a),n}},[o,i,t==null?void 0:t.createPlugin])()}function ue(){let e=b(),[t,n]=c.useState(e.model.shownFloor),[r,i]=c.useState(e.model.floorLength),a=c.useCallback(t=>{typeof t==`number`?e.model.show(t):e.model.show()},[e]);return c.useLayoutEffect(()=>{let t=[];return t.push(e.on(`modelShownFloorChange`,()=>n(e.model.shownFloor))),t.push(e.on(`modelLoaded`,()=>i(e.model.floorLength))),()=>{let e;for(;e=t.shift();)e()}},[e]),[t,r,a]}function de(){let e=b(),[t,n]=c.useState(e.helperVisible),r=c.useCallback(t=>{e.helperVisible=t},[e]);return c.useLayoutEffect(()=>e.on(`helpersVisibleChange`,e=>n(e)),[e]),[t,r]}var fe=`$five`;function Y(e,t){return t.indexOf(e)>=0}function X(e,t){for(let n of Object.keys(t))t[n]!==void 0&&(e[n]=t[n])}function pe(e,t){let n=Y(`state`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return Object.assign({},e.state)},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`stateChange`,()=>i(Symbol()))},[e]),[a,r]}function me(e,t){let n=Y(`currentState`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.getCurrentState()},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`currentStateChange`,()=>i(Symbol()))},[e]),[a,r]}function he(e,t){let n=Y(`currentObserver`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.getCurrentState()},[e,r]);c.useLayoutEffect(()=>{if(n)return e.on(`currentStateChange`,()=>i(Symbol()))},[e]);let o;return a&&(o=e.works.getObserver(a)),[o,r]}function ge(e,t){return[Y(`unsafe__fiveInstance`,t)?e:void 0]}function _e(e,t){let n=Y(`works`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.works},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`load`,()=>i(Symbol()))},[e]),[a,r]}function ve(e,t){let n=Y(`model`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.model},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`modelLoaded`,()=>i(Symbol()))},[e]),[a,r]}function ye(e,t){return[Y(`scene`,t)?e.scene:void 0]}function be(e,t){let n=Y(`cameraDirection`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.camera.getWorldDirection(new l.Vector3)},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`cameraUpdate`,()=>i(Symbol()))},[e]),[a,r]}function xe(e,t){let n=Y(`cameraRaycaster`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n){let t=e.camera.getWorldDirection(new l.Vector3);return new l.Raycaster(e.camera.position,t)}},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`cameraUpdate`,()=>i(Symbol()))},[e]),[a,r]}function Se(e,t){let n=Y(`modelReadyState`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.model.empty?`Empty`:`Loaded`},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`modelLoaded`,()=>i(Symbol()))},[e]),[a,r]}function Ce(e,t){let n=Y(`shownFloor`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.model.shownFloor},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`modelShownFloorChange`,()=>i(Symbol()))},[e]),[a,r]}function we(e,t){let n=Y(`helperVisible`,t),[r,i]=c.useState(Symbol()),a=c.useMemo(()=>{if(n)return e.helperVisible},[e,r]);return c.useLayoutEffect(()=>{if(n)return e.on(`helpersVisibleChange`,()=>i(Symbol()))},[e]),[a,r]}function Te(e,t){if(Y(`loadWork`,t))return e}function Ee(e,t){if(Y(`setState`,t))return(...t)=>e.setState(...t)}function De(e,t){if(Y(`on`,t))return(...t)=>e.on(...t)}function Oe(e,t){if(Y(`on`,t))return(...t)=>e.once(...t)}function ke(e,t){if(Y(`off`,t))return(...t)=>e.off(...t)}function Ae(e,t){if(Y(`intersectRaycaster`,t))return(...t)=>e.model.intersectRaycaster(...t)}function je(e,t){if(Y(`project2d`,t))return(...t)=>e.project2d(...t)}function Me(e,t){if(Y(`updateCamera`,t))return(...t)=>e.updateCamera(...t)}function Ne(e,t){if(Y(`getPixels`,t))return e.getPixels.bind(e)}function Pe(e,t){if(Y(`render`,t))return(...t)=>e.render(...t)}function Fe(e,t){if(Y(`needsRender`,t))return()=>{e.needsRender=!0}}function Ie(e,t){if(Y(`preloadPano`,t))return(...t)=>e.preloadPano(...t)}function Le(e,t){if(Y(`showFloor`,t))return t=>{typeof t==`number`?e.model.show(t):e.model.show()}}function Z(e,t){if(Y(`toggleHelperVisible`,t))return t=>{e.helperVisible=t}}function Re(e){return function(t){return c.forwardRef((n,r)=>{let i=b(),a=x(),[o]=ge(i,e),[s,l]=pe(i,e),[u,d]=me(i,e),[f,p]=he(i,e),[m,h]=_e(i,e),[g,_]=ve(i,e),[v]=ye(i,e),[y,S]=be(i,e),[C,w]=xe(i,e),[T,E]=Se(i,e),[D,O]=Ce(i,e),[k,A]=we(i,e),j=c.useMemo(()=>{let t={};return X(t,{setState:Ee(i,e),loadWork:Te(a,e),on:De(i,e),once:Oe(i,e),off:ke(i,e),intersectRaycaster:Ae(i,e),project2d:je(i,e),updateCamera:Me(i,e),getPixels:Ne(i,e),render:Pe(i,e),needsRender:Fe(i,e),preloadPano:Ie(i,e),showFloor:Le(i,e),toggleHelperVisible:Z(i,e)}),t},[i,a]),M=c.useMemo(()=>{let e=Object.assign({},j);return X(e,{unsafe__fiveInstance:o,state:s,currentState:u,currentObserver:f,work:m,model:g,scene:v,cameraDirection:y,cameraRaycaster:C,modelReadyState:T,shownFloor:D,helperVisible:k}),e},[i,j,l,d,p,h,_,S,w,E,O,A]);return c.createElement(t,Object.assign({ref:r,$five:M},n))})}}function ze(...e){return e}function Q(e,t){let n={},r=t.length,i=-1;for(;++i<r;){let r=t[i];r in e&&(n[r]=e[r])}return n}function Be(e,t){return typeof e==`number`&&typeof t==`number`&&isNaN(e)&&isNaN(t)?!0:e===t}function Ve(e,t){for(let n=0;n<e.length;n++)for(let r=0;r<t.length;r++)if(e[n]===t[r])return!0;return!1}var $=class{constructor(e,t){this.values=e,this.listeners=[],this.onValuesChange=t}on(e,t){let n=[e,t];return this.listeners.push(n),()=>{let e=this.listeners.indexOf(n);e>=0&&this.listeners.splice(e,1)}}getValues(e){return Q(this.values,e)}setValues(e,t){let n=[];for(let r in t)e.indexOf(r)>=0&&!Be(t[r],this.values[r])&&n.push(r);if(n.length===0)return;let r=Object.assign({},this.values);for(let e of n)this.values[e]=t[e];this.onValuesChange&&this.onValuesChange(this.values,r);for(let[e,t]of this.listeners){if(!Ve(e,n))continue;let i=Q(r,e);t(Q(this.values,e),i)}}};function He(e){let t=c.createContext(null);return{useStore(e){let n=c.useContext(t);if(n===null)throw Error(`StoreProvider never found.`);let r=c.useRef(!0),[i,a]=c.useState(n.getValues(e)),o=[n,...e];return c.useLayoutEffect(()=>(r.current?r.current=!1:a(n.getValues(e)),n.on(e,e=>a(e))),o),[i,c.useCallback(t=>n.setValues(e,t),o)]},useStoreSetter(e){let n=c.useContext(t);if(n===null)throw Error(`StoreProvider never found.`);return c.useCallback(t=>n.setValues(e,t),[n,...e])},watchStore(e,n,r){let i=c.useContext(t);if(i===null)throw Error(`StoreProvider never found.`);let a=[i,...e];r!==void 0&&(a=a.concat(r)),c.useLayoutEffect(()=>i.on(e,n),a)},useStoreAction(n){let r=c.useContext(t);if(r===null)throw Error(`StoreProvider never found.`);return c.useCallback((...t)=>{let[i,...a]=e[n];return i(()=>r.getValues(a),e=>r.setValues(a,e),...t)},[])},StoreProvider:class extends c.Component{constructor(e){super(e),this.store=new $(e.initialValue,(...e)=>{this.props.onValuesChange&&this.props.onValuesChange(...e)})}shouldComponentUpdate(e){return e.children!==this.props.children}render(){return c.createElement(t.Provider,{value:this.store},this.props.children)}}}}exports.FiveApp=M,exports.FiveAutoCanvas=O,exports.FiveCanvas=D,exports.INJECTION_PROPNAME=fe,exports.Store=$,exports.createFiveFeature=ze,exports.createFiveProvider=w,exports.createStore=He,exports.getPlugin=se,exports.setPlugin=ce,exports.unsafe__useFiveInstance=N,exports.useFiveAction=re,exports.useFiveCameraDirection=oe,exports.useFiveCameraRaycaster=ae,exports.useFiveCurrentObserver=R,exports.useFiveCurrentState=L,exports.useFiveEventCallback=ne,exports.useFiveFloor=ue,exports.useFiveHelper=de,exports.useFiveModelIntersectRaycaster=V,exports.useFiveModelReadyState=U,exports.useFivePlugin=le,exports.useFiveProject2d=ie,exports.useFiveScene=ee,exports.useFiveSceneEffect=P,exports.useFiveState=I,exports.useFiveWork=te,exports.withFive=Re;