@layers-app/shared 0.4.8 → 0.4.9

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.
Files changed (128) hide show
  1. package/dist/components/AttachmentsGalleryModal/AttachmentsGalleryContext.d.ts +2 -0
  2. package/dist/components/AttachmentsGalleryModal/AttachmentsGalleryContext.d.ts.map +1 -1
  3. package/dist/components/AttachmentsGalleryModal/AttachmentsGalleryContext.js +22 -17
  4. package/dist/components/AttachmentsGalleryModal/components/AttachmentVideoPlayer.d.ts +15 -0
  5. package/dist/components/AttachmentsGalleryModal/components/AttachmentVideoPlayer.d.ts.map +1 -0
  6. package/dist/components/AttachmentsGalleryModal/components/AttachmentVideoPlayer.js +36 -0
  7. package/dist/components/AttachmentsGalleryModal/components/GallerySlide.js +22 -22
  8. package/dist/components/AttachmentsGalleryModal/components/LegacyAttachmentVideoPlayer.d.ts +14 -0
  9. package/dist/components/AttachmentsGalleryModal/components/LegacyAttachmentVideoPlayer.d.ts.map +1 -0
  10. package/dist/components/AttachmentsGalleryModal/components/LegacyAttachmentVideoPlayer.js +31 -0
  11. package/dist/components/AttachmentsGalleryModal/components/ModalHeader.d.ts.map +1 -1
  12. package/dist/components/AttachmentsGalleryModal/components/ModalHeader.js +179 -120
  13. package/dist/components/AttachmentsGalleryModal/components/StatusVideoPlayer.d.ts +18 -0
  14. package/dist/components/AttachmentsGalleryModal/components/StatusVideoPlayer.d.ts.map +1 -0
  15. package/dist/components/AttachmentsGalleryModal/components/StatusVideoPlayer.js +35 -0
  16. package/dist/components/AttachmentsGalleryModal/components/useAttachmentVideoStatus.d.ts +34 -0
  17. package/dist/components/AttachmentsGalleryModal/components/useAttachmentVideoStatus.d.ts.map +1 -0
  18. package/dist/components/AttachmentsGalleryModal/components/useAttachmentVideoStatus.js +71 -0
  19. package/dist/components/AttachmentsGalleryModal/styles.module.css.js +31 -27
  20. package/dist/components/CommentComposer/CommentComposer.module.css.js +13 -9
  21. package/dist/components/CommentComposer/index.d.ts +2 -1
  22. package/dist/components/CommentComposer/index.d.ts.map +1 -1
  23. package/dist/components/CommentComposer/index.js +343 -325
  24. package/dist/components/CommentComposer/types.d.ts +4 -0
  25. package/dist/components/CommentComposer/types.d.ts.map +1 -1
  26. package/dist/components/VideoPlayer/VideoPlayer.d.ts +24 -0
  27. package/dist/components/VideoPlayer/VideoPlayer.d.ts.map +1 -0
  28. package/dist/components/VideoPlayer/VideoPlayer.js +727 -0
  29. package/dist/components/VideoPlayer/components/MobileDrawer/index.d.ts +8 -0
  30. package/dist/components/VideoPlayer/components/MobileDrawer/index.d.ts.map +1 -0
  31. package/dist/components/VideoPlayer/components/MobileDrawer/index.js +67 -0
  32. package/dist/components/VideoPlayer/components/SelectListOptionButton.d.ts +7 -0
  33. package/dist/components/VideoPlayer/components/SelectListOptionButton.d.ts.map +1 -0
  34. package/dist/components/VideoPlayer/components/SelectListOptionButton.js +44 -0
  35. package/dist/components/VideoPlayer/components/StoryboardPreview.d.ts +9 -0
  36. package/dist/components/VideoPlayer/components/StoryboardPreview.d.ts.map +1 -0
  37. package/dist/components/VideoPlayer/components/StoryboardPreview.js +38 -0
  38. package/dist/components/VideoPlayer/components/VideoCustomControls.d.ts +33 -0
  39. package/dist/components/VideoPlayer/components/VideoCustomControls.d.ts.map +1 -0
  40. package/dist/components/VideoPlayer/components/VideoCustomControls.js +601 -0
  41. package/dist/components/VideoPlayer/components/VideoIcons.d.ts +25 -0
  42. package/dist/components/VideoPlayer/components/VideoIcons.d.ts.map +1 -0
  43. package/dist/components/VideoPlayer/components/VideoIcons.js +145 -0
  44. package/dist/components/VideoPlayer/components/VideoMenu.d.ts +27 -0
  45. package/dist/components/VideoPlayer/components/VideoMenu.d.ts.map +1 -0
  46. package/dist/components/VideoPlayer/components/VideoMenu.js +77 -0
  47. package/dist/components/VideoPlayer/components/VideoMobileSettingsDrawer.d.ts +17 -0
  48. package/dist/components/VideoPlayer/components/VideoMobileSettingsDrawer.d.ts.map +1 -0
  49. package/dist/components/VideoPlayer/components/VideoMobileSettingsDrawer.js +289 -0
  50. package/dist/components/VideoPlayer/components/VideoQualityMenu/index.d.ts +10 -0
  51. package/dist/components/VideoPlayer/components/VideoQualityMenu/index.d.ts.map +1 -0
  52. package/dist/components/VideoPlayer/components/VideoQualityMenu/index.js +55 -0
  53. package/dist/components/VideoPlayer/components/VideoSelect.d.ts +10 -0
  54. package/dist/components/VideoPlayer/components/VideoSelect.d.ts.map +1 -0
  55. package/dist/components/VideoPlayer/components/VideoSelect.js +168 -0
  56. package/dist/components/VideoPlayer/components/VideoSettingsMenu/index.d.ts +12 -0
  57. package/dist/components/VideoPlayer/components/VideoSettingsMenu/index.d.ts.map +1 -0
  58. package/dist/components/VideoPlayer/components/VideoSettingsMenu/index.js +48 -0
  59. package/dist/components/VideoPlayer/components/VideoSettingsModal/ChaptersSection.d.ts +25 -0
  60. package/dist/components/VideoPlayer/components/VideoSettingsModal/ChaptersSection.d.ts.map +1 -0
  61. package/dist/components/VideoPlayer/components/VideoSettingsModal/ChaptersSection.js +384 -0
  62. package/dist/components/VideoPlayer/components/VideoSettingsModal/CoverSection.d.ts +21 -0
  63. package/dist/components/VideoPlayer/components/VideoSettingsModal/CoverSection.d.ts.map +1 -0
  64. package/dist/components/VideoPlayer/components/VideoSettingsModal/CoverSection.js +264 -0
  65. package/dist/components/VideoPlayer/components/VideoSettingsModal/FooterActions.d.ts +10 -0
  66. package/dist/components/VideoPlayer/components/VideoSettingsModal/FooterActions.d.ts.map +1 -0
  67. package/dist/components/VideoPlayer/components/VideoSettingsModal/FooterActions.js +39 -0
  68. package/dist/components/VideoPlayer/components/VideoSettingsModal/ManualSubtitlesPanel.d.ts +14 -0
  69. package/dist/components/VideoPlayer/components/VideoSettingsModal/ManualSubtitlesPanel.d.ts.map +1 -0
  70. package/dist/components/VideoPlayer/components/VideoSettingsModal/ManualSubtitlesPanel.js +360 -0
  71. package/dist/components/VideoPlayer/components/VideoSettingsModal/SubtitleTrackRow.d.ts +16 -0
  72. package/dist/components/VideoPlayer/components/VideoSettingsModal/SubtitleTrackRow.d.ts.map +1 -0
  73. package/dist/components/VideoPlayer/components/VideoSettingsModal/SubtitlesSection.d.ts +14 -0
  74. package/dist/components/VideoPlayer/components/VideoSettingsModal/SubtitlesSection.d.ts.map +1 -0
  75. package/dist/components/VideoPlayer/components/VideoSettingsModal/context.d.ts +4 -0
  76. package/dist/components/VideoPlayer/components/VideoSettingsModal/context.d.ts.map +1 -0
  77. package/dist/components/VideoPlayer/components/VideoSettingsModal/context.js +14 -0
  78. package/dist/components/VideoPlayer/components/VideoSettingsModal/index.d.ts +22 -0
  79. package/dist/components/VideoPlayer/components/VideoSettingsModal/index.d.ts.map +1 -0
  80. package/dist/components/VideoPlayer/components/VideoSettingsModal/index.js +211 -0
  81. package/dist/components/VideoPlayer/components/VideoSpeedMenu/index.d.ts +11 -0
  82. package/dist/components/VideoPlayer/components/VideoSpeedMenu/index.d.ts.map +1 -0
  83. package/dist/components/VideoPlayer/components/VideoSpeedMenu/index.js +41 -0
  84. package/dist/components/VideoPlayer/components/VideoSubtitlesMenu/index.d.ts +10 -0
  85. package/dist/components/VideoPlayer/components/VideoSubtitlesMenu/index.d.ts.map +1 -0
  86. package/dist/components/VideoPlayer/components/VideoSubtitlesMenu/index.js +69 -0
  87. package/dist/components/VideoPlayer/hooks/useStoryboard.d.ts +21 -0
  88. package/dist/components/VideoPlayer/hooks/useStoryboard.d.ts.map +1 -0
  89. package/dist/components/VideoPlayer/hooks/useStoryboard.js +91 -0
  90. package/dist/components/VideoPlayer/index.d.ts +11 -0
  91. package/dist/components/VideoPlayer/index.d.ts.map +1 -0
  92. package/dist/components/VideoPlayer/types.d.ts +101 -0
  93. package/dist/components/VideoPlayer/types.d.ts.map +1 -0
  94. package/dist/components/VideoPlayer/utils/chapters.d.ts +8 -0
  95. package/dist/components/VideoPlayer/utils/chapters.d.ts.map +1 -0
  96. package/dist/components/VideoPlayer/utils/chapters.js +38 -0
  97. package/dist/components/VideoPlayer/utils/storyboard.d.ts +5 -0
  98. package/dist/components/VideoPlayer/utils/storyboard.d.ts.map +1 -0
  99. package/dist/components/VideoPlayer/utils/storyboard.js +47 -0
  100. package/dist/components/VideoPlayer/utils/subtitles.d.ts +18 -0
  101. package/dist/components/VideoPlayer/utils/subtitles.d.ts.map +1 -0
  102. package/dist/components/VideoPlayer/utils/subtitles.js +23 -0
  103. package/dist/components/VideoPlayer/utils/touch.d.ts +3 -0
  104. package/dist/components/VideoPlayer/utils/touch.d.ts.map +1 -0
  105. package/dist/components/VideoPlayer/utils/touch.js +5 -0
  106. package/dist/components/VideoPlayer/utils/videoPlayerUtils.d.ts +10 -0
  107. package/dist/components/VideoPlayer/utils/videoPlayerUtils.d.ts.map +1 -0
  108. package/dist/components/VideoPlayer/utils/videoPlayerUtils.js +22 -0
  109. package/dist/components/VideoPlayer/utils/videoSettings.d.ts +69 -0
  110. package/dist/components/VideoPlayer/utils/videoSettings.d.ts.map +1 -0
  111. package/dist/components/VideoPlayer/utils/videoSettings.js +90 -0
  112. package/dist/helpers/getFileType.d.ts +1 -1
  113. package/dist/helpers/getFileType.d.ts.map +1 -1
  114. package/dist/helpers/getFileType.js +3 -2
  115. package/dist/hooks/useDateUtils.d.ts +3 -1
  116. package/dist/hooks/useDateUtils.d.ts.map +1 -1
  117. package/dist/hooks/useDateUtils.js +23 -18
  118. package/dist/index.css +1 -1
  119. package/dist/index.d.ts +2 -0
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +585 -567
  122. package/dist/lang/locales/ui_en.json.js +9 -7
  123. package/dist/lang/locales/ui_es.json.js +6 -4
  124. package/dist/lang/locales/ui_ru.json.js +8 -6
  125. package/dist/videoSettings/createVideoSettingsDataSource.d.ts +19 -0
  126. package/dist/videoSettings/createVideoSettingsDataSource.d.ts.map +1 -0
  127. package/dist/videoSettings/createVideoSettingsDataSource.js +127 -0
  128. package/package.json +2 -1
