@barabel324/react-player 0.0.9 → 0.0.11

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.
@@ -1,6 +1,6 @@
1
1
  import { jsx as l } from "react/jsx-runtime";
2
2
  import { useRef as s, useImperativeHandle as p, useEffect as y } from "react";
3
- import { u as f } from "./index-Cnbw2ZkR.js";
3
+ import { u as f } from "./index-CbgYp99p.js";
4
4
  const m = (t) => {
5
5
  const n = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/, o = t.match(n);
6
6
  return o && o[7].length === 11 ? o[7] : "";
@@ -0,0 +1,179 @@
1
+ import { jsx as a, jsxs as d } from "react/jsx-runtime";
2
+ import { createContext as b, useContext as m, lazy as _, useReducer as g, useMemo as k, useRef as q } from "react";
3
+ function v() {
4
+ let e, r = "", t = 0;
5
+ for (; t < arguments.length; ) (e = arguments[t++]) && typeof e == "string" && (r && (r += " "), r += e);
6
+ return r;
7
+ }
8
+ const E = "_button_1xali_2", R = {
9
+ button: E
10
+ }, S = ({
11
+ className: e,
12
+ onClick: r
13
+ }) => /* @__PURE__ */ a(
14
+ "button",
15
+ {
16
+ className: v(
17
+ R.button,
18
+ e
19
+ ),
20
+ type: "button",
21
+ onClick: r
22
+ }
23
+ ), f = {
24
+ showButton: !1,
25
+ showPreview: !0,
26
+ canplay: !1
27
+ }, B = b(f), x = b(() => {
28
+ }), T = () => {
29
+ const e = m(B);
30
+ if (e === void 0)
31
+ throw new Error("usePlayerState нужно использовать внутри PlayerProvider");
32
+ return e;
33
+ }, C = () => {
34
+ const e = m(x);
35
+ if (e === void 0)
36
+ throw new Error("usePlayerDispatch нужно использовать внутри PlayerProvider");
37
+ return e;
38
+ }, c = {
39
+ show: "show",
40
+ hide: "hide",
41
+ showButton: "showButton",
42
+ hideButton: "hideButton",
43
+ canplay: "canplay"
44
+ }, $ = "_playerPreview_lqhcw_1", D = "_playerPreview__wrapper_lqhcw_7", V = "_playerPreview__wrapper_cursor_lqhcw_11", j = "_playerPreview__button_lqhcw_14", A = "_playerPreview__preview_lqhcw_21", L = "_playerPreview__player_lqhcw_30", o = {
45
+ playerPreview: $,
46
+ playerPreview__wrapper: D,
47
+ playerPreview__wrapper_cursor: V,
48
+ playerPreview__button: j,
49
+ playerPreview__preview: A,
50
+ playerPreview__player: L
51
+ }, O = ({
52
+ className: e,
53
+ preview: r,
54
+ onPlay: t,
55
+ children: u,
56
+ buttonComponent: n,
57
+ previewPictureComponent: l
58
+ }) => {
59
+ const { showButton: i, showPreview: p, canplay: P } = T(), y = C(), h = () => {
60
+ P && (y({
61
+ type: c.hide
62
+ }), t && t());
63
+ }, w = !!r || !!l;
64
+ return /* @__PURE__ */ d(
65
+ "div",
66
+ {
67
+ className: v(
68
+ o.playerPreview,
69
+ e
70
+ ),
71
+ children: [
72
+ (i || w && p) && /* @__PURE__ */ d(
73
+ "div",
74
+ {
75
+ className: v(
76
+ o.playerPreview__wrapper,
77
+ i && o.playerPreview__wrapper_cursor
78
+ ),
79
+ onClick: h,
80
+ children: [
81
+ i && (n ? /* @__PURE__ */ a(n.component, { className: o.playerPreview__button, ...n.props }) : /* @__PURE__ */ a(
82
+ S,
83
+ {
84
+ className: o.playerPreview__button
85
+ }
86
+ )),
87
+ w && p && (l ? /* @__PURE__ */ a(l.component, { className: o.playerPreview__preview, ...l.props }) : r && /* @__PURE__ */ a("img", { className: o.playerPreview__preview, src: r.src, alt: r.alt ?? "preview" }))
88
+ ]
89
+ }
90
+ ),
91
+ /* @__PURE__ */ a("div", { className: o.playerPreview__player, children: u })
92
+ ]
93
+ }
94
+ );
95
+ }, s = {
96
+ youtube: "youtube",
97
+ rutube: "rutube",
98
+ video: "video",
99
+ vk: "vk"
100
+ }, Y = {
101
+ [s.youtube]: _(async () => await import("./index-CLC2KZWC.js")),
102
+ [s.rutube]: _(async () => await import("./index-DKL3JxMY.js")),
103
+ [s.video]: _(async () => await import("./index-hAoMgMeI.js")),
104
+ [s.vk]: _(async () => await import("./index-DsPXrYFA.js"))
105
+ }, z = (e) => {
106
+ const r = /^(?:https?:\/\/)?(?:m\.|www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/, t = /^(?:https?:\/\/)?(?:rutu\.be\/|rutube\.ru(\/play\/))/, u = /^(?:https?:\/\/)?(?:www\.|m\.)?(?:vk\.com|vkvideo\.ru)\/.+$/;
107
+ return t.test(e) ? s.rutube : r.test(e) ? s.youtube : u.test(e) ? s.vk : s.video;
108
+ }, I = "_player_1afml_1", M = {
109
+ player: I
110
+ }, U = (e, r) => {
111
+ const { type: t } = r;
112
+ switch (t) {
113
+ case c.show:
114
+ return { ...e, showButton: !0, showPreview: !0 };
115
+ case c.hide:
116
+ return { ...e, showButton: !1, showPreview: !1 };
117
+ case c.showButton:
118
+ return { ...e, showButton: !0 };
119
+ case c.hideButton:
120
+ return { ...e, showButton: !1 };
121
+ case c.canplay:
122
+ return { ...e, canplay: !0, showButton: !0 };
123
+ default:
124
+ return e;
125
+ }
126
+ }, F = ({ children: e }) => {
127
+ const [r, t] = g(U, f);
128
+ return /* @__PURE__ */ a(B.Provider, { value: r, children: /* @__PURE__ */ a(x.Provider, { value: t, children: e }) });
129
+ }, G = ({
130
+ children: e,
131
+ hasPreview: r,
132
+ ...t
133
+ }) => r ? /* @__PURE__ */ a(
134
+ O,
135
+ {
136
+ ...t,
137
+ children: e
138
+ }
139
+ ) : e, H = ({
140
+ className: e,
141
+ url: r,
142
+ preview: t,
143
+ classNames: u,
144
+ components: n
145
+ }) => {
146
+ const l = u?.player, i = n?.button, p = n?.previewPicture, P = k(() => {
147
+ const N = z(r);
148
+ return Y[N];
149
+ }, [r]), y = q(null), h = () => {
150
+ y.current && y.current.play();
151
+ }, w = !!t || !!p;
152
+ return /* @__PURE__ */ a(
153
+ G,
154
+ {
155
+ hasPreview: w,
156
+ className: e,
157
+ preview: t,
158
+ onPlay: h,
159
+ buttonComponent: i,
160
+ previewPictureComponent: p,
161
+ children: /* @__PURE__ */ a(
162
+ P,
163
+ {
164
+ className: v(
165
+ l ?? M.player,
166
+ !w && e
167
+ ),
168
+ ref: y,
169
+ url: r
170
+ }
171
+ )
172
+ }
173
+ );
174
+ }, Q = (e) => /* @__PURE__ */ a(F, { children: /* @__PURE__ */ a(H, { ...e }) });
175
+ export {
176
+ c as P,
177
+ Q as a,
178
+ C as u
179
+ };
@@ -1,35 +1,35 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
- import { u as p } from "./index-Cnbw2ZkR.js";
2
+ import { u as p } from "./index-CbgYp99p.js";
3
3
  import { useRef as c, useImperativeHandle as f, useEffect as l } from "react";
4
4
  const w = ({
5
- className: a,
6
- ref: s,
7
- url: n
5
+ className: t,
6
+ ref: a,
7
+ url: s
8
8
  }) => {
9
- const e = c(null), r = p(), o = () => {
9
+ const e = c(null), n = p(), o = () => {
10
10
  e.current && e.current.contentWindow?.postMessage(JSON.stringify({
11
11
  type: "player:play",
12
12
  data: {}
13
13
  }), "*");
14
14
  };
15
- return f(s, () => ({
15
+ return f(a, () => ({
16
16
  play: o
17
17
  })), l(() => {
18
- const t = (u) => {
18
+ const r = (u) => {
19
19
  if (!e.current) return;
20
- JSON.parse(u.data).type === "player:ready" && r({ type: "canplay" });
20
+ JSON.parse(u.data).type === "player:ready" && n({ type: "canplay" });
21
21
  };
22
- return window.addEventListener("message", t), () => {
23
- window.removeEventListener("message", t);
22
+ return window.addEventListener("message", r), () => {
23
+ window.removeEventListener("message", r);
24
24
  };
25
- }, [r]), /* @__PURE__ */ i(
25
+ }, []), /* @__PURE__ */ i(
26
26
  "iframe",
27
27
  {
28
- className: a,
28
+ className: t,
29
29
  ref: e,
30
30
  width: "100%",
31
31
  height: "100%",
32
- src: n,
32
+ src: s,
33
33
  allowFullScreen: !0,
34
34
  frameBorder: "0"
35
35
  }
@@ -1,6 +1,6 @@
1
1
  import { jsx as d } from "react/jsx-runtime";
2
2
  import { useRef as a, useImperativeHandle as l, useEffect as u } from "react";
3
- import { u as p } from "./index-Cnbw2ZkR.js";
3
+ import { u as p } from "./index-CbgYp99p.js";
4
4
  const m = async () => new Promise((t, n) => {
5
5
  if (window.VK?.VideoPlayer) {
6
6
  t(window.VK);
@@ -54,7 +54,7 @@ const m = async () => new Promise((t, n) => {
54
54
  }), () => {
55
55
  e.current && e.current.destroy();
56
56
  };
57
- }, [c]), /* @__PURE__ */ d(
57
+ }, []), /* @__PURE__ */ d(
58
58
  "iframe",
59
59
  {
60
60
  className: t,
@@ -1,5 +1,5 @@
1
1
  import { jsx as y } from "react/jsx-runtime";
2
- import { u as d, P as t } from "./index-Cnbw2ZkR.js";
2
+ import { u as d, P as t } from "./index-CbgYp99p.js";
3
3
  import { useRef as i, useImperativeHandle as P } from "react";
4
4
  const v = ({
5
5
  className: n,
@@ -1 +1 @@
1
- ._button_1xali_2{--idmrp-button-play-size: 3.375rem;--idmrp-button-play-bg: #2D3C31;--idmrp-button-play-triangle-color: #E3DFD7;position:relative;width:var(--idmrp-button-play-size);min-width:var(--idmrp-button-play-size);height:var(--idmrp-button-play-size);background-color:var(--idmrp-button-play-bg);border-radius:50%}._button_1xali_2:before{content:"";position:absolute;top:50%;left:58%;border:.3125rem solid transparent;border-left:.5625rem solid var(--idmrp-button-play-triangle-color);transform:translate(-50%,-50%)}._playerPreview_so1s6_1{position:relative;width:100%;height:100%;object-fit:cover}._playerPreview__wrapper_so1s6_7{position:absolute;inset:0;cursor:pointer}._playerPreview__button_so1s6_12{z-index:2;position:absolute;top:50%;left:50%;transform:translate(-50%) translateY(-50%)}._playerPreview__preview_so1s6_19{z-index:1;position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}._playerPreview__player_so1s6_28{width:100%;height:100%}._player_1afml_1{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
1
+ ._button_1xali_2{--idmrp-button-play-size: 3.375rem;--idmrp-button-play-bg: #2D3C31;--idmrp-button-play-triangle-color: #E3DFD7;position:relative;width:var(--idmrp-button-play-size);min-width:var(--idmrp-button-play-size);height:var(--idmrp-button-play-size);background-color:var(--idmrp-button-play-bg);border-radius:50%}._button_1xali_2:before{content:"";position:absolute;top:50%;left:58%;border:.3125rem solid transparent;border-left:.5625rem solid var(--idmrp-button-play-triangle-color);transform:translate(-50%,-50%)}._playerPreview_lqhcw_1{position:relative;width:100%;height:100%;object-fit:cover}._playerPreview__wrapper_lqhcw_7{position:absolute;inset:0}._playerPreview__wrapper_cursor_lqhcw_11{cursor:pointer}._playerPreview__button_lqhcw_14{z-index:2;position:absolute;top:50%;left:50%;transform:translate(-50%) translateY(-50%)}._playerPreview__preview_lqhcw_21{z-index:1;position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}._playerPreview__player_lqhcw_30{width:100%;height:100%}._player_1afml_1{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
@@ -24,7 +24,7 @@ declare type TClassNames = {
24
24
  };
25
25
 
26
26
  declare type TComp = {
27
- component: FCClass;
27
+ component: any;
28
28
  props?: Record<string, any>;
29
29
  };
30
30
 
@@ -1,4 +1,4 @@
1
- import { a as e } from "./index-Cnbw2ZkR.js";
1
+ import { a as e } from "./index-CbgYp99p.js";
2
2
  export {
3
3
  e as Player
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barabel324/react-player",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "type": "module",
5
5
  "main": "./dist/react-player.js",
6
6
  "types": "./dist/react-player.d.ts",
@@ -1,175 +0,0 @@
1
- import { jsx as o, jsxs as d } from "react/jsx-runtime";
2
- import { createContext as b, useContext as f, useReducer as k, lazy as _, useMemo as N, useRef as E } from "react";
3
- function h() {
4
- let e, t = "", r = 0;
5
- for (; r < arguments.length; ) (e = arguments[r++]) && typeof e == "string" && (t && (t += " "), t += e);
6
- return t;
7
- }
8
- const u = {
9
- show: "show",
10
- hide: "hide",
11
- showButton: "showButton",
12
- hideButton: "hideButton",
13
- canplay: "canplay"
14
- }, m = {
15
- showButton: !1,
16
- showPreview: !0,
17
- canplay: !1
18
- }, R = (e, t) => {
19
- const { type: r } = t;
20
- switch (r) {
21
- case u.show:
22
- return { ...e, showButton: !0, showPreview: !0 };
23
- case u.hide:
24
- return { ...e, showButton: !1, showPreview: !1 };
25
- case u.showButton:
26
- return { ...e, showButton: !0 };
27
- case u.hideButton:
28
- return { ...e, showButton: !1 };
29
- case u.canplay:
30
- return { ...e, canplay: !0, showButton: !0 };
31
- default:
32
- return e;
33
- }
34
- }, B = b(m), x = b(() => {
35
- }), S = ({ children: e }) => {
36
- const [t, r] = k(R, m);
37
- return /* @__PURE__ */ o(B.Provider, { value: t, children: /* @__PURE__ */ o(x.Provider, { value: r, children: e }) });
38
- }, T = () => {
39
- const e = f(B);
40
- if (e === void 0)
41
- throw new Error("usePlayerState нужно использовать внутри PlayerProvider");
42
- return e;
43
- }, C = () => {
44
- const e = f(x);
45
- if (e === void 0)
46
- throw new Error("usePlayerDispatch нужно использовать внутри PlayerProvider");
47
- return e;
48
- }, $ = "_button_1xali_2", D = {
49
- button: $
50
- }, V = ({
51
- className: e,
52
- onClick: t
53
- }) => /* @__PURE__ */ o(
54
- "button",
55
- {
56
- className: h(
57
- D.button,
58
- e
59
- ),
60
- type: "button",
61
- onClick: t
62
- }
63
- ), j = "_playerPreview_so1s6_1", A = "_playerPreview__wrapper_so1s6_7", L = "_playerPreview__button_so1s6_12", O = "_playerPreview__preview_so1s6_19", Y = "_playerPreview__player_so1s6_28", y = {
64
- playerPreview: j,
65
- playerPreview__wrapper: A,
66
- playerPreview__button: L,
67
- playerPreview__preview: O,
68
- playerPreview__player: Y
69
- }, z = ({
70
- className: e,
71
- preview: t,
72
- onPlay: r,
73
- children: l,
74
- buttonComponent: a,
75
- previewPictureComponent: n
76
- }) => {
77
- const { showButton: p, showPreview: c, canplay: v } = T(), i = C(), P = () => {
78
- v && (i({
79
- type: u.hide
80
- }), r && r());
81
- }, w = !!t || !!n;
82
- return /* @__PURE__ */ d(
83
- "div",
84
- {
85
- className: h(
86
- y.playerPreview,
87
- e
88
- ),
89
- children: [
90
- (p || t && c) && /* @__PURE__ */ d(
91
- "div",
92
- {
93
- className: y.playerPreview__wrapper,
94
- onClick: P,
95
- children: [
96
- p && (a ? /* @__PURE__ */ o(a.component, { ...a.props }) : /* @__PURE__ */ o(
97
- V,
98
- {
99
- className: y.playerPreview__button
100
- }
101
- )),
102
- w && c && (n ? /* @__PURE__ */ o(n.component, { ...n.props }) : t && /* @__PURE__ */ o("img", { className: y.playerPreview__preview, src: t.src, alt: t.alt ?? "preview" }))
103
- ]
104
- }
105
- ),
106
- /* @__PURE__ */ o("div", { className: y.playerPreview__player, children: l })
107
- ]
108
- }
109
- );
110
- }, s = {
111
- youtube: "youtube",
112
- rutube: "rutube",
113
- video: "video",
114
- vk: "vk"
115
- }, I = {
116
- [s.youtube]: _(async () => await import("./index-deKi-pBj.js")),
117
- [s.rutube]: _(async () => await import("./index-Ce-Fa46G.js")),
118
- [s.video]: _(async () => await import("./index-Byq3YiGh.js")),
119
- [s.vk]: _(async () => await import("./index-C0CG6pEe.js"))
120
- }, M = (e) => {
121
- const t = /^(?:https?:\/\/)?(?:m\.|www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/, r = /^(?:https?:\/\/)?(?:rutu\.be\/|rutube\.ru(\/play\/))/, l = /^(?:https?:\/\/)?(?:www\.|m\.)?(?:vk\.com|vkvideo\.ru)\/.+$/;
122
- return r.test(e) ? s.rutube : t.test(e) ? s.youtube : l.test(e) ? s.vk : s.video;
123
- }, U = "_player_1afml_1", q = {
124
- player: U
125
- }, F = ({
126
- children: e,
127
- hasPreview: t,
128
- ...r
129
- }) => t ? /* @__PURE__ */ o(
130
- z,
131
- {
132
- ...r,
133
- children: e
134
- }
135
- ) : e, G = ({
136
- className: e,
137
- url: t,
138
- preview: r,
139
- classNames: l,
140
- components: a
141
- }) => {
142
- const n = l?.player, p = a?.button, c = a?.previewPicture, v = N(() => {
143
- const g = M(t);
144
- return I[g];
145
- }, [t]), i = E(null), P = () => {
146
- i.current && i.current.play();
147
- }, w = !!r || !!c;
148
- return /* @__PURE__ */ o(
149
- F,
150
- {
151
- hasPreview: w,
152
- className: e,
153
- preview: r,
154
- onPlay: P,
155
- buttonComponent: p,
156
- previewPictureComponent: c,
157
- children: /* @__PURE__ */ o(
158
- v,
159
- {
160
- className: h(
161
- n ?? q.player,
162
- !w && e
163
- ),
164
- ref: i,
165
- url: t
166
- }
167
- )
168
- }
169
- );
170
- }, K = (e) => /* @__PURE__ */ o(S, { children: /* @__PURE__ */ o(G, { ...e }) });
171
- export {
172
- u as P,
173
- K as a,
174
- C as u
175
- };