studiokit-scaffolding-js 7.0.12-next.1.4 → 7.0.12-next.2.2
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/lib/components/ActionList.js +170 -34
- package/lib/components/AlertDialog.js +133 -9
- package/lib/components/AlertWithIcon.js +92 -25
- package/lib/components/ConnectedModal.js +43 -13
- package/lib/components/Dropdowns/GroupsDropdown.js +69 -44
- package/lib/components/Dropdowns/ManagedNavDropdown.js +100 -67
- package/lib/components/Dropdowns/UserDropdown.js +111 -21
- package/lib/components/Dropdowns/index.js +27 -9
- package/lib/components/EntityOwnerList.js +52 -18
- package/lib/components/Error.js +106 -11
- package/lib/components/ErrorBoundary.js +134 -35
- package/lib/components/ErrorMessage.js +44 -9
- package/lib/components/Forms/DateField.js +61 -42
- package/lib/components/Forms/TimeField.js +81 -42
- package/lib/components/Forms/index.js +27 -4
- package/lib/components/Groups/CreateEditCopySaveButtons.js +114 -11
- package/lib/components/Groups/ExternalGroups/Attach.js +212 -148
- package/lib/components/Groups/ExternalGroups/Table.js +181 -45
- package/lib/components/Groups/GroupCreateOrEditCommonProps.js +5 -1
- package/lib/components/Groups/RosterSyncInfo.js +147 -20
- package/lib/components/HOC/AccessibleAppComponent.js +98 -73
- package/lib/components/HOC/ActivityRequiredComponent.js +92 -49
- package/lib/components/HOC/AsyncComponent.js +54 -39
- package/lib/components/HOC/AuthenticatedComponent.js +58 -38
- package/lib/components/HOC/CollectionComponent.js +170 -110
- package/lib/components/HOC/CollectionFirstItemComponent.js +51 -38
- package/lib/components/HOC/CollectionItemComponent.js +168 -106
- package/lib/components/HOC/ConnectedModalComponent.js +109 -80
- package/lib/components/HOC/DataDependentComponent.js +29 -21
- package/lib/components/HOC/EntityComponent.js +71 -57
- package/lib/components/HOC/FullscreenModalComponent.js +163 -123
- package/lib/components/HOC/GroupActivityRequiredComponent.js +45 -31
- package/lib/components/HOC/GuidComponent.js +29 -22
- package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +41 -31
- package/lib/components/HOC/ModelErrorRedirectComponent.js +51 -47
- package/lib/components/HOC/SearchPersistorComponent.js +240 -166
- package/lib/components/HOC/UnauthenticatedComponent.js +37 -25
- package/lib/components/HOC/UserComponent.js +12 -7
- package/lib/components/Icons/IconAlphaList.js +33 -5
- package/lib/components/Icons/IconExternalUser.js +33 -5
- package/lib/components/Icons/IconImpersonation.js +33 -5
- package/lib/components/Icons/IconStopImpersonating.js +33 -5
- package/lib/components/Icons/IconTable.js +35 -7
- package/lib/components/Icons/IconTableDeleteCol.js +33 -5
- package/lib/components/Icons/IconTableDeleteRow.js +33 -5
- package/lib/components/Icons/IconTableInsertCol.js +33 -5
- package/lib/components/Icons/IconTableInsertRow.js +33 -5
- package/lib/components/Impersonation/Button.js +77 -13
- package/lib/components/Impersonation/Link.js +77 -13
- package/lib/components/Impersonation/UserDetail.js +66 -9
- package/lib/components/Loading.js +26 -4
- package/lib/components/LockDownBrowser/Check.js +194 -49
- package/lib/components/LockDownBrowser/ExitButton.js +26 -9
- package/lib/components/LockDownBrowser/Launch.js +70 -62
- package/lib/components/Lti/Confirm.js +152 -11
- package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +170 -33
- package/lib/components/Lti/Launch.js +105 -24
- package/lib/components/Lti/LaunchGroup.js +85 -13
- package/lib/components/ManageTable.js +309 -87
- package/lib/components/ManageTableNoDataComponent.js +42 -4
- package/lib/components/NewVersionAlert.js +82 -46
- package/lib/components/NotFound.js +86 -10
- package/lib/components/Notifications.js +185 -126
- package/lib/components/PaginationNextButton.js +33 -6
- package/lib/components/PaginationPreviousButton.js +33 -6
- package/lib/components/Quill/CustomToolbar.js +432 -218
- package/lib/components/Quill/Formats/Image.js +73 -63
- package/lib/components/Quill/Formats/List.js +45 -45
- package/lib/components/Quill/Formats/Video.js +28 -24
- package/lib/components/Quill/ImageDropModule.js +147 -117
- package/lib/components/Quill/ImageWarning.js +47 -9
- package/lib/components/Quill/ImageWithAltTextModal.js +425 -86
- package/lib/components/Quill/Specs/CustomImageSpec.js +42 -34
- package/lib/components/Quill/Specs/CustomVideoSpec.js +34 -28
- package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +98 -98
- package/lib/components/Quill/TableModule/Blots/TableBlot.js +52 -47
- package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +53 -48
- package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +224 -221
- package/lib/components/Quill/TableModule/Blots/TableContainer.js +80 -83
- package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +75 -70
- package/lib/components/Quill/TableModule/constants.js +45 -41
- package/lib/components/Quill/TableModule/index.js +362 -301
- package/lib/components/Quill/TableModule/utils.js +42 -38
- package/lib/components/Quill/accessibilityFix.js +234 -232
- package/lib/components/Quill/index.js +34 -28
- package/lib/components/RefreshIndicator/Bordered.js +47 -6
- package/lib/components/RefreshIndicator/Inline.js +47 -8
- package/lib/components/RefreshIndicator/index.js +263 -59
- package/lib/components/SearchControls.js +216 -11
- package/lib/components/SentryRoute.js +11 -6
- package/lib/components/Tables/RoleFilter.js +69 -32
- package/lib/components/Tables/TextFilter.js +62 -13
- package/lib/components/UserRoles/Add.js +199 -96
- package/lib/components/UserRoles/Context.js +11 -7
- package/lib/components/UserRoles/RoleCell.js +181 -72
- package/lib/components/UserRoles/Select.js +157 -17
- package/lib/components/UserRoles/Table.js +221 -80
- package/lib/components/UserRoles/index.js +534 -384
- package/lib/config/eslint/index.js +32 -28
- package/lib/config/eslint/lib/order.js +26 -27
- package/lib/config/eslint/lib/prettier.js +20 -18
- package/lib/config/eslint/lib/typescript.js +93 -112
- package/lib/config/eslint/react.js +24 -14
- package/lib/constants/baseActivity.js +30 -26
- package/lib/constants/baseRole.js +14 -10
- package/lib/constants/configuration.js +33 -29
- package/lib/constants/externalProviderType.js +10 -6
- package/lib/constants/fetchErrorData.js +15 -11
- package/lib/constants/index.js +137 -14
- package/lib/constants/lockDownBrowser.js +28 -24
- package/lib/constants/mockData.js +382 -297
- package/lib/constants/modelStatus.js +15 -11
- package/lib/constants/notificationType.js +12 -8
- package/lib/constants/operatingSystem.js +12 -8
- package/lib/constants/shard.js +11 -7
- package/lib/constants/table.js +21 -21
- package/lib/constants/tier.js +12 -8
- package/lib/constants/userRole.js +15 -5
- package/lib/endpointMappings.js +197 -181
- package/lib/hooks/useCollection.js +82 -62
- package/lib/hooks/useCollectionConfiguration.js +228 -83
- package/lib/hooks/useCollectionItem.js +154 -54
- package/lib/hooks/useGuid.js +20 -8
- package/lib/hooks/usePrevious.js +19 -13
- package/lib/index.js +157 -25
- package/lib/redux/actionCreator.js +50 -28
- package/lib/redux/actions/AuthAction.js +44 -31
- package/lib/redux/actions/ModalAction.js +10 -6
- package/lib/redux/actions/ModelAction.js +77 -39
- package/lib/redux/actions/NotificationAction.js +10 -6
- package/lib/redux/actions/SearchAction.js +9 -5
- package/lib/redux/actions/index.js +60 -7
- package/lib/redux/configureReducers.js +60 -49
- package/lib/redux/configureStore.js +83 -87
- package/lib/redux/helpers.js +6 -2
- package/lib/redux/reducers/authReducer.js +50 -43
- package/lib/redux/reducers/index.js +41 -13
- package/lib/redux/reducers/modalsReducer.js +47 -29
- package/lib/redux/reducers/modelsReducer.js +178 -173
- package/lib/redux/reducers/notificationsReducer.js +24 -18
- package/lib/redux/reducers/searchReducer.js +25 -19
- package/lib/redux/sagas/appInsightsSaga.js +22 -18
- package/lib/redux/sagas/authSaga.js +253 -218
- package/lib/redux/sagas/caliperSaga.js +159 -143
- package/lib/redux/sagas/clockOffsetSaga.js +34 -31
- package/lib/redux/sagas/configurationSaga.js +11 -7
- package/lib/redux/sagas/downtimeApiErrorSaga.js +20 -17
- package/lib/redux/sagas/errorSaga.js +27 -21
- package/lib/redux/sagas/googleAnalyticsSaga.js +28 -24
- package/lib/redux/sagas/identityProviderSaga.js +22 -18
- package/lib/redux/sagas/initialDataLoadSaga.js +37 -28
- package/lib/redux/sagas/lockDownBrowserErrorSaga.js +29 -20
- package/lib/redux/sagas/modelFetchSaga.js +355 -322
- package/lib/redux/sagas/noStoreSaga.js +61 -48
- package/lib/redux/sagas/postLoginDataSaga.js +45 -34
- package/lib/redux/sagas/postLoginRedirectSaga.js +27 -27
- package/lib/redux/sagas/rootSaga.js +82 -57
- package/lib/redux/sagas/sentrySaga.js +29 -25
- package/lib/redux/sagas/userIdSaga.js +16 -12
- package/lib/services/codeProviderService.js +25 -19
- package/lib/services/dateService.js +12 -7
- package/lib/services/documentService.js +17 -12
- package/lib/services/fetchService.js +129 -112
- package/lib/services/persistenceService.js +33 -29
- package/lib/services/ticketProviderService.js +29 -23
- package/lib/services/tokenPersistenceService.js +12 -8
- package/lib/services/windowService.js +18 -14
- package/lib/startup.js +132 -114
- package/lib/types/AppConfiguration.js +5 -1
- package/lib/types/Artifact.js +11 -7
- package/lib/types/BaseReduxState.js +5 -1
- package/lib/types/Client.js +5 -1
- package/lib/types/Collection.js +5 -1
- package/lib/types/Configuration.js +5 -1
- package/lib/types/DeepLinkingResponseRequest.js +5 -1
- package/lib/types/DeletableModel.js +5 -1
- package/lib/types/Event.js +5 -1
- package/lib/types/ExternalGroup.js +5 -1
- package/lib/types/ExternalProvider.js +5 -1
- package/lib/types/ExternalTerm.js +5 -1
- package/lib/types/Group.js +5 -1
- package/lib/types/IdentityProvider.js +5 -1
- package/lib/types/LtiLaunch.js +5 -1
- package/lib/types/NameOnlyEntity.js +5 -1
- package/lib/types/Notification.js +5 -1
- package/lib/types/OptionalRecord.js +5 -1
- package/lib/types/OwnerSchedule.js +5 -1
- package/lib/types/PropertyOfType.js +5 -1
- package/lib/types/Quill.js +5 -1
- package/lib/types/RoleDescription.js +5 -1
- package/lib/types/Search.js +5 -1
- package/lib/types/SimpleLocation.js +5 -1
- package/lib/types/UniTime.js +5 -1
- package/lib/types/User.js +5 -1
- package/lib/types/UserRole.js +5 -1
- package/lib/types/auth/AuthState.js +5 -1
- package/lib/types/auth/CasV1LoginRequestBody.js +5 -1
- package/lib/types/auth/ClientCredentials.js +5 -1
- package/lib/types/auth/CodeProviderService.js +5 -1
- package/lib/types/auth/LocalLoginRequestBody.js +5 -1
- package/lib/types/auth/TicketProviderService.js +5 -1
- package/lib/types/auth/TokenPersistenceService.js +5 -1
- package/lib/types/auth/index.js +82 -9
- package/lib/types/externals.d.js +2 -0
- package/lib/types/index.js +313 -30
- package/lib/types/net/EndpointConfig.js +5 -1
- package/lib/types/net/EndpointMapping.js +5 -1
- package/lib/types/net/EndpointMappings.js +5 -1
- package/lib/types/net/ErrorHandler.js +5 -1
- package/lib/types/net/FetchConfig.js +5 -1
- package/lib/types/net/FetchErrorData.js +10 -6
- package/lib/types/net/FetchResult.js +5 -1
- package/lib/types/net/HTTPMethod.js +5 -1
- package/lib/types/net/HTTPStatusCode.js +16 -12
- package/lib/types/net/Metadata.js +5 -1
- package/lib/types/net/Model.js +5 -1
- package/lib/types/net/ModelCollection.js +5 -1
- package/lib/types/net/ModelsState.js +5 -1
- package/lib/types/net/OAuthToken.js +5 -1
- package/lib/types/net/OAuthTokenOrNull.js +5 -1
- package/lib/types/net/TokenAccessFunction.js +5 -1
- package/lib/types/net/index.js +181 -18
- package/lib/utils/baseActivity.js +133 -123
- package/lib/utils/baseRole.js +37 -33
- package/lib/utils/collection.js +425 -298
- package/lib/utils/cookies.js +22 -19
- package/lib/utils/date.js +303 -279
- package/lib/utils/dom.js +176 -165
- package/lib/utils/domainIdentifier.js +9 -5
- package/lib/utils/entityUserRole.js +6 -2
- package/lib/utils/error.js +17 -15
- package/lib/utils/events.js +40 -31
- package/lib/utils/externalGroup.js +22 -18
- package/lib/utils/externalProviders.js +8 -4
- package/lib/utils/externalTerms.js +10 -3
- package/lib/utils/fetch.js +179 -180
- package/lib/utils/group.js +18 -7
- package/lib/utils/groupDates.js +37 -33
- package/lib/utils/groupRoles.js +25 -21
- package/lib/utils/lockDownBrowser.js +15 -11
- package/lib/utils/logger.js +26 -22
- package/lib/utils/lti.js +9 -4
- package/lib/utils/model.js +36 -41
- package/lib/utils/number.js +21 -18
- package/lib/utils/promise.js +28 -21
- package/lib/utils/quill.js +65 -62
- package/lib/utils/route.js +58 -55
- package/lib/utils/search.js +76 -80
- package/lib/utils/shard.js +37 -37
- package/lib/utils/sort.js +50 -42
- package/lib/utils/string.js +13 -8
- package/lib/utils/table.js +38 -33
- package/lib/utils/timezone.js +10 -6
- package/lib/utils/url.js +142 -142
- package/lib/utils/user.js +58 -55
- package/lib/utils/userAgent.js +10 -10
- package/lib/utils/userRole.js +57 -49
- package/package.json +17 -3
|
@@ -1,101 +1,204 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
3
7
|
exports.UserRolesAdd = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const { entityName, isAddingUsersToRole, roleDescriptions, renderAddDescription, disabled, textForRole } = this.props;
|
|
93
|
-
const roles = lodash_1.default.keys(roleDescriptions);
|
|
94
|
-
const rolePopover = ((0, jsx_runtime_1.jsxs)(react_bootstrap_1.Popover, { id: "role", children: [(0, jsx_runtime_1.jsx)("h3", { children: "Role" }), roles.map(r => ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: roleDescriptions[r] }, r)))] }));
|
|
95
|
-
const appConfig = (0, configuration_1.getAppConfig)();
|
|
96
|
-
const appName = appConfig.APP_NAME;
|
|
97
|
-
const gradableDescriptor = appConfig.GRADABLE_DESCRIPTOR;
|
|
98
|
-
return ((0, jsx_runtime_1.jsxs)(react_bootstrap_1.Row, { children: [!!renderAddDescription && (0, jsx_runtime_1.jsx)(react_bootstrap_1.Col, { xs: 12, children: renderAddDescription(entityName) }), (0, jsx_runtime_1.jsx)(react_bootstrap_1.Col, { xs: 12, sm: 6, children: (0, jsx_runtime_1.jsxs)(react_bootstrap_1.FormGroup, { controlId: "UserEntry", children: [(0, jsx_runtime_1.jsxs)(react_bootstrap_1.FormLabel, { className: "f6", children: [(0, domainIdentifier_1.getDomainIdentifierTypePluralString)(), " (separated by a new line)"] }), (0, jsx_runtime_1.jsx)(react_bootstrap_1.FormControl, { type: "text", as: "textarea", name: "account", "aria-label": "The account names to add", onChange: this.updateIdentifiers, value: identifiers, placeholder: (0, domainIdentifier_1.getDomainIdentifierTypeString)(), disabled: disabled })] }) }), (0, jsx_runtime_1.jsx)(react_bootstrap_1.Col, { xs: 12, sm: 4, children: (0, jsx_runtime_1.jsx)(Select_1.RoleSelect, { options: roles, value: role, onChange: this.updateRole, labelVisible: true, popoverContentComponent: rolePopover, textForRole: textForRole }) }), (0, jsx_runtime_1.jsxs)(react_bootstrap_1.Col, { xs: 12, sm: 2, className: "mt3-ns pt2-ns", children: [isAddingUsersToRole && (0, jsx_runtime_1.jsx)(Inline_1.RefreshIndicatorInline, { className: "mr3" }), !isAddingUsersToRole && ((0, jsx_runtime_1.jsxs)(Button_1.default, { id: "userRolesAddButton", color: "primary", className: "btn-primary w-100-lt-xs", disabled: !identifiers || disabled, onClick: this.handleSubmit, children: [(0, jsx_runtime_1.jsx)(AddCircle_1.default, { className: "v-mid" }), "Add"] })), (0, jsx_runtime_1.jsx)(AlertDialog_1.AlertDialog, { isOpen: showErrorAlert, title: `Error Adding People to the ${entityName}`, description: (0, jsx_runtime_1.jsx)("div", { className: "pre-wrap", children: errorMessage }), proceedText: "Got it. Thanks!", onProceed: this.closeErrorAlert, onCancel: this.closeErrorAlert })] }), lodash_1.default.includes(FERPA_ROLES, role) && ((0, jsx_runtime_1.jsx)(react_bootstrap_1.Col, { xs: 12, children: (0, jsx_runtime_1.jsx)(AlertWithIcon_1.AlertWithIcon, { id: "ferpaWarning", variant: "warning", children: (0, jsx_runtime_1.jsxs)("p", { children: ["This role includes ", gradableDescriptor, " scores in ", appName, ". Please consider whether", ' ', (0, jsx_runtime_1.jsx)("a", { href: "https://www.purdue.edu/registrar/FERPA/index.html", target: "_blank", rel: "noopener noreferrer", children: "FERPA" }), ' ', "certification is needed."] }) }) }))] }));
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
10
|
+
var _AddCircle = _interopRequireDefault(require("@material-ui/icons/AddCircle"));
|
|
11
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _reactBootstrap = require("react-bootstrap");
|
|
14
|
+
var _AlertDialog = require("../../components/AlertDialog");
|
|
15
|
+
var _Inline = require("../../components/RefreshIndicator/Inline");
|
|
16
|
+
var _Select = require("../../components/UserRoles/Select");
|
|
17
|
+
var _baseRole = require("../../constants/baseRole");
|
|
18
|
+
var _configuration = require("../../constants/configuration");
|
|
19
|
+
var _domainIdentifier = require("../../utils/domainIdentifier");
|
|
20
|
+
var _shard = require("../../utils/shard");
|
|
21
|
+
var _string = require("../../utils/string");
|
|
22
|
+
var _AlertWithIcon = require("../AlertWithIcon");
|
|
23
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
25
|
+
const FERPA_ROLES = [_baseRole.BASE_ROLE.SUPER_ADMIN, _baseRole.BASE_ROLE.ADMIN, _baseRole.BASE_ROLE.GROUP_OWNER, _baseRole.BASE_ROLE.GROUP_GRADER];
|
|
26
|
+
class UserRolesAdd extends _react.Component {
|
|
27
|
+
constructor(props) {
|
|
28
|
+
super(props);
|
|
29
|
+
(0, _defineProperty2.default)(this, "updateRole", role => {
|
|
30
|
+
this.setState({
|
|
31
|
+
role
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
(0, _defineProperty2.default)(this, "handleSubmit", () => {
|
|
35
|
+
const {
|
|
36
|
+
identifiers,
|
|
37
|
+
role
|
|
38
|
+
} = this.state;
|
|
39
|
+
const identifiersArray = identifiers.split(/\r\n|\r|\n/g).map(id => id.trim()).filter(id => id !== ''); // filter identifiers that are empty
|
|
40
|
+
const errorMessage = this.getValidationErrorMessage(identifiersArray);
|
|
41
|
+
if (errorMessage) {
|
|
42
|
+
this.setState({
|
|
43
|
+
showErrorAlert: true,
|
|
44
|
+
errorMessage
|
|
45
|
+
});
|
|
46
|
+
} else {
|
|
47
|
+
this.props.addUserRoles(identifiersArray, role);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
(0, _defineProperty2.default)(this, "closeErrorAlert", () => {
|
|
51
|
+
this.setState({
|
|
52
|
+
showErrorAlert: false,
|
|
53
|
+
errorMessage: undefined
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
(0, _defineProperty2.default)(this, "updateIdentifiers", e => {
|
|
57
|
+
this.setState({
|
|
58
|
+
identifiers: e.target.value
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
(0, _defineProperty2.default)(this, "getValidationErrorMessage", identifiers => {
|
|
62
|
+
if (!identifiers || identifiers.length === 0) {
|
|
63
|
+
return `Please enter at least one ${(0, _domainIdentifier.getDomainIdentifierTypeString)()}.`;
|
|
64
|
+
}
|
|
65
|
+
let invalidIdentifiers;
|
|
66
|
+
if ((0, _shard.isPurdueShard)() && !identifiers.every(id => (0, _string.isPurdueAliasOrPuid)(id))) {
|
|
67
|
+
invalidIdentifiers = identifiers.filter(id => !(0, _string.isPurdueAliasOrPuid)(id));
|
|
68
|
+
}
|
|
69
|
+
if (!(0, _shard.isPurdueShard)() && !identifiers.every(id => (0, _string.isEmail)(id))) {
|
|
70
|
+
invalidIdentifiers = identifiers.filter(id => !(0, _string.isEmail)(id));
|
|
71
|
+
}
|
|
72
|
+
if (invalidIdentifiers) {
|
|
73
|
+
return `Please enter valid ${(0, _domainIdentifier.getDomainIdentifierTypePluralString)()}. The following are invalid:\r\n${invalidIdentifiers.join('\r\n')}`;
|
|
74
|
+
}
|
|
75
|
+
return undefined;
|
|
76
|
+
});
|
|
77
|
+
this.state = {
|
|
78
|
+
identifiers: '',
|
|
79
|
+
role: this.props.defaultRole,
|
|
80
|
+
showErrorAlert: false,
|
|
81
|
+
errorMessage: undefined
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
componentDidUpdate(prevProps) {
|
|
85
|
+
const {
|
|
86
|
+
shouldReset: prevShouldReset
|
|
87
|
+
} = prevProps;
|
|
88
|
+
const {
|
|
89
|
+
shouldReset
|
|
90
|
+
} = this.props;
|
|
91
|
+
if (!prevShouldReset && shouldReset) {
|
|
92
|
+
this.setState({
|
|
93
|
+
identifiers: '',
|
|
94
|
+
role: this.props.defaultRole
|
|
95
|
+
});
|
|
99
96
|
}
|
|
97
|
+
}
|
|
98
|
+
render() {
|
|
99
|
+
const {
|
|
100
|
+
identifiers,
|
|
101
|
+
role,
|
|
102
|
+
showErrorAlert,
|
|
103
|
+
errorMessage
|
|
104
|
+
} = this.state;
|
|
105
|
+
const {
|
|
106
|
+
entityName,
|
|
107
|
+
isAddingUsersToRole,
|
|
108
|
+
roleDescriptions,
|
|
109
|
+
renderAddDescription,
|
|
110
|
+
disabled,
|
|
111
|
+
textForRole
|
|
112
|
+
} = this.props;
|
|
113
|
+
const roles = _lodash.default.keys(roleDescriptions);
|
|
114
|
+
const rolePopover = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Popover, {
|
|
115
|
+
id: "role",
|
|
116
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("h3", {
|
|
117
|
+
children: "Role"
|
|
118
|
+
}), roles.map(r => /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Fragment, {
|
|
119
|
+
children: roleDescriptions[r]
|
|
120
|
+
}, r))]
|
|
121
|
+
});
|
|
122
|
+
const appConfig = (0, _configuration.getAppConfig)();
|
|
123
|
+
const appName = appConfig.APP_NAME;
|
|
124
|
+
const gradableDescriptor = appConfig.GRADABLE_DESCRIPTOR;
|
|
125
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Row, {
|
|
126
|
+
children: [!!renderAddDescription && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Col, {
|
|
127
|
+
xs: 12,
|
|
128
|
+
children: renderAddDescription(entityName)
|
|
129
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Col, {
|
|
130
|
+
xs: 12,
|
|
131
|
+
sm: 6,
|
|
132
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.FormGroup, {
|
|
133
|
+
controlId: "UserEntry",
|
|
134
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.FormLabel, {
|
|
135
|
+
className: "f6",
|
|
136
|
+
children: [(0, _domainIdentifier.getDomainIdentifierTypePluralString)(), " (separated by a new line)"]
|
|
137
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.FormControl, {
|
|
138
|
+
type: "text",
|
|
139
|
+
as: "textarea",
|
|
140
|
+
name: "account",
|
|
141
|
+
"aria-label": "The account names to add",
|
|
142
|
+
onChange: this.updateIdentifiers,
|
|
143
|
+
value: identifiers,
|
|
144
|
+
placeholder: (0, _domainIdentifier.getDomainIdentifierTypeString)(),
|
|
145
|
+
disabled: disabled
|
|
146
|
+
})]
|
|
147
|
+
})
|
|
148
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Col, {
|
|
149
|
+
xs: 12,
|
|
150
|
+
sm: 4,
|
|
151
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Select.RoleSelect, {
|
|
152
|
+
options: roles,
|
|
153
|
+
value: role,
|
|
154
|
+
onChange: this.updateRole,
|
|
155
|
+
labelVisible: true,
|
|
156
|
+
popoverContentComponent: rolePopover,
|
|
157
|
+
textForRole: textForRole
|
|
158
|
+
})
|
|
159
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Col, {
|
|
160
|
+
xs: 12,
|
|
161
|
+
sm: 2,
|
|
162
|
+
className: "mt3-ns pt2-ns",
|
|
163
|
+
children: [isAddingUsersToRole && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Inline.RefreshIndicatorInline, {
|
|
164
|
+
className: "mr3"
|
|
165
|
+
}), !isAddingUsersToRole && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
|
|
166
|
+
id: "userRolesAddButton",
|
|
167
|
+
color: "primary",
|
|
168
|
+
className: "btn-primary w-100-lt-xs",
|
|
169
|
+
disabled: !identifiers || disabled,
|
|
170
|
+
onClick: this.handleSubmit,
|
|
171
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_AddCircle.default, {
|
|
172
|
+
className: "v-mid"
|
|
173
|
+
}), "Add"]
|
|
174
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_AlertDialog.AlertDialog, {
|
|
175
|
+
isOpen: showErrorAlert,
|
|
176
|
+
title: `Error Adding People to the ${entityName}`,
|
|
177
|
+
description: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
178
|
+
className: "pre-wrap",
|
|
179
|
+
children: errorMessage
|
|
180
|
+
}),
|
|
181
|
+
proceedText: "Got it. Thanks!",
|
|
182
|
+
onProceed: this.closeErrorAlert,
|
|
183
|
+
onCancel: this.closeErrorAlert
|
|
184
|
+
})]
|
|
185
|
+
}), _lodash.default.includes(FERPA_ROLES, role) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Col, {
|
|
186
|
+
xs: 12,
|
|
187
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_AlertWithIcon.AlertWithIcon, {
|
|
188
|
+
id: "ferpaWarning",
|
|
189
|
+
variant: "warning",
|
|
190
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
191
|
+
children: ["This role includes ", gradableDescriptor, " scores in ", appName, ". Please consider whether", ' ', /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
|
|
192
|
+
href: "https://www.purdue.edu/registrar/FERPA/index.html",
|
|
193
|
+
target: "_blank",
|
|
194
|
+
rel: "noopener noreferrer",
|
|
195
|
+
children: "FERPA"
|
|
196
|
+
}), ' ', "certification is needed."]
|
|
197
|
+
})
|
|
198
|
+
})
|
|
199
|
+
})]
|
|
200
|
+
});
|
|
201
|
+
}
|
|
100
202
|
}
|
|
101
203
|
exports.UserRolesAdd = UserRolesAdd;
|
|
204
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQnV0dG9uIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfQWRkQ2lyY2xlIiwiX2xvZGFzaCIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3JlYWN0Qm9vdHN0cmFwIiwiX0FsZXJ0RGlhbG9nIiwiX0lubGluZSIsIl9TZWxlY3QiLCJfYmFzZVJvbGUiLCJfY29uZmlndXJhdGlvbiIsIl9kb21haW5JZGVudGlmaWVyIiwiX3NoYXJkIiwiX3N0cmluZyIsIl9BbGVydFdpdGhJY29uIiwiX2pzeFJ1bnRpbWUiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJGRVJQQV9ST0xFUyIsIkJBU0VfUk9MRSIsIlNVUEVSX0FETUlOIiwiQURNSU4iLCJHUk9VUF9PV05FUiIsIkdST1VQX0dSQURFUiIsIlVzZXJSb2xlc0FkZCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkyIiwicm9sZSIsInNldFN0YXRlIiwiaWRlbnRpZmllcnMiLCJzdGF0ZSIsImlkZW50aWZpZXJzQXJyYXkiLCJzcGxpdCIsIm1hcCIsImlkIiwidHJpbSIsImZpbHRlciIsImVycm9yTWVzc2FnZSIsImdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UiLCJzaG93RXJyb3JBbGVydCIsImFkZFVzZXJSb2xlcyIsInVuZGVmaW5lZCIsInRhcmdldCIsInZhbHVlIiwibGVuZ3RoIiwiZ2V0RG9tYWluSWRlbnRpZmllclR5cGVTdHJpbmciLCJpbnZhbGlkSWRlbnRpZmllcnMiLCJpc1B1cmR1ZVNoYXJkIiwiZXZlcnkiLCJpc1B1cmR1ZUFsaWFzT3JQdWlkIiwiaXNFbWFpbCIsImdldERvbWFpbklkZW50aWZpZXJUeXBlUGx1cmFsU3RyaW5nIiwiam9pbiIsImRlZmF1bHRSb2xlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwic2hvdWxkUmVzZXQiLCJwcmV2U2hvdWxkUmVzZXQiLCJyZW5kZXIiLCJlbnRpdHlOYW1lIiwiaXNBZGRpbmdVc2Vyc1RvUm9sZSIsInJvbGVEZXNjcmlwdGlvbnMiLCJyZW5kZXJBZGREZXNjcmlwdGlvbiIsImRpc2FibGVkIiwidGV4dEZvclJvbGUiLCJyb2xlcyIsIl8iLCJrZXlzIiwicm9sZVBvcG92ZXIiLCJqc3hzIiwiUG9wb3ZlciIsImNoaWxkcmVuIiwianN4IiwiRnJhZ21lbnQiLCJhcHBDb25maWciLCJnZXRBcHBDb25maWciLCJhcHBOYW1lIiwiQVBQX05BTUUiLCJncmFkYWJsZURlc2NyaXB0b3IiLCJHUkFEQUJMRV9ERVNDUklQVE9SIiwiUm93IiwiQ29sIiwieHMiLCJzbSIsIkZvcm1Hcm91cCIsImNvbnRyb2xJZCIsIkZvcm1MYWJlbCIsImNsYXNzTmFtZSIsIkZvcm1Db250cm9sIiwidHlwZSIsImFzIiwibmFtZSIsIm9uQ2hhbmdlIiwidXBkYXRlSWRlbnRpZmllcnMiLCJwbGFjZWhvbGRlciIsIlJvbGVTZWxlY3QiLCJvcHRpb25zIiwidXBkYXRlUm9sZSIsImxhYmVsVmlzaWJsZSIsInBvcG92ZXJDb250ZW50Q29tcG9uZW50IiwiUmVmcmVzaEluZGljYXRvcklubGluZSIsImNvbG9yIiwib25DbGljayIsImhhbmRsZVN1Ym1pdCIsIkFsZXJ0RGlhbG9nIiwiaXNPcGVuIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInByb2NlZWRUZXh0Iiwib25Qcm9jZWVkIiwiY2xvc2VFcnJvckFsZXJ0Iiwib25DYW5jZWwiLCJpbmNsdWRlcyIsIkFsZXJ0V2l0aEljb24iLCJ2YXJpYW50IiwiaHJlZiIsInJlbCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Vc2VyUm9sZXMvQWRkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnV0dG9uIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0J1dHRvbidcclxuaW1wb3J0IEFkZENpcmNsZSBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvQWRkQ2lyY2xlJ1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnXHJcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQsIEZyYWdtZW50IH0gZnJvbSAncmVhY3QnXHJcbmltcG9ydCB7IENvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybUxhYmVsLCBQb3BvdmVyLCBSb3cgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnXHJcbmltcG9ydCB7IEFsZXJ0RGlhbG9nIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9BbGVydERpYWxvZydcclxuaW1wb3J0IHsgUmVmcmVzaEluZGljYXRvcklubGluZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvUmVmcmVzaEluZGljYXRvci9JbmxpbmUnXHJcbmltcG9ydCB7IFJvbGVTZWxlY3QgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1VzZXJSb2xlcy9TZWxlY3QnXHJcbmltcG9ydCB7IEJBU0VfUk9MRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9iYXNlUm9sZSdcclxuaW1wb3J0IHsgZ2V0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZ3VyYXRpb24nXHJcbmltcG9ydCB7IFJvbGVEZXNjcmlwdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcydcclxuaW1wb3J0IHsgZ2V0RG9tYWluSWRlbnRpZmllclR5cGVQbHVyYWxTdHJpbmcsIGdldERvbWFpbklkZW50aWZpZXJUeXBlU3RyaW5nIH0gZnJvbSAnLi4vLi4vdXRpbHMvZG9tYWluSWRlbnRpZmllcidcclxuaW1wb3J0IHsgaXNQdXJkdWVTaGFyZCB9IGZyb20gJy4uLy4uL3V0aWxzL3NoYXJkJ1xyXG5pbXBvcnQgeyBpc0VtYWlsLCBpc1B1cmR1ZUFsaWFzT3JQdWlkIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3RyaW5nJ1xyXG5pbXBvcnQgeyBBbGVydFdpdGhJY29uIH0gZnJvbSAnLi4vQWxlcnRXaXRoSWNvbidcclxuXHJcbmNvbnN0IEZFUlBBX1JPTEVTID0gW0JBU0VfUk9MRS5TVVBFUl9BRE1JTiwgQkFTRV9ST0xFLkFETUlOLCBCQVNFX1JPTEUuR1JPVVBfT1dORVIsIEJBU0VfUk9MRS5HUk9VUF9HUkFERVJdXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJSb2xlc0FkZFByb3BzIHtcclxuXHRpZDogc3RyaW5nXHJcblxyXG5cdGRpc2FibGVkPzogYm9vbGVhblxyXG5cdGVudGl0eU5hbWU/OiBzdHJpbmdcclxuXHRkZWZhdWx0Um9sZTogc3RyaW5nXHJcblx0cm9sZURlc2NyaXB0aW9uczogUm9sZURlc2NyaXB0aW9uc1xyXG5cdHJlbmRlckFkZERlc2NyaXB0aW9uPzogKGVudGl0eU5hbWU/OiBzdHJpbmcpID0+IFJlYWN0LkpTWC5FbGVtZW50XHJcblx0dGV4dEZvclJvbGU/OiAocm9sZTogc3RyaW5nKSA9PiBzdHJpbmdcclxuXHJcblx0aXNBZGRpbmdVc2Vyc1RvUm9sZTogYm9vbGVhblxyXG5cdHNob3VsZFJlc2V0OiBib29sZWFuXHJcblx0YWRkVXNlclJvbGVzOiAoaWRlbnRpZmllcnM6IHN0cmluZ1tdLCByb2xlOiBzdHJpbmcpID0+IHZvaWRcclxufVxyXG5cclxuaW50ZXJmYWNlIFVzZXJSb2xlc0FkZFN0YXRlIHtcclxuXHRpZGVudGlmaWVyczogc3RyaW5nXHJcblx0cm9sZTogc3RyaW5nXHJcblx0c2hvd0Vycm9yQWxlcnQ6IGJvb2xlYW5cclxuXHRlcnJvck1lc3NhZ2U/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJSb2xlc0FkZCBleHRlbmRzIENvbXBvbmVudDxVc2VyUm9sZXNBZGRQcm9wcywgVXNlclJvbGVzQWRkU3RhdGU+IHtcclxuXHRjb25zdHJ1Y3Rvcihwcm9wczogVXNlclJvbGVzQWRkUHJvcHMpIHtcclxuXHRcdHN1cGVyKHByb3BzKVxyXG5cdFx0dGhpcy5zdGF0ZSA9IHtcclxuXHRcdFx0aWRlbnRpZmllcnM6ICcnLFxyXG5cdFx0XHRyb2xlOiB0aGlzLnByb3BzLmRlZmF1bHRSb2xlLFxyXG5cdFx0XHRzaG93RXJyb3JBbGVydDogZmFsc2UsXHJcblx0XHRcdGVycm9yTWVzc2FnZTogdW5kZWZpbmVkXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR1cGRhdGVSb2xlID0gKHJvbGU6IHN0cmluZykgPT4ge1xyXG5cdFx0dGhpcy5zZXRTdGF0ZSh7XHJcblx0XHRcdHJvbGVcclxuXHRcdH0pXHJcblx0fVxyXG5cclxuXHRjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzOiBVc2VyUm9sZXNBZGRQcm9wcykge1xyXG5cdFx0Y29uc3QgeyBzaG91bGRSZXNldDogcHJldlNob3VsZFJlc2V0IH0gPSBwcmV2UHJvcHNcclxuXHRcdGNvbnN0IHsgc2hvdWxkUmVzZXQgfSA9IHRoaXMucHJvcHNcclxuXHRcdGlmICghcHJldlNob3VsZFJlc2V0ICYmIHNob3VsZFJlc2V0KSB7XHJcblx0XHRcdHRoaXMuc2V0U3RhdGUoe1xyXG5cdFx0XHRcdGlkZW50aWZpZXJzOiAnJyxcclxuXHRcdFx0XHRyb2xlOiB0aGlzLnByb3BzLmRlZmF1bHRSb2xlXHJcblx0XHRcdH0pXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRoYW5kbGVTdWJtaXQgPSAoKSA9PiB7XHJcblx0XHRjb25zdCB7IGlkZW50aWZpZXJzLCByb2xlIH0gPSB0aGlzLnN0YXRlXHJcblx0XHRjb25zdCBpZGVudGlmaWVyc0FycmF5ID0gaWRlbnRpZmllcnNcclxuXHRcdFx0LnNwbGl0KC9cXHJcXG58XFxyfFxcbi9nKVxyXG5cdFx0XHQubWFwKGlkID0+IGlkLnRyaW0oKSlcclxuXHRcdFx0LmZpbHRlcihpZCA9PiBpZCAhPT0gJycpIC8vIGZpbHRlciBpZGVudGlmaWVycyB0aGF0IGFyZSBlbXB0eVxyXG5cdFx0Y29uc3QgZXJyb3JNZXNzYWdlID0gdGhpcy5nZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlKGlkZW50aWZpZXJzQXJyYXkpXHJcblx0XHRpZiAoZXJyb3JNZXNzYWdlKSB7XHJcblx0XHRcdHRoaXMuc2V0U3RhdGUoe1xyXG5cdFx0XHRcdHNob3dFcnJvckFsZXJ0OiB0cnVlLFxyXG5cdFx0XHRcdGVycm9yTWVzc2FnZVxyXG5cdFx0XHR9KVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5wcm9wcy5hZGRVc2VyUm9sZXMoaWRlbnRpZmllcnNBcnJheSwgcm9sZSlcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNsb3NlRXJyb3JBbGVydCA9ICgpID0+IHtcclxuXHRcdHRoaXMuc2V0U3RhdGUoe1xyXG5cdFx0XHRzaG93RXJyb3JBbGVydDogZmFsc2UsXHJcblx0XHRcdGVycm9yTWVzc2FnZTogdW5kZWZpbmVkXHJcblx0XHR9KVxyXG5cdH1cclxuXHJcblx0dXBkYXRlSWRlbnRpZmllcnMgPSAoZTogYW55KSA9PiB7XHJcblx0XHR0aGlzLnNldFN0YXRlKHtcclxuXHRcdFx0aWRlbnRpZmllcnM6IGUudGFyZ2V0LnZhbHVlIGFzIHN0cmluZ1xyXG5cdFx0fSlcclxuXHR9XHJcblxyXG5cdGdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UgPSAoaWRlbnRpZmllcnM/OiBzdHJpbmdbXSkgPT4ge1xyXG5cdFx0aWYgKCFpZGVudGlmaWVycyB8fCBpZGVudGlmaWVycy5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0cmV0dXJuIGBQbGVhc2UgZW50ZXIgYXQgbGVhc3Qgb25lICR7Z2V0RG9tYWluSWRlbnRpZmllclR5cGVTdHJpbmcoKX0uYFxyXG5cdFx0fVxyXG5cclxuXHRcdGxldCBpbnZhbGlkSWRlbnRpZmllcnNcclxuXHRcdGlmIChpc1B1cmR1ZVNoYXJkKCkgJiYgIWlkZW50aWZpZXJzLmV2ZXJ5KGlkID0+IGlzUHVyZHVlQWxpYXNPclB1aWQoaWQpKSkge1xyXG5cdFx0XHRpbnZhbGlkSWRlbnRpZmllcnMgPSBpZGVudGlmaWVycy5maWx0ZXIoaWQgPT4gIWlzUHVyZHVlQWxpYXNPclB1aWQoaWQpKVxyXG5cdFx0fVxyXG5cdFx0aWYgKCFpc1B1cmR1ZVNoYXJkKCkgJiYgIWlkZW50aWZpZXJzLmV2ZXJ5KGlkID0+IGlzRW1haWwoaWQpKSkge1xyXG5cdFx0XHRpbnZhbGlkSWRlbnRpZmllcnMgPSBpZGVudGlmaWVycy5maWx0ZXIoaWQgPT4gIWlzRW1haWwoaWQpKVxyXG5cdFx0fVxyXG5cdFx0aWYgKGludmFsaWRJZGVudGlmaWVycykge1xyXG5cdFx0XHRyZXR1cm4gYFBsZWFzZSBlbnRlciB2YWxpZCAke2dldERvbWFpbklkZW50aWZpZXJUeXBlUGx1cmFsU3RyaW5nKCl9LiBUaGUgZm9sbG93aW5nIGFyZSBpbnZhbGlkOlxcclxcbiR7aW52YWxpZElkZW50aWZpZXJzLmpvaW4oXHJcblx0XHRcdFx0J1xcclxcbidcclxuXHRcdFx0KX1gXHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdW5kZWZpbmVkXHJcblx0fVxyXG5cclxuXHRyZW5kZXIoKSB7XHJcblx0XHRjb25zdCB7IGlkZW50aWZpZXJzLCByb2xlLCBzaG93RXJyb3JBbGVydCwgZXJyb3JNZXNzYWdlIH0gPSB0aGlzLnN0YXRlXHJcblx0XHRjb25zdCB7IGVudGl0eU5hbWUsIGlzQWRkaW5nVXNlcnNUb1JvbGUsIHJvbGVEZXNjcmlwdGlvbnMsIHJlbmRlckFkZERlc2NyaXB0aW9uLCBkaXNhYmxlZCwgdGV4dEZvclJvbGUgfSA9XHJcblx0XHRcdHRoaXMucHJvcHNcclxuXHRcdGNvbnN0IHJvbGVzID0gXy5rZXlzKHJvbGVEZXNjcmlwdGlvbnMpXHJcblx0XHRjb25zdCByb2xlUG9wb3ZlciA9IChcclxuXHRcdFx0PFBvcG92ZXIgaWQ9XCJyb2xlXCI+XHJcblx0XHRcdFx0PGgzPlJvbGU8L2gzPlxyXG5cdFx0XHRcdHtyb2xlcy5tYXAociA9PiAoXHJcblx0XHRcdFx0XHQ8RnJhZ21lbnQga2V5PXtyfT57cm9sZURlc2NyaXB0aW9uc1tyXX08L0ZyYWdtZW50PlxyXG5cdFx0XHRcdCkpfVxyXG5cdFx0XHQ8L1BvcG92ZXI+XHJcblx0XHQpXHJcblxyXG5cdFx0Y29uc3QgYXBwQ29uZmlnID0gZ2V0QXBwQ29uZmlnKClcclxuXHRcdGNvbnN0IGFwcE5hbWUgPSBhcHBDb25maWcuQVBQX05BTUVcclxuXHRcdGNvbnN0IGdyYWRhYmxlRGVzY3JpcHRvciA9IGFwcENvbmZpZy5HUkFEQUJMRV9ERVNDUklQVE9SXHJcblxyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0PFJvdz5cclxuXHRcdFx0XHR7ISFyZW5kZXJBZGREZXNjcmlwdGlvbiAmJiA8Q29sIHhzPXsxMn0+e3JlbmRlckFkZERlc2NyaXB0aW9uKGVudGl0eU5hbWUpfTwvQ29sPn1cclxuXHRcdFx0XHQ8Q29sIHhzPXsxMn0gc209ezZ9PlxyXG5cdFx0XHRcdFx0PEZvcm1Hcm91cCBjb250cm9sSWQ9XCJVc2VyRW50cnlcIj5cclxuXHRcdFx0XHRcdFx0PEZvcm1MYWJlbCBjbGFzc05hbWU9XCJmNlwiPlxyXG5cdFx0XHRcdFx0XHRcdHtnZXREb21haW5JZGVudGlmaWVyVHlwZVBsdXJhbFN0cmluZygpfSAoc2VwYXJhdGVkIGJ5IGEgbmV3IGxpbmUpXHJcblx0XHRcdFx0XHRcdDwvRm9ybUxhYmVsPlxyXG5cdFx0XHRcdFx0XHQ8Rm9ybUNvbnRyb2xcclxuXHRcdFx0XHRcdFx0XHR0eXBlPVwidGV4dFwiXHJcblx0XHRcdFx0XHRcdFx0YXM9XCJ0ZXh0YXJlYVwiXHJcblx0XHRcdFx0XHRcdFx0bmFtZT1cImFjY291bnRcIlxyXG5cdFx0XHRcdFx0XHRcdGFyaWEtbGFiZWw9XCJUaGUgYWNjb3VudCBuYW1lcyB0byBhZGRcIlxyXG5cdFx0XHRcdFx0XHRcdG9uQ2hhbmdlPXt0aGlzLnVwZGF0ZUlkZW50aWZpZXJzfVxyXG5cdFx0XHRcdFx0XHRcdHZhbHVlPXtpZGVudGlmaWVyc31cclxuXHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj17Z2V0RG9tYWluSWRlbnRpZmllclR5cGVTdHJpbmcoKX1cclxuXHRcdFx0XHRcdFx0XHRkaXNhYmxlZD17ZGlzYWJsZWR9XHJcblx0XHRcdFx0XHRcdC8+XHJcblx0XHRcdFx0XHQ8L0Zvcm1Hcm91cD5cclxuXHRcdFx0XHQ8L0NvbD5cclxuXHRcdFx0XHQ8Q29sIHhzPXsxMn0gc209ezR9PlxyXG5cdFx0XHRcdFx0PFJvbGVTZWxlY3RcclxuXHRcdFx0XHRcdFx0b3B0aW9ucz17cm9sZXN9XHJcblx0XHRcdFx0XHRcdHZhbHVlPXtyb2xlfVxyXG5cdFx0XHRcdFx0XHRvbkNoYW5nZT17dGhpcy51cGRhdGVSb2xlfVxyXG5cdFx0XHRcdFx0XHRsYWJlbFZpc2libGVcclxuXHRcdFx0XHRcdFx0cG9wb3ZlckNvbnRlbnRDb21wb25lbnQ9e3JvbGVQb3BvdmVyfVxyXG5cdFx0XHRcdFx0XHR0ZXh0Rm9yUm9sZT17dGV4dEZvclJvbGV9XHJcblx0XHRcdFx0XHQvPlxyXG5cdFx0XHRcdDwvQ29sPlxyXG5cdFx0XHRcdDxDb2wgeHM9ezEyfSBzbT17Mn0gY2xhc3NOYW1lPVwibXQzLW5zIHB0Mi1uc1wiPlxyXG5cdFx0XHRcdFx0e2lzQWRkaW5nVXNlcnNUb1JvbGUgJiYgPFJlZnJlc2hJbmRpY2F0b3JJbmxpbmUgY2xhc3NOYW1lPVwibXIzXCIgLz59XHJcblx0XHRcdFx0XHR7IWlzQWRkaW5nVXNlcnNUb1JvbGUgJiYgKFxyXG5cdFx0XHRcdFx0XHQ8QnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0aWQ9XCJ1c2VyUm9sZXNBZGRCdXR0b25cIlxyXG5cdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPVwiYnRuLXByaW1hcnkgdy0xMDAtbHQteHNcIlxyXG5cdFx0XHRcdFx0XHRcdGRpc2FibGVkPXshaWRlbnRpZmllcnMgfHwgZGlzYWJsZWR9XHJcblx0XHRcdFx0XHRcdFx0b25DbGljaz17dGhpcy5oYW5kbGVTdWJtaXR9PlxyXG5cdFx0XHRcdFx0XHRcdDxBZGRDaXJjbGUgY2xhc3NOYW1lPVwidi1taWRcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdEFkZFxyXG5cdFx0XHRcdFx0XHQ8L0J1dHRvbj5cclxuXHRcdFx0XHRcdCl9XHJcblx0XHRcdFx0XHQ8QWxlcnREaWFsb2dcclxuXHRcdFx0XHRcdFx0aXNPcGVuPXtzaG93RXJyb3JBbGVydH1cclxuXHRcdFx0XHRcdFx0dGl0bGU9e2BFcnJvciBBZGRpbmcgUGVvcGxlIHRvIHRoZSAke2VudGl0eU5hbWV9YH1cclxuXHRcdFx0XHRcdFx0ZGVzY3JpcHRpb249ezxkaXYgY2xhc3NOYW1lPVwicHJlLXdyYXBcIj57ZXJyb3JNZXNzYWdlfTwvZGl2Pn1cclxuXHRcdFx0XHRcdFx0cHJvY2VlZFRleHQ9XCJHb3QgaXQuIFRoYW5rcyFcIlxyXG5cdFx0XHRcdFx0XHRvblByb2NlZWQ9e3RoaXMuY2xvc2VFcnJvckFsZXJ0fVxyXG5cdFx0XHRcdFx0XHRvbkNhbmNlbD17dGhpcy5jbG9zZUVycm9yQWxlcnR9XHJcblx0XHRcdFx0XHQvPlxyXG5cdFx0XHRcdDwvQ29sPlxyXG5cdFx0XHRcdHtfLmluY2x1ZGVzKEZFUlBBX1JPTEVTLCByb2xlKSAmJiAoXHJcblx0XHRcdFx0XHQ8Q29sIHhzPXsxMn0+XHJcblx0XHRcdFx0XHRcdDxBbGVydFdpdGhJY29uIGlkPVwiZmVycGFXYXJuaW5nXCIgdmFyaWFudD1cIndhcm5pbmdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8cD5cclxuXHRcdFx0XHRcdFx0XHRcdFRoaXMgcm9sZSBpbmNsdWRlcyB7Z3JhZGFibGVEZXNjcmlwdG9yfSBzY29yZXMgaW4ge2FwcE5hbWV9LiBQbGVhc2UgY29uc2lkZXIgd2hldGhlcnsnICd9XHJcblx0XHRcdFx0XHRcdFx0XHQ8YVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRocmVmPVwiaHR0cHM6Ly93d3cucHVyZHVlLmVkdS9yZWdpc3RyYXIvRkVSUEEvaW5kZXguaHRtbFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRhcmdldD1cIl9ibGFua1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0RkVSUEFcclxuXHRcdFx0XHRcdFx0XHRcdDwvYT57JyAnfVxyXG5cdFx0XHRcdFx0XHRcdFx0Y2VydGlmaWNhdGlvbiBpcyBuZWVkZWQuXHJcblx0XHRcdFx0XHRcdFx0PC9wPlxyXG5cdFx0XHRcdFx0XHQ8L0FsZXJ0V2l0aEljb24+XHJcblx0XHRcdFx0XHQ8L0NvbD5cclxuXHRcdFx0XHQpfVxyXG5cdFx0XHQ8L1Jvdz5cclxuXHRcdClcclxuXHR9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFLLGVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLE9BQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFNBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLGNBQUEsR0FBQVYsT0FBQTtBQUVBLElBQUFXLGlCQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxPQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxjQUFBLEdBQUFkLE9BQUE7QUFBZ0QsSUFBQWUsV0FBQSxHQUFBZixPQUFBO0FBQUEsU0FBQUksd0JBQUFZLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFkLHVCQUFBLFlBQUFBLENBQUFZLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxF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
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
3
7
|
exports.UserRolesContext = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
* by the context provider.
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
/*
|
|
10
|
+
* Context provided to the children of UserRoles. Default values should be initialized
|
|
11
|
+
* by the context provider.
|
|
9
12
|
*/
|
|
10
13
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
11
|
-
exports.UserRolesContext =
|
|
14
|
+
const UserRolesContext = exports.UserRolesContext = /*#__PURE__*/_react.default.createContext(undefined);
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIlVzZXJSb2xlc0NvbnRleHQiLCJleHBvcnRzIiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVXNlclJvbGVzL0NvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcclxuaW1wb3J0IHsgVXNlclJvbGUgfSBmcm9tICcuLi8uLi90eXBlcydcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJvbGVzQ29udGV4dFR5cGUge1xyXG5cdC8qKiBkaXNhYmxlIGFsbCB1c2VyIHJvbGUgc2VsZWN0IGRyb3Bkb3ducywgaWYgYW55ICovXHJcblx0aXNVcGRhdGVEaXNhYmxlZD86IGJvb2xlYW5cclxuXHQvKiogZGlzYWJsZSBhbGwgdXNlciByb2xlIGRlbGV0ZSBidXR0b25zICovXHJcblx0aXNEZWxldGVEaXNhYmxlZD86IGJvb2xlYW5cclxuXHQvKiogSXMgdGhlIGN1cnJlbnQgdXNlciBhbGxvd2VkIHRvIGFkZCwgdXBkYXRlLCBhbmQgZGVsZXRlIHVzZXIgcm9sZXM/ICovXHJcblx0Y2FuTW9kaWZ5PzogYm9vbGVhblxyXG5cdC8qKiBJcyB0aGUgY3VycmVudCB1c2VyIGFsbG93ZWQgdG8gZGVsZXRlIHRoZWlyIG93biB1c2VyIHJvbGU/ICovXHJcblx0Y2FuRGVsZXRlU2VsZj86IGJvb2xlYW5cclxuXHQvKiogSWYgbXVsdGlwbGUgcm9sZXMgYWxsb3dlZCwgZWFjaCByb2xlIGlzIGRpc3BsYXllZCBwZXIgdXNlciwgb3RoZXJ3aXNlIGEgc2VsZWN0IGRyb3Bkb3duIGlzIGRpc3BsYXllZC4gKi9cclxuXHRhbGxvd011bHRpcGxlUm9sZXM/OiBib29sZWFuXHJcblx0cm9sZXM6IHN0cmluZ1tdXHJcblx0LyoqIChPcHRpb25hbCkgSWYgcHJvdmlkZWQsIHRoZSBsYXN0IHVzZXIgcm9sZSB3aXRoIHRoZSByZXF1aXJlZCByb2xlIHdpbGwgYmUgcHJldmVudGVkIGZyb20gYmVpbmcgcmVtb3ZlZC4gKi9cclxuXHRyZXF1aXJlZFJvbGU/OiBzdHJpbmdcclxuXHQvKiogKE9wdGlvbmFsKSBQcm92aWRlIGN1c3RvbSB1c2VyLWZyaWVuZGx5IG5hbWVzIGZvciBkaXNwbGF5ZWQgcm9sZXMgKi9cclxuXHR0ZXh0Rm9yUm9sZT86IChyb2xlOiBzdHJpbmcpID0+IHN0cmluZ1xyXG5cdC8qKiBUaGUgdXNlciByb2xlIGJlaW5nIHVwZGF0ZWQgKi9cclxuXHR1c2VyUm9sZVRvVXBkYXRlPzogVXNlclJvbGVcclxuXHQvKiogSWYgYSB1c2VyIHJvbGUgaXMgYmVpbmcgdXBkYXRlZCAqL1xyXG5cdGlzVXBkYXRpbmc6IGJvb2xlYW5cclxuXHQvKiogTWV0aG9kIHRvIHVwZGF0ZSBhIHVzZXIgcm9sZSAqL1xyXG5cdHVwZGF0ZVVzZXJSb2xlOiAodXNlclJvbGVUb1VwZGF0ZTogVXNlclJvbGUsIG5ld1JvbGU6IHN0cmluZykgPT4gdm9pZFxyXG5cdC8qKiBUaGUgdXNlciByb2xlIGJlaW5nIHJlbW92ZWQgKi9cclxuXHR1c2VyUm9sZVRvUmVtb3ZlPzogVXNlclJvbGVcclxuXHQvKiogSWYgYSB1c2VyIHJvbGUgaXMgYmVpbmcgcmVtb3ZlZCAqL1xyXG5cdGlzUmVtb3Zpbmc6IGJvb2xlYW5cclxuXHQvKiogTWV0aG9kIHRvIHJlbW92ZSBhIHVzZXIgcm9sZSAqL1xyXG5cdHJlbW92ZVVzZXJSb2xlOiAodXNlclJvbGVUb1JlbW92ZTogVXNlclJvbGUpID0+IHZvaWRcclxufVxyXG5cclxuLypcclxuICogQ29udGV4dCBwcm92aWRlZCB0byB0aGUgY2hpbGRyZW4gb2YgVXNlclJvbGVzLiAgRGVmYXVsdCB2YWx1ZXMgc2hvdWxkIGJlIGluaXRpYWxpemVkXHJcbiAqIGJ5IHRoZSBjb250ZXh0IHByb3ZpZGVyLlxyXG4gKi9cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cclxuZXhwb3J0IGNvbnN0IFVzZXJSb2xlc0NvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PFVzZXJSb2xlc0NvbnRleHRUeXBlPih1bmRlZmluZWQhKVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFpQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLGdCQUFnQixHQUFBQyxPQUFBLENBQUFELGdCQUFBLGdCQUFHRSxjQUFLLENBQUNDLGFBQWEsQ0FBdUJDLFNBQVUsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|