studiokit-scaffolding-js 7.0.12 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +166 -87
  5. package/lib/components/AlertDialog.d.ts +3 -3
  6. package/lib/components/AlertDialog.js +133 -18
  7. package/lib/components/AlertWithIcon.js +93 -52
  8. package/lib/components/ConnectedModal.d.ts +1 -2
  9. package/lib/components/ConnectedModal.js +43 -37
  10. package/lib/components/Dropdowns/GroupsDropdown.d.ts +4 -4
  11. package/lib/components/Dropdowns/GroupsDropdown.js +69 -82
  12. package/lib/components/Dropdowns/ManagedNavDropdown.d.ts +2 -2
  13. package/lib/components/Dropdowns/ManagedNavDropdown.js +99 -111
  14. package/lib/components/Dropdowns/UserDropdown.js +109 -70
  15. package/lib/components/Dropdowns/index.js +27 -11
  16. package/lib/components/EntityOwnerList.d.ts +3 -3
  17. package/lib/components/EntityOwnerList.js +52 -60
  18. package/lib/components/Error.js +107 -27
  19. package/lib/components/ErrorBoundary.js +133 -94
  20. package/lib/components/ErrorMessage.d.ts +2 -2
  21. package/lib/components/ErrorMessage.js +44 -14
  22. package/lib/components/Forms/DateField.d.ts +2 -2
  23. package/lib/components/Forms/DateField.js +63 -95
  24. package/lib/components/Forms/TimeField.d.ts +2 -2
  25. package/lib/components/Forms/TimeField.js +84 -108
  26. package/lib/components/Forms/index.js +27 -13
  27. package/lib/components/Groups/CreateEditCopySaveButtons.d.ts +2 -2
  28. package/lib/components/Groups/CreateEditCopySaveButtons.js +102 -14
  29. package/lib/components/Groups/ExternalGroups/Attach.d.ts +6 -7
  30. package/lib/components/Groups/ExternalGroups/Attach.js +213 -188
  31. package/lib/components/Groups/ExternalGroups/Table.js +183 -76
  32. package/lib/components/Groups/GroupCreateOrEditCommonProps.js +5 -1
  33. package/lib/components/Groups/RosterSyncInfo.js +140 -49
  34. package/lib/components/HOC/AccessibleAppComponent.d.ts +2 -2
  35. package/lib/components/HOC/AccessibleAppComponent.js +101 -124
  36. package/lib/components/HOC/ActivityRequiredComponent.d.ts +14 -14
  37. package/lib/components/HOC/ActivityRequiredComponent.js +93 -107
  38. package/lib/components/HOC/AsyncComponent.d.ts +9 -9
  39. package/lib/components/HOC/AsyncComponent.js +53 -129
  40. package/lib/components/HOC/AuthenticatedComponent.d.ts +4 -4
  41. package/lib/components/HOC/AuthenticatedComponent.js +59 -96
  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 +52 -94
  46. package/lib/components/HOC/CollectionItemComponent.d.ts +9 -9
  47. package/lib/components/HOC/CollectionItemComponent.js +169 -168
  48. package/lib/components/HOC/ConnectedModalComponent.d.ts +9 -9
  49. package/lib/components/HOC/ConnectedModalComponent.js +110 -140
  50. package/lib/components/HOC/DataDependentComponent.d.ts +3 -55
  51. package/lib/components/HOC/DataDependentComponent.js +30 -79
  52. package/lib/components/HOC/EntityComponent.d.ts +13 -13
  53. package/lib/components/HOC/EntityComponent.js +74 -112
  54. package/lib/components/HOC/FullscreenModalComponent.d.ts +9 -9
  55. package/lib/components/HOC/FullscreenModalComponent.js +165 -185
  56. package/lib/components/HOC/GroupActivityRequiredComponent.d.ts +2 -2
  57. package/lib/components/HOC/GroupActivityRequiredComponent.js +48 -47
  58. package/lib/components/HOC/GuidComponent.d.ts +1 -1
  59. package/lib/components/HOC/GuidComponent.js +29 -68
  60. package/lib/components/HOC/ModelContextDependencyVerifyComponent.d.ts +28 -29
  61. package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +42 -65
  62. package/lib/components/HOC/ModelErrorRedirectComponent.d.ts +10 -10
  63. package/lib/components/HOC/ModelErrorRedirectComponent.js +51 -94
  64. package/lib/components/HOC/SearchPersistorComponent.d.ts +4 -4
  65. package/lib/components/HOC/SearchPersistorComponent.js +243 -216
  66. package/lib/components/HOC/UnauthenticatedComponent.d.ts +12 -12
  67. package/lib/components/HOC/UnauthenticatedComponent.js +37 -82
  68. package/lib/components/HOC/UserComponent.d.ts +1 -1
  69. package/lib/components/HOC/UserComponent.js +12 -11
  70. package/lib/components/Icons/IconAlphaList.js +34 -20
  71. package/lib/components/Icons/IconExternalUser.js +34 -20
  72. package/lib/components/Icons/IconImpersonation.js +34 -20
  73. package/lib/components/Icons/IconStopImpersonating.js +34 -20
  74. package/lib/components/Icons/IconTable.js +35 -21
  75. package/lib/components/Icons/IconTableDeleteCol.js +34 -20
  76. package/lib/components/Icons/IconTableDeleteRow.js +34 -20
  77. package/lib/components/Icons/IconTableInsertCol.js +34 -20
  78. package/lib/components/Icons/IconTableInsertRow.js +34 -20
  79. package/lib/components/Impersonation/Button.d.ts +2 -2
  80. package/lib/components/Impersonation/Button.js +76 -56
  81. package/lib/components/Impersonation/Link.d.ts +2 -2
  82. package/lib/components/Impersonation/Link.js +76 -53
  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 +66 -17
  86. package/lib/components/Loading.js +27 -21
  87. package/lib/components/LockDownBrowser/Check.js +194 -107
  88. package/lib/components/LockDownBrowser/ExitButton.js +27 -14
  89. package/lib/components/LockDownBrowser/Launch.js +70 -85
  90. package/lib/components/Lti/Confirm.js +152 -33
  91. package/lib/components/Lti/CreateNonLtiGroupAlertDialog.d.ts +4 -2
  92. package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +170 -78
  93. package/lib/components/Lti/Launch.js +105 -49
  94. package/lib/components/Lti/LaunchGroup.js +85 -39
  95. package/lib/components/ManageTable.d.ts +1 -2
  96. package/lib/components/ManageTable.js +309 -104
  97. package/lib/components/ManageTableNoDataComponent.js +42 -22
  98. package/lib/components/NewVersionAlert.d.ts +2 -2
  99. package/lib/components/NewVersionAlert.js +82 -91
  100. package/lib/components/NotFound.js +87 -28
  101. package/lib/components/Notifications.d.ts +4 -4
  102. package/lib/components/Notifications.js +187 -169
  103. package/lib/components/PaginationNextButton.js +33 -21
  104. package/lib/components/PaginationPreviousButton.js +33 -21
  105. package/lib/components/Quill/CustomToolbar.d.ts +2 -2
  106. package/lib/components/Quill/CustomToolbar.js +432 -257
  107. package/lib/components/Quill/Formats/Image.d.ts +10 -25
  108. package/lib/components/Quill/Formats/Image.js +80 -86
  109. package/lib/components/Quill/Formats/List.d.ts +6 -3
  110. package/lib/components/Quill/Formats/List.js +52 -74
  111. package/lib/components/Quill/Formats/Video.d.ts +2 -1
  112. package/lib/components/Quill/Formats/Video.js +31 -45
  113. package/lib/components/Quill/ImageDropModule.d.ts +1 -1
  114. package/lib/components/Quill/ImageDropModule.js +149 -122
  115. package/lib/components/Quill/ImageWarning.d.ts +2 -2
  116. package/lib/components/Quill/ImageWarning.js +45 -32
  117. package/lib/components/Quill/ImageWithAltTextModal.d.ts +0 -1
  118. package/lib/components/Quill/ImageWithAltTextModal.js +425 -141
  119. package/lib/components/Quill/Specs/CustomImageSpec.d.ts +1 -1
  120. package/lib/components/Quill/Specs/CustomImageSpec.js +43 -51
  121. package/lib/components/Quill/Specs/CustomVideoSpec.d.ts +1 -1
  122. package/lib/components/Quill/Specs/CustomVideoSpec.js +35 -44
  123. package/lib/components/Quill/TableModule/Blots/BaseTableBlot.d.ts +2 -1
  124. package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +105 -121
  125. package/lib/components/Quill/TableModule/Blots/TableBlot.js +53 -66
  126. package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +54 -67
  127. package/lib/components/Quill/TableModule/Blots/TableCellBlot.d.ts +1 -1
  128. package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +225 -241
  129. package/lib/components/Quill/TableModule/Blots/TableContainer.js +82 -99
  130. package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +76 -87
  131. package/lib/components/Quill/TableModule/constants.js +45 -41
  132. package/lib/components/Quill/TableModule/index.css +171 -171
  133. package/lib/components/Quill/TableModule/index.d.ts +14 -5
  134. package/lib/components/Quill/TableModule/index.js +373 -313
  135. package/lib/components/Quill/TableModule/utils.js +45 -45
  136. package/lib/components/Quill/accessibilityFix.d.ts +0 -1
  137. package/lib/components/Quill/accessibilityFix.js +235 -251
  138. package/lib/components/Quill/index.js +36 -32
  139. package/lib/components/RefreshIndicator/Bordered.js +48 -32
  140. package/lib/components/RefreshIndicator/Inline.js +48 -33
  141. package/lib/components/RefreshIndicator/index.d.ts +2 -2
  142. package/lib/components/RefreshIndicator/index.js +263 -113
  143. package/lib/components/SearchControls.js +216 -31
  144. package/lib/components/SentryRoute.js +10 -23
  145. package/lib/components/Tables/RoleFilter.d.ts +3 -4
  146. package/lib/components/Tables/RoleFilter.js +71 -46
  147. package/lib/components/Tables/TextFilter.d.ts +2 -3
  148. package/lib/components/Tables/TextFilter.js +62 -20
  149. package/lib/components/UserRoles/Add.d.ts +3 -3
  150. package/lib/components/UserRoles/Add.js +199 -161
  151. package/lib/components/UserRoles/Context.js +11 -9
  152. package/lib/components/UserRoles/RoleCell.js +180 -100
  153. package/lib/components/UserRoles/Select.js +157 -51
  154. package/lib/components/UserRoles/Table.js +221 -102
  155. package/lib/components/UserRoles/index.d.ts +6 -6
  156. package/lib/components/UserRoles/index.js +537 -466
  157. package/lib/config/eslint/index.d.ts +2 -0
  158. package/lib/config/eslint/index.js +36 -0
  159. package/lib/config/eslint/lib/order.d.ts +3 -0
  160. package/lib/config/eslint/lib/order.js +30 -0
  161. package/lib/config/eslint/lib/prettier.d.ts +3 -0
  162. package/lib/config/eslint/lib/prettier.js +23 -0
  163. package/lib/config/eslint/lib/typescript.d.ts +2 -0
  164. package/lib/config/eslint/lib/typescript.js +98 -0
  165. package/lib/config/eslint/react.d.ts +2 -0
  166. package/lib/config/eslint/react.js +30 -0
  167. package/lib/constants/baseActivity.js +30 -26
  168. package/lib/constants/baseRole.js +14 -10
  169. package/lib/constants/configuration.d.ts +1 -1
  170. package/lib/constants/configuration.js +43 -39
  171. package/lib/constants/externalProviderType.js +10 -6
  172. package/lib/constants/fetchErrorData.js +15 -11
  173. package/lib/constants/index.js +137 -23
  174. package/lib/constants/lockDownBrowser.js +28 -24
  175. package/lib/constants/mockData.d.ts +4 -6
  176. package/lib/constants/mockData.js +385 -326
  177. package/lib/constants/modelStatus.js +15 -11
  178. package/lib/constants/notificationType.js +12 -8
  179. package/lib/constants/operatingSystem.js +12 -8
  180. package/lib/constants/shard.js +11 -7
  181. package/lib/constants/table.js +21 -21
  182. package/lib/constants/tier.js +12 -8
  183. package/lib/constants/userRole.d.ts +1 -2
  184. package/lib/constants/userRole.js +15 -17
  185. package/lib/css/base/_base.css +98 -98
  186. package/lib/css/base/_typography.css +130 -130
  187. package/lib/css/components/_alert.css +86 -86
  188. package/lib/css/components/_bootstrap-grid.css +28 -28
  189. package/lib/css/components/_buttons.css +397 -397
  190. package/lib/css/components/_forms.css +101 -101
  191. package/lib/css/components/_menu.css +56 -56
  192. package/lib/css/components/_modals.css +46 -46
  193. package/lib/css/components/_quill.css +315 -315
  194. package/lib/css/components/_tables.css +497 -497
  195. package/lib/css/components/_tags.css +12 -12
  196. package/lib/css/index-with-variables.css +15 -15
  197. package/lib/css/index.css +14 -14
  198. package/lib/css/utils/_border.css +463 -463
  199. package/lib/css/utils/_color.css +317 -317
  200. package/lib/css/utils/_display.css +305 -312
  201. package/lib/css/utils/_general.css +48 -48
  202. package/lib/css/utils/_icon.css +16 -16
  203. package/lib/css/utils/_text.css +25 -24
  204. package/lib/css/utils/_width.css +60 -60
  205. package/lib/css/variables.css +84 -84
  206. package/lib/endpointMappings.js +197 -193
  207. package/lib/hooks/useCollection.js +83 -65
  208. package/lib/hooks/useCollectionConfiguration.d.ts +0 -1
  209. package/lib/hooks/useCollectionConfiguration.js +185 -88
  210. package/lib/hooks/useCollectionItem.js +155 -58
  211. package/lib/hooks/useEventCalback.d.ts +14 -0
  212. package/lib/hooks/useEventCalback.js +51 -0
  213. package/lib/hooks/useGuid.js +21 -10
  214. package/lib/hooks/usePrevious.d.ts +24 -1
  215. package/lib/hooks/usePrevious.js +84 -14
  216. package/lib/index.js +156 -36
  217. package/lib/redux/actionCreator.d.ts +6 -6
  218. package/lib/redux/actionCreator.js +51 -40
  219. package/lib/redux/actions/AuthAction.js +44 -31
  220. package/lib/redux/actions/ModalAction.d.ts +1 -1
  221. package/lib/redux/actions/ModalAction.js +10 -6
  222. package/lib/redux/actions/ModelAction.d.ts +1 -1
  223. package/lib/redux/actions/ModelAction.js +77 -49
  224. package/lib/redux/actions/NotificationAction.js +10 -6
  225. package/lib/redux/actions/SearchAction.js +9 -5
  226. package/lib/redux/actions/index.js +60 -16
  227. package/lib/redux/configureReducers.d.ts +2 -5
  228. package/lib/redux/configureReducers.js +67 -78
  229. package/lib/redux/configureStore.d.ts +2 -2
  230. package/lib/redux/configureStore.js +83 -115
  231. package/lib/redux/helpers.js +7 -2
  232. package/lib/redux/reducers/authReducer.js +52 -46
  233. package/lib/redux/reducers/index.js +41 -15
  234. package/lib/redux/reducers/modalsReducer.js +49 -52
  235. package/lib/redux/reducers/modelsReducer.d.ts +2 -2
  236. package/lib/redux/reducers/modelsReducer.js +183 -182
  237. package/lib/redux/reducers/notificationsReducer.js +26 -21
  238. package/lib/redux/reducers/searchReducer.js +26 -20
  239. package/lib/redux/sagas/appInsightsSaga.js +24 -62
  240. package/lib/redux/sagas/authSaga.js +287 -414
  241. package/lib/redux/sagas/caliperSaga.js +169 -263
  242. package/lib/redux/sagas/clockOffsetSaga.js +36 -77
  243. package/lib/redux/sagas/configurationSaga.js +13 -46
  244. package/lib/redux/sagas/downtimeApiErrorSaga.d.ts +0 -1
  245. package/lib/redux/sagas/downtimeApiErrorSaga.js +23 -64
  246. package/lib/redux/sagas/errorSaga.d.ts +0 -1
  247. package/lib/redux/sagas/errorSaga.js +29 -63
  248. package/lib/redux/sagas/googleAnalyticsSaga.js +29 -69
  249. package/lib/redux/sagas/identityProviderSaga.js +24 -69
  250. package/lib/redux/sagas/initialDataLoadSaga.js +38 -29
  251. package/lib/redux/sagas/lockDownBrowserErrorSaga.d.ts +0 -1
  252. package/lib/redux/sagas/lockDownBrowserErrorSaga.js +32 -81
  253. package/lib/redux/sagas/modelFetchSaga.js +379 -459
  254. package/lib/redux/sagas/noStoreSaga.d.ts +1 -1
  255. package/lib/redux/sagas/noStoreSaga.js +68 -101
  256. package/lib/redux/sagas/postLoginDataSaga.js +47 -79
  257. package/lib/redux/sagas/postLoginRedirectSaga.js +30 -71
  258. package/lib/redux/sagas/rootSaga.js +85 -137
  259. package/lib/redux/sagas/sentrySaga.js +29 -85
  260. package/lib/redux/sagas/userIdSaga.js +18 -54
  261. package/lib/services/codeProviderService.js +25 -29
  262. package/lib/services/dateService.js +14 -12
  263. package/lib/services/documentService.js +18 -13
  264. package/lib/services/fetchService.js +134 -168
  265. package/lib/services/persistenceService.d.ts +4 -4
  266. package/lib/services/persistenceService.js +45 -43
  267. package/lib/services/ticketProviderService.js +29 -33
  268. package/lib/services/tokenPersistenceService.js +13 -9
  269. package/lib/services/windowService.js +21 -17
  270. package/lib/startup.d.ts +1 -1
  271. package/lib/startup.js +132 -135
  272. package/lib/types/AppConfiguration.js +5 -1
  273. package/lib/types/Artifact.js +11 -7
  274. package/lib/types/BaseReduxState.js +5 -1
  275. package/lib/types/Client.js +5 -1
  276. package/lib/types/Collection.d.ts +3 -3
  277. package/lib/types/Collection.js +5 -1
  278. package/lib/types/Configuration.js +5 -1
  279. package/lib/types/DeepLinkingResponseRequest.js +5 -1
  280. package/lib/types/DeletableModel.js +5 -1
  281. package/lib/types/Event.js +5 -1
  282. package/lib/types/ExternalGroup.js +5 -1
  283. package/lib/types/ExternalProvider.js +5 -1
  284. package/lib/types/ExternalTerm.js +5 -1
  285. package/lib/types/Group.js +5 -1
  286. package/lib/types/IdentityProvider.js +5 -1
  287. package/lib/types/LtiLaunch.js +5 -1
  288. package/lib/types/NameOnlyEntity.js +5 -1
  289. package/lib/types/Notification.d.ts +2 -2
  290. package/lib/types/Notification.js +5 -1
  291. package/lib/types/OptionalRecord.d.ts +1 -1
  292. package/lib/types/OptionalRecord.js +5 -1
  293. package/lib/types/OwnerSchedule.d.ts +3 -1
  294. package/lib/types/OwnerSchedule.js +5 -1
  295. package/lib/types/PropertyOfType.d.ts +3 -3
  296. package/lib/types/PropertyOfType.js +5 -1
  297. package/lib/types/Quill.js +5 -1
  298. package/lib/types/RoleDescription.d.ts +0 -1
  299. package/lib/types/RoleDescription.js +5 -1
  300. package/lib/types/Search.js +5 -1
  301. package/lib/types/SimpleLocation.js +5 -1
  302. package/lib/types/UniTime.js +5 -1
  303. package/lib/types/User.js +5 -1
  304. package/lib/types/UserRole.js +5 -1
  305. package/lib/types/auth/AuthState.js +5 -1
  306. package/lib/types/auth/CasV1LoginRequestBody.js +5 -1
  307. package/lib/types/auth/ClientCredentials.js +5 -1
  308. package/lib/types/auth/CodeProviderService.js +5 -1
  309. package/lib/types/auth/LocalLoginRequestBody.js +5 -1
  310. package/lib/types/auth/TicketProviderService.js +5 -1
  311. package/lib/types/auth/TokenPersistenceService.js +5 -1
  312. package/lib/types/auth/index.js +82 -18
  313. package/lib/types/externals.d.js +2 -0
  314. package/lib/types/index.js +313 -39
  315. package/lib/types/net/EndpointConfig.js +5 -1
  316. package/lib/types/net/EndpointMapping.js +5 -1
  317. package/lib/types/net/EndpointMappings.js +5 -1
  318. package/lib/types/net/ErrorHandler.d.ts +1 -1
  319. package/lib/types/net/ErrorHandler.js +5 -1
  320. package/lib/types/net/FetchConfig.d.ts +1 -1
  321. package/lib/types/net/FetchConfig.js +5 -1
  322. package/lib/types/net/FetchErrorData.js +10 -6
  323. package/lib/types/net/FetchResult.d.ts +2 -2
  324. package/lib/types/net/FetchResult.js +5 -1
  325. package/lib/types/net/HTTPMethod.d.ts +1 -1
  326. package/lib/types/net/HTTPMethod.js +5 -1
  327. package/lib/types/net/HTTPStatusCode.js +16 -12
  328. package/lib/types/net/Metadata.js +5 -1
  329. package/lib/types/net/Model.js +5 -1
  330. package/lib/types/net/ModelCollection.js +5 -1
  331. package/lib/types/net/ModelsState.js +5 -1
  332. package/lib/types/net/OAuthToken.js +5 -1
  333. package/lib/types/net/OAuthTokenOrNull.d.ts +1 -1
  334. package/lib/types/net/OAuthTokenOrNull.js +5 -1
  335. package/lib/types/net/TokenAccessFunction.d.ts +1 -1
  336. package/lib/types/net/TokenAccessFunction.js +5 -1
  337. package/lib/types/net/index.js +181 -27
  338. package/lib/utils/baseActivity.d.ts +2 -2
  339. package/lib/utils/baseActivity.js +138 -136
  340. package/lib/utils/baseRole.js +37 -33
  341. package/lib/utils/collection.js +432 -310
  342. package/lib/utils/cookies.js +22 -37
  343. package/lib/utils/date.js +320 -320
  344. package/lib/utils/dom.js +186 -174
  345. package/lib/utils/domainIdentifier.js +9 -9
  346. package/lib/utils/entityUserRole.js +6 -2
  347. package/lib/utils/error.d.ts +1 -1
  348. package/lib/utils/error.js +18 -16
  349. package/lib/utils/events.js +40 -33
  350. package/lib/utils/externalGroup.js +25 -21
  351. package/lib/utils/externalProviders.js +8 -4
  352. package/lib/utils/externalTerms.js +9 -6
  353. package/lib/utils/fetch.d.ts +1 -1
  354. package/lib/utils/fetch.js +188 -185
  355. package/lib/utils/group.js +17 -9
  356. package/lib/utils/groupDates.d.ts +1 -1
  357. package/lib/utils/groupDates.js +43 -39
  358. package/lib/utils/groupRoles.js +28 -28
  359. package/lib/utils/lockDownBrowser.js +16 -12
  360. package/lib/utils/logger.js +30 -25
  361. package/lib/utils/lti.js +10 -5
  362. package/lib/utils/model.d.ts +2 -2
  363. package/lib/utils/model.js +39 -48
  364. package/lib/utils/number.js +23 -26
  365. package/lib/utils/promise.d.ts +6 -1
  366. package/lib/utils/promise.js +34 -15
  367. package/lib/utils/quill.js +66 -77
  368. package/lib/utils/route.d.ts +2 -2
  369. package/lib/utils/route.js +61 -60
  370. package/lib/utils/search.d.ts +1 -1
  371. package/lib/utils/search.js +78 -85
  372. package/lib/utils/shard.js +38 -41
  373. package/lib/utils/sort.d.ts +3 -3
  374. package/lib/utils/sort.js +62 -58
  375. package/lib/utils/string.js +14 -10
  376. package/lib/utils/table.d.ts +3 -3
  377. package/lib/utils/table.js +39 -36
  378. package/lib/utils/timezone.js +12 -26
  379. package/lib/utils/url.d.ts +2 -1
  380. package/lib/utils/url.js +146 -200
  381. package/lib/utils/user.js +59 -61
  382. package/lib/utils/userAgent.js +11 -11
  383. package/lib/utils/userRole.d.ts +3 -3
  384. package/lib/utils/userRole.js +58 -56
  385. package/package.json +224 -207
  386. package/lib/config/eslint/index.cjs +0 -21
  387. package/lib/config/eslint/lib/order.cjs +0 -22
  388. package/lib/config/eslint/lib/prettier.cjs +0 -18
  389. package/lib/config/eslint/lib/typescript.cjs +0 -86
  390. package/lib/config/eslint/react.cjs +0 -9
