@pie-lib/editable-html-tip-tap 2.1.2-next.3 → 2.1.2-next.31

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 (273) hide show
  1. package/dist/components/CharacterPicker.d.ts +31 -0
  2. package/dist/components/CharacterPicker.js +131 -0
  3. package/dist/components/EditableHtml.d.ts +11 -0
  4. package/dist/components/EditableHtml.js +291 -0
  5. package/dist/components/MenuBar.d.ts +11 -0
  6. package/dist/components/MenuBar.js +462 -0
  7. package/dist/components/TiptapContainer.d.ts +11 -0
  8. package/dist/components/TiptapContainer.js +154 -0
  9. package/dist/components/characters/characterUtils.d.ts +35 -0
  10. package/dist/components/characters/characterUtils.js +465 -0
  11. package/dist/components/characters/custom-popper.d.ts +14 -0
  12. package/dist/components/characters/custom-popper.js +32 -0
  13. package/dist/components/common/done-button.d.ts +30 -0
  14. package/dist/components/common/done-button.js +26 -0
  15. package/dist/components/common/toolbar-buttons.d.ts +38 -0
  16. package/dist/components/common/toolbar-buttons.js +91 -0
  17. package/dist/components/icons/CssIcon.d.ts +11 -0
  18. package/dist/components/icons/CssIcon.js +14 -0
  19. package/dist/components/icons/RespArea.d.ts +26 -0
  20. package/dist/components/icons/RespArea.js +42 -0
  21. package/dist/components/icons/TableIcons.d.ts +14 -0
  22. package/dist/components/icons/TableIcons.js +32 -0
  23. package/dist/components/icons/TextAlign.d.ts +18 -0
  24. package/dist/components/icons/TextAlign.js +134 -0
  25. package/dist/components/image/AltDialog.d.ts +22 -0
  26. package/dist/components/image/AltDialog.js +61 -0
  27. package/dist/components/image/ImageToolbar.d.ts +24 -0
  28. package/dist/components/image/ImageToolbar.js +80 -0
  29. package/dist/components/image/InsertImageHandler.d.ts +32 -0
  30. package/dist/components/image/InsertImageHandler.js +53 -0
  31. package/dist/components/media/MediaDialog.d.ts +43 -0
  32. package/dist/components/media/MediaDialog.js +389 -0
  33. package/dist/components/media/MediaToolbar.d.ts +19 -0
  34. package/dist/components/media/MediaToolbar.js +41 -0
  35. package/dist/components/media/MediaWrapper.d.ts +19 -0
  36. package/dist/components/respArea/DragInTheBlank/DragInTheBlank.d.ts +23 -0
  37. package/dist/components/respArea/DragInTheBlank/DragInTheBlank.js +58 -0
  38. package/dist/components/respArea/DragInTheBlank/choice.d.ts +56 -0
  39. package/dist/components/respArea/DragInTheBlank/choice.js +156 -0
  40. package/dist/components/respArea/ExplicitConstructedResponse.d.ts +20 -0
  41. package/dist/components/respArea/ExplicitConstructedResponse.js +83 -0
  42. package/dist/components/respArea/InlineDropdown.d.ts +18 -0
  43. package/dist/components/respArea/InlineDropdown.js +119 -0
  44. package/dist/components/respArea/MathTemplated.d.ts +19 -0
  45. package/dist/components/respArea/MathTemplated.js +97 -0
  46. package/dist/components/respArea/ToolbarIcon.d.ts +14 -0
  47. package/dist/components/respArea/ToolbarIcon.js +17 -0
  48. package/dist/components/respArea/inlineDropdownUtils.d.ts +15 -0
  49. package/dist/components/respArea/inlineDropdownUtils.js +15 -0
  50. package/dist/constants.d.ts +13 -0
  51. package/dist/constants.js +4 -0
  52. package/dist/extensions/css.d.ts +11 -0
  53. package/dist/extensions/css.js +115 -0
  54. package/dist/extensions/custom-toolbar-wrapper.d.ts +11 -0
  55. package/dist/extensions/custom-toolbar-wrapper.js +61 -0
  56. package/dist/extensions/div-node.d.ts +10 -0
  57. package/dist/extensions/div-node.js +42 -0
  58. package/dist/extensions/ensure-empty-root-div.d.ts +14 -0
  59. package/dist/extensions/ensure-empty-root-div.js +24 -0
  60. package/dist/extensions/ensure-list-item-content-is-div.d.ts +15 -0
  61. package/dist/extensions/ensure-list-item-content-is-div.js +31 -0
  62. package/dist/extensions/extended-list-item.d.ts +13 -0
  63. package/dist/extensions/extended-list-item.js +5 -0
  64. package/dist/extensions/extended-table-cell.d.ts +10 -0
  65. package/dist/extensions/extended-table-cell.js +6 -0
  66. package/dist/extensions/extended-table.d.ts +17 -0
  67. package/dist/extensions/extended-table.js +34 -0
  68. package/dist/extensions/heading-paragraph.d.ts +17 -0
  69. package/dist/extensions/heading-paragraph.js +30 -0
  70. package/dist/extensions/image-component.d.ts +22 -0
  71. package/dist/extensions/image-component.js +220 -0
  72. package/dist/extensions/image.d.ts +10 -0
  73. package/dist/extensions/image.js +68 -0
  74. package/dist/extensions/index.d.ts +16 -0
  75. package/dist/extensions/index.js +64 -0
  76. package/dist/extensions/math.d.ts +15 -0
  77. package/dist/extensions/math.js +158 -0
  78. package/dist/extensions/media.d.ts +19 -0
  79. package/dist/extensions/media.js +149 -0
  80. package/dist/extensions/responseArea.d.ts +27 -0
  81. package/dist/extensions/responseArea.js +259 -0
  82. package/dist/index.d.ts +13 -0
  83. package/dist/index.js +7 -0
  84. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +16 -0
  85. package/dist/styles/editorContainerStyles.d.ts +134 -0
  86. package/dist/theme.d.ts +9 -0
  87. package/dist/utils/helper.d.ts +9 -0
  88. package/dist/utils/helper.js +27 -0
  89. package/dist/utils/size.d.ts +9 -0
  90. package/dist/utils/size.js +14 -0
  91. package/package.json +56 -40
  92. package/CHANGELOG.json +0 -32
  93. package/CHANGELOG.md +0 -2532
  94. package/LICENSE.md +0 -5
  95. package/lib/components/CharacterPicker.js +0 -195
  96. package/lib/components/CharacterPicker.js.map +0 -1
  97. package/lib/components/EditableHtml.js +0 -375
  98. package/lib/components/EditableHtml.js.map +0 -1
  99. package/lib/components/MenuBar.js +0 -693
  100. package/lib/components/MenuBar.js.map +0 -1
  101. package/lib/components/TiptapContainer.js +0 -234
  102. package/lib/components/TiptapContainer.js.map +0 -1
  103. package/lib/components/characters/characterUtils.js +0 -378
  104. package/lib/components/characters/characterUtils.js.map +0 -1
  105. package/lib/components/characters/custom-popper.js +0 -44
  106. package/lib/components/characters/custom-popper.js.map +0 -1
  107. package/lib/components/common/done-button.js +0 -34
  108. package/lib/components/common/done-button.js.map +0 -1
  109. package/lib/components/common/toolbar-buttons.js +0 -144
  110. package/lib/components/common/toolbar-buttons.js.map +0 -1
  111. package/lib/components/icons/CssIcon.js +0 -25
  112. package/lib/components/icons/CssIcon.js.map +0 -1
  113. package/lib/components/icons/RespArea.js +0 -72
  114. package/lib/components/icons/RespArea.js.map +0 -1
  115. package/lib/components/icons/TableIcons.js +0 -53
  116. package/lib/components/icons/TableIcons.js.map +0 -1
  117. package/lib/components/icons/TextAlign.js +0 -157
  118. package/lib/components/icons/TextAlign.js.map +0 -1
  119. package/lib/components/image/AltDialog.js +0 -98
  120. package/lib/components/image/AltDialog.js.map +0 -1
  121. package/lib/components/image/ImageToolbar.js +0 -137
  122. package/lib/components/image/ImageToolbar.js.map +0 -1
  123. package/lib/components/image/InsertImageHandler.js +0 -135
  124. package/lib/components/image/InsertImageHandler.js.map +0 -1
  125. package/lib/components/media/MediaDialog.js +0 -594
  126. package/lib/components/media/MediaDialog.js.map +0 -1
  127. package/lib/components/media/MediaToolbar.js +0 -74
  128. package/lib/components/media/MediaToolbar.js.map +0 -1
  129. package/lib/components/media/MediaWrapper.js +0 -67
  130. package/lib/components/media/MediaWrapper.js.map +0 -1
  131. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +0 -84
  132. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +0 -1
  133. package/lib/components/respArea/DragInTheBlank/choice.js +0 -250
  134. package/lib/components/respArea/DragInTheBlank/choice.js.map +0 -1
  135. package/lib/components/respArea/ExplicitConstructedResponse.js +0 -136
  136. package/lib/components/respArea/ExplicitConstructedResponse.js.map +0 -1
  137. package/lib/components/respArea/InlineDropdown.js +0 -165
  138. package/lib/components/respArea/InlineDropdown.js.map +0 -1
  139. package/lib/components/respArea/MathTemplated.js +0 -130
  140. package/lib/components/respArea/MathTemplated.js.map +0 -1
  141. package/lib/components/respArea/ToolbarIcon.js +0 -81
  142. package/lib/components/respArea/ToolbarIcon.js.map +0 -1
  143. package/lib/constants.js +0 -11
  144. package/lib/constants.js.map +0 -1
  145. package/lib/extensions/css.js +0 -217
  146. package/lib/extensions/css.js.map +0 -1
  147. package/lib/extensions/custom-toolbar-wrapper.js +0 -92
  148. package/lib/extensions/custom-toolbar-wrapper.js.map +0 -1
  149. package/lib/extensions/div-node.js +0 -83
  150. package/lib/extensions/div-node.js.map +0 -1
  151. package/lib/extensions/ensure-empty-root-div.js +0 -48
  152. package/lib/extensions/ensure-empty-root-div.js.map +0 -1
  153. package/lib/extensions/ensure-list-item-content-is-div.js +0 -64
  154. package/lib/extensions/ensure-list-item-content-is-div.js.map +0 -1
  155. package/lib/extensions/extended-list-item.js +0 -15
  156. package/lib/extensions/extended-list-item.js.map +0 -1
  157. package/lib/extensions/extended-table-cell.js +0 -22
  158. package/lib/extensions/extended-table-cell.js.map +0 -1
  159. package/lib/extensions/extended-table.js +0 -75
  160. package/lib/extensions/extended-table.js.map +0 -1
  161. package/lib/extensions/heading-paragraph.js +0 -61
  162. package/lib/extensions/heading-paragraph.js.map +0 -1
  163. package/lib/extensions/image-component.js +0 -348
  164. package/lib/extensions/image-component.js.map +0 -1
  165. package/lib/extensions/image.js +0 -134
  166. package/lib/extensions/image.js.map +0 -1
  167. package/lib/extensions/index.js +0 -46
  168. package/lib/extensions/index.js.map +0 -1
  169. package/lib/extensions/math.js +0 -343
  170. package/lib/extensions/math.js.map +0 -1
  171. package/lib/extensions/media.js +0 -243
  172. package/lib/extensions/media.js.map +0 -1
  173. package/lib/extensions/responseArea.js +0 -446
  174. package/lib/extensions/responseArea.js.map +0 -1
  175. package/lib/index.js +0 -30
  176. package/lib/index.js.map +0 -1
  177. package/lib/styles/editorContainerStyles.js +0 -137
  178. package/lib/styles/editorContainerStyles.js.map +0 -1
  179. package/lib/theme.js +0 -8
  180. package/lib/theme.js.map +0 -1
  181. package/lib/utils/helper.js +0 -73
  182. package/lib/utils/helper.js.map +0 -1
  183. package/lib/utils/size.js +0 -26
  184. package/lib/utils/size.js.map +0 -1
  185. package/src/__tests__/EditableHtml.test.jsx +0 -474
  186. package/src/__tests__/constants.test.js +0 -19
  187. package/src/__tests__/div-to-paragraph-conversion.test.jsx +0 -125
  188. package/src/__tests__/extensions.test.js +0 -208
  189. package/src/__tests__/index.test.jsx +0 -154
  190. package/src/__tests__/size-utils.test.js +0 -64
  191. package/src/__tests__/theme.test.js +0 -17
  192. package/src/components/CharacterPicker.jsx +0 -200
  193. package/src/components/EditableHtml.jsx +0 -438
  194. package/src/components/MenuBar.jsx +0 -549
  195. package/src/components/TiptapContainer.jsx +0 -219
  196. package/src/components/__tests__/AltDialog.test.jsx +0 -147
  197. package/src/components/__tests__/CharacterPicker.test.jsx +0 -219
  198. package/src/components/__tests__/CssIcon.test.jsx +0 -46
  199. package/src/components/__tests__/DragInTheBlank.test.jsx +0 -255
  200. package/src/components/__tests__/ExplicitConstructedResponse.test.jsx +0 -204
  201. package/src/components/__tests__/ImageToolbar.test.jsx +0 -128
  202. package/src/components/__tests__/InlineDropdown.test.jsx +0 -380
  203. package/src/components/__tests__/InsertImageHandler.test.js +0 -161
  204. package/src/components/__tests__/MediaDialog.test.jsx +0 -293
  205. package/src/components/__tests__/MediaToolbar.test.jsx +0 -74
  206. package/src/components/__tests__/MediaWrapper.test.jsx +0 -81
  207. package/src/components/__tests__/MenuBar.test.jsx +0 -249
  208. package/src/components/__tests__/RespArea.test.jsx +0 -122
  209. package/src/components/__tests__/TableIcons.test.jsx +0 -149
  210. package/src/components/__tests__/TextAlign.test.jsx +0 -167
  211. package/src/components/__tests__/TiptapContainer.test.jsx +0 -138
  212. package/src/components/__tests__/characterUtils.test.js +0 -166
  213. package/src/components/__tests__/choice.test.jsx +0 -171
  214. package/src/components/__tests__/custom-popper.test.jsx +0 -82
  215. package/src/components/__tests__/done-button.test.jsx +0 -54
  216. package/src/components/__tests__/toolbar-buttons.test.jsx +0 -234
  217. package/src/components/characters/characterUtils.js +0 -447
  218. package/src/components/characters/custom-popper.js +0 -38
  219. package/src/components/common/done-button.jsx +0 -27
  220. package/src/components/common/toolbar-buttons.jsx +0 -122
  221. package/src/components/icons/CssIcon.jsx +0 -15
  222. package/src/components/icons/RespArea.jsx +0 -71
  223. package/src/components/icons/TableIcons.jsx +0 -52
  224. package/src/components/icons/TextAlign.jsx +0 -114
  225. package/src/components/image/AltDialog.jsx +0 -82
  226. package/src/components/image/ImageToolbar.jsx +0 -99
  227. package/src/components/image/InsertImageHandler.js +0 -107
  228. package/src/components/media/MediaDialog.jsx +0 -596
  229. package/src/components/media/MediaToolbar.jsx +0 -49
  230. package/src/components/media/MediaWrapper.jsx +0 -39
  231. package/src/components/respArea/DragInTheBlank/DragInTheBlank.jsx +0 -76
  232. package/src/components/respArea/DragInTheBlank/choice.jsx +0 -256
  233. package/src/components/respArea/ExplicitConstructedResponse.jsx +0 -135
  234. package/src/components/respArea/InlineDropdown.jsx +0 -167
  235. package/src/components/respArea/MathTemplated.jsx +0 -124
  236. package/src/components/respArea/ToolbarIcon.jsx +0 -66
  237. package/src/components/respArea/__tests__/MathTemplated.test.jsx +0 -210
  238. package/src/constants.js +0 -5
  239. package/src/extensions/__tests__/css.test.js +0 -196
  240. package/src/extensions/__tests__/custom-toolbar-wrapper.test.jsx +0 -180
  241. package/src/extensions/__tests__/divNode.test.js +0 -87
  242. package/src/extensions/__tests__/ensure-empty-root-div.test.js +0 -57
  243. package/src/extensions/__tests__/ensure-list-item-content-is-div.test.js +0 -44
  244. package/src/extensions/__tests__/extended-list-item.test.js +0 -13
  245. package/src/extensions/__tests__/extended-table-cell.test.js +0 -22
  246. package/src/extensions/__tests__/extended-table.test.js +0 -183
  247. package/src/extensions/__tests__/image-component.test.jsx +0 -345
  248. package/src/extensions/__tests__/image.test.js +0 -237
  249. package/src/extensions/__tests__/math.test.js +0 -459
  250. package/src/extensions/__tests__/media-node-view.test.jsx +0 -298
  251. package/src/extensions/__tests__/media.test.js +0 -271
  252. package/src/extensions/__tests__/responseArea.test.js +0 -601
  253. package/src/extensions/css.js +0 -220
  254. package/src/extensions/custom-toolbar-wrapper.jsx +0 -78
  255. package/src/extensions/div-node.js +0 -86
  256. package/src/extensions/ensure-empty-root-div.js +0 -47
  257. package/src/extensions/ensure-list-item-content-is-div.js +0 -62
  258. package/src/extensions/extended-list-item.js +0 -10
  259. package/src/extensions/extended-table-cell.js +0 -19
  260. package/src/extensions/extended-table.js +0 -60
  261. package/src/extensions/heading-paragraph.js +0 -53
  262. package/src/extensions/image-component.jsx +0 -338
  263. package/src/extensions/image.js +0 -109
  264. package/src/extensions/index.js +0 -81
  265. package/src/extensions/math.js +0 -327
  266. package/src/extensions/media.js +0 -188
  267. package/src/extensions/responseArea.js +0 -401
  268. package/src/index.jsx +0 -5
  269. package/src/styles/editorContainerStyles.js +0 -145
  270. package/src/theme.js +0 -1
  271. package/src/utils/__tests__/helper.test.js +0 -126
  272. package/src/utils/helper.js +0 -69
  273. package/src/utils/size.js +0 -32