@@ -14,6 +14,8 @@ interface AttachmentsGalleryContextValue {
14
14
  setZoomPercentage: (value: number) => void;
15
15
  transformRefs: React.MutableRefObject<ReactZoomPanPinchContentRef[]>;
16
16
  prevIndexRef: React.MutableRefObject<number>;
17
+ videoRefreshKey: number;
18
+ refreshVideo: () => void;
17
19
  }
18
20
  export declare const useAttachmentsGalleryContext: () => AttachmentsGalleryContextValue;
19
21
  interface AttachmentsGalleryProviderProps {
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentsGalleryContext.d.ts","sourceRoot":"","sources":["../../../src/components/AttachmentsGalleryModal/AttachmentsGalleryContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,UAAU,8BAA8B;IACtC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACrE,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;CAC9C;AAKD,eAAO,MAAM,4BAA4B,sCAQxC,CAAC;AAEF,UAAU,+BAA+B;IACvC,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,0BAA0B,GAAI,6BAGxC,+BAA+B,4CA6BjC,CAAC"}
1
+ {"version":3,"file":"AttachmentsGalleryContext.d.ts","sourceRoot":"","sources":["../../../src/components/AttachmentsGalleryModal/AttachmentsGalleryContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,UAAU,8BAA8B;IACtC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACrE,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAKD,eAAO,MAAM,4BAA4B,sCAQxC,CAAC;AAEF,UAAU,+BAA+B;IACvC,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,0BAA0B,GAAI,6BAGxC,+BAA+B,4CAoCjC,CAAC"}
@@ -1,39 +1,44 @@
1
- import { jsx as C } from "react/jsx-runtime";
2
- import { useState as e, useRef as n, createContext as P, useContext as S } from "react";
3
- const o = P(null), G = () => {
4
- const t = S(o);
1
+ import { jsx as A } from "react/jsx-runtime";
2
+ import { useState as e, useRef as o, useCallback as G, createContext as R, useContext as b } from "react";
3
+ const s = R(null), I = () => {
4
+ const t = b(s);
5
5
  if (!t)
6
6
  throw new Error(
7
7
  "useAttachmentsGalleryContext must be used within AttachmentsGalleryProvider"
8
8
  );
9
9
  return t;
10
- }, p = ({
10
+ }, g = ({
11
11
  children: t,
12
- initialIndex: r
12
+ initialIndex: n
13
13
  }) => {
14
- const [s, l] = e(null), [c, a] = e(!1), [m, x] = e(!1), [u, d] = e(r ?? 0), [f, i] = e(100), h = n([]), v = n(0);
15
- return /* @__PURE__ */ C(
16
- o.Provider,
14
+ const [r, c] = e(null), [l, a] = e(!1), [m, u] = e(!1), [x, d] = e(n ?? 0), [f, i] = e(100), h = o([]), v = o(0), [C, y] = e(0), P = G(
15
+ () => y((S) => S + 1),
16
+ []
17
+ );
18
+ return /* @__PURE__ */ A(
19
+ s.Provider,
17
20
  {
18
21
  value: {
19
- embla: s,
20
- setEmbla: l,
21
- canScrollPrev: c,
22
+ embla: r,
23
+ setEmbla: c,
24
+ canScrollPrev: l,
22
25
  setCanScrollPrev: a,
23
26
  canScrollNext: m,
24
- setCanScrollNext: x,
25
- selectedIndex: u,
27
+ setCanScrollNext: u,
28
+ selectedIndex: x,
26
29
  setSelectedIndex: d,
27
30
  zoomPercentage: f,
28
31
  setZoomPercentage: i,
29
32
  transformRefs: h,
30
- prevIndexRef: v
33
+ prevIndexRef: v,
34
+ videoRefreshKey: C,
35
+ refreshVideo: P
31
36
  },
32
37
  children: t
33
38
  }
34
39
  );
35
40
  };
36
41
  export {
37
- p as AttachmentsGalleryProvider,
38
- G as useAttachmentsGalleryContext
42
+ g as AttachmentsGalleryProvider,
43
+ I as useAttachmentsGalleryContext
39
44
  };
@@ -0,0 +1,15 @@
1
+ type Props = {
2
+ attachmentId: string;
3
+ isActive?: boolean;
4
+ autoPlay?: boolean;
5
+ };
6
+ /**
7
+ * Chooses how to play a video attachment based on its status:
8
+ * - pipeline videos (status 200) → {@link StatusVideoPlayer}: playback URLs +
9
+ * subtitles/chapters/storyboard come from `/status`, no `/vod` polling.
10
+ * - legacy attachments (status 404) → {@link LegacyAttachmentVideoPlayer}: the
11
+ * existing `/vod` resolution flow.
12
+ */
13
+ export declare const AttachmentVideoPlayer: ({ attachmentId, isActive, autoPlay, }: Props) => import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=AttachmentVideoPlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentVideoPlayer.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentsGalleryModal/components/AttachmentVideoPlayer.tsx"],"names":[],"mappings":"AAQA,KAAK,KAAK,GAAG;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,uCAInC,KAAK,4CAiCP,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { useAttachmentsGalleryContext as a } from "../AttachmentsGalleryContext.js";
3
+ import { BaseLoader as l } from "../../Loaders/BaseLoader.js";
4
+ import { LegacyAttachmentVideoPlayer as f } from "./LegacyAttachmentVideoPlayer.js";
5
+ import { StatusVideoPlayer as n } from "./StatusVideoPlayer.js";
6
+ import { useAttachmentVideoStatus as d } from "./useAttachmentVideoStatus.js";
7
+ import p from "../styles.module.css.js";
8
+ const P = ({
9
+ attachmentId: r,
10
+ isActive: t,
11
+ autoPlay: o
12
+ }) => {
13
+ const { videoRefreshKey: i } = a(), { status: m, loaded: s } = d(
14
+ r,
15
+ i
16
+ );
17
+ return s ? m ? /* @__PURE__ */ e(
18
+ n,
19
+ {
20
+ attachmentId: r,
21
+ status: m,
22
+ isActive: t,
23
+ autoPlay: o
24
+ }
25
+ ) : /* @__PURE__ */ e(
26
+ f,
27
+ {
28
+ attachmentId: r,
29
+ isActive: t,
30
+ autoPlay: o
31
+ }
32
+ ) : /* @__PURE__ */ e("div", { className: p.videoPlayerFill, children: /* @__PURE__ */ e(l, {}) });
33
+ };
34
+ export {
35
+ P as AttachmentVideoPlayer
36
+ };
@@ -3,30 +3,30 @@ import { memo as P } from "react";
3
3
  import { TransformWrapper as F, TransformComponent as T } from "react-zoom-pan-pinch";
4
4
  import { Box as a } from "@mantine/core";
5
5
  import { BaseLoader as U } from "../../Loaders/BaseLoader.js";
6
- import { ShakaVideoPlayer as E } from "./ShakePlayer/ShakaPlayer.js";
7
- import { TRANSFORM_COMPONENT_STYLES as p, ZOOM_CONFIG as s } from "../constants.js";
6
+ import { AttachmentVideoPlayer as E } from "./AttachmentVideoPlayer.js";
7
+ import { TRANSFORM_COMPONENT_STYLES as d, ZOOM_CONFIG as s } from "../constants.js";
8
8
  import { useGetPreviewUrl as O } from "../hooks/useGetPreviewUrl.js";
9
9
  import { usePanning as b } from "../hooks/usePanning.js";
10
10
  import { ErrorSection as t } from "./ErrorSection.js";
11
11
  import { UnsupportedSection as x } from "./UnsupportedSection.js";
12
12
  import i from "../styles.module.css.js";
13
- const h = P(
14
- ({ onTransformed: S, attachment: e, isActive: n, ref: N }) => {
13
+ const Z = P(
14
+ ({ onTransformed: N, attachment: e, isActive: p, ref: S }) => {
15
15
  const {
16
- isError: m,
16
+ isError: n,
17
17
  setIsError: g,
18
18
  fileUrl: o,
19
19
  isFetching: l,
20
- isVideo: f,
21
- isPdf: c,
20
+ isVideo: c,
21
+ isPdf: f,
22
22
  isAudio: u,
23
- isSupported: d
24
- } = O(e), y = b({ isFetching: l, isVideo: f });
25
- return f && !l && d ? /* @__PURE__ */ r("div", { style: p, children: /* @__PURE__ */ r(a, { className: i.videoContainer, children: /* @__PURE__ */ r(
23
+ isSupported: m
24
+ } = O(e), y = b({ isFetching: l, isVideo: c });
25
+ return c && !l && m ? /* @__PURE__ */ r("div", { style: d, children: /* @__PURE__ */ r(a, { className: i.videoContainer, children: /* @__PURE__ */ r(
26
26
  E,
27
27
  {
28
- isActive: n,
29
- autoPlay: n,
28
+ isActive: p,
29
+ autoPlay: !1,
30
30
  attachmentId: e.id
31
31
  }
32
32
  ) }) }) : /* @__PURE__ */ r(
@@ -35,15 +35,15 @@ const h = P(
35
35
  panning: {
36
36
  disabled: !0
37
37
  },
38
- onTransformed: S,
38
+ onTransformed: N,
39
39
  initialScale: s.initialScale,
40
40
  minScale: s.minScale,
41
41
  maxScale: s.maxScale,
42
42
  limitToBounds: !0,
43
- disabled: l || c || u || !d,
43
+ disabled: l || f || u || !m,
44
44
  disablePadding: !0,
45
45
  centerZoomedOut: !0,
46
- ref: N,
46
+ ref: S,
47
47
  wheel: {
48
48
  disabled: !1,
49
49
  step: s.wheelStep
@@ -54,28 +54,28 @@ const h = P(
54
54
  children: /* @__PURE__ */ r(
55
55
  T,
56
56
  {
57
- wrapperStyle: p,
58
- contentStyle: p,
57
+ wrapperStyle: d,
58
+ contentStyle: d,
59
59
  wrapperProps: y,
60
- children: d ? l ? /* @__PURE__ */ r(U, {}) : c ? m || !(e?.Url || o) ? /* @__PURE__ */ r(t, {}) : /* @__PURE__ */ r(a, { className: i.pdfContainer, children: /* @__PURE__ */ r(
60
+ children: m ? l ? /* @__PURE__ */ r(U, {}) : f ? n || !(e?.Url || o) ? /* @__PURE__ */ r(t, {}) : /* @__PURE__ */ r(a, { className: i.pdfContainer, children: /* @__PURE__ */ r(
61
61
  "iframe",
62
62
  {
63
63
  title: e.originalFileName || "pdf",
64
64
  src: e?.Url ?? o ?? "",
65
65
  className: i.pdfFrame
66
66
  }
67
- ) }) : u ? m || !(e?.Url || o) ? /* @__PURE__ */ r(t, {}) : /* @__PURE__ */ C(a, { className: i.audioContainer, children: [
67
+ ) }) : u ? n || !(e?.Url || o) ? /* @__PURE__ */ r(t, {}) : /* @__PURE__ */ C(a, { className: i.audioContainer, children: [
68
68
  /* @__PURE__ */ r(a, { className: i.audioName, children: e.originalFileName || "audio" }),
69
69
  /* @__PURE__ */ r(
70
70
  "audio",
71
71
  {
72
72
  src: e?.Url ?? o ?? "",
73
73
  controls: !0,
74
- autoPlay: n,
74
+ autoPlay: p,
75
75
  className: i.audioElement
76
76
  }
77
77
  )
78
- ] }) : m ? /* @__PURE__ */ r(t, {}) : /* @__PURE__ */ r(
78
+ ] }) : n ? /* @__PURE__ */ r(t, {}) : /* @__PURE__ */ r(
79
79
  "img",
80
80
  {
81
81
  onError: () => g(!0),
@@ -97,5 +97,5 @@ const h = P(
97
97
  }
98
98
  );
99
99
  export {
100
- h as GallerySlide
100
+ Z as GallerySlide
101
101
  };
@@ -0,0 +1,14 @@
1
+ type Props = {
2
+ attachmentId: string;
3
+ isActive?: boolean;
4
+ autoPlay?: boolean;
5
+ };
6
+ /**
7
+ * Player for legacy attachments that never went through the video pipeline (no
8
+ * VideoAsset, `/status` 404). Stream resolution stays on the existing `/vod`
9
+ * flow via `useShakePlayer` (HLS when ready, raw fallback). No subtitles/chapters
10
+ * exist for these, so none are passed.
11
+ */
12
+ export declare const LegacyAttachmentVideoPlayer: ({ attachmentId, isActive, autoPlay, }: Props) => import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=LegacyAttachmentVideoPlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegacyAttachmentVideoPlayer.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentsGalleryModal/components/LegacyAttachmentVideoPlayer.tsx"],"names":[],"mappings":"AAMA,KAAK,KAAK,GAAG;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GAAI,uCAIzC,KAAK,4CAwBP,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { ErrorSection as m } from "./ErrorSection.js";
3
+ import { useShakePlayer as n } from "./ShakePlayer/useShakePlayer.js";
4
+ import c from "../styles.module.css.js";
5
+ import { VideoPlayer as d } from "../../VideoPlayer/VideoPlayer.js";
6
+ const u = ({
7
+ attachmentId: o,
8
+ isActive: t,
9
+ autoPlay: l
10
+ }) => {
11
+ const { containerRef: s, vodUrl: r, rawUrl: i, isError: a } = n({
12
+ attachmentId: o,
13
+ isActive: t,
14
+ autoPlay: l
15
+ });
16
+ return a ? /* @__PURE__ */ e(m, {}) : /* @__PURE__ */ e("div", { ref: s, className: c.videoPlayerFill, children: /* @__PURE__ */ e(
17
+ d,
18
+ {
19
+ videoId: o,
20
+ source: {
21
+ streamUrl: r,
22
+ nativeUrl: i,
23
+ optimizedReady: !!r,
24
+ isProcessing: !r && !i
25
+ }
26
+ }
27
+ ) });
28
+ };
29
+ export {
30
+ u as LegacyAttachmentVideoPlayer
31
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"ModalHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentsGalleryModal/components/ModalHeader.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQrD,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,iEACK,gBAAgB,6CA2I5C,CAAC"}
1
+ {"version":3,"file":"ModalHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentsGalleryModal/components/ModalHeader.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWrD,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,iEACK,gBAAgB,6CAiN5C,CAAC"}
@@ -1,132 +1,191 @@
1
- import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
- import { memo as v, useRef as I } from "react";
3
- import { useTranslation as F } from "react-i18next";
4
- import { Box as C, Tooltip as t, ActionIcon as i, Flex as s, Text as u } from "@mantine/core";
5
- import { IconDownload as f, IconMinus as N, IconPlus as R, IconX as k } from "@tabler/icons-react";
6
- import { getFileIcons as T } from "../../../helpers/getFileIcons.js";
7
- import { getFileType as Z } from "../../../helpers/getFileType.js";
8
- import { useAttachmentsGalleryContext as j } from "../AttachmentsGalleryContext.js";
9
- import { getAttachmentFormat as D, zoomStep as p } from "../helpers.js";
10
- import { useDownloadFile as M } from "../hooks/useDownloadFile.js";
11
- import { useZoomReset as O } from "../hooks/useZoomReset.js";
12
- import n from "../styles.module.css.js";
13
- const U = v(
14
- ({ onClose: w, attachments: z }) => {
15
- O();
16
- const { t: r } = F("ui"), c = I(null), { zoomPercentage: y, transformRefs: m, selectedIndex: a } = j(), o = z?.[a], b = () => {
17
- p({
18
- animationRef: c,
1
+ import { jsxs as r, Fragment as P, jsx as e } from "react/jsx-runtime";
2
+ import { memo as V, useRef as O, useState as Z, useMemo as j } from "react";
3
+ import { useTranslation as x } from "react-i18next";
4
+ import { Box as B, Tooltip as a, ActionIcon as n, Flex as m, Text as h, Loader as E } from "@mantine/core";
5
+ import { IconDownload as A, IconMinus as U, IconPlus as G, IconSettings as H, IconX as K } from "@tabler/icons-react";
6
+ import { getEnvConfig as L } from "../../../config/envConfig.js";
7
+ import { getFileIcons as X } from "../../../helpers/getFileIcons.js";
8
+ import { getFileType as q } from "../../../helpers/getFileType.js";
9
+ import { createVideoSettingsDataSource as J } from "../../../videoSettings/createVideoSettingsDataSource.js";
10
+ import { useAttachmentsGalleryContext as Q } from "../AttachmentsGalleryContext.js";
11
+ import { getAttachmentFormat as W, zoomStep as S } from "../helpers.js";
12
+ import { useDownloadFile as Y } from "../hooks/useDownloadFile.js";
13
+ import { useZoomReset as _ } from "../hooks/useZoomReset.js";
14
+ import { useAttachmentVideoStatus as $ } from "./useAttachmentVideoStatus.js";
15
+ import i from "../styles.module.css.js";
16
+ import { VideoSettingsModal as ee } from "../../VideoPlayer/components/VideoSettingsModal/index.js";
17
+ const be = V(
18
+ ({ onClose: C, attachments: I }) => {
19
+ _();
20
+ const { t: l } = x("ui"), { t: u } = x(), p = O(null), {
21
+ zoomPercentage: D,
22
+ transformRefs: f,
23
+ selectedIndex: g,
24
+ videoRefreshKey: F,
25
+ refreshVideo: c
26
+ } = Q(), t = I?.[g], b = t ? W(t) : null, { status: o } = $(
27
+ b?.isVideo ? t?.id : void 0,
28
+ F
29
+ ), s = o?.videoId ?? null, [N, v] = Z(!1), d = j(
30
+ () => s ? J(s, {
31
+ baseUrl: L().apiBaseUrl
32
+ }) : null,
33
+ [s]
34
+ ), R = () => {
35
+ S({
36
+ animationRef: p,
19
37
  dir: "in",
20
- activeRef: m.current[a]
38
+ activeRef: f.current[g]
21
39
  });
22
- }, x = () => {
23
- p({
24
- animationRef: c,
40
+ }, k = () => {
41
+ S({
42
+ animationRef: p,
25
43
  dir: "out",
26
- activeRef: m.current[a]
44
+ activeRef: f.current[g]
27
45
  });
28
- }, { isFetching: d, onDownload: g, isMobile: h } = M(o), A = o ? D(o).isImage : !1;
29
- return /* @__PURE__ */ l(
30
- C,
31
- {
32
- style: {
33
- borderRadius: 8,
34
- display: "grid",
35
- gridTemplateColumns: "1fr auto 1fr",
36
- alignItems: "center",
37
- flex: "none",
38
- gap: 12
39
- },
40
- px: 8,
41
- py: 8,
42
- bg: "var(--mantine-color-dark-6)",
43
- children: [
44
- h ? /* @__PURE__ */ e(t, { withArrow: !0, label: r("gallery.download"), children: /* @__PURE__ */ e(
45
- i,
46
- {
47
- className: n.headerAction,
48
- size: "lg",
49
- variant: "subtle",
50
- loading: d,
51
- onClick: g,
52
- children: /* @__PURE__ */ e(f, { size: 20 })
53
- }
54
- ) }) : /* @__PURE__ */ l(s, { align: "center", gap: 8, ml: 6, miw: 0, children: [
55
- o ? T(
56
- Z(
57
- o.contentType ?? "",
58
- !1,
59
- o.originalFileName
60
- ),
61
- !1,
62
- 20
63
- ) : null,
64
- /* @__PURE__ */ e(u, { fw: 500, fz: 14, c: "var(--app-gallary-text)", truncate: !0, children: o?.originalFileName || "" })
65
- ] }),
66
- A ? /* @__PURE__ */ l(s, { gap: "xs", children: [
67
- /* @__PURE__ */ e(t, { withArrow: !0, label: r("gallery.zoomOut"), children: /* @__PURE__ */ e(
68
- i,
69
- {
70
- className: n.headerAction,
71
- size: "lg",
72
- variant: "subtle",
73
- onClick: x,
74
- children: /* @__PURE__ */ e(N, { size: 20 })
75
- }
76
- ) }),
77
- /* @__PURE__ */ l(
78
- u,
79
- {
80
- fw: 500,
81
- fz: 14,
82
- c: "var(--app-gallary-text)",
83
- miw: 50,
84
- ta: "center",
85
- children: [
86
- y,
87
- "%"
88
- ]
89
- }
90
- ),
91
- /* @__PURE__ */ e(t, { withArrow: !0, label: r("gallery.zoomIn"), children: /* @__PURE__ */ e(
92
- i,
46
+ }, { isFetching: w, onDownload: z, isMobile: y } = Y(t), T = b?.isImage ?? !1;
47
+ return /* @__PURE__ */ r(P, { children: [
48
+ /* @__PURE__ */ r(
49
+ B,
50
+ {
51
+ style: {
52
+ borderRadius: 8,
53
+ display: "grid",
54
+ gridTemplateColumns: "1fr auto 1fr",
55
+ alignItems: "center",
56
+ flex: "none",
57
+ gap: 12
58
+ },
59
+ px: 8,
60
+ py: 8,
61
+ bg: "var(--mantine-color-dark-6)",
62
+ children: [
63
+ y ? /* @__PURE__ */ e(a, { withArrow: !0, label: l("gallery.download"), children: /* @__PURE__ */ e(
64
+ n,
93
65
  {
94
- className: n.headerAction,
66
+ className: i.headerAction,
95
67
  size: "lg",
96
68
  variant: "subtle",
97
- onClick: b,
98
- children: /* @__PURE__ */ e(R, { size: 20 })
69
+ loading: w,
70
+ onClick: z,
71
+ children: /* @__PURE__ */ e(A, { size: 20 })
99
72
  }
100
- ) })
101
- ] }) : /* @__PURE__ */ e("div", {}),
102
- /* @__PURE__ */ l(s, { justify: "end", gap: "xs", children: [
103
- !h && /* @__PURE__ */ e(t, { withArrow: !0, label: r("gallery.download"), children: /* @__PURE__ */ e(
104
- i,
105
- {
106
- className: n.headerAction,
107
- size: "lg",
108
- variant: "subtle",
109
- loading: d,
110
- onClick: g,
111
- children: /* @__PURE__ */ e(f, { size: 20 })
112
- }
113
- ) }),
114
- /* @__PURE__ */ e(t, { withArrow: !0, label: r("gallery.close"), children: /* @__PURE__ */ e(
115
- i,
116
- {
117
- className: n.headerAction,
118
- size: "lg",
119
- variant: "subtle",
120
- onClick: w,
121
- children: /* @__PURE__ */ e(k, { size: 20 })
122
- }
123
- ) })
124
- ] })
125
- ]
126
- }
127
- );
73
+ ) }) : /* @__PURE__ */ r(m, { align: "center", gap: 8, ml: 6, miw: 0, children: [
74
+ t ? X(
75
+ q(
76
+ t.contentType ?? "",
77
+ !1,
78
+ t.originalFileName
79
+ ),
80
+ !1,
81
+ 20
82
+ ) : null,
83
+ /* @__PURE__ */ e(h, { fw: 500, fz: 14, c: "var(--app-gallary-text)", truncate: !0, children: t?.originalFileName || "" })
84
+ ] }),
85
+ T ? /* @__PURE__ */ r(m, { gap: "xs", children: [
86
+ /* @__PURE__ */ e(a, { withArrow: !0, label: l("gallery.zoomOut"), children: /* @__PURE__ */ e(
87
+ n,
88
+ {
89
+ className: i.headerAction,
90
+ size: "lg",
91
+ variant: "subtle",
92
+ onClick: k,
93
+ children: /* @__PURE__ */ e(U, { size: 20 })
94
+ }
95
+ ) }),
96
+ /* @__PURE__ */ r(
97
+ h,
98
+ {
99
+ fw: 500,
100
+ fz: 14,
101
+ c: "var(--app-gallary-text)",
102
+ miw: 50,
103
+ ta: "center",
104
+ children: [
105
+ D,
106
+ "%"
107
+ ]
108
+ }
109
+ ),
110
+ /* @__PURE__ */ e(a, { withArrow: !0, label: l("gallery.zoomIn"), children: /* @__PURE__ */ e(
111
+ n,
112
+ {
113
+ className: i.headerAction,
114
+ size: "lg",
115
+ variant: "subtle",
116
+ onClick: R,
117
+ children: /* @__PURE__ */ e(G, { size: 20 })
118
+ }
119
+ ) })
120
+ ] }) : o?.isProcessing ? /* @__PURE__ */ r(m, { align: "center", gap: 8, miw: 0, children: [
121
+ /* @__PURE__ */ e(E, { size: "xs", color: "var(--app-gallary-text)" }),
122
+ /* @__PURE__ */ e(h, { className: i.processingText, fw: 500, fz: 14, children: u("editor.video.upload.processingShort", {
123
+ percent: Math.round(o.processingPercent ?? 0)
124
+ }) })
125
+ ] }) : /* @__PURE__ */ e("div", {}),
126
+ /* @__PURE__ */ r(m, { justify: "end", gap: "xs", children: [
127
+ d && !o?.isProcessing && !o?.autogenDisabled && /* @__PURE__ */ e(
128
+ a,
129
+ {
130
+ withArrow: !0,
131
+ label: u("editor.video.player.settings"),
132
+ children: /* @__PURE__ */ e(
133
+ n,
134
+ {
135
+ className: i.headerAction,
136
+ size: "lg",
137
+ variant: "subtle",
138
+ onClick: () => v(!0),
139
+ children: /* @__PURE__ */ e(H, { size: 20 })
140
+ }
141
+ )
142
+ }
143
+ ),
144
+ !y && /* @__PURE__ */ e(a, { withArrow: !0, label: l("gallery.download"), children: /* @__PURE__ */ e(
145
+ n,
146
+ {
147
+ className: i.headerAction,
148
+ size: "lg",
149
+ variant: "subtle",
150
+ loading: w,
151
+ onClick: z,
152
+ children: /* @__PURE__ */ e(A, { size: 20 })
153
+ }
154
+ ) }),
155
+ /* @__PURE__ */ e(a, { withArrow: !0, label: l("gallery.close"), children: /* @__PURE__ */ e(
156
+ n,
157
+ {
158
+ className: i.headerAction,
159
+ size: "lg",
160
+ variant: "subtle",
161
+ onClick: C,
162
+ children: /* @__PURE__ */ e(K, { size: 20 })
163
+ }
164
+ ) })
165
+ ] })
166
+ ]
167
+ }
168
+ ),
169
+ d && s && !o?.autogenDisabled && /* @__PURE__ */ e(
170
+ ee,
171
+ {
172
+ opened: N,
173
+ onClose: () => v(!1),
174
+ dataSource: d,
175
+ videoId: s,
176
+ chaptersDisabled: o?.chaptersDisabled,
177
+ onChaptersSaved: c,
178
+ onSubtitlesSaved: c,
179
+ onPosterChange: c,
180
+ onChaptersDisabledChange: (M) => {
181
+ d.setChaptersDisabled(M).then(c).catch(() => {
182
+ });
183
+ }
184
+ }
185
+ )
186
+ ] });
128
187
  }
129
188
  );
130
189
  export {
131
- U as ModalHeader
190
+ be as ModalHeader
132
191
  };
@@ -0,0 +1,18 @@
1
+ import type { AttachmentVideoStatus } from './useAttachmentVideoStatus';
2
+ type Props = {
3
+ attachmentId: string;
4
+ status: AttachmentVideoStatus;
5
+ isActive?: boolean;
6
+ autoPlay?: boolean;
7
+ };
8
+ /**
9
+ * Player for videos that went through the video pipeline: playback URLs come
10
+ * straight from `/v1/videos/{id}/status`, so there is no `/vod` polling. While
11
+ * the backend is still transcoding, chapters are hidden and HLS is used only
12
+ * once `optimizedReady`; otherwise the raw URL plays. The processing progress
13
+ * is shown in the gallery header. Subtitles/chapters/storyboard ride along from
14
+ * the same status payload.
15
+ */
16
+ export declare const StatusVideoPlayer: ({ attachmentId, status, isActive, autoPlay, }: Props) => import("react/jsx-runtime").JSX.Element;
17
+ export {};
18
+ //# sourceMappingURL=StatusVideoPlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusVideoPlayer.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentsGalleryModal/components/StatusVideoPlayer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAIxE,KAAK,KAAK,GAAG;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,+CAK/B,KAAK,4CAsCP,CAAC"}