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,70 +1,68 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.sortByRole = exports.sortByHighestAccessRole = exports.isExternal = exports.getUserId = exports.getRoleText = exports.convertToUserWithRoles = void 0;
7
- var _baseRole = require("./baseRole");
8
- /**
9
- * Get the user id for a `userRole`, either a `UserRole` or `EntityUserRole`.
10
- * @param userRole The user role
11
- */
12
- const getUserId = userRole => Object.prototype.hasOwnProperty.call(userRole, 'userId') ? userRole.userId : userRole.id;
13
-
14
- /**
15
- * Get whether or not the `userRole` has a prop `isExternal` and it is `true`.
16
- * @param userRole The user role
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertToUserWithRoles = exports.sortByHighestAccessRole = exports.sortByRole = exports.getRoleText = exports.isExternal = exports.getUserId = void 0;
4
+ var baseRole_1 = require("./baseRole");
5
+ /**
6
+ * Get the user id for a `userRole`, either a `UserRole` or `EntityUserRole`.
7
+ * @param userRole The user role
17
8
  */
9
+ var getUserId = function (userRole) {
10
+ return Object.prototype.hasOwnProperty.call(userRole, 'userId') ? userRole.userId : userRole.id;
11
+ };
18
12
  exports.getUserId = getUserId;
19
- const isExternal = userRole => Object.prototype.hasOwnProperty.call(userRole, 'isExternal') && userRole.isExternal === true;
20
-
21
- /**
22
- * Get the text for the given `userRole.role`. Defaults to using `textForBaseRole`.
23
- * @param textForRole Override method for providing role text
13
+ /**
14
+ * Get whether or not the `userRole` has a prop `isExternal` and it is `true`.
15
+ * @param userRole The user role
24
16
  */
17
+ var isExternal = function (userRole) {
18
+ return Object.prototype.hasOwnProperty.call(userRole, 'isExternal') && userRole.isExternal === true;
19
+ };
25
20
  exports.isExternal = isExternal;
26
- const getRoleText = textForRole => a => textForRole ? textForRole(a.role) : (0, _baseRole.textForBaseRole)(a.role);
27
-
28
- /**
29
- * Sort the userRoles by role, using the provided `roles` order
30
- * @param roles Roles ordered in descing access level
21
+ /**
22
+ * Get the text for the given `userRole.role`. Defaults to using `textForBaseRole`.
23
+ * @param textForRole Override method for providing role text
31
24
  */
25
+ var getRoleText = function (textForRole) { return function (a) {
26
+ return textForRole ? textForRole(a.role) : baseRole_1.textForBaseRole(a.role);
27
+ }; };
32
28
  exports.getRoleText = getRoleText;
33
- const sortByRole = roles => (a, b) => {
34
- const aIndex = roles.indexOf(a.role);
35
- const bIndex = roles.indexOf(b.role);
36
- if (aIndex !== bIndex) {
37
- return aIndex > bIndex ? 1 : -1;
38
- }
39
- return 0;
40
- };
41
-
42
- /**
43
- * Sort the users by role, using the provided `roles` order
44
- * @param roles Roles ordered in descing access level
29
+ /**
30
+ * Sort the userRoles by role, using the provided `roles` order
31
+ * @param roles Roles ordered in descing access level
45
32
  */
33
+ var sortByRole = function (roles) { return function (a, b) {
34
+ var aIndex = roles.indexOf(a.role);
35
+ var bIndex = roles.indexOf(b.role);
36
+ if (aIndex !== bIndex) {
37
+ return aIndex > bIndex ? 1 : -1;
38
+ }
39
+ return 0;
40
+ }; };
46
41
  exports.sortByRole = sortByRole;
47
- const sortByHighestAccessRole = roles => (a, b) => {
48
- const aRole = a.roles.sort(sortByRole(roles))[0].role;
49
- const bRole = b.roles.sort(sortByRole(roles))[0].role;
50
- const aIndex = roles.indexOf(aRole);
51
- const bIndex = roles.indexOf(bRole);
52
- if (aIndex !== bIndex) {
53
- return aIndex > bIndex ? 1 : -1;
54
- }
55
- return 0;
56
- };
42
+ /**
43
+ * Sort the users by role, using the provided `roles` order
44
+ * @param roles Roles ordered in descing access level
45
+ */
46
+ var sortByHighestAccessRole = function (roles) { return function (a, b) {
47
+ var aRole = a.roles.sort(exports.sortByRole(roles))[0].role;
48
+ var bRole = b.roles.sort(exports.sortByRole(roles))[0].role;
49
+ var aIndex = roles.indexOf(aRole);
50
+ var bIndex = roles.indexOf(bRole);
51
+ if (aIndex !== bIndex) {
52
+ return aIndex > bIndex ? 1 : -1;
53
+ }
54
+ return 0;
55
+ }; };
57
56
  exports.sortByHighestAccessRole = sortByHighestAccessRole;