@@ -1,132 +1,109 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
15
- var __assign = (this && this.__assign) || function () {
16
- __assign = Object.assign || function(t) {
17
- for (var s, i = 1, n = arguments.length; i < n; i++) {
18
- s = arguments[i];
19
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
- t[p] = s[p];
21
- }
22
- return t;
23
- };
24
- return __assign.apply(this, arguments);
25
- };
26
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
27
- if (k2 === undefined) k2 = k;
28
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
29
- }) : (function(o, m, k, k2) {
30
- if (k2 === undefined) k2 = k;
31
- o[k2] = m[k];
32
- }));
33
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
34
- Object.defineProperty(o, "default", { enumerable: true, value: v });
35
- }) : function(o, v) {
36
- o["default"] = v;
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
37
6
  });
38
- var __importStar = (this && this.__importStar) || function (mod) {
39
- if (mod && mod.__esModule) return mod;
40
- var result = {};
41
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
42
- __setModuleDefault(result, mod);
43
- return result;
44
- };
45
- Object.defineProperty(exports, "__esModule", { value: true });
46
- exports.setupAccessibleComponent = void 0;
47
- var react_1 = __importStar(require("react"));
48
- var react_router_dom_1 = require("react-router-dom");
49
- var configuration_1 = require("../../constants/configuration");
50
- var documentService_1 = require("../../services/documentService");
7
+ exports.default = accessibleAppComponent;
8
+ exports.setupAccessibleComponent = setupAccessibleComponent;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactRouterDom = require("react-router-dom");
12
+ var _configuration = require("../../constants/configuration");
13
+ var _documentService = require("../../services/documentService");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ 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); }
51
16
  function setupAccessibleComponent(WrappedComponent) {
52
- return /** @class */ (function (_super) {
53
- __extends(AccessibleComponent, _super);
54
- function AccessibleComponent(props) {
55
- var _this = _super.call(this, props) || this;
56
- _this.resetFocusIgnorePatterns = [
57
- /\/help\/scoring-docs(\/.+)?$/,
58
- /\/courses\/\d+\/groupAssignments\/\d+\/scores(\/.+)?$/
59
- ];
60
- _this.onTitleChange = function (mutations) {
61
- var appName = configuration_1.getAppConfig().APP_NAME;
62
- // Only change the title when we have more than the default appName added to it.
63
- if (!!mutations[0] && !!mutations[0].target.textContent && mutations[0].target.textContent !== appName) {
64
- _this.setState({ title: mutations[0].target.textContent });
65
- }
66
- };
67
- _this.shouldResetFocus = function (oldPath, newPath) {
68
- // Path is the same or either parameter is not a path
69
- if (!newPath || !oldPath || oldPath === newPath) {
70
- return false;
71
- }
72
- for (var _i = 0, _a = _this.resetFocusIgnorePatterns; _i < _a.length; _i++) {
73
- var route = _a[_i];
74
- if (route.test(oldPath) && route.test(newPath)) {
75
- // Both paths are sub-paths in the same page
76
- return false;
77
- }
78
- }
79
- // Paths are different and not in the same page
80
- return true;
81
- };
82
- _this.root = react_1.default.createRef();
83
- _this.titleObserver = new MutationObserver(_this.onTitleChange);
84
- _this.state = {
85
- title: undefined
86
- };
87
- return _this;
17
+ return class AccessibleComponent extends _react.Component {
18
+ constructor(props) {
19
+ super(props);
20
+ (0, _defineProperty2.default)(this, "root", void 0);
21
+ (0, _defineProperty2.default)(this, "titleObserver", void 0);
22
+ (0, _defineProperty2.default)(this, "resetFocusIgnorePatterns", [/\/help\/scoring-docs(\/.+)?$/, /\/courses\/\d+\/groupAssignments\/\d+\/scores(\/.+)?$/]);
23
+ (0, _defineProperty2.default)(this, "onTitleChange", mutations => {
24
+ const appName = (0, _configuration.getAppConfig)().APP_NAME;
25
+ // Only change the title when we have more than the default appName added to it.
26
+ if (!!mutations[0] && !!mutations[0].target.textContent && mutations[0].target.textContent !== appName) {
27
+ this.setState({
28
+ title: mutations[0].target.textContent
29
+ });
30
+ }
31
+ });
32
+ (0, _defineProperty2.default)(this, "shouldResetFocus", (oldPath, newPath) => {
33
+ // Path is the same or either parameter is not a path
34
+ if (!newPath || !oldPath || oldPath === newPath) {
35
+ return false;
88
36
  }
89
- AccessibleComponent.prototype.componentDidMount = function () {
90
- var titleElement = document.querySelector('title');
91
- if (titleElement) {
92
- this.titleObserver.observe(titleElement, {
93
- subtree: true,
94
- characterData: true,
95
- childList: true
96
- });
97
- }
98
- };
99
- AccessibleComponent.prototype.componentWillUnmount = function () {
100
- this.titleObserver.disconnect();
101
- };
102
- AccessibleComponent.prototype.componentDidUpdate = function (prevProps) {
103
- // Do not reset focus if the new route matches the same router path
104
- if (this.shouldResetFocus(prevProps.location.pathname, this.props.location.pathname)) {
105
- if (!!this.root && !!this.root.current) {
106
- documentService_1.documentService.setActiveDocument(this.root.current);
107
- }
108
- }
109
- };
110
- AccessibleComponent.prototype.render = function () {
111
- var title = this.state.title;
112
- return (react_1.default.createElement(react_1.default.Fragment, null,
113
- react_1.default.createElement("span", { className: "clip accessible-title", "aria-live": "polite", "aria-atomic": "true" }, title),
114
- react_1.default.createElement("div", { className: "outline-0 app-root", ref: this.root, tabIndex: -1 },
115
- react_1.default.createElement(WrappedComponent, __assign({}, this.props)))));
116
- };
117
- return AccessibleComponent;
118
- }(react_1.Component));
37
+ for (const route of this.resetFocusIgnorePatterns) {
38
+ if (route.test(oldPath) && route.test(newPath)) {
39
+ // Both paths are sub-paths in the same page
40
+ return false;
41
+ }
42
+ }
43
+
44
+ // Paths are different and not in the same page
45
+ return true;
46
+ });
47
+ this.root = /*#__PURE__*/_react.default.createRef();
48
+ this.titleObserver = new MutationObserver(this.onTitleChange);
49
+ this.state = {
50
+ title: undefined
51
+ };
52
+ }
53
+ componentDidMount() {
54
+ const titleElement = document.querySelector('title');
55
+ if (titleElement) {
56
+ this.titleObserver.observe(titleElement, {
57
+ subtree: true,
58
+ characterData: true,
59
+ childList: true
60
+ });
61
+ }
62
+ }
63
+ componentWillUnmount() {
64
+ this.titleObserver.disconnect();
65
+ }
66
+ componentDidUpdate(prevProps) {
67
+ // Do not reset focus if the new route matches the same router path
68
+ if (this.shouldResetFocus(prevProps.location.pathname, this.props.location.pathname)) {
69
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
70
+ if (!!this.root && !!this.root.current) {
71
+ _documentService.documentService.setActiveDocument(this.root.current);
72
+ }
73
+ }
74
+ }
75
+ render() {
76
+ const {
77
+ title
78
+ } = this.state;
79
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
80
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
81
+ className: "clip accessible-title",
82
+ "aria-live": "polite",
83
+ "aria-atomic": "true",
84
+ children: title
85
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
86
+ className: "outline-0 app-root",
87
+ ref: this.root,
88
+ tabIndex: -1,
89
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
90
+ ...this.props
91
+ })
92
+ })]
93
+ });
94
+ }
95
+ };
119
96
  }
