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
package/lib/utils/dom.js CHANGED
@@ -1,201 +1,213 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupMobileEventListeners = exports.isTextInput = exports.hasExternalKeyboard = exports.isMobileDevice = exports.getFirstParentElementWithClassName = exports.getVerticallyScrollableParent = void 0;
4
- var logger_1 = require("./logger");
5
- var KEYBOARD_ANIMATION_MS = 250;
6
- /**
7
- * Get the nearest vertically scrollable parent of an element
8
- * @param { HTMLElement } element - The element to start with
9
- * @returns The nearest vertically scrollable parent element
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setupMobileEventListeners = exports.isTextInput = exports.isMobileDevice = exports.hasExternalKeyboard = exports.getVerticallyScrollableParent = exports.getFirstParentElementWithClassName = void 0;
7
+ var _logger = require("./logger");
8
+ const KEYBOARD_ANIMATION_MS = 250;
9
+
10
+ /**
11
+ * Get the nearest vertically scrollable parent of an element
12
+ * @param { HTMLElement } element - The element to start with
13
+ * @returns The nearest vertically scrollable parent element
10
14
  */
11
- var getVerticallyScrollableParent = function (element) {
12
- var style = getComputedStyle(element);
13
- var excludeStaticParent = style.position === 'absolute';
14
- var overflowRegex = /(auto|scroll|hidden)/;
15
- for (var parent_1 = element; (parent_1 = parent_1.parentElement);) {
16
- style = getComputedStyle(parent_1);
17
- if (excludeStaticParent && style.position === 'static')
18
- continue;
19
- if (overflowRegex.test(style.overflow + style.overflowY) && parent_1.scrollHeight > parent_1.clientHeight)
20
- return parent_1;
21
- }
22
- return document.scrollingElement;
15
+ const getVerticallyScrollableParent = element => {
16
+ let style = getComputedStyle(element);
17
+ const excludeStaticParent = style.position === 'absolute';
18
+ const overflowRegex = /(auto|scroll|hidden)/;
19
+ for (let parent = element; parent = parent.parentElement;) {
20
+ style = getComputedStyle(parent);
21
+ if (excludeStaticParent && style.position === 'static') continue;
22
+ if (overflowRegex.test(style.overflow + style.overflowY) && parent.scrollHeight > parent.clientHeight) return parent;
23
+ }
24
+ return document.scrollingElement;
23
25
  };
24
- exports.getVerticallyScrollableParent = getVerticallyScrollableParent;
25
- /**
26
- * Get the first parent that has the given className in its classList
27
- * @param element The target element
28
- * @param className The className to match
26
+
27
+ /**
28
+ * Get the first parent that has the given className in its classList
29
+ * @param element The target element
30
+ * @param className The className to match
29
31
  */
30
- var getFirstParentElementWithClassName = function (element, className) {
31
- for (var parent_2 = element; (parent_2 = parent_2.parentElement);) {
32
- if (parent_2.classList.contains(className))
33
- return parent_2;
34
- }
35
- return undefined;
32
+ exports.getVerticallyScrollableParent = getVerticallyScrollableParent;
33
+ const getFirstParentElementWithClassName = (element, className) => {
34
+ for (let parent = element; parent = parent.parentElement;) {
35
+ if (parent.classList.contains(className)) return parent;
36
+ }
37
+ return undefined;
36
38
  };
37
- exports.getFirstParentElementWithClassName = getFirstParentElementWithClassName;
38
- /**
39
- * Return whether the device being used is one of several mainstream mobile devices
39
+
40
+ /**
41
+ * Return whether the device being used is one of several mainstream mobile devices
40
42
  */
41
- var isMobileDevice = function () {
42
- return (/android|ipad|ipod|iphone/i.test(navigator.userAgent) ||
43
- (/macintosh/i.test(navigator.userAgent) && navigator.maxTouchPoints));
43
+ exports.getFirstParentElementWithClassName = getFirstParentElementWithClassName;
44
+ const isMobileDevice = () => {
45
+ return /android|ipad|ipod|iphone/i.test(navigator.userAgent) || /macintosh/i.test(navigator.userAgent) && navigator.maxTouchPoints;
44
46
  };
45
- exports.isMobileDevice = isMobileDevice;
47
+
46
48
  /** Return whether the device is using an external keyboard vs. the native on-screen OS keyboard. */
47
- var hasExternalKeyboard = function () { return window.hasExternalKeyboard; };
48
- exports.hasExternalKeyboard = hasExternalKeyboard;
49
- /**
50
- * Sets `window.hasExternalKeyboard`, returned by `hasExternalKeyboard`.
49
+ exports.isMobileDevice = isMobileDevice;
50
+ const hasExternalKeyboard = () => window.hasExternalKeyboard;
51
+
52
+ /**
53
+ * Sets `window.hasExternalKeyboard`, returned by `hasExternalKeyboard`.
51
54
  */
52
- var setHasExternalKeyboard = function (hasExternalKeyboard) {
53
- logger_1.getLogger().debug('hasExternalKeyboard', hasExternalKeyboard);
54
- var windowWithoutType = window;
55
- windowWithoutType.hasExternalKeyboard = hasExternalKeyboard;
55
+ exports.hasExternalKeyboard = hasExternalKeyboard;
56
+ const setHasExternalKeyboard = hasExternalKeyboard => {
57
+ (0, _logger.getLogger)().debug('hasExternalKeyboard', hasExternalKeyboard);
58
+ const windowWithoutType = window;
59
+ windowWithoutType.hasExternalKeyboard = hasExternalKeyboard;
56
60
  };
57
- /**
58
- * 100vh is kind of b⊘rked on mobile safari, we have to set it programmatically here
59
- * so we can calculate device-independent viewport heights
60
- * https://allthingssmitty.com/2020/05/11/css-fix-for-100vh-in-mobile-webkit/
61
- *
62
- * Sets the CSS variable `--visual-viewport-height` on the `documentElement`/<html>.
63
- *
61
+
62
+ /**
63
+ * 100vh is kind of b⊘rked on mobile safari, we have to set it programmatically here
64
+ * so we can calculate device-independent viewport heights
65
+ * https://allthingssmitty.com/2020/05/11/css-fix-for-100vh-in-mobile-webkit/
66
+ *
67
+ * Sets the CSS variable `--visual-viewport-height` on the `documentElement`/<html>.
68
+ *
64
69
  */
65
- var setVisualViewportHeightVar = function () {
66
- var height = visualViewport ? visualViewport.height : 0;
67
- document.documentElement.style.setProperty('--visual-viewport-height', height + "px");
70
+ const setVisualViewportHeightVar = () => {
71
+ const height = visualViewport ? visualViewport.height : 0;
72
+ document.documentElement.style.setProperty('--visual-viewport-height', `${height}px`);
68
73
  };
69
- /**
70
- * Is the given element capable of text input?
71
- *
72
- * @param el An HTML element
74
+
75
+ /**
76
+ * Is the given element capable of text input?
77
+ *
78
+ * @param el An HTML element
73
79
  */
74
- var isTextInput = function (el) {
75
- var tagName = el && el.tagName && el.tagName.toLowerCase();
76
- if (tagName === 'textarea')
77
- return true;
78
- if (tagName === 'input') {
79
- var inputEl = el;
80
- return inputEl.type !== 'button' && inputEl.type !== 'radio' && inputEl.type !== 'checkbox';
81
- }
82
- // Quill editor
83
- return tagName === 'div' && el.className.includes('ql-editor') && el.contentEditable === 'true';
80
+ const isTextInput = el => {
81
+ const tagName = el.tagName && el.tagName.toLowerCase();
82
+ if (tagName === 'textarea') return true;
83
+ if (tagName === 'input') {
84
+ const inputEl = el;
85
+ return inputEl.type !== 'button' && inputEl.type !== 'radio' && inputEl.type !== 'checkbox';
86
+ }
87
+ // Quill editor
88
+ return tagName === 'div' && el.className.includes('ql-editor') && el.contentEditable === 'true';
84
89
  };
85
90
  exports.isTextInput = isTextInput;
86
- var updateHasExternalKeyboardAfterFocusTimeout = undefined;
87
- var scrollToElementAfterFocusTimeout = undefined;
88
- var updateHasExternalKeyboardAfterFocus = function () {
89
- var closedVisualViewportHeight = visualViewport ? visualViewport.height : 0;
90
- // wait for the keyboard animation
91
- updateHasExternalKeyboardAfterFocusTimeout = window.setTimeout(function () {
92
- // find the keyboard height based on the difference in viewport height
93
- var keyboardHeight = closedVisualViewportHeight - (visualViewport ? visualViewport.height : 0);
94
- // on first-load the input focus can fail
95
- // when this happens the height is 0, and this ONLY happens when there is NOT an external keyboard
96
- if (keyboardHeight === 0 && exports.hasExternalKeyboard() === undefined) {
97
- setHasExternalKeyboard(false);
98
- }
99
- else {
100
- // if the keyboard height is greater than 100, that means the full onscreen keyboard displayed
101
- // otherwise, only the small context menu displayed, meaning there is an external keyboard
102
- setHasExternalKeyboard(keyboardHeight < 100);
103
- }
104
- updateHasExternalKeyboardAfterFocusTimeout = undefined;
105
- }, KEYBOARD_ANIMATION_MS);
91
+ let updateHasExternalKeyboardAfterFocusTimeout = undefined;
92
+ let scrollToElementAfterFocusTimeout = undefined;
93
+ const updateHasExternalKeyboardAfterFocus = () => {
94
+ const closedVisualViewportHeight = visualViewport ? visualViewport.height : 0;
95
+ // wait for the keyboard animation
96
+ updateHasExternalKeyboardAfterFocusTimeout = window.setTimeout(() => {
97
+ // find the keyboard height based on the difference in viewport height
98
+ const keyboardHeight = closedVisualViewportHeight - (visualViewport ? visualViewport.height : 0);
99
+ // on first-load the input focus can fail
100
+ // when this happens the height is 0, and this ONLY happens when there is NOT an external keyboard
101
+ if (keyboardHeight === 0 && hasExternalKeyboard() === undefined) {
102
+ setHasExternalKeyboard(false);
103
+ } else {
104
+ // if the keyboard height is greater than 100, that means the full onscreen keyboard displayed
105
+ // otherwise, only the small context menu displayed, meaning there is an external keyboard
106
+ setHasExternalKeyboard(keyboardHeight < 100);
107
+ }
108
+ updateHasExternalKeyboardAfterFocusTimeout = undefined;
109
+ }, KEYBOARD_ANIMATION_MS);
106
110
  };
107
- var scrollToElementAfterFocus = function (el) {
108
- // wait for the keyboard animation
109
- scrollToElementAfterFocusTimeout = window.setTimeout(function () {
110
- // after the keyboard is open, check for the el’s scrollable parent, as it could have just become scrollable
111
- var scrollParent = exports.getVerticallyScrollableParent(el);
112
- // if the el has a scrollable parent other than the document, scroll it back into view
113
- if (scrollParent && scrollParent !== document.documentElement) {
114
- var scrollRect = scrollParent.getBoundingClientRect();
115
- var rect = el.getBoundingClientRect();
116
- // only scroll into view if outside of the scroll parent bounds
117
- if (rect.bottom < scrollRect.top || rect.top > scrollRect.bottom) {
118
- var newScrollTop = scrollParent.scrollTop + rect.top - scrollRect.top - 10;
119
- logger_1.getLogger().debug('scrollToEl', newScrollTop);
120
- if (scrollParent.scrollTo) {
121
- scrollParent.scrollTo({ top: newScrollTop, behavior: 'smooth' });
122
- }
123
- else {
124
- scrollParent.scrollTop = newScrollTop;
125
- }
126
- }
111
+ const scrollToElementAfterFocus = el => {
112
+ // wait for the keyboard animation
113
+ scrollToElementAfterFocusTimeout = window.setTimeout(() => {
114
+ // after the keyboard is open, check for the el’s scrollable parent, as it could have just become scrollable
115
+ const scrollParent = getVerticallyScrollableParent(el);
116
+ // if the el has a scrollable parent other than the document, scroll it back into view
117
+ if (scrollParent && scrollParent !== document.documentElement) {
118
+ const scrollRect = scrollParent.getBoundingClientRect();
119
+ const rect = el.getBoundingClientRect();
120
+ // only scroll into view if outside of the scroll parent bounds
121
+ if (rect.bottom < scrollRect.top || rect.top > scrollRect.bottom) {
122
+ const newScrollTop = scrollParent.scrollTop + rect.top - scrollRect.top - 10;
123
+ (0, _logger.getLogger)().debug('scrollToEl', newScrollTop);
124
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
125
+ if (scrollParent.scrollTo) {
126
+ scrollParent.scrollTo({
127
+ top: newScrollTop,
128
+ behavior: 'smooth'
129
+ });
130
+ } else {
131
+ scrollParent.scrollTop = newScrollTop;
127
132
  }
128
- scrollToElementAfterFocusTimeout = undefined;
129
- }, KEYBOARD_ANIMATION_MS);
133
+ }
134
+ }
135
+ scrollToElementAfterFocusTimeout = undefined;
136
+ }, KEYBOARD_ANIMATION_MS);
130
137
  };
131
- /**
132
- * Event handler for "focusin" event.
133
- *
134
- * "focusin" bubbles up from all focus events, so uses `isTextInput` to only react to "keyboard" focus events.
135
- *
136
- * Checks for external keyboard and scrolls to the focused element after any animations, e.g. keyboard open.
137
- *
138
+
139
+ /**
140
+ * Event handler for "focusin" event.
141
+ *
142
+ * "focusin" bubbles up from all focus events, so uses `isTextInput` to only react to "keyboard" focus events.
143
+ *
144
+ * Checks for external keyboard and scrolls to the focused element after any animations, e.g. keyboard open.
145
+ *
138
146
  */
139
- var onFocusIn = function (e) {
140
- if (!e.target || !exports.isTextInput(e.target))
141
- return;
142
- updateHasExternalKeyboardAfterFocus();
143
- scrollToElementAfterFocus(e.target);
147
+ const onFocusIn = e => {
148
+ if (!e.target || !isTextInput(e.target)) return;
149
+ updateHasExternalKeyboardAfterFocus();
150
+ scrollToElementAfterFocus(e.target);
144
151
  };
145
- /**
146
- * Event handler for "focusout" event.
147
- *
148
- * "focusout" bubbles up from all focus events, so uses `isTextInput` to only react to "keyboard" focus events.
149
- *
150
- * Clears any pending timeouts from "focusin" events.
151
- *
152
+
153
+ /**
154
+ * Event handler for "focusout" event.
155
+ *
156
+ * "focusout" bubbles up from all focus events, so uses `isTextInput` to only react to "keyboard" focus events.
157
+ *
158
+ * Clears any pending timeouts from "focusin" events.
159
+ *
152
160
  */
153
- var onFocusOut = function (e) {
154
- if (!e.target || !exports.isTextInput(e.target))
155
- return;
156
- if (updateHasExternalKeyboardAfterFocusTimeout) {
157
- window.clearTimeout(updateHasExternalKeyboardAfterFocusTimeout);
158
- updateHasExternalKeyboardAfterFocusTimeout = undefined;
159
- }
160
- if (scrollToElementAfterFocusTimeout) {
161
- window.clearTimeout(scrollToElementAfterFocusTimeout);
162
- scrollToElementAfterFocusTimeout = undefined;
163
- }
161
+ const onFocusOut = e => {
162
+ if (!e.target || !isTextInput(e.target)) return;
163
+ if (updateHasExternalKeyboardAfterFocusTimeout) {
164
+ window.clearTimeout(updateHasExternalKeyboardAfterFocusTimeout);
165
+ updateHasExternalKeyboardAfterFocusTimeout = undefined;
166
+ }
167
+ if (scrollToElementAfterFocusTimeout) {
168
+ window.clearTimeout(scrollToElementAfterFocusTimeout);
169
+ scrollToElementAfterFocusTimeout = undefined;
170
+ }
164
171
  };
165
- /**
166
- * Check if the device is using an external keyboard by appending an `input` and focusing it.
167
- *
168
- * This will trigger the `onFocusIn` event handler, which updates the `hasExternalKeyboard` global.
172
+
173
+ /**
174
+ * Check if the device is using an external keyboard by appending an `input` and focusing it.
175
+ *
176
+ * This will trigger the `onFocusIn` event handler, which updates the `hasExternalKeyboard` global.
169
177
  */
170
- var checkForExternalKeyboard = function () {
171
- var el = document.createElement('input');
172
- el.type = 'text';
173
- el.autofocus = true;
174
- el.addEventListener('focusin', function () {
175
- // remove the input after the keyboard has displayed, plus a small buffer
176
- window.setTimeout(function () {
177
- el.blur();
178
- el.remove();
179
- }, KEYBOARD_ANIMATION_MS + 100);
180
- });
181
- document.documentElement.append(el);
178
+ const checkForExternalKeyboard = () => {
179
+ const el = document.createElement('input');
180
+ el.type = 'text';
181
+ el.autofocus = true;
182
+ el.addEventListener('focusin', () => {
183
+ // remove the input after the keyboard has displayed, plus a small buffer
184
+ window.setTimeout(() => {
185
+ el.blur();
186
+ el.remove();
187
+ }, KEYBOARD_ANIMATION_MS + 100);
188
+ });
189
+ document.documentElement.append(el);
182
190
  };
183
- var setupMobileEventListeners = function () {
184
- if (!exports.isMobileDevice() || !visualViewport)
185
- return;
186
- // set viewport height var at setup
191
+ const setupMobileEventListeners = () => {
192
+ if (!isMobileDevice() || !visualViewport) return;
193
+
194
+ // set viewport height var at setup
195
+ setVisualViewportHeightVar();
196
+
197
+ // add event listeners
198
+ visualViewport.addEventListener('resize', () => {
187
199
  setVisualViewportHeightVar();
188
- // add event listeners
189
- visualViewport.addEventListener('resize', function () {
190
- setVisualViewportHeightVar();
191
- // keep the document element scrolled to the top if a ReactModal is open
192
- if (document.body.classList.contains('ReactModal__Body--open')) {
193
- document.documentElement.scrollTop = 0;
194
- }
195
- });
196
- window.addEventListener('focusin', onFocusIn);
197
- window.addEventListener('focusout', onFocusOut);
198
- // check for external keyboard at setup
199
- checkForExternalKeyboard();
200
+
201
+ // keep the document element scrolled to the top if a ReactModal is open
202
+ if (document.body.classList.contains('ReactModal__Body--open')) {
203
+ document.documentElement.scrollTop = 0;
204
+ }
205
+ });
206
+ window.addEventListener('focusin', onFocusIn);
207
+ window.addEventListener('focusout', onFocusOut);
208
+
209
+ // check for external keyboard at setup
210
+ checkForExternalKeyboard();
200
211
  };
201
212
  exports.setupMobileEventListeners = setupMobileEventListeners;
213
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwicmVxdWlyZSIsIktFWUJPQVJEX0FOSU1BVElPTl9NUyIsImdldFZlcnRpY2FsbHlTY3JvbGxhYmxlUGFyZW50IiwiZWxlbWVudCIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImV4Y2x1ZGVTdGF0aWNQYXJlbnQiLCJwb3NpdGlvbiIsIm92ZXJmbG93UmVnZXgiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwidGVzdCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dZIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZG9jdW1lbnQiLCJzY3JvbGxpbmdFbGVtZW50IiwiZXhwb3J0cyIsImdldEZpcnN0UGFyZW50RWxlbWVudFdpdGhDbGFzc05hbWUiLCJjbGFzc05hbWUiLCJjbGFzc0xpc3QiLCJjb250YWlucyIsInVuZGVmaW5lZCIsImlzTW9iaWxlRGV2aWNlIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwibWF4VG91Y2hQb2ludHMiLCJoYXNFeHRlcm5hbEtleWJvYXJkIiwid2luZG93Iiwic2V0SGFzRXh0ZXJuYWxLZXlib2FyZCIsImdldExvZ2dlciIsImRlYnVnIiwid2luZG93V2l0aG91dFR5cGUiLCJzZXRWaXN1YWxWaWV3cG9ydEhlaWdodFZhciIsImhlaWdodCIsInZpc3VhbFZpZXdwb3J0IiwiZG9jdW1lbnRFbGVtZW50Iiwic2V0UHJvcGVydHkiLCJpc1RleHRJbnB1dCIsImVsIiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwiaW5wdXRFbCIsInR5cGUiLCJpbmNsdWRlcyIsImNvbnRlbnRFZGl0YWJsZSIsInVwZGF0ZUhhc0V4dGVybmFsS2V5Ym9hcmRBZnRlckZvY3VzVGltZW91dCIsInNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXNUaW1lb3V0IiwidXBkYXRlSGFzRXh0ZXJuYWxLZXlib2FyZEFmdGVyRm9jdXMiLCJjbG9zZWRWaXN1YWxWaWV3cG9ydEhlaWdodCIsInNldFRpbWVvdXQiLCJrZXlib2FyZEhlaWdodCIsInNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXMiLCJzY3JvbGxQYXJlbnQiLCJzY3JvbGxSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwicmVjdCIsImJvdHRvbSIsInRvcCIsIm5ld1Njcm9sbFRvcCIsInNjcm9sbFRvcCIsInNjcm9sbFRvIiwiYmVoYXZpb3IiLCJvbkZvY3VzSW4iLCJlIiwidGFyZ2V0Iiwib25Gb2N1c091dCIsImNsZWFyVGltZW91dCIsImNoZWNrRm9yRXh0ZXJuYWxLZXlib2FyZCIsImNyZWF0ZUVsZW1lbnQiLCJhdXRvZm9jdXMiLCJhZGRFdmVudExpc3RlbmVyIiwiYmx1ciIsInJlbW92ZSIsImFwcGVuZCIsInNldHVwTW9iaWxlRXZlbnRMaXN0ZW5lcnMiLCJib2R5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RvbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tICcuL2xvZ2dlcidcclxuXHJcbmNvbnN0IEtFWUJPQVJEX0FOSU1BVElPTl9NUyA9IDI1MFxyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgbmVhcmVzdCB2ZXJ0aWNhbGx5IHNjcm9sbGFibGUgcGFyZW50IG9mIGFuIGVsZW1lbnRcclxuICogQHBhcmFtIHsgSFRNTEVsZW1lbnQgfSBlbGVtZW50IC0gVGhlIGVsZW1lbnQgdG8gc3RhcnQgd2l0aFxyXG4gKiBAcmV0dXJucyBUaGUgbmVhcmVzdCB2ZXJ0aWNhbGx5IHNjcm9sbGFibGUgcGFyZW50IGVsZW1lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRWZXJ0aWNhbGx5U2Nyb2xsYWJsZVBhcmVudCA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xyXG5cdGxldCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudClcclxuXHRjb25zdCBleGNsdWRlU3RhdGljUGFyZW50ID0gc3R5bGUucG9zaXRpb24gPT09ICdhYnNvbHV0ZSdcclxuXHRjb25zdCBvdmVyZmxvd1JlZ2V4ID0gLyhhdXRvfHNjcm9sbHxoaWRkZW4pL1xyXG5cclxuXHRmb3IgKGxldCBwYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IGVsZW1lbnQ7IChwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudCk7ICkge1xyXG5cdFx0c3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHBhcmVudClcclxuXHRcdGlmIChleGNsdWRlU3RhdGljUGFyZW50ICYmIHN0eWxlLnBvc2l0aW9uID09PSAnc3RhdGljJykgY29udGludWVcclxuXHRcdGlmIChvdmVyZmxvd1JlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3cgKyBzdHlsZS5vdmVyZmxvd1kpICYmIHBhcmVudC5zY3JvbGxIZWlnaHQgPiBwYXJlbnQuY2xpZW50SGVpZ2h0KVxyXG5cdFx0XHRyZXR1cm4gcGFyZW50XHJcblx0fVxyXG5cdHJldHVybiBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgdGhlIGZpcnN0IHBhcmVudCB0aGF0IGhhcyB0aGUgZ2l2ZW4gY2xhc3NOYW1lIGluIGl0cyBjbGFzc0xpc3RcclxuICogQHBhcmFtIGVsZW1lbnQgVGhlIHRhcmdldCBlbGVtZW50XHJcbiAqIEBwYXJhbSBjbGFzc05hbWUgVGhlIGNsYXNzTmFtZSB0byBtYXRjaFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldEZpcnN0UGFyZW50RWxlbWVudFdpdGhDbGFzc05hbWUgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNsYXNzTmFtZTogc3RyaW5nKSA9PiB7XHJcblx0Zm9yIChsZXQgcGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbGVtZW50OyAocGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQpOyApIHtcclxuXHRcdGlmIChwYXJlbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIHJldHVybiBwYXJlbnRcclxuXHR9XHJcblx0cmV0dXJuIHVuZGVmaW5lZFxyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHdoZXRoZXIgdGhlIGRldmljZSBiZWluZyB1c2VkIGlzIG9uZSBvZiBzZXZlcmFsIG1haW5zdHJlYW0gbW9iaWxlIGRldmljZXNcclxuICovXHJcbmV4cG9ydCBjb25zdCBpc01vYmlsZURldmljZSA9ICgpID0+IHtcclxuXHRyZXR1cm4gKFxyXG5cdFx0L2FuZHJvaWR8aXBhZHxpcG9kfGlwaG9uZS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgfHxcclxuXHRcdCgvbWFjaW50b3NoL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMpXHJcblx0KVxyXG59XHJcblxyXG4vKiogUmV0dXJuIHdoZXRoZXIgdGhlIGRldmljZSBpcyB1c2luZyBhbiBleHRlcm5hbCBrZXlib2FyZCB2cy4gdGhlIG5hdGl2ZSBvbi1zY3JlZW4gT1Mga2V5Ym9hcmQuICovXHJcbmV4cG9ydCBjb25zdCBoYXNFeHRlcm5hbEtleWJvYXJkID0gKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQgPT4gKHdpbmRvdyBhcyBhbnkpLmhhc0V4dGVybmFsS2V5Ym9hcmRcclxuXHJcbi8qKlxyXG4gKiBTZXRzIGB3aW5kb3cuaGFzRXh0ZXJuYWxLZXlib2FyZGAsIHJldHVybmVkIGJ5IGBoYXNFeHRlcm5hbEtleWJvYXJkYC5cclxuICovXHJcbmNvbnN0IHNldEhhc0V4dGVybmFsS2V5Ym9hcmQgPSAoaGFzRXh0ZXJuYWxLZXlib2FyZDogYm9vbGVhbikgPT4ge1xyXG5cdGdldExvZ2dlcigpLmRlYnVnKCdoYXNFeHRlcm5hbEtleWJvYXJkJywgaGFzRXh0ZXJuYWxLZXlib2FyZClcclxuXHRjb25zdCB3aW5kb3dXaXRob3V0VHlwZSA9IHdpbmRvdyBhcyBhbnlcclxuXHR3aW5kb3dXaXRob3V0VHlwZS5oYXNFeHRlcm5hbEtleWJvYXJkID0gaGFzRXh0ZXJuYWxLZXlib2FyZFxyXG59XHJcblxyXG4vKipcclxuICogMTAwdmggaXMga2luZCBvZiBi4oqYcmtlZCBvbiBtb2JpbGUgc2FmYXJpLCB3ZSBoYXZlIHRvIHNldCBpdCBwcm9ncmFtbWF0aWNhbGx5IGhlcmVcclxuICogc28gd2UgY2FuIGNhbGN1bGF0ZSBkZXZpY2UtaW5kZXBlbmRlbnQgdmlld3BvcnQgaGVpZ2h0c1xyXG4gKiBodHRwczovL2FsbHRoaW5nc3NtaXR0eS5jb20vMjAyMC8wNS8xMS9jc3MtZml4LWZvci0xMDB2aC1pbi1tb2JpbGUtd2Via2l0L1xyXG4gKlxyXG4gKiBTZXRzIHRoZSBDU1MgdmFyaWFibGUgYC0tdmlzdWFsLXZpZXdwb3J0LWhlaWdodGAgb24gdGhlIGBkb2N1bWVudEVsZW1lbnRgLzxodG1sPi5cclxuICpcclxuICovXHJcbmNvbnN0IHNldFZpc3VhbFZpZXdwb3J0SGVpZ2h0VmFyID0gKCkgPT4ge1xyXG5cdGNvbnN0IGhlaWdodCA9IHZpc3VhbFZpZXdwb3J0ID8gdmlzdWFsVmlld3BvcnQuaGVpZ2h0IDogMFxyXG5cdGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS12aXN1YWwtdmlld3BvcnQtaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YClcclxufVxyXG5cclxuLyoqXHJcbiAqIElzIHRoZSBnaXZlbiBlbGVtZW50IGNhcGFibGUgb2YgdGV4dCBpbnB1dD9cclxuICpcclxuICogQHBhcmFtIGVsIEFuIEhUTUwgZWxlbWVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGlzVGV4dElucHV0ID0gKGVsOiBIVE1MRWxlbWVudCkgPT4ge1xyXG5cdGNvbnN0IHRhZ05hbWUgPSBlbC50YWdOYW1lICYmIGVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKVxyXG5cdGlmICh0YWdOYW1lID09PSAndGV4dGFyZWEnKSByZXR1cm4gdHJ1ZVxyXG5cdGlmICh0YWdOYW1lID09PSAnaW5wdXQnKSB7XHJcblx0XHRjb25zdCBpbnB1dEVsID0gZWwgYXMgSFRNTElucHV0RWxlbWVudFxyXG5cdFx0cmV0dXJuIGlucHV0RWwudHlwZSAhPT0gJ2J1dHRvbicgJiYgaW5wdXRFbC50eXBlICE9PSAncmFkaW8nICYmIGlucHV0RWwudHlwZSAhPT0gJ2NoZWNrYm94J1xyXG5cdH1cclxuXHQvLyBRdWlsbCBlZGl0b3JcclxuXHRyZXR1cm4gdGFnTmFtZSA9PT0gJ2RpdicgJiYgZWwuY2xhc3NOYW1lLmluY2x1ZGVzKCdxbC1lZGl0b3InKSAmJiBlbC5jb250ZW50RWRpdGFibGUgPT09ICd0cnVlJ1xyXG59XHJcblxyXG5sZXQgdXBkYXRlSGFzRXh0ZXJuYWxLZXlib2FyZEFmdGVyRm9jdXNUaW1lb3V0OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcclxubGV0IHNjcm9sbFRvRWxlbWVudEFmdGVyRm9jdXNUaW1lb3V0OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcclxuXHJcbmNvbnN0IHVwZGF0ZUhhc0V4dGVybmFsS2V5Ym9hcmRBZnRlckZvY3VzID0gKCkgPT4ge1xyXG5cdGNvbnN0IGNsb3NlZFZpc3VhbFZpZXdwb3J0SGVpZ2h0ID0gdmlzdWFsVmlld3BvcnQgPyB2aXN1YWxWaWV3cG9ydC5oZWlnaHQgOiAwXHJcblx0Ly8gd2FpdCBmb3IgdGhlIGtleWJvYXJkIGFuaW1hdGlvblxyXG5cdHVwZGF0ZUhhc0V4dGVybmFsS2V5Ym9hcmRBZnRlckZvY3VzVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdC8vIGZpbmQgdGhlIGtleWJvYXJkIGhlaWdodCBiYXNlZCBvbiB0aGUgZGlmZmVyZW5jZSBpbiB2aWV3cG9ydCBoZWlnaHRcclxuXHRcdGNvbnN0IGtleWJvYXJkSGVpZ2h0ID0gY2xvc2VkVmlzdWFsVmlld3BvcnRIZWlnaHQgLSAodmlzdWFsVmlld3BvcnQgPyB2aXN1YWxWaWV3cG9ydC5oZWlnaHQgOiAwKVxyXG5cdFx0Ly8gb24gZmlyc3QtbG9hZCB0aGUgaW5wdXQgZm9jdXMgY2FuIGZhaWxcclxuXHRcdC8vIHdoZW4gdGhpcyBoYXBwZW5zIHRoZSBoZWlnaHQgaXMgMCwgYW5kIHRoaXMgT05MWSBoYXBwZW5zIHdoZW4gdGhlcmUgaXMgTk9UIGFuIGV4dGVybmFsIGtleWJvYXJkXHJcblx0XHRpZiAoa2V5Ym9hcmRIZWlnaHQgPT09IDAgJiYgaGFzRXh0ZXJuYWxLZXlib2FyZCgpID09PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0c2V0SGFzRXh0ZXJuYWxLZXlib2FyZChmYWxzZSlcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIGlmIHRoZSBrZXlib2FyZCBoZWlnaHQgaXMgZ3JlYXRlciB0aGFuIDEwMCwgdGhhdCBtZWFucyB0aGUgZnVsbCBvbnNjcmVlbiBrZXlib2FyZCBkaXNwbGF5ZWRcclxuXHRcdFx0Ly8gb3RoZXJ3aXNlLCBvbmx5IHRoZSBzbWFsbCBjb250ZXh0IG1lbnUgZGlzcGxheWVkLCBtZWFuaW5nIHRoZXJlIGlzIGFuIGV4dGVybmFsIGtleWJvYXJkXHJcblx0XHRcdHNldEhhc0V4dGVybmFsS2V5Ym9hcmQoa2V5Ym9hcmRIZWlnaHQgPCAxMDApXHJcblx0XHR9XHJcblxyXG5cdFx0dXBkYXRlSGFzRXh0ZXJuYWxLZXlib2FyZEFmdGVyRm9jdXNUaW1lb3V0ID0gdW5kZWZpbmVkXHJcblx0fSwgS0VZQk9BUkRfQU5JTUFUSU9OX01TKVxyXG59XHJcblxyXG5jb25zdCBzY3JvbGxUb0VsZW1lbnRBZnRlckZvY3VzID0gKGVsOiBIVE1MRWxlbWVudCkgPT4ge1xyXG5cdC8vIHdhaXQgZm9yIHRoZSBrZXlib2FyZCBhbmltYXRpb25cclxuXHRzY3JvbGxUb0VsZW1lbnRBZnRlckZvY3VzVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdC8vIGFmdGVyIHRoZSBrZXlib2FyZCBpcyBvcGVuLCBjaGVjayBmb3IgdGhlIGVs4oCZcyBzY3JvbGxhYmxlIHBhcmVudCwgYXMgaXQgY291bGQgaGF2ZSBqdXN0IGJlY29tZSBzY3JvbGxhYmxlXHJcblx0XHRjb25zdCBzY3JvbGxQYXJlbnQgPSBnZXRWZXJ0aWNhbGx5U2Nyb2xsYWJsZVBhcmVudChlbClcclxuXHRcdC8vIGlmIHRoZSBlbCBoYXMgYSBzY3JvbGxhYmxlIHBhcmVudCBvdGhlciB0aGFuIHRoZSBkb2N1bWVudCwgc2Nyb2xsIGl0IGJhY2sgaW50byB2aWV3XHJcblx0XHRpZiAoc2Nyb2xsUGFyZW50ICYmIHNjcm9sbFBhcmVudCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XHJcblx0XHRcdGNvbnN0IHNjcm9sbFJlY3QgPSBzY3JvbGxQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuXHRcdFx0Y29uc3QgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcblx0XHRcdC8vIG9ubHkgc2Nyb2xsIGludG8gdmlldyBpZiBvdXRzaWRlIG9mIHRoZSBzY3JvbGwgcGFyZW50IGJvdW5kc1xyXG5cdFx0XHRpZiAocmVjdC5ib3R0b20gPCBzY3JvbGxSZWN0LnRvcCB8fCByZWN0LnRvcCA+IHNjcm9sbFJlY3QuYm90dG9tKSB7XHJcblx0XHRcdFx0Y29uc3QgbmV3U2Nyb2xsVG9wID0gc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCArIHJlY3QudG9wIC0gc2Nyb2xsUmVjdC50b3AgLSAxMFxyXG5cdFx0XHRcdGdldExvZ2dlcigpLmRlYnVnKCdzY3JvbGxUb0VsJywgbmV3U2Nyb2xsVG9wKVxyXG5cdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXHJcblx0XHRcdFx0aWYgKHNjcm9sbFBhcmVudC5zY3JvbGxUbykge1xyXG5cdFx0XHRcdFx0c2Nyb2xsUGFyZW50LnNjcm9sbFRvKHsgdG9wOiBuZXdTY3JvbGxUb3AsIGJlaGF2aW9yOiAnc21vb3RoJyB9KVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRzY3JvbGxQYXJlbnQuc2Nyb2xsVG9wID0gbmV3U2Nyb2xsVG9wXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0c2Nyb2xsVG9FbGVtZW50QWZ0ZXJGb2N1c1RpbWVvdXQgPSB1bmRlZmluZWRcclxuXHR9LCBLRVlCT0FSRF9BTklNQVRJT05fTVMpXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBFdmVudCBoYW5kbGVyIGZvciBcImZvY3VzaW5cIiBldmVudC5cclxuICpcclxuICogXCJmb2N1c2luXCIgYnViYmxlcyB1cCBmcm9tIGFsbCBmb2N1cyBldmVudHMsIHNvIHVzZXMgYGlzVGV4dElucHV0YCB0byBvbmx5IHJlYWN0IHRvIFwia2V5Ym9hcmRcIiBmb2N1cyBldmVudHMuXHJcbiAqXHJcbiAqIENoZWNrcyBmb3IgZXh0ZXJuYWwga2V5Ym9hcmQgYW5kIHNjcm9sbHMgdG8gdGhlIGZvY3VzZWQgZWxlbWVudCBhZnRlciBhbnkgYW5pbWF0aW9ucywgZS5nLiBrZXlib2FyZCBvcGVuLlxyXG4gKlxyXG4gKi9cclxuY29uc3Qgb25Gb2N1c0luID0gKGU6IEV2ZW50KSA9PiB7XHJcblx0aWYgKCFlLnRhcmdldCB8fCAhaXNUZXh0SW5wdXQoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSByZXR1cm5cclxuXHR1cGRhdGVIYXNFeHRlcm5hbEtleWJvYXJkQWZ0ZXJGb2N1cygpXHJcblx0c2Nyb2xsVG9FbGVtZW50QWZ0ZXJGb2N1cyhlLnRhcmdldCBhcyBIVE1MRWxlbWVudClcclxufVxyXG5cclxuLyoqXHJcbiAqIEV2ZW50IGhhbmRsZXIgZm9yIFwiZm9jdXNvdXRcIiBldmVudC5cclxuICpcclxuICogXCJmb2N1c291dFwiIGJ1YmJsZXMgdXAgZnJvbSBhbGwgZm9jdXMgZXZlbnRzLCBzbyB1c2VzIGBpc1RleHRJbnB1dGAgdG8gb25seSByZWFjdCB0byBcImtleWJvYXJkXCIgZm9jdXMgZXZlbnRzLlxyXG4gKlxyXG4gKiBDbGVhcnMgYW55IHBlbmRpbmcgdGltZW91dHMgZnJvbSBcImZvY3VzaW5cIiBldmVudHMuXHJcbiAqXHJcbiAqL1xyXG5jb25zdCBvbkZvY3VzT3V0ID0gKGU6IEV2ZW50KSA9PiB7XHJcblx0aWYgKCFlLnRhcmdldCB8fCAhaXNUZXh0SW5wdXQoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSByZXR1cm5cclxuXHRpZiAodXBkYXRlSGFzRXh0ZXJuYWxLZXlib2FyZEFmdGVyRm9jdXNUaW1lb3V0KSB7XHJcblx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KHVwZGF0ZUhhc0V4dGVybmFsS2V5Ym9hcmRBZnRlckZvY3VzVGltZW91dClcclxuXHRcdHVwZGF0ZUhhc0V4dGVybmFsS2V5Ym9hcmRBZnRlckZvY3VzVGltZW91dCA9IHVuZGVmaW5lZFxyXG5cdH1cclxuXHRpZiAoc2Nyb2xsVG9FbGVtZW50QWZ0ZXJGb2N1c1RpbWVvdXQpIHtcclxuXHRcdHdpbmRvdy5jbGVhclRpbWVvdXQoc2Nyb2xsVG9FbGVtZW50QWZ0ZXJGb2N1c1RpbWVvdXQpXHJcblx0XHRzY3JvbGxUb0VsZW1lbnRBZnRlckZvY3VzVGltZW91dCA9IHVuZGVmaW5lZFxyXG5cdH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrIGlmIHRoZSBkZXZpY2UgaXMgdXNpbmcgYW4gZXh0ZXJuYWwga2V5Ym9hcmQgYnkgYXBwZW5kaW5nIGFuIGBpbnB1dGAgYW5kIGZvY3VzaW5nIGl0LlxyXG4gKlxyXG4gKiBUaGlzIHdpbGwgdHJpZ2dlciB0aGUgYG9uRm9jdXNJbmAgZXZlbnQgaGFuZGxlciwgd2hpY2ggdXBkYXRlcyB0aGUgYGhhc0V4dGVybmFsS2V5Ym9hcmRgIGdsb2JhbC5cclxuICovXHJcbmNvbnN0IGNoZWNrRm9yRXh0ZXJuYWxLZXlib2FyZCA9ICgpID0+IHtcclxuXHRjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JylcclxuXHRlbC50eXBlID0gJ3RleHQnXHJcblx0ZWwuYXV0b2ZvY3VzID0gdHJ1ZVxyXG5cdGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCAoKSA9PiB7XHJcblx0XHQvLyByZW1vdmUgdGhlIGlucHV0IGFmdGVyIHRoZSBrZXlib2FyZCBoYXMgZGlzcGxheWVkLCBwbHVzIGEgc21hbGwgYnVmZmVyXHJcblx0XHR3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdGVsLmJsdXIoKVxyXG5cdFx0XHRlbC5yZW1vdmUoKVxyXG5cdFx0fSwgS0VZQk9BUkRfQU5JTUFUSU9OX01TICsgMTAwKVxyXG5cdH0pXHJcblx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZChlbClcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHNldHVwTW9iaWxlRXZlbnRMaXN0ZW5lcnMgPSAoKSA9PiB7XHJcblx0aWYgKCFpc01vYmlsZURldmljZSgpIHx8ICF2aXN1YWxWaWV3cG9ydCkgcmV0dXJuXHJcblxyXG5cdC8vIHNldCB2aWV3cG9ydCBoZWlnaHQgdmFyIGF0IHNldHVwXHJcblx0c2V0VmlzdWFsVmlld3BvcnRIZWlnaHRWYXIoKVxyXG5cclxuXHQvLyBhZGQgZXZlbnQgbGlzdGVuZXJzXHJcblx0dmlzdWFsVmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4ge1xyXG5cdFx0c2V0VmlzdWFsVmlld3BvcnRIZWlnaHRWYXIoKVxyXG5cclxuXHRcdC8vIGtlZXAgdGhlIGRvY3VtZW50IGVsZW1lbnQgc2Nyb2xsZWQgdG8gdGhlIHRvcCBpZiBhIFJlYWN0TW9kYWwgaXMgb3BlblxyXG5cdFx0aWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCdSZWFjdE1vZGFsX19Cb2R5LS1vcGVuJykpIHtcclxuXHRcdFx0ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA9IDBcclxuXHRcdH1cclxuXHR9KVxyXG5cdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgb25Gb2N1c0luKVxyXG5cdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIG9uRm9jdXNPdXQpXHJcblxyXG5cdC8vIGNoZWNrIGZvciBleHRlcm5hbCBrZXlib2FyZCBhdCBzZXR1cFxyXG5cdGNoZWNrRm9yRXh0ZXJuYWxLZXlib2FyZCgpXHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxP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
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDomainIdentifierTypePluralString = exports.getDomainIdentifierTypeString = void 0;
4
- var shard_1 = require("./shard");
5
- var getDomainIdentifierTypeString = function () {
6
- return shard_1.isPurdueShard() ? 'Purdue career account alias or PUID' : 'Email Address';
7
- };
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDomainIdentifierTypeString = exports.getDomainIdentifierTypePluralString = void 0;
7
+ var _shard = require("./shard");
8
+ const getDomainIdentifierTypeString = () => (0, _shard.isPurdueShard)() ? 'Purdue career account alias or PUID' : 'Email Address';
8
9
  exports.getDomainIdentifierTypeString = getDomainIdentifierTypeString;
9
- var getDomainIdentifierTypePluralString = function () {
10
- return shard_1.isPurdueShard() ? 'Purdue career account aliases or PUIDs' : 'Email Addresses';
11
- };
10
+ const getDomainIdentifierTypePluralString = () => (0, _shard.isPurdueShard)() ? 'Purdue career account aliases or PUIDs' : 'Email Addresses';
12
11
  exports.getDomainIdentifierTypePluralString = getDomainIdentifierTypePluralString;
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2hhcmQiLCJyZXF1aXJlIiwiZ2V0RG9tYWluSWRlbnRpZmllclR5cGVTdHJpbmciLCJpc1B1cmR1ZVNoYXJkIiwiZXhwb3J0cyIsImdldERvbWFpbklkZW50aWZpZXJUeXBlUGx1cmFsU3RyaW5nIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RvbWFpbklkZW50aWZpZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQdXJkdWVTaGFyZCB9IGZyb20gJy4vc2hhcmQnXHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RG9tYWluSWRlbnRpZmllclR5cGVTdHJpbmcgPSAoKSA9PlxyXG5cdGlzUHVyZHVlU2hhcmQoKSA/ICdQdXJkdWUgY2FyZWVyIGFjY291bnQgYWxpYXMgb3IgUFVJRCcgOiAnRW1haWwgQWRkcmVzcydcclxuXHJcbmV4cG9ydCBjb25zdCBnZXREb21haW5JZGVudGlmaWVyVHlwZVBsdXJhbFN0cmluZyA9ICgpID0+XHJcblx0aXNQdXJkdWVTaGFyZCgpID8gJ1B1cmR1ZSBjYXJlZXIgYWNjb3VudCBhbGlhc2VzIG9yIFBVSURzJyA6ICdFbWFpbCBBZGRyZXNzZXMnXHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRU8sTUFBTUMsNkJBQTZCLEdBQUdBLENBQUEsS0FDNUMsSUFBQUMsb0JBQWEsRUFBQyxDQUFDLEdBQUcscUNBQXFDLEdBQUcsZUFBZTtBQUFBQyxPQUFBLENBQUFGLDZCQUFBLEdBQUFBLDZCQUFBO0FBRW5FLE1BQU1HLG1DQUFtQyxHQUFHQSxDQUFBLEtBQ2xELElBQUFGLG9CQUFhLEVBQUMsQ0FBQyxHQUFHLHdDQUF3QyxHQUFHLGlCQUFpQjtBQUFBQyxPQUFBLENBQUFDLG1DQUFBLEdBQUFBLG1DQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.getRootModelName = void 0;
4
- var getRootModelName = function (props) { return props.modelName.split('.').slice(0, -1).join('.'); };
7
+ const getRootModelName = props => props.modelName.split('.').slice(0, -1).join('.');
5
8
  exports.getRootModelName = getRootModelName;
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRSb290TW9kZWxOYW1lIiwicHJvcHMiLCJtb2RlbE5hbWUiLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZW50aXR5VXNlclJvbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGdldFJvb3RNb2RlbE5hbWUgPSAocHJvcHM6IHsgbW9kZWxOYW1lOiBzdHJpbmcgfSkgPT4gcHJvcHMubW9kZWxOYW1lLnNwbGl0KCcuJykuc2xpY2UoMCwgLTEpLmpvaW4oJy4nKVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLE1BQU1BLGdCQUFnQixHQUFJQyxLQUE0QixJQUFLQSxLQUFLLENBQUNDLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxHQUFHLENBQUM7QUFBQUMsT0FBQSxDQUFBTixnQkFBQSxHQUFBQSxnQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1 +1 @@
1
- export declare const constructErrorFromCaughtError: (caughtError: unknown, name: string, message?: string | undefined) => Error;
1
+ export declare const constructErrorFromCaughtError: (caughtError: unknown, name: string, message?: string) => Error;
@@ -1,20 +1,22 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.constructErrorFromCaughtError = void 0;
4
- var constructErrorFromCaughtError = function (caughtError, name, message) {
5
- var error = new Error(message);
6
- error.name = name;
7
- if (caughtError instanceof Error) {
8
- error.message += "" + (message ? '.\n' : '') + (caughtError.name !== 'Error' ? caughtError.name + ": " : '') + caughtError.message;
9
- error.stack = caughtError.stack;
10
- // TODO: use `new Error(message, { cause: caughtError })` once we upgrade TS to allow es2022
11
- }
12
- else if (typeof caughtError === 'string') {
13
- error.message += "" + (message ? '.\n' : '') + caughtError;
14
- }
15
- else if (caughtError && typeof caughtError === 'object') {
16
- error.message += "" + (message ? '.\n' : '') + JSON.stringify(caughtError);
17
- }
18
- return error;
7
+ const constructErrorFromCaughtError = (caughtError, name, message) => {
8
+ const error = new Error(message);
9
+ error.name = name;
10
+ if (caughtError instanceof Error) {
11
+ error.message += `${message ? '.\n' : ''}${caughtError.name !== 'Error' ? `${caughtError.name}: ` : ''}${caughtError.message}`;
12
+ error.stack = caughtError.stack;
13
+ // TODO: use `new Error(message, { cause: caughtError })` once we upgrade TS to allow es2022
14
+ } else if (typeof caughtError === 'string') {
15
+ error.message += `${message ? '.\n' : ''}${caughtError}`;
16
+ } else if (caughtError && typeof caughtError === 'object') {
17
+ error.message += `${message ? '.\n' : ''}${JSON.stringify(caughtError)}`;
18
+ }
19
+ return error;
19
20
  };
20
21
  exports.constructErrorFromCaughtError = constructErrorFromCaughtError;
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25zdHJ1Y3RFcnJvckZyb21DYXVnaHRFcnJvciIsImNhdWdodEVycm9yIiwibmFtZSIsIm1lc3NhZ2UiLCJlcnJvciIsIkVycm9yIiwic3RhY2siLCJKU09OIiwic3RyaW5naWZ5IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgY29uc3RydWN0RXJyb3JGcm9tQ2F1Z2h0RXJyb3IgPSAoY2F1Z2h0RXJyb3I6IHVua25vd24sIG5hbWU6IHN0cmluZywgbWVzc2FnZT86IHN0cmluZykgPT4ge1xyXG5cdGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpXHJcblx0ZXJyb3IubmFtZSA9IG5hbWVcclxuXHRpZiAoY2F1Z2h0RXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xyXG5cdFx0ZXJyb3IubWVzc2FnZSArPSBgJHttZXNzYWdlID8gJy5cXG4nIDogJyd9JHtjYXVnaHRFcnJvci5uYW1lICE9PSAnRXJyb3InID8gYCR7Y2F1Z2h0RXJyb3IubmFtZX06IGAgOiAnJ30ke1xyXG5cdFx0XHRjYXVnaHRFcnJvci5tZXNzYWdlXHJcblx0XHR9YFxyXG5cdFx0ZXJyb3Iuc3RhY2sgPSBjYXVnaHRFcnJvci5zdGFja1xyXG5cdFx0Ly8gVE9ETzogdXNlIGBuZXcgRXJyb3IobWVzc2FnZSwgeyBjYXVzZTogY2F1Z2h0RXJyb3IgfSlgIG9uY2Ugd2UgdXBncmFkZSBUUyB0byBhbGxvdyBlczIwMjJcclxuXHR9IGVsc2UgaWYgKHR5cGVvZiBjYXVnaHRFcnJvciA9PT0gJ3N0cmluZycpIHtcclxuXHRcdGVycm9yLm1lc3NhZ2UgKz0gYCR7bWVzc2FnZSA/ICcuXFxuJyA6ICcnfSR7Y2F1Z2h0RXJyb3J9YFxyXG5cdH0gZWxzZSBpZiAoY2F1Z2h0RXJyb3IgJiYgdHlwZW9mIGNhdWdodEVycm9yID09PSAnb2JqZWN0Jykge1xyXG5cdFx0ZXJyb3IubWVzc2FnZSArPSBgJHttZXNzYWdlID8gJy5cXG4nIDogJyd9JHtKU09OLnN0cmluZ2lmeShjYXVnaHRFcnJvcil9YFxyXG5cdH1cclxuXHRyZXR1cm4gZXJyb3JcclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLE1BQU1BLDZCQUE2QixHQUFHQSxDQUFDQyxXQUFvQixFQUFFQyxJQUFZLEVBQUVDLE9BQWdCLEtBQUs7RUFDdEcsTUFBTUMsS0FBSyxHQUFHLElBQUlDLEtBQUssQ0FBQ0YsT0FBTyxDQUFDO0VBQ2hDQyxLQUFLLENBQUNGLElBQUksR0FBR0EsSUFBSTtFQUNqQixJQUFJRCxXQUFXLFlBQVlJLEtBQUssRUFBRTtJQUNqQ0QsS0FBSyxDQUFDRCxPQUFPLElBQUksR0FBR0EsT0FBTyxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUdGLFdBQVcsQ0FBQ0MsSUFBSSxLQUFLLE9BQU8sR0FBRyxHQUFHRCxXQUFXLENBQUNDLElBQUksSUFBSSxHQUFHLEVBQUUsR0FDckdELFdBQVcsQ0FBQ0UsT0FBTyxFQUNsQjtJQUNGQyxLQUFLLENBQUNFLEtBQUssR0FBR0wsV0FBVyxDQUFDSyxLQUFLO0lBQy9CO0VBQ0QsQ0FBQyxNQUFNLElBQUksT0FBT0wsV0FBVyxLQUFLLFFBQVEsRUFBRTtJQUMzQ0csS0FBSyxDQUFDRCxPQUFPLElBQUksR0FBR0EsT0FBTyxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUdGLFdBQVcsRUFBRTtFQUN6RCxDQUFDLE1BQU0sSUFBSUEsV0FBVyxJQUFJLE9BQU9BLFdBQVcsS0FBSyxRQUFRLEVBQUU7SUFDMURHLEtBQUssQ0FBQ0QsT0FBTyxJQUFJLEdBQUdBLE9BQU8sR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHSSxJQUFJLENBQUNDLFNBQVMsQ0FBQ1AsV0FBVyxDQUFDLEVBQUU7RUFDekU7RUFDQSxPQUFPRyxLQUFLO0FBQ2IsQ0FBQztBQUFBSyxPQUFBLENBQUFULDZCQUFBLEdBQUFBLDZCQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -1,38 +1,45 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
6
7
  exports.trackCustomEvent = void 0;
7
- var react_ga4_1 = __importDefault(require("react-ga4"));
8
- var constants_1 = require("../constants");
9
- /**
10
- * Send an event to Google Analytics and App Insights
11
- * @param event
8
+ var _reactGa = _interopRequireDefault(require("react-ga4"));
9
+ var _constants = require("../constants");
10
+ /**
11
+ * Send an event to Google Analytics and App Insights
12
+ * @param event
12
13
  */
13
- var trackCustomEvent = function (event) {
14
- var eventName = event.eventName, category = event.category, action = event.action, label = event.label;
15
- var userId = constants_1.getUserId();
16
- var appConfig = constants_1.getAppConfig();
17
- if (appConfig.GOOGLE_ANALYTICS_TRACKING_ID) {
18
- react_ga4_1.default.event(eventName, {
19
- event_category: category,
20
- action: action,
21
- event_label: label,
22
- user_id: userId
23
- });
24
- }
25
- if (appConfig.APP_INSIGHTS_CONNECTION_STRING) {
26
- var appInsights = constants_1.getAppInsights();
27
- appInsights.trackEvent({
28
- name: eventName,
29
- properties: {
30
- category: category,
31
- action: action,
32
- label: label,
33
- userId: userId
34
- }
35
- });
36
- }
14
+ const trackCustomEvent = event => {
15
+ const {
16
+ eventName,
17
+ category,
18
+ action,
19
+ label
20
+ } = event;
21
+ const userId = (0, _constants.getUserId)();
22
+ const appConfig = (0, _constants.getAppConfig)();
23
+ if (appConfig.GOOGLE_ANALYTICS_TRACKING_ID) {
24
+ _reactGa.default.event(eventName, {
25
+ event_category: category,
26
+ action: action,
27
+ event_label: label,
28
+ user_id: userId
29
+ });
30
+ }
31
+ if (appConfig.APP_INSIGHTS_CONNECTION_STRING) {
32
+ const appInsights = (0, _constants.getAppInsights)();
33
+ appInsights.trackEvent({
34
+ name: eventName,
35
+ properties: {
36
+ category: category,
37
+ action: action,
38
+ label: label,
39
+ userId: userId
40
+ }
41
+ });
42
+ }
37
43
  };
38
44
  exports.trackCustomEvent = trackCustomEvent;
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RHYSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NvbnN0YW50cyIsInRyYWNrQ3VzdG9tRXZlbnQiLCJldmVudCIsImV2ZW50TmFtZSIsImNhdGVnb3J5IiwiYWN0aW9uIiwibGFiZWwiLCJ1c2VySWQiLCJnZXRVc2VySWQiLCJhcHBDb25maWciLCJnZXRBcHBDb25maWciLCJHT09HTEVfQU5BTFlUSUNTX1RSQUNLSU5HX0lEIiwiZ2EiLCJldmVudF9jYXRlZ29yeSIsImV2ZW50X2xhYmVsIiwidXNlcl9pZCIsIkFQUF9JTlNJR0hUU19DT05ORUNUSU9OX1NUUklORyIsImFwcEluc2lnaHRzIiwiZ2V0QXBwSW5zaWdodHMiLCJ0cmFja0V2ZW50IiwibmFtZSIsInByb3BlcnRpZXMiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2V2ZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2EgZnJvbSAncmVhY3QtZ2E0J1xyXG5pbXBvcnQgeyBnZXRBcHBDb25maWcsIGdldEFwcEluc2lnaHRzLCBnZXRVc2VySWQgfSBmcm9tICcuLi9jb25zdGFudHMnXHJcbmltcG9ydCB7IEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vdHlwZXMvRXZlbnQnXHJcblxyXG4vKipcclxuICogU2VuZCBhbiBldmVudCB0byBHb29nbGUgQW5hbHl0aWNzIGFuZCBBcHAgSW5zaWdodHNcclxuICogQHBhcmFtIGV2ZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgdHJhY2tDdXN0b21FdmVudCA9IChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcclxuXHRjb25zdCB7IGV2ZW50TmFtZSwgY2F0ZWdvcnksIGFjdGlvbiwgbGFiZWwgfSA9IGV2ZW50XHJcblx0Y29uc3QgdXNlcklkID0gZ2V0VXNlcklkKClcclxuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxyXG5cdGlmIChhcHBDb25maWcuR09PR0xFX0FOQUxZVElDU19UUkFDS0lOR19JRCkge1xyXG5cdFx0Z2EuZXZlbnQoZXZlbnROYW1lLCB7XHJcblx0XHRcdGV2ZW50X2NhdGVnb3J5OiBjYXRlZ29yeSxcclxuXHRcdFx0YWN0aW9uOiBhY3Rpb24sXHJcblx0XHRcdGV2ZW50X2xhYmVsOiBsYWJlbCxcclxuXHRcdFx0dXNlcl9pZDogdXNlcklkXHJcblx0XHR9KVxyXG5cdH1cclxuXHRpZiAoYXBwQ29uZmlnLkFQUF9JTlNJR0hUU19DT05ORUNUSU9OX1NUUklORykge1xyXG5cdFx0Y29uc3QgYXBwSW5zaWdodHMgPSBnZXRBcHBJbnNpZ2h0cygpXHJcblx0XHRhcHBJbnNpZ2h0cy50cmFja0V2ZW50KHtcclxuXHRcdFx0bmFtZTogZXZlbnROYW1lLFxyXG5cdFx0XHRwcm9wZXJ0aWVzOiB7XHJcblx0XHRcdFx0Y2F0ZWdvcnk6IGNhdGVnb3J5LFxyXG5cdFx0XHRcdGFjdGlvbjogYWN0aW9uLFxyXG5cdFx0XHRcdGxhYmVsOiBsYWJlbCxcclxuXHRcdFx0XHR1c2VySWQ6IHVzZXJJZFxyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1FLGdCQUFnQixHQUFJQyxLQUFrQixJQUFLO0VBQ3ZELE1BQU07SUFBRUMsU0FBUztJQUFFQyxRQUFRO0lBQUVDLE1BQU07SUFBRUM7RUFBTSxDQUFDLEdBQUdKLEtBQUs7RUFDcEQsTUFBTUssTUFBTSxHQUFHLElBQUFDLG9CQUFTLEVBQUMsQ0FBQztFQUMxQixNQUFNQyxTQUFTLEdBQUcsSUFBQUMsdUJBQVksRUFBQyxDQUFDO0VBQ2hDLElBQUlELFNBQVMsQ0FBQ0UsNEJBQTRCLEVBQUU7SUFDM0NDLGdCQUFFLENBQUNWLEtBQUssQ0FBQ0MsU0FBUyxFQUFFO01BQ25CVSxjQUFjLEVBQUVULFFBQVE7TUFDeEJDLE1BQU0sRUFBRUEsTUFBTTtNQUNkUyxXQUFXLEVBQUVSLEtBQUs7TUFDbEJTLE9BQU8sRUFBRVI7SUFDVixDQUFDLENBQUM7RUFDSDtFQUNBLElBQUlFLFNBQVMsQ0FBQ08sOEJBQThCLEVBQUU7SUFDN0MsTUFBTUMsV0FBVyxHQUFHLElBQUFDLHlCQUFjLEVBQUMsQ0FBQztJQUNwQ0QsV0FBVyxDQUFDRSxVQUFVLENBQUM7TUFDdEJDLElBQUksRUFBRWpCLFNBQVM7TUFDZmtCLFVBQVUsRUFBRTtRQUNYakIsUUFBUSxFQUFFQSxRQUFRO1FBQ2xCQyxNQUFNLEVBQUVBLE1BQU07UUFDZEMsS0FBSyxFQUFFQSxLQUFLO1FBQ1pDLE1BQU0sRUFBRUE7TUFDVDtJQUNELENBQUMsQ0FBQztFQUNIO0FBQ0QsQ0FBQztBQUFBZSxPQUFBLENBQUFyQixnQkFBQSxHQUFBQSxnQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==