58
- const convertToUserWithRoles = userRole => {
59
- const userId = getUserId(userRole);
60
- return {
61
- id: userId,
62
- firstName: userRole.firstName,
63
- lastName: userRole.lastName,
64
- email: userRole.email,
65
- uid: userRole.uid,
66
- roles: [userRole]
67
- };
57
+ var convertToUserWithRoles = function (userRole) {
58
+ var userId = exports.getUserId(userRole);
59
+ return {
60
+ id: userId,
61
+ firstName: userRole.firstName,
62
+ lastName: userRole.lastName,
63
+ email: userRole.email,
64
+ uid: userRole.uid,
65
+ roles: [userRole]
66
+ };
68
67
  };
69
68
  exports.convertToUserWithRoles = convertToUserWithRoles;
70
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmFzZVJvbGUiLCJyZXF1aXJlIiwiZ2V0VXNlcklkIiwidXNlclJvbGUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJ1c2VySWQiLCJpZCIsImV4cG9ydHMiLCJpc0V4dGVybmFsIiwiZ2V0Um9sZVRleHQiLCJ0ZXh0Rm9yUm9sZSIsImEiLCJyb2xlIiwidGV4dEZvckJhc2VSb2xlIiwic29ydEJ5Um9sZSIsInJvbGVzIiwiYiIsImFJbmRleCIsImluZGV4T2YiLCJiSW5kZXgiLCJzb3J0QnlIaWdoZXN0QWNjZXNzUm9sZSIsImFSb2xlIiwic29ydCIsImJSb2xlIiwiY29udmVydFRvVXNlcldpdGhSb2xlcyIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiZW1haWwiLCJ1aWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXNlclJvbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlclJvbGUsIFVzZXJXaXRoUm9sZXMgfSBmcm9tICcuLi90eXBlcy9Vc2VyUm9sZSdcclxuaW1wb3J0IHsgdGV4dEZvckJhc2VSb2xlIH0gZnJvbSAnLi9iYXNlUm9sZSdcclxuXHJcbi8qKlxyXG4gKiBHZXQgdGhlIHVzZXIgaWQgZm9yIGEgYHVzZXJSb2xlYCwgZWl0aGVyIGEgYFVzZXJSb2xlYCBvciBgRW50aXR5VXNlclJvbGVgLlxyXG4gKiBAcGFyYW0gdXNlclJvbGUgVGhlIHVzZXIgcm9sZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldFVzZXJJZCA9ICh1c2VyUm9sZTogVXNlclJvbGUpOiBzdHJpbmcgPT5cclxuXHRPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodXNlclJvbGUsICd1c2VySWQnKSA/ICh1c2VyUm9sZSBhcyBhbnkpLnVzZXJJZCA6IHVzZXJSb2xlLmlkXHJcblxyXG4vKipcclxuICogR2V0IHdoZXRoZXIgb3Igbm90IHRoZSBgdXNlclJvbGVgIGhhcyBhIHByb3AgYGlzRXh0ZXJuYWxgIGFuZCBpdCBpcyBgdHJ1ZWAuXHJcbiAqIEBwYXJhbSB1c2VyUm9sZSBUaGUgdXNlciByb2xlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaXNFeHRlcm5hbCA9ICh1c2VyUm9sZTogVXNlclJvbGUpOiBib29sZWFuID0+XHJcblx0T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHVzZXJSb2xlLCAnaXNFeHRlcm5hbCcpICYmICh1c2VyUm9sZSBhcyBhbnkpLmlzRXh0ZXJuYWwgPT09IHRydWVcclxuXHJcbi8qKlxyXG4gKiBHZXQgdGhlIHRleHQgZm9yIHRoZSBnaXZlbiBgdXNlclJvbGUucm9sZWAuIERlZmF1bHRzIHRvIHVzaW5nIGB0ZXh0Rm9yQmFzZVJvbGVgLlxyXG4gKiBAcGFyYW0gdGV4dEZvclJvbGUgT3ZlcnJpZGUgbWV0aG9kIGZvciBwcm92aWRpbmcgcm9sZSB0ZXh0XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0Um9sZVRleHQgPSAodGV4dEZvclJvbGU/OiAocm9sZTogc3RyaW5nKSA9PiBzdHJpbmcpID0+IChhOiBVc2VyUm9sZSkgPT5cclxuXHR0ZXh0Rm9yUm9sZSA/IHRleHRGb3JSb2xlKGEucm9sZSkgOiB0ZXh0Rm9yQmFzZVJvbGUoYS5yb2xlKVxyXG5cclxuLyoqXHJcbiAqIFNvcnQgdGhlIHVzZXJSb2xlcyBieSByb2xlLCB1c2luZyB0aGUgcHJvdmlkZWQgYHJvbGVzYCBvcmRlclxyXG4gKiBAcGFyYW0gcm9sZXMgUm9sZXMgb3JkZXJlZCBpbiBkZXNjaW5nIGFjY2VzcyBsZXZlbFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHNvcnRCeVJvbGUgPSAocm9sZXM6IHN0cmluZ1tdKSA9PiAoYTogVXNlclJvbGUsIGI6IFVzZXJSb2xlKSA9PiB7XHJcblx0Y29uc3QgYUluZGV4ID0gcm9sZXMuaW5kZXhPZihhLnJvbGUpXHJcblx0Y29uc3QgYkluZGV4ID0gcm9sZXMuaW5kZXhPZihiLnJvbGUpXHJcblx0aWYgKGFJbmRleCAhPT0gYkluZGV4KSB7XHJcblx0XHRyZXR1cm4gYUluZGV4ID4gYkluZGV4ID8gMSA6IC0xXHJcblx0fVxyXG5cdHJldHVybiAwXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTb3J0IHRoZSB1c2VycyBieSByb2xlLCB1c2luZyB0aGUgcHJvdmlkZWQgYHJvbGVzYCBvcmRlclxyXG4gKiBAcGFyYW0gcm9sZXMgUm9sZXMgb3JkZXJlZCBpbiBkZXNjaW5nIGFjY2VzcyBsZXZlbFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHNvcnRCeUhpZ2hlc3RBY2Nlc3NSb2xlID0gKHJvbGVzOiBzdHJpbmdbXSkgPT4gKGE6IFVzZXJXaXRoUm9sZXMsIGI6IFVzZXJXaXRoUm9sZXMpID0+IHtcclxuXHRjb25zdCBhUm9sZSA9IGEucm9sZXMuc29ydChzb3J0QnlSb2xlKHJvbGVzKSlbMF0ucm9sZVxyXG5cdGNvbnN0IGJSb2xlID0gYi5yb2xlcy5zb3J0KHNvcnRCeVJvbGUocm9sZXMpKVswXS5yb2xlXHJcblx0Y29uc3QgYUluZGV4ID0gcm9sZXMuaW5kZXhPZihhUm9sZSlcclxuXHRjb25zdCBiSW5kZXggPSByb2xlcy5pbmRleE9mKGJSb2xlKVxyXG5cdGlmIChhSW5kZXggIT09IGJJbmRleCkge1xyXG5cdFx0cmV0dXJuIGFJbmRleCA+IGJJbmRleCA/IDEgOiAtMVxyXG5cdH1cclxuXHRyZXR1cm4gMFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydFRvVXNlcldpdGhSb2xlcyA9IDxUVXNlclJvbGUgZXh0ZW5kcyBVc2VyUm9sZSA9IFVzZXJSb2xlPihcclxuXHR1c2VyUm9sZTogVFVzZXJSb2xlXHJcbik6IFVzZXJXaXRoUm9sZXM8VFVzZXJSb2xlPiA9PiB7XHJcblx0Y29uc3QgdXNlcklkID0gZ2V0VXNlcklkKHVzZXJSb2xlKVxyXG5cdHJldHVybiB7XHJcblx0XHRpZDogdXNlcklkLFxyXG5cdFx0Zmlyc3ROYW1lOiB1c2VyUm9sZS5maXJzdE5hbWUsXHJcblx0XHRsYXN0TmFtZTogdXNlclJvbGUubGFzdE5hbWUsXHJcblx0XHRlbWFpbDogdXNlclJvbGUuZW1haWwsXHJcblx0XHR1aWQ6IHVzZXJSb2xlLnVpZCxcclxuXHRcdHJvbGVzOiBbdXNlclJvbGVdXHJcblx0fVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFNQyxTQUFTLEdBQUlDLFFBQWtCLElBQzNDQyxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBSUEsUUFBUSxDQUFTSyxNQUFNLEdBQUdMLFFBQVEsQ0FBQ00sRUFBRTs7QUFFbEc7QUFDQTtBQUNBO0FBQ0E7QUFIQUMsT0FBQSxDQUFBUixTQUFBLEdBQUFBLFNBQUE7QUFJTyxNQUFNUyxVQUFVLEdBQUlSLFFBQWtCLElBQzVDQyxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLFFBQVEsRUFBRSxZQUFZLENBQUMsSUFBS0EsUUFBUSxDQUFTUSxVQUFVLEtBQUssSUFBSTs7QUFFdEc7QUFDQTtBQUNBO0FBQ0E7QUFIQUQsT0FBQSxDQUFBQyxVQUFBLEdBQUFBLFVBQUE7QUFJTyxNQUFNQyxXQUFXLEdBQUlDLFdBQXNDLElBQU1DLENBQVcsSUFDbEZELFdBQVcsR0FBR0EsV0FBVyxDQUFDQyxDQUFDLENBQUNDLElBQUksQ0FBQyxHQUFHLElBQUFDLHlCQUFlLEVBQUNGLENBQUMsQ0FBQ0MsSUFBSSxDQUFDOztBQUU1RDtBQUNBO0FBQ0E7QUFDQTtBQUhBTCxPQUFBLENBQUFFLFdBQUEsR0FBQUEsV0FBQTtBQUlPLE1BQU1LLFVBQVUsR0FBSUMsS0FBZSxJQUFLLENBQUNKLENBQVcsRUFBRUssQ0FBVyxLQUFLO0VBQzVFLE1BQU1DLE1BQU0sR0FBR0YsS0FBSyxDQUFDRyxPQUFPLENBQUNQLENBQUMsQ0FBQ0MsSUFBSSxDQUFDO0VBQ3BDLE1BQU1PLE1BQU0sR0FBR0osS0FBSyxDQUFDRyxPQUFPLENBQUNGLENBQUMsQ0FBQ0osSUFBSSxDQUFDO0VBQ3BDLElBQUlLLE1BQU0sS0FBS0UsTUFBTSxFQUFFO0lBQ3RCLE9BQU9GLE1BQU0sR0FBR0UsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDaEM7RUFDQSxPQUFPLENBQUM7QUFDVCxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBSEFaLE9BQUEsQ0FBQU8sVUFBQSxHQUFBQSxVQUFBO0FBSU8sTUFBTU0sdUJBQXVCLEdBQUlMLEtBQWUsSUFBSyxDQUFDSixDQUFnQixFQUFFSyxDQUFnQixLQUFLO0VBQ25HLE1BQU1LLEtBQUssR0FBR1YsQ0FBQyxDQUFDSSxLQUFLLENBQUNPLElBQUksQ0FBQ1IsVUFBVSxDQUFDQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDSCxJQUFJO0VBQ3JELE1BQU1XLEtBQUssR0FBR1AsQ0FBQyxDQUFDRCxLQUFLLENBQUNPLElBQUksQ0FBQ1IsVUFBVSxDQUFDQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDSCxJQUFJO0VBQ3JELE1BQU1LLE1BQU0sR0FBR0YsS0FBSyxDQUFDRyxPQUFPLENBQUNHLEtBQUssQ0FBQztFQUNuQyxNQUFNRixNQUFNLEdBQUdKLEtBQUssQ0FBQ0csT0FBTyxDQUFDSyxLQUFLLENBQUM7RUFDbkMsSUFBSU4sTUFBTSxLQUFLRSxNQUFNLEVBQUU7SUFDdEIsT0FBT0YsTUFBTSxHQUFHRSxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNoQztFQUNBLE9BQU8sQ0FBQztBQUNULENBQUM7QUFBQVosT0FBQSxDQUFBYSx1QkFBQSxHQUFBQSx1QkFBQTtBQUVNLE1BQU1JLHNCQUFzQixHQUNsQ3hCLFFBQW1CLElBQ1c7RUFDOUIsTUFBTUssTUFBTSxHQUFHTixTQUFTLENBQUNDLFFBQVEsQ0FBQztFQUNsQyxPQUFPO0lBQ05NLEVBQUUsRUFBRUQsTUFBTTtJQUNWb0IsU0FBUyxFQUFFekIsUUFBUSxDQUFDeUIsU0FBUztJQUM3QkMsUUFBUSxFQUFFMUIsUUFBUSxDQUFDMEIsUUFBUTtJQUMzQkMsS0FBSyxFQUFFM0IsUUFBUSxDQUFDMkIsS0FBSztJQUNyQkMsR0FBRyxFQUFFNUIsUUFBUSxDQUFDNEIsR0FBRztJQUNqQmIsS0FBSyxFQUFFLENBQUNmLFFBQVE7RUFDakIsQ0FBQztBQUNGLENBQUM7QUFBQU8sT0FBQSxDQUFBaUIsc0JBQUEsR0FBQUEsc0JBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
package/package.json CHANGED
@@ -1,226 +1,207 @@
1
- {
2
- "name": "studiokit-scaffolding-js",
3
- "version": "7.0.12-next.2.9",
4
- "description": "Common scaffolding for Studio apps at Purdue",
5
- "repository": "https://gitlab.com/purdue-informatics/studiokit/studiokit-scaffolding-js",
6
- "license": "MIT",
7
- "main": "lib/index.js",
8
- "types": "lib/index.d.ts",
9
- "files": [
10
- "lib"
11
- ],
12
- "scripts": {
13
- "build": "yarn clean && tsc -p ./tsconfig.build.json && yarn build:babel && yarn copy",
14
- "build:babel": "yarn babel src --extensions \".ts,.tsx,.js,.jsx\" --out-dir lib --ignore \"**/*.test.ts,**/*.test.tsx,src/setupTests.ts\" --source-maps inline",
15
- "typecheck": "tsc -p ./tsconfig.build.json --noEmit",
16
- "clean": "rimraf ./lib",
17
- "copy": "copyfiles -u 1 \"src/**/*.css\" lib && copyfiles lib",
18
- "coverage": "jest --coverage",
19
- "fix": "run-s 'fix:**'",
20
- "fix:code": "yarn lint:code --fix",
21
- "fix:styles": "yarn lint:styles --fix",
22
- "lint": "run-s 'lint:**'",
23
- "lint-code-core": "eslint --ext .js,.jsx,.ts,.tsx",
24
- "lint:code": "yarn lint-code-core .",
25
- "lint:styles": "stylelint \"src/**/*.css\"",
26
- "prepublishOnly": "yarn build",
27
- "test": "jest",
28
- "test:ci": "cross-env CI=true yarn test",
29
- "test:ci-junit": "cross-env CI=true yarn test -- --coverage --reporters='default' --reporters='jest-junit' --coverageReporters='cobertura' --coverageReporters='html'"
30
- },
31
- "husky": {
32
- "hooks": {
33
- "pre-commit": "lint-staged",
34
- "pre-push": "yarn test"
35
- }
36
- },
37
- "lint-staged": {
38
- "**/*.(j|t)s?(x)": [
39
- "yarn fix:code"
40
- ],
41
- "*.css": [
42
- "stylelint --fix"
43
- ],
44
- "package.json": [
45
- "sort-package-json"
46
- ]
47
- },
48
- "stylelint": {
49
- "extends": "stylelint-config-standard",
50
- "rules": {
51
- "import-notation": null,
52
- "at-rule-no-unknown": [
53
- true,
54
- {
55
- "ignoreAtRules": [
56
- "import-glob"
57
- ]
58
- }
59
- ],
60
- "media-feature-range-notation": null,
61
- "property-no-vendor-prefix": null,
62
- "selector-class-pattern": null,
63
- "selector-not-notation": "simple"
64
- },
65
- "ignoreFiles": "src/**/*.{ts,tsx,js,jsx}"
66
- },
67
- "jest": {
68
- "automock": false,
69
- "collectCoverageFrom": [
70
- "src/**/*.{ts,tsx,js,jsx}"
71
- ],
72
- "coverageReporters": [
73
- "cobertura",
74
- "html"
75
- ],
76
- "moduleNameMapper": {
77
- "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
78
- "\\.(css|less)$": "identity-obj-proxy"
79
- },
80
- "preset": "ts-jest",
81
- "setupFilesAfterEnv": [
82
- "./src/setupTests.ts"
83
- ],
84
- "testEnvironment": "jsdom"
85
- },
86
- "resolutions": {
87
- "@sentry/browser": "10.23.0",
88
- "@types/node": "~20.19.0",
89
- "@types/react": "^17.0.89",
90
- "@types/react-router": "^5.1.11",
91
- "kind-of": "^6.0.3",
92
- "mixin-deep": "^1.3.2",
93
- "set-value": "^2.0.1"
94
- },
95
- "dependencies": {
96
- "@babel/runtime": "^7.28.4",
97
- "@material-ui/core": "^4.12.4",
98
- "@material-ui/icons": "^4.11.3",
99
- "@material-ui/lab": "^4.0.0-alpha.57",
100
- "@microsoft/applicationinsights-web": "^3.1.0",
101
- "@redux-saga/core": "^1.4.2",
102
- "@redux-saga/types": "^1.3.1",
103
- "@sentry/react": "^10.23.0",
104
- "@types/history": "^4.7.11",
105
- "@types/lodash": "^4.17.20",
106
- "@types/quill": "^1.3.10",
107
- "@types/react-dom": "^17.0.26",
108
- "@types/react-helmet": "^6.1.0",
109
- "@types/react-modal": "^3.10.6",
110
- "@types/react-redux": "^7.1.16",
111
- "@types/react-router": "^5.1.11",
112
- "@types/react-router-bootstrap": "~0.24.5",
113
- "@types/react-router-dom": "^5.1.7",
114
- "@types/react-table": "^6.8.7",
115
- "@types/redux-logger": "3.0.12",
116
- "bootstrap": "^4.6.0",
117
- "compare-versions": "^3.6.0",
118
- "connected-react-router": "^6.8.0",
119
- "detect-browser": "^5.2.0",
120
- "history": "^4.10.1",
121
- "local-storage-fallback": "^4.1.2",
122
- "lodash": "^4.17.21",
123
- "memoize-one": "^6.0.0",
124
- "moment": "^2.30.1",
125
- "moment-timezone": "^0.6.0",
126
- "parchment": "^1.1.4",
127
- "pluralize": "^8.0.0",
128
- "prop-types": "^15.8.1",
129
- "query-string": "^6.13.8",
130
- "quill": "^1.3.7",
131
- "quill-blot-formatter": "purdue-tlt/quill-blot-formatter#a01562a213eb615abcdf2963457890e81ebc1ab3",
132
- "react-bootstrap": "^1.6.8",
133
- "react-compiler-runtime": "^1.0.0",
134
- "react-ga4": "^2.1.0",
135
- "react-helmet": "^6.1.0",
136
- "react-modal": "^3.16.3",
137
- "react-quill": "purdue-tlt/react-quill#fix/auto-focus",
138
- "react-redux": "^7.2.9",
139
- "react-router": "^5.3.4",
140
- "react-router-bootstrap": "~0.25.0",
141
- "react-router-dom": "^5.3.4",
142
- "react-super-responsive-table": "^5.2.0",
143
- "react-table": "^6.11.5",
144
- "redux": "^4.2.1",
145
- "redux-devtools-extension": "^2.13.9",
146
- "redux-logger": "^3.0.6",
147
- "redux-persist": "^6.0.0",
148
- "redux-saga": "^1.3.0",
149
- "studiokit-caliper-js": "1.0.26-alpha.4",
150
- "tachyons": "^4.12.0",
151
- "tslib": "^2.8.1",
152
- "uuid": "^11.1.0"
153
- },
154
- "devDependencies": {
155
- "@babel/cli": "^7.28.3",
156
- "@babel/core": "^7.28.4",
157
- "@babel/plugin-proposal-class-properties": "^7.18.6",
158
- "@babel/plugin-transform-runtime": "^7.28.3",
159
- "@babel/preset-env": "^7.28.3",
160
- "@babel/preset-react": "^7.27.1",
161
- "@babel/preset-typescript": "^7.27.1",
162
- "@eslint/js": "^9.39.1",
163
- "@redux-saga/testing-utils": "^1.1.5",
164
- "@types/enzyme": "^3.10.19",
165
- "@types/enzyme-adapter-react-16": "^1.0.9",
166
- "@types/eslint-plugin-jsx-a11y": "^6.10.1",
167
- "@types/jest": "^30.0.0",
168
- "@types/mockdate": "^3.0.0",
169
- "@types/pluralize": "^0.0.33",
170
- "@types/react": "^17.0.89",
171
- "@typescript-eslint/parser": "^8.46.3",
172
- "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0",
173
- "babel-plugin-react-compiler": "^1.0.0",
174
- "copyfiles": "^2.4.1",
175
- "cross-env": "^7.0.3",
176
- "enzyme": "^3.11.0",
177
- "eslint": "^9.39.1",
178
- "eslint-config-prettier": "^10.1.8",
179
- "eslint-config-react-app": "^7.0.1",
180
- "eslint-import-resolver-typescript": "^4.4.4",
181
- "eslint-plugin-flowtype": "^8.0.3",
182
- "eslint-plugin-import": "~2.32.0",
183
- "eslint-plugin-jsx-a11y": "^6.10.2",
184
- "eslint-plugin-prettier": "~5.3.1",
185
- "eslint-plugin-react": "^7.37.5",
186
- "eslint-plugin-react-hooks": "^7.0.1",
187
- "globals": "^16.5.0",
188
- "husky": "^4.3.8",
189
- "identity-obj-proxy": "^3.0.0",
190
- "jest": "^30.2.0",
191
- "jest-each": "^30.2.0",
192
- "jest-environment-jsdom": "^30.2.0",
193
- "jest-fetch-mock": "^3.0.3",
194
- "jest-junit": "^16.0.0",
195
- "jest-util": "^30.2.0",
196
- "jiti": "^2.6.1",
197
- "lint-staged": "^10.5.3",
198
- "mockdate": "^3.0.5",
199
- "npm-run-all": "^4.1.5",
200
- "prettier": "~3.6.2",
201
- "react": "^17.0.2",
202
- "react-dom": "^17.0.2",
203
- "rimraf": "^3.0.2",
204
- "sort-package-json": "^1.57.0",
205
- "stylelint": "^16.25.0",
206
- "stylelint-config-standard": "^39.0.1",
207
- "ts-jest": "^29.4.5",
208
- "typescript": "~5.9.3",
209
- "typescript-eslint": "^8.46.3"
210
- },
211
- "peerDependencies": {
212
- "@types/react": "^17.0.0",
213
- "@types/react-redux": "^7.1.16",
214
- "react": "^17.0.2",
215
- "react-dom": "^17.0.1"
216
- },
217
- "peerDependenciesMeta": {
218
- "@types/react": {
219
- "optional": true
220
- },
221
- "@types/react-redux": {
222
- "optional": true
223
- }
224
- },
225
- "packageManager": "yarn@4.10.3"
226
- }
1
+ {
2
+ "name": "studiokit-scaffolding-js",
3
+ "version": "7.0.13-alpha.1",
4
+ "description": "Common scaffolding for Studio apps at Purdue",
5
+ "repository": "https://gitlab.com/purdue-informatics/studiokit/studiokit-scaffolding-js",
6
+ "license": "MIT",
7
+ "main": "lib/index.js",
8
+ "types": "lib/index.d.ts",
9
+ "files": [
10
+ "lib"
11
+ ],
12
+ "scripts": {
13
+ "build": "yarn clean && tsc -p ./tsconfig.build.json && yarn copy",
14
+ "build:watch": "tsc -p ./tsconfig.build.json -w",
15
+ "clean": "rimraf ./lib",
16
+ "copy": "copyfiles -u 1 \"src/**/*.css\" lib && copyfiles -u 1 \"src/config/**/*.cjs\" lib",
17
+ "coverage": "jest --coverage",
18
+ "fix": "run-s 'fix:**'",
19
+ "fix:code": "yarn lint:code --fix",
20
+ "fix:styles": "yarn lint:styles --fix",
21
+ "lint": "run-s 'lint:**'",
22
+ "lint-code-core": "eslint --ext .js,.jsx,.ts,.tsx",
23
+ "lint:code": "yarn lint-code-core .",
24
+ "lint:styles": "stylelint \"src/**/*.css\"",
25
+ "prepublishOnly": "yarn build",
26
+ "test": "jest",
27
+ "test:ci": "cross-env CI=true yarn test",
28
+ "test:ci-junit": "cross-env CI=true npm run test -- --coverage --reporters='default' --reporters='jest-junit' --coverageReporters='cobertura' --coverageReporters='html'"
29
+ },
30
+ "husky": {
31
+ "hooks": {
32
+ "pre-commit": "lint-staged",
33
+ "pre-push": "npm run test"
34
+ }
35
+ },
36
+ "lint-staged": {
37
+ "**/*.(j|t)s?(x)": [
38
+ "yarn lint-code-core --fix"
39
+ ],
40
+ "*.css": [
41
+ "stylelint --fix"
42
+ ],
43
+ "package.json": [
44
+ "sort-package-json"
45
+ ]
46
+ },
47
+ "stylelint": {
48
+ "extends": "stylelint-config-standard",
49
+ "rules": {
50
+ "indentation": "tab",
51
+ "at-rule-no-unknown": [
52
+ true,
53
+ {
54
+ "ignoreAtRules": [
55
+ "import-glob"
56
+ ]
57
+ }
58
+ ]
59
+ },
60
+ "ignoreFiles": "src/**/*.{ts,tsx,js,jsx}"
61
+ },
62
+ "jest": {
63
+ "automock": false,
64
+ "collectCoverageFrom": [
65
+ "src/**/*.{ts,tsx,js,jsx}"
66
+ ],
67
+ "coverageReporters": [
68
+ "cobertura",
69
+ "html"
70
+ ],
71
+ "moduleNameMapper": {
72
+ "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
73
+ "\\.(css|less)$": "identity-obj-proxy"
74
+ },
75
+ "preset": "ts-jest",
76
+ "setupFilesAfterEnv": [
77
+ "./src/setupTests.ts"
78
+ ]
79
+ },
80
+ "resolutions": {
81
+ "@sentry/browser": "^7.113.0",
82
+ "@types/node": "~18.6.0",
83
+ "@types/react": "^17.0.0",
84
+ "@types/react-router": "^5.1.11",
85
+ "kind-of": "^6.0.3",
86
+ "mixin-deep": "^1.3.2",
87
+ "set-value": "^2.0.1"
88
+ },
89
+ "dependencies": {
90
+ "@material-ui/core": "^4.11.3",
91
+ "@material-ui/icons": "^4.11.2",
92
+ "@material-ui/lab": "^4.0.0-alpha.57",
93
+ "@microsoft/applicationinsights-web": "^3.1.0",
94
+ "@redux-saga/core": "^1.1.3",
95
+ "@redux-saga/types": "^1.1.0",
96
+ "@sentry/react": "^7.113.0",
97
+ "@types/history": "^4.7.8",
98
+ "@types/lodash": "^4.14.202",
99
+ "@types/pluralize": "^0.0.29",
100
+ "@types/quill": "^1.3.10",
101
+ "@types/react": "^17.0.0",
102
+ "@types/react-dom": "^17.0.0",
103
+ "@types/react-helmet": "^6.1.0",
104
+ "@types/react-modal": "^3.10.6",
105
+ "@types/react-redux": "^7.1.16",
106
+ "@types/react-router": "^5.1.11",
107
+ "@types/react-router-bootstrap": "^0.24.5",
108
+ "@types/react-router-dom": "^5.1.7",
109
+ "@types/react-table": "^6.8.7",
110
+ "@types/redux-logger": "3.0.12",
111
+ "@types/uuid": "^8.3.0",
112
+ "bootstrap": "^4.6.0",
113
+ "compare-versions": "^3.6.0",
114
+ "connected-react-router": "^6.8.0",
115
+ "detect-browser": "^5.2.0",
116
+ "history": "^4.10.1",
117
+ "local-storage-fallback": "^4.1.2",
118
+ "lodash": "^4.17.21",
119
+ "memoize-one": "^6.0.0",
120
+ "moment": "^2.29.4",
121
+ "moment-timezone": "^0.5.43",
122
+ "parchment": "^1.1.4",
123
+ "pluralize": "^8.0.0",
124
+ "prop-types": "^15.7.2",
125
+ "query-string": "^6.13.8",
126
+ "quill": "^1.3.7",
127
+ "quill-blot-formatter": "purdue-tlt/quill-blot-formatter#a01562a213eb615abcdf2963457890e81ebc1ab3",
128
+ "react-bootstrap": "^1.4.3",
129
+ "react-ga4": "^2.1.0",
130
+ "react-helmet": "^6.1.0",
131
+ "react-modal": "^3.12.1",
132
+ "react-quill": "purdue-tlt/react-quill#fix/auto-focus",
133
+ "react-redux": "^7.2.2",
134
+ "react-router": "^5.2.0",
135
+ "react-router-bootstrap": "^0.25.0",
136
+ "react-router-dom": "^5.2.0",
137
+ "react-super-responsive-table": "^5.2.0",
138
+ "react-table": "^6.11.5",
139
+ "redux": "^4.0.5",
140
+ "redux-devtools-extension": "^2.13.8",
141
+ "redux-logger": "^3.0.6",
142
+ "redux-persist": "^6.0.0",
143
+ "redux-saga": "^1.1.3",
144
+ "studiokit-caliper-js": "^1.0.25",
145
+ "tachyons": "^4.12.0",
146
+ "tslib": "^2.1.0",
147
+ "uuid": "^8.3.2"
148
+ },
149
+ "devDependencies": {
150
+ "@redux-saga/testing-utils": "^1.1.3",
151
+ "@types/enzyme": "^3.10.8",
152
+ "@types/enzyme-adapter-react-16": "^1.0.6",
153
+ "@types/jest": "^26.0.20",
154
+ "@types/mockdate": "^2.0.0",
155
+ "@types/react": "^17.0.0",
156
+ "@typescript-eslint/eslint-plugin": "4.33.0",
157
+ "@typescript-eslint/parser": "4.33.0",
158
+ "@wojtekmaj/enzyme-adapter-react-17": "^0.4.1",
159
+ "babel-eslint": "^10.1.0",
160
+ "copyfiles": "^2.4.1",
161
+ "cross-env": "^7.0.3",
162
+ "enzyme": "^3.11.0",
163
+ "eslint": "^7.32.0",
164
+ "eslint-config-prettier": "^7.2.0",
165
+ "eslint-config-react-app": "^6.0.0",
166
+ "eslint-import-resolver-node": "^0.3.9",
167
+ "eslint-plugin-flowtype": "^5.10.0",
168
+ "eslint-plugin-import": "~2.22.1",
169
+ "eslint-plugin-jsx-a11y": "^6.9.0",
170
+ "eslint-plugin-prettier": "^3.4.1",
171
+ "eslint-plugin-react": "^7.35.0",
172
+ "eslint-plugin-react-hooks": "^4.6.2",
173
+ "husky": "^4.3.8",
174
+ "identity-obj-proxy": "^3.0.0",
175
+ "jest": "^26.6.0",
176
+ "jest-each": "^26.6.0",
177
+ "jest-fetch-mock": "^3.0.3",
178
+ "jest-junit": "^12.0.0",
179
+ "lint-staged": "^10.5.3",
180
+ "mockdate": "^3.0.2",
181
+ "npm-run-all": "^4.1.5",
182
+ "prettier": "~2.2.1",
183
+ "react": "^17.0.2",
184
+ "react-dom": "^17.0.1",
185
+ "rimraf": "^3.0.2",
186
+ "sort-package-json": "^1.48.1",
187
+ "stylelint": "^13.9.0",
188
+ "stylelint-config-standard": "^20.0.0",
189
+ "ts-jest": "^26.4.4",
190
+ "typescript": "~4.1.6"
191
+ },
192
+ "peerDependencies": {
193
+ "@types/react": "^17.0.0",
194
+ "@types/react-redux": "^7.1.16",
195
+ "react": "^17.0.2",
196
+ "react-dom": "^17.0.1"
197
+ },
198
+ "peerDependenciesMeta": {
199
+ "@types/react": {
200
+ "optional": true
201
+ },
202
+ "@types/react-redux": {
203
+ "optional": true
204
+ }
205
+ },
206
+ "packageManager": "yarn@4.4.0"
207
+ }
@@ -1,2 +0,0 @@
1
- declare const config: import("@eslint/config-helpers").Config[];
2
- export default config;
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _js = _interopRequireDefault(require("@eslint/js"));
9
- var _config = require("eslint/config");
10
- var _eslintPluginImport = _interopRequireDefault(require("eslint-plugin-import"));
11
- var _recommended = _interopRequireDefault(require("eslint-plugin-prettier/recommended"));
12
- var _globals = _interopRequireDefault(require("globals"));
13
- var _order = _interopRequireDefault(require("./lib/order"));
14
- var _prettier = _interopRequireDefault(require("./lib/prettier"));
15
- var _typescript = _interopRequireDefault(require("./lib/typescript"));
16
- const config = (0, _config.defineConfig)({
17
- files: ['**/*.js', '**/*.jsx', '**/*.cjs', '**/*.mjs'],
18
- extends: [_js.default.configs.recommended, _eslintPluginImport.default.flatConfigs.recommended, _order.default, _recommended.default, _prettier.default],
19
- languageOptions: {
20
- parserOptions: {
21
- ecmaVersion: 'latest',
22
- sourceType: 'module'
23
- },
24
- globals: {
25
- ..._globals.default.es2020,
26
- ..._globals.default.node,
27
- ..._globals.default.browser,
28
- ..._globals.default.jest
29
- }
30
- }
31
- }, {
32
- files: ['**/*.ts?(x)'],
33
- extends: [_typescript.default]
34
- });
35
- var _default = exports.default = config;
36
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfanMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jb25maWciLCJfZXNsaW50UGx1Z2luSW1wb3J0IiwiX3JlY29tbWVuZGVkIiwiX2dsb2JhbHMiLCJfb3JkZXIiLCJfcHJldHRpZXIiLCJfdHlwZXNjcmlwdCIsImNvbmZpZyIsImRlZmluZUNvbmZpZyIsImZpbGVzIiwiZXh0ZW5kcyIsImVzbGludCIsImNvbmZpZ3MiLCJyZWNvbW1lbmRlZCIsImltcG9ydFBsdWdpbiIsImZsYXRDb25maWdzIiwiaW1wb3J0UGx1Z2luUnVsZXMiLCJwcmV0dGllciIsInByZXR0aWVyUGx1Z2luUnVsZXMiLCJsYW5ndWFnZU9wdGlvbnMiLCJwYXJzZXJPcHRpb25zIiwiZWNtYVZlcnNpb24iLCJzb3VyY2VUeXBlIiwiZ2xvYmFscyIsImVzMjAyMCIsIm5vZGUiLCJicm93c2VyIiwiamVzdCIsInR5cGVzY3JpcHRSdWxlcyIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2VzbGludC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXNsaW50IGZyb20gJ0Blc2xpbnQvanMnXHJcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ2VzbGludC9jb25maWcnXHJcbmltcG9ydCBpbXBvcnRQbHVnaW4gZnJvbSAnZXNsaW50LXBsdWdpbi1pbXBvcnQnXHJcbmltcG9ydCBwcmV0dGllciBmcm9tICdlc2xpbnQtcGx1Z2luLXByZXR0aWVyL3JlY29tbWVuZGVkJ1xyXG5pbXBvcnQgZ2xvYmFscyBmcm9tICdnbG9iYWxzJ1xyXG5pbXBvcnQgaW1wb3J0UGx1Z2luUnVsZXMgZnJvbSAnLi9saWIvb3JkZXInXHJcbmltcG9ydCBwcmV0dGllclBsdWdpblJ1bGVzIGZyb20gJy4vbGliL3ByZXR0aWVyJ1xyXG5pbXBvcnQgdHlwZXNjcmlwdFJ1bGVzIGZyb20gJy4vbGliL3R5cGVzY3JpcHQnXHJcblxyXG5jb25zdCBjb25maWcgPSBkZWZpbmVDb25maWcoXHJcblx0e1xyXG5cdFx0ZmlsZXM6IFsnKiovKi5qcycsICcqKi8qLmpzeCcsICcqKi8qLmNqcycsICcqKi8qLm1qcyddLFxyXG5cdFx0ZXh0ZW5kczogW1xyXG5cdFx0XHRlc2xpbnQuY29uZmlncy5yZWNvbW1lbmRlZCxcclxuXHRcdFx0aW1wb3J0UGx1Z2luLmZsYXRDb25maWdzLnJlY29tbWVuZGVkLFxyXG5cdFx0XHRpbXBvcnRQbHVnaW5SdWxlcyxcclxuXHRcdFx0cHJldHRpZXIsXHJcblx0XHRcdHByZXR0aWVyUGx1Z2luUnVsZXNcclxuXHRcdF0sXHJcblx0XHRsYW5ndWFnZU9wdGlvbnM6IHtcclxuXHRcdFx0cGFyc2VyT3B0aW9uczoge1xyXG5cdFx0XHRcdGVjbWFWZXJzaW9uOiAnbGF0ZXN0JyxcclxuXHRcdFx0XHRzb3VyY2VUeXBlOiAnbW9kdWxlJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRnbG9iYWxzOiB7XHJcblx0XHRcdFx0Li4uZ2xvYmFscy5lczIwMjAsXHJcblx0XHRcdFx0Li4uZ2xvYmFscy5ub2RlLFxyXG5cdFx0XHRcdC4uLmdsb2JhbHMuYnJvd3NlcixcclxuXHRcdFx0XHQuLi5nbG9iYWxzLmplc3RcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0e1xyXG5cdFx0ZmlsZXM6IFsnKiovKi50cz8oeCknXSxcclxuXHRcdGV4dGVuZHM6IFt0eXBlc2NyaXB0UnVsZXNdXHJcblx0fVxyXG4pXHJcblxyXG5leHBvcnQgZGVmYXVsdCBjb25maWdcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsR0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsbUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFNBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLE1BQU1RLE1BQU0sR0FBRyxJQUFBQyxvQkFBWSxFQUMxQjtFQUNDQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7RUFDdERDLE9BQU8sRUFBRSxDQUNSQyxXQUFNLENBQUNDLE9BQU8sQ0FBQ0MsV0FBVyxFQUMxQkMsMkJBQVksQ0FBQ0MsV0FBVyxDQUFDRixXQUFXLEVBQ3BDRyxjQUFpQixFQUNqQkMsb0JBQVEsRUFDUkMsaUJBQW1CLENBQ25CO0VBQ0RDLGVBQWUsRUFBRTtJQUNoQkMsYUFBYSxFQUFFO01BQ2RDLFdBQVcsRUFBRSxRQUFRO01BQ3JCQyxVQUFVLEVBQUU7SUFDYixDQUFDO0lBQ0RDLE9BQU8sRUFBRTtNQUNSLEdBQUdBLGdCQUFPLENBQUNDLE1BQU07TUFDakIsR0FBR0QsZ0JBQU8sQ0FBQ0UsSUFBSTtNQUNmLEdBQUdGLGdCQUFPLENBQUNHLE9BQU87TUFDbEIsR0FBR0gsZ0JBQU8sQ0FBQ0k7SUFDWjtFQUNEO0FBQ0QsQ0FBQyxFQUNEO0VBQ0NsQixLQUFLLEVBQUUsQ0FBQyxhQUFhLENBQUM7RUFDdEJDLE9BQU8sRUFBRSxDQUFDa0IsbUJBQWU7QUFDMUIsQ0FDRCxDQUFDO0FBQUEsSUFBQUMsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFY3hCLE1BQU0iLCJpZ25vcmVMaXN0IjpbXX0=