120
- exports.setupAccessibleComponent = setupAccessibleComponent;
121
- /**
122
- * Wrap around the main application to add support for resetting focus on page changes
123
- * and reading title changes to screen reader users
124
- *
125
- * @param WrappedComponent - The root of your application UI components
97
+
98
+ /**
99
+ * Wrap around the main application to add support for resetting focus on page changes
100
+ * and reading title changes to screen reader users
101
+ *
102
+ * @param WrappedComponent - The root of your application UI components
126
103
  */
127
104
  function accessibleAppComponent(WrappedComponent) {
128
- var component = setupAccessibleComponent(WrappedComponent);
129
- // @ts-ignore: could not match inferred type from the HOC
130
- return react_router_dom_1.withRouter(component);
105
+ const component = setupAccessibleComponent(WrappedComponent);
106
+ // @ts-ignore: could not match inferred type from the HOC
107
+ return (0, _reactRouterDom.withRouter)(component);
131
108
  }
132
- exports.default = accessibleAppComponent;
109
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSb3V0ZXJEb20iLCJfY29uZmlndXJhdGlvbiIsIl9kb2N1bWVudFNlcnZpY2UiLCJfanN4UnVudGltZSIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInNldHVwQWNjZXNzaWJsZUNvbXBvbmVudCIsIldyYXBwZWRDb21wb25lbnQiLCJBY2Nlc3NpYmxlQ29tcG9uZW50IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJtdXRhdGlvbnMiLCJhcHBOYW1lIiwiZ2V0QXBwQ29uZmlnIiwiQVBQX05BTUUiLCJ0YXJnZXQiLCJ0ZXh0Q29udGVudCIsInNldFN0YXRlIiwidGl0bGUiLCJvbGRQYXRoIiwibmV3UGF0aCIsInJvdXRlIiwicmVzZXRGb2N1c0lnbm9yZVBhdHRlcm5zIiwidGVzdCIsInJvb3QiLCJSZWFjdCIsImNyZWF0ZVJlZiIsInRpdGxlT2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwib25UaXRsZUNoYW5nZSIsInN0YXRlIiwidW5kZWZpbmVkIiwiY29tcG9uZW50RGlkTW91bnQiLCJ0aXRsZUVsZW1lbnQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJvYnNlcnZlIiwic3VidHJlZSIsImNoYXJhY3RlckRhdGEiLCJjaGlsZExpc3QiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsImRpc2Nvbm5lY3QiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJzaG91bGRSZXNldEZvY3VzIiwibG9jYXRpb24iLCJwYXRobmFtZSIsImN1cnJlbnQiLCJkb2N1bWVudFNlcnZpY2UiLCJzZXRBY3RpdmVEb2N1bWVudCIsInJlbmRlciIsImpzeHMiLCJGcmFnbWVudCIsImNoaWxkcmVuIiwianN4IiwiY2xhc3NOYW1lIiwicmVmIiwidGFiSW5kZXgiLCJhY2Nlc3NpYmxlQXBwQ29tcG9uZW50IiwiY29tcG9uZW50Iiwid2l0aFJvdXRlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0hPQy9BY2Nlc3NpYmxlQXBwQ29tcG9uZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50LCBDb21wb25lbnRUeXBlLCBSZWZPYmplY3QgfSBmcm9tICdyZWFjdCdcclxuaW1wb3J0IHsgT21pdCB9IGZyb20gJ3JlYWN0LXJvdXRlcidcclxuaW1wb3J0IHsgUm91dGVDb21wb25lbnRQcm9wcywgd2l0aFJvdXRlciB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nXHJcbmltcG9ydCB7IGdldEFwcENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb25maWd1cmF0aW9uJ1xyXG5pbXBvcnQgeyBkb2N1bWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb2N1bWVudFNlcnZpY2UnXHJcblxyXG5pbnRlcmZhY2UgQWNjZXNzaWJsZUNvbXBvbmVudFN0YXRlIHtcclxuXHR0aXRsZT86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBBY2Nlc3NpYmxlQ29tcG9uZW50PFRPd25Qcm9wcyBleHRlbmRzIG9iamVjdD4oXHJcblx0V3JhcHBlZENvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUT3duUHJvcHMgJiBSb3V0ZUNvbXBvbmVudFByb3BzPlxyXG4pOiBDb21wb25lbnRUeXBlPFRPd25Qcm9wcyAmIFJvdXRlQ29tcG9uZW50UHJvcHM+IHtcclxuXHRyZXR1cm4gY2xhc3MgQWNjZXNzaWJsZUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudDxUT3duUHJvcHMgJiBSb3V0ZUNvbXBvbmVudFByb3BzLCBBY2Nlc3NpYmxlQ29tcG9uZW50U3RhdGU+IHtcclxuXHRcdHJlYWRvbmx5IHJvb3Q6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD5cclxuXHRcdHJlYWRvbmx5IHRpdGxlT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXJcclxuXHRcdHJlc2V0Rm9jdXNJZ25vcmVQYXR0ZXJucyA9IFtcclxuXHRcdFx0L1xcL2hlbHBcXC9zY29yaW5nLWRvY3MoXFwvLispPyQvLFxyXG5cdFx0XHQvXFwvY291cnNlc1xcL1xcZCtcXC9ncm91cEFzc2lnbm1lbnRzXFwvXFxkK1xcL3Njb3JlcyhcXC8uKyk/JC9cclxuXHRcdF1cclxuXHRcdGNvbnN0cnVjdG9yKHByb3BzOiBUT3duUHJvcHMgJiBSb3V0ZUNvbXBvbmVudFByb3BzKSB7XHJcblx0XHRcdHN1cGVyKHByb3BzKVxyXG5cdFx0XHR0aGlzLnJvb3QgPSBSZWFjdC5jcmVhdGVSZWYoKVxyXG5cdFx0XHR0aGlzLnRpdGxlT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLm9uVGl0bGVDaGFuZ2UpXHJcblxyXG5cdFx0XHR0aGlzLnN0YXRlID0ge1xyXG5cdFx0XHRcdHRpdGxlOiB1bmRlZmluZWRcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGNvbXBvbmVudERpZE1vdW50KCkge1xyXG5cdFx0XHRjb25zdCB0aXRsZUVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0aXRsZScpXHJcblx0XHRcdGlmICh0aXRsZUVsZW1lbnQpIHtcclxuXHRcdFx0XHR0aGlzLnRpdGxlT2JzZXJ2ZXIub2JzZXJ2ZSh0aXRsZUVsZW1lbnQsIHtcclxuXHRcdFx0XHRcdHN1YnRyZWU6IHRydWUsXHJcblx0XHRcdFx0XHRjaGFyYWN0ZXJEYXRhOiB0cnVlLFxyXG5cdFx0XHRcdFx0Y2hpbGRMaXN0OiB0cnVlXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG5cdFx0XHR0aGlzLnRpdGxlT2JzZXJ2ZXIuZGlzY29ubmVjdCgpXHJcblx0XHR9XHJcblxyXG5cdFx0b25UaXRsZUNoYW5nZSA9IChtdXRhdGlvbnM6IE11dGF0aW9uUmVjb3JkW10pID0+IHtcclxuXHRcdFx0Y29uc3QgYXBwTmFtZSA9IGdldEFwcENvbmZpZygpLkFQUF9OQU1FXHJcblx0XHRcdC8vIE9ubHkgY2hhbmdlIHRoZSB0aXRsZSB3aGVuIHdlIGhhdmUgbW9yZSB0aGFuIHRoZSBkZWZhdWx0IGFwcE5hbWUgYWRkZWQgdG8gaXQuXHJcblx0XHRcdGlmICghIW11dGF0aW9uc1swXSAmJiAhIW11dGF0aW9uc1swXS50YXJnZXQudGV4dENvbnRlbnQgJiYgbXV0YXRpb25zWzBdLnRhcmdldC50ZXh0Q29udGVudCAhPT0gYXBwTmFtZSkge1xyXG5cdFx0XHRcdHRoaXMuc2V0U3RhdGUoeyB0aXRsZTogbXV0YXRpb25zWzBdLnRhcmdldC50ZXh0Q29udGVudCB9KVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRzaG91bGRSZXNldEZvY3VzID0gKG9sZFBhdGg/OiBzdHJpbmcsIG5ld1BhdGg/OiBzdHJpbmcpID0+IHtcclxuXHRcdFx0Ly8gUGF0aCBpcyB0aGUgc2FtZSBvciBlaXRoZXIgcGFyYW1ldGVyIGlzIG5vdCBhIHBhdGhcclxuXHRcdFx0aWYgKCFuZXdQYXRoIHx8ICFvbGRQYXRoIHx8IG9sZFBhdGggPT09IG5ld1BhdGgpIHtcclxuXHRcdFx0XHRyZXR1cm4gZmFsc2VcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Zm9yIChjb25zdCByb3V0ZSBvZiB0aGlzLnJlc2V0Rm9jdXNJZ25vcmVQYXR0ZXJucykge1xyXG5cdFx0XHRcdGlmIChyb3V0ZS50ZXN0KG9sZFBhdGgpICYmIHJvdXRlLnRlc3QobmV3UGF0aCkpIHtcclxuXHRcdFx0XHRcdC8vIEJvdGggcGF0aHMgYXJlIHN1Yi1wYXRocyBpbiB0aGUgc2FtZSBwYWdlXHJcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2VcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIFBhdGhzIGFyZSBkaWZmZXJlbnQgYW5kIG5vdCBpbiB0aGUgc2FtZSBwYWdlXHJcblx0XHRcdHJldHVybiB0cnVlXHJcblx0XHR9XHJcblxyXG5cdFx0Y29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wczogUm91dGVDb21wb25lbnRQcm9wcykge1xyXG5cdFx0XHQvLyBEbyBub3QgcmVzZXQgZm9jdXMgaWYgdGhlIG5ldyByb3V0ZSBtYXRjaGVzIHRoZSBzYW1lIHJvdXRlciBwYXRoXHJcblx0XHRcdGlmICh0aGlzLnNob3VsZFJlc2V0Rm9jdXMocHJldlByb3BzLmxvY2F0aW9uLnBhdGhuYW1lLCB0aGlzLnByb3BzLmxvY2F0aW9uLnBhdGhuYW1lKSkge1xyXG5cdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXHJcblx0XHRcdFx0aWYgKCEhdGhpcy5yb290ICYmICEhdGhpcy5yb290LmN1cnJlbnQpIHtcclxuXHRcdFx0XHRcdGRvY3VtZW50U2VydmljZS5zZXRBY3RpdmVEb2N1bWVudCh0aGlzLnJvb3QuY3VycmVudClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZW5kZXIoKSB7XHJcblx0XHRcdGNvbnN0IHsgdGl0bGUgfSA9IHRoaXMuc3RhdGVcclxuXHJcblx0XHRcdHJldHVybiAoXHJcblx0XHRcdFx0PD5cclxuXHRcdFx0XHRcdHsvKiBBbm5vdW5jZSBuZXcgc2NyZWVuIHRpdGxlcyB0byBzY3JlZW4gcmVhZGVycyBzaW1pbGFyIHRvIGxvYWRpbmcgYSBuZXcgcGFnZSAqL31cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzTmFtZT1cImNsaXAgYWNjZXNzaWJsZS10aXRsZVwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIGFyaWEtYXRvbWljPVwidHJ1ZVwiPlxyXG5cdFx0XHRcdFx0XHR7dGl0bGV9XHJcblx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cIm91dGxpbmUtMCBhcHAtcm9vdFwiIHJlZj17dGhpcy5yb290fSB0YWJJbmRleD17LTF9PlxyXG5cdFx0XHRcdFx0XHQ8V3JhcHBlZENvbXBvbmVudCB7Li4udGhpcy5wcm9wc30gLz5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvPlxyXG5cdFx0XHQpXHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogV3JhcCBhcm91bmQgdGhlIG1haW4gYXBwbGljYXRpb24gdG8gYWRkIHN1cHBvcnQgZm9yIHJlc2V0dGluZyBmb2N1cyBvbiBwYWdlIGNoYW5nZXNcclxuICogYW5kIHJlYWRpbmcgdGl0bGUgY2hhbmdlcyB0byBzY3JlZW4gcmVhZGVyIHVzZXJzXHJcbiAqXHJcbiAqIEBwYXJhbSBXcmFwcGVkQ29tcG9uZW50IC0gVGhlIHJvb3Qgb2YgeW91ciBhcHBsaWNhdGlvbiBVSSBjb21wb25lbnRzXHJcbiAqL1xyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhY2Nlc3NpYmxlQXBwQ29tcG9uZW50PFRPd25Qcm9wcyBleHRlbmRzIG9iamVjdD4oXHJcblx0V3JhcHBlZENvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUT3duUHJvcHMgJiBSb3V0ZUNvbXBvbmVudFByb3BzPlxyXG4pOiBSZWFjdC5Db21wb25lbnRDbGFzczxcclxuXHRPbWl0PFRPd25Qcm9wcyAmIFJvdXRlQ29tcG9uZW50UHJvcHMsIGtleW9mIFJvdXRlQ29tcG9uZW50UHJvcHM8YW55Pj4sXHJcblx0QWNjZXNzaWJsZUNvbXBvbmVudFN0YXRlXHJcbj4ge1xyXG5cdGNvbnN0IGNvbXBvbmVudCA9IHNldHVwQWNjZXNzaWJsZUNvbXBvbmVudChXcmFwcGVkQ29tcG9uZW50KVxyXG5cdC8vIEB0cy1pZ25vcmU6IGNvdWxkIG5vdCBtYXRjaCBpbmZlcnJlZCB0eXBlIGZyb20gdGhlIEhPQ1xyXG5cdHJldHVybiB3aXRoUm91dGVyKGNvbXBvbmVudClcclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFBZ0UsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQUEsU0FBQUQsd0JBQUFNLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFSLHVCQUFBLFlBQUFBLENBQUFNLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsZ0JBQUFQLENBQUEsSUFBQUQsQ0FBQSxnQkFBQUMsQ0FBQSxPQUFBYSxjQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsSUFBQUQsQ0FBQSxHQUFBVSxNQUFBLENBQUFDLGNBQUEsS0FBQUQsTUFBQSxDQUFBRSx3QkFBQSxDQUFBbEIsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsQ0FBQUssR0FBQSxJQUFBTCxDQUFBLENBQUFNLEdBQUEsSUFBQVAsQ0FBQSxDQUFBRSxDQUFBLEVBQUFQLENBQUEsRUFBQU0sQ0FBQSxJQUFBQyxDQUFBLENBQUFQLENBQUEsSUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFdBQUFPLENBQUEsS0FBQVIsQ0FBQSxFQUFBQyxDQUFBO0FBTXpELFNBQVNrQix3QkFBd0JBLENBQ3ZDQyxnQkFBZ0UsRUFDZjtFQUNqRCxPQUFPLE1BQU1DLG1CQUFtQixTQUFTQyxnQkFBUyxDQUE0RDtJQU83R0MsV0FBV0EsQ0FBQ0MsS0FBc0MsRUFBRTtNQUNuRCxLQUFLLENBQUNBLEtBQUssQ0FBQztNQUFBLElBQUFDLGdCQUFBLENBQUFmLE9BQUE7TUFBQSxJQUFBZSxnQkFBQSxDQUFBZixPQUFBO01BQUEsSUFBQWUsZ0JBQUEsQ0FBQWYsT0FBQSxvQ0FMYyxDQUMxQiw4QkFBOEIsRUFDOUIsdURBQXVELENBQ3ZEO01BQUEsSUFBQWUsZ0JBQUEsQ0FBQWYsT0FBQSx5QkEwQmdCZ0IsU0FBMkIsSUFBSztRQUNoRCxNQUFNQyxPQUFPLEdBQUcsSUFBQUMsMkJBQVksRUFBQyxDQUFDLENBQUNDLFFBQVE7UUFDdkM7UUFDQSxJQUFJLENBQUMsQ0FBQ0gsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDSSxNQUFNLENBQUNDLFdBQVcsSUFBSUwsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDSSxNQUFNLENBQUNDLFdBQVcsS0FBS0osT0FBTyxFQUFFO1VBQ3ZHLElBQUksQ0FBQ0ssUUFBUSxDQUFDO1lBQUVDLEtBQUssRUFBRVAsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDSSxNQUFNLENBQUNDO1VBQVksQ0FBQyxDQUFDO1FBQzFEO01BQ0QsQ0FBQztNQUFBLElBQUFOLGdCQUFBLENBQUFmLE9BQUEsNEJBQ2tCLENBQUN3QixPQUFnQixFQUFFQyxPQUFnQixLQUFLO1FBQzFEO1FBQ0EsSUFBSSxDQUFDQSxPQUFPLElBQUksQ0FBQ0QsT0FBTyxJQUFJQSxPQUFPLEtBQUtDLE9BQU8sRUFBRTtVQUNoRCxPQUFPLEtBQUs7UUFDYjtRQUVBLEtBQUssTUFBTUMsS0FBSyxJQUFJLElBQUksQ0FBQ0Msd0JBQXdCLEVBQUU7VUFDbEQsSUFBSUQsS0FBSyxDQUFDRSxJQUFJLENBQUNKLE9BQU8sQ0FBQyxJQUFJRSxLQUFLLENBQUNFLElBQUksQ0FBQ0gsT0FBTyxDQUFDLEVBQUU7WUFDL0M7WUFDQSxPQUFPLEtBQUs7VUFDYjtRQUNEOztRQUVBO1FBQ0EsT0FBTyxJQUFJO01BQ1osQ0FBQztNQTdDQSxJQUFJLENBQUNJLElBQUksZ0JBQUdDLGNBQUssQ0FBQ0MsU0FBUyxDQUFDLENBQUM7TUFDN0IsSUFBSSxDQUFDQyxhQUFhLEdBQUcsSUFBSUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDQyxhQUFhLENBQUM7TUFFN0QsSUFBSSxDQUFDQyxLQUFLLEdBQUc7UUFDWlosS0FBSyxFQUFFYTtNQUNSLENBQUM7SUFDRjtJQUVBQyxpQkFBaUJBLENBQUEsRUFBRztNQUNuQixNQUFNQyxZQUFZLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBYSxDQUFDLE9BQU8sQ0FBQztNQUNwRCxJQUFJRixZQUFZLEVBQUU7UUFDakIsSUFBSSxDQUFDTixhQUFhLENBQUNTLE9BQU8sQ0FBQ0gsWUFBWSxFQUFFO1VBQ3hDSSxPQUFPLEVBQUUsSUFBSTtVQUNiQyxhQUFhLEVBQUUsSUFBSTtVQUNuQkMsU0FBUyxFQUFFO1FBQ1osQ0FBQyxDQUFDO01BQ0g7SUFDRDtJQUVBQyxvQkFBb0JBLENBQUEsRUFBRztNQUN0QixJQUFJLENBQUNiLGFBQWEsQ0FBQ2MsVUFBVSxDQUFDLENBQUM7SUFDaEM7SUEwQkFDLGtCQUFrQkEsQ0FBQ0MsU0FBOEIsRUFBRTtNQUNsRDtNQUNBLElBQUksSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQ0QsU0FBUyxDQUFDRSxRQUFRLENBQUNDLFFBQVEsRUFBRSxJQUFJLENBQUNyQyxLQUFLLENBQUNvQyxRQUFRLENBQUNDLFFBQVEsQ0FBQyxFQUFFO1FBQ3JGO1FBQ0EsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDdEIsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUNBLElBQUksQ0FBQ3VCLE9BQU8sRUFBRTtVQUN2Q0MsZ0NBQWUsQ0FBQ0MsaUJBQWlCLENBQUMsSUFBSSxDQUFDekIsSUFBSSxDQUFDdUIsT0FBTyxDQUFDO1FBQ3JEO01BQ0Q7SUFDRDtJQUVBRyxNQUFNQSxDQUFBLEVBQUc7TUFDUixNQUFNO1FBQUVoQztNQUFNLENBQUMsR0FBRyxJQUFJLENBQUNZLEtBQUs7TUFFNUIsb0JBQ0MsSUFBQTlDLFdBQUEsQ0FBQW1FLElBQUEsRUFBQW5FLFdBQUEsQ0FBQW9FLFFBQUE7UUFBQUMsUUFBQSxnQkFFQyxJQUFBckUsV0FBQSxDQUFBc0UsR0FBQTtVQUFNQyxTQUFTLEVBQUMsdUJBQXVCO1VBQUMsYUFBVSxRQUFRO1VBQUMsZUFBWSxNQUFNO1VBQUFGLFFBQUEsRUFDM0VuQztRQUFLLENBQ0QsQ0FBQyxlQUNQLElBQUFsQyxXQUFBLENBQUFzRSxHQUFBO1VBQUtDLFNBQVMsRUFBQyxvQkFBb0I7VUFBQ0MsR0FBRyxFQUFFLElBQUksQ0FBQ2hDLElBQUs7VUFBQ2lDLFFBQVEsRUFBRSxDQUFDLENBQUU7VUFBQUosUUFBQSxlQUNoRSxJQUFBckUsV0FBQSxDQUFBc0UsR0FBQSxFQUFDakQsZ0JBQWdCO1lBQUEsR0FBSyxJQUFJLENBQUNJO1VBQUssQ0FBRztRQUFDLENBQ2hDLENBQUM7TUFBQSxDQUNMLENBQUM7SUFFTDtFQUNELENBQUM7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDZSxTQUFTaUQsc0JBQXNCQSxDQUM3Q3JELGdCQUFnRSxFQUkvRDtFQUNELE1BQU1zRCxTQUFTLEdBQUd2RCx3QkFBd0IsQ0FBQ0MsZ0JBQWdCLENBQUM7RUFDNUQ7RUFDQSxPQUFPLElBQUF1RCwwQkFBVSxFQUFDRCxTQUFTLENBQUM7QUFDN0IiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,27 +1,27 @@
1
- import React, { ComponentClass, ComponentType } from 'react';
1
+ import { ComponentClass, ComponentType } from 'react';
2
2
  import { BaseReduxState, Model, OptionalRecord } from '../../types';
