studiokit-scaffolding-js 7.0.12-next.2.9 → 7.0.13-alpha.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 (390) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +137 -137
  3. package/lib/components/ActionList.d.ts +2 -2
  4. package/lib/components/ActionList.js +87 -166
  5. package/lib/components/AlertDialog.d.ts +3 -3
  6. package/lib/components/AlertDialog.js +18 -133
  7. package/lib/components/AlertWithIcon.js +52 -93
  8. package/lib/components/ConnectedModal.d.ts +2 -1
  9. package/lib/components/ConnectedModal.js +37 -43
  10. package/lib/components/Dropdowns/GroupsDropdown.d.ts +4 -4
  11. package/lib/components/Dropdowns/GroupsDropdown.js +82 -69
  12. package/lib/components/Dropdowns/ManagedNavDropdown.d.ts +2 -2
  13. package/lib/components/Dropdowns/ManagedNavDropdown.js +111 -99
  14. package/lib/components/Dropdowns/UserDropdown.js +70 -109
  15. package/lib/components/Dropdowns/index.js +11 -27
  16. package/lib/components/EntityOwnerList.d.ts +3 -3
  17. package/lib/components/EntityOwnerList.js +60 -52
  18. package/lib/components/Error.js +27 -107
  19. package/lib/components/ErrorBoundary.js +94 -133
  20. package/lib/components/ErrorMessage.d.ts +2 -2
  21. package/lib/components/ErrorMessage.js +14 -44
  22. package/lib/components/Forms/DateField.d.ts +2 -2
  23. package/lib/components/Forms/DateField.js +95 -63
  24. package/lib/components/Forms/TimeField.d.ts +2 -2
  25. package/lib/components/Forms/TimeField.js +108 -84
  26. package/lib/components/Forms/index.js +13 -27
  27. package/lib/components/Groups/CreateEditCopySaveButtons.d.ts +2 -2
  28. package/lib/components/Groups/CreateEditCopySaveButtons.js +14 -102
  29. package/lib/components/Groups/ExternalGroups/Attach.d.ts +7 -6
  30. package/lib/components/Groups/ExternalGroups/Attach.js +188 -213
  31. package/lib/components/Groups/ExternalGroups/Table.js +76 -183
  32. package/lib/components/Groups/GroupCreateOrEditCommonProps.js +1 -5
  33. package/lib/components/Groups/RosterSyncInfo.js +49 -140
  34. package/lib/components/HOC/AccessibleAppComponent.d.ts +2 -2
  35. package/lib/components/HOC/AccessibleAppComponent.js +124 -101
  36. package/lib/components/HOC/ActivityRequiredComponent.d.ts +14 -14
  37. package/lib/components/HOC/ActivityRequiredComponent.js +107 -93
  38. package/lib/components/HOC/AsyncComponent.d.ts +9 -9
  39. package/lib/components/HOC/AsyncComponent.js +129 -53
  40. package/lib/components/HOC/AuthenticatedComponent.d.ts +4 -4
  41. package/lib/components/HOC/AuthenticatedComponent.js +96 -59
  42. package/lib/components/HOC/CollectionComponent.d.ts +12 -12
  43. package/lib/components/HOC/CollectionComponent.js +171 -171
  44. package/lib/components/HOC/CollectionFirstItemComponent.d.ts +13 -13
  45. package/lib/components/HOC/CollectionFirstItemComponent.js +94 -52
  46. package/lib/components/HOC/CollectionItemComponent.d.ts +9 -9
  47. package/lib/components/HOC/CollectionItemComponent.js +168 -169
  48. package/lib/components/HOC/ConnectedModalComponent.d.ts +9 -9
  49. package/lib/components/HOC/ConnectedModalComponent.js +140 -110
  50. package/lib/components/HOC/DataDependentComponent.d.ts +55 -3
  51. package/lib/components/HOC/DataDependentComponent.js +79 -30
  52. package/lib/components/HOC/EntityComponent.d.ts +13 -13
  53. package/lib/components/HOC/EntityComponent.js +112 -74
  54. package/lib/components/HOC/FullscreenModalComponent.d.ts +9 -9
  55. package/lib/components/HOC/FullscreenModalComponent.js +185 -165
  56. package/lib/components/HOC/GroupActivityRequiredComponent.d.ts +2 -2
  57. package/lib/components/HOC/GroupActivityRequiredComponent.js +47 -48
  58. package/lib/components/HOC/GuidComponent.d.ts +1 -1
  59. package/lib/components/HOC/GuidComponent.js +68 -29
  60. package/lib/components/HOC/ModelContextDependencyVerifyComponent.d.ts +29 -28
  61. package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +65 -42
  62. package/lib/components/HOC/ModelErrorRedirectComponent.d.ts +10 -10
  63. package/lib/components/HOC/ModelErrorRedirectComponent.js +94 -51
  64. package/lib/components/HOC/SearchPersistorComponent.d.ts +4 -4
  65. package/lib/components/HOC/SearchPersistorComponent.js +216 -243
  66. package/lib/components/HOC/UnauthenticatedComponent.d.ts +12 -12
  67. package/lib/components/HOC/UnauthenticatedComponent.js +82 -37
  68. package/lib/components/HOC/UserComponent.d.ts +1 -1
  69. package/lib/components/HOC/UserComponent.js +11 -12
  70. package/lib/components/Icons/IconAlphaList.js +20 -34
  71. package/lib/components/Icons/IconExternalUser.js +20 -34
  72. package/lib/components/Icons/IconImpersonation.js +20 -34
  73. package/lib/components/Icons/IconStopImpersonating.js +20 -34
  74. package/lib/components/Icons/IconTable.js +21 -35
  75. package/lib/components/Icons/IconTableDeleteCol.js +20 -34
  76. package/lib/components/Icons/IconTableDeleteRow.js +20 -34
  77. package/lib/components/Icons/IconTableInsertCol.js +20 -34
  78. package/lib/components/Icons/IconTableInsertRow.js +20 -34
  79. package/lib/components/Impersonation/Button.d.ts +2 -2
  80. package/lib/components/Impersonation/Button.js +56 -76
  81. package/lib/components/Impersonation/Link.d.ts +2 -2
  82. package/lib/components/Impersonation/Link.js +53 -76
  83. package/lib/components/Impersonation/UserDetail.css +22 -22
  84. package/lib/components/Impersonation/UserDetail.d.ts +2 -2
  85. package/lib/components/Impersonation/UserDetail.js +17 -66
  86. package/lib/components/Loading.js +21 -27
  87. package/lib/components/LockDownBrowser/Check.js +107 -194
  88. package/lib/components/LockDownBrowser/ExitButton.js +14 -27
  89. package/lib/components/LockDownBrowser/Launch.js +85 -70
  90. package/lib/components/Lti/Confirm.js +33 -152
  91. package/lib/components/Lti/CreateNonLtiGroupAlertDialog.d.ts +2 -4
  92. package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +78 -170
  93. package/lib/components/Lti/Launch.js +49 -105
  94. package/lib/components/Lti/LaunchGroup.js +39 -85
  95. package/lib/components/ManageTable.d.ts +2 -1
  96. package/lib/components/ManageTable.js +104 -309
  97. package/lib/components/ManageTableNoDataComponent.js +22 -42
  98. package/lib/components/NewVersionAlert.d.ts +2 -2
  99. package/lib/components/NewVersionAlert.js +91 -82
  100. package/lib/components/NotFound.js +28 -87
  101. package/lib/components/Notifications.d.ts +4 -4
  102. package/lib/components/Notifications.js +169 -187
  103. package/lib/components/PaginationNextButton.js +21 -33
  104. package/lib/components/PaginationPreviousButton.js +21 -33
  105. package/lib/components/Quill/CustomToolbar.d.ts +2 -2
  106. package/lib/components/Quill/CustomToolbar.js +257 -432
  107. package/lib/components/Quill/Formats/Image.d.ts +25 -10
  108. package/lib/components/Quill/Formats/Image.js +86 -80
  109. package/lib/components/Quill/Formats/List.d.ts +3 -6
  110. package/lib/components/Quill/Formats/List.js +74 -52
  111. package/lib/components/Quill/Formats/Video.d.ts +1 -2
  112. package/lib/components/Quill/Formats/Video.js +45 -31
  113. package/lib/components/Quill/ImageDropModule.d.ts +1 -1
  114. package/lib/components/Quill/ImageDropModule.js +122 -149
  115. package/lib/components/Quill/ImageWarning.d.ts +2 -2
  116. package/lib/components/Quill/ImageWarning.js +32 -45
  117. package/lib/components/Quill/ImageWithAltTextModal.d.ts +1 -0
  118. package/lib/components/Quill/ImageWithAltTextModal.js +141 -425
  119. package/lib/components/Quill/Specs/CustomImageSpec.d.ts +1 -1
  120. package/lib/components/Quill/Specs/CustomImageSpec.js +51 -43
  121. package/lib/components/Quill/Specs/CustomVideoSpec.d.ts +1 -1
  122. package/lib/components/Quill/Specs/CustomVideoSpec.js +44 -35
  123. package/lib/components/Quill/TableModule/Blots/BaseTableBlot.d.ts +1 -2
  124. package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +121 -105
  125. package/lib/components/Quill/TableModule/Blots/TableBlot.js +66 -53
  126. package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +67 -54
  127. package/lib/components/Quill/TableModule/Blots/TableCellBlot.d.ts +1 -1
  128. package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +241 -225
  129. package/lib/components/Quill/TableModule/Blots/TableContainer.js +99 -82
  130. package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +87 -76
  131. package/lib/components/Quill/TableModule/constants.js +41 -45
  132. package/lib/components/Quill/TableModule/index.css +171 -171
  133. package/lib/components/Quill/TableModule/index.d.ts +5 -14
  134. package/lib/components/Quill/TableModule/index.js +313 -373
  135. package/lib/components/Quill/TableModule/utils.js +45 -45
  136. package/lib/components/Quill/accessibilityFix.d.ts +1 -0
  137. package/lib/components/Quill/accessibilityFix.js +251 -235
  138. package/lib/components/Quill/index.js +32 -36
  139. package/lib/components/RefreshIndicator/Bordered.js +32 -48
  140. package/lib/components/RefreshIndicator/Inline.js +33 -48
  141. package/lib/components/RefreshIndicator/index.d.ts +2 -2
  142. package/lib/components/RefreshIndicator/index.js +113 -263
  143. package/lib/components/SearchControls.js +31 -216
  144. package/lib/components/SentryRoute.js +23 -10
  145. package/lib/components/Tables/RoleFilter.d.ts +4 -3
  146. package/lib/components/Tables/RoleFilter.js +46 -71
  147. package/lib/components/Tables/TextFilter.d.ts +3 -2
  148. package/lib/components/Tables/TextFilter.js +20 -62
  149. package/lib/components/UserRoles/Add.d.ts +3 -3
  150. package/lib/components/UserRoles/Add.js +161 -199
  151. package/lib/components/UserRoles/Context.js +9 -11
  152. package/lib/components/UserRoles/RoleCell.js +100 -180
  153. package/lib/components/UserRoles/Select.js +54 -157
  154. package/lib/components/UserRoles/Table.js +102 -221
  155. package/lib/components/UserRoles/index.d.ts +6 -6
  156. package/lib/components/UserRoles/index.js +466 -537
  157. package/lib/config/eslint/index.cjs +21 -0
  158. package/lib/config/eslint/lib/order.cjs +22 -0
  159. package/lib/config/eslint/lib/prettier.cjs +18 -0
  160. package/lib/config/eslint/lib/typescript.cjs +86 -0
  161. package/lib/config/eslint/react.cjs +9 -0
  162. package/lib/constants/baseActivity.js +26 -30
  163. package/lib/constants/baseRole.js +10 -14
  164. package/lib/constants/configuration.d.ts +1 -1
  165. package/lib/constants/configuration.js +39 -43
  166. package/lib/constants/externalProviderType.js +6 -10
  167. package/lib/constants/fetchErrorData.js +11 -15
  168. package/lib/constants/index.js +23 -137
  169. package/lib/constants/lockDownBrowser.js +24 -28
  170. package/lib/constants/mockData.d.ts +6 -4
  171. package/lib/constants/mockData.js +326 -385
  172. package/lib/constants/modelStatus.js +11 -15
  173. package/lib/constants/notificationType.js +8 -12
  174. package/lib/constants/operatingSystem.js +8 -12
  175. package/lib/constants/shard.js +7 -11
  176. package/lib/constants/table.js +21 -21
  177. package/lib/constants/tier.js +8 -12
  178. package/lib/constants/userRole.d.ts +2 -1
  179. package/lib/constants/userRole.js +17 -15
  180. package/lib/css/base/_base.css +98 -98
  181. package/lib/css/base/_typography.css +130 -130
  182. package/lib/css/components/_alert.css +86 -86
  183. package/lib/css/components/_bootstrap-grid.css +28 -28
  184. package/lib/css/components/_buttons.css +397 -397
  185. package/lib/css/components/_forms.css +101 -101
  186. package/lib/css/components/_menu.css +56 -56
  187. package/lib/css/components/_modals.css +46 -46
  188. package/lib/css/components/_quill.css +315 -315
  189. package/lib/css/components/_tables.css +497 -497
  190. package/lib/css/components/_tags.css +12 -12
  191. package/lib/css/index-with-variables.css +15 -15
  192. package/lib/css/index.css +14 -14
  193. package/lib/css/utils/_border.css +463 -463
  194. package/lib/css/utils/_color.css +317 -317
  195. package/lib/css/utils/_display.css +312 -305
  196. package/lib/css/utils/_general.css +48 -48
  197. package/lib/css/utils/_icon.css +16 -16
  198. package/lib/css/utils/_text.css +24 -25
  199. package/lib/css/utils/_width.css +60 -60
  200. package/lib/css/variables.css +84 -84
  201. package/lib/endpointMappings.js +193 -197
  202. package/lib/hooks/useCollection.js +65 -83
  203. package/lib/hooks/useCollectionConfiguration.d.ts +1 -0
  204. package/lib/hooks/useCollectionConfiguration.js +88 -185
  205. package/lib/hooks/useCollectionItem.js +58 -155
  206. package/lib/hooks/useGuid.js +10 -21
  207. package/lib/hooks/usePrevious.d.ts +1 -24
  208. package/lib/hooks/usePrevious.js +14 -84
  209. package/lib/index.js +36 -156
  210. package/lib/redux/actionCreator.d.ts +6 -6
  211. package/lib/redux/actionCreator.js +40 -51
  212. package/lib/redux/actions/AuthAction.js +31 -44
  213. package/lib/redux/actions/ModalAction.d.ts +1 -1
  214. package/lib/redux/actions/ModalAction.js +6 -10
  215. package/lib/redux/actions/ModelAction.d.ts +1 -1
  216. package/lib/redux/actions/ModelAction.js +49 -77
  217. package/lib/redux/actions/NotificationAction.js +6 -10
  218. package/lib/redux/actions/SearchAction.js +5 -9
  219. package/lib/redux/actions/index.js +16 -60
  220. package/lib/redux/configureReducers.d.ts +5 -2
  221. package/lib/redux/configureReducers.js +78 -67
  222. package/lib/redux/configureStore.d.ts +2 -2
  223. package/lib/redux/configureStore.js +115 -83
  224. package/lib/redux/helpers.js +2 -7
  225. package/lib/redux/reducers/authReducer.js +46 -52
  226. package/lib/redux/reducers/index.js +15 -41
  227. package/lib/redux/reducers/modalsReducer.js +52 -49
  228. package/lib/redux/reducers/modelsReducer.d.ts +2 -2
  229. package/lib/redux/reducers/modelsReducer.js +182 -183
  230. package/lib/redux/reducers/notificationsReducer.js +21 -26
  231. package/lib/redux/reducers/searchReducer.js +20 -26
  232. package/lib/redux/sagas/appInsightsSaga.js +62 -24
  233. package/lib/redux/sagas/authSaga.js +414 -287
  234. package/lib/redux/sagas/caliperSaga.js +263 -169
  235. package/lib/redux/sagas/clockOffsetSaga.js +77 -36
  236. package/lib/redux/sagas/configurationSaga.js +46 -13
  237. package/lib/redux/sagas/downtimeApiErrorSaga.d.ts +1 -0
  238. package/lib/redux/sagas/downtimeApiErrorSaga.js +64 -23
  239. package/lib/redux/sagas/errorSaga.d.ts +1 -0
  240. package/lib/redux/sagas/errorSaga.js +63 -29
  241. package/lib/redux/sagas/googleAnalyticsSaga.js +69 -29
  242. package/lib/redux/sagas/identityProviderSaga.js +69 -24
  243. package/lib/redux/sagas/initialDataLoadSaga.js +29 -38
  244. package/lib/redux/sagas/lockDownBrowserErrorSaga.d.ts +1 -0
  245. package/lib/redux/sagas/lockDownBrowserErrorSaga.js +81 -32
  246. package/lib/redux/sagas/modelFetchSaga.js +459 -379
  247. package/lib/redux/sagas/noStoreSaga.d.ts +1 -1
  248. package/lib/redux/sagas/noStoreSaga.js +101 -68
  249. package/lib/redux/sagas/postLoginDataSaga.js +79 -47
  250. package/lib/redux/sagas/postLoginRedirectSaga.js +71 -30
  251. package/lib/redux/sagas/rootSaga.js +137 -85
  252. package/lib/redux/sagas/sentrySaga.js +85 -29
  253. package/lib/redux/sagas/userIdSaga.js +54 -18
  254. package/lib/services/codeProviderService.js +29 -25
  255. package/lib/services/dateService.js +12 -14
  256. package/lib/services/documentService.js +13 -18
  257. package/lib/services/fetchService.js +168 -134
  258. package/lib/services/persistenceService.d.ts +4 -4
  259. package/lib/services/persistenceService.js +43 -45
  260. package/lib/services/ticketProviderService.js +33 -29
  261. package/lib/services/tokenPersistenceService.js +9 -13
  262. package/lib/services/windowService.js +17 -21
  263. package/lib/startup.d.ts +1 -1
  264. package/lib/startup.js +135 -132
  265. package/lib/types/AppConfiguration.js +1 -5
  266. package/lib/types/Artifact.js +7 -11
  267. package/lib/types/BaseReduxState.js +1 -5
  268. package/lib/types/Client.js +1 -5
  269. package/lib/types/Collection.d.ts +3 -3
  270. package/lib/types/Collection.js +1 -5
  271. package/lib/types/Configuration.js +1 -5
  272. package/lib/types/DeepLinkingResponseRequest.js +1 -5
  273. package/lib/types/DeletableModel.js +1 -5
  274. package/lib/types/Event.js +1 -5
  275. package/lib/types/ExternalGroup.js +1 -5
  276. package/lib/types/ExternalProvider.js +1 -5
  277. package/lib/types/ExternalTerm.js +1 -5
  278. package/lib/types/Group.js +1 -5
  279. package/lib/types/IdentityProvider.js +1 -5
  280. package/lib/types/LtiLaunch.js +1 -5
  281. package/lib/types/NameOnlyEntity.js +1 -5
  282. package/lib/types/Notification.d.ts +2 -2
  283. package/lib/types/Notification.js +1 -5
  284. package/lib/types/OptionalRecord.d.ts +1 -1
  285. package/lib/types/OptionalRecord.js +1 -5
  286. package/lib/types/OwnerSchedule.d.ts +1 -3
  287. package/lib/types/OwnerSchedule.js +1 -5
  288. package/lib/types/PropertyOfType.d.ts +3 -3
  289. package/lib/types/PropertyOfType.js +1 -5
  290. package/lib/types/Quill.js +1 -5
  291. package/lib/types/RoleDescription.d.ts +1 -0
  292. package/lib/types/RoleDescription.js +1 -5
  293. package/lib/types/Search.js +1 -5
  294. package/lib/types/SimpleLocation.js +1 -5
  295. package/lib/types/UniTime.js +1 -5
  296. package/lib/types/User.js +1 -5
  297. package/lib/types/UserRole.js +1 -5
  298. package/lib/types/auth/AuthState.js +1 -5
  299. package/lib/types/auth/CasV1LoginRequestBody.js +1 -5
  300. package/lib/types/auth/ClientCredentials.js +1 -5
  301. package/lib/types/auth/CodeProviderService.js +1 -5
  302. package/lib/types/auth/LocalLoginRequestBody.js +1 -5
  303. package/lib/types/auth/TicketProviderService.js +1 -5
  304. package/lib/types/auth/TokenPersistenceService.js +1 -5
  305. package/lib/types/auth/index.js +18 -82
  306. package/lib/types/index.js +39 -313
  307. package/lib/types/net/EndpointConfig.js +1 -5
  308. package/lib/types/net/EndpointMapping.js +1 -5
  309. package/lib/types/net/EndpointMappings.js +1 -5
  310. package/lib/types/net/ErrorHandler.d.ts +1 -1
  311. package/lib/types/net/ErrorHandler.js +1 -5
  312. package/lib/types/net/FetchConfig.d.ts +1 -1
  313. package/lib/types/net/FetchConfig.js +1 -5
  314. package/lib/types/net/FetchErrorData.js +6 -10
  315. package/lib/types/net/FetchResult.d.ts +2 -2
  316. package/lib/types/net/FetchResult.js +1 -5
  317. package/lib/types/net/HTTPMethod.d.ts +1 -1
  318. package/lib/types/net/HTTPMethod.js +1 -5
  319. package/lib/types/net/HTTPStatusCode.js +12 -16
  320. package/lib/types/net/Metadata.js +1 -5
  321. package/lib/types/net/Model.js +1 -5
  322. package/lib/types/net/ModelCollection.js +1 -5
  323. package/lib/types/net/ModelsState.js +1 -5
  324. package/lib/types/net/OAuthToken.js +1 -5
  325. package/lib/types/net/OAuthTokenOrNull.d.ts +1 -1
  326. package/lib/types/net/OAuthTokenOrNull.js +1 -5
  327. package/lib/types/net/TokenAccessFunction.d.ts +1 -1
  328. package/lib/types/net/TokenAccessFunction.js +1 -5
  329. package/lib/types/net/index.js +27 -181
  330. package/lib/utils/baseActivity.d.ts +2 -2
  331. package/lib/utils/baseActivity.js +136 -138
  332. package/lib/utils/baseRole.js +33 -37
  333. package/lib/utils/collection.js +310 -432
  334. package/lib/utils/cookies.js +37 -22
  335. package/lib/utils/date.js +320 -320
  336. package/lib/utils/dom.js +174 -186
  337. package/lib/utils/domainIdentifier.js +9 -9
  338. package/lib/utils/entityUserRole.js +2 -6
  339. package/lib/utils/error.d.ts +1 -1
  340. package/lib/utils/error.js +16 -18
  341. package/lib/utils/events.js +33 -40
  342. package/lib/utils/externalGroup.js +21 -25
  343. package/lib/utils/externalProviders.js +4 -8
  344. package/lib/utils/externalTerms.js +6 -9
  345. package/lib/utils/fetch.d.ts +1 -1
  346. package/lib/utils/fetch.js +185 -188
  347. package/lib/utils/group.js +9 -17
  348. package/lib/utils/groupDates.d.ts +1 -1
  349. package/lib/utils/groupDates.js +39 -43
  350. package/lib/utils/groupRoles.js +28 -28
  351. package/lib/utils/lockDownBrowser.js +12 -16
  352. package/lib/utils/logger.js +25 -30
  353. package/lib/utils/lti.js +5 -10
  354. package/lib/utils/model.d.ts +2 -2
  355. package/lib/utils/model.js +48 -39
  356. package/lib/utils/number.js +26 -23
  357. package/lib/utils/promise.d.ts +1 -6
  358. package/lib/utils/promise.js +15 -34
  359. package/lib/utils/quill.js +77 -66
  360. package/lib/utils/route.d.ts +2 -2
  361. package/lib/utils/route.js +60 -61
  362. package/lib/utils/search.d.ts +1 -1
  363. package/lib/utils/search.js +85 -78
  364. package/lib/utils/shard.js +41 -38
  365. package/lib/utils/sort.d.ts +3 -3
  366. package/lib/utils/sort.js +58 -62
  367. package/lib/utils/string.js +10 -14
  368. package/lib/utils/table.d.ts +3 -3
  369. package/lib/utils/table.js +36 -39
  370. package/lib/utils/timezone.js +26 -12
  371. package/lib/utils/url.d.ts +1 -2
  372. package/lib/utils/url.js +201 -146
  373. package/lib/utils/user.js +61 -59
  374. package/lib/utils/userAgent.js +11 -11
  375. package/lib/utils/userRole.d.ts +3 -3
  376. package/lib/utils/userRole.js +56 -58
  377. package/package.json +207 -226
  378. package/lib/config/eslint/index.d.ts +0 -2
  379. package/lib/config/eslint/index.js +0 -36
  380. package/lib/config/eslint/lib/order.d.ts +0 -3
  381. package/lib/config/eslint/lib/order.js +0 -30
  382. package/lib/config/eslint/lib/prettier.d.ts +0 -3
  383. package/lib/config/eslint/lib/prettier.js +0 -23
  384. package/lib/config/eslint/lib/typescript.d.ts +0 -2
  385. package/lib/config/eslint/lib/typescript.js +0 -98
  386. package/lib/config/eslint/react.d.ts +0 -2
  387. package/lib/config/eslint/react.js +0 -30
  388. package/lib/hooks/useEventCalback.d.ts +0 -14
  389. package/lib/hooks/useEventCalback.js +0 -51
  390. package/lib/types/externals.d.js +0 -2
