@linktr.ee/messaging-react 1.26.1 → 1.27.0
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/Creator-B6M8dB0U.js +87 -0
- package/dist/Creator-B6M8dB0U.js.map +1 -0
- package/dist/MediaPlayer-DsjlYGGH.js +539 -0
- package/dist/MediaPlayer-DsjlYGGH.js.map +1 -0
- package/dist/Preview-DqAv16NS.js +87 -0
- package/dist/Preview-DqAv16NS.js.map +1 -0
- package/dist/Visitor-CpmFZRGO.js +175 -0
- package/dist/Visitor-CpmFZRGO.js.map +1 -0
- package/dist/dash.all.min-Duv4lvGS.js +18858 -0
- package/dist/dash.all.min-Duv4lvGS.js.map +1 -0
- package/dist/hls-Bogc7CBn.js +21710 -0
- package/dist/hls-Bogc7CBn.js.map +1 -0
- package/dist/index-Da-xN4Yq.js +16142 -0
- package/dist/index-Da-xN4Yq.js.map +1 -0
- package/dist/index-Dj9rqWcU.js +69 -0
- package/dist/index-Dj9rqWcU.js.map +1 -0
- package/dist/index.d.ts +73 -10
- package/dist/index.js +979 -934
- package/dist/index.js.map +1 -1
- package/dist/mixin-B6jYfIcp.js +808 -0
- package/dist/mixin-B6jYfIcp.js.map +1 -0
- package/dist/react-BxlQMOfz.js +419 -0
- package/dist/react-BxlQMOfz.js.map +1 -0
- package/dist/react-COAP-MIW.js +377 -0
- package/dist/react-COAP-MIW.js.map +1 -0
- package/dist/react-Cn4WlMcl.js +3108 -0
- package/dist/react-Cn4WlMcl.js.map +1 -0
- package/dist/react-CwTJArKY.js +459 -0
- package/dist/react-CwTJArKY.js.map +1 -0
- package/dist/react-DkfS_atT.js +373 -0
- package/dist/react-DkfS_atT.js.map +1 -0
- package/dist/react-Pea5fum1.js +286 -0
- package/dist/react-Pea5fum1.js.map +1 -0
- package/dist/react-RiBbsUDd.js +534 -0
- package/dist/react-RiBbsUDd.js.map +1 -0
- package/dist/react-dS1WBxxz.js +238 -0
- package/dist/react-dS1WBxxz.js.map +1 -0
- package/package.json +2 -1
- package/src/components/ChannelView.tsx +12 -2
- package/src/components/CustomMessage/CustomMessage.stories.tsx +173 -41
- package/src/components/CustomMessage/MessageTag.tsx +5 -0
- package/src/components/CustomMessage/index.tsx +43 -4
- package/src/components/LockedAttachment/LockedAttachment.stories.tsx +249 -0
- package/src/components/LockedAttachment/components/Creator.tsx +171 -0
- package/src/components/LockedAttachment/components/MediaPlayer.tsx +299 -0
- package/src/components/LockedAttachment/components/Visitor.tsx +293 -0
- package/src/components/LockedAttachment/index.tsx +39 -0
- package/src/components/LockedAttachment/types.ts +18 -0
- package/src/components/LockedAttachment/utils/icons.ts +52 -0
- package/src/components/LockedAttachment/utils/mimeType.test.ts +97 -0
- package/src/components/LockedAttachment/utils/mimeType.ts +35 -0
- package/src/components/ParticipantPicker/index.tsx +8 -1
- package/src/hooks/useParticipants.ts +3 -2
- package/src/index.ts +4 -0
- package/src/stories/decorators/storyUser.tsx +37 -0
- package/src/stream-custom-data.ts +9 -3
- package/src/types.ts +21 -1
- package/src/utils/isDevBuild.ts +10 -0
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
var it = Object.defineProperty;
|
|
2
|
+
var G = (e) => {
|
|
3
|
+
throw TypeError(e);
|
|
4
|
+
};
|
|
5
|
+
var rt = (e, o, t) => o in e ? it(e, o, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[o] = t;
|
|
6
|
+
var I = (e, o, t) => rt(e, typeof o != "symbol" ? o + "" : o, t), x = (e, o, t) => o.has(e) || G("Cannot " + t);
|
|
7
|
+
var l = (e, o, t) => (x(e, o, "read from private field"), t ? t.call(e) : o.get(e)), d = (e, o, t) => o.has(e) ? G("Cannot add the same private member more than once") : o instanceof WeakSet ? o.add(e) : o.set(e, t), a = (e, o, t, s) => (x(e, o, "write to private field"), s ? s.call(e, t) : o.set(e, t), t), h = (e, o, t) => (x(e, o, "access private method"), t);
|
|
8
|
+
import nt from "react";
|
|
9
|
+
const at = "https://www.tiktok.com/player/v1", lt = /tiktok\.com\/(?:player\/v1\/|share\/video\/|@[^/]+\/video\/)([0-9]+)/, g = { INIT: -1, ENDED: 0, PLAYING: 1, PAUSED: 2, BUFFERING: 3 }, ut = {
|
|
10
|
+
[g.INIT]: "emptied",
|
|
11
|
+
[g.PAUSED]: "pause",
|
|
12
|
+
[g.ENDED]: "ended",
|
|
13
|
+
[g.PLAYING]: "play",
|
|
14
|
+
[g.BUFFERING]: "waiting"
|
|
15
|
+
};
|
|
16
|
+
function z(e, o = {}) {
|
|
17
|
+
const t = {
|
|
18
|
+
src: Q(e, o),
|
|
19
|
+
frameborder: 0,
|
|
20
|
+
width: "100%",
|
|
21
|
+
height: "100%",
|
|
22
|
+
allow: "accelerometer; autoplay; fullscreen; encrypted-media; gyroscope; picture-in-picture"
|
|
23
|
+
};
|
|
24
|
+
return o.config && (t["data-config"] = JSON.stringify(o.config)), /*html*/
|
|
25
|
+
`
|
|
26
|
+
<style>
|
|
27
|
+
:host {
|
|
28
|
+
display:inline-block;
|
|
29
|
+
min-width: 300px;
|
|
30
|
+
min-height: 150px;
|
|
31
|
+
position: relative;
|
|
32
|
+
}
|
|
33
|
+
iframe {
|
|
34
|
+
position:absolute;
|
|
35
|
+
top:0;
|
|
36
|
+
left:0;
|
|
37
|
+
width:100%;
|
|
38
|
+
height:100%;
|
|
39
|
+
border:0;
|
|
40
|
+
}
|
|
41
|
+
</style>
|
|
42
|
+
<iframe ${ft(t)} title="TikTok video"></iframe>
|
|
43
|
+
`;
|
|
44
|
+
}
|
|
45
|
+
function Q(e, o = {}) {
|
|
46
|
+
if (!e.src) return;
|
|
47
|
+
const t = e.src.match(lt), s = t && t[1], i = {
|
|
48
|
+
controls: e.controls === "" ? null : 0,
|
|
49
|
+
autoplay: e.autoplay,
|
|
50
|
+
muted: e.muted,
|
|
51
|
+
loop: e.loop,
|
|
52
|
+
rel: 0,
|
|
53
|
+
...o.config
|
|
54
|
+
};
|
|
55
|
+
return `${at}/${s}?${ht(i)}`;
|
|
56
|
+
}
|
|
57
|
+
var k, M, w, L, N, A, b, R, E, _, u, T, X, Z, V, tt;
|
|
58
|
+
const S = class S extends (globalThis.HTMLElement ?? class {
|
|
59
|
+
}) {
|
|
60
|
+
constructor() {
|
|
61
|
+
super();
|
|
62
|
+
d(this, u);
|
|
63
|
+
I(this, "loadComplete", new J());
|
|
64
|
+
d(this, k);
|
|
65
|
+
d(this, M);
|
|
66
|
+
d(this, w, !1);
|
|
67
|
+
d(this, L, 0);
|
|
68
|
+
d(this, N, !0);
|
|
69
|
+
d(this, A, null);
|
|
70
|
+
d(this, b, 100);
|
|
71
|
+
d(this, R, 0);
|
|
72
|
+
d(this, E);
|
|
73
|
+
d(this, _, (t) => {
|
|
74
|
+
var s;
|
|
75
|
+
if (t.source !== ((s = l(this, E)) == null ? void 0 : s.contentWindow)) return;
|
|
76
|
+
const i = t.data;
|
|
77
|
+
if (i != null && i["x-tiktok-player"])
|
|
78
|
+
switch (i.type) {
|
|
79
|
+
case "onPlayerReady":
|
|
80
|
+
this.loadComplete.resolve();
|
|
81
|
+
break;
|
|
82
|
+
case "onStateChange": {
|
|
83
|
+
a(this, N, [g.INIT, g.PAUSED, g.ENDED].includes(i.value));
|
|
84
|
+
const f = ut[i.value];
|
|
85
|
+
f && this.dispatchEvent(new Event(f));
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
case "onCurrentTime":
|
|
89
|
+
a(this, L, i.value.currentTime), a(this, R, i.value.duration), this.dispatchEvent(new Event("durationchange")), this.dispatchEvent(new Event("timeupdate"));
|
|
90
|
+
break;
|
|
91
|
+
case "onVolumeChange":
|
|
92
|
+
a(this, b, i.value), this.dispatchEvent(new Event("volumechange"));
|
|
93
|
+
break;
|
|
94
|
+
case "onMute":
|
|
95
|
+
a(this, w, !!i.value), a(this, b, i.value ? 0 : l(this, b)), this.dispatchEvent(new Event("volumechange"));
|
|
96
|
+
break;
|
|
97
|
+
case "onError":
|
|
98
|
+
this.dispatchEvent(new Event("error"));
|
|
99
|
+
break;
|
|
100
|
+
default:
|
|
101
|
+
console.warn("Unhandled TikTok player message:", i);
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
h(this, u, tt).call(this, "config");
|
|
106
|
+
}
|
|
107
|
+
static get observedAttributes() {
|
|
108
|
+
return ["src", "controls", "loop", "autoplay", "muted"];
|
|
109
|
+
}
|
|
110
|
+
async load() {
|
|
111
|
+
if (l(this, k)) return;
|
|
112
|
+
this.shadowRoot || this.attachShadow(S.shadowRootOptions);
|
|
113
|
+
const t = !l(this, M);
|
|
114
|
+
if (l(this, M) && (this.loadComplete = new J()), a(this, M, !0), await a(this, k, Promise.resolve()), a(this, k, null), a(this, L, 0), a(this, w, !1), a(this, N, !0), !this.src) {
|
|
115
|
+
this.shadowRoot.innerHTML = "", globalThis.removeEventListener("message", l(this, _));
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
let s = this.shadowRoot.querySelector("iframe");
|
|
119
|
+
const i = ct(this.attributes);
|
|
120
|
+
t && s && a(this, A, JSON.parse(s.getAttribute("data-config") || "{}")), (!(s != null && s.src) || s.src !== Q(i, this)) && (this.shadowRoot.innerHTML = z(i, this), s = this.shadowRoot.querySelector("iframe")), a(this, E, s), globalThis.addEventListener("message", l(this, _));
|
|
121
|
+
}
|
|
122
|
+
async attributeChangedCallback(t, s, i) {
|
|
123
|
+
if (s !== i)
|
|
124
|
+
switch (t) {
|
|
125
|
+
case "muted": {
|
|
126
|
+
await this.loadComplete, this.muted = i != null;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case "autoplay":
|
|
130
|
+
case "controls":
|
|
131
|
+
case "loop":
|
|
132
|
+
case "src": {
|
|
133
|
+
this.load();
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
get config() {
|
|
139
|
+
return l(this, A);
|
|
140
|
+
}
|
|
141
|
+
set config(t) {
|
|
142
|
+
a(this, A, t);
|
|
143
|
+
}
|
|
144
|
+
async play() {
|
|
145
|
+
await this.loadComplete, h(this, u, T).call(this, "play");
|
|
146
|
+
}
|
|
147
|
+
async pause() {
|
|
148
|
+
await this.loadComplete, h(this, u, T).call(this, "pause");
|
|
149
|
+
}
|
|
150
|
+
get volume() {
|
|
151
|
+
return l(this, b) / 100;
|
|
152
|
+
}
|
|
153
|
+
set volume(t) {
|
|
154
|
+
console.warn("Volume control is not supported for TikTok videos.");
|
|
155
|
+
}
|
|
156
|
+
get currentTime() {
|
|
157
|
+
return l(this, L);
|
|
158
|
+
}
|
|
159
|
+
set currentTime(t) {
|
|
160
|
+
h(this, u, X).call(this, t);
|
|
161
|
+
}
|
|
162
|
+
get muted() {
|
|
163
|
+
return l(this, w);
|
|
164
|
+
}
|
|
165
|
+
set muted(t) {
|
|
166
|
+
a(this, w, t), t ? h(this, u, Z).call(this) : h(this, u, V).call(this);
|
|
167
|
+
}
|
|
168
|
+
get defaultMuted() {
|
|
169
|
+
return this.hasAttribute("muted");
|
|
170
|
+
}
|
|
171
|
+
set defaultMuted(t) {
|
|
172
|
+
this.toggleAttribute("muted", !!t);
|
|
173
|
+
}
|
|
174
|
+
get paused() {
|
|
175
|
+
return l(this, N);
|
|
176
|
+
}
|
|
177
|
+
get duration() {
|
|
178
|
+
return l(this, R);
|
|
179
|
+
}
|
|
180
|
+
get src() {
|
|
181
|
+
return this.getAttribute("src");
|
|
182
|
+
}
|
|
183
|
+
set src(t) {
|
|
184
|
+
this.setAttribute("src", t ?? "");
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
k = new WeakMap(), M = new WeakMap(), w = new WeakMap(), L = new WeakMap(), N = new WeakMap(), A = new WeakMap(), b = new WeakMap(), R = new WeakMap(), E = new WeakMap(), _ = new WeakMap(), u = new WeakSet(), T = function(t, s) {
|
|
188
|
+
var i;
|
|
189
|
+
if (!((i = l(this, E)) != null && i.contentWindow)) return;
|
|
190
|
+
const f = { "x-tiktok-player": !0, type: t, ...s !== void 0 ? { value: s } : {} };
|
|
191
|
+
l(this, E).contentWindow.postMessage(f, "*");
|
|
192
|
+
}, X = async function(t) {
|
|
193
|
+
await this.loadComplete, h(this, u, T).call(this, "seekTo", Number(t));
|
|
194
|
+
}, Z = async function() {
|
|
195
|
+
await this.loadComplete, h(this, u, T).call(this, "mute");
|
|
196
|
+
}, V = async function() {
|
|
197
|
+
await this.loadComplete, h(this, u, T).call(this, "unMute");
|
|
198
|
+
}, // This is a pattern to update property values that are set before
|
|
199
|
+
// the custom element is upgraded.
|
|
200
|
+
// https://web.dev/custom-elements-best-practices/#make-properties-lazy
|
|
201
|
+
tt = function(t) {
|
|
202
|
+
if (Object.prototype.hasOwnProperty.call(this, t)) {
|
|
203
|
+
const s = this[t];
|
|
204
|
+
delete this[t], this[t] = s;
|
|
205
|
+
}
|
|
206
|
+
}, I(S, "getTemplateHTML", z), I(S, "shadowRootOptions", { mode: "open" });
|
|
207
|
+
let H = S;
|
|
208
|
+
class J extends Promise {
|
|
209
|
+
constructor(o = () => {
|
|
210
|
+
}) {
|
|
211
|
+
let t, s;
|
|
212
|
+
super((i, f) => {
|
|
213
|
+
o(i, f), t = i, s = f;
|
|
214
|
+
}), this.resolve = t, this.reject = s;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
function ct(e) {
|
|
218
|
+
let o = {};
|
|
219
|
+
for (let t of e)
|
|
220
|
+
o[t.name] = t.value;
|
|
221
|
+
return o;
|
|
222
|
+
}
|
|
223
|
+
function dt(e) {
|
|
224
|
+
let o = {};
|
|
225
|
+
for (let t in e) {
|
|
226
|
+
let s = e[t];
|
|
227
|
+
s === !0 || s === "" ? o[t] = 1 : s === !1 ? o[t] = 0 : s != null && (o[t] = s);
|
|
228
|
+
}
|
|
229
|
+
return o;
|
|
230
|
+
}
|
|
231
|
+
function ht(e) {
|
|
232
|
+
return String(new URLSearchParams(dt(e)));
|
|
233
|
+
}
|
|
234
|
+
function ft(e) {
|
|
235
|
+
let o = "";
|
|
236
|
+
for (const t in e) {
|
|
237
|
+
const s = e[t];
|
|
238
|
+
s === "" ? o += ` ${F(t)}` : o += ` ${F(t)}="${F(`${s}`)}"`;
|
|
239
|
+
}
|
|
240
|
+
return o;
|
|
241
|
+
}
|
|
242
|
+
function F(e) {
|
|
243
|
+
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/`/g, "`");
|
|
244
|
+
}
|
|
245
|
+
globalThis.customElements && !globalThis.customElements.get("tiktok-video") && globalThis.customElements.define("tiktok-video", H);
|
|
246
|
+
var mt = H, pt = /* @__PURE__ */ new Set([
|
|
247
|
+
"style",
|
|
248
|
+
"children",
|
|
249
|
+
"ref",
|
|
250
|
+
"key",
|
|
251
|
+
"suppressContentEditableWarning",
|
|
252
|
+
"suppressHydrationWarning",
|
|
253
|
+
"dangerouslySetInnerHTML"
|
|
254
|
+
]), vt = {
|
|
255
|
+
className: "class",
|
|
256
|
+
htmlFor: "for"
|
|
257
|
+
};
|
|
258
|
+
function et(e) {
|
|
259
|
+
return e.toLowerCase();
|
|
260
|
+
}
|
|
261
|
+
function Y(e) {
|
|
262
|
+
if (typeof e == "boolean") return e ? "" : void 0;
|
|
263
|
+
if (typeof e != "function" && !(typeof e == "object" && e !== null))
|
|
264
|
+
return e;
|
|
265
|
+
}
|
|
266
|
+
function gt({
|
|
267
|
+
react: e,
|
|
268
|
+
tagName: o,
|
|
269
|
+
elementClass: t,
|
|
270
|
+
events: s,
|
|
271
|
+
displayName: i,
|
|
272
|
+
defaultProps: f,
|
|
273
|
+
toAttributeName: ot = et,
|
|
274
|
+
toAttributeValue: st = Y
|
|
275
|
+
}) {
|
|
276
|
+
const U = Number.parseInt(e.version) >= 19, W = e.forwardRef(($, P) => {
|
|
277
|
+
var j, B;
|
|
278
|
+
const m = e.useRef(null), D = e.useRef(/* @__PURE__ */ new Map()), O = {}, q = {}, p = {}, C = {};
|
|
279
|
+
for (const [r, n] of Object.entries($)) {
|
|
280
|
+
if (pt.has(r)) {
|
|
281
|
+
p[r] = n;
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
const c = ot(vt[r] ?? r);
|
|
285
|
+
if (t.prototype && r in t.prototype && !(r in (((j = globalThis.HTMLElement) == null ? void 0 : j.prototype) ?? {})) && !((B = t.observedAttributes) != null && B.some((y) => y === c))) {
|
|
286
|
+
C[r] = n;
|
|
287
|
+
continue;
|
|
288
|
+
}
|
|
289
|
+
if (r.startsWith("on")) {
|
|
290
|
+
O[r] = n;
|
|
291
|
+
continue;
|
|
292
|
+
}
|
|
293
|
+
const v = st(n);
|
|
294
|
+
if (c && v != null && (q[c] = String(v), U || (p[c] = v)), c && U) {
|
|
295
|
+
const y = Y(n);
|
|
296
|
+
v !== y ? p[c] = v : p[c] = n;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
if (typeof window < "u") {
|
|
300
|
+
for (const r in O) {
|
|
301
|
+
const n = O[r], c = r.endsWith("Capture"), v = ((s == null ? void 0 : s[r]) ?? r.slice(2).toLowerCase()).slice(
|
|
302
|
+
0,
|
|
303
|
+
c ? -7 : void 0
|
|
304
|
+
);
|
|
305
|
+
e.useLayoutEffect(() => {
|
|
306
|
+
const y = m == null ? void 0 : m.current;
|
|
307
|
+
if (!(!y || typeof n != "function"))
|
|
308
|
+
return y.addEventListener(v, n, c), () => {
|
|
309
|
+
y.removeEventListener(v, n, c);
|
|
310
|
+
};
|
|
311
|
+
}, [m == null ? void 0 : m.current, n]);
|
|
312
|
+
}
|
|
313
|
+
e.useLayoutEffect(() => {
|
|
314
|
+
if (m.current === null) return;
|
|
315
|
+
const r = /* @__PURE__ */ new Map();
|
|
316
|
+
for (const n in C)
|
|
317
|
+
K(m.current, n, C[n]), D.current.delete(n), r.set(n, C[n]);
|
|
318
|
+
for (const [n, c] of D.current)
|
|
319
|
+
K(m.current, n, void 0);
|
|
320
|
+
D.current = r;
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
if (typeof window > "u" && (t != null && t.getTemplateHTML) && (t != null && t.shadowRootOptions)) {
|
|
324
|
+
const { mode: r, delegatesFocus: n } = t.shadowRootOptions, c = e.createElement("template", {
|
|
325
|
+
shadowrootmode: r,
|
|
326
|
+
shadowrootdelegatesfocus: n,
|
|
327
|
+
dangerouslySetInnerHTML: {
|
|
328
|
+
__html: t.getTemplateHTML(q, $)
|
|
329
|
+
},
|
|
330
|
+
key: "ce-la-react-ssr-template-shadow-root"
|
|
331
|
+
});
|
|
332
|
+
p.children = [c, p.children];
|
|
333
|
+
}
|
|
334
|
+
return e.createElement(o, {
|
|
335
|
+
...f,
|
|
336
|
+
...p,
|
|
337
|
+
ref: e.useCallback(
|
|
338
|
+
(r) => {
|
|
339
|
+
m.current = r, typeof P == "function" ? P(r) : P !== null && (P.current = r);
|
|
340
|
+
},
|
|
341
|
+
[P]
|
|
342
|
+
)
|
|
343
|
+
}, p.children);
|
|
344
|
+
});
|
|
345
|
+
return W.displayName = i ?? t.name, W;
|
|
346
|
+
}
|
|
347
|
+
function K(e, o, t) {
|
|
348
|
+
var s;
|
|
349
|
+
e[o] = t, t == null && o in (((s = globalThis.HTMLElement) == null ? void 0 : s.prototype) ?? {}) && e.removeAttribute(o);
|
|
350
|
+
}
|
|
351
|
+
var bt = gt({
|
|
352
|
+
react: nt,
|
|
353
|
+
tagName: "tiktok-video",
|
|
354
|
+
elementClass: mt,
|
|
355
|
+
toAttributeName(e) {
|
|
356
|
+
return e === "muted" ? "" : e === "defaultMuted" ? "muted" : et(e);
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
/*! Bundled license information:
|
|
360
|
+
|
|
361
|
+
ce-la-react/dist/ce-la-react.js:
|
|
362
|
+
(**
|
|
363
|
+
* @license
|
|
364
|
+
* Copyright 2018 Google LLC
|
|
365
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
366
|
+
*
|
|
367
|
+
* Modified version of `@lit/react` for vanilla custom elements with support for SSR.
|
|
368
|
+
*)
|
|
369
|
+
*/
|
|
370
|
+
export {
|
|
371
|
+
bt as default
|
|
372
|
+
};
|
|
373
|
+
//# sourceMappingURL=react-DkfS_atT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-DkfS_atT.js","sources":["../../../node_modules/tiktok-video-element/dist/tiktok-video-element.js","../../../node_modules/tiktok-video-element/dist/react.js"],"sourcesContent":["const EMBED_BASE = \"https://www.tiktok.com/player/v1\";\nconst MATCH_SRC = /tiktok\\.com\\/(?:player\\/v1\\/|share\\/video\\/|@[^/]+\\/video\\/)([0-9]+)/;\nconst PlayerState = { INIT: -1, ENDED: 0, PLAYING: 1, PAUSED: 2, BUFFERING: 3 };\nconst EventMap = {\n [PlayerState.INIT]: \"emptied\",\n [PlayerState.PAUSED]: \"pause\",\n [PlayerState.ENDED]: \"ended\",\n [PlayerState.PLAYING]: \"play\",\n [PlayerState.BUFFERING]: \"waiting\"\n};\nfunction getTemplateHTML(attrs, props = {}) {\n const iframeAttrs = {\n src: serializeIframeUrl(attrs, props),\n frameborder: 0,\n width: \"100%\",\n height: \"100%\",\n allow: \"accelerometer; autoplay; fullscreen; encrypted-media; gyroscope; picture-in-picture\"\n };\n if (props.config) {\n iframeAttrs[\"data-config\"] = JSON.stringify(props.config);\n }\n return (\n /*html*/\n `\n <style>\n :host {\n display:inline-block;\n min-width: 300px;\n min-height: 150px;\n position: relative;\n }\n iframe {\n position:absolute;\n top:0;\n left:0;\n width:100%;\n height:100%;\n border:0;\n }\n </style>\n <iframe ${serializeAttributes(iframeAttrs)} title=\"TikTok video\"></iframe>\n `\n );\n}\nfunction serializeIframeUrl(attrs, props = {}) {\n if (!attrs.src) return;\n const matches = attrs.src.match(MATCH_SRC);\n const srcId = matches && matches[1];\n const params = {\n controls: attrs.controls === \"\" ? null : 0,\n autoplay: attrs.autoplay,\n muted: attrs.muted,\n loop: attrs.loop,\n rel: 0,\n ...props.config\n };\n return `${EMBED_BASE}/${srcId}?${serialize(params)}`;\n}\nclass TikTokVideoElement extends (globalThis.HTMLElement ?? class {\n}) {\n static getTemplateHTML = getTemplateHTML;\n static shadowRootOptions = { mode: \"open\" };\n static get observedAttributes() {\n return [\"src\", \"controls\", \"loop\", \"autoplay\", \"muted\"];\n }\n loadComplete = new PublicPromise();\n #loadRequested;\n #hasLoaded;\n #muted = false;\n #currentTime = 0;\n #paused = true;\n #config = null;\n #volume = 100;\n #duration = 0;\n #iframe;\n constructor() {\n super();\n this.#upgradeProperty(\"config\");\n }\n async load() {\n if (this.#loadRequested) return;\n if (!this.shadowRoot) {\n this.attachShadow(TikTokVideoElement.shadowRootOptions);\n }\n const isFirstLoad = !this.#hasLoaded;\n if (this.#hasLoaded) {\n this.loadComplete = new PublicPromise();\n }\n this.#hasLoaded = true;\n await (this.#loadRequested = Promise.resolve());\n this.#loadRequested = null;\n this.#currentTime = 0;\n this.#muted = false;\n this.#paused = true;\n if (!this.src) {\n this.shadowRoot.innerHTML = \"\";\n globalThis.removeEventListener(\"message\", this.#onMessage);\n return;\n }\n let iframe = this.shadowRoot.querySelector(\"iframe\");\n const attrs = namedNodeMapToObject(this.attributes);\n if (isFirstLoad && iframe) {\n this.#config = JSON.parse(iframe.getAttribute(\"data-config\") || \"{}\");\n }\n if (!(iframe == null ? void 0 : iframe.src) || iframe.src !== serializeIframeUrl(attrs, this)) {\n this.shadowRoot.innerHTML = getTemplateHTML(attrs, this);\n iframe = this.shadowRoot.querySelector(\"iframe\");\n }\n this.#iframe = iframe;\n globalThis.addEventListener(\"message\", this.#onMessage);\n }\n async attributeChangedCallback(attrName, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (attrName) {\n case \"muted\": {\n await this.loadComplete;\n this.muted = newValue != null;\n break;\n }\n case \"autoplay\":\n case \"controls\":\n case \"loop\":\n case \"src\": {\n this.load();\n return;\n }\n }\n }\n get config() {\n return this.#config;\n }\n set config(value) {\n this.#config = value;\n }\n #onMessage = (event) => {\n var _a;\n if (event.source !== ((_a = this.#iframe) == null ? void 0 : _a.contentWindow)) return;\n const msg = event.data;\n if (!(msg == null ? void 0 : msg[\"x-tiktok-player\"])) return;\n switch (msg.type) {\n case \"onPlayerReady\":\n this.loadComplete.resolve();\n break;\n case \"onStateChange\": {\n this.#paused = [PlayerState.INIT, PlayerState.PAUSED, PlayerState.ENDED].includes(msg.value);\n const eventType = EventMap[msg.value];\n if (eventType) this.dispatchEvent(new Event(eventType));\n break;\n }\n case \"onCurrentTime\":\n this.#currentTime = msg.value.currentTime;\n this.#duration = msg.value.duration;\n this.dispatchEvent(new Event(\"durationchange\"));\n this.dispatchEvent(new Event(\"timeupdate\"));\n break;\n case \"onVolumeChange\":\n this.#volume = msg.value;\n this.dispatchEvent(new Event(\"volumechange\"));\n break;\n case \"onMute\":\n this.#muted = msg.value ? true : false;\n this.#volume = msg.value ? 0 : this.#volume;\n this.dispatchEvent(new Event(\"volumechange\"));\n break;\n case \"onError\":\n this.dispatchEvent(new Event(\"error\"));\n break;\n default:\n console.warn(\"Unhandled TikTok player message:\", msg);\n break;\n }\n };\n #post(type, value) {\n var _a;\n if (!((_a = this.#iframe) == null ? void 0 : _a.contentWindow)) return;\n const message = { \"x-tiktok-player\": true, type, ...value !== void 0 ? { value } : {} };\n this.#iframe.contentWindow.postMessage(message, \"*\");\n }\n async play() {\n await this.loadComplete;\n this.#post(\"play\");\n }\n async pause() {\n await this.loadComplete;\n this.#post(\"pause\");\n }\n async #seekTo(sec) {\n await this.loadComplete;\n this.#post(\"seekTo\", Number(sec));\n }\n async #mute() {\n await this.loadComplete;\n this.#post(\"mute\");\n }\n async #unMute() {\n await this.loadComplete;\n this.#post(\"unMute\");\n }\n get volume() {\n return this.#volume / 100;\n }\n set volume(_val) {\n console.warn(\"Volume control is not supported for TikTok videos.\");\n }\n get currentTime() {\n return this.#currentTime;\n }\n set currentTime(val) {\n this.#seekTo(val);\n }\n get muted() {\n return this.#muted;\n }\n set muted(val) {\n this.#muted = val;\n val ? this.#mute() : this.#unMute();\n }\n get defaultMuted() {\n return this.hasAttribute(\"muted\");\n }\n set defaultMuted(val) {\n this.toggleAttribute(\"muted\", !!val);\n }\n get paused() {\n return this.#paused;\n }\n get duration() {\n return this.#duration;\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(val) {\n this.setAttribute(\"src\", val ?? \"\");\n }\n // This is a pattern to update property values that are set before\n // the custom element is upgraded.\n // https://web.dev/custom-elements-best-practices/#make-properties-lazy\n #upgradeProperty(prop) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n delete this[prop];\n this[prop] = value;\n }\n }\n}\nclass PublicPromise extends Promise {\n constructor(executor = () => {\n }) {\n let res, rej;\n super((resolve, reject) => {\n executor(resolve, reject);\n res = resolve;\n rej = reject;\n });\n this.resolve = res;\n this.reject = rej;\n }\n}\nfunction namedNodeMapToObject(namedNodeMap) {\n let obj = {};\n for (let attr of namedNodeMap) {\n obj[attr.name] = attr.value;\n }\n return obj;\n}\nfunction boolToBinary(props) {\n let p = {};\n for (let key in props) {\n let val = props[key];\n if (val === true || val === \"\") p[key] = 1;\n else if (val === false) p[key] = 0;\n else if (val != null) p[key] = val;\n }\n return p;\n}\nfunction serialize(props) {\n return String(new URLSearchParams(boolToBinary(props)));\n}\nfunction serializeAttributes(attrs) {\n let html = \"\";\n for (const key in attrs) {\n const value = attrs[key];\n if (value === \"\") html += ` ${escapeHtml(key)}`;\n else html += ` ${escapeHtml(key)}=\"${escapeHtml(`${value}`)}\"`;\n }\n return html;\n}\nfunction escapeHtml(str) {\n return str.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/`/g, \"`\");\n}\nif (globalThis.customElements && !globalThis.customElements.get(\"tiktok-video\")) {\n globalThis.customElements.define(\"tiktok-video\", TikTokVideoElement);\n}\nvar tiktok_video_element_default = TikTokVideoElement;\nexport {\n tiktok_video_element_default as default\n};\n","\"use client\";\n\n// dist/react.ts\nimport React from \"react\";\nimport CustomMediaElement from \"./tiktok-video-element.js\";\n\n// ../../node_modules/ce-la-react/dist/ce-la-react.js\nvar reservedReactProps = /* @__PURE__ */ new Set([\n \"style\",\n \"children\",\n \"ref\",\n \"key\",\n \"suppressContentEditableWarning\",\n \"suppressHydrationWarning\",\n \"dangerouslySetInnerHTML\"\n]);\nvar reactPropToAttrNameMap = {\n className: \"class\",\n htmlFor: \"for\"\n};\nfunction defaultToAttributeName(propName) {\n return propName.toLowerCase();\n}\nfunction defaultToAttributeValue(propValue) {\n if (typeof propValue === \"boolean\") return propValue ? \"\" : void 0;\n if (typeof propValue === \"function\") return void 0;\n if (typeof propValue === \"object\" && propValue !== null) return void 0;\n return propValue;\n}\nfunction createComponent({\n react: React2,\n tagName,\n elementClass,\n events,\n displayName,\n defaultProps,\n toAttributeName = defaultToAttributeName,\n toAttributeValue = defaultToAttributeValue\n}) {\n const IS_REACT_19_OR_NEWER = Number.parseInt(React2.version) >= 19;\n const ReactComponent = React2.forwardRef((props, ref) => {\n var _a, _b;\n const elementRef = React2.useRef(null);\n const prevElemPropsRef = React2.useRef(/* @__PURE__ */ new Map());\n const eventProps = {};\n const attrs = {};\n const reactProps = {};\n const elementProps = {};\n for (const [k, v] of Object.entries(props)) {\n if (reservedReactProps.has(k)) {\n reactProps[k] = v;\n continue;\n }\n const attrName = toAttributeName(reactPropToAttrNameMap[k] ?? k);\n if (elementClass.prototype && k in elementClass.prototype && !(k in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) && !((_b = elementClass.observedAttributes) == null ? void 0 : _b.some((attr) => attr === attrName))) {\n elementProps[k] = v;\n continue;\n }\n if (k.startsWith(\"on\")) {\n eventProps[k] = v;\n continue;\n }\n const attrValue = toAttributeValue(v);\n if (attrName && attrValue != null) {\n attrs[attrName] = String(attrValue);\n if (!IS_REACT_19_OR_NEWER) {\n reactProps[attrName] = attrValue;\n }\n }\n if (attrName && IS_REACT_19_OR_NEWER) {\n const attrValueFromDefault = defaultToAttributeValue(v);\n if (attrValue !== attrValueFromDefault) {\n reactProps[attrName] = attrValue;\n } else {\n reactProps[attrName] = v;\n }\n }\n }\n if (typeof window !== \"undefined\") {\n for (const propName in eventProps) {\n const callback = eventProps[propName];\n const useCapture = propName.endsWith(\"Capture\");\n const eventName = ((events == null ? void 0 : events[propName]) ?? propName.slice(2).toLowerCase()).slice(\n 0,\n useCapture ? -7 : void 0\n );\n React2.useLayoutEffect(() => {\n const eventTarget = elementRef == null ? void 0 : elementRef.current;\n if (!eventTarget || typeof callback !== \"function\") return;\n eventTarget.addEventListener(eventName, callback, useCapture);\n return () => {\n eventTarget.removeEventListener(eventName, callback, useCapture);\n };\n }, [elementRef == null ? void 0 : elementRef.current, callback]);\n }\n React2.useLayoutEffect(() => {\n if (elementRef.current === null) return;\n const newElemProps = /* @__PURE__ */ new Map();\n for (const key in elementProps) {\n setProperty(elementRef.current, key, elementProps[key]);\n prevElemPropsRef.current.delete(key);\n newElemProps.set(key, elementProps[key]);\n }\n for (const [key, _value] of prevElemPropsRef.current) {\n setProperty(elementRef.current, key, void 0);\n }\n prevElemPropsRef.current = newElemProps;\n });\n }\n if (typeof window === \"undefined\" && (elementClass == null ? void 0 : elementClass.getTemplateHTML) && (elementClass == null ? void 0 : elementClass.shadowRootOptions)) {\n const { mode, delegatesFocus } = elementClass.shadowRootOptions;\n const templateShadowRoot = React2.createElement(\"template\", {\n shadowrootmode: mode,\n shadowrootdelegatesfocus: delegatesFocus,\n dangerouslySetInnerHTML: {\n __html: elementClass.getTemplateHTML(attrs, props)\n },\n key: \"ce-la-react-ssr-template-shadow-root\"\n });\n reactProps.children = [templateShadowRoot, reactProps.children];\n }\n return React2.createElement(tagName, {\n ...defaultProps,\n ...reactProps,\n ref: React2.useCallback(\n (node) => {\n elementRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref !== null) {\n ref.current = node;\n }\n },\n [ref]\n )\n }, reactProps.children);\n });\n ReactComponent.displayName = displayName ?? elementClass.name;\n return ReactComponent;\n}\nfunction setProperty(node, name, value) {\n var _a;\n node[name] = value;\n if (value == null && name in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) {\n node.removeAttribute(name);\n }\n}\n\n// dist/react.ts\nvar react_default = createComponent({\n react: React,\n tagName: \"tiktok-video\",\n elementClass: CustomMediaElement,\n toAttributeName(propName) {\n if (propName === \"muted\") return \"\";\n if (propName === \"defaultMuted\") return \"muted\";\n return defaultToAttributeName(propName);\n }\n});\nexport {\n react_default as default\n};\n/*! Bundled license information:\n\nce-la-react/dist/ce-la-react.js:\n (**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n *\n * Modified version of `@lit/react` for vanilla custom elements with support for SSR.\n *)\n*/\n"],"names":["EMBED_BASE","MATCH_SRC","PlayerState","EventMap","getTemplateHTML","attrs","props","iframeAttrs","serializeIframeUrl","serializeAttributes","matches","srcId","params","serialize","_TikTokVideoElement","__privateAdd","_TikTokVideoElement_instances","__publicField","PublicPromise","_loadRequested","_hasLoaded","_muted","_currentTime","_paused","_config","_volume","_duration","_iframe","_onMessage","event","_a","__privateGet","msg","__privateSet","eventType","__privateMethod","upgradeProperty_fn","isFirstLoad","iframe","namedNodeMapToObject","attrName","oldValue","newValue","value","post_fn","_val","val","seekTo_fn","mute_fn","unMute_fn","type","message","sec","prop","TikTokVideoElement","executor","res","rej","resolve","reject","namedNodeMap","obj","attr","boolToBinary","p","key","html","escapeHtml","str","tiktok_video_element_default","reservedReactProps","reactPropToAttrNameMap","defaultToAttributeName","propName","defaultToAttributeValue","propValue","createComponent","React2","tagName","elementClass","events","displayName","defaultProps","toAttributeName","toAttributeValue","IS_REACT_19_OR_NEWER","ReactComponent","ref","_b","elementRef","prevElemPropsRef","eventProps","reactProps","elementProps","k","v","attrValue","attrValueFromDefault","callback","useCapture","eventName","eventTarget","newElemProps","setProperty","_value","mode","delegatesFocus","templateShadowRoot","node","name","react_default","React","CustomMediaElement"],"mappings":"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","x_google_ignoreList":[0,1]}
|