@@ -1,594 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = exports.MediaDialog = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
- var _react = _interopRequireDefault(require("react"));
17
- var _propTypes = _interopRequireDefault(require("prop-types"));
18
- var _debug = _interopRequireDefault(require("debug"));
19
- var _styles = require("@mui/material/styles");
20
- var _Button = _interopRequireDefault(require("@mui/material/Button"));
21
- var _Dialog = _interopRequireDefault(require("@mui/material/Dialog"));
22
- var _Tabs = _interopRequireDefault(require("@mui/material/Tabs"));
23
- var _Tab = _interopRequireDefault(require("@mui/material/Tab"));
24
- var _DialogTitle = _interopRequireDefault(require("@mui/material/DialogTitle"));
25
- var _DialogContent = _interopRequireDefault(require("@mui/material/DialogContent"));
26
- var _DialogContentText = _interopRequireDefault(require("@mui/material/DialogContentText"));
27
- var _DialogActions = _interopRequireDefault(require("@mui/material/DialogActions"));
28
- var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
29
- var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
30
- var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
31
- var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
32
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
33
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
34
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
35
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
36
- var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:media:dialog');
37
- var matchYoutubeUrl = function matchYoutubeUrl(url) {
38
- if (!url) {
39
- return false;
40
- }
41
- var p = /^(?:https?:\/\/)?(?:m\.|www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
42
- if (url.match(p)) {
43
- return url.match(p)[1];
44
- }
45
- return false;
46
- };
47
- var matchVimeoUrl = function matchVimeoUrl(url) {
48
- return url && /(http|https)?:\/\/(www\.)?(player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^/]*)\/videos\/|)(video\/)?(\d+)(?:|\/\?)/.test(url);
49
- };
50
- var matchDriveUrl = function matchDriveUrl(url) {
51
- return url && /^https:\/\/drive\.google\.com\/(?:file\/d\/|drive\/(?:u\/\d+\/)?folders\/|uc\?id=)([a-zA-Z0-9_-]+)/.test(url);
52
- };
53
- var matchSoundCloudUrl = function matchSoundCloudUrl(url) {
54
- if (!url) {
55
- return false;
56
- }
57
- var regexp = /^https?:\/\/(soundcloud\.com|snd\.sc)\/(.*)$/;
58
- return url.match(regexp) && url.match(regexp)[2];
59
- };
60
- var makeApiRequest = function makeApiRequest(url) {
61
- return new Promise(function (resolve) {
62
- try {
63
- fetch("https://soundcloud.com/oembed?format=json&url=".concat(url)).then(function (response) {
64
- return response.json();
65
- }).then(function (json) {
66
- var d = document.createElement('div');
67
- d.innerHTML = json.html;
68
- var iframe = d.querySelector('iframe');
69
- resolve(iframe.src);
70
- })["catch"](function (err) {
71
- resolve('');
72
- log(err);
73
- });
74
- } catch (err) {
75
- resolve('');
76
- }
77
- });
78
- };
79
- var typeMap = {
80
- video: 'Video',
81
- audio: 'Audio'
82
- };
83
- var tabsTypeMap = {
84
- uploadFile: 'upload-file',
85
- insertUrl: 'insert-url'
86
- };
87
- var StyledDialog = (0, _styles.styled)(_Dialog["default"])(function (_ref) {
88
- var theme = _ref.theme;
89
- return {
90
- '& .MuiDialog-paper': {
91
- minWidth: '500px'
92
- }
93
- };
94
- });
95
- var StyledDialogContent = (0, _styles.styled)(_DialogContent["default"])(function (_ref2) {
96
- var theme = _ref2.theme;
97
- return {
98
- padding: 0
99
- };
100
- });
101
- var StyledRow = (0, _styles.styled)('div')(function (_ref3) {
102
- var theme = _ref3.theme;
103
- return {
104
- display: 'flex',
105
- flexDirection: 'space-between'
106
- };
107
- });
108
- var StyledUploadInput = (0, _styles.styled)('div')(function (_ref4) {
109
- var theme = _ref4.theme;
110
- return {
111
- marginTop: theme.spacing(1.5)
112
- };
113
- });
114
- var StyledInput = (0, _styles.styled)('input')(function (_ref5) {
115
- var theme = _ref5.theme;
116
- return {};
117
- });
118
- var StyledError = (0, _styles.styled)(_Typography["default"])(function (_ref6) {
119
- var theme = _ref6.theme;
120
- return {
121
- marginTop: theme.spacing(1.5),
122
- color: theme.palette.error.main
123
- };
124
- });
125
- var StyledIconButton = (0, _styles.styled)(_IconButton["default"])(function (_ref7) {
126
- var theme = _ref7.theme;
127
- return {
128
- marginLeft: theme.spacing(1.5)
129
- };
130
- });
131
- var MediaDialog = exports.MediaDialog = /*#__PURE__*/function (_React$Component) {
132
- function MediaDialog(props) {
133
- var _this;
134
- (0, _classCallCheck2["default"])(this, MediaDialog);
135
- _this = _callSuper(this, MediaDialog, [props]);
136
- (0, _defineProperty2["default"])(_this, "formatUrl", function () {
137
- var _this$state = _this.state,
138
- url = _this$state.url,
139
- urlToUse = _this$state.urlToUse,
140
- starts = _this$state.starts,
141
- ends = _this$state.ends;
142
- var isYoutube = matchYoutubeUrl(url);
143
- var isVimeo = matchVimeoUrl(url);
144
- var formattedUrl = urlToUse;
145
- if ((isYoutube || isVimeo) && urlToUse) {
146
- var params = [];
147
- var paramName;
148
- var paramStart;
149
- switch (true) {
150
- case isVimeo:
151
- paramName = 't';
152
- paramStart = '#';
153
- break;
154
- case isYoutube:
155
- paramName = 'start';
156
- paramStart = '?';
157
- break;
158
- default:
159
- paramName = 'start';
160
- paramStart = '?';
161
- }
162
- if (starts) {
163
- params.push("".concat(paramName, "=").concat(starts));
164
- }
165
- if (ends) {
166
- params.push("end=".concat(ends));
167
- }
168
- formattedUrl = "".concat(urlToUse).concat(params.length ? paramStart : '').concat(params.join('&'));
169
- }
170
- var callback = function callback() {
171
- return _this.setState({
172
- formattedUrl: formattedUrl,
173
- updating: false
174
- });
175
- };
176
- _this.setState({
177
- formattedUrl: null,
178
- updating: true
179
- }, callback);
180
- });
181
- (0, _defineProperty2["default"])(_this, "handleStateChange", function (newState) {
182
- return _this.setState(newState, _this.formatUrl);
183
- });
184
- (0, _defineProperty2["default"])(_this, "checkAudio", function (value) {
185
- if (matchSoundCloudUrl(value)) {
186
- makeApiRequest(value).then(function (urlToUse) {
187
- _this.handleStateChange({
188
- urlToUse: urlToUse,
189
- invalid: !urlToUse,
190
- url: value
191
- });
192
- })["catch"](log);
193
- }
194
- });
195
- (0, _defineProperty2["default"])(_this, "checkVideo", function (value) {
196
- if (matchYoutubeUrl(value)) {
197
- var regExp = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/;
198
- var match = value.match(regExp);
199
- var id = match[2];
200
- var urlToUse = "https://youtube.com/embed/".concat(id);
201
- log('is youtube');
202
- _this.handleStateChange({
203
- urlToUse: urlToUse,
204
- url: value,
205
- invalid: false
206
- });
207
- }
208
- if (matchVimeoUrl(value)) {
209
- var _id = value.replace(/.*vimeo.com\/(.*)/g, '$1');
210
- var _urlToUse2 = "https://player.vimeo.com/video/".concat(_id);
211
- log('is vimeo');
212
- _this.handleStateChange({
213
- urlToUse: _urlToUse2,
214
- url: value,
215
- ends: null,
216
- invalid: false
217
- });
218
- }
219
- if (matchDriveUrl(value)) {
220
- // https://drive.google.com/file/d/11QkK_gUO068amNvZBm9cxZpKX74WYb8q/view
221
- var _id2 = value.replace(/^https:\/\/drive\.google\.com\/(?:file\/d\/|drive\/(?:u\/\d+\/)?folders\/|uc\?id=)([a-zA-Z0-9_-]+)\/.*/, '$1');
222
- var _urlToUse3 = "https://drive.google.com/file/d/".concat(_id2, "/preview");
223
- log('is google drive');
224
- _this.handleStateChange({
225
- urlToUse: _urlToUse3,
226
- url: value,
227
- ends: null,
228
- invalid: false
229
- });
230
- }
231
- });
232
- (0, _defineProperty2["default"])(_this, "urlChange", function (e) {
233
- var _ref8 = e.target || {},
234
- value = _ref8.value;
235
- var type = _this.props.type;
236
- if (type && type === 'audio') {
237
- _this.checkAudio(value);
238
- return;
239
- } else if (type && type === 'video') {
240
- _this.checkVideo(value);
241
- return;
242
- }
243
- _this.handleStateChange({
244
- urlToUse: null,
245
- url: null,
246
- invalid: true
247
- });
248
- });
249
- (0, _defineProperty2["default"])(_this, "changeHandler", function (type) {
250
- return function (e) {
251
- return _this.handleStateChange((0, _defineProperty2["default"])({}, type, e.target.value));
252
- };
253
- });
254
- (0, _defineProperty2["default"])(_this, "handleDone", function (val) {
255
- var handleClose = _this.props.handleClose;
256
- var _this$state2 = _this.state,
257
- tabValue = _this$state2.tabValue,
258
- fileUpload = _this$state2.fileUpload;
259
- var isInsertURL = tabValue === tabsTypeMap.insertUrl;
260
- if (!val) {
261
- if (fileUpload.url) {
262
- _this.handleRemoveFile();
263
- }
264
- handleClose(val);
265
- return;
266
- }
267
- if (isInsertURL) {
268
- var _this$state3 = _this.state,
269
- ends = _this$state3.ends,
270
- height = _this$state3.height,
271
- url = _this$state3.url,
272
- urlToUse = _this$state3.urlToUse,
273
- formattedUrl = _this$state3.formattedUrl,
274
- starts = _this$state3.starts,
275
- width = _this$state3.width;
276
- handleClose(val, {
277
- tag: 'iframe',
278
- ends: ends,
279
- height: height,
280
- starts: starts,
281
- width: width,
282
- url: url,
283
- urlToUse: urlToUse,
284
- src: formattedUrl
285
- });
286
- return;
287
- }
288
- if (!fileUpload.loading) {
289
- handleClose(val, {
290
- tag: 'audio',
291
- src: fileUpload.url
292
- });
293
- return;
294
- }
295
- _this.setState({
296
- fileUpload: _objectSpread(_objectSpread({}, fileUpload), {}, {
297
- scheduled: true
298
- })
299
- });
300
- });
301
- (0, _defineProperty2["default"])(_this, "handleUploadFile", /*#__PURE__*/function () {
302
- var _ref9 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(e) {
303
- var fileChosen, reader;
304
- return _regenerator["default"].wrap(function (_context) {
305
- while (1) switch (_context.prev = _context.next) {
306
- case 0:
307
- e.preventDefault();
308
- _this.setState({
309
- fileUpload: _objectSpread(_objectSpread({}, _this.state.fileUpload), {}, {
310
- error: null,
311
- loading: true
312
- })
313
- });
314
- fileChosen = e.target.files[0];
315
- reader = new FileReader();
316
- reader.onload = function () {
317
- var dataURL = reader.result;
318
- _this.setState({
319
- fileUpload: _objectSpread(_objectSpread({}, _this.state.fileUpload), {}, {
320
- url: dataURL,
321
- mimeType: fileChosen.type
322
- })
323
- });
324
- };
325
- reader.readAsDataURL(fileChosen);
326
- _this.props.uploadSoundSupport.add({
327
- fileChosen: fileChosen,
328
- done: function done(err, src) {
329
- log('done: err:', err);
330
- if (err) {
331
- //eslint-disable-next-line
332
- console.log(err);
333
- _this.setState({
334
- fileUpload: _objectSpread(_objectSpread({}, _this.state.fileUpload), {}, {
335
- scheduled: false,
336
- loading: false,
337
- error: err
338
- })
339
- });
340
- return;
341
- }
342
- var fileUpload = _this.state.fileUpload;
343
- var callback = fileUpload && fileUpload.scheduled ? _this.handleDone.bind(_this, true) : undefined;
344
- _this.setState({
345
- fileUpload: _objectSpread(_objectSpread({}, fileUpload), {}, {
346
- scheduled: false,
347
- loading: false,
348
- url: src
349
- })
350
- }, callback);
351
- }
352
- });
353
- case 1:
354
- case "end":
355
- return _context.stop();
356
- }
357
- }, _callee);
358
- }));
359
- return function (_x) {
360
- return _ref9.apply(this, arguments);
361
- };
362
- }());
363
- (0, _defineProperty2["default"])(_this, "handleRemoveFile", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
364
- return _regenerator["default"].wrap(function (_context2) {
365
- while (1) switch (_context2.prev = _context2.next) {
366
- case 0:
367
- _this.props.uploadSoundSupport["delete"](_this.state.fileUpload.url, function (err) {
368
- if (err) {
369
- //eslint-disable-next-line
370
- console.log(err);
371
- _this.setState({
372
- fileUpload: _objectSpread(_objectSpread({}, _this.state.fileUpload), {}, {
373
- error: err
374
- })
375
- });
376
- }
377
- });
378
-
379
- // we should put it inside uploadSoundSupport.delete but we can leave it here for testing purposes
380
- _this.setState({
381
- fileUpload: _objectSpread(_objectSpread({}, _this.state.fileUpload), {}, {
382
- loading: false,
383
- url: '',
384
- mimeType: ''
385
- })
386
- });
387
- case 1:
388
- case "end":
389
- return _context2.stop();
390
- }
391
- }, _callee2);
392
- })));
393
- var _ends = props.ends,
394
- _height = props.height,
395
- _src = props.src,
396
- _starts = props.starts,
397
- _type = props.type,
398
- uploadSoundSupport = props.uploadSoundSupport,
399
- _url = props.url,
400
- _urlToUse = props.urlToUse,
401
- _width = props.width;
402
- var showUploadFile = (uploadSoundSupport === null || uploadSoundSupport === void 0 ? void 0 : uploadSoundSupport.add) && (uploadSoundSupport === null || uploadSoundSupport === void 0 ? void 0 : uploadSoundSupport["delete"]) && _type !== 'video' && !_src;
403
- _this.state = {
404
- ends: _ends || 0,
405
- url: _url,
406
- urlToUse: _urlToUse,
407
- formattedUrl: _src,
408
- height: _height || 315,
409
- invalid: false,
410
- starts: _starts || 0,
411
- width: _width || 560,
412
- // default selected tab should be upload file if available
413
- tabValue: showUploadFile ? tabsTypeMap.uploadFile : tabsTypeMap.insertUrl,
414
- fileUpload: {
415
- error: null,
416
- loading: false,
417
- scheduled: false,
418
- url: '',
419
- mimeType: ''
420
- }
421
- };
422
- return _this;
423
- }
424
- (0, _inherits2["default"])(MediaDialog, _React$Component);
425
- return (0, _createClass2["default"])(MediaDialog, [{
426
- key: "componentDidMount",
427
- value: function componentDidMount() {
428
- if (this.props.url) {
429
- this.urlChange({
430
- target: {
431
- value: this.props.url
432
- }
433
- });
434
- }
435
- }
436
- }, {
437
- key: "render",
438
- value: function render() {
439
- var _this2 = this;
440
- var _this$props = this.props,
441
- open = _this$props.open,
442
- disablePortal = _this$props.disablePortal,
443
- type = _this$props.type,
444
- edit = _this$props.edit,
445
- uploadSoundSupport = _this$props.uploadSoundSupport;
446
- var _this$state4 = this.state,
447
- ends = _this$state4.ends,
448
- height = _this$state4.height,
449
- invalid = _this$state4.invalid,
450
- starts = _this$state4.starts,
451
- width = _this$state4.width,
452
- url = _this$state4.url,
453
- mimeType = _this$state4.mimeType,
454
- formattedUrl = _this$state4.formattedUrl,
455
- updating = _this$state4.updating,
456
- tabValue = _this$state4.tabValue,
457
- fileUpload = _this$state4.fileUpload;
458
- var isYoutube = matchYoutubeUrl(url);
459
- var isInsertURL = tabValue === tabsTypeMap.insertUrl;
460
- var isUploadMedia = tabValue === tabsTypeMap.uploadFile;
461
- var submitIsDisabled = isInsertURL ? invalid || url === null || url === undefined : !fileUpload.url || fileUpload.scheduled;
462
- var showUploadFile = (uploadSoundSupport === null || uploadSoundSupport === void 0 ? void 0 : uploadSoundSupport.add) && (uploadSoundSupport === null || uploadSoundSupport === void 0 ? void 0 : uploadSoundSupport["delete"]) && type !== 'video';
463
- return /*#__PURE__*/_react["default"].createElement(StyledDialog, {
464
- disablePortal: disablePortal,
465
- open: open,
466
- onClose: function onClose() {
467
- return _this2.handleDone(false);
468
- },
469
- "aria-labelledby": "form-dialog-title"
470
- }, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], {
471
- id: "form-dialog-title"
472
- }, "Insert ", typeMap[type]), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], null, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(StyledRow, null, /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
473
- indicatorColor: "primary",
474
- value: tabValue,
475
- onChange: function onChange(event, value) {
476
- _this2.setState({
477
- tabValue: value
478
- });
479
- }
480
- }, showUploadFile ? /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
481
- value: tabsTypeMap.uploadFile,
482
- label: "Upload file"
483
- }) : null, /*#__PURE__*/_react["default"].createElement(_Tab["default"], {
484
- value: tabsTypeMap.insertUrl,
485
- label: type === 'video' ? 'Insert YouTube, Vimeo, or Google Drive URL' : 'Insert SoundCloud URL'
486
- }))), isInsertURL && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
487
- autoFocus: true,
488
- error: invalid,
489
- helperText: invalid ? 'Invalid URL' : '',
490
- margin: "dense",
491
- id: "name",
492
- label: "URL",
493
- placeholder: "Paste URL of ".concat(type, "..."),
494
- type: "text",
495
- onChange: this.urlChange,
496
- value: url,
497
- fullWidth: true
498
- }), type === 'video' && /*#__PURE__*/_react["default"].createElement(StyledDialogContent, null, /*#__PURE__*/_react["default"].createElement(_DialogContentText["default"], null, "Video Properties"), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
499
- autoFocus: true,
500
- margin: "dense",
501
- id: "width",
502
- label: "Width",
503
- type: "number",
504
- placeholder: "Width",
505
- value: width,
506
- onChange: this.changeHandler('width')
507
- }), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
508
- autoFocus: true,
509
- margin: "dense",
510
- id: "height",
511
- label: "Height",
512
- type: "number",
513
- placeholder: "Height",
514
- value: height,
515
- onChange: this.changeHandler('height')
516
- })), formattedUrl && /*#__PURE__*/_react["default"].createElement("iframe", {
517
- width: width,
518
- height: height,
519
- src: formattedUrl,
520
- frameBorder: "0",
521
- allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
522
- allowFullScreen: true
523
- }), type === 'video' && (formattedUrl || updating) && !invalid && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledDialogContent, null, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
524
- autoFocus: true,
525
- margin: "dense",
526
- id: "starts",
527
- label: "Starts",
528
- type: "number",
529
- placeholder: "Starts",
530
- value: starts,
531
- onChange: this.changeHandler('starts')
532
- }), isYoutube && /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
533
- autoFocus: true,
534
- margin: "dense",
535
- id: "ends",
536
- label: "Ends",
537
- type: "number",
538
- placeholder: "Ends",
539
- value: ends,
540
- onChange: this.changeHandler('ends')
541
- })))), isUploadMedia && /*#__PURE__*/_react["default"].createElement(StyledUploadInput, null, /*#__PURE__*/_react["default"].createElement("div", null, fileUpload.url ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledRow, null, /*#__PURE__*/_react["default"].createElement("audio", {
542
- controls: "controls",
543
- controlsList: "nodownload"
544
- }, /*#__PURE__*/_react["default"].createElement("source", {
545
- type: mimeType,
546
- src: fileUpload.url
547
- })), /*#__PURE__*/_react["default"].createElement(StyledIconButton, {
548
- "aria-label": "delete",
549
- onClick: this.handleRemoveFile
550
- }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null))), !fileUpload.scheduled && fileUpload.loading ? /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
551
- variant: "subheading"
552
- }, "Loading...") : null, fileUpload.scheduled ? /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
553
- variant: "subheading"
554
- }, "Waiting for Upload to finish, then inserting item...") : null) : !fileUpload.loading ? /*#__PURE__*/_react["default"].createElement(StyledInput, {
555
- accept: "audio/*",
556
- onChange: this.handleUploadFile,
557
- type: "file"
558
- }) : null, !!fileUpload.error && /*#__PURE__*/_react["default"].createElement(StyledError, {
559
- variant: "caption"
560
- }, fileUpload.error))))), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
561
- onClick: function onClick() {
562
- return _this2.handleDone(false);
563
- },
564
- color: "primary"
565
- }, "Cancel"), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
566
- disabled: submitIsDisabled,
567
- onClick: function onClick() {
568
- return _this2.handleDone(true);
569
- },
570
- color: "primary"
571
- }, edit ? 'Update' : 'Insert')));
572
- }
573
- }]);
574
- }(_react["default"].Component);
575
- (0, _defineProperty2["default"])(MediaDialog, "propTypes", {
576
- open: _propTypes["default"].bool,
577
- edit: _propTypes["default"].bool,
578
- disablePortal: _propTypes["default"].bool,
579
- handleClose: _propTypes["default"].func,
580
- uploadSoundSupport: _propTypes["default"].shape({
581
- add: _propTypes["default"].func,
582
- "delete": _propTypes["default"].func
583
- }),
584
- type: _propTypes["default"].string,
585
- src: _propTypes["default"].string,
586
- url: _propTypes["default"].string,
587
- urlToUse: _propTypes["default"].string,
588
- starts: _propTypes["default"].number,
589
- ends: _propTypes["default"].number,
590
- height: _propTypes["default"].number,
591
- width: _propTypes["default"].number
592
- });
593
- var _default = exports["default"] = MediaDialog;
594
- //# sourceMappingURL=MediaDialog.js.map