@@ -1,155 +1,128 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
7
3
  exports.ImageDropModule = void 0;
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
4
+ var react_quill_1 = require("react-quill");
5
+ var logger_1 = require("../../utils/logger");
6
+ var 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
21
13
  */
22
- class ImageDropModule {
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
14
+ var ImageDropModule = /** @class */ (function () {
15
+ /**
16
+ * Instantiate the module given a quill instance and any options
32
17
  */
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
- window.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);
18
+ function ImageDropModule(quill, options) {
19
+ var _this = this;
20
+ /**
21
+ * Handler for drop event to read dropped files from evt.dataTransfer
22
+ */
23
+ this.handleDrop = function (evt) {
24
+ evt.preventDefault();
25
+ if (evt.dataTransfer && evt.dataTransfer.files && evt.dataTransfer.files.length) {
26
+ var selection = document.getSelection();
27
+ var range = null;
28
+ if (document.caretRangeFromPoint) {
29
+ range = document.caretRangeFromPoint(evt.clientX, evt.clientY);
30
+ }
31
+ else if (document.caretPositionFromPoint) {
32
+ var pos = document.caretPositionFromPoint(evt.clientX, evt.clientY);
33
+ range = document.createRange();
34
+ range.setStart((pos === null || pos === void 0 ? void 0 : pos.offsetNode) || document.body, (pos === null || pos === void 0 ? void 0 : pos.offset) || 0);
35
+ range.collapse(true);
36
+ }
37
+ if (selection && range) {
38
+ selection.setBaseAndExtent(range.startContainer, range.startOffset, range.startContainer, range.startOffset);
39
+ }
40
+ _this.readFiles(evt.dataTransfer.files, _this.insert.bind(_this));
41
+ }
42
+ };
43
+ /**
44
+ * Handler for paste event to read pasted files from evt.clipboardData
45
+ */
46
+ this.handlePaste = function (evt) {
47
+ var _a, _b;
48
+ // Get alt text from clipboard data and add it to the image we create with base64 data
49
+ var text = (_a = evt.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text/html');
50
+ var alt = '';
51
+ if (text) {
52
+ var regExp = /alt="(.*?)"/;
53
+ alt = ((_b = regExp.exec(text)) === null || _b === void 0 ? void 0 : _b[1]) || '';
54
+ }
55
+ if (evt.clipboardData && evt.clipboardData.items && evt.clipboardData.items.length) {
56
+ _this.readFiles(evt.clipboardData.items, function (base64DataUrl) {
57
+ // wait until after the default paste action finishes
58
+ setTimeout(function () { return _this.insert(base64DataUrl, alt); }, 50);
59
+ });
60
+ }
61
+ };
62
+ /**
63
+ * Insert the image into the document at the current cursor position
64
+ */
65
+ this.insert = function (base64DataUrl, alt) {
66
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
67
+ if (alt === void 0) { alt = ''; }
68
+ var logger = logger_1.getLogger();
69
+ var index = (_this.quill.getSelection() || {}).index || _this.quill.getLength();
70
+ var diff = new Delta();
71
+ diff.ops = [];
72
+ if (index > 0) {
73
+ diff.ops.push({ retain: index });
74
+ }
75
+ var indexBefore = Math.max(0, index - 1);
76
+ var contentsBeforeIndex = _this.quill.getContents(indexBefore, 1);
77
+ logger.debug('insert - find contents before index', { index: indexBefore, contentsBeforeIndex: contentsBeforeIndex });
78
+ // when copy-pasting an image from the web/browser, the web url image is immediately inserted.
79
+ // check if a web image exists at the previous index, and replace it.
80
+ // when copy-pasting an image file from the computer, the `base64DataUrl` image is immediately inserted,but is missing some blot info.
81
+ // check if the same image data already exists at the previous index, and replace it.
82
+ 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')) ||
83
+ ((_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) {
84
+ logger.debug('insert - remove image before index');
85
+ diff.ops = [];
86
+ if (indexBefore > 0) {
87
+ diff.ops.push({ retain: indexBefore });
88
+ }
89
+ diff.ops.push({ delete: 1 });
90
+ }
91
+ // insert the image at the index
92
+ diff.ops.push({ insert: { image: { src: base64DataUrl, alt: alt } } });
93
+ if (diff.ops.length > 0) {
94
+ logger.debug('insert - quill.updateContents', { diff: diff });
95
+ _this.quill.updateContents(diff, 'user');
96
+ }
97
+ };
98
+ /**
99
+ * Extract base64 image URIs from a list of files from evt.dataTransfer or evt.clipboardData
100
+ */
101
+ this.readFiles = function (files, callback) {
102
+ var regExp = RegExp(/^image\/(gif|jpe?g|a?png|svg|webp|bmp|vnd\.microsoft\.icon)/i);
103
+ [].forEach.call(files, function (file) {
104
+ if (!regExp.test(file.type)) {
105
+ // file is not an image
106
+ // Note that some file formats such as psd start with image/* but are not readable
107
+ return;
108
+ }
109
+ var reader = new FileReader();
110
+ reader.onload = function (evt) {
111
+ var _a;
112
+ callback((_a = evt.target) === null || _a === void 0 ? void 0 : _a.result);
113
+ };
114
+ var blob = file.getAsFile ? file.getAsFile() : file;
115
+ if (blob instanceof Blob) {
116
+ reader.readAsDataURL(blob);
117
+ }
118
+ });
140
119
  };
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
- }
153
- }
120
+ this.quill = quill;
121
+ this.handleDrop = this.handleDrop.bind(this);
122
+ this.handlePaste = this.handlePaste.bind(this);
123
+ this.quill.root.addEventListener('drop', this.handleDrop, false);
124
+ this.quill.root.addEventListener('paste', this.handlePaste, false);
125
+ }
126
+ return ImageDropModule;
127
+ }());
154
128
  exports.ImageDropModule = ImageDropModule;