3
3
  import { ActivityOptions } from '../../utils/baseActivity';
4
4
  export interface ActivityRequiredStateProps {
5
5
  hasAccess: boolean;
6
6
  redirectPath: string;
7
7
  }
8
- export declare const configureActivityRequiredComponent: <TOwnProps extends {}>(WrappedComponent: React.ComponentType<TOwnProps>) => {
8
+ export declare const configureActivityRequiredComponent: <TOwnProps extends object>(WrappedComponent: ComponentType<TOwnProps>) => {
9
9
  new (props: (TOwnProps & ActivityRequiredStateProps) | Readonly<TOwnProps & ActivityRequiredStateProps>): {
10
- render(): React.JSX.Element;
10
+ render(): import("react/jsx-runtime").JSX.Element;
11
11
  context: any;
12
12
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<TOwnProps & ActivityRequiredStateProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
13
13
  forceUpdate(callback?: (() => void) | undefined): void;
14
14
  readonly props: Readonly<TOwnProps & ActivityRequiredStateProps> & Readonly<{
15
- children?: React.ReactNode;
15
+ children?: import("react").ReactNode | undefined;
16
16
  }>;
17
17
  state: Readonly<{}>;
18
18
  refs: {
19
- [key: string]: React.ReactInstance;
19
+ [key: string]: import("react").ReactInstance;
20
20
  };
21
21
  componentDidMount?(): void;
22
22
  shouldComponentUpdate?(nextProps: Readonly<TOwnProps & ActivityRequiredStateProps>, nextState: Readonly<{}>, nextContext: any): boolean;
23
23
  componentWillUnmount?(): void;
24
- componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
24
+ componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
25
25
  getSnapshotBeforeUpdate?(prevProps: Readonly<TOwnProps & ActivityRequiredStateProps>, prevState: Readonly<{}>): any;
26
26
  componentDidUpdate?(prevProps: Readonly<TOwnProps & ActivityRequiredStateProps>, prevState: Readonly<{}>, snapshot?: any): void;
27
27
  componentWillMount?(): void;
@@ -32,21 +32,21 @@ export declare const configureActivityRequiredComponent: <TOwnProps extends {}>(
32
32
  UNSAFE_componentWillUpdate?(nextProps: Readonly<TOwnProps & ActivityRequiredStateProps>, nextState: Readonly<{}>, nextContext: any): void;
33
33
  };
34
34
  new (props: TOwnProps & ActivityRequiredStateProps, context: any): {
35
- render(): React.JSX.Element;
35
+ render(): import("react/jsx-runtime").JSX.Element;
36
36
  context: any;
37
37
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<TOwnProps & ActivityRequiredStateProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
38
38
  forceUpdate(callback?: (() => void) | undefined): void;
39
39
  readonly props: Readonly<TOwnProps & ActivityRequiredStateProps> & Readonly<{
40
- children?: React.ReactNode;
40
+ children?: import("react").ReactNode | undefined;
41
41
  }>;
42
42
  state: Readonly<{}>;
43
43
  refs: {
44
- [key: string]: React.ReactInstance;
44
+ [key: string]: import("react").ReactInstance;
45
45
  };
46
46
  componentDidMount?(): void;
47
47
  shouldComponentUpdate?(nextProps: Readonly<TOwnProps & ActivityRequiredStateProps>, nextState: Readonly<{}>, nextContext: any): boolean;
48
48
  componentWillUnmount?(): void;
49
- componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
49
+ componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
50
50
  getSnapshotBeforeUpdate?(prevProps: Readonly<TOwnProps & ActivityRequiredStateProps>, prevState: Readonly<{}>): any;
51
51
  componentDidUpdate?(prevProps: Readonly<TOwnProps & ActivityRequiredStateProps>, prevState: Readonly<{}>, snapshot?: any): void;
52
52
  componentWillMount?(): void;
@@ -56,7 +56,7 @@ export declare const configureActivityRequiredComponent: <TOwnProps extends {}>(
56
56
  componentWillUpdate?(nextProps: Readonly<TOwnProps & ActivityRequiredStateProps>, nextState: Readonly<{}>, nextContext: any): void;
57
57
  UNSAFE_componentWillUpdate?(nextProps: Readonly<TOwnProps & ActivityRequiredStateProps>, nextState: Readonly<{}>, nextContext: any): void;
58
58
  };
59
- contextType?: React.Context<any> | undefined;
59
+ contextType?: import("react").Context<any> | undefined;
60
60
  };
61
61
  /**
62
62
  * Return `mapStateToProps` function. Add a `hasAccess` boolean property to the component's props
@@ -67,7 +67,7 @@ export declare const configureActivityRequiredComponent: <TOwnProps extends {}>(
67
67
  * @param modelsProperty (Optional) The property used to locate the entity or entities needed for entity-level activity grants
68
68
  * @param redirectPath (Optional) A string or function that provides the redirect path for when `accessPredicate` is false. Defaults to '/'.
69
69
  */
70
- export declare const configureMapStateToProps: <TOwnProps extends {}>(accessPredicate: (requiredActivity: string, options: ActivityOptions) => boolean, requiredActivity: string, modelsProperty?: string | undefined, redirectPath?: string | ((options: ActivityOptions) => string | undefined) | undefined) => (state: BaseReduxState, ownProps?: TOwnProps | undefined) => ActivityRequiredStateProps;
70
+ export declare const configureMapStateToProps: (accessPredicate: (requiredActivity: string, options: ActivityOptions) => boolean, requiredActivity: string, modelsProperty?: string, redirectPath?: string | ((options: ActivityOptions) => string | undefined)) => (state: BaseReduxState, ownProps?: object) => ActivityRequiredStateProps;
71
71
  /**
72
72
  * This HOC ensures that the wrapped component is only rendered if the predicate provided is satisfied.
73
73
  *
@@ -82,7 +82,7 @@ export declare const configureMapStateToProps: <TOwnProps extends {}>(accessPred
82
82
  * @param requiredActivity The required activity which is passed to the predicate for evaluation
83
83
  * @param redirectPath (Optional) A string or function that provides the redirect path for when `accessPredicate` is false. Defaults to '/'.
84
84
  */
85
- export default function activityRequiredComponent<TOwnProps extends {}>(WrappedComponent: ComponentType<TOwnProps>, accessPredicate: (requiredActivity: string, options: ActivityOptions) => boolean, requiredActivity: string, redirectPath?: string | ((options: ActivityOptions) => string | undefined) | undefined): ComponentClass<TOwnProps>;
85
+ export default function activityRequiredComponent<TOwnProps extends object>(WrappedComponent: ComponentType<TOwnProps>, accessPredicate: (requiredActivity: string, options: ActivityOptions) => boolean, requiredActivity: string, redirectPath?: string | ((options: ActivityOptions) => string | undefined)): ComponentClass<TOwnProps>;
86
86
  /**
87
87
  * This HOC ensures that the wrapped component is rendered if the predicate provided is satisfied.
88
88
  *
@@ -98,4 +98,4 @@ export default function activityRequiredComponent<TOwnProps extends {}>(WrappedC
98
98
  * @param modelsProperty The property used to locate the entity or entities needed for entity-level activity grants
99
99
  * @param redirectPath (Optional) A string or function that provides the redirect path for when `accessPredicate` is false. Defaults to '/'.
100
100
  */
101
- export default function activityRequiredComponent<TOwnProps extends {}, TPropName extends string>(WrappedComponent: ComponentType<TOwnProps>, accessPredicate: (requiredActivity: string, options: ActivityOptions) => boolean, requiredActivity: string, modelsProperty: TPropName, redirectPath?: string | ((options: ActivityOptions) => string | undefined) | undefined): ComponentClass<TOwnProps & OptionalRecord<TPropName, Model>>;
101
+ export default function activityRequiredComponent<TOwnProps extends object, TPropName extends string>(WrappedComponent: ComponentType<TOwnProps>, accessPredicate: (requiredActivity: string, options: ActivityOptions) => boolean, requiredActivity: string, modelsProperty: TPropName, redirectPath?: string | ((options: ActivityOptions) => string | undefined)): ComponentClass<TOwnProps & OptionalRecord<TPropName, Model>>;
@@ -1,117 +1,103 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
15
- var __assign = (this && this.__assign) || function () {
16
- __assign = Object.assign || function(t) {
17
- for (var s, i = 1, n = arguments.length; i < n; i++) {
18
- s = arguments[i];
19
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
- t[p] = s[p];
21
- }
22
- return t;
23
- };
24
- return __assign.apply(this, arguments);
25
- };
26
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
27
- if (k2 === undefined) k2 = k;
28
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
29
- }) : (function(o, m, k, k2) {
30
- if (k2 === undefined) k2 = k;
31
- o[k2] = m[k];
32
- }));
33
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
34
- Object.defineProperty(o, "default", { enumerable: true, value: v });
35
- }) : function(o, v) {
36
- o["default"] = v;
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
37
5
  });
