studiokit-scaffolding-js 7.0.12-next.1.4 → 7.0.12-next.2.2

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 (258) hide show
  1. package/lib/components/ActionList.js +170 -34
  2. package/lib/components/AlertDialog.js +133 -9
  3. package/lib/components/AlertWithIcon.js +92 -25
  4. package/lib/components/ConnectedModal.js +43 -13
  5. package/lib/components/Dropdowns/GroupsDropdown.js +69 -44
  6. package/lib/components/Dropdowns/ManagedNavDropdown.js +100 -67
  7. package/lib/components/Dropdowns/UserDropdown.js +111 -21
  8. package/lib/components/Dropdowns/index.js +27 -9
  9. package/lib/components/EntityOwnerList.js +52 -18
  10. package/lib/components/Error.js +106 -11
  11. package/lib/components/ErrorBoundary.js +134 -35
  12. package/lib/components/ErrorMessage.js +44 -9
  13. package/lib/components/Forms/DateField.js +61 -42
  14. package/lib/components/Forms/TimeField.js +81 -42
  15. package/lib/components/Forms/index.js +27 -4
  16. package/lib/components/Groups/CreateEditCopySaveButtons.js +114 -11
  17. package/lib/components/Groups/ExternalGroups/Attach.js +212 -148
  18. package/lib/components/Groups/ExternalGroups/Table.js +181 -45
  19. package/lib/components/Groups/GroupCreateOrEditCommonProps.js +5 -1
  20. package/lib/components/Groups/RosterSyncInfo.js +147 -20
  21. package/lib/components/HOC/AccessibleAppComponent.js +98 -73
  22. package/lib/components/HOC/ActivityRequiredComponent.js +92 -49
  23. package/lib/components/HOC/AsyncComponent.js +54 -39
  24. package/lib/components/HOC/AuthenticatedComponent.js +58 -38
  25. package/lib/components/HOC/CollectionComponent.js +170 -110
  26. package/lib/components/HOC/CollectionFirstItemComponent.js +51 -38
  27. package/lib/components/HOC/CollectionItemComponent.js +168 -106
  28. package/lib/components/HOC/ConnectedModalComponent.js +109 -80
  29. package/lib/components/HOC/DataDependentComponent.js +29 -21
  30. package/lib/components/HOC/EntityComponent.js +71 -57
  31. package/lib/components/HOC/FullscreenModalComponent.js +163 -123
  32. package/lib/components/HOC/GroupActivityRequiredComponent.js +45 -31
  33. package/lib/components/HOC/GuidComponent.js +29 -22
  34. package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +41 -31
  35. package/lib/components/HOC/ModelErrorRedirectComponent.js +51 -47
  36. package/lib/components/HOC/SearchPersistorComponent.js +240 -166
  37. package/lib/components/HOC/UnauthenticatedComponent.js +37 -25
  38. package/lib/components/HOC/UserComponent.js +12 -7
  39. package/lib/components/Icons/IconAlphaList.js +33 -5
  40. package/lib/components/Icons/IconExternalUser.js +33 -5
  41. package/lib/components/Icons/IconImpersonation.js +33 -5
  42. package/lib/components/Icons/IconStopImpersonating.js +33 -5
  43. package/lib/components/Icons/IconTable.js +35 -7
  44. package/lib/components/Icons/IconTableDeleteCol.js +33 -5
  45. package/lib/components/Icons/IconTableDeleteRow.js +33 -5
  46. package/lib/components/Icons/IconTableInsertCol.js +33 -5
  47. package/lib/components/Icons/IconTableInsertRow.js +33 -5
  48. package/lib/components/Impersonation/Button.js +77 -13
  49. package/lib/components/Impersonation/Link.js +77 -13
  50. package/lib/components/Impersonation/UserDetail.js +66 -9
  51. package/lib/components/Loading.js +26 -4
  52. package/lib/components/LockDownBrowser/Check.js +194 -49
  53. package/lib/components/LockDownBrowser/ExitButton.js +26 -9
  54. package/lib/components/LockDownBrowser/Launch.js +70 -62
  55. package/lib/components/Lti/Confirm.js +152 -11
  56. package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +170 -33
  57. package/lib/components/Lti/Launch.js +105 -24
  58. package/lib/components/Lti/LaunchGroup.js +85 -13
  59. package/lib/components/ManageTable.js +309 -87
  60. package/lib/components/ManageTableNoDataComponent.js +42 -4
  61. package/lib/components/NewVersionAlert.js +82 -46
  62. package/lib/components/NotFound.js +86 -10
  63. package/lib/components/Notifications.js +185 -126
  64. package/lib/components/PaginationNextButton.js +33 -6
  65. package/lib/components/PaginationPreviousButton.js +33 -6
  66. package/lib/components/Quill/CustomToolbar.js +432 -218
  67. package/lib/components/Quill/Formats/Image.js +73 -63
  68. package/lib/components/Quill/Formats/List.js +45 -45
  69. package/lib/components/Quill/Formats/Video.js +28 -24
  70. package/lib/components/Quill/ImageDropModule.js +147 -117
  71. package/lib/components/Quill/ImageWarning.js +47 -9
  72. package/lib/components/Quill/ImageWithAltTextModal.js +425 -86
  73. package/lib/components/Quill/Specs/CustomImageSpec.js +42 -34
  74. package/lib/components/Quill/Specs/CustomVideoSpec.js +34 -28
  75. package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +98 -98
  76. package/lib/components/Quill/TableModule/Blots/TableBlot.js +52 -47
  77. package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +53 -48
  78. package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +224 -221
  79. package/lib/components/Quill/TableModule/Blots/TableContainer.js +80 -83
  80. package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +75 -70
  81. package/lib/components/Quill/TableModule/constants.js +45 -41
  82. package/lib/components/Quill/TableModule/index.js +362 -301
  83. package/lib/components/Quill/TableModule/utils.js +42 -38
  84. package/lib/components/Quill/accessibilityFix.js +234 -232
  85. package/lib/components/Quill/index.js +34 -28
  86. package/lib/components/RefreshIndicator/Bordered.js +47 -6
  87. package/lib/components/RefreshIndicator/Inline.js +47 -8
  88. package/lib/components/RefreshIndicator/index.js +263 -59
  89. package/lib/components/SearchControls.js +216 -11
  90. package/lib/components/SentryRoute.js +11 -6
  91. package/lib/components/Tables/RoleFilter.js +69 -32
  92. package/lib/components/Tables/TextFilter.js +62 -13
  93. package/lib/components/UserRoles/Add.js +199 -96
  94. package/lib/components/UserRoles/Context.js +11 -7
  95. package/lib/components/UserRoles/RoleCell.js +181 -72
  96. package/lib/components/UserRoles/Select.js +157 -17
  97. package/lib/components/UserRoles/Table.js +221 -80
  98. package/lib/components/UserRoles/index.js +534 -384
  99. package/lib/config/eslint/index.js +32 -28
  100. package/lib/config/eslint/lib/order.js +26 -27
  101. package/lib/config/eslint/lib/prettier.js +20 -18
  102. package/lib/config/eslint/lib/typescript.js +93 -112
  103. package/lib/config/eslint/react.js +24 -14
  104. package/lib/constants/baseActivity.js +30 -26
  105. package/lib/constants/baseRole.js +14 -10
  106. package/lib/constants/configuration.js +33 -29
  107. package/lib/constants/externalProviderType.js +10 -6
  108. package/lib/constants/fetchErrorData.js +15 -11
  109. package/lib/constants/index.js +137 -14
  110. package/lib/constants/lockDownBrowser.js +28 -24
  111. package/lib/constants/mockData.js +382 -297
  112. package/lib/constants/modelStatus.js +15 -11
  113. package/lib/constants/notificationType.js +12 -8
  114. package/lib/constants/operatingSystem.js +12 -8
  115. package/lib/constants/shard.js +11 -7
  116. package/lib/constants/table.js +21 -21
  117. package/lib/constants/tier.js +12 -8
  118. package/lib/constants/userRole.js +15 -5
  119. package/lib/endpointMappings.js +197 -181
  120. package/lib/hooks/useCollection.js +82 -62
  121. package/lib/hooks/useCollectionConfiguration.js +228 -83
  122. package/lib/hooks/useCollectionItem.js +154 -54
  123. package/lib/hooks/useGuid.js +20 -8
  124. package/lib/hooks/usePrevious.js +19 -13
  125. package/lib/index.js +157 -25
  126. package/lib/redux/actionCreator.js +50 -28
  127. package/lib/redux/actions/AuthAction.js +44 -31
  128. package/lib/redux/actions/ModalAction.js +10 -6
  129. package/lib/redux/actions/ModelAction.js +77 -39
  130. package/lib/redux/actions/NotificationAction.js +10 -6
  131. package/lib/redux/actions/SearchAction.js +9 -5
  132. package/lib/redux/actions/index.js +60 -7
  133. package/lib/redux/configureReducers.js +60 -49
  134. package/lib/redux/configureStore.js +83 -87
  135. package/lib/redux/helpers.js +6 -2
  136. package/lib/redux/reducers/authReducer.js +50 -43
  137. package/lib/redux/reducers/index.js +41 -13
  138. package/lib/redux/reducers/modalsReducer.js +47 -29
  139. package/lib/redux/reducers/modelsReducer.js +178 -173
  140. package/lib/redux/reducers/notificationsReducer.js +24 -18
  141. package/lib/redux/reducers/searchReducer.js +25 -19
  142. package/lib/redux/sagas/appInsightsSaga.js +22 -18
  143. package/lib/redux/sagas/authSaga.js +253 -218
  144. package/lib/redux/sagas/caliperSaga.js +159 -143
  145. package/lib/redux/sagas/clockOffsetSaga.js +34 -31
  146. package/lib/redux/sagas/configurationSaga.js +11 -7
  147. package/lib/redux/sagas/downtimeApiErrorSaga.js +20 -17
  148. package/lib/redux/sagas/errorSaga.js +27 -21
  149. package/lib/redux/sagas/googleAnalyticsSaga.js +28 -24
  150. package/lib/redux/sagas/identityProviderSaga.js +22 -18
  151. package/lib/redux/sagas/initialDataLoadSaga.js +37 -28
  152. package/lib/redux/sagas/lockDownBrowserErrorSaga.js +29 -20
  153. package/lib/redux/sagas/modelFetchSaga.js +355 -322
  154. package/lib/redux/sagas/noStoreSaga.js +61 -48
  155. package/lib/redux/sagas/postLoginDataSaga.js +45 -34
  156. package/lib/redux/sagas/postLoginRedirectSaga.js +27 -27
  157. package/lib/redux/sagas/rootSaga.js +82 -57
  158. package/lib/redux/sagas/sentrySaga.js +29 -25
  159. package/lib/redux/sagas/userIdSaga.js +16 -12
  160. package/lib/services/codeProviderService.js +25 -19
  161. package/lib/services/dateService.js +12 -7
  162. package/lib/services/documentService.js +17 -12
  163. package/lib/services/fetchService.js +129 -112
  164. package/lib/services/persistenceService.js +33 -29
  165. package/lib/services/ticketProviderService.js +29 -23
  166. package/lib/services/tokenPersistenceService.js +12 -8
  167. package/lib/services/windowService.js +18 -14
  168. package/lib/startup.js +132 -114
  169. package/lib/types/AppConfiguration.js +5 -1
  170. package/lib/types/Artifact.js +11 -7
  171. package/lib/types/BaseReduxState.js +5 -1
  172. package/lib/types/Client.js +5 -1
  173. package/lib/types/Collection.js +5 -1
  174. package/lib/types/Configuration.js +5 -1
  175. package/lib/types/DeepLinkingResponseRequest.js +5 -1
  176. package/lib/types/DeletableModel.js +5 -1
  177. package/lib/types/Event.js +5 -1
  178. package/lib/types/ExternalGroup.js +5 -1
  179. package/lib/types/ExternalProvider.js +5 -1
  180. package/lib/types/ExternalTerm.js +5 -1
  181. package/lib/types/Group.js +5 -1
  182. package/lib/types/IdentityProvider.js +5 -1
  183. package/lib/types/LtiLaunch.js +5 -1
  184. package/lib/types/NameOnlyEntity.js +5 -1
  185. package/lib/types/Notification.js +5 -1
  186. package/lib/types/OptionalRecord.js +5 -1
  187. package/lib/types/OwnerSchedule.js +5 -1
  188. package/lib/types/PropertyOfType.js +5 -1
  189. package/lib/types/Quill.js +5 -1
  190. package/lib/types/RoleDescription.js +5 -1
  191. package/lib/types/Search.js +5 -1
  192. package/lib/types/SimpleLocation.js +5 -1
  193. package/lib/types/UniTime.js +5 -1
  194. package/lib/types/User.js +5 -1
  195. package/lib/types/UserRole.js +5 -1
  196. package/lib/types/auth/AuthState.js +5 -1
  197. package/lib/types/auth/CasV1LoginRequestBody.js +5 -1
  198. package/lib/types/auth/ClientCredentials.js +5 -1
  199. package/lib/types/auth/CodeProviderService.js +5 -1
  200. package/lib/types/auth/LocalLoginRequestBody.js +5 -1
  201. package/lib/types/auth/TicketProviderService.js +5 -1
  202. package/lib/types/auth/TokenPersistenceService.js +5 -1
  203. package/lib/types/auth/index.js +82 -9
  204. package/lib/types/externals.d.js +2 -0
  205. package/lib/types/index.js +313 -30
  206. package/lib/types/net/EndpointConfig.js +5 -1
  207. package/lib/types/net/EndpointMapping.js +5 -1
  208. package/lib/types/net/EndpointMappings.js +5 -1
  209. package/lib/types/net/ErrorHandler.js +5 -1
  210. package/lib/types/net/FetchConfig.js +5 -1
  211. package/lib/types/net/FetchErrorData.js +10 -6
  212. package/lib/types/net/FetchResult.js +5 -1
  213. package/lib/types/net/HTTPMethod.js +5 -1
  214. package/lib/types/net/HTTPStatusCode.js +16 -12
  215. package/lib/types/net/Metadata.js +5 -1
  216. package/lib/types/net/Model.js +5 -1
  217. package/lib/types/net/ModelCollection.js +5 -1
  218. package/lib/types/net/ModelsState.js +5 -1
  219. package/lib/types/net/OAuthToken.js +5 -1
  220. package/lib/types/net/OAuthTokenOrNull.js +5 -1
  221. package/lib/types/net/TokenAccessFunction.js +5 -1
  222. package/lib/types/net/index.js +181 -18
  223. package/lib/utils/baseActivity.js +133 -123
  224. package/lib/utils/baseRole.js +37 -33
  225. package/lib/utils/collection.js +425 -298
  226. package/lib/utils/cookies.js +22 -19
  227. package/lib/utils/date.js +303 -279
  228. package/lib/utils/dom.js +176 -165
  229. package/lib/utils/domainIdentifier.js +9 -5
  230. package/lib/utils/entityUserRole.js +6 -2
  231. package/lib/utils/error.js +17 -15
  232. package/lib/utils/events.js +40 -31
  233. package/lib/utils/externalGroup.js +22 -18
  234. package/lib/utils/externalProviders.js +8 -4
  235. package/lib/utils/externalTerms.js +10 -3
  236. package/lib/utils/fetch.js +179 -180
  237. package/lib/utils/group.js +18 -7
  238. package/lib/utils/groupDates.js +37 -33
  239. package/lib/utils/groupRoles.js +25 -21
  240. package/lib/utils/lockDownBrowser.js +15 -11
  241. package/lib/utils/logger.js +26 -22
  242. package/lib/utils/lti.js +9 -4
  243. package/lib/utils/model.js +36 -41
  244. package/lib/utils/number.js +21 -18
  245. package/lib/utils/promise.js +28 -21
  246. package/lib/utils/quill.js +65 -62
  247. package/lib/utils/route.js +58 -55
  248. package/lib/utils/search.js +76 -80
  249. package/lib/utils/shard.js +37 -37
  250. package/lib/utils/sort.js +50 -42
  251. package/lib/utils/string.js +13 -8
  252. package/lib/utils/table.js +38 -33
  253. package/lib/utils/timezone.js +10 -6
  254. package/lib/utils/url.js +142 -142
  255. package/lib/utils/user.js +58 -55
  256. package/lib/utils/userAgent.js +10 -10
  257. package/lib/utils/userRole.js +57 -49
  258. package/package.json +17 -3
