cozy-viewer 1.1.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.
Files changed (250) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/LICENSE +21 -0
  3. package/Readme.md +44 -0
  4. package/babel.config.js +23 -0
  5. package/dist/Footer/BottomSheetContent.d.ts +12 -0
  6. package/dist/Footer/BottomSheetContent.js +45 -0
  7. package/dist/Footer/DownloadButton.d.ts +16 -0
  8. package/dist/Footer/DownloadButton.js +113 -0
  9. package/dist/Footer/FooterActionButtons.d.ts +13 -0
  10. package/dist/Footer/FooterActionButtons.js +33 -0
  11. package/dist/Footer/FooterActionButtons.spec.d.ts +1 -0
  12. package/dist/Footer/FooterContent.d.ts +16 -0
  13. package/dist/Footer/FooterContent.js +120 -0
  14. package/dist/Footer/ForwardButton.d.ts +20 -0
  15. package/dist/Footer/ForwardButton.js +177 -0
  16. package/dist/Footer/ForwardButton.spec.d.ts +1 -0
  17. package/dist/Footer/ForwardOrDownloadButton.d.ts +11 -0
  18. package/dist/Footer/ForwardOrDownloadButton.js +42 -0
  19. package/dist/Footer/Sharing.d.ts +16 -0
  20. package/dist/Footer/Sharing.js +79 -0
  21. package/dist/Footer/helpers.d.ts +8 -0
  22. package/dist/Footer/helpers.js +179 -0
  23. package/dist/Footer/helpers.spec.d.ts +1 -0
  24. package/dist/NoViewer/DownloadButton.d.ts +2 -0
  25. package/dist/NoViewer/DownloadButton.js +52 -0
  26. package/dist/NoViewer/FileIcon.d.ts +4 -0
  27. package/dist/NoViewer/FileIcon.js +76 -0
  28. package/dist/NoViewer/NoViewer.d.ts +18 -0
  29. package/dist/NoViewer/NoViewer.js +64 -0
  30. package/dist/NoViewer/NoViewer.spec.d.ts +1 -0
  31. package/dist/NoViewer/index.d.ts +1 -0
  32. package/dist/NoViewer/index.js +15 -0
  33. package/dist/Panel/ActionMenuDesktop.d.ts +3 -0
  34. package/dist/Panel/ActionMenuDesktop.js +91 -0
  35. package/dist/Panel/ActionMenuMobile.d.ts +20 -0
  36. package/dist/Panel/ActionMenuMobile.js +95 -0
  37. package/dist/Panel/ActionMenuWrapper.d.ts +3 -0
  38. package/dist/Panel/ActionMenuWrapper.js +155 -0
  39. package/dist/Panel/Certifications.d.ts +2 -0
  40. package/dist/Panel/Certifications.js +80 -0
  41. package/dist/Panel/PanelContent.d.ts +2 -0
  42. package/dist/Panel/PanelContent.js +71 -0
  43. package/dist/Panel/Qualification.d.ts +2 -0
  44. package/dist/Panel/Qualification.js +148 -0
  45. package/dist/Panel/QualificationListItemContact.d.ts +10 -0
  46. package/dist/Panel/QualificationListItemContact.js +123 -0
  47. package/dist/Panel/QualificationListItemDate.d.ts +3 -0
  48. package/dist/Panel/QualificationListItemDate.js +90 -0
  49. package/dist/Panel/QualificationListItemInformation.d.ts +3 -0
  50. package/dist/Panel/QualificationListItemInformation.js +84 -0
  51. package/dist/Panel/QualificationListItemInformation.spec.d.ts +1 -0
  52. package/dist/Panel/QualificationListItemOther.d.ts +3 -0
  53. package/dist/Panel/QualificationListItemOther.js +78 -0
  54. package/dist/Panel/QualificationListItemText.d.ts +13 -0
  55. package/dist/Panel/QualificationListItemText.js +42 -0
  56. package/dist/Panel/getPanelBlocks.d.ts +26 -0
  57. package/dist/Panel/getPanelBlocks.js +79 -0
  58. package/dist/Panel/getPanelBlocks.spec.d.ts +1 -0
  59. package/dist/Viewer.d.ts +39 -0
  60. package/dist/Viewer.js +191 -0
  61. package/dist/ViewerContainer.d.ts +22 -0
  62. package/dist/ViewerContainer.js +221 -0
  63. package/dist/ViewerExposer.d.ts +2 -0
  64. package/dist/ViewerExposer.js +13 -0
  65. package/dist/ViewerInformationsWrapper.d.ts +20 -0
  66. package/dist/ViewerInformationsWrapper.js +68 -0
  67. package/dist/ViewerInformationsWrapper.spec.d.ts +1 -0
  68. package/dist/ViewerWithCustomPanelAndFooter.d.ts +2 -0
  69. package/dist/ViewerWithCustomPanelAndFooter.js +78 -0
  70. package/dist/ViewersByFile/AudioViewer.d.ts +74 -0
  71. package/dist/ViewersByFile/AudioViewer.js +57 -0
  72. package/dist/ViewersByFile/AudioViewer.spec.d.ts +1 -0
  73. package/dist/ViewersByFile/BlankPaperViewer.d.ts +2 -0
  74. package/dist/ViewersByFile/BlankPaperViewer.js +97 -0
  75. package/dist/ViewersByFile/ImageViewer.d.ts +31 -0
  76. package/dist/ViewersByFile/ImageViewer.js +385 -0
  77. package/dist/ViewersByFile/ImageViewer.spec.d.ts +1 -0
  78. package/dist/ViewersByFile/NoNetworkViewer.d.ts +2 -0
  79. package/dist/ViewersByFile/NoNetworkViewer.js +54 -0
  80. package/dist/ViewersByFile/OnlyOfficeViewer.d.ts +2 -0
  81. package/dist/ViewersByFile/OnlyOfficeViewer.js +46 -0
  82. package/dist/ViewersByFile/PdfJsViewer.d.ts +31 -0
  83. package/dist/ViewersByFile/PdfJsViewer.js +283 -0
  84. package/dist/ViewersByFile/PdfJsViewer.spec.d.ts +1 -0
  85. package/dist/ViewersByFile/PdfMobileViewer.d.ts +4 -0
  86. package/dist/ViewersByFile/PdfMobileViewer.js +185 -0
  87. package/dist/ViewersByFile/PdfMobileViewer.spec.d.ts +1 -0
  88. package/dist/ViewersByFile/ShortcutViewer.d.ts +2 -0
  89. package/dist/ViewersByFile/ShortcutViewer.js +61 -0
  90. package/dist/ViewersByFile/ShortcutViewer.spec.d.ts +4 -0
  91. package/dist/ViewersByFile/TextViewer.d.ts +90 -0
  92. package/dist/ViewersByFile/TextViewer.js +250 -0
  93. package/dist/ViewersByFile/TextViewer.spec.d.ts +1 -0
  94. package/dist/ViewersByFile/VideoViewer.d.ts +74 -0
  95. package/dist/ViewersByFile/VideoViewer.js +46 -0
  96. package/dist/ViewersByFile/VideoViewer.spec.d.ts +1 -0
  97. package/dist/assets/IlluGenericNewPage.svg +10 -0
  98. package/dist/components/ExpirationAlert.d.ts +2 -0
  99. package/dist/components/ExpirationAlert.js +129 -0
  100. package/dist/components/ExpirationAnnotation.d.ts +10 -0
  101. package/dist/components/ExpirationAnnotation.js +56 -0
  102. package/dist/components/Footer.d.ts +4 -0
  103. package/dist/components/Footer.js +41 -0
  104. package/dist/components/InformationPanel.d.ts +12 -0
  105. package/dist/components/InformationPanel.js +36 -0
  106. package/dist/components/Navigation.d.ts +18 -0
  107. package/dist/components/Navigation.js +63 -0
  108. package/dist/components/PdfToolbarButton.d.ts +16 -0
  109. package/dist/components/PdfToolbarButton.js +40 -0
  110. package/dist/components/PrintButton.d.ts +16 -0
  111. package/dist/components/PrintButton.js +163 -0
  112. package/dist/components/Toolbar.d.ts +2 -0
  113. package/dist/components/Toolbar.js +146 -0
  114. package/dist/components/ToolbarButtons.d.ts +5 -0
  115. package/dist/components/ToolbarButtons.js +20 -0
  116. package/dist/components/ToolbarFilePath.d.ts +3 -0
  117. package/dist/components/ToolbarFilePath.js +92 -0
  118. package/dist/components/ViewerByFile.d.ts +7 -0
  119. package/dist/components/ViewerByFile.js +137 -0
  120. package/dist/components/ViewerByFile.spec.d.ts +1 -0
  121. package/dist/components/ViewerControls.d.ts +9 -0
  122. package/dist/components/ViewerControls.js +251 -0
  123. package/dist/components/ViewerControls.spec.d.ts +1 -0
  124. package/dist/components/ViewerSpinner.d.ts +2 -0
  125. package/dist/components/ViewerSpinner.js +31 -0
  126. package/dist/docs/DemoProvider.d.ts +6 -0
  127. package/dist/docs/DemoProvider.js +159 -0
  128. package/dist/helpers.d.ts +37 -0
  129. package/dist/helpers.js +190 -0
  130. package/dist/helpers.spec.d.ts +1 -0
  131. package/dist/hoc/withFileUrl.d.ts +75 -0
  132. package/dist/hoc/withFileUrl.js +231 -0
  133. package/dist/hoc/withViewerLocales.d.ts +1 -0
  134. package/dist/hoc/withViewerLocales.js +15 -0
  135. package/dist/hooks/useReferencedContactName.d.ts +5 -0
  136. package/dist/hooks/useReferencedContactName.js +45 -0
  137. package/dist/index.d.ts +10 -0
  138. package/dist/index.js +75 -0
  139. package/dist/locales/index.d.ts +6 -0
  140. package/dist/locales/index.js +18 -0
  141. package/dist/proptypes.d.ts +7 -0
  142. package/dist/proptypes.js +25 -0
  143. package/dist/providers/ActionMenuProvider.d.ts +13 -0
  144. package/dist/providers/ActionMenuProvider.js +47 -0
  145. package/dist/providers/EncryptedProvider.d.ts +8 -0
  146. package/dist/providers/EncryptedProvider.js +43 -0
  147. package/dist/queries.d.ts +15 -0
  148. package/dist/queries.js +40 -0
  149. package/dist/stylesheet.css +218 -0
  150. package/jest.config.js +23 -0
  151. package/package.json +62 -0
  152. package/preprocess.js +16 -0
  153. package/src/Footer/BottomSheetContent.jsx +30 -0
  154. package/src/Footer/DownloadButton.jsx +66 -0
  155. package/src/Footer/FooterActionButtons.jsx +22 -0
  156. package/src/Footer/FooterActionButtons.spec.jsx +30 -0
  157. package/src/Footer/FooterContent.jsx +102 -0
  158. package/src/Footer/ForwardButton.jsx +95 -0
  159. package/src/Footer/ForwardButton.spec.jsx +87 -0
  160. package/src/Footer/ForwardOrDownloadButton.jsx +24 -0
  161. package/src/Footer/Sharing.jsx +59 -0
  162. package/src/Footer/helpers.js +106 -0
  163. package/src/Footer/helpers.spec.js +77 -0
  164. package/src/NoViewer/DownloadButton.jsx +28 -0
  165. package/src/NoViewer/FileIcon.jsx +46 -0
  166. package/src/NoViewer/NoViewer.jsx +30 -0
  167. package/src/NoViewer/NoViewer.spec.jsx +44 -0
  168. package/src/NoViewer/__snapshots__/NoViewer.spec.jsx.snap +82 -0
  169. package/src/NoViewer/index.jsx +1 -0
  170. package/src/Panel/ActionMenuDesktop.jsx +69 -0
  171. package/src/Panel/ActionMenuMobile.jsx +76 -0
  172. package/src/Panel/ActionMenuWrapper.jsx +104 -0
  173. package/src/Panel/Certifications.jsx +63 -0
  174. package/src/Panel/PanelContent.jsx +50 -0
  175. package/src/Panel/Qualification.jsx +114 -0
  176. package/src/Panel/QualificationListItemContact.jsx +85 -0
  177. package/src/Panel/QualificationListItemDate.jsx +78 -0
  178. package/src/Panel/QualificationListItemInformation.jsx +68 -0
  179. package/src/Panel/QualificationListItemInformation.spec.jsx +73 -0
  180. package/src/Panel/QualificationListItemOther.jsx +61 -0
  181. package/src/Panel/QualificationListItemText.jsx +30 -0
  182. package/src/Panel/getPanelBlocks.jsx +56 -0
  183. package/src/Panel/getPanelBlocks.spec.jsx +79 -0
  184. package/src/Panel/styles.styl +13 -0
  185. package/src/Readme.md +352 -0
  186. package/src/Viewer.jsx +135 -0
  187. package/src/ViewerContainer.jsx +170 -0
  188. package/src/ViewerExposer.js +3 -0
  189. package/src/ViewerInformationsWrapper.jsx +70 -0
  190. package/src/ViewerInformationsWrapper.spec.jsx +63 -0
  191. package/src/ViewerWithCustomPanelAndFooter.jsx +57 -0
  192. package/src/ViewersByFile/AudioViewer.jsx +22 -0
  193. package/src/ViewersByFile/AudioViewer.spec.jsx +40 -0
  194. package/src/ViewersByFile/BlankPaperViewer.jsx +47 -0
  195. package/src/ViewersByFile/ImageViewer.jsx +331 -0
  196. package/src/ViewersByFile/ImageViewer.spec.jsx +73 -0
  197. package/src/ViewersByFile/NoNetworkViewer.jsx +18 -0
  198. package/src/ViewersByFile/OnlyOfficeViewer.jsx +29 -0
  199. package/src/ViewersByFile/PdfJsViewer.jsx +210 -0
  200. package/src/ViewersByFile/PdfJsViewer.spec.jsx +161 -0
  201. package/src/ViewersByFile/PdfMobileViewer.jsx +106 -0
  202. package/src/ViewersByFile/PdfMobileViewer.spec.jsx +76 -0
  203. package/src/ViewersByFile/ShortcutViewer.jsx +38 -0
  204. package/src/ViewersByFile/ShortcutViewer.spec.jsx +32 -0
  205. package/src/ViewersByFile/TextViewer.jsx +126 -0
  206. package/src/ViewersByFile/TextViewer.spec.jsx +118 -0
  207. package/src/ViewersByFile/VideoViewer.jsx +13 -0
  208. package/src/ViewersByFile/VideoViewer.spec.jsx +40 -0
  209. package/src/ViewersByFile/__snapshots__/AudioViewer.spec.jsx.snap +43 -0
  210. package/src/ViewersByFile/__snapshots__/ShortcutViewer.spec.jsx.snap +57 -0
  211. package/src/ViewersByFile/__snapshots__/TextViewer.spec.jsx.snap +100 -0
  212. package/src/ViewersByFile/__snapshots__/VideoViewer.spec.jsx.snap +19 -0
  213. package/src/ViewersByFile/styles.styl +87 -0
  214. package/src/assets/IlluGenericNewPage.svg +10 -0
  215. package/src/components/ExpirationAlert.jsx +86 -0
  216. package/src/components/ExpirationAnnotation.jsx +39 -0
  217. package/src/components/Footer.jsx +14 -0
  218. package/src/components/InformationPanel.jsx +26 -0
  219. package/src/components/Navigation.jsx +40 -0
  220. package/src/components/PdfToolbarButton.jsx +26 -0
  221. package/src/components/PrintButton.jsx +89 -0
  222. package/src/components/Toolbar.jsx +111 -0
  223. package/src/components/ToolbarButtons.jsx +11 -0
  224. package/src/components/ToolbarFilePath.jsx +61 -0
  225. package/src/components/ViewerByFile.jsx +112 -0
  226. package/src/components/ViewerByFile.spec.jsx +100 -0
  227. package/src/components/ViewerControls.jsx +191 -0
  228. package/src/components/ViewerControls.spec.jsx +54 -0
  229. package/src/components/ViewerSpinner.jsx +17 -0
  230. package/src/components/styles.styl +93 -0
  231. package/src/docs/DemoProvider.jsx +90 -0
  232. package/src/helpers.js +131 -0
  233. package/src/helpers.spec.js +136 -0
  234. package/src/hoc/withFileUrl.jsx +93 -0
  235. package/src/hoc/withViewerLocales.jsx +5 -0
  236. package/src/hooks/useReferencedContactName.jsx +26 -0
  237. package/src/index.jsx +12 -0
  238. package/src/locales/en.json +66 -0
  239. package/src/locales/fr.json +66 -0
  240. package/src/locales/index.js +4 -0
  241. package/src/proptypes.js +12 -0
  242. package/src/providers/ActionMenuProvider.jsx +35 -0
  243. package/src/providers/EncryptedProvider.jsx +25 -0
  244. package/src/queries.js +20 -0
  245. package/src/styles.styl +22 -0
  246. package/src/vars.styl +6 -0
  247. package/test/__mocks__/fileMock.js +3 -0
  248. package/test/jestLib/setup.js +5 -0
  249. package/tsconfig-build.json +13 -0
  250. package/tsconfig.json +34 -0
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getViewerComponentName = exports.default = void 0;
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _file = require("cozy-client/dist/models/file");
15
+
16
+ var _cozyDeviceHelper = require("cozy-device-helper");
17
+
18
+ var _withBreakpoints = _interopRequireDefault(require("cozy-ui/transpiled/react/helpers/withBreakpoints"));
19
+
20
+ var _proptypes = require("cozy-ui/transpiled/react/proptypes");
21
+
22
+ var _NoViewer = _interopRequireDefault(require("../NoViewer"));
23
+
24
+ var _AudioViewer = _interopRequireDefault(require("../ViewersByFile/AudioViewer"));
25
+
26
+ var _BlankPaperViewer = _interopRequireDefault(require("../ViewersByFile/BlankPaperViewer"));
27
+
28
+ var _ImageViewer = _interopRequireDefault(require("../ViewersByFile/ImageViewer"));
29
+
30
+ var _OnlyOfficeViewer = _interopRequireDefault(require("../ViewersByFile/OnlyOfficeViewer"));
31
+
32
+ var _PdfJsViewer = _interopRequireDefault(require("../ViewersByFile/PdfJsViewer"));
33
+
34
+ var _PdfMobileViewer = _interopRequireDefault(require("../ViewersByFile/PdfMobileViewer"));
35
+
36
+ var _ShortcutViewer = _interopRequireDefault(require("../ViewersByFile/ShortcutViewer"));
37
+
38
+ var _TextViewer = _interopRequireDefault(require("../ViewersByFile/TextViewer"));
39
+
40
+ var _VideoViewer = _interopRequireDefault(require("../ViewersByFile/VideoViewer"));
41
+
42
+ var _EncryptedProvider = require("../providers/EncryptedProvider");
43
+
44
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
45
+
46
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
47
+
48
+ var isBlankPaper = function isBlankPaper(doc) {
49
+ var _doc$metadata, _doc$metadata$paperPr;
50
+
51
+ return (_doc$metadata = doc.metadata) === null || _doc$metadata === void 0 ? void 0 : (_doc$metadata$paperPr = _doc$metadata.paperProps) === null || _doc$metadata$paperPr === void 0 ? void 0 : _doc$metadata$paperPr.isBlank;
52
+ };
53
+
54
+ var getViewerComponentName = function getViewerComponentName(_ref) {
55
+ var file = _ref.file,
56
+ isDesktop = _ref.isDesktop,
57
+ isOnlyOfficeEnabled = _ref.isOnlyOfficeEnabled;
58
+
59
+ switch (file.class) {
60
+ case 'shortcut':
61
+ return _ShortcutViewer.default;
62
+
63
+ case 'image':
64
+ return _ImageViewer.default;
65
+
66
+ case 'audio':
67
+ return _AudioViewer.default;
68
+
69
+ case 'video':
70
+ return (0, _cozyDeviceHelper.isMobile)() ? _NoViewer.default : _VideoViewer.default;
71
+
72
+ case 'pdf':
73
+ return isBlankPaper(file) ? _BlankPaperViewer.default : isDesktop ? _PdfJsViewer.default : _PdfMobileViewer.default;
74
+
75
+ case 'text':
76
+ return (0, _file.isPlainText)(file.mime, file.name) ? _TextViewer.default : isOnlyOfficeEnabled ? _OnlyOfficeViewer.default : _NoViewer.default;
77
+
78
+ case 'slide':
79
+ return isOnlyOfficeEnabled ? _OnlyOfficeViewer.default : _NoViewer.default;
80
+
81
+ case 'spreadsheet':
82
+ return isOnlyOfficeEnabled ? _OnlyOfficeViewer.default : _NoViewer.default;
83
+
84
+ default:
85
+ return _NoViewer.default;
86
+ }
87
+ };
88
+
89
+ exports.getViewerComponentName = getViewerComponentName;
90
+ var ViewerByFile = (0, _withBreakpoints.default)()(function (_ref2) {
91
+ var _componentsProps$Only, _componentsProps$Only2;
92
+
93
+ var file = _ref2.file,
94
+ onClose = _ref2.onClose,
95
+ renderFallbackExtraContent = _ref2.renderFallbackExtraContent,
96
+ gestures = _ref2.gestures,
97
+ gesturesRef = _ref2.gesturesRef,
98
+ onSwipe = _ref2.onSwipe,
99
+ isDesktop = _ref2.breakpoints.isDesktop,
100
+ componentsProps = _ref2.componentsProps;
101
+ var isOnlyOfficeEnabled = componentsProps === null || componentsProps === void 0 ? void 0 : (_componentsProps$Only = componentsProps.OnlyOfficeViewer) === null || _componentsProps$Only === void 0 ? void 0 : _componentsProps$Only.isEnabled;
102
+ var onlyOfficeOpener = componentsProps === null || componentsProps === void 0 ? void 0 : (_componentsProps$Only2 = componentsProps.OnlyOfficeViewer) === null || _componentsProps$Only2 === void 0 ? void 0 : _componentsProps$Only2.opener;
103
+
104
+ var _useEncrypted = (0, _EncryptedProvider.useEncrypted)(),
105
+ url = _useEncrypted.url;
106
+
107
+ var ComponentName = (0, _react.useMemo)(function () {
108
+ return getViewerComponentName({
109
+ file: file,
110
+ isDesktop: isDesktop,
111
+ isOnlyOfficeEnabled: isOnlyOfficeEnabled
112
+ });
113
+ }, [file, isDesktop, isOnlyOfficeEnabled]);
114
+ return /*#__PURE__*/_react.default.createElement(ComponentName, {
115
+ file: file,
116
+ url: url,
117
+ onClose: onClose,
118
+ renderFallbackExtraContent: renderFallbackExtraContent,
119
+ gestures: gestures,
120
+ gesturesRef: gesturesRef,
121
+ onSwipe: onSwipe,
122
+ onlyOfficeOpener: onlyOfficeOpener
123
+ });
124
+ });
125
+ ViewerByFile.propTypes = {
126
+ file: _proptypes.FileDoctype.isRequired,
127
+ onClose: _propTypes.default.func.isRequired,
128
+ renderFallbackExtraContent: _propTypes.default.func,
129
+ // gestures, gesturesRef and onSwipe are got from ViewerControls
130
+ gestures: _propTypes.default.object,
131
+ gesturesRef: _propTypes.default.object,
132
+ onSwipe: _propTypes.default.func,
133
+ componentsProps: _propTypes.default.object
134
+ };
135
+ ViewerByFile.displayName = 'ViewerByFile';
136
+ var _default = ViewerByFile;
137
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ declare var _default: React.ComponentType<(Pick<import("@material-ui/types").ConsistentWith<any, {
2
+ classes: import("@material-ui/styles").ClassNameMap<"viewerControlsWithInfo">;
3
+ }>, string | number | symbol> | Pick<import("@material-ui/types").ConsistentWith<any, {
4
+ classes: import("@material-ui/styles").ClassNameMap<"viewerControlsWithInfo">;
5
+ }> & {
6
+ children?: React.ReactNode;
7
+ }, string | number | symbol>) & import("@material-ui/styles/withStyles/withStyles").StyledComponentProps<"viewerControlsWithInfo">>;
8
+ export default _default;
9
+ import React from "react";
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _classnames = _interopRequireDefault(require("classnames"));
25
+
26
+ var _hammerjs = _interopRequireDefault(require("hammerjs"));
27
+
28
+ var _flow = _interopRequireDefault(require("lodash/flow"));
29
+
30
+ var _propTypes = _interopRequireDefault(require("prop-types"));
31
+
32
+ var _react = _interopRequireWildcard(require("react"));
33
+
34
+ var _withBreakpoints = _interopRequireDefault(require("cozy-ui/transpiled/react/helpers/withBreakpoints"));
35
+
36
+ var _styles = require("cozy-ui/transpiled/react/styles");
37
+
38
+ var _InformationPanel = require("./InformationPanel");
39
+
40
+ var _Navigation = _interopRequireDefault(require("./Navigation"));
41
+
42
+ var _Toolbar = _interopRequireDefault(require("./Toolbar"));
43
+
44
+ var _helpers = require("../helpers");
45
+
46
+ var _proptypes = require("../proptypes");
47
+
48
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
49
+
50
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
51
+
52
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
53
+
54
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
55
+
56
+ var styles = {
57
+ "viewer-nav": "styles__viewer-nav___3V03k",
58
+ "viewer-nav--visible": "styles__viewer-nav--visible___4GLTe",
59
+ "viewer-nav--previous": "styles__viewer-nav--previous___2LsMS",
60
+ "viewer-nav-arrow": "styles__viewer-nav-arrow___Z0ykc",
61
+ "viewer-nav--next": "styles__viewer-nav--next___3mBHi",
62
+ "viewer-controls": "styles__viewer-controls___2lf-z",
63
+ "--expanded": "styles__--expanded___1sp4Q",
64
+ "viewer-controls--display-content-top": "styles__viewer-controls--display-content-top___3wszk",
65
+ "viewer-toolbar": "styles__viewer-toolbar___1GLOA",
66
+ "viewer-toolbar--hidden": "styles__viewer-toolbar--hidden___Zq97m",
67
+ "viewer-footer": "styles__viewer-footer___iGv8J"
68
+ };
69
+ var ACTIONS_HIDE_DELAY = 3000;
70
+
71
+ var customStyles = function customStyles() {
72
+ return {
73
+ viewerControlsWithInfo: {
74
+ width: "calc(100% - ".concat(_InformationPanel.infoWidth, ") !important")
75
+ }
76
+ };
77
+ };
78
+
79
+ var ViewerControls = /*#__PURE__*/function (_Component) {
80
+ (0, _inherits2.default)(ViewerControls, _Component);
81
+
82
+ var _super = _createSuper(ViewerControls);
83
+
84
+ function ViewerControls() {
85
+ var _this;
86
+
87
+ (0, _classCallCheck2.default)(this, ViewerControls);
88
+
89
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
90
+ args[_key] = arguments[_key];
91
+ }
92
+
93
+ _this = _super.call.apply(_super, [this].concat(args));
94
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
95
+ hidden: false,
96
+ gestures: null
97
+ });
98
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_mounted", false);
99
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "showControls", function () {
100
+ if (_this._mounted) {
101
+ _this.setState({
102
+ hidden: false
103
+ });
104
+
105
+ _this.hideAfterDelay();
106
+
107
+ document.removeEventListener('mousemove', _this.showControls);
108
+ document.addEventListener('mousemove', _this.hideAfterDelay);
109
+ }
110
+ });
111
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hideControls", function () {
112
+ if (_this._mounted) {
113
+ _this.setState({
114
+ hidden: true
115
+ });
116
+
117
+ document.removeEventListener('mousemove', _this.hideAfterDelay);
118
+ document.addEventListener('mousemove', _this.showControls);
119
+ }
120
+ });
121
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hideAfterDelay", function () {
122
+ clearTimeout(_this.hideTimeout);
123
+ _this.hideTimeout = setTimeout(function () {
124
+ _this.hideControls();
125
+ }, ACTIONS_HIDE_DELAY);
126
+ });
127
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onSwipe", function (e) {
128
+ if (e.direction === _hammerjs.default.DIRECTION_LEFT) _this.props.onNext();else if (e.direction === _hammerjs.default.DIRECTION_RIGHT) _this.props.onPrevious();
129
+ });
130
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "initGestures", function () {
131
+ var gestures = new _hammerjs.default(_this.wrapped, _this.props.breakpoints.isDesktop ? {
132
+ cssProps: {
133
+ userSelect: 'auto'
134
+ }
135
+ } : {});
136
+ if (!_this.props.breakpoints.isDesktop) gestures.on('swipe', _this.onSwipe);
137
+ return gestures;
138
+ });
139
+ return _this;
140
+ }
141
+
142
+ (0, _createClass2.default)(ViewerControls, [{
143
+ key: "componentDidMount",
144
+ value: function componentDidMount() {
145
+ this._mounted = true;
146
+ clearTimeout(this.hideTimeout);
147
+ this.hideAfterDelay();
148
+ var gestures = this.initGestures();
149
+ this.setState({
150
+ gestures: gestures
151
+ });
152
+ }
153
+ }, {
154
+ key: "componentWillUnmount",
155
+ value: function componentWillUnmount() {
156
+ this._mounted = false;
157
+ clearTimeout(this.hideTimeout);
158
+ if (this.state.gestures) this.state.gestures.destroy();
159
+ }
160
+ }, {
161
+ key: "renderChildren",
162
+ value: function renderChildren(children) {
163
+ var _this2 = this;
164
+
165
+ if (!children) return null;
166
+ return _react.default.Children.map(children, function (child) {
167
+ var _child$type, _child$type2;
168
+
169
+ if ((child === null || child === void 0 ? void 0 : (_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.name) === 'ViewerByFile' || (child === null || child === void 0 ? void 0 : (_child$type2 = child.type) === null || _child$type2 === void 0 ? void 0 : _child$type2.displayName) === 'ViewerByFile') {
170
+ return /*#__PURE__*/_react.default.cloneElement(child, {
171
+ gestures: _this2.state.gestures,
172
+ gesturesRef: _this2.wrapped,
173
+ onSwipe: _this2.onSwipe
174
+ });
175
+ }
176
+ });
177
+ }
178
+ }, {
179
+ key: "render",
180
+ value: function render() {
181
+ var _cx,
182
+ _this3 = this;
183
+
184
+ var _this$props = this.props,
185
+ file = _this$props.file,
186
+ onClose = _this$props.onClose,
187
+ hasPrevious = _this$props.hasPrevious,
188
+ hasNext = _this$props.hasNext,
189
+ onPrevious = _this$props.onPrevious,
190
+ onNext = _this$props.onNext,
191
+ expanded = _this$props.expanded,
192
+ toolbarProps = _this$props.toolbarProps,
193
+ showNavigation = _this$props.showNavigation,
194
+ showInfoPanel = _this$props.showInfoPanel,
195
+ children = _this$props.children,
196
+ classes = _this$props.classes,
197
+ isDesktop = _this$props.breakpoints.isDesktop;
198
+ var showToolbar = toolbarProps.showToolbar,
199
+ showClose = toolbarProps.showClose,
200
+ toolbarRef = toolbarProps.toolbarRef,
201
+ showFilePath = toolbarProps.showFilePath;
202
+ var hidden = this.state.hidden;
203
+ var shouldDisplayContentTop = (0, _helpers.isValidForPanel)({
204
+ file: file
205
+ });
206
+ return /*#__PURE__*/_react.default.createElement("div", {
207
+ className: (0, _classnames.default)(styles['viewer-controls'], (_cx = {}, (0, _defineProperty2.default)(_cx, styles['viewer-controls--expanded'], expanded), (0, _defineProperty2.default)(_cx, styles['viewer-controls--display-content-top'], shouldDisplayContentTop), (0, _defineProperty2.default)(_cx, classes.viewerControlsWithInfo, showInfoPanel), _cx)),
208
+ ref: function ref(wrapped) {
209
+ _this3.wrapped = wrapped;
210
+ }
211
+ }, showToolbar && /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
212
+ toolbarRef: toolbarRef,
213
+ file: file,
214
+ showFilePath: showFilePath,
215
+ onMouseEnter: this.showControls,
216
+ onMouseLeave: this.hideControls,
217
+ onClose: showClose && onClose
218
+ }, children), showNavigation && isDesktop && hasPrevious && /*#__PURE__*/_react.default.createElement(_Navigation.default, {
219
+ className: styles['viewer-nav--previous'],
220
+ hidden: hidden,
221
+ onMouseEnter: this.showControls,
222
+ onMouseLeave: this.hideControls,
223
+ onClick: onPrevious
224
+ }), this.renderChildren(children), showNavigation && isDesktop && hasNext && /*#__PURE__*/_react.default.createElement(_Navigation.default, {
225
+ className: styles['viewer-nav--next'],
226
+ hidden: hidden,
227
+ onMouseEnter: this.showControls,
228
+ onMouseLeave: this.hideControls,
229
+ onClick: onNext
230
+ }));
231
+ }
232
+ }]);
233
+ return ViewerControls;
234
+ }(_react.Component);
235
+
236
+ ViewerControls.propTypes = {
237
+ file: _propTypes.default.object.isRequired,
238
+ onClose: _propTypes.default.func.isRequired,
239
+ hasPrevious: _propTypes.default.bool.isRequired,
240
+ hasNext: _propTypes.default.bool.isRequired,
241
+ onPrevious: _propTypes.default.func.isRequired,
242
+ onNext: _propTypes.default.func.isRequired,
243
+ expanded: _propTypes.default.bool.isRequired,
244
+ toolbarProps: _propTypes.default.shape(_proptypes.toolbarPropsPropType),
245
+ showNavigation: _propTypes.default.bool.isRequired,
246
+ showInfoPanel: _propTypes.default.bool
247
+ };
248
+
249
+ var _default = (0, _flow.default)((0, _withBreakpoints.default)(), (0, _styles.withStyles)(customStyles))(ViewerControls);
250
+
251
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ declare var _default: any;
2
+ export default _default;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _Spinner = _interopRequireDefault(require("cozy-ui/transpiled/react/Spinner"));
15
+
16
+ var _withBreakpoints = _interopRequireDefault(require("cozy-ui/transpiled/react/helpers/withBreakpoints"));
17
+
18
+ var ViewerSpinner = function ViewerSpinner(_ref) {
19
+ var isDesktop = _ref.breakpoints.isDesktop;
20
+ return /*#__PURE__*/_react.default.createElement(_Spinner.default, (0, _extends2.default)({
21
+ size: "xxlarge",
22
+ middle: true,
23
+ noMargin: true
24
+ }, isDesktop && {
25
+ color: 'white'
26
+ }));
27
+ };
28
+
29
+ var _default = (0, _withBreakpoints.default)()(ViewerSpinner);
30
+
31
+ exports.default = _default;
@@ -0,0 +1,6 @@
1
+ export default Wrapper;
2
+ declare class Wrapper extends React.Component<any, any, any> {
3
+ constructor(props: Readonly<any>);
4
+ constructor(props: any, context?: any);
5
+ }
6
+ import React from "react";
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _react = _interopRequireDefault(require("react"));
21
+
22
+ var _cozyClient = require("cozy-client");
23
+
24
+ var _cloudWallpaper = _interopRequireDefault(require("cozy-ui/docs/cloud-wallpaper.jpg"));
25
+
26
+ var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
27
+
28
+ var _I18n = _interopRequireDefault(require("cozy-ui/transpiled/react/providers/I18n"));
29
+
30
+ var _index = require("../locales/index");
31
+
32
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
33
+
34
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
35
+
36
+ var demoTextFileResponse = {
37
+ text: function text() {
38
+ return new Promise(function (resolve) {
39
+ return resolve('Hello World !');
40
+ });
41
+ }
42
+ };
43
+ var demoFilesByClass = {
44
+ pdf: 'https://raw.githubusercontent.com/rospdf/pdf-php/2ccf7591fc2f18e63342ebfedad7997b08c34ed2/readme.pdf',
45
+ audio: 'https://viewerdemo.cozycloud.cc/Z.mp3',
46
+ video: 'https://viewerdemo.cozycloud.cc/Nextcloud.mp4',
47
+ text: 'https://viewerdemo.cozycloud.cc/notes.md'
48
+ };
49
+ var mockClient = {
50
+ plugins: {
51
+ realtime: {
52
+ subscribe: function subscribe() {},
53
+ unsubscribe: function unsubscribe() {},
54
+ unsubscribeAll: function unsubscribeAll() {}
55
+ }
56
+ },
57
+ on: function on() {},
58
+ collection: function collection() {
59
+ return {
60
+ getDownloadLinkById: function getDownloadLinkById(id) {
61
+ return new Promise(function (resolve) {
62
+ return resolve(demoFilesByClass[id]);
63
+ });
64
+ },
65
+ download: function download() {
66
+ return alert("This is a demo, there's no actual Cozy to download the file from ¯\\_(ツ)_/¯");
67
+ },
68
+ get: function get() {
69
+ return new Promise(function (resolve) {
70
+ return resolve({
71
+ data: {
72
+ links: {
73
+ large: _cloudWallpaper.default
74
+ }
75
+ }
76
+ });
77
+ });
78
+ }
79
+ };
80
+ },
81
+ getStackClient: function getStackClient() {
82
+ return {
83
+ uri: '',
84
+ fetch: function fetch() {
85
+ return new Promise(function (resolve) {
86
+ return resolve(demoTextFileResponse);
87
+ });
88
+ }
89
+ };
90
+ },
91
+ getClient: function getClient() {
92
+ return mockClient;
93
+ },
94
+ store: {
95
+ getState: function getState() {},
96
+ subscribe: function subscribe() {},
97
+ unsubscribe: function unsubscribe() {}
98
+ },
99
+ getQueryFromState: function getQueryFromState(queryName) {
100
+ if (queryName === 'io.cozy.files/parent_folder') {
101
+ return {
102
+ data: {
103
+ _id: 'parent_id',
104
+ path: '/Parent'
105
+ }
106
+ };
107
+ }
108
+ },
109
+ query: function query() {
110
+ return {
111
+ data: [{
112
+ attributes: {
113
+ slug: 'mespapiers'
114
+ },
115
+ links: {
116
+ related: ''
117
+ }
118
+ }]
119
+ };
120
+ },
121
+ getInstanceOptions: function getInstanceOptions() {
122
+ return {
123
+ app: {
124
+ slug: 'mespapiers'
125
+ },
126
+ subdomain: 'flat'
127
+ };
128
+ }
129
+ };
130
+
131
+ var Wrapper = /*#__PURE__*/function (_React$Component) {
132
+ (0, _inherits2.default)(Wrapper, _React$Component);
133
+
134
+ var _super = _createSuper(Wrapper);
135
+
136
+ function Wrapper() {
137
+ (0, _classCallCheck2.default)(this, Wrapper);
138
+ return _super.apply(this, arguments);
139
+ }
140
+
141
+ (0, _createClass2.default)(Wrapper, [{
142
+ key: "render",
143
+ value: function render() {
144
+ var lang = localStorage.getItem('lang') || 'en';
145
+ return /*#__PURE__*/_react.default.createElement(_cozyClient.CozyProvider, {
146
+ client: mockClient
147
+ }, /*#__PURE__*/_react.default.createElement(_Breakpoints.BreakpointsProvider, null, /*#__PURE__*/_react.default.createElement(_I18n.default, {
148
+ dictRequire: function dictRequire(lang) {
149
+ return _index.locales[lang];
150
+ },
151
+ lang: lang
152
+ }, this.props.children)));
153
+ }
154
+ }]);
155
+ return Wrapper;
156
+ }(_react.default.Component);
157
+
158
+ var _default = Wrapper;
159
+ exports.default = _default;
@@ -0,0 +1,37 @@
1
+ export function getCurrentModel(metadataName: any): "information" | "contact" | "page" | undefined;
2
+ export function isValidForPanel({ file }: {
3
+ file: IOCozyFile;
4
+ }): boolean;
5
+ export function downloadFile({ client, file, url }: {
6
+ client: any;
7
+ file: any;
8
+ url: any;
9
+ }): Promise<any>;
10
+ export function isFileEncrypted(file: any): any;
11
+ export function formatDate({ f, lang, date }: {
12
+ f: any;
13
+ lang: any;
14
+ date: any;
15
+ }): any;
16
+ export function buildEditAttributePath(editPathByModelProps: {
17
+ information: string;
18
+ page: string;
19
+ }, currentModel: string, name: string): string;
20
+ export function isEditableAttribute(name: any, file: any): boolean;
21
+ export function normalizeAndSpreadAttributes(rawFile: any): any;
22
+ export function makeWebLink({ client, slug, path }: {
23
+ client: CozyClient;
24
+ slug: string;
25
+ path: string;
26
+ }): string;
27
+ export function removeFilenameFromPath(path: string): string;
28
+ export type Reference = {
29
+ /**
30
+ * - id of the document
31
+ */
32
+ id: string;
33
+ /**
34
+ * - doctype of the document
35
+ */
36
+ type: string;
37
+ };