38
- var __importStar = (this && this.__importStar) || function (mod) {
39
- if (mod && mod.__esModule) return mod;
40
- var result = {};
41
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
42
- __setModuleDefault(result, mod);
43
- return result;
44
- };
45
- var __rest = (this && this.__rest) || function (s, e) {
46
- var t = {};
47
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
48
- t[p] = s[p];
49
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
50
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
51
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
52
- t[p[i]] = s[p[i]];
53
- }
54
- return t;
55
- };
56
- Object.defineProperty(exports, "__esModule", { value: true });
57
6
  exports.configureMapStateToProps = exports.configureActivityRequiredComponent = void 0;
58
- var react_1 = __importStar(require("react"));
59
- var react_redux_1 = require("react-redux");
60
- var react_router_dom_1 = require("react-router-dom");
61
- var baseActivity_1 = require("../../utils/baseActivity");
62
- var configureActivityRequiredComponent = function (WrappedComponent) {
63
- return /** @class */ (function (_super) {
64
- __extends(ActivityRequiredComponent, _super);
65
- function ActivityRequiredComponent() {
66
- return _super !== null && _super.apply(this, arguments) || this;
67
- }
68
- ActivityRequiredComponent.prototype.render = function () {
69
- var _a = this.props, hasAccess = _a.hasAccess, redirectPath = _a.redirectPath, rest = __rest(_a, ["hasAccess", "redirectPath"]);
70
- if (!hasAccess) {
71
- return react_1.default.createElement(react_router_dom_1.Redirect, { to: redirectPath });
72
- }
73
- return react_1.default.createElement(WrappedComponent, __assign({}, rest));
74
- };
75
- return ActivityRequiredComponent;
76
- }(react_1.Component));
7
+ exports.default = activityRequiredComponent;
8
+ var _react = require("react");
9
+ var _reactRedux = require("react-redux");
10
+ var _reactRouterDom = require("react-router-dom");
11
+ var _baseActivity = require("../../utils/baseActivity");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ const configureActivityRequiredComponent = WrappedComponent => {
14
+ return class ActivityRequiredComponent extends _react.Component {
15
+ render() {
16
+ const {
17
+ hasAccess,
18
+ redirectPath,
19
+ ...rest
20
+ } = this.props;
21
+ if (!hasAccess) {
22
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Redirect, {
23
+ to: redirectPath
24
+ });
25
+ }
26
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
27
+ ...rest
28
+ });
29
+ }
30
+ };
77
31
  };
