@car-cutter/react-webplayer 3.1.0 → 3.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +71 -76
- package/dist/index.js +57 -53
- package/dist/legacy.cjs +1 -1
- package/dist/legacy.d.ts +71 -76
- package/dist/legacy.js +54 -51
- package/dist/react-webplayer.css +1 -0
- package/dist/shared-B2uKgIRn.cjs +6 -0
- package/dist/shared-BpNLb25Y.js +5850 -0
- package/package.json +7 -7
- package/dist/shared-D7cc889c.js +0 -5911
- package/dist/shared-Dj9ilM-O.cjs +0 -27
- package/dist/style.css +0 -1
package/dist/legacy.d.ts
CHANGED
|
@@ -1,61 +1,59 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
2
|
import { PropsWithChildren } from 'react';
|
|
3
3
|
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const ANALYTICS_EVENT_DISPLAY = "analytics-display";
|
|
5
5
|
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const ANALYTICS_EVENT_ERROR = "analytics-error";
|
|
7
7
|
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const ANALYTICS_EVENT_INTERACTION = "analytics-interaction";
|
|
9
9
|
|
|
10
|
-
declare
|
|
11
|
-
|
|
10
|
+
export declare const ANALYTICS_EVENT_LOAD = "analytics-load";
|
|
11
|
+
|
|
12
|
+
declare type AnalyticsDisplayEvent = {
|
|
13
|
+
type: "display";
|
|
12
14
|
timestamp: string;
|
|
13
|
-
|
|
15
|
+
instance: WebplayerInstance;
|
|
16
|
+
item: WebplayerDisplayedItem;
|
|
14
17
|
};
|
|
15
18
|
|
|
16
|
-
declare type
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
declare type AnalyticsErrorEvent = {
|
|
20
|
+
type: "error";
|
|
21
|
+
timestamp: string;
|
|
22
|
+
instance: WebplayerInstance;
|
|
23
|
+
current?: WebplayerDisplayedItem;
|
|
24
|
+
action?: WebplayerAction;
|
|
25
|
+
error: WebplayerError;
|
|
26
|
+
};
|
|
24
27
|
|
|
25
|
-
declare type
|
|
28
|
+
declare type AnalyticsInteractionEvent = {
|
|
29
|
+
type: "interaction";
|
|
30
|
+
timestamp: string;
|
|
31
|
+
instance: WebplayerInstance;
|
|
32
|
+
current: WebplayerDisplayedItem;
|
|
33
|
+
action: WebplayerAction;
|
|
34
|
+
};
|
|
26
35
|
|
|
27
|
-
declare type
|
|
28
|
-
|
|
36
|
+
declare type AnalyticsLoadEvent = {
|
|
37
|
+
type: "load";
|
|
38
|
+
timestamp: string;
|
|
39
|
+
instance: WebplayerInstance;
|
|
40
|
+
config: AnalyticsLoadEventProps["config"];
|
|
41
|
+
};
|
|
29
42
|
|
|
30
|
-
declare type
|
|
31
|
-
type:
|
|
32
|
-
|
|
33
|
-
session_id: string;
|
|
34
|
-
referrer: string;
|
|
35
|
-
origin: string;
|
|
36
|
-
page_url: string;
|
|
37
|
-
user_agent: string;
|
|
38
|
-
wp_properties: {
|
|
43
|
+
declare type AnalyticsLoadEventProps = {
|
|
44
|
+
type: "load";
|
|
45
|
+
config: {
|
|
39
46
|
composition_url: string;
|
|
40
|
-
|
|
41
|
-
// Integration mode
|
|
42
47
|
integration: boolean;
|
|
43
48
|
max_items_shown: number;
|
|
44
|
-
|
|
45
|
-
// Layout
|
|
46
49
|
hide_categories_nav: boolean;
|
|
47
50
|
infinite_carrousel: boolean;
|
|
48
51
|
permanent_gallery: boolean;
|
|
49
|
-
|
|
50
|
-
// Medias loading
|
|
51
52
|
media_load_strategy: string;
|
|
52
53
|
min_media_width: number;
|
|
53
|
-
max_media_width: number;
|
|
54
54
|
preload_range: number;
|
|
55
55
|
auto_load_360: boolean;
|
|
56
56
|
auto_load_interior_360: boolean;
|
|
57
|
-
|
|
58
|
-
// Miscellaneous
|
|
59
57
|
categories_filter: string;
|
|
60
58
|
extend_behavior: string;
|
|
61
59
|
event_prefix: string;
|
|
@@ -64,44 +62,6 @@ declare type AnalyticsIdentifyEventProps = {
|
|
|
64
62
|
};
|
|
65
63
|
};
|
|
66
64
|
|
|
67
|
-
declare type AnalyticsPageEvent = Omit<AnalyticsEventBase, "type"> &
|
|
68
|
-
AnalyticsPageEventProps;
|
|
69
|
-
|
|
70
|
-
declare type AnalyticsPageEventProps = {
|
|
71
|
-
type: AnalyticsEventTypePage;
|
|
72
|
-
category_id: string;
|
|
73
|
-
category_name: string;
|
|
74
|
-
items_count: number;
|
|
75
|
-
page_properties: {
|
|
76
|
-
item_type: string;
|
|
77
|
-
item_position: number;
|
|
78
|
-
};
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
declare type AnalyticsTrackEvent = Omit<AnalyticsEventBase, "type"> &
|
|
82
|
-
AnalyticsTrackEventProps;
|
|
83
|
-
|
|
84
|
-
declare type AnalyticsTrackEventProps = {
|
|
85
|
-
type: AnalyticsEventTypeTrack;
|
|
86
|
-
category_id: string;
|
|
87
|
-
category_name: string;
|
|
88
|
-
item_type: string;
|
|
89
|
-
item_position: number;
|
|
90
|
-
action_properties: {
|
|
91
|
-
action_name: string;
|
|
92
|
-
action_field: string;
|
|
93
|
-
action_value:
|
|
94
|
-
| bigint
|
|
95
|
-
| boolean
|
|
96
|
-
| null
|
|
97
|
-
| number
|
|
98
|
-
| string
|
|
99
|
-
| symbol
|
|
100
|
-
| undefined
|
|
101
|
-
| object;
|
|
102
|
-
};
|
|
103
|
-
};
|
|
104
|
-
|
|
105
65
|
declare type AspectRatio = `${number}:${number}`;
|
|
106
66
|
|
|
107
67
|
declare type Category = {
|
|
@@ -215,6 +175,12 @@ export declare const WEB_PLAYER_WC_TAG = "cc-webplayer";
|
|
|
215
175
|
|
|
216
176
|
export declare const WebPlayer: FC<WebPlayerProps>;
|
|
217
177
|
|
|
178
|
+
declare type WebplayerAction = {
|
|
179
|
+
name: string;
|
|
180
|
+
field: string;
|
|
181
|
+
value: unknown;
|
|
182
|
+
};
|
|
183
|
+
|
|
218
184
|
export declare const WebPlayerCustomMedia: FC<PropsWithChildren<WebPlayerCustomMediaProps>>;
|
|
219
185
|
|
|
220
186
|
export declare type WebPlayerCustomMediaProps = {
|
|
@@ -222,6 +188,20 @@ export declare type WebPlayerCustomMediaProps = {
|
|
|
222
188
|
thumbnailSrc?: string;
|
|
223
189
|
};
|
|
224
190
|
|
|
191
|
+
declare type WebplayerDisplayedItem = {
|
|
192
|
+
category_id: string;
|
|
193
|
+
category_name: string;
|
|
194
|
+
item_type: string;
|
|
195
|
+
item_position: number;
|
|
196
|
+
items_count?: number;
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
declare type WebplayerError = {
|
|
200
|
+
name: string;
|
|
201
|
+
message: string;
|
|
202
|
+
stack?: string;
|
|
203
|
+
};
|
|
204
|
+
|
|
225
205
|
export declare const WebPlayerIcon: FC<PropsWithChildren<WebPlayerIconProps>>;
|
|
226
206
|
|
|
227
207
|
declare type WebPlayerIconName =
|
|
@@ -252,6 +232,13 @@ export declare type WebPlayerIconProps = {
|
|
|
252
232
|
name: WebPlayerIconName;
|
|
253
233
|
};
|
|
254
234
|
|
|
235
|
+
declare type WebplayerInstance = {
|
|
236
|
+
instance_id: string;
|
|
237
|
+
browser_id?: string;
|
|
238
|
+
session_id?: string;
|
|
239
|
+
from_url?: string;
|
|
240
|
+
};
|
|
241
|
+
|
|
255
242
|
export declare type WebPlayerProps = PropsWithChildren<WebPlayerProps_2> & {
|
|
256
243
|
onCompositionLoading?: (url: string) => void;
|
|
257
244
|
onCompositionLoaded?: (composition: Composition) => void;
|
|
@@ -266,9 +253,10 @@ export declare type WebPlayerProps = PropsWithChildren<WebPlayerProps_2> & {
|
|
|
266
253
|
onHotspotsOff?: () => void;
|
|
267
254
|
onGalleryOpen?: () => void;
|
|
268
255
|
onGalleryClose?: () => void;
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
256
|
+
onAnalyticsLoad?: (event: AnalyticsLoadEvent) => void;
|
|
257
|
+
onAnalyticsDisplay?: (event: AnalyticsDisplayEvent) => void;
|
|
258
|
+
onAnalyticsInteraction?: (event: AnalyticsInteractionEvent) => void;
|
|
259
|
+
onAnalyticsError?: (event: AnalyticsErrorEvent) => void;
|
|
272
260
|
} & Pick<React.HTMLAttributes<HTMLElement>, "className" | "style">;
|
|
273
261
|
|
|
274
262
|
declare type WebPlayerProps_2 = {
|
|
@@ -297,14 +285,21 @@ declare type WebPlayerProps_2 = {
|
|
|
297
285
|
eventPrefix?: string;
|
|
298
286
|
demoSpin?: boolean;
|
|
299
287
|
reverse360?: boolean;
|
|
288
|
+
spinCursor?: string;
|
|
300
289
|
|
|
301
290
|
// Analytics
|
|
302
291
|
analyticsEventPrefix?: string;
|
|
292
|
+
/** @deprecated Prefer monitoring (enabled by default). When set, disables monitoring and sends analytics to this URL instead. */
|
|
303
293
|
analyticsUrl?: string;
|
|
294
|
+
/** @deprecated Only used with analyticsUrl. Sets the Authorization bearer token for analytics requests. Ignored when analyticsSimpleRequestsOnly is true. */
|
|
304
295
|
analyticsBearer?: string;
|
|
296
|
+
/** @deprecated Only used with analyticsUrl. When true, sends CORS simple requests only (disables custom headers including analyticsBearer). */
|
|
305
297
|
analyticsSimpleRequestsOnly?: boolean;
|
|
306
298
|
analyticsDryRun?: boolean;
|
|
307
299
|
analyticsDebug?: boolean;
|
|
300
|
+
|
|
301
|
+
// Monitoring
|
|
302
|
+
monitoring?: boolean;
|
|
308
303
|
};
|
|
309
304
|
|
|
310
305
|
export { }
|
package/dist/legacy.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { W
|
|
2
|
-
import { A as ce, g as le, h as ue,
|
|
1
|
+
import { W, a as w, b as R, c as D, d as V, e as M, f as j } from "./shared-BpNLb25Y.js";
|
|
2
|
+
import { A as ce, g as le, h as ue, i as pe, D as fe, E as me, j as Ee, k as be, l as he, m as de, n as ye, o as _e, p as ge, q as Ae, r as Oe, s as Ce, t as Te, u as Ne, v as Se } from "./shared-BpNLb25Y.js";
|
|
3
3
|
import "react/jsx-runtime";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import P from "react";
|
|
5
|
+
import O from "react-dom";
|
|
6
6
|
var k = Object.defineProperty, x = (e, t, n) => t in e ? k(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, h = (e, t, n) => x(e, typeof t != "symbol" ? t + "" : t, n);
|
|
7
|
-
const
|
|
7
|
+
const Y = {
|
|
8
8
|
stringify: (e) => e ? "true" : "false",
|
|
9
9
|
parse: (e) => /^[ty1-9]/i.test(e)
|
|
10
|
-
},
|
|
10
|
+
}, F = {
|
|
11
11
|
stringify: (e) => e.name,
|
|
12
12
|
parse: (e, t, n) => {
|
|
13
13
|
const s = (() => {
|
|
@@ -18,7 +18,7 @@ const F = {
|
|
|
18
18
|
})();
|
|
19
19
|
return typeof s == "function" ? s.bind(n) : void 0;
|
|
20
20
|
}
|
|
21
|
-
},
|
|
21
|
+
}, G = {
|
|
22
22
|
stringify: (e) => JSON.stringify(e),
|
|
23
23
|
parse: (e) => JSON.parse(e)
|
|
24
24
|
};
|
|
@@ -28,14 +28,14 @@ function $(e) {
|
|
|
28
28
|
(t, n, s) => `${n}-${s.toLowerCase()}`
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
|
-
function
|
|
31
|
+
function v(e) {
|
|
32
32
|
return e.replace(/[-:]([a-z])/g, (t, n) => `${n.toUpperCase()}`);
|
|
33
33
|
}
|
|
34
34
|
const U = {
|
|
35
35
|
stringify: (e) => e.name,
|
|
36
36
|
parse: (e, t, n) => {
|
|
37
37
|
const s = (() => {
|
|
38
|
-
const m =
|
|
38
|
+
const m = v(t);
|
|
39
39
|
if (typeof n < "u" && m in n.container)
|
|
40
40
|
return n.container[m];
|
|
41
41
|
})();
|
|
@@ -50,23 +50,23 @@ const U = {
|
|
|
50
50
|
}, A = {
|
|
51
51
|
string: H,
|
|
52
52
|
number: B,
|
|
53
|
-
boolean:
|
|
54
|
-
function:
|
|
53
|
+
boolean: Y,
|
|
54
|
+
function: F,
|
|
55
55
|
method: U,
|
|
56
|
-
json:
|
|
56
|
+
json: G
|
|
57
57
|
}, b = Symbol.for("r2wc.render"), d = Symbol.for("r2wc.connected"), f = Symbol.for("r2wc.context"), i = Symbol.for("r2wc.props");
|
|
58
58
|
function z(e, t, n) {
|
|
59
59
|
var s, m, T;
|
|
60
60
|
t.props || (t.props = e.propTypes ? Object.keys(e.propTypes) : []), t.events || (t.events = []);
|
|
61
|
-
const y = Array.isArray(t.props) ? t.props.slice() : Object.keys(t.props), N = Array.isArray(t.events) ? t.events.slice() : Object.keys(t.events), E = {},
|
|
61
|
+
const y = Array.isArray(t.props) ? t.props.slice() : Object.keys(t.props), N = Array.isArray(t.events) ? t.events.slice() : Object.keys(t.events), E = {}, S = {}, _ = {}, g = {};
|
|
62
62
|
for (const o of y) {
|
|
63
63
|
E[o] = Array.isArray(t.props) ? "string" : t.props[o];
|
|
64
64
|
const r = $(o);
|
|
65
65
|
_[o] = r, g[r] = o;
|
|
66
66
|
}
|
|
67
67
|
for (const o of N)
|
|
68
|
-
|
|
69
|
-
class
|
|
68
|
+
S[o] = Array.isArray(t.events) ? {} : t.events[o];
|
|
69
|
+
class L extends HTMLElement {
|
|
70
70
|
constructor() {
|
|
71
71
|
super(), h(this, T, !0), h(this, m), h(this, s, {}), h(this, "container"), t.shadow ? this.container = this.attachShadow({
|
|
72
72
|
mode: t.shadow
|
|
@@ -74,15 +74,15 @@ function z(e, t, n) {
|
|
|
74
74
|
for (const r of y) {
|
|
75
75
|
const l = _[r], a = this.getAttribute(l), c = E[r], u = c ? A[c] : null;
|
|
76
76
|
if (c === "method") {
|
|
77
|
-
const p =
|
|
77
|
+
const p = v(l);
|
|
78
78
|
Object.defineProperty(this[i].container, p, {
|
|
79
79
|
enumerable: !0,
|
|
80
80
|
configurable: !0,
|
|
81
81
|
get() {
|
|
82
82
|
return this[i][p];
|
|
83
83
|
},
|
|
84
|
-
set(
|
|
85
|
-
this[i][p] =
|
|
84
|
+
set(I) {
|
|
85
|
+
this[i][p] = I, this[b]();
|
|
86
86
|
}
|
|
87
87
|
}), this[i][r] = u.parse(a, l, this);
|
|
88
88
|
}
|
|
@@ -92,7 +92,7 @@ function z(e, t, n) {
|
|
|
92
92
|
this[i][r] = (l) => {
|
|
93
93
|
const a = r.replace(/^on/, "").toLowerCase();
|
|
94
94
|
this.dispatchEvent(
|
|
95
|
-
new CustomEvent(a, { detail: l, ...
|
|
95
|
+
new CustomEvent(a, { detail: l, ...S[r] })
|
|
96
96
|
);
|
|
97
97
|
};
|
|
98
98
|
}
|
|
@@ -119,7 +119,7 @@ function z(e, t, n) {
|
|
|
119
119
|
}
|
|
120
120
|
for (const o of y) {
|
|
121
121
|
const r = _[o], l = E[o];
|
|
122
|
-
Object.defineProperty(
|
|
122
|
+
Object.defineProperty(L.prototype, o, {
|
|
123
123
|
enumerable: !0,
|
|
124
124
|
configurable: !0,
|
|
125
125
|
get() {
|
|
@@ -136,26 +136,26 @@ function z(e, t, n) {
|
|
|
136
136
|
}
|
|
137
137
|
});
|
|
138
138
|
}
|
|
139
|
-
return
|
|
139
|
+
return L;
|
|
140
140
|
}
|
|
141
141
|
function J(e, t, n) {
|
|
142
|
-
const s =
|
|
143
|
-
return
|
|
142
|
+
const s = P.createElement(t, n);
|
|
143
|
+
return O.render(s, e), {
|
|
144
144
|
container: e,
|
|
145
145
|
ReactComponent: t
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
148
|
function X({ container: e, ReactComponent: t }, n) {
|
|
149
|
-
const s =
|
|
150
|
-
|
|
149
|
+
const s = P.createElement(t, n);
|
|
150
|
+
O.render(s, e);
|
|
151
151
|
}
|
|
152
152
|
function q({ container: e }) {
|
|
153
|
-
|
|
153
|
+
O.unmountComponentAtNode(e);
|
|
154
154
|
}
|
|
155
|
-
function
|
|
155
|
+
function C(e, t = {}) {
|
|
156
156
|
return z(e, t, { mount: J, update: X, unmount: q });
|
|
157
157
|
}
|
|
158
|
-
const
|
|
158
|
+
const Z = C(W, {
|
|
159
159
|
shadow: "closed",
|
|
160
160
|
props: {
|
|
161
161
|
compositionUrl: "string",
|
|
@@ -176,55 +176,58 @@ const K = O(w, {
|
|
|
176
176
|
eventPrefix: "string",
|
|
177
177
|
demoSpin: "boolean",
|
|
178
178
|
reverse360: "boolean",
|
|
179
|
+
spinCursor: "string",
|
|
179
180
|
// Analytics
|
|
180
181
|
analyticsEventPrefix: "string",
|
|
181
182
|
analyticsUrl: "string",
|
|
182
183
|
analyticsBearer: "string",
|
|
183
184
|
analyticsSimpleRequestsOnly: "boolean",
|
|
184
185
|
analyticsDryRun: "boolean",
|
|
185
|
-
analyticsDebug: "boolean"
|
|
186
|
+
analyticsDebug: "boolean",
|
|
187
|
+
monitoring: "boolean"
|
|
186
188
|
}
|
|
187
|
-
}),
|
|
189
|
+
}), K = C(w, {
|
|
188
190
|
shadow: "closed",
|
|
189
191
|
props: {
|
|
190
192
|
index: "number",
|
|
191
193
|
thumbnailSrc: "string"
|
|
192
194
|
}
|
|
193
|
-
}), Q =
|
|
195
|
+
}), Q = C(R, {
|
|
194
196
|
shadow: "closed",
|
|
195
197
|
props: {
|
|
196
198
|
name: "string"
|
|
197
199
|
}
|
|
198
200
|
});
|
|
199
201
|
function ee() {
|
|
200
|
-
customElements.define(V,
|
|
202
|
+
customElements.define(V, Z), customElements.define(
|
|
201
203
|
M,
|
|
202
|
-
|
|
204
|
+
K
|
|
203
205
|
), customElements.define(j, Q);
|
|
204
206
|
}
|
|
205
207
|
function te() {
|
|
206
|
-
|
|
208
|
+
D() || ee();
|
|
207
209
|
}
|
|
208
210
|
te();
|
|
209
211
|
export {
|
|
210
|
-
ce as
|
|
211
|
-
le as
|
|
212
|
-
ue as
|
|
213
|
-
pe as
|
|
214
|
-
fe as
|
|
215
|
-
me as
|
|
216
|
-
Ee as
|
|
217
|
-
be as
|
|
218
|
-
he as
|
|
219
|
-
de as
|
|
220
|
-
ye as
|
|
221
|
-
_e as
|
|
222
|
-
ge as
|
|
223
|
-
Ae as
|
|
212
|
+
ce as ANALYTICS_EVENT_DISPLAY,
|
|
213
|
+
le as ANALYTICS_EVENT_ERROR,
|
|
214
|
+
ue as ANALYTICS_EVENT_INTERACTION,
|
|
215
|
+
pe as ANALYTICS_EVENT_LOAD,
|
|
216
|
+
fe as DEFAULT_EVENT_PREFIX,
|
|
217
|
+
me as EVENT_COMPOSITION_LOADED,
|
|
218
|
+
Ee as EVENT_COMPOSITION_LOADING,
|
|
219
|
+
be as EVENT_COMPOSITION_LOAD_ERROR,
|
|
220
|
+
he as EVENT_EXTEND_MODE_OFF,
|
|
221
|
+
de as EVENT_EXTEND_MODE_ON,
|
|
222
|
+
ye as EVENT_GALLERY_CLOSE,
|
|
223
|
+
_e as EVENT_GALLERY_OPEN,
|
|
224
|
+
ge as EVENT_HOTSPOTS_OFF,
|
|
225
|
+
Ae as EVENT_HOTSPOTS_ON,
|
|
226
|
+
Oe as EVENT_ITEM_CHANGE,
|
|
224
227
|
j as WEB_PLAYER_ICON_WC_TAG,
|
|
225
228
|
V as WEB_PLAYER_WC_TAG,
|
|
226
229
|
Ce as WebPlayer,
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
+
Te as WebPlayerCustomMedia,
|
|
231
|
+
Ne as WebPlayerIcon,
|
|
232
|
+
Se as generateCompositionUrl
|
|
230
233
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@tailwind base;@tailwind components;@tailwind utilities;.pnlm-load-button,.pnlm-load-box{display:none!important}.pnlm-container{background-image:none!important}.pnlm-about-msg{width:0;height:0;padding:0;visibility:hidden}.pnlm-about-msg a{display:none;visibility:hidden}.pnlm-container{margin:0;padding:0;overflow:hidden;position:relative;cursor:default;width:100%;height:100%;font-family:Helvetica,Nimbus Sans L,Liberation Sans,Arial,sans-serif;background:#f4f4f4 url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='67'%20height='100'%20viewBox='0%200%2067%20100'%3e%3cpath%20stroke='%23ccc'%20fill='none'%20d='M33.5,50,0,63,33.5,75,67,63,33.5,50m-33.5-50,67,25m-0.5,0,0,75m-66.5-75,67-25m-33.5,75,0,25m0-100,0,50'/%3e%3c/svg%3e") repeat;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none;outline:0;line-height:1.4;contain:content;touch-action:none}.pnlm-container *{box-sizing:content-box}.pnlm-ui{position:absolute;width:100%;height:100%;z-index:1}.pnlm-grab{cursor:grab;cursor:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='26'%20width='26'%3e%3cpath%20stroke='%23000'%20stroke-width='1px'%20fill='%23fff'%20d='m15.3%2020.5s6.38-6.73%204.64-8.24-3.47%201.01-3.47%201.01%203.61-5.72%201.41-6.49c-2.2-0.769-3.33%204.36-3.33%204.36s0.873-5.76-1.06-5.76-1.58%205.39-1.58%205.39-0.574-4.59-2.18-4.12c-1.61%200.468-0.572%205.51-0.572%205.51s-1.58-4.89-2.93-3.79c-1.35%201.11%200.258%205.25%200.572%206.62%200.836%202.43%202.03%202.94%202.17%205.55'/%3e%3c/svg%3e") 12 8,default}.pnlm-grabbing{cursor:grabbing;cursor:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='26'%20width='26'%3e%3cpath%20stroke='%23000'%20stroke-width='1px'%20fill='%23fff'%20d='m15.3%2020.5s5.07-5.29%203.77-6.74c-1.31-1.45-2.53%200.14-2.53%200.14s2.74-3.29%200.535-4.06c-2.2-0.769-2.52%201.3-2.52%201.3s0.81-2.13-1.12-2.13-1.52%201.77-1.52%201.77-0.261-1.59-1.87-1.12c-1.61%200.468-0.874%202.17-0.874%202.17s-0.651-1.55-2-0.445c-1.35%201.11-0.68%202.25-0.365%203.62%200.836%202.43%202.03%202.94%202.17%205.55'/%3e%3c/svg%3e") 12 8,default}.pnlm-sprite{background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='26'%20height='208'%3e%3ccircle%20fill-opacity='.78'%20cy='117'%20cx='13'%20r='11'%20fill='%23fff'/%3e%3ccircle%20fill-opacity='.78'%20cy='143'%20cx='13'%20r='11'%20fill='%23fff'/%3e%3ccircle%20cy='169'%20cx='13'%20r='7'%20fill='none'%20stroke='%23000'%20stroke-width='2'/%3e%3ccircle%20cy='195'%20cx='13'%20r='7'%20fill='none'%20stroke='%23000'%20stroke-width='2'/%3e%3ccircle%20cx='13'%20cy='195'%20r='2.5'/%3e%3cpath%20d='m5%2083v6h2v-4h4v-2zm10%200v2h4v4h2v-6zm-5%205v6h6v-6zm-5%205v6h6v-2h-4v-4zm14%200v4h-4v2h6v-6z'/%3e%3cpath%20d='m13%20110a7%207%200%200%200%20-7%207%207%207%200%200%200%207%207%207%207%200%200%200%207%20-7%207%207%200%200%200%20-7%20-7zm-1%203h2v2h-2zm0%203h2v5h-2z'/%3e%3cpath%20d='m5%2057v6h2v-4h4v-2zm10%200v2h4v4h2v-6zm-10%2010v6h6v-2h-4v-4zm14%200v4h-4v2h6v-6z'/%3e%3cpath%20d='m17%2038v2h-8v-2z'/%3e%3cpath%20d='m12%209v3h-3v2h3v3h2v-3h3v-2h-3v-3z'/%3e%3cpath%20d='m13%20136-6.125%206.125h4.375v7.875h3.5v-7.875h4.375z'/%3e%3cpath%20d='m10.428%20173.33v-5.77l5-2.89v5.77zm1-1.73%203-1.73-3.001-1.74z'/%3e%3c/svg%3e")}.pnlm-container:-moz-full-screen{height:100%!important;width:100%!important;position:static!important}.pnlm-container:-webkit-full-screen{height:100%!important;width:100%!important;position:static!important}.pnlm-container:-ms-fullscreen{height:100%!important;width:100%!important;position:static!important}.pnlm-container:fullscreen{height:100%!important;width:100%!important;position:static!important}.pnlm-render-container{cursor:inherit;position:absolute;height:100%;width:100%}.pnlm-controls{margin-top:4px;background-color:#fff;border:1px solid #999;border-color:#0006;border-radius:3px;cursor:pointer;z-index:2;-webkit-transform:translateZ(9999px);transform:translateZ(9999px)}.pnlm-control:hover{background-color:#f8f8f8}.pnlm-controls-container{position:absolute;top:0;left:4px;z-index:1}.pnlm-zoom-controls{width:26px;height:52px}.pnlm-zoom-in{width:100%;height:50%;position:absolute;top:0;border-radius:3px 3px 0 0}.pnlm-zoom-out{width:100%;height:50%;position:absolute;bottom:0;background-position:0 -26px;border-top:1px solid #ddd;border-top-color:#0000001a;border-radius:0 0 3px 3px}.pnlm-fullscreen-toggle-button,.pnlm-orientation-button,.pnlm-hot-spot-debug-indicator{width:26px;height:26px}.pnlm-hot-spot-debug-indicator{position:absolute;top:50%;left:50%;width:26px;height:26px;margin:-13px 0 0 -13px;background-color:#ffffff80;border-radius:13px;display:none}.pnlm-orientation-button-inactive{background-position:0 -156px}.pnlm-orientation-button-active{background-position:0 -182px}.pnlm-fullscreen-toggle-button-inactive{background-position:0 -52px}.pnlm-fullscreen-toggle-button-active{background-position:0 -78px}.pnlm-panorama-info{position:absolute;bottom:4px;background-color:#000000b3;border-radius:0 3px 3px 0;padding-right:10px;color:#fff;text-align:left;display:none;z-index:2;-webkit-transform:translateZ(9999px);transform:translateZ(9999px)}.pnlm-title-box{position:relative;font-size:20px;display:table;padding-left:5px;margin-bottom:3px}.pnlm-author-box{position:relative;font-size:12px;display:table;padding-left:5px}.pnlm-load-box{position:absolute;top:50%;left:50%;width:200px;height:150px;margin:-75px 0 0 -100px;background-color:#000000b3;border-radius:3px;text-align:center;font-size:20px;display:none;color:#fff}.pnlm-load-box p{margin:20px 0}.pnlm-lbox{position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;display:none}.pnlm-loading{animation-duration:1.5s;-webkit-animation-duration:1.5s;animation-name:pnlm-mv;-webkit-animation-name:pnlm-mv;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;animation-timing-function:linear;-webkit-animation-timing-function:linear;height:10px;width:10px;background-color:#fff;position:relative}@keyframes pnlm-mv{0%{left:0;top:0}25%{left:10px;top:0}50%{left:10px;top:10px}75%{left:0;top:10px}to{left:0;top:0}}@-webkit-keyframes pnlm-mv{0%{left:0;top:0}25%{left:10px;top:0}50%{left:10px;top:10px}75%{left:0;top:10px}to{left:0;top:0}}.pnlm-load-button{position:absolute;top:50%;left:50%;width:200px;height:100px;margin:-50px 0 0 -100px;background-color:#000000b3;border-radius:3px;text-align:center;font-size:20px;display:table;color:#fff;cursor:pointer}.pnlm-load-button:hover{background-color:#000c}.pnlm-load-button p{display:table-cell;vertical-align:middle}.pnlm-info-box{font-size:15px;position:absolute;top:50%;left:50%;width:200px;height:150px;margin:-75px 0 0 -100px;background-color:#000;border-radius:3px;display:table;text-align:center;color:#fff;table-layout:fixed}.pnlm-info-box a{color:#fff;word-wrap:break-word;overflow-wrap:break-word}.pnlm-info-box p{display:table-cell;vertical-align:middle;padding:0 5px}.pnlm-error-msg{display:none}.pnlm-about-msg{font-size:11px;line-height:11px;color:#fff;padding:5px 8px;background:#000000b3;border-radius:3px;position:absolute;top:50px;left:50px;display:none;opacity:0;-moz-transition:opacity .3s ease-in-out;-webkit-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;z-index:1}.pnlm-about-msg a:link,.pnlm-about-msg a:visited{color:#fff}.pnlm-about-msg a:hover,.pnlm-about-msg a:active{color:#eee}.pnlm-hotspot-base{position:absolute;visibility:hidden;cursor:default;vertical-align:middle;top:0;z-index:1}.pnlm-hotspot{height:26px;width:26px;border-radius:13px}.pnlm-hotspot:hover{background-color:#fff3}.pnlm-hotspot.pnlm-info{background-position:0 -104px}.pnlm-hotspot.pnlm-scene{background-position:0 -130px}div.pnlm-tooltip span{visibility:hidden;position:absolute;border-radius:3px;background-color:#000000b3;color:#fff;text-align:center;max-width:200px;padding:5px 10px;margin-left:-220px;cursor:default}div.pnlm-tooltip:hover span{visibility:visible}div.pnlm-tooltip:hover span:after{content:"";position:absolute;width:0;height:0;border-width:10px;border-style:solid;border-color:rgba(0,0,0,.7) transparent transparent transparent;bottom:-20px;left:-10px;margin:0 50%}.pnlm-compass{position:absolute;width:50px;height:50px;right:4px;bottom:4px;border-radius:25px;background-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='50'%20width='50'%3e%3cpath%20d='m24.5078%206-3.2578%2018h7.5l-3.25781-18h-0.984376zm-3.2578%2020%203.2578%2018h0.9844l3.2578-18h-7.5zm1.19531%200.9941h5.10938l-2.5547%2014.1075-2.5547-14.1075z'/%3e%3c/svg%3e");cursor:default;display:none}.pnlm-world{position:absolute;left:50%;top:50%}.pnlm-face{position:absolute;-webkit-transform-origin:0 0 0;transform-origin:0 0 0}.pnlm-dragfix,.pnlm-preview-img{position:absolute;height:100%;width:100%}.pnlm-preview-img{background-size:cover;background-position:center}.pnlm-lbar{width:150px;margin:0 auto;border:#fff 1px solid;height:6px}.pnlm-lbar-fill{background:#fff;height:100%;width:0}.pnlm-lmsg{font-size:12px}.pnlm-fade-img{position:absolute;top:0;left:0}.pnlm-pointer{cursor:pointer}#textInfo .tooltip-content{font-size:1.6em;position:absolute;left:-70px;bottom:80px;width:200px;pointer-events:none;background-color:#333;color:#fff;line-height:1.2em;padding:.8em;opacity:0;-webkit-transform-origin:50% calc(100% + 6em);transform-origin:50% calc(100% + 6em);-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg);-webkit-transition:opacity .5s,-webkit-transform .5s;transition:opacity .5s,transform .5s;-webkit-transition-timing-function:ease,cubic-bezier(.17,.67,.4,1.39);transition-timing-function:ease,cubic-bezier(.17,.67,.4,1.39)}#textInfo:hover{z-index:3}#textInfo:hover .tooltip-content{opacity:1;pointer-events:all;-webkit-transform:translate3d(0,0,0) rotate3d(0,0,0,0);transform:translateZ(0) rotate3d(0,0,0,0)}#textInfo .hotspot{cursor:pointer;box-sizing:border-box}#textInfo .hotspot .out:before{speak:none;font-size:48px;line-height:90px;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;display:block;-webkit-font-smoothing:antialiased}#textInfo .hotspot .out{width:60px;height:60px;border-radius:50%;border:5px solid rgba(255,255,255,.8);-webkit-transition:-webkit-transform ease-out .1s,border .2s;-moz-transition:-moz-transform ease-out .1s,border .2s;transition:transform ease-out .1s,border .2s;box-sizing:border-box}#textInfo .hotspot .in{width:40px;height:40px;position:absolute;top:10px;left:10px;background-color:#fffc;border-radius:50%;-webkit-transition:-webkit-transform ease-out .1s,background .2s;-moz-transition:-moz-transform ease-out .1s,background .2s;transition:transform ease-out .1s,background .2s}#textInfo .hotspot .out:after{top:0;left:0;padding:0;z-index:-1;box-shadow:0 0 0 2px #ffffff1a;opacity:0;pointer-events:none;position:absolute;width:100%;height:100%;border-radius:50%;content:"";-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transform:scale(.9);-moz-transform:scale(.9);-ms-transform:scale(.9);transform:scale(.9)}#textInfo .hotspot:hover .out{border:5px solid rgba(255,255,255,1);-webkit-transform:scale(.9);-moz-transform:scale(.9);-ms-transform:scale(.9);transform:scale(.9);color:#fff}#textInfo .hotspot:hover .in{background-color:#fff;-webkit-transform:scale(.8);-moz-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}#textInfo .hotspot:hover .out:after{-webkit-animation:sonarEffect 1.2s ease-out;-moz-animation:sonarEffect 1.2s ease-out;animation:sonarEffect 1.2s ease-out}@-webkit-keyframes sonarEffect{0%{opacity:.5}20%{opacity:.8;box-shadow:0 0 0 2px #ffffff1a,0 0 10px 10px #25aae1cc,0 0 0 10px #ffffff80}to{box-shadow:0 0 0 2px #ffffff1a,0 0 10px 10px #25aae1cc,0 0 0 10px #ffffff80;-webkit-transform:scale(1.5);opacity:0}}@-moz-keyframes sonarEffect{0%{opacity:.5}20%{opacity:.8;box-shadow:0 0 0 2px #ffffff1a,0 0 10px 10px #25aae1cc,0 0 0 10px #ffffff80}to{box-shadow:0 0 0 2px #ffffff1a,0 0 10px 10px #25aae1cc,0 0 0 10px #ffffff80;-moz-transform:scale(1.5);opacity:0}}@keyframes sonarEffect{0%{opacity:.5}20%{opacity:.8;box-shadow:0 0 0 2px #ffffff1a,0 0 10px 10px #25aae1cc,0 0 0 10px #ffffff80}to{box-shadow:0 0 0 2px #ffffff1a,0 0 10px 10px #25aae1cc,0 0 0 10px #ffffff80;transform:scale(1.5);opacity:0}}
|