@@ -1,125 +1,155 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
3
7
  exports.ImageDropModule = void 0;
4
- const react_quill_1 = require("react-quill");
5
- const logger_1 = require("../../utils/logger");
6
- const Delta = react_quill_1.Quill.import('delta');
7
- /**
8
- * Custom module for quilljs to allow user to drag images from their file system into the editor
9
- * and paste images from clipboard (Works on Chrome, Firefox, Edge, not on Safari)
10
- * @see https://quilljs.com/blog/building-a-custom-module/
11
- *
12
- * Roughly forked (and TypeScripted) from https://github.com/kensnyder/quill-image-drop-module/blob/master/src/ImageDrop.js
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _reactQuill = require("react-quill");
10
+ var _logger = require("../../utils/logger");
11
+ /* eslint-disable @typescript-eslint/no-unnecessary-condition */
12
+
13
+ const Delta = _reactQuill.Quill.import('delta');
14
+
15
+ /**
16
+ * Custom module for quilljs to allow user to drag images from their file system into the editor
17
+ * and paste images from clipboard (Works on Chrome, Firefox, Edge, not on Safari)
18
+ * @see https://quilljs.com/blog/building-a-custom-module/
19
+ *
20
+ * Roughly forked (and TypeScripted) from https://github.com/kensnyder/quill-image-drop-module/blob/master/src/ImageDrop.js
13
21
  */