32
+
33
+ /**
34
+ * Return `mapStateToProps` function. Add a `hasAccess` boolean property to the component's props
35
+ * checking whether the user has the passed `requiredActivity`.
36
+ *
37
+ * @param accessPredicate A predicate accepting a required activity and an optional entity and/or userInfo object
38
+ * @param requiredActivity The required activity which is passed to the predicate for evaluation
39
+ * @param modelsProperty (Optional) The property used to locate the entity or entities needed for entity-level activity grants
40
+ * @param redirectPath (Optional) A string or function that provides the redirect path for when `accessPredicate` is false. Defaults to '/'.
41
+ */
78
42
  exports.configureActivityRequiredComponent = configureActivityRequiredComponent;
79
- /**
80
- * Return `mapStateToProps` function. Add a `hasAccess` boolean property to the component's props
81
- * checking whether the user has the passed `requiredActivity`.
82
- *
83
- * @param accessPredicate A predicate accepting a required activity and an optional entity and/or userInfo object
84
- * @param requiredActivity The required activity which is passed to the predicate for evaluation
85
- * @param modelsProperty (Optional) The property used to locate the entity or entities needed for entity-level activity grants
86
- * @param redirectPath (Optional) A string or function that provides the redirect path for when `accessPredicate` is false. Defaults to '/'.
43
+ const configureMapStateToProps = (accessPredicate, requiredActivity, modelsProperty, redirectPath) => (state, ownProps) => {
44
+ const options = (0, _baseActivity.defaultOptions)(state, ownProps, modelsProperty);
45
+ return {
46
+ hasAccess: accessPredicate(requiredActivity, options),
47
+ redirectPath: (typeof redirectPath === 'function' ? redirectPath(options) : redirectPath) || '/'
48
+ };
49
+ };
50
+
51
+ /**
52
+ * This HOC ensures that the wrapped component is only rendered if the predicate provided is satisfied.
53
+ *
54
+ * Typically this component is used by passing one of the functions in utils/activities as the
55
+ * `accessPredicate` and a constant from "constants/activities" as the `requiredActivity`.
56
+ *
57
+ * If a lambda is passed as the predicate, it is passed (but may or may not opt to utilize) the `requiredActivity`
58
+ * parameter. It can be ignored if not needed by the lambda.
59
+ *
60
+ * @param WrappedComponent The component which requires activity/activities in order to render
61
+ * @param accessPredicate A predicate accepting a required activity and an optional entity and/or userInfo object
62
+ * @param requiredActivity The required activity which is passed to the predicate for evaluation
63
+ * @param redirectPath (Optional) A string or function that provides the redirect path for when `accessPredicate` is false. Defaults to '/'.
64
+ */
65
+
66
+ /**
67
+ * This HOC ensures that the wrapped component is rendered if the predicate provided is satisfied.
68
+ *
69
+ * Typically this component is used by passing one of the functions in utils/activities as the
70
+ * `accessPredicate` and a constant from "constants/activities" as the `requiredActivity`.
71
+ *
72
+ * If a lambda is passed as the predicate, it is passed (but may or may not opt to utilize) the `requiredActivity`
73
+ * and `modelsProperty` parameters. They can be ignored if not needed by the lambda.
74
+ *
75
+ * @param WrappedComponent The component which requires activity/activities in order to render
76
+ * @param accessPredicate A predicate accepting a required activity and an optional entity and/or userInfo object
77
+ * @param requiredActivity The required activity which is passed to the predicate for evaluation
78
+ * @param modelsProperty The property used to locate the entity or entities needed for entity-level activity grants
79
+ * @param redirectPath (Optional) A string or function that provides the redirect path for when `accessPredicate` is false. Defaults to '/'.
87
80
  */
88
- var configureMapStateToProps = function (accessPredicate, requiredActivity, modelsProperty, redirectPath) { return function (state, ownProps) {
89
- var options = baseActivity_1.defaultOptions(state, ownProps, modelsProperty);
90
- return {
91
- hasAccess: accessPredicate(requiredActivity, options),
92
- redirectPath: (typeof redirectPath === 'function' ? redirectPath(options) : redirectPath) || '/'
93
- };
94
- }; };
95
81
  exports.configureMapStateToProps = configureMapStateToProps;
96
- /**
97
- * This HOC ensures that the wrapped component is rendered if the predicate provided is satisfied.
98
- *
99
- * Typically this component is used by passing one of the functions in utils/activities as the
100
- * `accessPredicate` and a constant from "constants/activities" as the `requiredActivity`.
101
- *
102
- * If a lambda is passed as the predicate, it is passed (but may or may not opt to utilize) the `requiredActivity`
103
- * and `modelsProperty` parameters. They can be ignored if not needed by the lambda.
104
- *
105
- * @param WrappedComponent The component which requires activity/activities in order to render
106
- * @param accessPredicate A predicate accepting a required activity and an optional entity and/or userInfo object
107
- * @param requiredActivity The required activity which is passed to the predicate for evaluation
108
- * @param modelsProperty The property used to locate the entity or entities needed for entity-level activity grants
109
- * @param redirectPath (Optional) A string or function that provides the redirect path for when `accessPredicate` is false. Defaults to '/'.
82
+ /**
83
+ * This HOC ensures that the wrapped component is rendered if the predicate provided is satisfied.
84
+ *
85
+ * Typically this component is used by passing one of the functions in utils/activities as the
86
+ * `accessPredicate` and a constant from "constants/activities" as the `requiredActivity`.
87
+ *
88
+ * If a lambda is passed as the predicate, it is passed (but may or may not opt to utilize) the `requiredActivity`
89
+ * and `modelsProperty` parameters. They can be ignored if not needed by the lambda.
90
+ *
91
+ * @param WrappedComponent The component which requires activity/activities in order to render
92
+ * @param accessPredicate A predicate accepting a required activity and an optional entity and/or userInfo object
93
+ * @param requiredActivity The required activity which is passed to the predicate for evaluation
94
+ * @param modelsProperty The property used to locate the entity or entities needed for entity-level activity grants
95
+ * @param redirectPath (Optional) A string or function that provides the redirect path for when `accessPredicate` is false. Defaults to '/'.
110
96
  */
111
97
  function activityRequiredComponent(WrappedComponent, accessPredicate, requiredActivity, modelsProperty, redirectPath) {
112
- var ActivityRequiredComponent = exports.configureActivityRequiredComponent(WrappedComponent);
113
- var mapStateToProps = exports.configureMapStateToProps(accessPredicate, requiredActivity, modelsProperty, redirectPath);
114
- // @ts-ignore: could not match inferred type from the `connect` HOC
115
- return react_redux_1.connect(mapStateToProps)(ActivityRequiredComponent);
98
+ const ActivityRequiredComponent = configureActivityRequiredComponent(WrappedComponent);
99
+ const mapStateToProps = configureMapStateToProps(accessPredicate, requiredActivity, modelsProperty, redirectPath);
100
+ // @ts-ignore: could not match inferred type from the `connect` HOC
101
+ return (0, _reactRedux.connect)(mapStateToProps)(ActivityRequiredComponent);
116
102
  }
