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,283 @@
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 = exports.PdfJsViewer = exports.MIN_SCALE = exports.MAX_SCALE = exports.MAX_PAGES = void 0;
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _classnames = _interopRequireDefault(require("classnames"));
27
+
28
+ var _flow = _interopRequireDefault(require("lodash/flow"));
29
+
30
+ var _throttle = _interopRequireDefault(require("lodash/throttle"));
31
+
32
+ var _propTypes = _interopRequireDefault(require("prop-types"));
33
+
34
+ var _react = _interopRequireWildcard(require("react"));
35
+
36
+ var _reactPdf = require("react-pdf");
37
+
38
+ var _NoViewer = _interopRequireDefault(require("../NoViewer"));
39
+
40
+ var _PdfToolbarButton = _interopRequireDefault(require("../components/PdfToolbarButton"));
41
+
42
+ var _ViewerSpinner = _interopRequireDefault(require("../components/ViewerSpinner"));
43
+
44
+ var _withFileUrl = _interopRequireDefault(require("../hoc/withFileUrl"));
45
+
46
+ var _withViewerLocales = require("../hoc/withViewerLocales");
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-imageviewer": "styles__viewer-imageviewer___2O8pW",
58
+ "viewer-noviewer": "styles__viewer-noviewer___3HRGf",
59
+ "viewer-audioviewer": "styles__viewer-audioviewer___dpxUM",
60
+ "viewer-videoviewer": "styles__viewer-videoviewer___3yUQ5",
61
+ "viewer-pdfviewer": "styles__viewer-pdfviewer___3MJPk",
62
+ "viewer-textviewer": "styles__viewer-textviewer___1fl1c",
63
+ "viewer-canceled": "styles__viewer-canceled___3KRBk",
64
+ "viewer-textviewer-content": "styles__viewer-textviewer-content___30dhP",
65
+ "viewer-filename": "styles__viewer-filename___1-DIz",
66
+ "viewer-pdfviewer-pdf": "styles__viewer-pdfviewer-pdf___3R4jL",
67
+ "viewer-pdfviewer-page": "styles__viewer-pdfviewer-page___VvOF3",
68
+ "viewer-pdfviewer-toolbar": "styles__viewer-pdfviewer-toolbar___2Eat3",
69
+ "viewer-pdfMobile": "styles__viewer-pdfMobile___ym7we",
70
+ "viewer-pdfMobile--image": "styles__viewer-pdfMobile--image___3_zsS"
71
+ };
72
+ var MIN_SCALE = 0.25;
73
+ exports.MIN_SCALE = MIN_SCALE;
74
+ var MAX_SCALE = 3;
75
+ exports.MAX_SCALE = MAX_SCALE;
76
+ var MAX_PAGES = 3;
77
+ exports.MAX_PAGES = MAX_PAGES;
78
+ var KEY_CODE_UP = 38;
79
+ var KEY_CODE_DOWN = 40;
80
+
81
+ var PdfJsViewer = /*#__PURE__*/function (_Component) {
82
+ (0, _inherits2.default)(PdfJsViewer, _Component);
83
+
84
+ var _super = _createSuper(PdfJsViewer);
85
+
86
+ function PdfJsViewer() {
87
+ var _this;
88
+
89
+ (0, _classCallCheck2.default)(this, PdfJsViewer);
90
+
91
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
92
+ args[_key] = arguments[_key];
93
+ }
94
+
95
+ _this = _super.call.apply(_super, [this].concat(args));
96
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
97
+ totalPages: 1,
98
+ scale: 1,
99
+ currentPage: 1,
100
+ loaded: false,
101
+ errored: false,
102
+ width: null,
103
+ renderAllPages: false
104
+ });
105
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onKeyUp", function (e) {
106
+ if (e.keyCode === KEY_CODE_UP) _this.previousPage();else if (e.keyCode === KEY_CODE_DOWN) _this.nextPage();
107
+ });
108
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setWrapperSize", function () {
109
+ var width = _this.wrapper ? _this.wrapper.getBoundingClientRect().width : null;
110
+
111
+ _this.setState({
112
+ width: width
113
+ });
114
+ });
115
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onLoadSuccess", function (_ref) {
116
+ var numPages = _ref.numPages;
117
+
118
+ _this.setState({
119
+ totalPages: numPages,
120
+ renderAllPages: numPages <= MAX_PAGES,
121
+ loaded: true
122
+ });
123
+ });
124
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onLoadError", function (error) {
125
+ // eslint-disable-next-line no-console
126
+ console.warn(error);
127
+
128
+ _this.setState({
129
+ errored: true
130
+ });
131
+ });
132
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "nextPage", function () {
133
+ _this.setState(function (state) {
134
+ return {
135
+ currentPage: Math.min(state.currentPage + 1, state.totalPages)
136
+ };
137
+ });
138
+ });
139
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "previousPage", function () {
140
+ _this.setState(function (state) {
141
+ return {
142
+ currentPage: Math.max(state.currentPage - 1, 1)
143
+ };
144
+ });
145
+ });
146
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "scaleUp", function () {
147
+ _this.setState(function (state) {
148
+ var previousScale = state.scale;
149
+ var scale = Math.min(previousScale + 0.25, MAX_SCALE);
150
+ if (scale > 1 && previousScale <= 1) _this.toggleGestures(false);
151
+ return {
152
+ scale: scale
153
+ };
154
+ });
155
+ });
156
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "scaleDown", function () {
157
+ _this.setState(function (state) {
158
+ var previousScale = state.scale;
159
+ var scale = Math.max(previousScale - 0.25, MIN_SCALE);
160
+ if (scale <= 1 && previousScale > 1) _this.toggleGestures(true);
161
+ return {
162
+ scale: scale
163
+ };
164
+ });
165
+ });
166
+ return _this;
167
+ }
168
+
169
+ (0, _createClass2.default)(PdfJsViewer, [{
170
+ key: "componentDidMount",
171
+ value: function componentDidMount() {
172
+ this.setWrapperSize();
173
+ this.resizeListener = (0, _throttle.default)(this.setWrapperSize, 500);
174
+ window.addEventListener('resize', this.resizeListener);
175
+ document.addEventListener('keyup', this.onKeyUp, false);
176
+ }
177
+ }, {
178
+ key: "componentWillUnmount",
179
+ value: function componentWillUnmount() {
180
+ window.removeEventListener('resize', this.resizeListener);
181
+ document.removeEventListener('keyup', this.onKeyUp, false);
182
+ }
183
+ }, {
184
+ key: "toggleGestures",
185
+ value: function toggleGestures(enable) {
186
+ if (!this.props.gestures) return;
187
+ this.props.gestures.get('swipe').set({
188
+ enable: enable
189
+ });
190
+ this.props.gestures.get('pan').set({
191
+ enable: enable
192
+ });
193
+ }
194
+ }, {
195
+ key: "render",
196
+ value: function render() {
197
+ var _this2 = this;
198
+
199
+ var _this$props = this.props,
200
+ url = _this$props.url,
201
+ file = _this$props.file,
202
+ renderFallbackExtraContent = _this$props.renderFallbackExtraContent,
203
+ t = _this$props.t;
204
+ var _this$state = this.state,
205
+ loaded = _this$state.loaded,
206
+ errored = _this$state.errored,
207
+ totalPages = _this$state.totalPages,
208
+ currentPage = _this$state.currentPage,
209
+ scale = _this$state.scale,
210
+ width = _this$state.width,
211
+ renderAllPages = _this$state.renderAllPages;
212
+ if (errored) return /*#__PURE__*/_react.default.createElement(_NoViewer.default, {
213
+ file: file,
214
+ renderFallbackExtraContent: renderFallbackExtraContent
215
+ });
216
+ var pageWidth = width ? width * scale : null; // newer versions of react-pdf do that automatically
217
+
218
+ return /*#__PURE__*/_react.default.createElement("div", {
219
+ className: styles['viewer-pdfviewer'],
220
+ ref: function ref(_ref2) {
221
+ return _this2.wrapper = _ref2;
222
+ }
223
+ }, /*#__PURE__*/_react.default.createElement(_reactPdf.Document, {
224
+ file: url,
225
+ onLoadSuccess: this.onLoadSuccess,
226
+ onLoadError: this.onLoadError,
227
+ className: styles['viewer-pdfviewer-pdf'],
228
+ loading: /*#__PURE__*/_react.default.createElement(_ViewerSpinner.default, null)
229
+ }, renderAllPages ? (0, _toConsumableArray2.default)(Array(totalPages)).map(function (_, page) {
230
+ return /*#__PURE__*/_react.default.createElement(_reactPdf.Page, {
231
+ key: page,
232
+ pageNumber: page + 1,
233
+ width: pageWidth,
234
+ renderAnnotations: false,
235
+ className: (0, _classnames.default)('u-mv-1', styles['viewer-pdfviewer-page'])
236
+ });
237
+ }) : /*#__PURE__*/_react.default.createElement(_reactPdf.Page, {
238
+ pageNumber: currentPage,
239
+ width: pageWidth,
240
+ renderAnnotations: false,
241
+ className: styles['viewer-pdfviewer-page']
242
+ })), loaded && /*#__PURE__*/_react.default.createElement("div", {
243
+ className: (0, _classnames.default)(styles['viewer-pdfviewer-toolbar'], 'u-p-half')
244
+ }, !renderAllPages && /*#__PURE__*/_react.default.createElement("span", {
245
+ className: "u-mh-half"
246
+ }, /*#__PURE__*/_react.default.createElement(_PdfToolbarButton.default, {
247
+ icon: "top",
248
+ onClick: this.previousPage,
249
+ disabled: currentPage === 1,
250
+ label: t('Viewer.previous')
251
+ }), currentPage, "/", totalPages, /*#__PURE__*/_react.default.createElement(_PdfToolbarButton.default, {
252
+ icon: "bottom",
253
+ onClick: this.nextPage,
254
+ disabled: currentPage === totalPages,
255
+ label: t('Viewer.next')
256
+ })), /*#__PURE__*/_react.default.createElement("span", {
257
+ className: "u-mh-half"
258
+ }, /*#__PURE__*/_react.default.createElement(_PdfToolbarButton.default, {
259
+ icon: "dash",
260
+ onClick: this.scaleDown,
261
+ disabled: scale === MIN_SCALE,
262
+ label: t('Viewer.scaledown')
263
+ }), /*#__PURE__*/_react.default.createElement(_PdfToolbarButton.default, {
264
+ icon: "plus",
265
+ onClick: this.scaleUp,
266
+ disabled: scale === MAX_SCALE,
267
+ label: t('Viewer.scaleup')
268
+ }))));
269
+ }
270
+ }]);
271
+ return PdfJsViewer;
272
+ }(_react.Component);
273
+
274
+ exports.PdfJsViewer = PdfJsViewer;
275
+ PdfJsViewer.propTypes = {
276
+ url: _propTypes.default.string.isRequired,
277
+ gestures: _propTypes.default.object,
278
+ renderFallbackExtraContent: _propTypes.default.func
279
+ };
280
+
281
+ var _default = (0, _flow.default)(_withFileUrl.default, _withViewerLocales.withViewerLocales)(PdfJsViewer);
282
+
283
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export class PdfMobileViewer {
2
+ }
3
+ declare var _default: any;
4
+ export default _default;
@@ -0,0 +1,185 @@
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 = exports.PdfMobileViewer = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _cozyClient = require("cozy-client");
21
+
22
+ var _FileImageLoader = _interopRequireDefault(require("cozy-ui/transpiled/react/FileImageLoader"));
23
+
24
+ var _Spinner = _interopRequireDefault(require("cozy-ui/transpiled/react/Spinner"));
25
+
26
+ var _proptypes = require("cozy-ui/transpiled/react/proptypes");
27
+
28
+ var _Alert = require("cozy-ui/transpiled/react/providers/Alert");
29
+
30
+ var _NoViewer = _interopRequireDefault(require("../NoViewer"));
31
+
32
+ var _DownloadButton = _interopRequireDefault(require("../NoViewer/DownloadButton"));
33
+
34
+ var _withViewerLocales = require("../hoc/withViewerLocales");
35
+
36
+ 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); }
37
+
38
+ 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; }
39
+
40
+ var styles = {
41
+ "viewer-imageviewer": "styles__viewer-imageviewer___2O8pW",
42
+ "viewer-noviewer": "styles__viewer-noviewer___3HRGf",
43
+ "viewer-audioviewer": "styles__viewer-audioviewer___dpxUM",
44
+ "viewer-videoviewer": "styles__viewer-videoviewer___3yUQ5",
45
+ "viewer-pdfviewer": "styles__viewer-pdfviewer___3MJPk",
46
+ "viewer-textviewer": "styles__viewer-textviewer___1fl1c",
47
+ "viewer-canceled": "styles__viewer-canceled___3KRBk",
48
+ "viewer-textviewer-content": "styles__viewer-textviewer-content___30dhP",
49
+ "viewer-filename": "styles__viewer-filename___1-DIz",
50
+ "viewer-pdfviewer-pdf": "styles__viewer-pdfviewer-pdf___3R4jL",
51
+ "viewer-pdfviewer-page": "styles__viewer-pdfviewer-page___VvOF3",
52
+ "viewer-pdfviewer-toolbar": "styles__viewer-pdfviewer-toolbar___2Eat3",
53
+ "viewer-pdfMobile": "styles__viewer-pdfMobile___ym7we",
54
+ "viewer-pdfMobile--image": "styles__viewer-pdfMobile--image___3_zsS"
55
+ };
56
+
57
+ var PdfMobileViewer = function PdfMobileViewer(_ref) {
58
+ var file = _ref.file,
59
+ url = _ref.url,
60
+ t = _ref.t,
61
+ gestures = _ref.gestures;
62
+
63
+ var _useState = (0, _react.useState)(true),
64
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
65
+ loading = _useState2[0],
66
+ setLoading = _useState2[1];
67
+
68
+ var _useState3 = (0, _react.useState)(false),
69
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
70
+ error = _useState4[0],
71
+ setError = _useState4[1];
72
+
73
+ var imgRef = (0, _react.useRef)(null);
74
+
75
+ var _useAlert = (0, _Alert.useAlert)(),
76
+ showAlert = _useAlert.showAlert;
77
+
78
+ var client = (0, _cozyClient.useClient)();
79
+
80
+ var onImageError = function onImageError() {
81
+ setLoading(false);
82
+ setError(true);
83
+ };
84
+
85
+ var onImageLoad = function onImageLoad() {
86
+ setLoading(false);
87
+ };
88
+
89
+ var handleOnClick = (0, _react.useCallback)( /*#__PURE__*/function () {
90
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(file) {
91
+ return _regenerator.default.wrap(function _callee$(_context) {
92
+ while (1) {
93
+ switch (_context.prev = _context.next) {
94
+ case 0:
95
+ _context.prev = 0;
96
+ _context.next = 3;
97
+ return client.collection('io.cozy.files').download(file);
98
+
99
+ case 3:
100
+ _context.next = 8;
101
+ break;
102
+
103
+ case 5:
104
+ _context.prev = 5;
105
+ _context.t0 = _context["catch"](0);
106
+ showAlert({
107
+ message: t('Viewer.error.generic'),
108
+ severity: 'error',
109
+ variant: 'filled',
110
+ icon: false
111
+ });
112
+
113
+ case 8:
114
+ case "end":
115
+ return _context.stop();
116
+ }
117
+ }
118
+ }, _callee, null, [[0, 5]]);
119
+ }));
120
+
121
+ return function (_x) {
122
+ return _ref2.apply(this, arguments);
123
+ };
124
+ }(), [client, showAlert, t]);
125
+ (0, _react.useEffect)(function () {
126
+ if (gestures) {
127
+ gestures.get('pinch').set({
128
+ enable: true
129
+ });
130
+ gestures.on('pinchend tap', function (evt) {
131
+ if ((evt.type === 'pinchend' || evt.tapCount === 1) && evt.target === imgRef.current) {
132
+ handleOnClick(file);
133
+ }
134
+ });
135
+ return function () {
136
+ gestures.off('pinchend tap');
137
+ };
138
+ }
139
+ }, [client, gestures, file, handleOnClick]);
140
+
141
+ if (error) {
142
+ return /*#__PURE__*/_react.default.createElement(_NoViewer.default, {
143
+ file: file,
144
+ renderFallbackExtraContent: function renderFallbackExtraContent(file) {
145
+ return /*#__PURE__*/_react.default.createElement(_DownloadButton.default, {
146
+ file: file
147
+ });
148
+ }
149
+ });
150
+ }
151
+
152
+ return /*#__PURE__*/_react.default.createElement("div", {
153
+ className: styles['viewer-pdfMobile']
154
+ }, loading && /*#__PURE__*/_react.default.createElement(_Spinner.default, {
155
+ size: "xxlarge",
156
+ middle: true,
157
+ noMargin: true
158
+ }), file && /*#__PURE__*/_react.default.createElement(_FileImageLoader.default, {
159
+ file: file,
160
+ url: url,
161
+ linkType: "medium",
162
+ onError: onImageError,
163
+ key: file.id,
164
+ render: function render(src) {
165
+ return /*#__PURE__*/_react.default.createElement("img", {
166
+ ref: imgRef,
167
+ className: styles['viewer-pdfMobile--image'],
168
+ alt: file.name,
169
+ src: src,
170
+ onLoad: onImageLoad
171
+ });
172
+ }
173
+ }));
174
+ };
175
+
176
+ exports.PdfMobileViewer = PdfMobileViewer;
177
+ PdfMobileViewer.prototype = {
178
+ file: _proptypes.FileDoctype.isRequired,
179
+ url: _propTypes.default.string,
180
+ gestures: _propTypes.default.object
181
+ };
182
+
183
+ var _default = (0, _withViewerLocales.withViewerLocales)(PdfMobileViewer);
184
+
185
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ declare var _default: any;
2
+ export default _default;
@@ -0,0 +1,61 @@
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 _get = _interopRequireDefault(require("lodash/get"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _cozyClient = require("cozy-client");
15
+
16
+ var _Openwith = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Openwith"));
17
+
18
+ var _Button = require("cozy-ui/transpiled/react/deprecated/Button");
19
+
20
+ var _proptypes = require("cozy-ui/transpiled/react/proptypes");
21
+
22
+ var _NoViewer = _interopRequireDefault(require("../NoViewer"));
23
+
24
+ var _withViewerLocales = require("../hoc/withViewerLocales");
25
+
26
+ var ShortcutViewer = function ShortcutViewer(_ref) {
27
+ var t = _ref.t,
28
+ file = _ref.file;
29
+ var client = (0, _cozyClient.useClient)();
30
+
31
+ var _useFetchShortcut = (0, _cozyClient.useFetchShortcut)(client, file.id),
32
+ shortcutInfos = _useFetchShortcut.shortcutInfos;
33
+
34
+ var url = '';
35
+
36
+ if (shortcutInfos) {
37
+ url = new URL((0, _get.default)(shortcutInfos, 'data.attributes.url'));
38
+ }
39
+
40
+ return /*#__PURE__*/_react.default.createElement(_NoViewer.default, {
41
+ file: file,
42
+ renderFallbackExtraContent: function renderFallbackExtraContent() {
43
+ return /*#__PURE__*/_react.default.createElement(_Button.ButtonLink, {
44
+ label: "".concat(t('Viewer.goto', {
45
+ url: (0, _get.default)(url, 'origin', '')
46
+ })),
47
+ icon: _Openwith.default,
48
+ href: "".concat((0, _get.default)(url, 'origin', '')),
49
+ target: "_blank"
50
+ });
51
+ }
52
+ });
53
+ };
54
+
55
+ ShortcutViewer.propTypes = {
56
+ file: _proptypes.FileDoctype.isRequired
57
+ };
58
+
59
+ var _default = (0, _withViewerLocales.withViewerLocales)(ShortcutViewer);
60
+
61
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ export namespace locales {
2
+ export { en };
3
+ }
4
+ import en from "../locales/en.json";
@@ -0,0 +1,90 @@
1
+ export function isMarkdown(file: any): boolean;
2
+ export class TextViewer extends React.Component<any, any, any> {
3
+ constructor(props: Readonly<any>);
4
+ constructor(props: any, context?: any);
5
+ _mounted: boolean;
6
+ loadFile(): Promise<void>;
7
+ }
8
+ export namespace TextViewer {
9
+ namespace propTypes {
10
+ const client: PropTypes.Validator<object>;
11
+ const url: PropTypes.Validator<string>;
12
+ const file: any;
13
+ const renderFallbackExtraContent: PropTypes.Requireable<(...args: any[]) => any>;
14
+ }
15
+ }
16
+ declare var _default: {
17
+ new (props: Readonly<any>): {
18
+ state: {
19
+ status: string;
20
+ downloadUrl: null;
21
+ };
22
+ UNSAFE_componentWillMount(): void;
23
+ UNSAFE_componentWillReceiveProps(nextProps: any): void;
24
+ componentDidUpdate(): void;
25
+ loadDownloadUrl(): Promise<void>;
26
+ timeout: number | null | undefined;
27
+ getDownloadLink(file: any): any;
28
+ clearTimeout(): void;
29
+ reset: () => void;
30
+ render(): JSX.Element;
31
+ context: any;
32
+ setState<K extends string | number | symbol>(state: any, callback?: (() => void) | undefined): void;
33
+ forceUpdate(callback?: (() => void) | undefined): void;
34
+ readonly props: Readonly<any> & Readonly<{
35
+ children?: React.ReactNode;
36
+ }>;
37
+ refs: {
38
+ [key: string]: React.ReactInstance;
39
+ };
40
+ componentDidMount?(): void;
41
+ shouldComponentUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): boolean;
42
+ componentWillUnmount?(): void;
43
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
44
+ getSnapshotBeforeUpdate?(prevProps: Readonly<any>, prevState: Readonly<any>): any;
45
+ componentWillMount?(): void;
46
+ componentWillReceiveProps?(nextProps: Readonly<any>, nextContext: any): void;
47
+ componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): void;
48
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): void;
49
+ };
50
+ new (props: any, context?: any): {
51
+ state: {
52
+ status: string;
53
+ downloadUrl: null;
54
+ };
55
+ UNSAFE_componentWillMount(): void;
56
+ UNSAFE_componentWillReceiveProps(nextProps: any): void;
57
+ componentDidUpdate(): void;
58
+ loadDownloadUrl(): Promise<void>;
59
+ timeout: number | null | undefined;
60
+ getDownloadLink(file: any): any;
61
+ clearTimeout(): void;
62
+ reset: () => void;
63
+ render(): JSX.Element;
64
+ context: any;
65
+ setState<K extends string | number | symbol>(state: any, callback?: (() => void) | undefined): void;
66
+ forceUpdate(callback?: (() => void) | undefined): void;
67
+ readonly props: Readonly<any> & Readonly<{
68
+ children?: React.ReactNode;
69
+ }>;
70
+ refs: {
71
+ [key: string]: React.ReactInstance;
72
+ };
73
+ componentDidMount?(): void;
74
+ shouldComponentUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): boolean;
75
+ componentWillUnmount?(): void;
76
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
77
+ getSnapshotBeforeUpdate?(prevProps: Readonly<any>, prevState: Readonly<any>): any;
78
+ componentWillMount?(): void;
79
+ componentWillReceiveProps?(nextProps: Readonly<any>, nextContext: any): void;
80
+ componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): void;
81
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<any>, nextContext: any): void;
82
+ };
83
+ contextTypes: {
84
+ client: PropTypes.Validator<object>;
85
+ };
86
+ contextType?: React.Context<any> | undefined;
87
+ };
88
+ export default _default;
89
+ import React from "react";
90
+ import PropTypes from "prop-types";