14
22
  class ImageDropModule {
15
- /**
16
- * Instantiate the module given a quill instance and any options
23
+ /**
24
+ * Instantiate the module given a quill instance and any options
25
+ */
26
+ constructor(quill) {
27
+ var _this = this;
28
+ (0, _defineProperty2.default)(this, "quill", void 0);
29
+ (0, _defineProperty2.default)(this, "options", void 0);
30
+ /**
31
+ * Handler for drop event to read dropped files from evt.dataTransfer
17
32
  */
18
- constructor(quill) {
19
- /**
20
- * Handler for drop event to read dropped files from evt.dataTransfer
21
- */
22
- this.handleDrop = (evt) => {
23
- evt.preventDefault();
24
- if (evt.dataTransfer && evt.dataTransfer.files && evt.dataTransfer.files.length) {
25
- const selection = document.getSelection();
26
- let range = null;
27
- if (document.caretRangeFromPoint) {
28
- range = document.caretRangeFromPoint(evt.clientX, evt.clientY);
29
- }
30
- else if (document.caretPositionFromPoint) {
31
- const pos = document.caretPositionFromPoint(evt.clientX, evt.clientY);
32
- range = document.createRange();
33
- range.setStart((pos === null || pos === void 0 ? void 0 : pos.offsetNode) || document.body, (pos === null || pos === void 0 ? void 0 : pos.offset) || 0);
34
- range.collapse(true);
35
- }
36
- if (selection && range) {
37
- selection.setBaseAndExtent(range.startContainer, range.startOffset, range.startContainer, range.startOffset);
38
- }
39
- this.readFiles(evt.dataTransfer.files, this.insert.bind(this));
40
- }
41
- };
42
- /**
43
- * Handler for paste event to read pasted files from evt.clipboardData
44
- */
45
- this.handlePaste = (evt) => {
46
- var _a, _b;
47
- // Get alt text from clipboard data and add it to the image we create with base64 data
48
- const text = (_a = evt.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text/html');
49
- let alt = '';
50
- if (text) {
51
- const regExp = /alt="(.*?)"/;
52
- alt = ((_b = regExp.exec(text)) === null || _b === void 0 ? void 0 : _b[1]) || '';
53
- }
54
- if (evt.clipboardData && evt.clipboardData.items && evt.clipboardData.items.length) {
55
- this.readFiles(evt.clipboardData.items, base64DataUrl => {
56
- // wait until after the default paste action finishes
57
- setTimeout(() => this.insert(base64DataUrl, alt), 50);
58
- });
59
- }
60
- };
61
- /**
62
- * Insert the image into the document at the current cursor position
63
- */
64
- this.insert = (base64DataUrl, alt = '') => {
65
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
66
- const logger = (0, logger_1.getLogger)();
67
- const index = (this.quill.getSelection() || {}).index || this.quill.getLength();
68
- const diff = new Delta();
69
- diff.ops = [];
70
- if (index > 0) {
71
- diff.ops.push({ retain: index });
72
- }
73
- const indexBefore = Math.max(0, index - 1);
74
- const contentsBeforeIndex = this.quill.getContents(indexBefore, 1);
75
- logger.debug('insert - find contents before index', { index: indexBefore, contentsBeforeIndex });
76
- // when copy-pasting an image from the web/browser, the web url image is immediately inserted.
77
- // check if a web image exists at the previous index, and replace it.
78
- // when copy-pasting an image file from the computer, the `base64DataUrl` image is immediately inserted,but is missing some blot info.
79
- // check if the same image data already exists at the previous index, and replace it.
80
- if (((_e = (_d = (_c = (_b = (_a = contentsBeforeIndex === null || contentsBeforeIndex === void 0 ? void 0 : contentsBeforeIndex.ops) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.insert) === null || _c === void 0 ? void 0 : _c.image) === null || _d === void 0 ? void 0 : _d.src) === null || _e === void 0 ? void 0 : _e.startsWith('http')) ||
81
- ((_j = (_h = (_g = (_f = contentsBeforeIndex === null || contentsBeforeIndex === void 0 ? void 0 : contentsBeforeIndex.ops) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g.insert) === null || _h === void 0 ? void 0 : _h.image) === null || _j === void 0 ? void 0 : _j.src) === base64DataUrl) {
82
- logger.debug('insert - remove image before index');
83
- diff.ops = [];
84
- if (indexBefore > 0) {
85
- diff.ops.push({ retain: indexBefore });
86
- }
87
- diff.ops.push({ delete: 1 });
88
- }
89
- // insert the image at the index
90
- diff.ops.push({ insert: { image: { src: base64DataUrl, alt } } });
91
- if (diff.ops.length > 0) {
92
- logger.debug('insert - quill.updateContents', { diff });
93
- this.quill.updateContents(diff, 'user');
94
- }
95
- };
96
- /**
97
- * Extract base64 image URIs from a list of files from evt.dataTransfer or evt.clipboardData
98
- */
99
- this.readFiles = (files, callback) => {
100
- const regExp = RegExp(/^image\/(gif|jpe?g|a?png|svg|webp|bmp|vnd\.microsoft\.icon)/i);
101
- [].forEach.call(files, (file) => {
102
- if (!regExp.test(file.type)) {
103
- // file is not an image
104
- // Note that some file formats such as psd start with image/* but are not readable
105
- return;
106
- }
107
- const reader = new FileReader();
108
- reader.onload = evt => {
109
- var _a;
110
- callback((_a = evt.target) === null || _a === void 0 ? void 0 : _a.result);
111
- };
112
- const blob = file.getAsFile ? file.getAsFile() : file;
113
- if (blob instanceof Blob) {
114
- reader.readAsDataURL(blob);
115
- }
116
- });
33
+ (0, _defineProperty2.default)(this, "handleDrop", evt => {
34
+ evt.preventDefault();
35
+ if (evt.dataTransfer && evt.dataTransfer.files && evt.dataTransfer.files.length) {
36
+ const selection = document.getSelection();
37
+ let range = null;
38
+ if (document.caretRangeFromPoint) {
39
+ range = document.caretRangeFromPoint(evt.clientX, evt.clientY);
40
+ } else if (document.caretPositionFromPoint) {
41
+ const pos = document.caretPositionFromPoint(evt.clientX, evt.clientY);
42
+ range = document.createRange();
43
+ range.setStart(pos?.offsetNode || document.body, pos?.offset || 0);
44
+ range.collapse(true);
45
+ }
46
+ if (selection && range) {
47
+ selection.setBaseAndExtent(range.startContainer, range.startOffset, range.startContainer, range.startOffset);
48
+ }
49
+ this.readFiles(evt.dataTransfer.files, this.insert.bind(this));
50
+ }
51
+ });
52
+ /**
53
+ * Handler for paste event to read pasted files from evt.clipboardData
54
+ */
55
+ (0, _defineProperty2.default)(this, "handlePaste", evt => {
56
+ // Get alt text from clipboard data and add it to the image we create with base64 data
57
+ const text = evt.clipboardData?.getData('text/html');
58
+ let alt = '';
59
+ if (text) {
60
+ const regExp = /alt="(.*?)"/;
61
+ alt = regExp.exec(text)?.[1] || '';
62
+ }
63
+ if (evt.clipboardData && evt.clipboardData.items && evt.clipboardData.items.length) {
64
+ this.readFiles(evt.clipboardData.items, base64DataUrl => {
65
+ // wait until after the default paste action finishes
66
+ setTimeout(() => this.insert(base64DataUrl, alt), 50);
67
+ });
68
+ }
69
+ });
70
+ /**
71
+ * Insert the image into the document at the current cursor position
72
+ */
73
+ (0, _defineProperty2.default)(this, "insert", function (base64DataUrl) {
74
+ let alt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
75
+ const logger = (0, _logger.getLogger)();
76
+ const index = (_this.quill.getSelection() || {}).index || _this.quill.getLength();
77
+ const diff = new Delta();
78
+ diff.ops = [];
79
+ if (index > 0) {
80
+ diff.ops.push({
81
+ retain: index
82
+ });
83
+ }
84
+ const indexBefore = Math.max(0, index - 1);
85
+ const contentsBeforeIndex = _this.quill.getContents(indexBefore, 1);
86
+ logger.debug('insert - find contents before index', {
87
+ index: indexBefore,
88
+ contentsBeforeIndex
89
+ });
90
+
91
+ // when copy-pasting an image from the web/browser, the web url image is immediately inserted.
92
+ // check if a web image exists at the previous index, and replace it.
93
+ // when copy-pasting an image file from the computer, the `base64DataUrl` image is immediately inserted,but is missing some blot info.
94
+ // check if the same image data already exists at the previous index, and replace it.
95
+ if (contentsBeforeIndex?.ops?.[0]?.insert?.image?.src?.startsWith('http') || contentsBeforeIndex?.ops?.[0]?.insert?.image?.src === base64DataUrl) {
96
+ logger.debug('insert - remove image before index');
97
+ diff.ops = [];
98
+ if (indexBefore > 0) {
99
+ diff.ops.push({
100
+ retain: indexBefore
101
+ });
102
+ }
103
+ diff.ops.push({
104
+ delete: 1
105
+ });
106
+ }
107
+
108
+ // insert the image at the index
109
+ diff.ops.push({
110
+ insert: {
111
+ image: {
112
+ src: base64DataUrl,
113
+ alt
114
+ }
115
+ }
116
+ });
117
+ if (diff.ops.length > 0) {
118
+ logger.debug('insert - quill.updateContents', {
119
+ diff
120
+ });
121
+ _this.quill.updateContents(diff, 'user');
122
+ }
123
+ });
124
+ /**
125
+ * Extract base64 image URIs from a list of files from evt.dataTransfer or evt.clipboardData
126
+ */
127
+ (0, _defineProperty2.default)(this, "readFiles", (files, callback) => {
128
+ const regExp = RegExp(/^image\/(gif|jpe?g|a?png|svg|webp|bmp|vnd\.microsoft\.icon)/i)
129
+ // check each file for an image
130
+ ;
131
+ [].forEach.call(files, file => {
132
+ if (!regExp.test(file.type)) {
133
+ // file is not an image
134
+ // Note that some file formats such as psd start with image/* but are not readable
135
+ return;
136
+ }
137
+ const reader = new FileReader();
138
+ reader.onload = evt => {
139
+ callback(evt.target?.result);
117
140
  };
118
- this.quill = quill;
119
- this.handleDrop = this.handleDrop.bind(this);
120
- this.handlePaste = this.handlePaste.bind(this);
121
- this.quill.root.addEventListener('drop', this.handleDrop, false);
122
- this.quill.root.addEventListener('paste', this.handlePaste, false);
123
- }
141
+ const blob = file.getAsFile ? file.getAsFile() : file;
142
+ if (blob instanceof Blob) {
143
+ reader.readAsDataURL(blob);
144
+ }
145
+ });
146
+ });
147
+ this.quill = quill;
148
+ this.handleDrop = this.handleDrop.bind(this);
149
+ this.handlePaste = this.handlePaste.bind(this);
150
+ this.quill.root.addEventListener('drop', this.handleDrop, false);
151
+ this.quill.root.addEventListener('paste', this.handlePaste, false);
152
+ }
124
153
  }
125
154
  exports.ImageDropModule = ImageDropModule;
155
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RRdWlsbCIsInJlcXVpcmUiLCJfbG9nZ2VyIiwiRGVsdGEiLCJRdWlsbCIsImltcG9ydCIsIkltYWdlRHJvcE1vZHVsZSIsImNvbnN0cnVjdG9yIiwicXVpbGwiLCJfdGhpcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwiZXZ0IiwicHJldmVudERlZmF1bHQiLCJkYXRhVHJhbnNmZXIiLCJmaWxlcyIsImxlbmd0aCIsInNlbGVjdGlvbiIsImRvY3VtZW50IiwiZ2V0U2VsZWN0aW9uIiwicmFuZ2UiLCJjYXJldFJhbmdlRnJvbVBvaW50IiwiY2xpZW50WCIsImNsaWVudFkiLCJjYXJldFBvc2l0aW9uRnJvbVBvaW50IiwicG9zIiwiY3JlYXRlUmFuZ2UiLCJzZXRTdGFydCIsIm9mZnNldE5vZGUiLCJib2R5Iiwib2Zmc2V0IiwiY29sbGFwc2UiLCJzZXRCYXNlQW5kRXh0ZW50Iiwic3RhcnRDb250YWluZXIiLCJzdGFydE9mZnNldCIsInJlYWRGaWxlcyIsImluc2VydCIsImJpbmQiLCJ0ZXh0IiwiY2xpcGJvYXJkRGF0YSIsImdldERhdGEiLCJhbHQiLCJyZWdFeHAiLCJleGVjIiwiaXRlbXMiLCJiYXNlNjREYXRhVXJsIiwic2V0VGltZW91dCIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImxvZ2dlciIsImdldExvZ2dlciIsImluZGV4IiwiZ2V0TGVuZ3RoIiwiZGlmZiIsIm9wcyIsInB1c2giLCJyZXRhaW4iLCJpbmRleEJlZm9yZSIsIk1hdGgiLCJtYXgiLCJjb250ZW50c0JlZm9yZUluZGV4IiwiZ2V0Q29udGVudHMiLCJkZWJ1ZyIsImltYWdlIiwic3JjIiwic3RhcnRzV2l0aCIsImRlbGV0ZSIsInVwZGF0ZUNvbnRlbnRzIiwiY2FsbGJhY2siLCJSZWdFeHAiLCJmb3JFYWNoIiwiY2FsbCIsImZpbGUiLCJ0ZXN0IiwidHlwZSIsInJlYWRlciIsIkZpbGVSZWFkZXIiLCJvbmxvYWQiLCJ0YXJnZXQiLCJyZXN1bHQiLCJibG9iIiwiZ2V0QXNGaWxlIiwiQmxvYiIsInJlYWRBc0RhdGFVUkwiLCJoYW5kbGVEcm9wIiwiaGFuZGxlUGFzdGUiLCJyb290IiwiYWRkRXZlbnRMaXN0ZW5lciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9RdWlsbC9JbWFnZURyb3BNb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvbiAqL1xyXG5pbXBvcnQgeyBEZWx0YVN0YXRpYyB9IGZyb20gJ3F1aWxsJ1xyXG5pbXBvcnQgeyBRdWlsbCB9IGZyb20gJ3JlYWN0LXF1aWxsJ1xyXG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tICcuLi8uLi91dGlscy9sb2dnZXInXHJcblxyXG5jb25zdCBEZWx0YSA9IFF1aWxsLmltcG9ydCgnZGVsdGEnKVxyXG5cclxuLyoqXHJcbiAqIEN1c3RvbSBtb2R1bGUgZm9yIHF1aWxsanMgdG8gYWxsb3cgdXNlciB0byBkcmFnIGltYWdlcyBmcm9tIHRoZWlyIGZpbGUgc3lzdGVtIGludG8gdGhlIGVkaXRvclxyXG4gKiBhbmQgcGFzdGUgaW1hZ2VzIGZyb20gY2xpcGJvYXJkIChXb3JrcyBvbiBDaHJvbWUsIEZpcmVmb3gsIEVkZ2UsIG5vdCBvbiBTYWZhcmkpXHJcbiAqIEBzZWUgaHR0cHM6Ly9xdWlsbGpzLmNvbS9ibG9nL2J1aWxkaW5nLWEtY3VzdG9tLW1vZHVsZS9cclxuICpcclxuICogUm91Z2hseSBmb3JrZWQgKGFuZCBUeXBlU2NyaXB0ZWQpIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2tlbnNueWRlci9xdWlsbC1pbWFnZS1kcm9wLW1vZHVsZS9ibG9iL21hc3Rlci9zcmMvSW1hZ2VEcm9wLmpzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgSW1hZ2VEcm9wTW9kdWxlIHtcclxuXHRxdWlsbDogUXVpbGxcclxuXHRvcHRpb25zOiBhbnlcclxuXHJcblx0LyoqXHJcblx0ICogSW5zdGFudGlhdGUgdGhlIG1vZHVsZSBnaXZlbiBhIHF1aWxsIGluc3RhbmNlIGFuZCBhbnkgb3B0aW9uc1xyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKHF1aWxsOiBRdWlsbCkge1xyXG5cdFx0dGhpcy5xdWlsbCA9IHF1aWxsXHJcblx0XHR0aGlzLmhhbmRsZURyb3AgPSB0aGlzLmhhbmRsZURyb3AuYmluZCh0aGlzKVxyXG5cdFx0dGhpcy5oYW5kbGVQYXN0ZSA9IHRoaXMuaGFuZGxlUGFzdGUuYmluZCh0aGlzKVxyXG5cdFx0dGhpcy5xdWlsbC5yb290LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLmhhbmRsZURyb3AsIGZhbHNlKVxyXG5cdFx0dGhpcy5xdWlsbC5yb290LmFkZEV2ZW50TGlzdGVuZXIoJ3Bhc3RlJywgdGhpcy5oYW5kbGVQYXN0ZSwgZmFsc2UpXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBIYW5kbGVyIGZvciBkcm9wIGV2ZW50IHRvIHJlYWQgZHJvcHBlZCBmaWxlcyBmcm9tIGV2dC5kYXRhVHJhbnNmZXJcclxuXHQgKi9cclxuXHRoYW5kbGVEcm9wID0gKGV2dDogRHJhZ0V2ZW50KSA9PiB7XHJcblx0XHRldnQucHJldmVudERlZmF1bHQoKVxyXG5cdFx0aWYgKGV2dC5kYXRhVHJhbnNmZXIgJiYgZXZ0LmRhdGFUcmFuc2Zlci5maWxlcyAmJiBldnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCkge1xyXG5cdFx0XHRjb25zdCBzZWxlY3Rpb24gPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKVxyXG5cdFx0XHRsZXQgcmFuZ2U6IFJhbmdlIHwgbnVsbCA9IG51bGxcclxuXHRcdFx0aWYgKGRvY3VtZW50LmNhcmV0UmFuZ2VGcm9tUG9pbnQpIHtcclxuXHRcdFx0XHRyYW5nZSA9IGRvY3VtZW50LmNhcmV0UmFuZ2VGcm9tUG9pbnQoZXZ0LmNsaWVudFgsIGV2dC5jbGllbnRZKVxyXG5cdFx0XHR9IGVsc2UgaWYgKGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQpIHtcclxuXHRcdFx0XHRjb25zdCBwb3MgPSBkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KGV2dC5jbGllbnRYLCBldnQuY2xpZW50WSlcclxuXHRcdFx0XHRyYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcclxuXHRcdFx0XHRyYW5nZS5zZXRTdGFydChwb3M/Lm9mZnNldE5vZGUgfHwgZG9jdW1lbnQuYm9keSwgcG9zPy5vZmZzZXQgfHwgMClcclxuXHRcdFx0XHRyYW5nZS5jb2xsYXBzZSh0cnVlKVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChzZWxlY3Rpb24gJiYgcmFuZ2UpIHtcclxuXHRcdFx0XHRzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChcclxuXHRcdFx0XHRcdHJhbmdlLnN0YXJ0Q29udGFpbmVyLFxyXG5cdFx0XHRcdFx0cmFuZ2Uuc3RhcnRPZmZzZXQsXHJcblx0XHRcdFx0XHRyYW5nZS5zdGFydENvbnRhaW5lcixcclxuXHRcdFx0XHRcdHJhbmdlLnN0YXJ0T2Zmc2V0XHJcblx0XHRcdFx0KVxyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMucmVhZEZpbGVzKGV2dC5kYXRhVHJhbnNmZXIuZmlsZXMsIHRoaXMuaW5zZXJ0LmJpbmQodGhpcykpXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBIYW5kbGVyIGZvciBwYXN0ZSBldmVudCB0byByZWFkIHBhc3RlZCBmaWxlcyBmcm9tIGV2dC5jbGlwYm9hcmREYXRhXHJcblx0ICovXHJcblx0aGFuZGxlUGFzdGUgPSAoZXZ0OiBDbGlwYm9hcmRFdmVudCkgPT4ge1xyXG5cdFx0Ly8gR2V0IGFsdCB0ZXh0IGZyb20gY2xpcGJvYXJkIGRhdGEgYW5kIGFkZCBpdCB0byB0aGUgaW1hZ2Ugd2UgY3JlYXRlIHdpdGggYmFzZTY0IGRhdGFcclxuXHRcdGNvbnN0IHRleHQgPSBldnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9odG1sJylcclxuXHRcdGxldCBhbHQgPSAnJ1xyXG5cdFx0aWYgKHRleHQpIHtcclxuXHRcdFx0Y29uc3QgcmVnRXhwID0gL2FsdD1cIiguKj8pXCIvXHJcblx0XHRcdGFsdCA9IHJlZ0V4cC5leGVjKHRleHQpPy5bMV0gfHwgJydcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoZXZ0LmNsaXBib2FyZERhdGEgJiYgZXZ0LmNsaXBib2FyZERhdGEuaXRlbXMgJiYgZXZ0LmNsaXBib2FyZERhdGEuaXRlbXMubGVuZ3RoKSB7XHJcblx0XHRcdHRoaXMucmVhZEZpbGVzKGV2dC5jbGlwYm9hcmREYXRhLml0ZW1zLCBiYXNlNjREYXRhVXJsID0+IHtcclxuXHRcdFx0XHQvLyB3YWl0IHVudGlsIGFmdGVyIHRoZSBkZWZhdWx0IHBhc3RlIGFjdGlvbiBmaW5pc2hlc1xyXG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbnNlcnQoYmFzZTY0RGF0YVVybCwgYWx0KSwgNTApXHJcblx0XHRcdH0pXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBJbnNlcnQgdGhlIGltYWdlIGludG8gdGhlIGRvY3VtZW50IGF0IHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvblxyXG5cdCAqL1xyXG5cdGluc2VydCA9IChiYXNlNjREYXRhVXJsOiBzdHJpbmcgfCBBcnJheUJ1ZmZlciB8IG51bGwgfCB1bmRlZmluZWQsIGFsdCA9ICcnKTogdm9pZCA9PiB7XHJcblx0XHRjb25zdCBsb2dnZXIgPSBnZXRMb2dnZXIoKVxyXG5cdFx0Y29uc3QgaW5kZXggPSAodGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oKSB8fCB7fSkuaW5kZXggfHwgdGhpcy5xdWlsbC5nZXRMZW5ndGgoKVxyXG5cdFx0Y29uc3QgZGlmZjogRGVsdGFTdGF0aWMgPSBuZXcgRGVsdGEoKVxyXG5cdFx0ZGlmZi5vcHMgPSBbXVxyXG5cclxuXHRcdGlmIChpbmRleCA+IDApIHtcclxuXHRcdFx0ZGlmZi5vcHMucHVzaCh7IHJldGFpbjogaW5kZXggfSlcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBpbmRleEJlZm9yZSA9IE1hdGgubWF4KDAsIGluZGV4IC0gMSlcclxuXHRcdGNvbnN0IGNvbnRlbnRzQmVmb3JlSW5kZXggPSB0aGlzLnF1aWxsLmdldENvbnRlbnRzKGluZGV4QmVmb3JlLCAxKVxyXG5cdFx0bG9nZ2VyLmRlYnVnKCdpbnNlcnQgLSBmaW5kIGNvbnRlbnRzIGJlZm9yZSBpbmRleCcsIHsgaW5kZXg6IGluZGV4QmVmb3JlLCBjb250ZW50c0JlZm9yZUluZGV4IH0pXHJcblxyXG5cdFx0Ly8gd2hlbiBjb3B5LXBhc3RpbmcgYW4gaW1hZ2UgZnJvbSB0aGUgd2ViL2Jyb3dzZXIsIHRoZSB3ZWIgdXJsIGltYWdlIGlzIGltbWVkaWF0ZWx5IGluc2VydGVkLlxyXG5cdFx0Ly8gY2hlY2sgaWYgYSB3ZWIgaW1hZ2UgZXhpc3RzIGF0IHRoZSBwcmV2aW91cyBpbmRleCwgYW5kIHJlcGxhY2UgaXQuXHJcblx0XHQvLyB3aGVuIGNvcHktcGFzdGluZyBhbiBpbWFnZSBmaWxlIGZyb20gdGhlIGNvbXB1dGVyLCB0aGUgYGJhc2U2NERhdGFVcmxgIGltYWdlIGlzIGltbWVkaWF0ZWx5IGluc2VydGVkLGJ1dCBpcyBtaXNzaW5nIHNvbWUgYmxvdCBpbmZvLlxyXG5cdFx0Ly8gY2hlY2sgaWYgdGhlIHNhbWUgaW1hZ2UgZGF0YSBhbHJlYWR5IGV4aXN0cyBhdCB0aGUgcHJldmlvdXMgaW5kZXgsIGFuZCByZXBsYWNlIGl0LlxyXG5cdFx0aWYgKFxyXG5cdFx0XHRjb250ZW50c0JlZm9yZUluZGV4Py5vcHM/LlswXT8uaW5zZXJ0Py5pbWFnZT8uc3JjPy5zdGFydHNXaXRoKCdodHRwJykgfHxcclxuXHRcdFx0Y29udGVudHNCZWZvcmVJbmRleD8ub3BzPy5bMF0/Lmluc2VydD8uaW1hZ2U/LnNyYyA9PT0gYmFzZTY0RGF0YVVybFxyXG5cdFx0KSB7XHJcblx0XHRcdGxvZ2dlci5kZWJ1ZygnaW5zZXJ0IC0gcmVtb3ZlIGltYWdlIGJlZm9yZSBpbmRleCcpXHJcblx0XHRcdGRpZmYub3BzID0gW11cclxuXHRcdFx0aWYgKGluZGV4QmVmb3JlID4gMCkge1xyXG5cdFx0XHRcdGRpZmYub3BzLnB1c2goeyByZXRhaW46IGluZGV4QmVmb3JlIH0pXHJcblx0XHRcdH1cclxuXHRcdFx0ZGlmZi5vcHMucHVzaCh7IGRlbGV0ZTogMSB9KVxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIGluc2VydCB0aGUgaW1hZ2UgYXQgdGhlIGluZGV4XHJcblx0XHRkaWZmLm9wcy5wdXNoKHsgaW5zZXJ0OiB7IGltYWdlOiB7IHNyYzogYmFzZTY0RGF0YVVybCwgYWx0IH0gfSB9KVxyXG5cclxuXHRcdGlmIChkaWZmLm9wcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdGxvZ2dlci5kZWJ1ZygnaW5zZXJ0IC0gcXVpbGwudXBkYXRlQ29udGVudHMnLCB7IGRpZmYgfSlcclxuXHRcdFx0dGhpcy5xdWlsbC51cGRhdGVDb250ZW50cyhkaWZmLCAndXNlcicpXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBFeHRyYWN0IGJhc2U2NCBpbWFnZSBVUklzIGZyb20gYSBsaXN0IG9mIGZpbGVzIGZyb20gZXZ0LmRhdGFUcmFuc2ZlciBvciBldnQuY2xpcGJvYXJkRGF0YVxyXG5cdCAqL1xyXG5cdHJlYWRGaWxlcyA9IChcclxuXHRcdGZpbGVzOiBEYXRhVHJhbnNmZXJJdGVtTGlzdCB8IEZpbGVMaXN0LFxyXG5cdFx0Y2FsbGJhY2s6IChkYXRhVXJsOiBzdHJpbmcgfCBBcnJheUJ1ZmZlciB8IG51bGwgfCB1bmRlZmluZWQpID0+IHZvaWRcclxuXHQpOiB2b2lkID0+IHtcclxuXHRcdGNvbnN0IHJlZ0V4cCA9IFJlZ0V4cCgvXmltYWdlXFwvKGdpZnxqcGU/Z3xhP3BuZ3xzdmd8d2VicHxibXB8dm5kXFwubWljcm9zb2Z0XFwuaWNvbikvaSlcclxuXHRcdC8vIGNoZWNrIGVhY2ggZmlsZSBmb3IgYW4gaW1hZ2VcclxuXHRcdDtbXS5mb3JFYWNoLmNhbGwoZmlsZXMsIChmaWxlOiBEYXRhVHJhbnNmZXJJdGVtKSA9PiB7XHJcblx0XHRcdGlmICghcmVnRXhwLnRlc3QoZmlsZS50eXBlKSkge1xyXG5cdFx0XHRcdC8vIGZpbGUgaXMgbm90IGFuIGltYWdlXHJcblx0XHRcdFx0Ly8gTm90ZSB0aGF0IHNvbWUgZmlsZSBmb3JtYXRzIHN1Y2ggYXMgcHNkIHN0YXJ0IHdpdGggaW1hZ2UvKiBidXQgYXJlIG5vdCByZWFkYWJsZVxyXG5cdFx0XHRcdHJldHVyblxyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcclxuXHRcdFx0cmVhZGVyLm9ubG9hZCA9IGV2dCA9PiB7XHJcblx0XHRcdFx0Y2FsbGJhY2soZXZ0LnRhcmdldD8ucmVzdWx0KVxyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnN0IGJsb2IgPSBmaWxlLmdldEFzRmlsZSA/IGZpbGUuZ2V0QXNGaWxlKCkgOiBmaWxlXHJcblx0XHRcdGlmIChibG9iIGluc3RhbmNlb2YgQmxvYikge1xyXG5cdFx0XHRcdHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpXHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFFQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFIQTs7QUFLQSxNQUFNRSxLQUFLLEdBQUdDLGlCQUFLLENBQUNDLE1BQU0sQ0FBQyxPQUFPLENBQUM7O0FBRW5DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUMsZUFBZSxDQUFDO0VBSTVCO0FBQ0Q7QUFDQTtFQUNDQyxXQUFXQSxDQUFDQyxLQUFZLEVBQUU7SUFBQSxJQUFBQyxLQUFBO0lBQUEsSUFBQUMsZ0JBQUEsQ0FBQUMsT0FBQTtJQUFBLElBQUFELGdCQUFBLENBQUFDLE9BQUE7SUFRMUI7QUFDRDtBQUNBO0lBRkMsSUFBQUQsZ0JBQUEsQ0FBQUMsT0FBQSxzQkFHY0MsR0FBYyxJQUFLO01BQ2hDQSxHQUFHLENBQUNDLGNBQWMsQ0FBQyxD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
@@ -1,12 +1,50 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
3
7
  exports.ImageWarning = void 0;
4
- const tslib_1 = require("tslib");
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- const Error_1 = tslib_1.__importDefault(require("@material-ui/icons/Error"));
7
- const Warning_1 = tslib_1.__importDefault(require("@material-ui/icons/Warning"));
8
- const react_1 = require("react");
9
- const ImageWarning = ({ text, className, isError }) => (0, react_1.useMemo)(() => {
10
- return ((0, jsx_runtime_1.jsxs)("div", { className: `small pv1 mv1${className ? ` ${className}` : ''}`, children: [isError ? (0, jsx_runtime_1.jsx)(Error_1.default, { className: "fill-red nt1 mr1" }) : (0, jsx_runtime_1.jsx)(Warning_1.default, { className: "fill-orange nt1 mr1" }), text] }));
11
- }, [className, text, isError]);
8
+ var _reactCompilerRuntime = require("react-compiler-runtime");
9
+ var _Error = _interopRequireDefault(require("@material-ui/icons/Error"));
10
+ var _Warning = _interopRequireDefault(require("@material-ui/icons/Warning"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ const ImageWarning = t0 => {
15
+ const $ = (0, _reactCompilerRuntime.c)(6);
16
+ const {
17
+ text,
18
+ className,
19
+ isError
20
+ } = t0;
21
+ const t1 = `small pv1 mv1${className ? ` ${className}` : ""}`;
22
+ let t2;
23
+ if ($[0] !== isError) {
24
+ t2 = isError ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Error.default, {
25
+ className: "fill-red nt1 mr1"
26
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Warning.default, {
27
+ className: "fill-orange nt1 mr1"
28
+ });
29
+ $[0] = isError;
30
+ $[1] = t2;
31
+ } else {
32
+ t2 = $[1];
33
+ }
34
+ let t3;
35
+ if ($[2] !== t1 || $[3] !== t2 || $[4] !== text) {
36
+ t3 = /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
37
+ className: t1,
38
+ children: [t2, text]
39
+ });
40
+ $[2] = t1;
41
+ $[3] = t2;
42
+ $[4] = text;
43
+ $[5] = t3;
44
+ } else {
45
+ t3 = $[5];
46
+ }
47
+ return t3;
48
+ };
12
49
  exports.ImageWarning = ImageWarning;
50
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRXJyb3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9XYXJuaW5nIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfanN4UnVudGltZSIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIkltYWdlV2FybmluZyIsInQwIiwiJCIsIl9yZWFjdENvbXBpbGVyUnVudGltZSIsImMiLCJ0ZXh0IiwiY2xhc3NOYW1lIiwiaXNFcnJvciIsInQxIiwidDIiLCJqc3giLCJ0MyIsImpzeHMiLCJjaGlsZHJlbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9RdWlsbC9JbWFnZVdhcm5pbmcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBJY29uRXJyb3IgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Vycm9yJ1xyXG5pbXBvcnQgSWNvbldhcm5pbmcgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL1dhcm5pbmcnXHJcbmltcG9ydCBSZWFjdCwgeyBGdW5jdGlvbkNvbXBvbmVudCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbWFnZVdhcm5pbmdQcm9wcyB7XHJcblx0dGV4dDogc3RyaW5nIHwgUmVhY3QuSlNYLkVsZW1lbnRcclxuXHRjbGFzc05hbWU/OiBzdHJpbmdcclxuXHRpc0Vycm9yPzogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgSW1hZ2VXYXJuaW5nOiBGdW5jdGlvbkNvbXBvbmVudDxJbWFnZVdhcm5pbmdQcm9wcz4gPSAoeyB0ZXh0LCBjbGFzc05hbWUsIGlzRXJyb3IgfSkgPT5cclxuXHR1c2VNZW1vKCgpID0+IHtcclxuXHRcdHJldHVybiAoXHJcblx0XHRcdDxkaXYgY2xhc3NOYW1lPXtgc21hbGwgcHYxIG12MSR7Y2xhc3NOYW1lID8gYCAke2NsYXNzTmFtZX1gIDogJyd9YH0+XHJcblx0XHRcdFx0e2lzRXJyb3IgPyA8SWNvbkVycm9yIGNsYXNzTmFtZT1cImZpbGwtcmVkIG50MSBtcjFcIiAvPiA6IDxJY29uV2FybmluZyBjbGFzc05hbWU9XCJmaWxsLW9yYW5nZSBudDEgbXIxXCIgLz59XHJcblx0XHRcdFx0e3RleHR9XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0KVxyXG5cdH0sIFtjbGFzc05hbWUsIHRleHQsIGlzRXJyb3JdKVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQXlELElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUFBLFNBQUFHLHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSix1QkFBQSxZQUFBQSxDQUFBRSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFPLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBUSxDQUFBLGdCQUFBUCxDQUFBLElBQUFELENBQUEsZ0JBQUFDLENBQUEsT0FBQWEsY0FBQSxDQUFBQyxJQUFBLENBQUFmLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLElBQUFELENBQUEsR0FBQVUsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWxCLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLENBQUFLLEdBQUEsSUFBQUwsQ0FBQSxDQUFBTSxHQUFBLElBQUFQLENBQUEsQ0FBQUUsQ0FBQSxFQUFBUCxDQUFBLEVBQUFNLENBQUEsSUFBQUMsQ0FBQSxDQUFBUCxDQUFBLElBQUFELENBQUEsQ0FBQUMsQ0FBQSxXQUFBTyxDQUFBLEtBQUFSLENBQUEsRUFBQUMsQ0FBQTtBQVFsRCxNQUFNa0IsWUFBa0QsR0FBR0MsRUFBQTtFQUFBLE1BQUFDLENBQUEsT0FBQUMscUJBQUEsQ0FBQUMsQ0FBQTtFQUFDO0lBQUFDLElBQUE7SUFBQUMsU0FBQTtJQUFBQztFQUFBLElBQUFOLEVBQTRCO0VBRzVFLE1BQUFPLEVBQUEsbUJBQWdCRixTQUFTLEdBQVQsSUFBZ0JBLFNBQVMsRUFBTyxHQUFoQyxFQUFnQyxFQUFFO0VBQUEsSUFBQUcsRUFBQTtFQUFBLElBQUFQLENBQUEsUUFBQUssT0FBQTtJQUNoRUUsRUFBQSxHQUFBRixPQUFPLGdCQUFQLElBQUEzQixXQUFBLENBQUE4QixHQUFBLEVBQVdwQyxNQUFBLENBQUFpQixPQUFTO01BQVdlLFNBQWtCLEVBQWxCO0lBQWtCLENBQW9ELENBQUMsZ0JBQXRHLElBQUExQixXQUFBLENBQUE4QixHQUFBLEVBQXdEakMsUUFBQSxDQUFBYyxPQUFXO01BQVdlLFNBQXFCLEVBQXJCO0lBQXFCLENBQUUsQ0FBQztJQUFBSixDQUFBLE1BQUFLLE9BQUE7SUFBQUwsQ0FBQSxNQUFBTyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBUCxDQUFBO0VBQUE7RUFBQSxJQUFBUyxFQUFBO0VBQUEsSUFBQVQsQ0FBQSxRQUFBTSxFQUFBLElBQUFOLENBQUEsUUFBQU8sRUFBQSxJQUFBUCxDQUFBLFFBQUFHLElBQUE7SUFEeEdNLEVBQUEsb0JBQUEvQixXQUFBLENBQUFnQyxJQUFBO01BQWdCTixTQUFrRCxFQUFsREUsRUFBa0Q7TUFBQUssUUFBQSxHQUNoRUosRUFBc0csRUFDdEdKLElBQUk7SUFBQSxDQUNELENBQUM7SUFBQUgsQ0FBQSxNQUFBTSxFQUFBO0lBQUFOLENBQUEsTUFBQU8sRUFBQTtJQUFBUCxDQUFBLE1BQUFHLElBQUE7SUFBQUgsQ0FBQSxNQUFBUyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBVCxDQUFBO0VBQUE7RUFBQSxPQUpQUyxFQUtDO0FBQUEsQ0FDNEI7QUFBQUcsT0FBQSxDQUFBZCxZQUFBLEdBQUFBLFlBQUEiLCJpZ25vcmVMaXN0IjpbXX0=