studiokit-scaffolding-js 7.0.12-next.1.3 → 7.0.12-next.2.1

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