155
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RRdWlsbCIsInJlcXVpcmUiLCJfbG9nZ2VyIiwiRGVsdGEiLCJRdWlsbCIsImltcG9ydCIsIkltYWdlRHJvcE1vZHVsZSIsImNvbnN0cnVjdG9yIiwicXVpbGwiLCJfdGhpcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwiZXZ0IiwicHJldmVudERlZmF1bHQiLCJkYXRhVHJhbnNmZXIiLCJmaWxlcyIsImxlbmd0aCIsInNlbGVjdGlvbiIsImRvY3VtZW50IiwiZ2V0U2VsZWN0aW9uIiwicmFuZ2UiLCJjYXJldFJhbmdlRnJvbVBvaW50IiwiY2xpZW50WCIsImNsaWVudFkiLCJjYXJldFBvc2l0aW9uRnJvbVBvaW50IiwicG9zIiwiY3JlYXRlUmFuZ2UiLCJzZXRTdGFydCIsIm9mZnNldE5vZGUiLCJib2R5Iiwib2Zmc2V0IiwiY29sbGFwc2UiLCJzZXRCYXNlQW5kRXh0ZW50Iiwic3RhcnRDb250YWluZXIiLCJzdGFydE9mZnNldCIsInJlYWRGaWxlcyIsImluc2VydCIsImJpbmQiLCJ0ZXh0IiwiY2xpcGJvYXJkRGF0YSIsImdldERhdGEiLCJhbHQiLCJyZWdFeHAiLCJleGVjIiwiaXRlbXMiLCJiYXNlNjREYXRhVXJsIiwid2luZG93Iiwic2V0VGltZW91dCIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImxvZ2dlciIsImdldExvZ2dlciIsImluZGV4IiwiZ2V0TGVuZ3RoIiwiZGlmZiIsIm9wcyIsInB1c2giLCJyZXRhaW4iLCJpbmRleEJlZm9yZSIsIk1hdGgiLCJtYXgiLCJjb250ZW50c0JlZm9yZUluZGV4IiwiZ2V0Q29udGVudHMiLCJkZWJ1ZyIsImltYWdlIiwic3JjIiwic3RhcnRzV2l0aCIsImRlbGV0ZSIsInVwZGF0ZUNvbnRlbnRzIiwiY2FsbGJhY2siLCJSZWdFeHAiLCJmb3JFYWNoIiwiY2FsbCIsImZpbGUiLCJ0ZXN0IiwidHlwZSIsInJlYWRlciIsIkZpbGVSZWFkZXIiLCJvbmxvYWQiLCJ0YXJnZXQiLCJyZXN1bHQiLCJibG9iIiwiZ2V0QXNGaWxlIiwiQmxvYiIsInJlYWRBc0RhdGFVUkwiLCJoYW5kbGVEcm9wIiwiaGFuZGxlUGFzdGUiLCJyb290IiwiYWRkRXZlbnRMaXN0ZW5lciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9RdWlsbC9JbWFnZURyb3BNb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvbiAqL1xyXG5pbXBvcnQgeyBEZWx0YVN0YXRpYyB9IGZyb20gJ3F1aWxsJ1xyXG5pbXBvcnQgeyBRdWlsbCB9IGZyb20gJ3JlYWN0LXF1aWxsJ1xyXG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tICcuLi8uLi91dGlscy9sb2dnZXInXHJcblxyXG5jb25zdCBEZWx0YSA9IFF1aWxsLmltcG9ydCgnZGVsdGEnKVxyXG5cclxuLyoqXHJcbiAqIEN1c3RvbSBtb2R1bGUgZm9yIHF1aWxsanMgdG8gYWxsb3cgdXNlciB0byBkcmFnIGltYWdlcyBmcm9tIHRoZWlyIGZpbGUgc3lzdGVtIGludG8gdGhlIGVkaXRvclxyXG4gKiBhbmQgcGFzdGUgaW1hZ2VzIGZyb20gY2xpcGJvYXJkIChXb3JrcyBvbiBDaHJvbWUsIEZpcmVmb3gsIEVkZ2UsIG5vdCBvbiBTYWZhcmkpXHJcbiAqIEBzZWUgaHR0cHM6Ly9xdWlsbGpzLmNvbS9ibG9nL2J1aWxkaW5nLWEtY3VzdG9tLW1vZHVsZS9cclxuICpcclxuICogUm91Z2hseSBmb3JrZWQgKGFuZCBUeXBlU2NyaXB0ZWQpIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2tlbnNueWRlci9xdWlsbC1pbWFnZS1kcm9wLW1vZHVsZS9ibG9iL21hc3Rlci9zcmMvSW1hZ2VEcm9wLmpzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgSW1hZ2VEcm9wTW9kdWxlIHtcclxuXHRxdWlsbDogUXVpbGxcclxuXHRvcHRpb25zOiBhbnlcclxuXHJcblx0LyoqXHJcblx0ICogSW5zdGFudGlhdGUgdGhlIG1vZHVsZSBnaXZlbiBhIHF1aWxsIGluc3RhbmNlIGFuZCBhbnkgb3B0aW9uc1xyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKHF1aWxsOiBRdWlsbCkge1xyXG5cdFx0dGhpcy5xdWlsbCA9IHF1aWxsXHJcblx0XHR0aGlzLmhhbmRsZURyb3AgPSB0aGlzLmhhbmRsZURyb3AuYmluZCh0aGlzKVxyXG5cdFx0dGhpcy5oYW5kbGVQYXN0ZSA9IHRoaXMuaGFuZGxlUGFzdGUuYmluZCh0aGlzKVxyXG5cdFx0dGhpcy5xdWlsbC5yb290LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLmhhbmRsZURyb3AsIGZhbHNlKVxyXG5cdFx0dGhpcy5xdWlsbC5yb290LmFkZEV2ZW50TGlzdGVuZXIoJ3Bhc3RlJywgdGhpcy5oYW5kbGVQYXN0ZSwgZmFsc2UpXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBIYW5kbGVyIGZvciBkcm9wIGV2ZW50IHRvIHJlYWQgZHJvcHBlZCBmaWxlcyBmcm9tIGV2dC5kYXRhVHJhbnNmZXJcclxuXHQgKi9cclxuXHRoYW5kbGVEcm9wID0gKGV2dDogRHJhZ0V2ZW50KSA9PiB7XHJcblx0XHRldnQucHJldmVudERlZmF1bHQoKVxyXG5cdFx0aWYgKGV2dC5kYXRhVHJhbnNmZXIgJiYgZXZ0LmRhdGFUcmFuc2Zlci5maWxlcyAmJiBldnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCkge1xyXG5cdFx0XHRjb25zdCBzZWxlY3Rpb24gPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKVxyXG5cdFx0XHRsZXQgcmFuZ2U6IFJhbmdlIHwgbnVsbCA9IG51bGxcclxuXHRcdFx0aWYgKGRvY3VtZW50LmNhcmV0UmFuZ2VGcm9tUG9pbnQpIHtcclxuXHRcdFx0XHRyYW5nZSA9IGRvY3VtZW50LmNhcmV0UmFuZ2VGcm9tUG9pbnQoZXZ0LmNsaWVudFgsIGV2dC5jbGllbnRZKVxyXG5cdFx0XHR9IGVsc2UgaWYgKGRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQpIHtcclxuXHRcdFx0XHRjb25zdCBwb3MgPSBkb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KGV2dC5jbGllbnRYLCBldnQuY2xpZW50WSlcclxuXHRcdFx0XHRyYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKClcclxuXHRcdFx0XHRyYW5nZS5zZXRTdGFydChwb3M/Lm9mZnNldE5vZGUgfHwgZG9jdW1lbnQuYm9keSwgcG9zPy5vZmZzZXQgfHwgMClcclxuXHRcdFx0XHRyYW5nZS5jb2xsYXBzZSh0cnVlKVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChzZWxlY3Rpb24gJiYgcmFuZ2UpIHtcclxuXHRcdFx0XHRzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChcclxuXHRcdFx0XHRcdHJhbmdlLnN0YXJ0Q29udGFpbmVyLFxyXG5cdFx0XHRcdFx0cmFuZ2Uuc3RhcnRPZmZzZXQsXHJcblx0XHRcdFx0XHRyYW5nZS5zdGFydENvbnRhaW5lcixcclxuXHRcdFx0XHRcdHJhbmdlLnN0YXJ0T2Zmc2V0XHJcblx0XHRcdFx0KVxyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMucmVhZEZpbGVzKGV2dC5kYXRhVHJhbnNmZXIuZmlsZXMsIHRoaXMuaW5zZXJ0LmJpbmQodGhpcykpXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBIYW5kbGVyIGZvciBwYXN0ZSBldmVudCB0byByZWFkIHBhc3RlZCBmaWxlcyBmcm9tIGV2dC5jbGlwYm9hcmREYXRhXHJcblx0ICovXHJcblx0aGFuZGxlUGFzdGUgPSAoZXZ0OiBDbGlwYm9hcmRFdmVudCkgPT4ge1xyXG5cdFx0Ly8gR2V0IGFsdCB0ZXh0IGZyb20gY2xpcGJvYXJkIGRhdGEgYW5kIGFkZCBpdCB0byB0aGUgaW1hZ2Ugd2UgY3JlYXRlIHdpdGggYmFzZTY0IGRhdGFcclxuXHRcdGNvbnN0IHRleHQgPSBldnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9odG1sJylcclxuXHRcdGxldCBhbHQgPSAnJ1xyXG5cdFx0aWYgKHRleHQpIHtcclxuXHRcdFx0Y29uc3QgcmVnRXhwID0gL2FsdD1cIiguKj8pXCIvXHJcblx0XHRcdGFsdCA9IHJlZ0V4cC5leGVjKHRleHQpPy5bMV0gfHwgJydcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoZXZ0LmNsaXBib2FyZERhdGEgJiYgZXZ0LmNsaXBib2FyZERhdGEuaXRlbXMgJiYgZXZ0LmNsaXBib2FyZERhdGEuaXRlbXMubGVuZ3RoKSB7XHJcblx0XHRcdHRoaXMucmVhZEZpbGVzKGV2dC5jbGlwYm9hcmREYXRhLml0ZW1zLCBiYXNlNjREYXRhVXJsID0+IHtcclxuXHRcdFx0XHQvLyB3YWl0IHVudGlsIGFmdGVyIHRoZSBkZWZhdWx0IHBhc3RlIGFjdGlvbiBmaW5pc2hlc1xyXG5cdFx0XHRcdHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuaW5zZXJ0KGJhc2U2NERhdGFVcmwsIGFsdCksIDUwKVxyXG5cdFx0XHR9KVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogSW5zZXJ0IHRoZSBpbWFnZSBpbnRvIHRoZSBkb2N1bWVudCBhdCB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb25cclxuXHQgKi9cclxuXHRpbnNlcnQgPSAoYmFzZTY0RGF0YVVybDogc3RyaW5nIHwgQXJyYXlCdWZmZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBhbHQgPSAnJyk6IHZvaWQgPT4ge1xyXG5cdFx0Y29uc3QgbG9nZ2VyID0gZ2V0TG9nZ2VyKClcclxuXHRcdGNvbnN0IGluZGV4ID0gKHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKCkgfHwge30pLmluZGV4IHx8IHRoaXMucXVpbGwuZ2V0TGVuZ3RoKClcclxuXHRcdGNvbnN0IGRpZmY6IERlbHRhU3RhdGljID0gbmV3IERlbHRhKClcclxuXHRcdGRpZmYub3BzID0gW11cclxuXHJcblx0XHRpZiAoaW5kZXggPiAwKSB7XHJcblx0XHRcdGRpZmYub3BzLnB1c2goeyByZXRhaW46IGluZGV4IH0pXHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgaW5kZXhCZWZvcmUgPSBNYXRoLm1heCgwLCBpbmRleCAtIDEpXHJcblx0XHRjb25zdCBjb250ZW50c0JlZm9yZUluZGV4ID0gdGhpcy5xdWlsbC5nZXRDb250ZW50cyhpbmRleEJlZm9yZSwgMSlcclxuXHRcdGxvZ2dlci5kZWJ1ZygnaW5zZXJ0IC0gZmluZCBjb250ZW50cyBiZWZvcmUgaW5kZXgnLCB7IGluZGV4OiBpbmRleEJlZm9yZSwgY29udGVudHNCZWZvcmVJbmRleCB9KVxyXG5cclxuXHRcdC8vIHdoZW4gY29weS1wYXN0aW5nIGFuIGltYWdlIGZyb20gdGhlIHdlYi9icm93c2VyLCB0aGUgd2ViIHVybCBpbWFnZSBpcyBpbW1lZGlhdGVseSBpbnNlcnRlZC5cclxuXHRcdC8vIGNoZWNrIGlmIGEgd2ViIGltYWdlIGV4aXN0cyBhdCB0aGUgcHJldmlvdXMgaW5kZXgsIGFuZCByZXBsYWNlIGl0LlxyXG5cdFx0Ly8gd2hlbiBjb3B5LXBhc3RpbmcgYW4gaW1hZ2UgZmlsZSBmcm9tIHRoZSBjb21wdXRlciwgdGhlIGBiYXNlNjREYXRhVXJsYCBpbWFnZSBpcyBpbW1lZGlhdGVseSBpbnNlcnRlZCxidXQgaXMgbWlzc2luZyBzb21lIGJsb3QgaW5mby5cclxuXHRcdC8vIGNoZWNrIGlmIHRoZSBzYW1lIGltYWdlIGRhdGEgYWxyZWFkeSBleGlzdHMgYXQgdGhlIHByZXZpb3VzIGluZGV4LCBhbmQgcmVwbGFjZSBpdC5cclxuXHRcdGlmIChcclxuXHRcdFx0Y29udGVudHNCZWZvcmVJbmRleD8ub3BzPy5bMF0/Lmluc2VydD8uaW1hZ2U/LnNyYz8uc3RhcnRzV2l0aCgnaHR0cCcpIHx8XHJcblx0XHRcdGNvbnRlbnRzQmVmb3JlSW5kZXg/Lm9wcz8uWzBdPy5pbnNlcnQ/LmltYWdlPy5zcmMgPT09IGJhc2U2NERhdGFVcmxcclxuXHRcdCkge1xyXG5cdFx0XHRsb2dnZXIuZGVidWcoJ2luc2VydCAtIHJlbW92ZSBpbWFnZSBiZWZvcmUgaW5kZXgnKVxyXG5cdFx0XHRkaWZmLm9wcyA9IFtdXHJcblx0XHRcdGlmIChpbmRleEJlZm9yZSA+IDApIHtcclxuXHRcdFx0XHRkaWZmLm9wcy5wdXNoKHsgcmV0YWluOiBpbmRleEJlZm9yZSB9KVxyXG5cdFx0XHR9XHJcblx0XHRcdGRpZmYub3BzLnB1c2goeyBkZWxldGU6IDEgfSlcclxuXHRcdH1cclxuXHJcblx0XHQvLyBpbnNlcnQgdGhlIGltYWdlIGF0IHRoZSBpbmRleFxyXG5cdFx0ZGlmZi5vcHMucHVzaCh7IGluc2VydDogeyBpbWFnZTogeyBzcmM6IGJhc2U2NERhdGFVcmwsIGFsdCB9IH0gfSlcclxuXHJcblx0XHRpZiAoZGlmZi5vcHMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRsb2dnZXIuZGVidWcoJ2luc2VydCAtIHF1aWxsLnVwZGF0ZUNvbnRlbnRzJywgeyBkaWZmIH0pXHJcblx0XHRcdHRoaXMucXVpbGwudXBkYXRlQ29udGVudHMoZGlmZiwgJ3VzZXInKVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRXh0cmFjdCBiYXNlNjQgaW1hZ2UgVVJJcyBmcm9tIGEgbGlzdCBvZiBmaWxlcyBmcm9tIGV2dC5kYXRhVHJhbnNmZXIgb3IgZXZ0LmNsaXBib2FyZERhdGFcclxuXHQgKi9cclxuXHRyZWFkRmlsZXMgPSAoXHJcblx0XHRmaWxlczogRGF0YVRyYW5zZmVySXRlbUxpc3QgfCBGaWxlTGlzdCxcclxuXHRcdGNhbGxiYWNrOiAoZGF0YVVybDogc3RyaW5nIHwgQXJyYXlCdWZmZXIgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB2b2lkXHJcblx0KTogdm9pZCA9PiB7XHJcblx0XHRjb25zdCByZWdFeHAgPSBSZWdFeHAoL15pbWFnZVxcLyhnaWZ8anBlP2d8YT9wbmd8c3ZnfHdlYnB8Ym1wfHZuZFxcLm1pY3Jvc29mdFxcLmljb24pL2kpXHJcblx0XHQvLyBjaGVjayBlYWNoIGZpbGUgZm9yIGFuIGltYWdlXHJcblx0XHQ7W10uZm9yRWFjaC5jYWxsKGZpbGVzLCAoZmlsZTogRGF0YVRyYW5zZmVySXRlbSkgPT4ge1xyXG5cdFx0XHRpZiAoIXJlZ0V4cC50ZXN0KGZpbGUudHlwZSkpIHtcclxuXHRcdFx0XHQvLyBmaWxlIGlzIG5vdCBhbiBpbWFnZVxyXG5cdFx0XHRcdC8vIE5vdGUgdGhhdCBzb21lIGZpbGUgZm9ybWF0cyBzdWNoIGFzIHBzZCBzdGFydCB3aXRoIGltYWdlLyogYnV0IGFyZSBub3QgcmVhZGFibGVcclxuXHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXHJcblx0XHRcdHJlYWRlci5vbmxvYWQgPSBldnQgPT4ge1xyXG5cdFx0XHRcdGNhbGxiYWNrKGV2dC50YXJnZXQ/LnJlc3VsdClcclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCBibG9iID0gZmlsZS5nZXRBc0ZpbGUgPyBmaWxlLmdldEFzRmlsZSgpIDogZmlsZVxyXG5cdFx0XHRpZiAoYmxvYiBpbnN0YW5jZW9mIEJsb2IpIHtcclxuXHRcdFx0XHRyZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKVxyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBRUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBSEE7O0FBS0EsTUFBTUUsS0FBSyxHQUFHQyxpQkFBSyxDQUFDQyxNQUFNLENBQUMsT0FBTyxDQUFDOztBQUVuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLGVBQWUsQ0FBQztFQUk1QjtBQUNEO0FBQ0E7RUFDQ0MsV0FBV0EsQ0FBQ0MsS0FBWSxFQUFFO0lBQUEsSUFBQUMsS0FBQTtJQUFBLElBQUFDLGdCQUFBLENBQUFDLE9BQUE7SUFBQSxJQUFBRCxnQkFBQSxDQUFBQyxPQUFBO0lBUTFCO0FBQ0Q7QUFDQTtJQUZDLElBQUFELGdCQUFBLENBQUFDLE9BQUEsc0JBR2NDLEdBQWMsSUFBSztNQUNoQ0EsR0FBRyxD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
@@ -1,6 +1,6 @@
1
- import React, { FunctionComponent } from 'react';
1
+ import { FunctionComponent } from 'react';
2
2
  export interface ImageWarningProps {
3
- text: string | React.JSX.Element;
3
+ text: string | JSX.Element;
4
4
  className?: string;
5
5
  isError?: boolean;
6
6
  }