117
- exports.default = activityRequiredComponent;
103
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0UmVkdXgiLCJfcmVhY3RSb3V0ZXJEb20iLCJfYmFzZUFjdGl2aXR5IiwiX2pzeFJ1bnRpbWUiLCJjb25maWd1cmVBY3Rpdml0eVJlcXVpcmVkQ29tcG9uZW50IiwiV3JhcHBlZENvbXBvbmVudCIsIkFjdGl2aXR5UmVxdWlyZWRDb21wb25lbnQiLCJDb21wb25lbnQiLCJyZW5kZXIiLCJoYXNBY2Nlc3MiLCJyZWRpcmVjdFBhdGgiLCJyZXN0IiwicHJvcHMiLCJqc3giLCJSZWRpcmVjdCIsInRvIiwiZXhwb3J0cyIsImNvbmZpZ3VyZU1hcFN0YXRlVG9Qcm9wcyIsImFjY2Vzc1ByZWRpY2F0ZSIsInJlcXVpcmVkQWN0aXZpdHkiLCJtb2RlbHNQcm9wZXJ0eSIsInN0YXRlIiwib3duUHJvcHMiLCJvcHRpb25zIiwiZGVmYXVsdE9wdGlvbnMiLCJhY3Rpdml0eVJlcXVpcmVkQ29tcG9uZW50IiwibWFwU3RhdGVUb1Byb3BzIiwiY29ubmVjdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0hPQy9BY3Rpdml0eVJlcXVpcmVkQ29tcG9uZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudENsYXNzLCBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnXHJcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdyZWFjdC1yZWR1eCdcclxuaW1wb3J0IHsgUmVkaXJlY3QgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJ1xyXG5pbXBvcnQgeyBCYXNlUmVkdXhTdGF0ZSwgTW9kZWwsIE9wdGlvbmFsUmVjb3JkIH0gZnJvbSAnLi4vLi4vdHlwZXMnXHJcbmltcG9ydCB7IEFjdGl2aXR5T3B0aW9ucywgZGVmYXVsdE9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9iYXNlQWN0aXZpdHknXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2aXR5UmVxdWlyZWRTdGF0ZVByb3BzIHtcclxuXHRoYXNBY2Nlc3M6IGJvb2xlYW5cclxuXHRyZWRpcmVjdFBhdGg6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY29uZmlndXJlQWN0aXZpdHlSZXF1aXJlZENvbXBvbmVudCA9IDxUT3duUHJvcHMgZXh0ZW5kcyBvYmplY3Q+KFxyXG5cdFdyYXBwZWRDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VE93blByb3BzPlxyXG4pID0+IHtcclxuXHRyZXR1cm4gY2xhc3MgQWN0aXZpdHlSZXF1aXJlZENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudDxUT3duUHJvcHMgJiBBY3Rpdml0eVJlcXVpcmVkU3RhdGVQcm9wcz4ge1xyXG5cdFx0cHVibGljIHJlbmRlcigpIHtcclxuXHRcdFx0Y29uc3QgeyBoYXNBY2Nlc3MsIHJlZGlyZWN0UGF0aCwgLi4ucmVzdCB9ID0gdGhpcy5wcm9wc1xyXG5cdFx0XHRpZiAoIWhhc0FjY2Vzcykge1xyXG5cdFx0XHRcdHJldHVybiA8UmVkaXJlY3QgdG89e3JlZGlyZWN0UGF0aH0gLz5cclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gPFdyYXBwZWRDb21wb25lbnQgey4uLihyZXN0IGFzIFRPd25Qcm9wcyl9IC8+XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGBtYXBTdGF0ZVRvUHJvcHNgIGZ1bmN0aW9uLiBBZGQgYSBgaGFzQWNjZXNzYCBib29sZWFuIHByb3BlcnR5IHRvIHRoZSBjb21wb25lbnQncyBwcm9wc1xyXG4gKiBjaGVja2luZyB3aGV0aGVyIHRoZSB1c2VyIGhhcyB0aGUgcGFzc2VkIGByZXF1aXJlZEFjdGl2aXR5YC5cclxuICpcclxuICogQHBhcmFtIGFjY2Vzc1ByZWRpY2F0ZSBBIHByZWRpY2F0ZSBhY2NlcHRpbmcgYSByZXF1aXJlZCBhY3Rpdml0eSBhbmQgYW4gb3B0aW9uYWwgZW50aXR5IGFuZC9vciB1c2VySW5mbyBvYmplY3RcclxuICogQHBhcmFtIHJlcXVpcmVkQWN0aXZpdHkgVGhlIHJlcXVpcmVkIGFjdGl2aXR5IHdoaWNoIGlzIHBhc3NlZCB0byB0aGUgcHJlZGljYXRlIGZvciBldmFsdWF0aW9uXHJcbiAqIEBwYXJhbSBtb2RlbHNQcm9wZXJ0eSAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSB1c2VkIHRvIGxvY2F0ZSB0aGUgZW50aXR5IG9yIGVudGl0aWVzIG5lZWRlZCBmb3IgZW50aXR5LWxldmVsIGFjdGl2aXR5IGdyYW50c1xyXG4gKiBAcGFyYW0gcmVkaXJlY3RQYXRoIChPcHRpb25hbCkgQSBzdHJpbmcgb3IgZnVuY3Rpb24gdGhhdCBwcm92aWRlcyB0aGUgcmVkaXJlY3QgcGF0aCBmb3Igd2hlbiBgYWNjZXNzUHJlZGljYXRlYCBpcyBmYWxzZS4gRGVmYXVsdHMgdG8gJy8nLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGNvbmZpZ3VyZU1hcFN0YXRlVG9Qcm9wcyA9XHJcblx0KFxyXG5cdFx0YWNjZXNzUHJlZGljYXRlOiAocmVxdWlyZWRBY3Rpdml0eTogc3RyaW5nLCBvcHRpb25zOiBBY3Rpdml0eU9wdGlvbnMpID0+IGJvb2xlYW4sXHJcblx0XHRyZXF1aXJlZEFjdGl2aXR5OiBzdHJpbmcsXHJcblx0XHRtb2RlbHNQcm9wZXJ0eT86IHN0cmluZyxcclxuXHRcdHJlZGlyZWN0UGF0aD86IHN0cmluZyB8ICgob3B0aW9uczogQWN0aXZpdHlPcHRpb25zKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQpXHJcblx0KSA9PlxyXG5cdChzdGF0ZTogQmFzZVJlZHV4U3RhdGUsIG93blByb3BzPzogb2JqZWN0KTogQWN0aXZpdHlSZXF1aXJlZFN0YXRlUHJvcHMgPT4ge1xyXG5cdFx0Y29uc3Qgb3B0aW9ucyA9IGRlZmF1bHRPcHRpb25zKHN0YXRlLCBvd25Qcm9wcywgbW9kZWxzUHJvcGVydHkpXHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRoYXNBY2Nlc3M6IGFjY2Vzc1ByZWRpY2F0ZShyZXF1aXJlZEFjdGl2aXR5LCBvcHRpb25zKSxcclxuXHRcdFx0cmVkaXJlY3RQYXRoOiAodHlwZW9mIHJlZGlyZWN0UGF0aCA9PT0gJ2Z1bmN0aW9uJyA/IHJlZGlyZWN0UGF0aChvcHRpb25zKSA6IHJlZGlyZWN0UGF0aCkgfHwgJy8nXHJcblx0XHR9XHJcblx0fVxyXG5cclxuLyoqXHJcbiAqIFRoaXMgSE9DIGVuc3VyZXMgdGhhdCB0aGUgd3JhcHBlZCBjb21wb25lbnQgaXMgb25seSByZW5kZXJlZCBpZiB0aGUgcHJlZGljYXRlIHByb3ZpZGVkIGlzIHNhdGlzZmllZC5cclxuICpcclxuICogVHlwaWNhbGx5IHRoaXMgY29tcG9uZW50IGlzIHVzZWQgYnkgcGFzc2luZyBvbmUgb2YgdGhlIGZ1bmN0aW9ucyBpbiB1dGlscy9hY3Rpdml0aWVzIGFzIHRoZVxyXG4gKiBgYWNjZXNzUHJlZGljYXRlYCBhbmQgYSBjb25zdGFudCBmcm9tIFwiY29uc3RhbnRzL2FjdGl2aXRpZXNcIiBhcyB0aGUgYHJlcXVpcmVkQWN0aXZpdHlgLlxyXG4gKlxyXG4gKiBJZiBhIGxhbWJkYSBpcyBwYXNzZWQgYXMgdGhlIHByZWRpY2F0ZSwgaXQgaXMgcGFzc2VkIChidXQgbWF5IG9yIG1heSBub3Qgb3B0IHRvIHV0aWxpemUpIHRoZSBgcmVxdWlyZWRBY3Rpdml0eWBcclxuICogcGFyYW1ldGVyLiBJdCBjYW4gYmUgaWdub3JlZCBpZiBub3QgbmVlZGVkIGJ5IHRoZSBsYW1iZGEuXHJcbiAqXHJcbiAqIEBwYXJhbSBXcmFwcGVkQ29tcG9uZW50IFRoZSBjb21wb25lbnQgd2hpY2ggcmVxdWlyZXMgYWN0aXZpdHkvYWN0aXZpdGllcyBpbiBvcmRlciB0byByZW5kZXJcclxuICogQHBhcmFtIGFjY2Vzc1ByZWRpY2F0ZSBBIHByZWRpY2F0ZSBhY2NlcHRpbmcgYSByZXF1aXJlZCBhY3Rpdml0eSBhbmQgYW4gb3B0aW9uYWwgZW50aXR5IGFuZC9vciB1c2VySW5mbyBvYmplY3RcclxuICogQHBhcmFtIHJlcXVpcmVkQWN0aXZpdHkgVGhlIHJlcXVpcmVkIGFjdGl2aXR5IHdoaWNoIGlzIHBhc3NlZCB0byB0aGUgcHJlZGljYXRlIGZvciBldmFsdWF0aW9uXHJcbiAqIEBwYXJhbSByZWRpcmVjdFBhdGggKE9wdGlvbmFsKSBBIHN0cmluZyBvciBmdW5jdGlvbiB0aGF0IHByb3ZpZGVzIHRoZSByZWRpcmVjdCBwYXRoIGZvciB3aGVuIGBhY2Nlc3NQcmVkaWNhdGVgIGlzIGZhbHNlLiBEZWZhdWx0cyB0byAnLycuXHJcbiAqL1xyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhY3Rpdml0eVJlcXVpcmVkQ29tcG9uZW50PFRPd25Qcm9wcyBleHRlbmRzIG9iamVjdD4oXHJcblx0V3JhcHBlZENvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUT3duUHJvcHM+LFxyXG5cdGFjY2Vzc1ByZWRpY2F0ZTogKHJlcXVpcmVkQWN0aXZpdHk6IHN0cmluZywgb3B0aW9uczogQWN0aXZpdHlPcHRpb25zKSA9PiBib29sZWFuLFxyXG5cdHJlcXVpcmVkQWN0aXZpdHk6IHN0cmluZyxcclxuXHRyZWRpcmVjdFBhdGg/OiBzdHJpbmcgfCAoKG9wdGlvbnM6IEFjdGl2aXR5T3B0aW9ucykgPT4gc3RyaW5nIHwgdW5kZWZpbmVkKVxyXG4pOiBDb21wb25lbnRDbGFzczxUT3duUHJvcHM+XHJcbi8qKlxyXG4gKiBUaGlzIEhPQyBlbnN1cmVzIHRoYXQgdGhlIHdyYXBwZWQgY29tcG9uZW50IGlzIHJlbmRlcmVkIGlmIHRoZSBwcmVkaWNhdGUgcHJvdmlkZWQgaXMgc2F0aXNmaWVkLlxyXG4gKlxyXG4gKiBUeXBpY2FsbHkgdGhpcyBjb21wb25lbnQgaXMgdXNlZCBieSBwYXNzaW5nIG9uZSBvZiB0aGUgZnVuY3Rpb25zIGluIHV0aWxzL2FjdGl2aXRpZXMgYXMgdGhlXHJcbiAqIGBhY2Nlc3NQcmVkaWNhdGVgIGFuZCBhIGNvbnN0YW50IGZyb20gXCJjb25zdGFudHMvYWN0aXZpdGllc1wiIGFzIHRoZSBgcmVxdWlyZWRBY3Rpdml0eWAuXHJcbiAqXHJcbiAqIElmIGEgbGFtYmRhIGlzIHBhc3NlZCBhcyB0aGUgcHJlZGljYXRlLCBpdCBpcyBwYXNzZWQgKGJ1dCBtYXkgb3IgbWF5IG5vdCBvcHQgdG8gdXRpbGl6ZSkgdGhlIGByZXF1aXJlZEFjdGl2aXR5YFxyXG4gKiBhbmQgYG1vZGVsc1Byb3BlcnR5YCBwYXJhbWV0ZXJzLiBUaGV5IGNhbiBiZSBpZ25vcmVkIGlmIG5vdCBuZWVkZWQgYnkgdGhlIGxhbWJkYS5cclxuICpcclxuICogQHBhcmFtIFdyYXBwZWRDb21wb25lbnQgVGhlIGNvbXBvbmVudCB3aGljaCByZXF1aXJlcyBhY3Rpdml0eS9hY3Rpdml0aWVzIGluIG9yZGVyIHRvIHJlbmRlclxyXG4gKiBAcGFyYW0gYWNjZXNzUHJlZGljYXRlIEEgcHJlZGljYXRlIGFjY2VwdGluZyBhIHJlcXVpcmVkIGFjdGl2aXR5IGFuZCBhbiBvcHRpb25hbCBlbnRpdHkgYW5kL29yIHVzZXJJbmZvIG9iamVjdFxyXG4gKiBAcGFyYW0gcmVxdWlyZWRBY3Rpdml0eSBUaGUgcmVxdWlyZWQgYWN0aXZpdHkgd2hpY2ggaXMgcGFzc2VkIHRvIHRoZSBwcmVkaWNhdGUgZm9yIGV2YWx1YXRpb25cclxuICogQHBhcmFtIG1vZGVsc1Byb3BlcnR5IFRoZSBwcm9wZXJ0eSB1c2VkIHRvIGxvY2F0ZSB0aGUgZW50aXR5IG9yIGVudGl0aWVzIG5lZWRlZCBmb3IgZW50aXR5LWxldmVsIGFjdGl2aXR5IGdyYW50c1xyXG4gKiBAcGFyYW0gcmVkaXJlY3RQYXRoIChPcHRpb25hbCkgQSBzdHJpbmcgb3IgZnVuY3Rpb24gdGhhdCBwcm92aWRlcyB0aGUgcmVkaXJlY3QgcGF0aCBmb3Igd2hlbiBgYWNjZXNzUHJlZGljYXRlYCBpcyBmYWxzZS4gRGVmYXVsdHMgdG8gJy8nLlxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWN0aXZpdHlSZXF1aXJlZENvbXBvbmVudDxUT3duUHJvcHMgZXh0ZW5kcyBvYmplY3QsIFRQcm9wTmFtZSBleHRlbmRzIHN0cmluZz4oXHJcblx0V3JhcHBlZENvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUT3duUHJvcHM+LFxyXG5cdGFjY2Vzc1ByZWRpY2F0ZTogKHJlcXVpcmVkQWN0aXZpdHk6IHN0cmluZywgb3B0aW9uczogQWN0aXZpdHlPcHRpb25zKSA9PiBib29sZWFuLFxyXG5cdHJlcXVpcmVkQWN0aXZpdHk6IHN0cmluZyxcclxuXHRtb2RlbHNQcm9wZXJ0eTogVFByb3BOYW1lLFxyXG5cdHJlZGlyZWN0UGF0aD86IHN0cmluZyB8ICgob3B0aW9uczogQWN0aXZpdHlPcHRpb25zKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQpXHJcbik6IENvbXBvbmVudENsYXNzPFRPd25Qcm9wcyAmIE9wdGlvbmFsUmVjb3JkPFRQcm9wTmFtZSwgTW9kZWw+PlxyXG4vKipcclxuICogVGhpcyBIT0MgZW5zdXJlcyB0aGF0IHRoZSB3cmFwcGVkIGNvbXBvbmVudCBpcyByZW5kZXJlZCBpZiB0aGUgcHJlZGljYXRlIHByb3ZpZGVkIGlzIHNhdGlzZmllZC5cclxuICpcclxuICogVHlwaWNhbGx5IHRoaXMgY29tcG9uZW50IGlzIHVzZWQgYnkgcGFzc2luZyBvbmUgb2YgdGhlIGZ1bmN0aW9ucyBpbiB1dGlscy9hY3Rpdml0aWVzIGFzIHRoZVxyXG4gKiBgYWNjZXNzUHJlZGljYXRlYCBhbmQgYSBjb25zdGFudCBmcm9tIFwiY29uc3RhbnRzL2FjdGl2aXRpZXNcIiBhcyB0aGUgYHJlcXVpcmVkQWN0aXZpdHlgLlxyXG4gKlxyXG4gKiBJZiBhIGxhbWJkYSBpcyBwYXNzZWQgYXMgdGhlIHByZWRpY2F0ZSwgaXQgaXMgcGFzc2VkIChidXQgbWF5IG9yIG1heSBub3Qgb3B0IHRvIHV0aWxpemUpIHRoZSBgcmVxdWlyZWRBY3Rpdml0eWBcclxuICogYW5kIGBtb2RlbHNQcm9wZXJ0eWAgcGFyYW1ldGVycy4gVGhleSBjYW4gYmUgaWdub3JlZCBpZiBub3QgbmVlZGVkIGJ5IHRoZSBsYW1iZGEuXHJcbiAqXHJcbiAqIEBwYXJhbSBXcmFwcGVkQ29tcG9uZW50IFRoZSBjb21wb25lbnQgd2hpY2ggcmVxdWlyZXMgYWN0aXZpdHkvYWN0aXZpdGllcyBpbiBvcmRlciB0byByZW5kZXJcclxuICogQHBhcmFtIGFjY2Vzc1ByZWRpY2F0ZSBBIHByZWRpY2F0ZSBhY2NlcHRpbmcgYSByZXF1aXJlZCBhY3Rpdml0eSBhbmQgYW4gb3B0aW9uYWwgZW50aXR5IGFuZC9vciB1c2VySW5mbyBvYmplY3RcclxuICogQHBhcmFtIHJlcXVpcmVkQWN0aXZpdHkgVGhlIHJlcXVpcmVkIGFjdGl2aXR5IHdoaWNoIGlzIHBhc3NlZCB0byB0aGUgcHJlZGljYXRlIGZvciBldmFsdWF0aW9uXHJcbiAqIEBwYXJhbSBtb2RlbHNQcm9wZXJ0eSBUaGUgcHJvcGVydHkgdXNlZCB0byBsb2NhdGUgdGhlIGVudGl0eSBvciBlbnRpdGllcyBuZWVkZWQgZm9yIGVudGl0eS1sZXZlbCBhY3Rpdml0eSBncmFudHNcclxuICogQHBhcmFtIHJlZGlyZWN0UGF0aCAoT3B0aW9uYWwpIEEgc3RyaW5nIG9yIGZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgdGhlIHJlZGlyZWN0IHBhdGggZm9yIHdoZW4gYGFjY2Vzc1ByZWRpY2F0ZWAgaXMgZmFsc2UuIERlZmF1bHRzIHRvICcvJy5cclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFjdGl2aXR5UmVxdWlyZWRDb21wb25lbnQ8VE93blByb3BzIGV4dGVuZHMgb2JqZWN0LCBUUHJvcE5hbWUgZXh0ZW5kcyBzdHJpbmc+KFxyXG5cdFdyYXBwZWRDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VE93blByb3BzPixcclxuXHRhY2Nlc3NQcmVkaWNhdGU6IChyZXF1aXJlZEFjdGl2aXR5OiBzdHJpbmcsIG9wdGlvbnM6IEFjdGl2aXR5T3B0aW9ucykgPT4gYm9vbGVhbixcclxuXHRyZXF1aXJlZEFjdGl2aXR5OiBzdHJpbmcsXHJcblx0bW9kZWxzUHJvcGVydHk/OiBUUHJvcE5hbWUsXHJcblx0cmVkaXJlY3RQYXRoPzogc3RyaW5nIHwgKChvcHRpb25zOiBBY3Rpdml0eU9wdGlvbnMpID0+IHN0cmluZyB8IHVuZGVmaW5lZClcclxuKTogQ29tcG9uZW50Q2xhc3M8VE93blByb3BzICYgT3B0aW9uYWxSZWNvcmQ8VFByb3BOYW1lLCBNb2RlbD4+IHtcclxuXHRjb25zdCBBY3Rpdml0eVJlcXVpcmVkQ29tcG9uZW50ID0gY29uZmlndXJlQWN0aXZpdHlSZXF1aXJlZENvbXBvbmVudChXcmFwcGVkQ29tcG9uZW50KVxyXG5cdGNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IGNvbmZpZ3VyZU1hcFN0YXRlVG9Qcm9wcyhhY2Nlc3NQcmVkaWNhdGUsIHJlcXVpcmVkQWN0aXZpdHksIG1vZGVsc1Byb3BlcnR5LCByZWRpcmVjdFBhdGgpXHJcblx0Ly8gQHRzLWlnbm9yZTogY291bGQgbm90IG1hdGNoIGluZmVycmVkIHR5cGUgZnJvbSB0aGUgYGNvbm5lY3RgIEhPQ1xyXG5cdHJldHVybiBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcykoQWN0aXZpdHlSZXF1aXJlZENvbXBvbmVudClcclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxlQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxhQUFBLEdBQUFILE9BQUE7QUFBMEUsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBT25FLE1BQU1LLGtDQUFrQyxHQUM5Q0MsZ0JBQTBDLElBQ3RDO0VBQ0osT0FBTyxNQUFNQyx5QkFBeUIsU0FBU0MsZ0JBQVMsQ0FBeUM7SUFDekZDLE1BQU1BLENBQUEsRUFBRztNQUNmLE1BQU07UUFBRUMsU0FBUztRQUFFQyxZQUFZO1FBQUUsR0FBR0M7TUFBSyxDQUFDLEdBQUcsSUFBSSxDQUFDQyxLQUFLO01BQ3ZELElBQUksQ0FBQ0gsU0FBUyxFQUFFO1FBQ2Ysb0JBQU8sSUFBQU4sV0FBQSxDQUFBVSxHQUFBLEVBQUNaLGVBQUEsQ0FBQWEsUUFBUTtVQUFDQyxFQUFFLEVBQUVMO1FBQWEsQ0FBRSxDQUFDO01BQ3RDO01BQ0Esb0JBQU8sSUFBQVAsV0FBQSxDQUFBVSxHQUFBLEVBQUNSLGdCQUFnQjtRQUFBLEdBQU1NO01BQUksQ0FBaUIsQ0FBQztJQUNyRDtFQUNELENBQUM7QUFDRixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVJBSyxPQUFBLENBQUFaLGtDQUFBLEdBQUFBLGtDQUFBO0FBU08sTUFBTWEsd0JBQXdCLEdBQ3BDQSxDQUNDQyxlQUFnRixFQUNoRkMsZ0JBQXdCLEVBQ3hCQyxjQUF1QixFQUN2QlYsWUFBMEUsS0FFM0UsQ0FBQ1csS0FBcUIsRUFBRUMsUUFBaUIsS0FBaUM7RUFDekUsTUFBTUMsT0FBTyxHQUFHLElBQUFDLDRCQUFjLEVBQUNILEtBQUssRUFBRUMsUUFBUSxFQUFFRixjQUFjLENBQUM7RUFDL0QsT0FBTztJQUNOWCxTQUFTLEVBQUVTLGVBQWUsQ0FBQ0MsZ0JBQWdCLEVBQUVJLE9BQU8sQ0FBQztJQUNyRGIsWUFBWSxFQUFFLENBQUMsT0FBT0EsWUFBWSxLQUFLLFVBQVUsR0FBR0EsWUFBWSxDQUFDYSxPQUFPLENBQUMsR0FBR2IsWUFBWSxLQUFLO0VBQzlGLENBQUM7QUFDRixDQUFDOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZEFNLE9BQUEsQ0FBQUMsd0JBQUEsR0FBQUEsd0JBQUE7QUFzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2UsU0FBU1EseUJBQXlCQSxDQUNoRHBCLGdCQUEwQyxFQUMxQ2EsZUFBZ0YsRUFDaEZDLGdCQUF3QixFQUN4QkMsY0FBMEIsRUFDMUJWLFlBQTBFLEVBQ1g7RUFDL0QsTUFBTUoseUJBQXlCLEdBQUdGLGtDQUFrQyxDQUFDQyxnQkFBZ0IsQ0FBQztFQUN0RixNQUFNcUIsZUFBZSxHQUFHVCx3QkFBd0IsQ0FBQ0MsZUFBZSxFQUFFQyxnQkFBZ0IsRUFBRUMsY0FBYyxFQUFFVixZQUFZLENBQUM7RUFDakg7RUFDQSxPQUFPLElBQUFpQixtQkFBTyxFQUFDRCxlQUFlLENBQUMsQ0FBQ3BCLHlCQUF5QixDQUFDO0FBQzNEIiwiaWdub3JlTGlzdCI6W119