@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/docs/functions/react.createFiveProvider.html +1 -10
- package/docs/types/react.FiveProviderType.html +1 -1
- package/five/index.js +16 -43
- package/five/index.mjs +53 -46
- package/gltf-loader/index.js +4 -4
- package/gltf-loader/index.mjs +6 -4
- package/line/index.js +4 -4
- package/line/index.mjs +9 -7
- package/package.json +1 -1
- package/plugins/index.js +11 -11
- package/plugins/index.mjs +60 -31
- package/react/createProvider.d.ts +0 -18
- package/react/index.js +3 -3
- package/react/index.mjs +181 -179
- package/react/rendererPool.d.ts +17 -5
- package/shader-lib/index.js +3 -3
- package/shader-lib/index.mjs +2 -2
- package/sticker/index.js +3 -3
- package/sticker/index.mjs +3 -3
- package/umd/five-gltf-loader.js +4 -4
- package/umd/five-line.js +4 -4
- package/umd/five-plugins.js +11 -11
- package/umd/five-react.js +3 -3
- package/umd/five-shader-lib.js +3 -3
- package/umd/five-sticker.js +3 -3
- package/umd/five-vfx.js +4 -4
- package/umd/five-vue.js +3 -3
- package/umd/five.js +17 -44
- package/vfx/index.js +4 -4
- package/vfx/index.mjs +3 -3
- package/vue/index.js +3 -3
- package/vue/index.mjs +2 -2
- package/work-downloader/index.js +3 -3
- package/work-downloader/index.mjs +2 -2
package/plugins/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five
|
|
4
|
-
* Generated: 2026/5/
|
|
5
|
-
* Version: 6.8.
|
|
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
|
|
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
|
-
}
|
|
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"
|
|
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
|
|
2161
|
+
}, this.five = e;
|
|
2162
|
+
let r = {
|
|
2158
2163
|
enabled: !1,
|
|
2159
2164
|
visible: !0,
|
|
2160
2165
|
arrowsVisible: !1
|
|
2161
|
-
}
|
|
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)
|
|
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
|
|
2436
|
+
}, this.five = e;
|
|
2437
|
+
let n = {
|
|
2429
2438
|
enabled: !0,
|
|
2430
2439
|
visible: !0
|
|
2431
|
-
}
|
|
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
|
|
2743
|
+
}, this.five = e;
|
|
2744
|
+
let r = {
|
|
2732
2745
|
enabled: !1,
|
|
2733
2746
|
visible: !0
|
|
2734
|
-
}
|
|
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)
|
|
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
|
-
}
|
|
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
|
-
}
|
|
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
|
|
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)
|
|
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
|
-
}
|
|
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)
|
|
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
|
-
}
|
|
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(
|
|
4100
|
-
let
|
|
4101
|
-
this.
|
|
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:
|
|
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, !
|
|
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:
|
|
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/
|
|
5
|
-
* Version: 6.8.
|
|
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;
|