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.
- package/LICENSE +21 -21
- package/README.md +137 -137
- package/lib/components/ActionList.d.ts +2 -2
- package/lib/components/ActionList.js +87 -166
- package/lib/components/AlertDialog.d.ts +3 -3
- package/lib/components/AlertDialog.js +18 -133
- package/lib/components/AlertWithIcon.js +52 -93
- package/lib/components/ConnectedModal.d.ts +2 -1
- package/lib/components/ConnectedModal.js +37 -43
- package/lib/components/Dropdowns/GroupsDropdown.d.ts +4 -4
- package/lib/components/Dropdowns/GroupsDropdown.js +82 -69
- package/lib/components/Dropdowns/ManagedNavDropdown.d.ts +2 -2
- package/lib/components/Dropdowns/ManagedNavDropdown.js +111 -99
- package/lib/components/Dropdowns/UserDropdown.js +70 -109
- package/lib/components/Dropdowns/index.js +11 -27
- package/lib/components/EntityOwnerList.d.ts +3 -3
- package/lib/components/EntityOwnerList.js +60 -52
- package/lib/components/Error.js +27 -107
- package/lib/components/ErrorBoundary.js +94 -133
- package/lib/components/ErrorMessage.d.ts +2 -2
- package/lib/components/ErrorMessage.js +14 -44
- package/lib/components/Forms/DateField.d.ts +2 -2
- package/lib/components/Forms/DateField.js +95 -63
- package/lib/components/Forms/TimeField.d.ts +2 -2
- package/lib/components/Forms/TimeField.js +108 -84
- package/lib/components/Forms/index.js +13 -27
- package/lib/components/Groups/CreateEditCopySaveButtons.d.ts +2 -2
- package/lib/components/Groups/CreateEditCopySaveButtons.js +14 -102
- package/lib/components/Groups/ExternalGroups/Attach.d.ts +7 -6
- package/lib/components/Groups/ExternalGroups/Attach.js +188 -213
- package/lib/components/Groups/ExternalGroups/Table.js +76 -183
- package/lib/components/Groups/GroupCreateOrEditCommonProps.js +1 -5
- package/lib/components/Groups/RosterSyncInfo.js +49 -140
- package/lib/components/HOC/AccessibleAppComponent.d.ts +2 -2
- package/lib/components/HOC/AccessibleAppComponent.js +124 -101
- package/lib/components/HOC/ActivityRequiredComponent.d.ts +14 -14
- package/lib/components/HOC/ActivityRequiredComponent.js +107 -93
- package/lib/components/HOC/AsyncComponent.d.ts +9 -9
- package/lib/components/HOC/AsyncComponent.js +129 -53
- package/lib/components/HOC/AuthenticatedComponent.d.ts +4 -4
- package/lib/components/HOC/AuthenticatedComponent.js +96 -59
- package/lib/components/HOC/CollectionComponent.d.ts +12 -12
- package/lib/components/HOC/CollectionComponent.js +171 -171
- package/lib/components/HOC/CollectionFirstItemComponent.d.ts +13 -13
- package/lib/components/HOC/CollectionFirstItemComponent.js +94 -52
- package/lib/components/HOC/CollectionItemComponent.d.ts +9 -9
- package/lib/components/HOC/CollectionItemComponent.js +168 -169
- package/lib/components/HOC/ConnectedModalComponent.d.ts +9 -9
- package/lib/components/HOC/ConnectedModalComponent.js +140 -110
- package/lib/components/HOC/DataDependentComponent.d.ts +55 -3
- package/lib/components/HOC/DataDependentComponent.js +79 -30
- package/lib/components/HOC/EntityComponent.d.ts +13 -13
- package/lib/components/HOC/EntityComponent.js +112 -74
- package/lib/components/HOC/FullscreenModalComponent.d.ts +9 -9
- package/lib/components/HOC/FullscreenModalComponent.js +185 -165
- package/lib/components/HOC/GroupActivityRequiredComponent.d.ts +2 -2
- package/lib/components/HOC/GroupActivityRequiredComponent.js +47 -48
- package/lib/components/HOC/GuidComponent.d.ts +1 -1
- package/lib/components/HOC/GuidComponent.js +68 -29
- package/lib/components/HOC/ModelContextDependencyVerifyComponent.d.ts +29 -28
- package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +65 -42
- package/lib/components/HOC/ModelErrorRedirectComponent.d.ts +10 -10
- package/lib/components/HOC/ModelErrorRedirectComponent.js +94 -51
- package/lib/components/HOC/SearchPersistorComponent.d.ts +4 -4
- package/lib/components/HOC/SearchPersistorComponent.js +216 -243
- package/lib/components/HOC/UnauthenticatedComponent.d.ts +12 -12
- package/lib/components/HOC/UnauthenticatedComponent.js +82 -37
- package/lib/components/HOC/UserComponent.d.ts +1 -1
- package/lib/components/HOC/UserComponent.js +11 -12
- package/lib/components/Icons/IconAlphaList.js +20 -34
- package/lib/components/Icons/IconExternalUser.js +20 -34
- package/lib/components/Icons/IconImpersonation.js +20 -34
- package/lib/components/Icons/IconStopImpersonating.js +20 -34
- package/lib/components/Icons/IconTable.js +21 -35
- package/lib/components/Icons/IconTableDeleteCol.js +20 -34
- package/lib/components/Icons/IconTableDeleteRow.js +20 -34
- package/lib/components/Icons/IconTableInsertCol.js +20 -34
- package/lib/components/Icons/IconTableInsertRow.js +20 -34
- package/lib/components/Impersonation/Button.d.ts +2 -2
- package/lib/components/Impersonation/Button.js +56 -76
- package/lib/components/Impersonation/Link.d.ts +2 -2
- package/lib/components/Impersonation/Link.js +53 -76
- package/lib/components/Impersonation/UserDetail.css +22 -22
- package/lib/components/Impersonation/UserDetail.d.ts +2 -2
- package/lib/components/Impersonation/UserDetail.js +17 -66
- package/lib/components/Loading.js +21 -27
- package/lib/components/LockDownBrowser/Check.js +107 -194
- package/lib/components/LockDownBrowser/ExitButton.js +14 -27
- package/lib/components/LockDownBrowser/Launch.js +85 -70
- package/lib/components/Lti/Confirm.js +33 -152
- package/lib/components/Lti/CreateNonLtiGroupAlertDialog.d.ts +2 -4
- package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +78 -170
- package/lib/components/Lti/Launch.js +49 -105
- package/lib/components/Lti/LaunchGroup.js +39 -85
- package/lib/components/ManageTable.d.ts +2 -1
- package/lib/components/ManageTable.js +104 -309
- package/lib/components/ManageTableNoDataComponent.js +22 -42
- package/lib/components/NewVersionAlert.d.ts +2 -2
- package/lib/components/NewVersionAlert.js +91 -82
- package/lib/components/NotFound.js +28 -87
- package/lib/components/Notifications.d.ts +4 -4
- package/lib/components/Notifications.js +169 -187
- package/lib/components/PaginationNextButton.js +21 -33
- package/lib/components/PaginationPreviousButton.js +21 -33
- package/lib/components/Quill/CustomToolbar.d.ts +2 -2
- package/lib/components/Quill/CustomToolbar.js +257 -432
- package/lib/components/Quill/Formats/Image.d.ts +25 -10
- package/lib/components/Quill/Formats/Image.js +86 -80
- package/lib/components/Quill/Formats/List.d.ts +3 -6
- package/lib/components/Quill/Formats/List.js +74 -52
- package/lib/components/Quill/Formats/Video.d.ts +1 -2
- package/lib/components/Quill/Formats/Video.js +45 -31
- package/lib/components/Quill/ImageDropModule.d.ts +1 -1
- package/lib/components/Quill/ImageDropModule.js +122 -149
- package/lib/components/Quill/ImageWarning.d.ts +2 -2
- package/lib/components/Quill/ImageWarning.js +32 -45
- package/lib/components/Quill/ImageWithAltTextModal.d.ts +1 -0
- package/lib/components/Quill/ImageWithAltTextModal.js +141 -425
- package/lib/components/Quill/Specs/CustomImageSpec.d.ts +1 -1
- package/lib/components/Quill/Specs/CustomImageSpec.js +51 -43
- package/lib/components/Quill/Specs/CustomVideoSpec.d.ts +1 -1
- package/lib/components/Quill/Specs/CustomVideoSpec.js +44 -35
- package/lib/components/Quill/TableModule/Blots/BaseTableBlot.d.ts +1 -2
- package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +121 -105
- package/lib/components/Quill/TableModule/Blots/TableBlot.js +66 -53
- package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +67 -54
- package/lib/components/Quill/TableModule/Blots/TableCellBlot.d.ts +1 -1
- package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +241 -225
- package/lib/components/Quill/TableModule/Blots/TableContainer.js +99 -82
- package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +87 -76
- package/lib/components/Quill/TableModule/constants.js +41 -45
- package/lib/components/Quill/TableModule/index.css +171 -171
- package/lib/components/Quill/TableModule/index.d.ts +5 -14
- package/lib/components/Quill/TableModule/index.js +313 -373
- package/lib/components/Quill/TableModule/utils.js +45 -45
- package/lib/components/Quill/accessibilityFix.d.ts +1 -0
- package/lib/components/Quill/accessibilityFix.js +251 -235
- package/lib/components/Quill/index.js +32 -36
- package/lib/components/RefreshIndicator/Bordered.js +32 -48
- package/lib/components/RefreshIndicator/Inline.js +33 -48
- package/lib/components/RefreshIndicator/index.d.ts +2 -2
- package/lib/components/RefreshIndicator/index.js +113 -263
- package/lib/components/SearchControls.js +31 -216
- package/lib/components/SentryRoute.js +23 -10
- package/lib/components/Tables/RoleFilter.d.ts +4 -3
- package/lib/components/Tables/RoleFilter.js +46 -71
- package/lib/components/Tables/TextFilter.d.ts +3 -2
- package/lib/components/Tables/TextFilter.js +20 -62
- package/lib/components/UserRoles/Add.d.ts +3 -3
- package/lib/components/UserRoles/Add.js +161 -199
- package/lib/components/UserRoles/Context.js +9 -11
- package/lib/components/UserRoles/RoleCell.js +100 -180
- package/lib/components/UserRoles/Select.js +54 -157
- package/lib/components/UserRoles/Table.js +102 -221
- package/lib/components/UserRoles/index.d.ts +6 -6
- package/lib/components/UserRoles/index.js +466 -537
- package/lib/config/eslint/index.cjs +21 -0
- package/lib/config/eslint/lib/order.cjs +22 -0
- package/lib/config/eslint/lib/prettier.cjs +18 -0
- package/lib/config/eslint/lib/typescript.cjs +86 -0
- package/lib/config/eslint/react.cjs +9 -0
- package/lib/constants/baseActivity.js +26 -30
- package/lib/constants/baseRole.js +10 -14
- package/lib/constants/configuration.d.ts +1 -1
- package/lib/constants/configuration.js +39 -43
- package/lib/constants/externalProviderType.js +6 -10
- package/lib/constants/fetchErrorData.js +11 -15
- package/lib/constants/index.js +23 -137
- package/lib/constants/lockDownBrowser.js +24 -28
- package/lib/constants/mockData.d.ts +6 -4
- package/lib/constants/mockData.js +326 -385
- package/lib/constants/modelStatus.js +11 -15
- package/lib/constants/notificationType.js +8 -12
- package/lib/constants/operatingSystem.js +8 -12
- package/lib/constants/shard.js +7 -11
- package/lib/constants/table.js +21 -21
- package/lib/constants/tier.js +8 -12
- package/lib/constants/userRole.d.ts +2 -1
- package/lib/constants/userRole.js +17 -15
- package/lib/css/base/_base.css +98 -98
- package/lib/css/base/_typography.css +130 -130
- package/lib/css/components/_alert.css +86 -86
- package/lib/css/components/_bootstrap-grid.css +28 -28
- package/lib/css/components/_buttons.css +397 -397
- package/lib/css/components/_forms.css +101 -101
- package/lib/css/components/_menu.css +56 -56
- package/lib/css/components/_modals.css +46 -46
- package/lib/css/components/_quill.css +315 -315
- package/lib/css/components/_tables.css +497 -497
- package/lib/css/components/_tags.css +12 -12
- package/lib/css/index-with-variables.css +15 -15
- package/lib/css/index.css +14 -14
- package/lib/css/utils/_border.css +463 -463
- package/lib/css/utils/_color.css +317 -317
- package/lib/css/utils/_display.css +312 -305
- package/lib/css/utils/_general.css +48 -48
- package/lib/css/utils/_icon.css +16 -16
- package/lib/css/utils/_text.css +24 -25
- package/lib/css/utils/_width.css +60 -60
- package/lib/css/variables.css +84 -84
- package/lib/endpointMappings.js +193 -197
- package/lib/hooks/useCollection.js +65 -83
- package/lib/hooks/useCollectionConfiguration.d.ts +1 -0
- package/lib/hooks/useCollectionConfiguration.js +88 -185
- package/lib/hooks/useCollectionItem.js +58 -155
- package/lib/hooks/useGuid.js +10 -21
- package/lib/hooks/usePrevious.d.ts +1 -24
- package/lib/hooks/usePrevious.js +14 -84
- package/lib/index.js +36 -156
- package/lib/redux/actionCreator.d.ts +6 -6
- package/lib/redux/actionCreator.js +40 -51
- package/lib/redux/actions/AuthAction.js +31 -44
- package/lib/redux/actions/ModalAction.d.ts +1 -1
- package/lib/redux/actions/ModalAction.js +6 -10
- package/lib/redux/actions/ModelAction.d.ts +1 -1
- package/lib/redux/actions/ModelAction.js +49 -77
- package/lib/redux/actions/NotificationAction.js +6 -10
- package/lib/redux/actions/SearchAction.js +5 -9
- package/lib/redux/actions/index.js +16 -60
- package/lib/redux/configureReducers.d.ts +5 -2
- package/lib/redux/configureReducers.js +78 -67
- package/lib/redux/configureStore.d.ts +2 -2
- package/lib/redux/configureStore.js +115 -83
- package/lib/redux/helpers.js +2 -7
- package/lib/redux/reducers/authReducer.js +46 -52
- package/lib/redux/reducers/index.js +15 -41
- package/lib/redux/reducers/modalsReducer.js +52 -49
- package/lib/redux/reducers/modelsReducer.d.ts +2 -2
- package/lib/redux/reducers/modelsReducer.js +182 -183
- package/lib/redux/reducers/notificationsReducer.js +21 -26
- package/lib/redux/reducers/searchReducer.js +20 -26
- package/lib/redux/sagas/appInsightsSaga.js +62 -24
- package/lib/redux/sagas/authSaga.js +414 -287
- package/lib/redux/sagas/caliperSaga.js +263 -169
- package/lib/redux/sagas/clockOffsetSaga.js +77 -36
- package/lib/redux/sagas/configurationSaga.js +46 -13
- package/lib/redux/sagas/downtimeApiErrorSaga.d.ts +1 -0
- package/lib/redux/sagas/downtimeApiErrorSaga.js +64 -23
- package/lib/redux/sagas/errorSaga.d.ts +1 -0
- package/lib/redux/sagas/errorSaga.js +63 -29
- package/lib/redux/sagas/googleAnalyticsSaga.js +69 -29
- package/lib/redux/sagas/identityProviderSaga.js +69 -24
- package/lib/redux/sagas/initialDataLoadSaga.js +29 -38
- package/lib/redux/sagas/lockDownBrowserErrorSaga.d.ts +1 -0
- package/lib/redux/sagas/lockDownBrowserErrorSaga.js +81 -32
- package/lib/redux/sagas/modelFetchSaga.js +459 -379
- package/lib/redux/sagas/noStoreSaga.d.ts +1 -1
- package/lib/redux/sagas/noStoreSaga.js +101 -68
- package/lib/redux/sagas/postLoginDataSaga.js +79 -47
- package/lib/redux/sagas/postLoginRedirectSaga.js +71 -30
- package/lib/redux/sagas/rootSaga.js +137 -85
- package/lib/redux/sagas/sentrySaga.js +85 -29
- package/lib/redux/sagas/userIdSaga.js +54 -18
- package/lib/services/codeProviderService.js +29 -25
- package/lib/services/dateService.js +12 -14
- package/lib/services/documentService.js +13 -18
- package/lib/services/fetchService.js +168 -134
- package/lib/services/persistenceService.d.ts +4 -4
- package/lib/services/persistenceService.js +43 -45
- package/lib/services/ticketProviderService.js +33 -29
- package/lib/services/tokenPersistenceService.js +9 -13
- package/lib/services/windowService.js +17 -21
- package/lib/startup.d.ts +1 -1
- package/lib/startup.js +135 -132
- package/lib/types/AppConfiguration.js +1 -5
- package/lib/types/Artifact.js +7 -11
- package/lib/types/BaseReduxState.js +1 -5
- package/lib/types/Client.js +1 -5
- package/lib/types/Collection.d.ts +3 -3
- package/lib/types/Collection.js +1 -5
- package/lib/types/Configuration.js +1 -5
- package/lib/types/DeepLinkingResponseRequest.js +1 -5
- package/lib/types/DeletableModel.js +1 -5
- package/lib/types/Event.js +1 -5
- package/lib/types/ExternalGroup.js +1 -5
- package/lib/types/ExternalProvider.js +1 -5
- package/lib/types/ExternalTerm.js +1 -5
- package/lib/types/Group.js +1 -5
- package/lib/types/IdentityProvider.js +1 -5
- package/lib/types/LtiLaunch.js +1 -5
- package/lib/types/NameOnlyEntity.js +1 -5
- package/lib/types/Notification.d.ts +2 -2
- package/lib/types/Notification.js +1 -5
- package/lib/types/OptionalRecord.d.ts +1 -1
- package/lib/types/OptionalRecord.js +1 -5
- package/lib/types/OwnerSchedule.d.ts +1 -3
- package/lib/types/OwnerSchedule.js +1 -5
- package/lib/types/PropertyOfType.d.ts +3 -3
- package/lib/types/PropertyOfType.js +1 -5
- package/lib/types/Quill.js +1 -5
- package/lib/types/RoleDescription.d.ts +1 -0
- package/lib/types/RoleDescription.js +1 -5
- package/lib/types/Search.js +1 -5
- package/lib/types/SimpleLocation.js +1 -5
- package/lib/types/UniTime.js +1 -5
- package/lib/types/User.js +1 -5
- package/lib/types/UserRole.js +1 -5
- package/lib/types/auth/AuthState.js +1 -5
- package/lib/types/auth/CasV1LoginRequestBody.js +1 -5
- package/lib/types/auth/ClientCredentials.js +1 -5
- package/lib/types/auth/CodeProviderService.js +1 -5
- package/lib/types/auth/LocalLoginRequestBody.js +1 -5
- package/lib/types/auth/TicketProviderService.js +1 -5
- package/lib/types/auth/TokenPersistenceService.js +1 -5
- package/lib/types/auth/index.js +18 -82
- package/lib/types/index.js +39 -313
- package/lib/types/net/EndpointConfig.js +1 -5
- package/lib/types/net/EndpointMapping.js +1 -5
- package/lib/types/net/EndpointMappings.js +1 -5
- package/lib/types/net/ErrorHandler.d.ts +1 -1
- package/lib/types/net/ErrorHandler.js +1 -5
- package/lib/types/net/FetchConfig.d.ts +1 -1
- package/lib/types/net/FetchConfig.js +1 -5
- package/lib/types/net/FetchErrorData.js +6 -10
- package/lib/types/net/FetchResult.d.ts +2 -2
- package/lib/types/net/FetchResult.js +1 -5
- package/lib/types/net/HTTPMethod.d.ts +1 -1
- package/lib/types/net/HTTPMethod.js +1 -5
- package/lib/types/net/HTTPStatusCode.js +12 -16
- package/lib/types/net/Metadata.js +1 -5
- package/lib/types/net/Model.js +1 -5
- package/lib/types/net/ModelCollection.js +1 -5
- package/lib/types/net/ModelsState.js +1 -5
- package/lib/types/net/OAuthToken.js +1 -5
- package/lib/types/net/OAuthTokenOrNull.d.ts +1 -1
- package/lib/types/net/OAuthTokenOrNull.js +1 -5
- package/lib/types/net/TokenAccessFunction.d.ts +1 -1
- package/lib/types/net/TokenAccessFunction.js +1 -5
- package/lib/types/net/index.js +27 -181
- package/lib/utils/baseActivity.d.ts +2 -2
- package/lib/utils/baseActivity.js +136 -138
- package/lib/utils/baseRole.js +33 -37
- package/lib/utils/collection.js +310 -432
- package/lib/utils/cookies.js +37 -22
- package/lib/utils/date.js +320 -320
- package/lib/utils/dom.js +174 -186
- package/lib/utils/domainIdentifier.js +9 -9
- package/lib/utils/entityUserRole.js +2 -6
- package/lib/utils/error.d.ts +1 -1
- package/lib/utils/error.js +16 -18
- package/lib/utils/events.js +33 -40
- package/lib/utils/externalGroup.js +21 -25
- package/lib/utils/externalProviders.js +4 -8
- package/lib/utils/externalTerms.js +6 -9
- package/lib/utils/fetch.d.ts +1 -1
- package/lib/utils/fetch.js +185 -188
- package/lib/utils/group.js +9 -17
- package/lib/utils/groupDates.d.ts +1 -1
- package/lib/utils/groupDates.js +39 -43
- package/lib/utils/groupRoles.js +28 -28
- package/lib/utils/lockDownBrowser.js +12 -16
- package/lib/utils/logger.js +25 -30
- package/lib/utils/lti.js +5 -10
- package/lib/utils/model.d.ts +2 -2
- package/lib/utils/model.js +48 -39
- package/lib/utils/number.js +26 -23
- package/lib/utils/promise.d.ts +1 -6
- package/lib/utils/promise.js +15 -34
- package/lib/utils/quill.js +77 -66
- package/lib/utils/route.d.ts +2 -2
- package/lib/utils/route.js +60 -61
- package/lib/utils/search.d.ts +1 -1
- package/lib/utils/search.js +85 -78
- package/lib/utils/shard.js +41 -38
- package/lib/utils/sort.d.ts +3 -3
- package/lib/utils/sort.js +58 -62
- package/lib/utils/string.js +10 -14
- package/lib/utils/table.d.ts +3 -3
- package/lib/utils/table.js +36 -39
- package/lib/utils/timezone.js +26 -12
- package/lib/utils/url.d.ts +1 -2
- package/lib/utils/url.js +201 -146
- package/lib/utils/user.js +61 -59
- package/lib/utils/userAgent.js +11 -11
- package/lib/utils/userRole.d.ts +3 -3
- package/lib/utils/userRole.js +56 -58
- package/package.json +207 -226
- package/lib/config/eslint/index.d.ts +0 -2
- package/lib/config/eslint/index.js +0 -36
- package/lib/config/eslint/lib/order.d.ts +0 -3
- package/lib/config/eslint/lib/order.js +0 -30
- package/lib/config/eslint/lib/prettier.d.ts +0 -3
- package/lib/config/eslint/lib/prettier.js +0 -23
- package/lib/config/eslint/lib/typescript.d.ts +0 -2
- package/lib/config/eslint/lib/typescript.js +0 -98
- package/lib/config/eslint/react.d.ts +0 -2
- package/lib/config/eslint/react.js +0 -30
- package/lib/hooks/useEventCalback.d.ts +0 -14
- package/lib/hooks/useEventCalback.js +0 -51
- package/lib/types/externals.d.js +0 -2
package/lib/utils/dom.js
CHANGED
|
@@ -1,213 +1,201 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
|
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
|
|
14
10
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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;
|
|
25
23
|
};
|
|
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
|
|
31
|
-
*/
|
|
32
24
|
exports.getVerticallyScrollableParent = getVerticallyScrollableParent;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return undefined;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Return whether the device being used is one of several mainstream mobile devices
|
|
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
|
|
42
29
|
*/
|
|
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;
|
|
36
|
+
};
|
|
43
37
|
exports.getFirstParentElementWithClassName = getFirstParentElementWithClassName;
|
|
44
|
-
|
|
45
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Return whether the device being used is one of several mainstream mobile devices
|
|
40
|
+
*/
|
|
41
|
+
var isMobileDevice = function () {
|
|
42
|
+
return (/android|ipad|ipod|iphone/i.test(navigator.userAgent) ||
|
|
43
|
+
(/macintosh/i.test(navigator.userAgent) && navigator.maxTouchPoints));
|
|
46
44
|
};
|
|
47
|
-
|
|
48
|
-
/** Return whether the device is using an external keyboard vs. the native on-screen OS keyboard. */
|
|
49
45
|
exports.isMobileDevice = isMobileDevice;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Sets `window.hasExternalKeyboard`, returned by `hasExternalKeyboard`.
|
|
54
|
-
*/
|
|
46
|
+
/** Return whether the device is using an external keyboard vs. the native on-screen OS keyboard. */
|
|
47
|
+
var hasExternalKeyboard = function () { return window.hasExternalKeyboard; };
|
|
55
48
|
exports.hasExternalKeyboard = hasExternalKeyboard;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Sets `window.hasExternalKeyboard`, returned by `hasExternalKeyboard`.
|
|
51
|
+
*/
|
|
52
|
+
var setHasExternalKeyboard = function (hasExternalKeyboard) {
|
|
53
|
+
logger_1.getLogger().debug('hasExternalKeyboard', hasExternalKeyboard);
|
|
54
|
+
var windowWithoutType = window;
|
|
55
|
+
windowWithoutType.hasExternalKeyboard = hasExternalKeyboard;
|
|
60
56
|
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
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
|
+
*
|
|
69
64
|
*/
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
65
|
+
var setVisualViewportHeightVar = function () {
|
|
66
|
+
var height = visualViewport ? visualViewport.height : 0;
|
|
67
|
+
document.documentElement.style.setProperty('--visual-viewport-height', height + "px");
|
|
73
68
|
};
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* @param el An HTML element
|
|
69
|
+
/**
|
|
70
|
+
* Is the given element capable of text input?
|
|
71
|
+
*
|
|
72
|
+
* @param el An HTML element
|
|
79
73
|
*/
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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';
|
|
89
84
|
};
|
|
90
85
|
exports.isTextInput = isTextInput;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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);
|
|
110
106
|
};
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
scrollParent.scrollTop = newScrollTop;
|
|
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
|
+
}
|
|
132
127
|
}
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
scrollToElementAfterFocusTimeout = undefined;
|
|
136
|
-
}, KEYBOARD_ANIMATION_MS);
|
|
128
|
+
scrollToElementAfterFocusTimeout = undefined;
|
|
129
|
+
}, KEYBOARD_ANIMATION_MS);
|
|
137
130
|
};
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
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
|
+
*
|
|
146
138
|
*/
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
139
|
+
var onFocusIn = function (e) {
|
|
140
|
+
if (!e.target || !exports.isTextInput(e.target))
|
|
141
|
+
return;
|
|
142
|
+
updateHasExternalKeyboardAfterFocus();
|
|
143
|
+
scrollToElementAfterFocus(e.target);
|
|
151
144
|
};
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
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
|
+
*
|
|
160
152
|
*/
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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
|
+
}
|
|
171
164
|
};
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
* This will trigger the `onFocusIn` event handler, which updates the `hasExternalKeyboard` global.
|
|
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.
|
|
177
169
|
*/
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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);
|
|
190
182
|
};
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
setVisualViewportHeightVar();
|
|
196
|
-
|
|
197
|
-
// add event listeners
|
|
198
|
-
visualViewport.addEventListener('resize', () => {
|
|
183
|
+
var setupMobileEventListeners = function () {
|
|
184
|
+
if (!exports.isMobileDevice() || !visualViewport)
|
|
185
|
+
return;
|
|
186
|
+
// set viewport height var at setup
|
|
199
187
|
setVisualViewportHeightVar();
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
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();
|
|
211
200
|
};
|
|
212
201
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const getDomainIdentifierTypeString = () => (0, _shard.isPurdueShard)() ? 'Purdue career account alias or PUID' : 'Email Address';
|
|
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
|
+
};
|
|
9
8
|
exports.getDomainIdentifierTypeString = getDomainIdentifierTypeString;
|
|
10
|
-
|
|
9
|
+
var getDomainIdentifierTypePluralString = function () {
|
|
10
|
+
return shard_1.isPurdueShard() ? 'Purdue career account aliases or PUIDs' : 'Email Addresses';
|
|
11
|
+
};
|
|
11
12
|
exports.getDomainIdentifierTypePluralString = getDomainIdentifierTypePluralString;
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2hhcmQiLCJyZXF1aXJlIiwiZ2V0RG9tYWluSWRlbnRpZmllclR5cGVTdHJpbmciLCJpc1B1cmR1ZVNoYXJkIiwiZXhwb3J0cyIsImdldERvbWFpbklkZW50aWZpZXJUeXBlUGx1cmFsU3RyaW5nIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RvbWFpbklkZW50aWZpZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQdXJkdWVTaGFyZCB9IGZyb20gJy4vc2hhcmQnXHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RG9tYWluSWRlbnRpZmllclR5cGVTdHJpbmcgPSAoKSA9PlxyXG5cdGlzUHVyZHVlU2hhcmQoKSA/ICdQdXJkdWUgY2FyZWVyIGFjY291bnQgYWxpYXMgb3IgUFVJRCcgOiAnRW1haWwgQWRkcmVzcydcclxuXHJcbmV4cG9ydCBjb25zdCBnZXREb21haW5JZGVudGlmaWVyVHlwZVBsdXJhbFN0cmluZyA9ICgpID0+XHJcblx0aXNQdXJkdWVTaGFyZCgpID8gJ1B1cmR1ZSBjYXJlZXIgYWNjb3VudCBhbGlhc2VzIG9yIFBVSURzJyA6ICdFbWFpbCBBZGRyZXNzZXMnXHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRU8sTUFBTUMsNkJBQTZCLEdBQUdBLENBQUEsS0FDNUMsSUFBQUMsb0JBQWEsRUFBQyxDQUFDLEdBQUcscUNBQXFDLEdBQUcsZUFBZTtBQUFBQyxPQUFBLENBQUFGLDZCQUFBLEdBQUFBLDZCQUFBO0FBRW5FLE1BQU1HLG1DQUFtQyxHQUFHQSxDQUFBLEtBQ2xELElBQUFGLG9CQUFhLEVBQUMsQ0FBQyxHQUFHLHdDQUF3QyxHQUFHLGlCQUFpQjtBQUFBQyxPQUFBLENBQUFDLG1DQUFBLEdBQUFBLG1DQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.getRootModelName = void 0;
|
|
7
|
-
|
|
4
|
+
var getRootModelName = function (props) { return props.modelName.split('.').slice(0, -1).join('.'); };
|
|
8
5
|
exports.getRootModelName = getRootModelName;
|
|
9
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRSb290TW9kZWxOYW1lIiwicHJvcHMiLCJtb2RlbE5hbWUiLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZW50aXR5VXNlclJvbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGdldFJvb3RNb2RlbE5hbWUgPSAocHJvcHM6IHsgbW9kZWxOYW1lOiBzdHJpbmcgfSkgPT4gcHJvcHMubW9kZWxOYW1lLnNwbGl0KCcuJykuc2xpY2UoMCwgLTEpLmpvaW4oJy4nKVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLE1BQU1BLGdCQUFnQixHQUFJQyxLQUE0QixJQUFLQSxLQUFLLENBQUNDLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxHQUFHLENBQUM7QUFBQUMsT0FBQSxDQUFBTixnQkFBQSxHQUFBQSxnQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/utils/error.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const constructErrorFromCaughtError: (caughtError: unknown, name: string, message?: string) => Error;
|
|
1
|
+
export declare const constructErrorFromCaughtError: (caughtError: unknown, name: string, message?: string | undefined) => Error;
|
package/lib/utils/error.js
CHANGED
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.constructErrorFromCaughtError = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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;
|
|
20
19
|
};
|
|
21
20
|
exports.constructErrorFromCaughtError = constructErrorFromCaughtError;
|
|
22
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25zdHJ1Y3RFcnJvckZyb21DYXVnaHRFcnJvciIsImNhdWdodEVycm9yIiwibmFtZSIsIm1lc3NhZ2UiLCJlcnJvciIsIkVycm9yIiwic3RhY2siLCJKU09OIiwic3RyaW5naWZ5IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgY29uc3RydWN0RXJyb3JGcm9tQ2F1Z2h0RXJyb3IgPSAoY2F1Z2h0RXJyb3I6IHVua25vd24sIG5hbWU6IHN0cmluZywgbWVzc2FnZT86IHN0cmluZykgPT4ge1xyXG5cdGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpXHJcblx0ZXJyb3IubmFtZSA9IG5hbWVcclxuXHRpZiAoY2F1Z2h0RXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xyXG5cdFx0ZXJyb3IubWVzc2FnZSArPSBgJHttZXNzYWdlID8gJy5cXG4nIDogJyd9JHtjYXVnaHRFcnJvci5uYW1lICE9PSAnRXJyb3InID8gYCR7Y2F1Z2h0RXJyb3IubmFtZX06IGAgOiAnJ30ke1xyXG5cdFx0XHRjYXVnaHRFcnJvci5tZXNzYWdlXHJcblx0XHR9YFxyXG5cdFx0ZXJyb3Iuc3RhY2sgPSBjYXVnaHRFcnJvci5zdGFja1xyXG5cdFx0Ly8gVE9ETzogdXNlIGBuZXcgRXJyb3IobWVzc2FnZSwgeyBjYXVzZTogY2F1Z2h0RXJyb3IgfSlgIG9uY2Ugd2UgdXBncmFkZSBUUyB0byBhbGxvdyBlczIwMjJcclxuXHR9IGVsc2UgaWYgKHR5cGVvZiBjYXVnaHRFcnJvciA9PT0gJ3N0cmluZycpIHtcclxuXHRcdGVycm9yLm1lc3NhZ2UgKz0gYCR7bWVzc2FnZSA/ICcuXFxuJyA6ICcnfSR7Y2F1Z2h0RXJyb3J9YFxyXG5cdH0gZWxzZSBpZiAoY2F1Z2h0RXJyb3IgJiYgdHlwZW9mIGNhdWdodEVycm9yID09PSAnb2JqZWN0Jykge1xyXG5cdFx0ZXJyb3IubWVzc2FnZSArPSBgJHttZXNzYWdlID8gJy5cXG4nIDogJyd9JHtKU09OLnN0cmluZ2lmeShjYXVnaHRFcnJvcil9YFxyXG5cdH1cclxuXHRyZXR1cm4gZXJyb3JcclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLE1BQU1BLDZCQUE2QixHQUFHQSxDQUFDQyxXQUFvQixFQUFFQyxJQUFZLEVBQUVDLE9BQWdCLEtBQUs7RUFDdEcsTUFBTUMsS0FBSyxHQUFHLElBQUlDLEtBQUssQ0FBQ0YsT0FBTyxDQUFDO0VBQ2hDQyxLQUFLLENBQUNGLElBQUksR0FBR0EsSUFBSTtFQUNqQixJQUFJRCxXQUFXLFlBQVlJLEtBQUssRUFBRTtJQUNqQ0QsS0FBSyxDQUFDRCxPQUFPLElBQUksR0FBR0EsT0FBTyxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUdGLFdBQVcsQ0FBQ0MsSUFBSSxLQUFLLE9BQU8sR0FBRyxHQUFHRCxXQUFXLENBQUNDLElBQUksSUFBSSxHQUFHLEVBQUUsR0FDckdELFdBQVcsQ0FBQ0UsT0FBTyxFQUNsQjtJQUNGQyxLQUFLLENBQUNFLEtBQUssR0FBR0wsV0FBVyxDQUFDSyxLQUFLO0lBQy9CO0VBQ0QsQ0FBQyxNQUFNLElBQUksT0FBT0wsV0FBVyxLQUFLLFFBQVEsRUFBRTtJQUMzQ0csS0FBSyxDQUFDRCxPQUFPLElBQUksR0FBR0EsT0FBTyxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUdGLFdBQVcsRUFBRTtFQUN6RCxDQUFDLE1BQU0sSUFBSUEsV0FBVyxJQUFJLE9BQU9BLFdBQVcsS0FBSyxRQUFRLEVBQUU7SUFDMURHLEtBQUssQ0FBQ0QsT0FBTyxJQUFJLEdBQUdBLE9BQU8sR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHSSxJQUFJLENBQUNDLFNBQVMsQ0FBQ1AsV0FBVyxDQUFDLEVBQUU7RUFDekU7RUFDQSxPQUFPRyxLQUFLO0FBQ2IsQ0FBQztBQUFBSyxPQUFBLENBQUFULDZCQUFBLEdBQUFBLDZCQUFBIiwiaWdub3JlTGlzdCI6W119
|
package/lib/utils/events.js
CHANGED
|
@@ -1,45 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
});
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
6
|
exports.trackCustomEvent = void 0;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
/**
|
|
11
|
-
* Send an event to Google Analytics and App Insights
|
|
12
|
-
* @param event
|
|
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
|
|
13
12
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
label: label,
|
|
39
|
-
userId: userId
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
}
|
|
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
|
+
}
|
|
43
37
|
};
|
|
44
38
|
exports.trackCustomEvent = trackCustomEvent;
|
|
45
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RHYSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NvbnN0YW50cyIsInRyYWNrQ3VzdG9tRXZlbnQiLCJldmVudCIsImV2ZW50TmFtZSIsImNhdGVnb3J5IiwiYWN0aW9uIiwibGFiZWwiLCJ1c2VySWQiLCJnZXRVc2VySWQiLCJhcHBDb25maWciLCJnZXRBcHBDb25maWciLCJHT09HTEVfQU5BTFlUSUNTX1RSQUNLSU5HX0lEIiwiZ2EiLCJldmVudF9jYXRlZ29yeSIsImV2ZW50X2xhYmVsIiwidXNlcl9pZCIsIkFQUF9JTlNJR0hUU19DT05ORUNUSU9OX1NUUklORyIsImFwcEluc2lnaHRzIiwiZ2V0QXBwSW5zaWdodHMiLCJ0cmFja0V2ZW50IiwibmFtZSIsInByb3BlcnRpZXMiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2V2ZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2EgZnJvbSAncmVhY3QtZ2E0J1xyXG5pbXBvcnQgeyBnZXRBcHBDb25maWcsIGdldEFwcEluc2lnaHRzLCBnZXRVc2VySWQgfSBmcm9tICcuLi9jb25zdGFudHMnXHJcbmltcG9ydCB7IEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vdHlwZXMvRXZlbnQnXHJcblxyXG4vKipcclxuICogU2VuZCBhbiBldmVudCB0byBHb29nbGUgQW5hbHl0aWNzIGFuZCBBcHAgSW5zaWdodHNcclxuICogQHBhcmFtIGV2ZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgdHJhY2tDdXN0b21FdmVudCA9IChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcclxuXHRjb25zdCB7IGV2ZW50TmFtZSwgY2F0ZWdvcnksIGFjdGlvbiwgbGFiZWwgfSA9IGV2ZW50XHJcblx0Y29uc3QgdXNlcklkID0gZ2V0VXNlcklkKClcclxuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxyXG5cdGlmIChhcHBDb25maWcuR09PR0xFX0FOQUxZVElDU19UUkFDS0lOR19JRCkge1xyXG5cdFx0Z2EuZXZlbnQoZXZlbnROYW1lLCB7XHJcblx0XHRcdGV2ZW50X2NhdGVnb3J5OiBjYXRlZ29yeSxcclxuXHRcdFx0YWN0aW9uOiBhY3Rpb24sXHJcblx0XHRcdGV2ZW50X2xhYmVsOiBsYWJlbCxcclxuXHRcdFx0dXNlcl9pZDogdXNlcklkXHJcblx0XHR9KVxyXG5cdH1cclxuXHRpZiAoYXBwQ29uZmlnLkFQUF9JTlNJR0hUU19DT05ORUNUSU9OX1NUUklORykge1xyXG5cdFx0Y29uc3QgYXBwSW5zaWdodHMgPSBnZXRBcHBJbnNpZ2h0cygpXHJcblx0XHRhcHBJbnNpZ2h0cy50cmFja0V2ZW50KHtcclxuXHRcdFx0bmFtZTogZXZlbnROYW1lLFxyXG5cdFx0XHRwcm9wZXJ0aWVzOiB7XHJcblx0XHRcdFx0Y2F0ZWdvcnk6IGNhdGVnb3J5LFxyXG5cdFx0XHRcdGFjdGlvbjogYWN0aW9uLFxyXG5cdFx0XHRcdGxhYmVsOiBsYWJlbCxcclxuXHRcdFx0XHR1c2VySWQ6IHVzZXJJZFxyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1FLGdCQUFnQixHQUFJQyxLQUFrQixJQUFLO0VBQ3ZELE1BQU07SUFBRUMsU0FBUztJQUFFQyxRQUFRO0lBQUVDLE1BQU07SUFBRUM7RUFBTSxDQUFDLEdBQUdKLEtBQUs7RUFDcEQsTUFBTUssTUFBTSxHQUFHLElBQUFDLG9CQUFTLEVBQUMsQ0FBQztFQUMxQixNQUFNQyxTQUFTLEdBQUcsSUFBQUMsdUJBQVksRUFBQyxDQUFDO0VBQ2hDLElBQUlELFNBQVMsQ0FBQ0UsNEJBQTRCLEVBQUU7SUFDM0NDLGdCQUFFLENBQUNWLEtBQUssQ0FBQ0MsU0FBUyxFQUFFO01BQ25CVSxjQUFjLEVBQUVULFFBQVE7TUFDeEJDLE1BQU0sRUFBRUEsTUFBTTtNQUNkUyxXQUFXLEVBQUVSLEtBQUs7TUFDbEJTLE9BQU8sRUFBRVI7SUFDVixDQUFDLENBQUM7RUFDSDtFQUNBLElBQUlFLFNBQVMsQ0FBQ08sOEJBQThCLEVBQUU7SUFDN0MsTUFBTUMsV0FBVyxHQUFHLElBQUFDLHlCQUFjLEVBQUMsQ0FBQztJQUNwQ0QsV0FBVyxDQUFDRSxVQUFVLENBQUM7TUFDdEJDLElBQUksRUFBRWpCLFNBQVM7TUFDZmtCLFVBQVUsRUFBRTtRQUNYakIsUUFBUSxFQUFFQSxRQUFRO1FBQ2xCQyxNQUFNLEVBQUVBLE1BQU07UUFDZEMsS0FBSyxFQUFFQSxLQUFLO1FBQ1pDLE1BQU0sRUFBRUE7TUFDVDtJQUNELENBQUMsQ0FBQztFQUNIO0FBQ0QsQ0FBQztBQUFBZSxPQUFBLENBQUFyQixnQkFBQSxHQUFBQSxnQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|