@@ -1,50 +1,37 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
6
13
  });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
7
25
  exports.ImageWarning = void 0;
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;
26
+ var Error_1 = __importDefault(require("@material-ui/icons/Error"));
27
+ var Warning_1 = __importDefault(require("@material-ui/icons/Warning"));
28
+ var react_1 = __importStar(require("react"));
29
+ var ImageWarning = function (_a) {
30
+ var text = _a.text, className = _a.className, isError = _a.isError;
31
+ return react_1.useMemo(function () {
32
+ return (react_1.default.createElement("div", { className: "small pv1 mv1" + (className ? " " + className : '') },
33
+ isError ? react_1.default.createElement(Error_1.default, { className: "fill-red nt1 mr1" }) : react_1.default.createElement(Warning_1.default, { className: "fill-orange nt1 mr1" }),
34
+ text));
35
+ }, [className, text, isError]);
48
36
  };
49
37
  exports.ImageWarning = ImageWarning;
50
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRXJyb3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9XYXJuaW5nIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfanN4UnVudGltZSIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIkltYWdlV2FybmluZyIsInQwIiwiJCIsIl9yZWFjdENvbXBpbGVyUnVudGltZSIsImMiLCJ0ZXh0IiwiY2xhc3NOYW1lIiwiaXNFcnJvciIsInQxIiwidDIiLCJqc3giLCJ0MyIsImpzeHMiLCJjaGlsZHJlbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9RdWlsbC9JbWFnZVdhcm5pbmcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBJY29uRXJyb3IgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Vycm9yJ1xyXG5pbXBvcnQgSWNvbldhcm5pbmcgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL1dhcm5pbmcnXHJcbmltcG9ydCBSZWFjdCwgeyBGdW5jdGlvbkNvbXBvbmVudCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbWFnZVdhcm5pbmdQcm9wcyB7XHJcblx0dGV4dDogc3RyaW5nIHwgUmVhY3QuSlNYLkVsZW1lbnRcclxuXHRjbGFzc05hbWU/OiBzdHJpbmdcclxuXHRpc0Vycm9yPzogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgSW1hZ2VXYXJuaW5nOiBGdW5jdGlvbkNvbXBvbmVudDxJbWFnZVdhcm5pbmdQcm9wcz4gPSAoeyB0ZXh0LCBjbGFzc05hbWUsIGlzRXJyb3IgfSkgPT5cclxuXHR1c2VNZW1vKCgpID0+IHtcclxuXHRcdHJldHVybiAoXHJcblx0XHRcdDxkaXYgY2xhc3NOYW1lPXtgc21hbGwgcHYxIG12MSR7Y2xhc3NOYW1lID8gYCAke2NsYXNzTmFtZX1gIDogJyd9YH0+XHJcblx0XHRcdFx0e2lzRXJyb3IgPyA8SWNvbkVycm9yIGNsYXNzTmFtZT1cImZpbGwtcmVkIG50MSBtcjFcIiAvPiA6IDxJY29uV2FybmluZyBjbGFzc05hbWU9XCJmaWxsLW9yYW5nZSBudDEgbXIxXCIgLz59XHJcblx0XHRcdFx0e3RleHR9XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0KVxyXG5cdH0sIFtjbGFzc05hbWUsIHRleHQsIGlzRXJyb3JdKVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQXlELElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUFBLFNBQUFHLHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSix1QkFBQSxZQUFBQSxDQUFBRSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFPLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBUSxDQUFBLGdCQUFBUCxDQUFBLElBQUFELENBQUEsZ0JBQUFDLENBQUEsT0FBQWEsY0FBQSxDQUFBQyxJQUFBLENBQUFmLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLElBQUFELENBQUEsR0FBQVUsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWxCLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLENBQUFLLEdBQUEsSUFBQUwsQ0FBQSxDQUFBTSxHQUFBLElBQUFQLENBQUEsQ0FBQUUsQ0FBQSxFQUFBUCxDQUFBLEVBQUFNLENBQUEsSUFBQUMsQ0FBQSxDQUFBUCxDQUFBLElBQUFELENBQUEsQ0FBQUMsQ0FBQSxXQUFBTyxDQUFBLEtBQUFSLENBQUEsRUFBQUMsQ0FBQTtBQVFsRCxNQUFNa0IsWUFBa0QsR0FBR0MsRUFBQTtFQUFBLE1BQUFDLENBQUEsT0FBQUMscUJBQUEsQ0FBQUMsQ0FBQTtFQUFDO0lBQUFDLElBQUE7SUFBQUMsU0FBQTtJQUFBQztFQUFBLElBQUFOLEVBQTRCO0VBRzVFLE1BQUFPLEVBQUEsbUJBQWdCRixTQUFTLEdBQVQsSUFBZ0JBLFNBQVMsRUFBTyxHQUFoQyxFQUFnQyxFQUFFO0VBQUEsSUFBQUcsRUFBQTtFQUFBLElBQUFQLENBQUEsUUFBQUssT0FBQTtJQUNoRUUsRUFBQSxHQUFBRixPQUFPLGdCQUFQLElBQUEzQixXQUFBLENBQUE4QixHQUFBLEVBQVdwQyxNQUFBLENBQUFpQixPQUFTO01BQVdlLFNBQWtCLEVBQWxCO0lBQWtCLENBQW9ELENBQUMsZ0JBQXRHLElBQUExQixXQUFBLENBQUE4QixHQUFBLEVBQXdEakMsUUFBQSxDQUFBYyxPQUFXO01BQVdlLFNBQXFCLEVBQXJCO0lBQXFCLENBQUUsQ0FBQztJQUFBSixDQUFBLE1BQUFLLE9BQUE7SUFBQUwsQ0FBQSxNQUFBTyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBUCxDQUFBO0VBQUE7RUFBQSxJQUFBUyxFQUFBO0VBQUEsSUFBQVQsQ0FBQSxRQUFBTSxFQUFBLElBQUFOLENBQUEsUUFBQU8sRUFBQSxJQUFBUCxDQUFBLFFBQUFHLElBQUE7SUFEeEdNLEVBQUEsb0JBQUEvQixXQUFBLENBQUFnQyxJQUFBO01BQWdCTixTQUFrRCxFQUFsREUsRUFBa0Q7TUFBQUssUUFBQSxHQUNoRUosRUFBc0csRUFDdEdKLElBQUk7SUFBQSxDQUNELENBQUM7SUFBQUgsQ0FBQSxNQUFBTSxFQUFBO0lBQUFOLENBQUEsTUFBQU8sRUFBQTtJQUFBUCxDQUFBLE1BQUFHLElBQUE7SUFBQUgsQ0FBQSxNQUFBUyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBVCxDQUFBO0VBQUE7RUFBQSxPQUpQUyxFQUtDO0FBQUEsQ0FDNEI7QUFBQUcsT0FBQSxDQUFBZCxZQUFBLEdBQUFBLFlBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -7,6 +7,7 @@ interface ImageWithAltTextProps {
7
7
  imageToEdit?: ImageValue;
8
8
  supportedImageExtensions: string[];
9
9
  onClose: () => void;
10
+ fileSelector: HTMLInputElement;
10
11
  reactQuillRef: ReactQuill | null;
11
12
  range: RangeStatic | undefined;
12
13
  }