@cakemail-org/ui-components-v2 2.2.114 → 2.2.116
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/dist/cjs/components/scopePicker/index.d.ts +3 -0
- package/dist/cjs/components/scopePicker/scopeGroups.d.ts +9 -2
- package/dist/cjs/components/sideMenu/types.d.ts +1 -0
- package/dist/cjs/index.js +234 -102
- package/dist/cjs/services/eventTracking/types.d.ts +2 -1
- package/dist/cjs/utils/service.d.ts +1 -0
- package/dist/esm/components/scopePicker/index.d.ts +3 -0
- package/dist/esm/components/scopePicker/scopeGroups.d.ts +9 -2
- package/dist/esm/components/sideMenu/types.d.ts +1 -0
- package/dist/esm/index.js +233 -103
- package/dist/esm/services/eventTracking/types.d.ts +2 -1
- package/dist/esm/utils/service.d.ts +1 -0
- package/package.json +5 -2
package/dist/cjs/index.js
CHANGED
|
@@ -529,8 +529,37 @@ function fetchRetry(_a) {
|
|
|
529
529
|
});
|
|
530
530
|
}
|
|
531
531
|
}).catch(function (e) {
|
|
532
|
-
onError
|
|
533
|
-
|
|
532
|
+
// Return the result of onError: on a retry it resolves to the recursive
|
|
533
|
+
// fetchRetry promise, so the caller receives the retried response. Without
|
|
534
|
+
// the return the chain would resolve to undefined and silently swallow it.
|
|
535
|
+
return onError(e);
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
// Single-resource API responses may be flat (the object itself) or enveloped as
|
|
539
|
+
// `{ data }`. Returns the inner payload in both cases; a flat object (no `data`
|
|
540
|
+
// key) is returned as-is. Centralizes the unwrap used by single-resource factories.
|
|
541
|
+
function unwrapResponse(data) {
|
|
542
|
+
// Reject null/undefined/empty-string/non-object bodies (e.g. a 204) loudly
|
|
543
|
+
// instead of building a model with undefined fields.
|
|
544
|
+
if (data == null || typeof data !== "object") {
|
|
545
|
+
throw new Error("API returned an empty or non-object response");
|
|
546
|
+
}
|
|
547
|
+
// Enveloped responses wrap the resource in a `data` field; flat responses are
|
|
548
|
+
// the resource object itself. When the envelope is present, its payload MUST
|
|
549
|
+
// be a non-array object — a null/array/scalar `data` is a malformed response
|
|
550
|
+
// and throws, rather than silently yielding the envelope as the resource.
|
|
551
|
+
if ("data" in data) {
|
|
552
|
+
var inner = data.data;
|
|
553
|
+
if (inner == null || typeof inner !== "object" || Array.isArray(inner)) {
|
|
554
|
+
throw new Error("API returned a null, array, or non-object payload");
|
|
555
|
+
}
|
|
556
|
+
return inner;
|
|
557
|
+
}
|
|
558
|
+
// Flat response: the object itself is the payload (but never an array).
|
|
559
|
+
if (Array.isArray(data)) {
|
|
560
|
+
throw new Error("API returned an array where a single resource was expected");
|
|
561
|
+
}
|
|
562
|
+
return data;
|
|
534
563
|
}
|
|
535
564
|
|
|
536
565
|
function getStorage(_a) {
|
|
@@ -6477,8 +6506,8 @@ function styleInject(css, ref) {
|
|
|
6477
6506
|
}
|
|
6478
6507
|
}
|
|
6479
6508
|
|
|
6480
|
-
var css_248z$
|
|
6481
|
-
styleInject(css_248z$
|
|
6509
|
+
var css_248z$z = ".actionBarContainer-component-v2 {\n left: 0;\n position: fixed;\n z-index: 8999;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 100%;\n pointer-events: none;\n}\n.actionBarContainer-component-v2:not(.open) {\n display: none;\n}\n.actionBarContainer-component-v2.open {\n display: flex;\n}\n.actionBarContainer-component-v2.bottom {\n bottom: 2rem;\n}\n.actionBarContainer-component-v2.bottom .barsContainer > * {\n margin-top: 1rem;\n}\n.actionBarContainer-component-v2.top {\n top: 2rem;\n}\n.actionBarContainer-component-v2.top .barsContainer > * {\n margin-bottom: 1rem;\n}\n.actionBarContainer-component-v2 .barsContainer {\n pointer-events: all;\n min-width: -moz-max-content;\n min-width: max-content;\n}\n.actionBarContainer-component-v2 .barsContainer > * {\n max-width: unset;\n}\n.actionBarContainer-component-v2 .barsContainer > *:not(.manualContent) {\n border-radius: 8px;\n background-color: var(--white, #FFFFFF);\n box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.15);\n padding: 1.5rem;\n min-width: 29rem;\n box-sizing: border-box;\n}\n.actionBarContainer-component-v2 .barsContainer > * .fullBar-component > .left > div:not(:first-child) {\n margin-left: 1rem;\n}\n.actionBarContainer-component-v2 .barsContainer > * .fullBar-component > .middle,\n.actionBarContainer-component-v2 .barsContainer > * .fullBar-component > .right {\n margin-left: 3rem;\n}\n.actionBarContainer-component-v2 .barsContainer > * .fullBar-component > .middle > div:first-child,\n.actionBarContainer-component-v2 .barsContainer > * .fullBar-component > .right > div:first-child {\n margin-right: 0;\n}\n.actionBarContainer-component-v2 .barsContainer > * .fullBar-component > .middle > div:not(:first-child),\n.actionBarContainer-component-v2 .barsContainer > * .fullBar-component > .right > div:not(:first-child) {\n margin-left: 0.75rem;\n}\n.actionBarContainer-component-v2 .barsContainer > * p,\n.actionBarContainer-component-v2 .barsContainer > * button {\n white-space: nowrap;\n}";
|
|
6510
|
+
styleInject(css_248z$z);
|
|
6482
6511
|
|
|
6483
6512
|
var ActionBarContainer = React.forwardRef(function (props, ref) {
|
|
6484
6513
|
var refState = React.useRef({ open: false });
|
|
@@ -7674,8 +7703,8 @@ function Icon(_a) {
|
|
|
7674
7703
|
return React.createElement(React.Fragment, null, Component ? React.createElement(SvgIcon, __assign({ fontSize: fontSize, sx: __assign(__assign({}, sx), csx) }, iconProps, { component: Component })) : "");
|
|
7675
7704
|
}
|
|
7676
7705
|
|
|
7677
|
-
var css_248z$
|
|
7678
|
-
styleInject(css_248z$
|
|
7706
|
+
var css_248z$y = ".circulatProgress-component-v2.content {\n flex: 1;\n}\n.circulatProgress-component-v2.container {\n position: absolute;\n}\n.circulatProgress-component-v2.page {\n position: fixed;\n}\n.circulatProgress-component-v2.page, .circulatProgress-component-v2.container {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.circulatProgress-component-v2.content, .circulatProgress-component-v2.container, .circulatProgress-component-v2.page {\n display: flex;\n align-items: center;\n justify-content: center;\n}";
|
|
7707
|
+
styleInject(css_248z$y);
|
|
7679
7708
|
|
|
7680
7709
|
function CircularProgress(_a) {
|
|
7681
7710
|
var color = _a.color, _b = _a.location, location = _b === void 0 ? "default" : _b, props = __rest(_a, ["color", "location"]);
|
|
@@ -7689,8 +7718,8 @@ function LinearProgress(_a) {
|
|
|
7689
7718
|
return React.createElement(material.LinearProgress, __assign({}, props, { color: color, className: classes }));
|
|
7690
7719
|
}
|
|
7691
7720
|
|
|
7692
|
-
var css_248z$
|
|
7693
|
-
styleInject(css_248z$
|
|
7721
|
+
var css_248z$x = ".loadingContainer-component-v2.keepChildren {\n position: relative;\n}\n.loadingContainer-component-v2.keepChildren .hiddenChildren {\n visibility: hidden;\n}\n.loadingContainer-component-v2.keepChildren .circulatProgress-component-v2,\n.loadingContainer-component-v2.keepChildren .MuiLinearProgress-root {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n}";
|
|
7722
|
+
styleInject(css_248z$x);
|
|
7694
7723
|
|
|
7695
7724
|
function LoadingContainer(_a) {
|
|
7696
7725
|
var _b = _a.loading, loading = _b === void 0 ? false : _b, children = _a.children, _c = _a.variant, variant = _c === void 0 ? "circular" : _c, width = _a.width, _d = _a.className, className = _d === void 0 ? "" : _d, keepChildren = _a.keepChildren, // Works with contenet not in iframes
|
|
@@ -7713,8 +7742,8 @@ function LoadingContainer(_a) {
|
|
|
7713
7742
|
React.createElement(Container, { className: "loadingContainer-component-v2 ".concat(className), sx: { display: "flex", alignItems: "center", justifyContent: "center", width: "100%" } }, loader)));
|
|
7714
7743
|
}
|
|
7715
7744
|
|
|
7716
|
-
var css_248z$
|
|
7717
|
-
styleInject(css_248z$
|
|
7745
|
+
var css_248z$w = ".textfield-component-v2 {\n position: relative;\n}\n.textfield-component-v2.small .MuiSvgIcon-root {\n top: 1.4rem !important;\n}\n.textfield-component-v2.disabled {\n opacity: 0.65;\n pointer-events: none;\n}\n.textfield-component-v2 .MuiSvgIcon-root ~ .MuiFormControl-root .MuiInputBase-input {\n padding-left: 42px;\n}\n.textfield-component-v2 .MuiSvgIcon-root {\n position: absolute;\n left: 1rem;\n top: 1.65rem;\n transform: translateY(-50%);\n z-index: 1;\n}\n\n.locationTextField-component-v2 {\n position: relative;\n}\n.locationTextField-component-v2 .autocomplete-dropdown-container {\n position: absolute;\n width: 100%;\n z-index: 10000;\n}\n\n.phoneTextField-component-v2 .MuiInputAdornment-root .MuiSelect-select {\n padding-right: 1.75rem !important;\n}\n.phoneTextField-component-v2 .MuiInputAdornment-root .MuiSelect-icon {\n display: inline-block;\n right: 0.5rem;\n}\n\n.react-international-phone-flag-emoji {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.colorTextField-component-v2 {\n position: relative;\n}\n.colorTextField-component-v2 .boxedColor {\n position: absolute;\n width: 20px;\n height: 20px;\n border-radius: 20px;\n left: 1rem;\n top: 1.65rem;\n transform: translateY(-50%);\n z-index: 1;\n}\n.colorTextField-component-v2 .boxedColor .MuiSvgIcon-root {\n width: unset;\n height: unset;\n}\n.colorTextField-component-v2 .boxedColor::after {\n position: absolute;\n width: 6px;\n height: 6px;\n content: \"\";\n background-color: var(--white, #FFFFFF);\n border-radius: 20px;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n.colorTextField-component-v2 .boxedColor ~ .textfield-component-v2 .MuiInputBase-input {\n padding-left: 44px;\n}\n.colorTextField-component-v2.bottom .react-colorful {\n top: 3.5rem;\n}\n.colorTextField-component-v2.top .react-colorful {\n bottom: 4rem;\n}\n.colorTextField-component-v2 .react-colorful {\n width: 100%;\n position: absolute;\n}";
|
|
7746
|
+
styleInject(css_248z$w);
|
|
7718
7747
|
|
|
7719
7748
|
var TextField = React.forwardRef(function (_a, ref) {
|
|
7720
7749
|
var _b = _a.className, className = _b === void 0 ? "" : _b, label = _a.label, timeout = _a.timeout, labelTooltipText = _a.labelTooltipText, disabled = _a.disabled, useBareBoneInput = _a.useBareBoneInput, onChange = _a.onChange, multiline = _a.multiline, inputProps = _a.inputProps, iconName = _a.iconName, onKeyDown = _a.onKeyDown, size = _a.size, props = __rest(_a, ["className", "label", "timeout", "labelTooltipText", "disabled", "useBareBoneInput", "onChange", "multiline", "inputProps", "iconName", "onKeyDown", "size"]);
|
|
@@ -7769,8 +7798,8 @@ var TextField = React.forwardRef(function (_a, ref) {
|
|
|
7769
7798
|
React.createElement(MUITextField, __assign({}, props, { inputProps: inputProps, onChange: useBareBoneInput ? onChange : onChangeHandler, label: cLabel, disabled: disabled, onKeyDown: handleKeyDown, multiline: multiline, inputRef: ref, size: size })));
|
|
7770
7799
|
});
|
|
7771
7800
|
|
|
7772
|
-
var css_248z$
|
|
7773
|
-
styleInject(css_248z$
|
|
7801
|
+
var css_248z$v = ".assetmanager-component-v2 {\n box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.15);\n background: var(--background-color-1, var(--white, #FFFFFF));\n min-width: 25rem;\n width: 100%;\n}\n.assetmanager-component-v2 .loadingContainer-component-v2 {\n padding: 3rem;\n}\n.assetmanager-component-v2 .container {\n padding: 0.75rem;\n}\n.assetmanager-component-v2 .container > div.textInputContainer {\n display: flex;\n border: solid 1px var(--wild-sand, #dddddd);\n border-radius: 6px;\n justify-content: flex-start;\n align-items: center;\n}\n.assetmanager-component-v2 .container > div.textInputContainer > div .MuiSvgIcon-root {\n display: block;\n cursor: pointer;\n}\n.assetmanager-component-v2 .container > div.textInputContainer > div:first-child {\n padding: 0 0.75rem 0 0.75rem;\n height: 100%;\n}\n.assetmanager-component-v2 .container > div.textInputContainer > div:last-child:not(.textfield-component-v2) {\n padding: 0 0.875rem;\n height: 100%;\n}\n.assetmanager-component-v2 .container > div.textInputContainer .textfield-component-v2 {\n width: 100%;\n}\n.assetmanager-component-v2 .container > div.textInputContainer .textfield-component-v2 fieldset {\n outline: none !important;\n border: none !important;\n}\n.assetmanager-component-v2 .container > div.textInputContainer .textfield-component-v2 input {\n padding: 0.5rem 0 !important;\n}\n.assetmanager-component-v2 .container .optionsListingContainer {\n padding: 0 1.25rem 0.5rem 1.25rem;\n margin: 1.25rem 0 0.5rem 0;\n max-height: 20rem;\n overflow-y: auto;\n}\n.assetmanager-component-v2 .container .optionsListingContainer button {\n text-transform: capitalize;\n}\n.assetmanager-component-v2 .container .optionsListingContainer::-webkit-scrollbar {\n display: block;\n}\n.assetmanager-component-v2 .container .optionsListingContainer::-webkit-scrollbar-track:horizontal {\n position: absolute;\n bottom: -20px;\n}\n.assetmanager-component-v2 .container .optionsListingContainer::-webkit-scrollbar-track:vertical {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 8px !important;\n border-top-right-radius: 8px !important;\n}\n.assetmanager-component-v2 .container .optionsListingContainer::-webkit-scrollbar-track {\n height: 2.5rem;\n width: 2.5rem;\n padding: 2rem;\n background-clip: content-box;\n border-bottom-left-radius: 8px;\n}\n.assetmanager-component-v2 .container .optionsListingContainer::-webkit-scrollbar-thumb {\n background: var(--body-font-color-2, var(--silver, #9B9B9B));\n border-radius: 24px;\n border-top: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-bottom: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-right: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-left: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n}\n.assetmanager-component-v2 .container .optionsListingContainer > div:first-child:not(.listItem) {\n padding-bottom: 0.75rem;\n text-transform: uppercase;\n font-weight: 700;\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.assetmanager-component-v2 .container .optionsListingContainer > p.h8 {\n margin-bottom: 1rem;\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.assetmanager-component-v2 .container .optionsListingContainer p.h8 {\n flex: 1;\n font-family: proxima-nova, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif;\n text-transform: uppercase;\n font-weight: 700;\n line-height: 1rem;\n font-size: 0.75rem;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem {\n display: flex;\n justify-content: space-between;\n align-items: center;\n min-height: 2rem;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem p.h8 {\n color: var(--body-font-color-2, var(--silver, #9B9B9B));\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem > .MuiSvgIcon-root {\n margin-right: 1rem;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem.selected p.h8 {\n color: var(--secondary-brand-color, var(--teal, #0ABDAE));\n padding-right: 1rem;\n max-width: 100%;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem.selected .MuiSvgIcon-root span svg path {\n fill: var(--secondary-brand-color, var(--teal, #0ABDAE));\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem .buttonContainer {\n margin-left: 1rem;\n visibility: hidden;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem .buttonContainer button:nth-child(2) {\n margin-left: 0.5rem;\n}\n.assetmanager-component-v2 .container .optionsListingContainer .listItem:hover .buttonContainer {\n visibility: visible;\n}\n.assetmanager-component-v2 > button:last-child {\n width: 100%;\n text-transform: uppercase;\n font-family: proxima-nova, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif;\n height: 3rem;\n border-top: 1px solid var(--wild-sand, #dddddd) !important;\n outline: none;\n border-radius: 0;\n font-weight: 700;\n}";
|
|
7802
|
+
styleInject(css_248z$v);
|
|
7774
7803
|
|
|
7775
7804
|
exports.EAssetManagerMatchType = void 0;
|
|
7776
7805
|
(function (EAssetManagerMatchType) {
|
|
@@ -8248,8 +8277,8 @@ function DialogTitle(_a) {
|
|
|
8248
8277
|
React.createElement(Typography, { className: className, variant: variant }, children));
|
|
8249
8278
|
}
|
|
8250
8279
|
|
|
8251
|
-
var css_248z$
|
|
8252
|
-
styleInject(css_248z$
|
|
8280
|
+
var css_248z$u = ".dialog-component-v2 {\n box-sizing: border-box;\n z-index: 9000 !important;\n}\n.dialog-component-v2.alert {\n pointer-events: none;\n}\n.dialog-component-v2.alert .MuiBackdrop-root {\n display: none;\n}\n.dialog-component-v2.alert > .MuiDialog-container > .MuiPaper-root {\n border-radius: 8px;\n pointer-events: all;\n width: -moz-max-content;\n width: max-content;\n padding: 1rem;\n}\n.dialog-component-v2.alert > .MuiDialog-container > .MuiPaper-root .MuiDialogContent-root {\n text-align: left;\n padding: 0.25rem 0 0;\n}\n.dialog-component-v2:not(.alert) > .MuiDialog-container > .MuiPaper-root {\n border-radius: 16px;\n max-width: 500px;\n width: 100%;\n max-height: calc(100vh - 2rem);\n padding: 2rem;\n}\n.dialog-component-v2:not(.alert) > .MuiDialog-container > .MuiPaper-root::-webkit-scrollbar {\n display: block;\n}\n.dialog-component-v2:not(.alert) > .MuiDialog-container > .MuiPaper-root::-webkit-scrollbar-track:horizontal {\n position: absolute;\n bottom: -20px;\n}\n.dialog-component-v2:not(.alert) > .MuiDialog-container > .MuiPaper-root::-webkit-scrollbar-track:vertical {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 8px !important;\n border-top-right-radius: 8px !important;\n}\n.dialog-component-v2:not(.alert) > .MuiDialog-container > .MuiPaper-root::-webkit-scrollbar-track {\n height: 2.5rem;\n width: 2.5rem;\n padding: 2rem;\n background-clip: content-box;\n border-bottom-left-radius: 8px;\n}\n.dialog-component-v2:not(.alert) > .MuiDialog-container > .MuiPaper-root::-webkit-scrollbar-thumb {\n background: var(--body-font-color-2, var(--silver, #9B9B9B));\n border-radius: 24px;\n border-top: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-bottom: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-right: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-left: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n}\n.dialog-component-v2 .dialogTitle .MuiSvgIcon-root {\n margin-right: 0.75rem;\n}\n.dialog-component-v2 .dialogTitle.warning .MuiSvgIcon-root path {\n fill: var(--warning-brand-color, var(--orange, #FF9E0E));\n}\n.dialog-component-v2 .dialogTitle.error .MuiSvgIcon-root path {\n fill: var(--error-brand-color, var(--rad-red, #FF4835));\n}\n.dialog-component-v2 .dialogTitle.success .MuiSvgIcon-root path {\n fill: var(--secondary-brand-color, var(--teal, #0ABDAE));\n}";
|
|
8281
|
+
styleInject(css_248z$u);
|
|
8253
8282
|
|
|
8254
8283
|
var Dialog = React.forwardRef(function (props, ref) {
|
|
8255
8284
|
var refState = React.useRef({ open: false });
|
|
@@ -8339,8 +8368,8 @@ var Dialog = React.forwardRef(function (props, ref) {
|
|
|
8339
8368
|
!state.managedByContent && props.children);
|
|
8340
8369
|
});
|
|
8341
8370
|
|
|
8342
|
-
var css_248z$
|
|
8343
|
-
styleInject(css_248z$
|
|
8371
|
+
var css_248z$t = "";
|
|
8372
|
+
styleInject(css_248z$t);
|
|
8344
8373
|
|
|
8345
8374
|
var Drawer = React.forwardRef(function (props, ref) {
|
|
8346
8375
|
var _a = React.useState(props.open || false), isOpen = _a[0], setIsOpen = _a[1];
|
|
@@ -8387,16 +8416,16 @@ var Drawer = React.forwardRef(function (props, ref) {
|
|
|
8387
8416
|
return React.createElement(MuiDrawer, { open: isOpen, variant: state.variant, onClose: handleClose, className: "drawer-component-v2 ".concat(state.className), anchor: state.position, transitionDuration: state.transitionDuration }, props.children || state.children);
|
|
8388
8417
|
});
|
|
8389
8418
|
|
|
8390
|
-
var css_248z$
|
|
8391
|
-
styleInject(css_248z$
|
|
8419
|
+
var css_248z$s = ".contentSectionContainer {\n padding: 2rem;\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n overflow: auto;\n}\n.contentSectionContainer > *:not(:first-child) {\n margin-top: 2rem;\n}\n.contentSectionContainer > *:not(:last-child) {\n flex: 0;\n}\n.contentSectionContainer > *:last-child {\n flex: 1;\n}";
|
|
8420
|
+
styleInject(css_248z$s);
|
|
8392
8421
|
|
|
8393
8422
|
function ContentSectionContainer(_a) {
|
|
8394
8423
|
var _b = _a.className, className = _b === void 0 ? "" : _b, children = _a.children;
|
|
8395
8424
|
return React.createElement(material.Box, { className: "contentSectionContainer ".concat(className) }, children);
|
|
8396
8425
|
}
|
|
8397
8426
|
|
|
8398
|
-
var css_248z$
|
|
8399
|
-
styleInject(css_248z$
|
|
8427
|
+
var css_248z$r = ".fullBar-component-v2 {\n position: relative;\n flex-wrap: wrap;\n}\n.fullBar-component-v2 > div {\n position: unset;\n}\n.fullBar-component-v2 .left > *:nth-child(n+2),\n.fullBar-component-v2 .center > *:nth-child(n+2),\n.fullBar-component-v2 .right > *:nth-child(n+2) {\n margin-left: 0.75rem;\n}";
|
|
8428
|
+
styleInject(css_248z$r);
|
|
8400
8429
|
|
|
8401
8430
|
function FullBar(props) {
|
|
8402
8431
|
if (props === void 0) { props = {}; }
|
|
@@ -8410,8 +8439,8 @@ function FullBar(props) {
|
|
|
8410
8439
|
React.createElement(material.Stack, __assign({ direction: "row" }, rightProps, { sx: __assign({ alignItems: "center", justifyContent: "right", fex: 1 }, rightSX), className: "right" }), right));
|
|
8411
8440
|
}
|
|
8412
8441
|
|
|
8413
|
-
var css_248z$
|
|
8414
|
-
styleInject(css_248z$
|
|
8442
|
+
var css_248z$q = ".logo-component-v2 {\n line-height: 0;\n}";
|
|
8443
|
+
styleInject(css_248z$q);
|
|
8415
8444
|
|
|
8416
8445
|
function Logo(_a) {
|
|
8417
8446
|
var url = _a.url, _b = _a.className, className = _b === void 0 ? "" : _b, _c = _a.imgProps, imgProps = _c === void 0 ? {} : _c;
|
|
@@ -8421,8 +8450,8 @@ function Logo(_a) {
|
|
|
8421
8450
|
React.createElement("img", __assign({ src: url, style: __assign({ maxHeight: "45px", maxWidth: "200px" }, styles) }, imgProps)));
|
|
8422
8451
|
}
|
|
8423
8452
|
|
|
8424
|
-
var css_248z$
|
|
8425
|
-
styleInject(css_248z$
|
|
8453
|
+
var css_248z$p = ".modal-component-v2 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: var(--white, #FFFFFF);\n z-index: 8500;\n flex-direction: column;\n}\n.modal-component-v2.spacedHeader .fullBar-component-v2 {\n padding: 2rem 2rem 0 2rem;\n}\n.modal-component-v2.open {\n display: flex;\n}\n.modal-component-v2:not(.open) {\n display: none;\n}\n.modal-component-v2 .vSeperator {\n width: 1px;\n height: 50%;\n background: var(--wild-sand, #dddddd);\n}\n.modal-component-v2:not(.spacedHeader) > .fullBar-component-v2 {\n background: var(--shade100, #F3F2F2);\n}\n.modal-component-v2 > .fullBar-component-v2 {\n flex: 0;\n padding: 0.75rem 1.5rem;\n}\n.modal-component-v2 > .fullBar-component-v2 .subNav-component-v2 button {\n padding-top: 0;\n padding-bottom: 0;\n}\n.modal-component-v2 > .fullBar-component-v2 .left > *:nth-child(n+2) {\n margin-left: 1rem;\n}\n.modal-component-v2 > div:not(.fullBar-component-v2) {\n flex: 1;\n}\n.modal-component-v2 .contentSectionContainer {\n display: flex;\n align-items: center;\n overflow-y: auto;\n}";
|
|
8454
|
+
styleInject(css_248z$p);
|
|
8426
8455
|
|
|
8427
8456
|
function ModalHeading(props) {
|
|
8428
8457
|
if (props === void 0) { props = {}; }
|
|
@@ -8512,8 +8541,8 @@ var Modal = React.forwardRef(function (props, ref) {
|
|
|
8512
8541
|
React.createElement(ContentSectionContainer, null, state.content))));
|
|
8513
8542
|
});
|
|
8514
8543
|
|
|
8515
|
-
var css_248z$
|
|
8516
|
-
styleInject(css_248z$
|
|
8544
|
+
var css_248z$o = ".overlay-component-v2 {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.5);\n z-index: 9000;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.overlay-component-v2 .container {\n background: var(--white, #FFFFFF);\n border-radius: 16px;\n width: 80%;\n height: 80%;\n}\n.overlay-component-v2 .container .contentSectionContainer > div {\n width: 100%;\n}\n.overlay-component-v2 .container .vSeperator {\n width: 1px;\n height: 50%;\n background: var(--wild-sand, #dddddd);\n}\n.overlay-component-v2 .container > .fullBar-component-v2 {\n flex: 0;\n padding: 0.75rem 0.75rem;\n border-bottom: 1px solid var(--wild-sand, #dddddd);\n}\n.overlay-component-v2 .container > .fullBar-component-v2 .subNav-component-v2 button {\n padding-top: 0;\n padding-bottom: 0;\n}\n.overlay-component-v2 .container > .fullBar-component-v2 .left > *:nth-child(n+2) {\n margin-left: 1rem;\n}\n.overlay-component-v2 .container > div:not(.fullBar-component-v2) {\n flex: 1;\n}\n.overlay-component-v2 .container .contentSectionContainer {\n display: flex;\n align-items: center;\n overflow-y: auto;\n}\n.overlay-component-v2.open {\n display: flex;\n}\n.overlay-component-v2:not(.open) {\n display: none;\n}";
|
|
8545
|
+
styleInject(css_248z$o);
|
|
8517
8546
|
|
|
8518
8547
|
function OverlayHeading(props) {
|
|
8519
8548
|
if (props === void 0) { props = {}; }
|
|
@@ -8602,8 +8631,8 @@ var Overlay = React.forwardRef(function (props, ref) {
|
|
|
8602
8631
|
React.createElement(ContentSectionContainer, null, state.content)))));
|
|
8603
8632
|
});
|
|
8604
8633
|
|
|
8605
|
-
var css_248z$
|
|
8606
|
-
styleInject(css_248z$
|
|
8634
|
+
var css_248z$n = ".ui-kit-v2-wrapper {\n width: 100%;\n flex: 1;\n display: flex;\n flex-direction: column;\n}";
|
|
8635
|
+
styleInject(css_248z$n);
|
|
8607
8636
|
|
|
8608
8637
|
function BrandWrapper(_a) {
|
|
8609
8638
|
_a.onInit; var _b = _a.onBrandSuccess, onBrandSuccess = _b === void 0 ? function () { } : _b, _c = _a.onBrandError, onBrandError = _c === void 0 ? function () { } : _c, MUITheme = _a.MUITheme, brandId = _a.brandId, brandHost = _a.brandHost, children = _a.children, _d = _a.noFetch, noFetch = _d === void 0 ? false : _d, _e = _a.setPageHead, setPageHead = _e === void 0 ? true : _e, _f = _a.includeHandlers, includeHandlers = _f === void 0 ? true : _f, brandThemeContext = _a.brandThemeContext, styleOverride = _a.styleOverride;
|
|
@@ -8703,8 +8732,8 @@ function MenuOption(_a) {
|
|
|
8703
8732
|
React.createElement(Icon, { name: "Checkmark10" }))));
|
|
8704
8733
|
}
|
|
8705
8734
|
|
|
8706
|
-
var css_248z$
|
|
8707
|
-
styleInject(css_248z$
|
|
8735
|
+
var css_248z$m = ".dropMenu-component-v2.inlineMenu {\n position: relative;\n overflow-y: auto;\n margin-top: 0.75rem;\n max-height: 35vh;\n box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1490196078);\n padding: 0.75rem;\n border-radius: 16px;\n min-width: 300;\n background: var(--background-color-1, var(--white, #FFFFFF));\n box-sizing: border-box;\n}\n.dropMenu-component-v2.inlineMenu::-webkit-scrollbar {\n display: block;\n}\n.dropMenu-component-v2.inlineMenu::-webkit-scrollbar-track:horizontal {\n position: absolute;\n bottom: -20px;\n}\n.dropMenu-component-v2.inlineMenu::-webkit-scrollbar-track:vertical {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 8px !important;\n border-top-right-radius: 8px !important;\n}\n.dropMenu-component-v2.inlineMenu::-webkit-scrollbar-track {\n height: 2.5rem;\n width: 2.5rem;\n padding: 2rem;\n background-clip: content-box;\n border-bottom-left-radius: 8px;\n}\n.dropMenu-component-v2.inlineMenu::-webkit-scrollbar-thumb {\n background: var(--body-font-color-2, var(--silver, #9B9B9B));\n border-radius: 24px;\n border-top: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-bottom: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-right: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-left: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n}";
|
|
8736
|
+
styleInject(css_248z$m);
|
|
8708
8737
|
|
|
8709
8738
|
function DropMenu(_a) {
|
|
8710
8739
|
var _b = _a.options, options = _b === void 0 ? [] : _b, _c = _a.popoverProps, popoverProps = _c === void 0 ? {
|
|
@@ -8729,8 +8758,8 @@ function DropMenu(_a) {
|
|
|
8729
8758
|
}
|
|
8730
8759
|
}
|
|
8731
8760
|
|
|
8732
|
-
var css_248z$
|
|
8733
|
-
styleInject(css_248z$
|
|
8761
|
+
var css_248z$l = ".buttonMenu-component-v2.MuiButton-sizeSmall {\n min-height: 2rem;\n}\n.buttonMenu-component-v2.MuiButton-sizeMedium {\n min-height: 3.125rem;\n}\n.buttonMenu-component-v2.MuiButton-sizeLarge {\n min-height: 3.75rem;\n}";
|
|
8762
|
+
styleInject(css_248z$l);
|
|
8734
8763
|
|
|
8735
8764
|
function ButtonMenu(_a) {
|
|
8736
8765
|
var children = _a.children, _b = _a.buttonProps, buttonProps = _b === void 0 ? {
|
|
@@ -8773,8 +8802,8 @@ function Chip(_a) {
|
|
|
8773
8802
|
return React.createElement(material.Chip, __assign({}, props, { className: classes, color: color }));
|
|
8774
8803
|
}
|
|
8775
8804
|
|
|
8776
|
-
var css_248z$
|
|
8777
|
-
styleInject(css_248z$
|
|
8805
|
+
var css_248z$k = ".codeInput-component > div {\n justify-content: center;\n align-items: center;\n}\n.codeInput-component > div input {\n box-sizing: border-box;\n width: 48px;\n height: 48px;\n padding: 1rem;\n border-radius: 8px;\n outline: none;\n color: var(--primary-brand-color, var(--grape, #69006E));\n font-size: 1rem;\n line-height: 1.25rem;\n text-align: center;\n margin: 0 0.5rem;\n}\n.codeInput-component > div input[type=number]::-webkit-inner-spin-button, .codeInput-component > div input[type=number]::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n.codeInput-component > div input:-moz-placeholder {\n border: 1px solid var(--wild-sand, #dddddd);\n color: var(--body-font-color-2, var(--silver, #9B9B9B));\n}\n.codeInput-component > div input:placeholder-shown {\n border: 1px solid var(--wild-sand, #dddddd);\n color: var(--body-font-color-2, var(--silver, #9B9B9B));\n}\n.codeInput-component > div input:not(:-moz-placeholder) {\n border: 1px solid var(--secondary-brand-color, var(--teal, #0ABDAE));\n}\n.codeInput-component > div input:not(:placeholder-shown) {\n border: 1px solid var(--secondary-brand-color, var(--teal, #0ABDAE));\n}\n.codeInput-component > div input:first-child {\n margin-left: 0;\n}\n.codeInput-component > div input:last-child {\n margin-right: 0;\n}";
|
|
8806
|
+
styleInject(css_248z$k);
|
|
8778
8807
|
|
|
8779
8808
|
function CodeInput(_a) {
|
|
8780
8809
|
var className = _a.className, initValue = _a.initValue, value = _a.value, _b = _a.numInputs, numInputs = _b === void 0 ? 6 : _b, _c = _a.shouldAutoFocus, shouldAutoFocus = _c === void 0 ? true : _c, placeholder = _a.placeholder, renderSeparator = _a.renderSeparator, _d = _a.inputType, inputType = _d === void 0 ? "text" : _d, onChange = _a.onChange, onPaste = _a.onPaste;
|
|
@@ -8827,8 +8856,8 @@ function CustomPaginationActions(_a) {
|
|
|
8827
8856
|
React.createElement(Button, { onClick: handleLastPageButtonClick, disabled: page >= Math.ceil(count / rowsPerPage) - 1, "aria-label": "last page", variant: "outlined", color: "body1" }, "Last")));
|
|
8828
8857
|
}
|
|
8829
8858
|
|
|
8830
|
-
var css_248z$
|
|
8831
|
-
styleInject(css_248z$
|
|
8859
|
+
var css_248z$j = ".dataTable-component-v2 {\n position: relative;\n height: 100%;\n}\n.dataTable-component-v2 .MuiTableContainer-root {\n margin-bottom: 5rem;\n}\n.dataTable-component-v2 .MuiTableContainer-root::-webkit-scrollbar {\n display: block;\n}\n.dataTable-component-v2 .MuiTableContainer-root::-webkit-scrollbar-track:horizontal {\n position: absolute;\n bottom: -20px;\n}\n.dataTable-component-v2 .MuiTableContainer-root::-webkit-scrollbar-track:vertical {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 8px !important;\n border-top-right-radius: 8px !important;\n}\n.dataTable-component-v2 .MuiTableContainer-root::-webkit-scrollbar-track {\n height: 2.5rem;\n width: 2.5rem;\n padding: 2rem;\n background-clip: content-box;\n border-bottom-left-radius: 8px;\n}\n.dataTable-component-v2 .MuiTableContainer-root::-webkit-scrollbar-thumb {\n background: var(--body-font-color-2, var(--silver, #9B9B9B));\n border-radius: 24px;\n border-top: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-bottom: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-right: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-left: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n}\n.dataTable-component-v2 .MuiTableContainer-root > table thead {\n border-bottom: 1px solid transparent;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th {\n vertical-align: middle;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th.sortable {\n cursor: pointer;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th.sortable .MuiTableSortLabel-root .MuiTableSortLabel-icon path {\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th.sortable:hover .MuiTableSortLabel-root .MuiTableSortLabel-icon {\n opacity: 0.5;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th,\n.dataTable-component-v2 .MuiTableContainer-root > table td {\n white-space: nowrap;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th > .cellContainer,\n.dataTable-component-v2 .MuiTableContainer-root > table td > .cellContainer {\n width: -moz-max-content;\n width: max-content;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th.stickyLastCol::before,\n.dataTable-component-v2 .MuiTableContainer-root > table td.stickyLastCol::before {\n content: \"\";\n width: 19px;\n height: -webkit-fill-available;\n display: block;\n position: absolute;\n top: 0;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th.stickyFirstCol::after,\n.dataTable-component-v2 .MuiTableContainer-root > table td.stickyFirstCol::after {\n content: \"\";\n width: 19px;\n height: -webkit-fill-available;\n display: block;\n position: absolute;\n top: 0;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th.leftStickyEffect::before, .dataTable-component-v2 .MuiTableContainer-root > table th.rightStickyEffect::before,\n.dataTable-component-v2 .MuiTableContainer-root > table td.leftStickyEffect::before,\n.dataTable-component-v2 .MuiTableContainer-root > table td.rightStickyEffect::before {\n content: \"\";\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th.leftStickyEffect::after, .dataTable-component-v2 .MuiTableContainer-root > table th.rightStickyEffect::after,\n.dataTable-component-v2 .MuiTableContainer-root > table td.leftStickyEffect::after,\n.dataTable-component-v2 .MuiTableContainer-root > table td.rightStickyEffect::after {\n content: \"\";\n background-size: 16px 16px, 16px 16px;\n background-repeat: no-repeat, no-repeat;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th.leftStickyEffect,\n.dataTable-component-v2 .MuiTableContainer-root > table td.leftStickyEffect {\n left: 0;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th.leftStickyEffect::after,\n.dataTable-component-v2 .MuiTableContainer-root > table td.leftStickyEffect::after {\n background-position: top left, bottom left;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th.rightStickyEffect,\n.dataTable-component-v2 .MuiTableContainer-root > table td.rightStickyEffect {\n right: 0;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table th.rightStickyEffect::after,\n.dataTable-component-v2 .MuiTableContainer-root > table td.rightStickyEffect::after {\n right: 0;\n background-position: top right, bottom right;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table tr {\n position: relative;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table tr td .cellContainer {\n display: flex;\n justify-content: left;\n width: -moz-max-content;\n width: max-content;\n min-width: 100%;\n}\n.dataTable-component-v2 .MuiTableContainer-root > table tr td.centered .cellContainer {\n justify-content: center;\n}\n.dataTable-component-v2 .MuiTablePagination-root {\n overflow: visible;\n}\n.dataTable-component-v2 .MuiTablePagination-root .MuiTablePagination-selectLabel,\n.dataTable-component-v2 .MuiTablePagination-root .MuiInputBase-root {\n display: none;\n}\n.dataTable-component-v2 .MuiTablePagination-root .MuiTablePagination-toolbar {\n padding-right: 1.25rem;\n}\n.dataTable-component-v2 .MuiTablePagination-root .MuiTablePagination-actions {\n margin-right: 0.75rem;\n}\n\n.colManagerMenu .MuiListItemText-root .MuiCheckbox-root {\n margin-right: 0.75rem;\n}";
|
|
8860
|
+
styleInject(css_248z$j);
|
|
8832
8861
|
|
|
8833
8862
|
var bottomLeftCorner = "data:image/svg+xml,%3Csvg%20width%3D%228%22%20height%3D%228%22%20viewBox%3D%220%200%208%208%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fillRule%3D%22evenodd%22%20clipRule%3D%22evenodd%22%20d%3D%22M8%208C3.58172%208%20-1.56562e-07%204.41828%20-3.49691e-07%200L0%208L8%208Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E";
|
|
8834
8863
|
|
|
@@ -8989,8 +9018,8 @@ function DataTableRow(_a) {
|
|
|
8989
9018
|
React.createElement(TableCell, { className: "rightStickyEffect stickyEffect" })));
|
|
8990
9019
|
}
|
|
8991
9020
|
|
|
8992
|
-
var css_248z$
|
|
8993
|
-
styleInject(css_248z$
|
|
9021
|
+
var css_248z$i = ".search-component-v2 {\n width: 100%;\n}\n.search-component-v2 .inputContainer {\n width: 100%;\n padding: 1.25rem 1.5rem;\n background-color: var(--background-color-1, var(--white, #FFFFFF));\n border-radius: 16px;\n box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.15);\n box-sizing: border-box;\n}\n.search-component-v2 .inputContainer > *:not(:first-child) {\n margin-left: 1rem;\n}\n.search-component-v2 .inputContainer input {\n flex: 1;\n font-family: proxima-nova, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif;\n font-size: 1rem;\n font-weight: 600;\n line-height: 1.25rem;\n border: none;\n outline: none;\n color: var(--primary-brand-color, var(--grape, #69006E));\n background: none;\n}\n.search-component-v2 .inputContainer input::-moz-placeholder {\n color: var(--silver, #9B9B9B);\n}\n.search-component-v2 .inputContainer input::placeholder {\n color: var(--silver, #9B9B9B);\n}";
|
|
9022
|
+
styleInject(css_248z$i);
|
|
8994
9023
|
|
|
8995
9024
|
function Search(_a) {
|
|
8996
9025
|
var _b = _a.initValue, initValue = _b === void 0 ? "" : _b, name = _a.name, onChange = _a.onChange, _c = _a.intervalTime, intervalTime = _c === void 0 ? 800 : _c, placeholder = _a.placeholder, onClose = _a.onClose, _d = _a.className, className = _d === void 0 ? "" : _d, useClickAway = _a.useClickAway, onEnter = _a.onEnter, _e = _a.useKeyDownForChange, useKeyDownForChange = _e === void 0 ? false : _e;
|
|
@@ -9063,8 +9092,8 @@ function Search(_a) {
|
|
|
9063
9092
|
React.createElement(Icon, { actionIcon: true, className: "close", name: "X18", onClick: onClose }))));
|
|
9064
9093
|
}
|
|
9065
9094
|
|
|
9066
|
-
var css_248z$
|
|
9067
|
-
styleInject(css_248z$
|
|
9095
|
+
var css_248z$h = ".dropdown-component-v2 .prefixIcon {\n margin-right: 0.5rem;\n}\n.dropdown-component-v2 .MuiFormLabel-root,\n.dropdown-component-v2 .MuiFormLabel-root.Mui-focused {\n font-family: proxima-nova, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif;\n font-weight: 700;\n font-size: 0.875rem;\n line-height: 1.125rem;\n max-width: 52rem;\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n transform: translate(14px, -9px) !important;\n}\n.dropdown-component-v2 .MuiFormLabel-root > div,\n.dropdown-component-v2 .MuiFormLabel-root.Mui-focused > div {\n display: flex;\n align-items: \"center\";\n}\n.dropdown-component-v2 .MuiFormLabel-root > div .MuiSvgIcon-root,\n.dropdown-component-v2 .MuiFormLabel-root.Mui-focused > div .MuiSvgIcon-root {\n margin-left: 0.5rem;\n}\n.dropdown-component-v2 .filled fieldset {\n border-color: var(--secondary-brand-color, var(--teal, #0ABDAE)) !important;\n}\n.dropdown-component-v2 fieldset legend span {\n font-weight: 700;\n font-size: 0.875rem;\n line-height: 1.125rem;\n max-width: 52rem;\n}";
|
|
9096
|
+
styleInject(css_248z$h);
|
|
9068
9097
|
|
|
9069
9098
|
function Dropdown(_a) {
|
|
9070
9099
|
var placeholder = _a.placeholder, label = _a.label, keepOpenOnClick = _a.keepOpenOnClick, name = _a.name, _b = _a.className, className = _b === void 0 ? "" : _b, extraSelectProps = _a.extraSelectProps, variant = _a.variant, labelIconColor = _a.labelIconColor, onChange = _a.onChange, defaultValue = _a.defaultValue, _c = _a.menuPlacement, menuPlacement = _c === void 0 ? "bottom-right" : _c, _d = _a.iconOnly, iconOnly = _d === void 0 ? false : _d, chevronIconOverride = _a.chevronIconOverride, renderValue = _a.renderValue, _e = _a.options, options = _e === void 0 ? [] : _e, _f = _a.typographyVariant, typographyVariant = _f === void 0 ? "button" : _f, _g = _a.size, size = _g === void 0 ? "medium" : _g, _h = _a.disabled, disabled = _h === void 0 ? false : _h, _j = _a.color, color = _j === void 0 ? "primary" : _j, _k = _a.value, value = _k === void 0 ? undefined : _k, _l = _a.multiSelect, multiSelect = _l === void 0 ? false : _l, searchProps = _a.searchProps, stickyActions = _a.stickyActions, prefixIcon = _a.prefixIcon, onOpen = _a.onOpen, onClose = _a.onClose;
|
|
@@ -9289,8 +9318,8 @@ function DataTable(_a) {
|
|
|
9289
9318
|
ActionsComponent: CustomPaginationActions }))));
|
|
9290
9319
|
}
|
|
9291
9320
|
|
|
9292
|
-
var css_248z$
|
|
9293
|
-
styleInject(css_248z$
|
|
9321
|
+
var css_248z$g = ".dateTimeSelector.dateTimeCalendar {\n background: var(--white, #FFFFFF);\n}\n.dateTimeSelector .MuiMultiSectionDigitalClock-root,\n.dateTimeSelector .MuiMultiSectionDigitalClockSection-root {\n flex: 1;\n}\n.dateTimeSelector .MuiMultiSectionDigitalClock-root .MuiMultiSectionDigitalClockSection-item.Mui-selected,\n.dateTimeSelector .MuiMultiSectionDigitalClockSection-root .MuiMultiSectionDigitalClockSection-item.Mui-selected {\n background-color: var(--primary-brand-color, var(--grape, #69006E)) !important;\n}";
|
|
9322
|
+
styleInject(css_248z$g);
|
|
9294
9323
|
|
|
9295
9324
|
function DatePicker(_a) {
|
|
9296
9325
|
var className = _a.className, props = __rest(_a, ["className"]);
|
|
@@ -9350,8 +9379,8 @@ function DateTimeCalendar(_a) {
|
|
|
9350
9379
|
} })));
|
|
9351
9380
|
}
|
|
9352
9381
|
|
|
9353
|
-
var css_248z$
|
|
9354
|
-
styleInject(css_248z$
|
|
9382
|
+
var css_248z$f = ".divider-component-v2 {\n width: 100%;\n}";
|
|
9383
|
+
styleInject(css_248z$f);
|
|
9355
9384
|
|
|
9356
9385
|
function Divider(_a) {
|
|
9357
9386
|
var _b = _a.height, height = _b === void 0 ? 1 : _b, _c = _a.color, color = _c === void 0 ? "wildSand" : _c;
|
|
@@ -9378,8 +9407,8 @@ function CountryDropdown(_a) {
|
|
|
9378
9407
|
return React.createElement(Dropdown, __assign({}, args, { value: value, defaultValue: defaultValue, options: options, onChange: onChange }));
|
|
9379
9408
|
}
|
|
9380
9409
|
|
|
9381
|
-
var css_248z$
|
|
9382
|
-
styleInject(css_248z$
|
|
9410
|
+
var css_248z$e = ".emptyContent-component-v2 {\n display: flex;\n justify-content: center;\n align-items: center;\n flex: 1;\n width: 100%;\n height: 100%;\n padding: 2rem;\n box-sizing: border-box;\n background: var(--cloud, #F4F4F4);\n align-self: stretch;\n justify-self: stretch;\n border-radius: 32px;\n}\n.emptyContent-component-v2 > .MuiStack-root {\n width: 32rem;\n text-align: center;\n}\n.emptyContent-component-v2 > .MuiStack-root .MuiTypography-h3 {\n margin-top: 1rem;\n}\n.emptyContent-component-v2 > .MuiStack-root .MuiTypography-body1L {\n display: block;\n margin-top: 0.5rem;\n}\n.emptyContent-component-v2 > .MuiStack-root button {\n margin-top: 1rem;\n}";
|
|
9411
|
+
styleInject(css_248z$e);
|
|
9383
9412
|
|
|
9384
9413
|
function EmptyContent(_a) {
|
|
9385
9414
|
var title = _a.title, desc = _a.desc, _b = _a.iconName, iconName = _b === void 0 ? "EmptyFolder44" : _b, _c = _a.className, className = _c === void 0 ? "" : _c, button = _a.button;
|
|
@@ -9393,8 +9422,8 @@ function EmptyContent(_a) {
|
|
|
9393
9422
|
button && button));
|
|
9394
9423
|
}
|
|
9395
9424
|
|
|
9396
|
-
var css_248z$
|
|
9397
|
-
styleInject(css_248z$
|
|
9425
|
+
var css_248z$d = ".fileUpload-component-v2 {\n position: relative;\n width: 100%;\n}\n.fileUpload-component-v2 > .fileUploadContainer {\n box-sizing: border-box;\n text-align: center;\n cursor: pointer;\n width: 100%;\n padding: 3rem 2rem;\n display: flex;\n position: relative;\n}\n.fileUpload-component-v2 > .fileUploadContainer fieldset {\n position: absolute;\n margin: 0;\n padding: 0 0 0 1rem !important;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n border-radius: 8px;\n border: 1px dashed var(--pebble, #EAEAEA);\n text-align: left;\n position: absolute;\n padding-inline: 0.75em;\n margin-inline: unset;\n}\n.fileUpload-component-v2 > .fileUploadContainer img {\n max-width: 100%;\n}\n.fileUpload-component-v2 > .fileUploadContainer.hasDropdown fieldset {\n border-bottom-right-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n}\n.fileUpload-component-v2 .dropdown-component-v2 {\n flex: 1;\n margin-top: 0;\n position: relative;\n left: 1px;\n width: calc(100% - 2px);\n}\n.fileUpload-component-v2 .dropdown-component-v2 > .MuiInputBase-root:not(:focus):not(:hover):not(:active) {\n outline-color: var(--secondary-brand-color, var(--teal, #0ABDAE));\n}\n.fileUpload-component-v2 .dropdown-component-v2 > .MuiInputBase-root {\n max-width: unset;\n border-top-right-radius: 0 !important;\n border-top-left-radius: 0 !important;\n}";
|
|
9426
|
+
styleInject(css_248z$d);
|
|
9398
9427
|
|
|
9399
9428
|
function FileUpload(_a) {
|
|
9400
9429
|
var label = _a.label, onChange = _a.onChange, _b = _a.defaultIconName, defaultIconName = _b === void 0 ? "Upload44" : _b, placeholder = _a.placeholder, support = _a.support, dropdown = _a.dropdown;
|
|
@@ -9497,8 +9526,8 @@ function Link(_a) {
|
|
|
9497
9526
|
return React.createElement(material.Link, __assign({}, props, { variant: variant, color: color, className: classes }), children);
|
|
9498
9527
|
}
|
|
9499
9528
|
|
|
9500
|
-
var css_248z$
|
|
9501
|
-
styleInject(css_248z$
|
|
9529
|
+
var css_248z$c = ".subNav-component-v2 {\n flex-wrap: wrap;\n}\n.subNav-component-v2.dir-row button:not(:last-child) {\n margin-right: 2px;\n}\n.subNav-component-v2.dir-column button:not(:first-child) {\n margin-top: 1.25rem;\n}\n.subNav-component-v2 button.selected {\n pointer-events: none;\n}\n.subNav-component-v2 button.default, .subNav-component-v2 button.text {\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n outline: none;\n}\n.subNav-component-v2 button.default span, .subNav-component-v2 button.text span {\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.subNav-component-v2 button.default:not(:hover), .subNav-component-v2 button.text:not(:hover) {\n background: none;\n}\n.subNav-component-v2 button.default:hover, .subNav-component-v2 button.text:hover {\n outline: none;\n}\n.subNav-component-v2 button.default:active, .subNav-component-v2 button.text:active {\n outline: none !important;\n}\n.subNav-component-v2 button.default {\n text-transform: none;\n}\n.subNav-component-v2 button.default span {\n text-transform: none;\n}\n.subNav-component-v2 button.default.selected {\n background-color: var(--cloud, #F4F4F4);\n}\n.subNav-component-v2 button.text span {\n color: var(--silver, #9B9B9B);\n}\n.subNav-component-v2 button.text:hover, .subNav-component-v2 button.text.selected {\n background: none;\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.subNav-component-v2 button.text:hover span, .subNav-component-v2 button.text.selected span {\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}";
|
|
9530
|
+
styleInject(css_248z$c);
|
|
9502
9531
|
|
|
9503
9532
|
function SubNav(_a) {
|
|
9504
9533
|
var _b = _a.items, items = _b === void 0 ? [] : _b, _c = _a.direction, direction = _c === void 0 ? "row" : _c, initialSelected = _a.initialSelected, selected = _a.selected, onClick = _a.onClick, className = _a.className, _d = _a.menuVariant, menuVariant = _d === void 0 ? "default" : _d, btnOverride = _a.btnOverride;
|
|
@@ -9530,8 +9559,8 @@ function SubNav(_a) {
|
|
|
9530
9559
|
}));
|
|
9531
9560
|
}
|
|
9532
9561
|
|
|
9533
|
-
var css_248z$
|
|
9534
|
-
styleInject(css_248z$
|
|
9562
|
+
var css_248z$b = ".filter-bar-component-v2 {\n background: var(--shade100, #F3F2F2);\n width: 100%;\n box-sizing: border-box;\n}\n.filter-bar-component-v2 .DDItem {\n padding-left: 2rem;\n}\n.filter-bar-component-v2 .DDItem .MuiInputBase-input {\n padding-right: 0 !important;\n}\n.filter-bar-component-v2 .addFilterBox {\n padding: 0 1.5rem;\n position: relative;\n cursor: pointer;\n}\n.filter-bar-component-v2 .addFilterBox .MuiLink-root {\n text-decoration: none;\n}\n.filter-bar-component-v2 .addFilterBox .search-component-v2 .inputContainer {\n padding: 0;\n background: unset;\n box-shadow: none;\n}\n.filter-bar-component-v2 .addFilterBox .dropMenuContainer {\n position: absolute;\n top: 4rem;\n width: -moz-max-content;\n width: max-content;\n min-width: 100%;\n box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1490196078);\n border-radius: 16px;\n min-width: 300;\n background: var(--background-color-1, var(--white, #FFFFFF));\n box-sizing: border-box;\n z-index: 1000;\n}\n.filter-bar-component-v2 .addFilterBox .dropMenuContainer .subNav-component-v2 {\n justify-content: space-between;\n margin: 0;\n}\n.filter-bar-component-v2 .addFilterBox .dropMenuContainer .subNav-component-v2 button {\n flex: 1;\n border-radius: 0;\n background: var(--cloud, #F4F4F4);\n}\n.filter-bar-component-v2 .addFilterBox .dropMenuContainer .subNav-component-v2 button.selected {\n background: var(--white, #FFFFFF);\n}\n.filter-bar-component-v2 .addFilterBox .dropMenuContainer .subNav-component-v2 button:first-child, .filter-bar-component-v2 .addFilterBox .dropMenuContainer .subNav-component-v2 button:first-child:hover {\n border-top-left-radius: 4px;\n}\n.filter-bar-component-v2 .addFilterBox .dropMenuContainer .subNav-component-v2 button:last-child, .filter-bar-component-v2 .addFilterBox .dropMenuContainer .subNav-component-v2 button:last-child:hover {\n border-top-right-radius: 4px;\n}\n.filter-bar-component-v2 .addFilterBox .dropMenuContainer .dropMenu-component-v2 {\n box-shadow: none;\n margin-top: 0;\n padding: 1.5rem;\n}\n.filter-bar-component-v2 .addFilterBox .dropMenuContainer .dropMenu-component-v2 .MuiMenuItem-root {\n padding: 0.5rem;\n}\n.filter-bar-component-v2 .addFilterBox .dropMenuContainer .dropMenu-component-v2 .MuiMenuItem-root.isTitle {\n padding-top: 0;\n}\n.filter-bar-component-v2 .addFilterBox .dropMenuContainer .dropMenu-component-v2 .MuiTypography-body1L {\n font-size: 0.875rem;\n}\n.filter-bar-component-v2 .addFilterBox .dropMenuContainer > button {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n padding: 0.75rem;\n}\n.filter-bar-component-v2 .pillContainer {\n padding: 0.75rem;\n min-height: 2rem;\n overflow-x: auto;\n}\n.filter-bar-component-v2 .pillContainer .MuiSvgIcon-root {\n padding-right: 0;\n padding-left: 0.5rem;\n}\n.filter-bar-component-v2 .pillContainer .MuiChip-root {\n flex-direction: row-reverse;\n}\n.filter-bar-component-v2 .pillContainer .MuiChip-root.disabled {\n pointer-events: all !important;\n}\n.filter-bar-component-v2 .pillContainer .MuiChip-root .MuiChip-label {\n display: flex;\n align-items: center;\n}\n.filter-bar-component-v2 .pillContainer .MuiChip-root .MuiChip-label .MuiSvgIcon-root {\n margin-right: 0.5rem;\n}\n.filter-bar-component-v2 .pillContainer .MuiChip-root .MuiChip-label .MuiSvgIcon-root path {\n fill: var(--white, #FFFFFF);\n}\n.filter-bar-component-v2 .pillContainer:not(.empty) {\n border-left: 1px solid var(--wild-sand, #dddddd);\n}\n.filter-bar-component-v2 .actionContainer {\n border-left: 1px solid var(--wild-sand, #dddddd);\n padding: 0 2rem;\n padding-left: 2rem;\n}\n.filter-bar-component-v2 .actionContainer .MuiTypography-root {\n cursor: pointer;\n}";
|
|
9563
|
+
styleInject(css_248z$b);
|
|
9535
9564
|
|
|
9536
9565
|
function FilterBar(_a) {
|
|
9537
9566
|
var _b, _c, _d, _e, _f, _g, _h, _j;
|
|
@@ -11401,6 +11430,7 @@ exports.EEventBreakdownDimension = void 0;
|
|
|
11401
11430
|
EEventBreakdownDimension["listId"] = "list_id";
|
|
11402
11431
|
EEventBreakdownDimension["contactId"] = "contact_id";
|
|
11403
11432
|
EEventBreakdownDimension["formId"] = "form_id";
|
|
11433
|
+
EEventBreakdownDimension["scrollDepth"] = "scroll_depth";
|
|
11404
11434
|
})(exports.EEventBreakdownDimension || (exports.EEventBreakdownDimension = {}));
|
|
11405
11435
|
exports.EEventTimeseriesGranularity = void 0;
|
|
11406
11436
|
(function (EEventTimeseriesGranularity) {
|
|
@@ -11947,7 +11977,7 @@ function renderPage(_a) {
|
|
|
11947
11977
|
});
|
|
11948
11978
|
}
|
|
11949
11979
|
|
|
11950
|
-
var BASE_URL = function () { return uiKitConfig.GATEWAY_PROXY + "/pats"; };
|
|
11980
|
+
var BASE_URL = function () { return uiKitConfig.GATEWAY_PROXY + "/users/self/pats"; };
|
|
11951
11981
|
function listPats(_a) {
|
|
11952
11982
|
var page = _a.page, perPage = _a.perPage, status = _a.status;
|
|
11953
11983
|
return callApi({
|
|
@@ -13245,8 +13275,15 @@ var PersonalAccessTokenModel = /** @class */ (function () {
|
|
|
13245
13275
|
return __generator(this, function (_c) {
|
|
13246
13276
|
return [2 /*return*/, updatePat({ keyPrefix: this.key_prefix, name: name, scopes: scopes, allowedAccountIds: allowedAccountIds })
|
|
13247
13277
|
.then(function (data) {
|
|
13278
|
+
// Unlike revoke(), update() does NOT tolerate an empty/204 body: it
|
|
13279
|
+
// must return a model reflecting the new field values, so falling
|
|
13280
|
+
// back to `this` (the pre-update model) would be wrong. ng-api
|
|
13281
|
+
// returns the updated resource; a missing body is a real error.
|
|
13282
|
+
var updated = new PersonalAccessTokenModel(unwrapResponse(data));
|
|
13283
|
+
// Track only after a successful parse, so a malformed body (which
|
|
13284
|
+
// throws above) never misreports a successful update.
|
|
13248
13285
|
trackEvent(exports.EEvents.PAT_UPDATED, { key_prefix: _this.key_prefix });
|
|
13249
|
-
return
|
|
13286
|
+
return updated;
|
|
13250
13287
|
})];
|
|
13251
13288
|
});
|
|
13252
13289
|
});
|
|
@@ -13257,8 +13294,16 @@ var PersonalAccessTokenModel = /** @class */ (function () {
|
|
|
13257
13294
|
return __generator(this, function (_a) {
|
|
13258
13295
|
return [2 /*return*/, revokePat({ keyPrefix: this.key_prefix })
|
|
13259
13296
|
.then(function (data) {
|
|
13297
|
+
// ng-api returns the updated token. Tolerate an empty body (e.g. a
|
|
13298
|
+
// 204) — return a copy with status: "revoked" rather than the
|
|
13299
|
+
// unchanged model, so callers reading .status see the revocation.
|
|
13300
|
+
var revoked = (data != null && typeof data === "object")
|
|
13301
|
+
? new PersonalAccessTokenModel(unwrapResponse(data))
|
|
13302
|
+
: new PersonalAccessTokenModel(__assign(__assign({}, _this), { status: "revoked" }));
|
|
13303
|
+
// Track only after a successful parse, so a malformed body (which
|
|
13304
|
+
// throws above) never misreports a successful revoke.
|
|
13260
13305
|
trackEvent(exports.EEvents.PAT_REVOKED, { key_prefix: _this.key_prefix });
|
|
13261
|
-
return
|
|
13306
|
+
return revoked;
|
|
13262
13307
|
})];
|
|
13263
13308
|
});
|
|
13264
13309
|
});
|
|
@@ -13790,8 +13835,8 @@ function GenericWrapper(_a) {
|
|
|
13790
13835
|
content);
|
|
13791
13836
|
}
|
|
13792
13837
|
|
|
13793
|
-
var css_248z$
|
|
13794
|
-
styleInject(css_248z$
|
|
13838
|
+
var css_248z$a = ".groupedActions-component {\n display: flex;\n}\n.groupedActions-component > *:first-child, .groupedActions-component > *:first-child.dropdown-component-v2 .MuiInputBase-root {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.groupedActions-component > *:last-child, .groupedActions-component > *:last-child.dropdown-component-v2 .MuiInputBase-root {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.groupedActions-component > *:nth-child(n+2):not(:last-child), .groupedActions-component > *:nth-child(n+2):not(:last-child).dropdown-component-v2 .MuiInputBase-root {\n border-radius: 0;\n}\n.groupedActions-component.contained > *:nth-child(n+2):not(:last-child) {\n margin-left: 1px;\n}\n.groupedActions-component.contained > *:last-child {\n margin-left: 1px;\n}\n.groupedActions-component.outlined > *:nth-child(n+2):not(:last-child), .groupedActions-component.outlined > *:nth-child(n+2):not(:last-child).dropdown-component-v2 .MuiInputBase-root, .groupedActions-component.outlined > *:not(:first-child):active, .groupedActions-component.outlined > *:not(:first-child):active.dropdown-component-v2 .MuiInputBase-root, .groupedActions-component.outlined > *:last-child, .groupedActions-component.outlined > *:last-child.dropdown-component-v2 .MuiInputBase-root {\n border-left: none !important;\n}";
|
|
13839
|
+
styleInject(css_248z$a);
|
|
13795
13840
|
|
|
13796
13841
|
function GroupedActions(_a) {
|
|
13797
13842
|
var _b = _a.components, components = _b === void 0 ? [] : _b, classNames$1 = _a.classNames, _c = _a.variant, variant = _c === void 0 ? "contained" : _c;
|
|
@@ -13805,8 +13850,8 @@ function GroupedActions(_a) {
|
|
|
13805
13850
|
return React.createElement(Box, { className: classes }, components);
|
|
13806
13851
|
}
|
|
13807
13852
|
|
|
13808
|
-
var css_248z$
|
|
13809
|
-
styleInject(css_248z$
|
|
13853
|
+
var css_248z$9 = ".header-component-v2 {\n max-width: 31rem;\n width: 100%;\n}\n.header-component-v2 > * {\n width: -moz-fit-content;\n width: fit-content;\n}\n.header-component-v2 .header .headerText,\n.header-component-v2 .header .headerText span,\n.header-component-v2 .desc span,\n.header-component-v2 .support span {\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 31rem;\n display: block;\n text-wrap: nowrap;\n width: 100%;\n}\n.header-component-v2 .header,\n.header-component-v2 .desc,\n.header-component-v2 .support {\n width: -moz-fit-content;\n width: fit-content;\n}\n.header-component-v2 .header {\n flex: 1;\n margin-top: 0;\n}\n.header-component-v2 .header .postHeader,\n.header-component-v2 .header .preHeader {\n display: inline-block;\n width: -moz-fit-content;\n width: fit-content;\n text-wrap: nowrap;\n}\n.header-component-v2 .header .preHeader {\n margin-right: 1rem;\n}\n.header-component-v2 .header .postHeader {\n margin-left: 1.5rem;\n}\n.header-component-v2 .support {\n flex: 1;\n line-height: 0.75rem;\n display: block;\n margin-bottom: 1px;\n}\n.header-component-v2 .desc {\n flex: 1;\n margin-top: 1rem;\n border-color: var(--secondary-brand-color, var(--teal, #0ABDAE));\n}";
|
|
13854
|
+
styleInject(css_248z$9);
|
|
13810
13855
|
|
|
13811
13856
|
//TODO when bottom line is secondary color, it means it is in a editable state, clicking it would transform it into a text field with check and x
|
|
13812
13857
|
//https://www.figma.com/proto/OQkvkOI4CMyrcPbuza16e3/Analytics?type=design&node-id=232-14879&t=kNKIjcU4MImW1jef-0&scaling=min-zoom&page-id=0%3A1&starting-point-node-id=232%3A14512&show-proto-sidebar=1
|
|
@@ -13830,8 +13875,8 @@ function Header(_a) {
|
|
|
13830
13875
|
React.createElement(Typography$1, { variant: "body1L", className: "desc ".concat(descTooltip ? "showTooltip" : "") }, desc)));
|
|
13831
13876
|
}
|
|
13832
13877
|
|
|
13833
|
-
var css_248z$
|
|
13834
|
-
styleInject(css_248z$
|
|
13878
|
+
var css_248z$8 = ".iconPill-component-v2 {\n position: relative;\n}\n.iconPill-component-v2 span {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n background: var(--background-color-1, var(--white, #FFFFFF));\n border: 1px solid var(--wild-sand, #dddddd);\n font-size: 0.625rem;\n border-radius: 20px;\n font-weight: bold;\n top: -0.625rem;\n right: -0.625rem;\n width: 1.25rem;\n height: 1.25rem;\n}\n.iconPill-component-v2.s10 span {\n top: -0.25rem;\n right: -0.75rem;\n width: 0.75rem;\n height: 0.75rem;\n font-size: 0.5rem;\n}\n.iconPill-component-v2.s14 span {\n top: -0.3rem;\n right: -0.7rem;\n width: 0.75rem;\n height: 0.75rem;\n font-size: 0.5rem;\n}\n.iconPill-component-v2.s18 span {\n top: -0.5rem;\n right: -0.5rem;\n width: 1rem;\n height: 1rem;\n}\n.iconPill-component-v2.s32 span {\n top: -0.75rem;\n right: -0.75rem;\n width: 1.5rem;\n height: 1.5rem;\n font-size: 0.85rem;\n}\n.iconPill-component-v2.s44 span {\n top: -0.75rem;\n right: -0.75rem;\n width: 1.5rem;\n height: 1.5rem;\n font-size: 1rem;\n}";
|
|
13879
|
+
styleInject(css_248z$8);
|
|
13835
13880
|
|
|
13836
13881
|
var IconPill = React.forwardRef(function (_a, ref) {
|
|
13837
13882
|
var _b = _a.count, count = _b === void 0 ? 0 : _b, _c = _a.iconName, iconName = _c === void 0 ? "Domainauthenticated24" : _c, color = _a.color;
|
|
@@ -13852,8 +13897,8 @@ var IconPill = React.forwardRef(function (_a, ref) {
|
|
|
13852
13897
|
React.createElement(Icon, { name: iconName, color: defaultColor }));
|
|
13853
13898
|
});
|
|
13854
13899
|
|
|
13855
|
-
var css_248z$
|
|
13856
|
-
styleInject(css_248z$
|
|
13900
|
+
var css_248z$7 = ".informationGroup-component-v2 {\n display: flex;\n}\n.informationGroup-component-v2:first-child {\n padding-bottom: 2rem;\n}\n.informationGroup-component-v2:last-child {\n padding-top: 2rem;\n}\n.informationGroup-component-v2:not(:first-child):not(:last-child) {\n padding: 2rem 0;\n}\n.informationGroup-component-v2:not(:last-child) {\n border-bottom: 1px solid var(--wild-sand, #dddddd);\n}\n.informationGroup-component-v2 > div {\n max-width: 31.25rem;\n width: 100%;\n}\n.informationGroup-component-v2 > div:first-child {\n margin-right: 3rem;\n}\n.informationGroup-component-v2 > div:last-child {\n margin-top: 0.5rem;\n display: flex;\n flex-direction: column;\n}\n.informationGroup-component-v2 > div:last-child > div:not(:first-child) {\n margin-top: 2.5rem;\n}\n.informationGroup-component-v2 > div:last-child .dropdown-component-v2 .MuiInputBase-root,\n.informationGroup-component-v2 > div:last-child .dropdown-component-v2 {\n width: 100%;\n}\n.informationGroup-component-v2 > div:last-child .autocomplete-dropdown-container {\n z-index: 10000000;\n}";
|
|
13901
|
+
styleInject(css_248z$7);
|
|
13857
13902
|
|
|
13858
13903
|
function InformationGroup(_a) {
|
|
13859
13904
|
var title = _a.title, desc = _a.desc, rightContent = _a.rightContent, children = _a.children;
|
|
@@ -13866,8 +13911,8 @@ function InformationGroup(_a) {
|
|
|
13866
13911
|
children));
|
|
13867
13912
|
}
|
|
13868
13913
|
|
|
13869
|
-
var css_248z$
|
|
13870
|
-
styleInject(css_248z$
|
|
13914
|
+
var css_248z$6 = ".inlineTextEdit-component-v2 {\n border-bottom: var(--secondary-brand-color, var(--teal, #0ABDAE));\n border-bottom-style: dashed;\n position: relative;\n}\n.inlineTextEdit-component-v2 .hasPlaceholder {\n opacity: 0.5;\n}\n.inlineTextEdit-component-v2.editing .actions {\n position: absolute;\n right: -4.875rem;\n top: -2px;\n}\n.inlineTextEdit-component-v2.editing .actions .confirm {\n margin-right: 0.25rem;\n}\n.inlineTextEdit-component-v2.editing .actions .cancel svg {\n width: 10px;\n}\n.inlineTextEdit-component-v2 input,\n.inlineTextEdit-component-v2 textarea,\n.inlineTextEdit-component-v2 .MuiInputBase-root {\n width: 100%;\n border: none;\n padding: 0 !important;\n outline: none;\n}\n.inlineTextEdit-component-v2 input:active, .inlineTextEdit-component-v2 input:focus,\n.inlineTextEdit-component-v2 textarea:active,\n.inlineTextEdit-component-v2 textarea:focus,\n.inlineTextEdit-component-v2 .MuiInputBase-root:active,\n.inlineTextEdit-component-v2 .MuiInputBase-root:focus {\n border: none;\n}\n.inlineTextEdit-component-v2 > span,\n.inlineTextEdit-component-v2 input,\n.inlineTextEdit-component-v2 textarea,\n.inlineTextEdit-component-v2 .MuiBox-root,\n.inlineTextEdit-component-v2 .MuiBox-root .textfield-component-v2,\n.inlineTextEdit-component-v2 .MuiBox-root .textfield-component-v2 .MuiTextField-root,\n.inlineTextEdit-component-v2 .MuiBox-root .textfield-component-v2 .MuiTextField-root .MuiInputBase-root,\n.inlineTextEdit-component-v2 .MuiBox-root .textfield-component-v2 .MuiTextField-root .MuiInputBase-root input {\n font-family: inherit;\n font-weight: inherit;\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n}\n.inlineTextEdit-component-v2 .MuiBox-root .textfield-component-v2 .MuiTextField-root .MuiInputBase-root::before {\n content: unset;\n}\n.inlineTextEdit-component-v2 .MuiBox-root .textfield-component-v2 .MuiTextField-root .MuiInputBase-root::after {\n content: unset !important;\n}\n.inlineTextEdit-component-v2 .MuiBox-root .textfield-component-v2 .MuiTextField-root .MuiInputBase-root input,\n.inlineTextEdit-component-v2 .MuiBox-root .textfield-component-v2 .MuiTextField-root .MuiInputBase-root textarea {\n border: none;\n padding-top: 0;\n height: unset;\n}";
|
|
13915
|
+
styleInject(css_248z$6);
|
|
13871
13916
|
|
|
13872
13917
|
function InlineTextEdit(_a) {
|
|
13873
13918
|
var _b, _c;
|
|
@@ -19279,8 +19324,8 @@ process.env.NODE_ENV !== "production" ? Stack.propTypes /* remove-proptypes */ =
|
|
|
19279
19324
|
useFlexGap: PropTypes.bool
|
|
19280
19325
|
} : void 0;
|
|
19281
19326
|
|
|
19282
|
-
var css_248z$
|
|
19283
|
-
styleInject(css_248z$
|
|
19327
|
+
var css_248z$5 = ".metricCard-component {\n min-width: 250px;\n width: 100%;\n max-width: 35.25rem;\n box-sizing: border-box;\n box-shadow: none !important;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n gap: 2rem;\n}\n.metricCard-component.card {\n padding: 2rem;\n background: var(--cloud, #F4F4F4);\n}\n.metricCard-component.plain {\n background: none !important;\n}\n.metricCard-component.withRightContent {\n max-width: 72rem;\n}\n.metricCard-component > .rightContent {\n flex: 1;\n align-items: flex-end;\n}\n.metricCard-component > .rightContent img {\n border-radius: 24px;\n border: 1px solid var(--wild-sand, #dddddd);\n width: 100%;\n min-width: 150px;\n max-width: 225px;\n max-height: 18rem;\n}\n.metricCard-component > div:not(.rightContent) {\n flex: 1;\n}\n.metricCard-component > div:not(.rightContent) > img + .heading,\n.metricCard-component > div:not(.rightContent) > img + .subHeading,\n.metricCard-component > div:not(.rightContent) > img + .metricRows {\n margin-top: 2rem;\n}\n.metricCard-component > div:not(.rightContent) > .heading ~ div,\n.metricCard-component > div:not(.rightContent) .subHeading ~ div {\n margin-top: 1.5rem;\n}\n.metricCard-component > div:not(.rightContent) > img {\n border-radius: 48px;\n max-width: 100%;\n max-height: 18.75rem;\n margin: 0 auto;\n}\n.metricCard-component > div:not(.rightContent) > .heading .MuiSvgIcon-root {\n margin-right: 1rem;\n}\n.metricCard-component > div:not(.rightContent) > .subHeading.withProgress {\n margin-top: 1rem;\n}\n.metricCard-component > div:not(.rightContent) > .subHeading > .MuiStack-root {\n flex: 1;\n}\n.metricCard-component > div:not(.rightContent) > .subHeading > .MuiStack-root > .desc {\n display: grid;\n}\n.metricCard-component > div:not(.rightContent) > .subHeading > .MuiStack-root > .progress {\n height: calc(1rem - 2px);\n background: var(--white, #FFFFFF);\n}\n.metricCard-component > div:not(.rightContent) > .subHeading > .MuiStack-root > .progress + .data {\n margin-left: 1rem;\n font-size: 4rem;\n position: relative;\n top: -12px;\n}\n.metricCard-component > div:not(.rightContent) > .subHeading > .MuiStack-root > .data + .desc {\n margin-left: 2rem;\n}\n.metricCard-component > div:not(.rightContent) > .subHeading .MuiChip-root {\n margin-left: 2rem;\n}\n.metricCard-component > div:not(.rightContent) > .subHeading .MuiChip-root .MuiSvgIcon-root {\n padding-right: 0.5rem;\n}\n.metricCard-component > div:not(.rightContent) > .metricRows .MuiStack-root .MuiTypography-root:first-child {\n margin-right: 1rem;\n}\n.metricCard-component > div:not(.rightContent) > .metricRows .MuiStack-root:not(:last-child) {\n padding-bottom: 1rem;\n border-bottom: 1px solid var(--wild-sand, #dddddd);\n}\n.metricCard-component > div:not(.rightContent) > .metricRows .MuiStack-root:not(:first-child) {\n margin-top: 1rem;\n}\n.metricCard-component > div:not(.rightContent) > .floatingRow {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n}";
|
|
19328
|
+
styleInject(css_248z$5);
|
|
19284
19329
|
|
|
19285
19330
|
function MetricCard(_a) {
|
|
19286
19331
|
var _b, _c, _d, _e;
|
|
@@ -19337,8 +19382,8 @@ function Radio(_a) {
|
|
|
19337
19382
|
return React.createElement(material.Radio, __assign({}, props));
|
|
19338
19383
|
}
|
|
19339
19384
|
|
|
19340
|
-
var css_248z$
|
|
19341
|
-
styleInject(css_248z$
|
|
19385
|
+
var css_248z$4 = ".resourceEdit-component-v2 {\n width: 100%;\n padding-bottom: 1.5rem;\n}\n.resourceEdit-component-v2 .resource-heading {\n flex: 1;\n width: 100%;\n}\n.resourceEdit-component-v2 .resource-heading.editable {\n cursor: pointer;\n}\n.resourceEdit-component-v2 .resource-heading.editable:hover button.MuiButton-contained {\n background: var(--wild-sand, #dddddd);\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.resourceEdit-component-v2 .resource-heading.editable:hover button.MuiButton-contained .MuiSvgIcon-root {\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.resourceEdit-component-v2 .resource-heading.editable:hover button.MuiButton-outlined {\n outline: 1px solid var(--wild-sand, #dddddd);\n background: var(--wild-sand, #dddddd);\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.resourceEdit-component-v2 .resource-heading.editable:hover button.MuiButton-outlined .MuiSvgIcon-root {\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.resourceEdit-component-v2 .resource-heading.editable:hover button.MuiButton-text {\n background: var(--wild-sand, #dddddd);\n}\n.resourceEdit-component-v2 .resource-heading .resource-title {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n}\n.resourceEdit-component-v2 .resource-heading .statusCheckmark {\n width: 24px;\n height: 24px;\n border-radius: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-left: 0.5rem;\n}\n.resourceEdit-component-v2 .resource-heading .statusCheckmark.valid {\n background-color: var(--secondary-brand-color, var(--teal, #0ABDAE));\n}\n.resourceEdit-component-v2 .resource-heading .statusCheckmark.warning {\n background-color: var(--warning-brand-color, var(--orange, #FF9E0E));\n}\n.resourceEdit-component-v2 .resource-heading .statusCheckmark.error {\n background-color: var(--error-brand-color, var(--rad-red, #FF4835));\n}\n.resourceEdit-component-v2 .resource-heading .statusCheckmark.empty {\n background-color: var(--shade500, #939292);\n}";
|
|
19386
|
+
styleInject(css_248z$4);
|
|
19342
19387
|
|
|
19343
19388
|
function ResourceEdit(_a) {
|
|
19344
19389
|
var _b = _a.editable, editable = _b === void 0 ? false : _b, title = _a.title, desc = _a.desc, support = _a.support, status = _a.status, editableContent = _a.editableContent, className = _a.className, _c = _a.initOpen, initOpen = _c === void 0 ? false : _c;
|
|
@@ -19362,15 +19407,22 @@ function ResourceEdit(_a) {
|
|
|
19362
19407
|
support && React.createElement(material.Box, { className: "resource-support ".concat(!open ? "open" : "hidden") }, support));
|
|
19363
19408
|
}
|
|
19364
19409
|
|
|
19365
|
-
// Scope implication rules
|
|
19410
|
+
// Scope implication rules: selecting the key action also grants the listed actions.
|
|
19411
|
+
// Implied scopes are filtered against ALL_GRANULAR_SCOPES so we never emit a scope
|
|
19412
|
+
// the API doesn't define (e.g. a resource that has no `read`).
|
|
19366
19413
|
var SCOPE_IMPLICATIONS = {
|
|
19367
19414
|
"write": ["read"],
|
|
19368
19415
|
"delete": ["read"],
|
|
19369
19416
|
"send": ["read"],
|
|
19417
|
+
"send-test": ["read"],
|
|
19418
|
+
"share": ["read"],
|
|
19419
|
+
"publish": ["read"],
|
|
19370
19420
|
"import": ["read", "write"],
|
|
19371
19421
|
"export": ["read"],
|
|
19372
19422
|
"admin": ["read", "write", "delete"],
|
|
19373
19423
|
};
|
|
19424
|
+
// Catalog mirrors the ng-api ResourceScope enum exactly. Keep in sync with it —
|
|
19425
|
+
// the API rejects (422) any scope that is not a member of the enum.
|
|
19374
19426
|
var SCOPE_CATEGORIES = [
|
|
19375
19427
|
{
|
|
19376
19428
|
id: "audience",
|
|
@@ -19398,8 +19450,8 @@ var SCOPE_CATEGORIES = [
|
|
|
19398
19450
|
label: "Campaigns",
|
|
19399
19451
|
adminOnly: false,
|
|
19400
19452
|
resources: [
|
|
19401
|
-
{ resource: "campaigns", label: "Campaigns", actions: ["read", "write", "delete", "send"] },
|
|
19402
|
-
{ resource: "campaign_blueprints", label: "Campaign Blueprints", actions: ["read"
|
|
19453
|
+
{ resource: "campaigns", label: "Campaigns", actions: ["read", "write", "delete", "send", "send-test", "admin"] },
|
|
19454
|
+
{ resource: "campaign_blueprints", label: "Campaign Blueprints", actions: ["read"] },
|
|
19403
19455
|
]
|
|
19404
19456
|
},
|
|
19405
19457
|
{
|
|
@@ -19407,7 +19459,7 @@ var SCOPE_CATEGORIES = [
|
|
|
19407
19459
|
label: "Templates",
|
|
19408
19460
|
adminOnly: false,
|
|
19409
19461
|
resources: [
|
|
19410
|
-
{ resource: "templates", label: "Templates", actions: ["read", "write", "delete"] },
|
|
19462
|
+
{ resource: "templates", label: "Templates", actions: ["read", "write", "delete", "share"] },
|
|
19411
19463
|
]
|
|
19412
19464
|
},
|
|
19413
19465
|
{
|
|
@@ -19415,7 +19467,7 @@ var SCOPE_CATEGORIES = [
|
|
|
19415
19467
|
label: "Email API",
|
|
19416
19468
|
adminOnly: false,
|
|
19417
19469
|
resources: [
|
|
19418
|
-
{ resource: "
|
|
19470
|
+
{ resource: "emailapi", label: "Email API", actions: ["read", "send"] },
|
|
19419
19471
|
]
|
|
19420
19472
|
},
|
|
19421
19473
|
{
|
|
@@ -19423,8 +19475,8 @@ var SCOPE_CATEGORIES = [
|
|
|
19423
19475
|
label: "Forms",
|
|
19424
19476
|
adminOnly: false,
|
|
19425
19477
|
resources: [
|
|
19426
|
-
{ resource: "forms", label: "Forms", actions: ["read", "write", "delete"] },
|
|
19427
|
-
{ resource: "preference_centers", label: "Preference Centers", actions: ["read", "write"
|
|
19478
|
+
{ resource: "forms", label: "Forms", actions: ["read", "write", "delete", "publish"] },
|
|
19479
|
+
{ resource: "preference_centers", label: "Preference Centers", actions: ["read", "write"] },
|
|
19428
19480
|
]
|
|
19429
19481
|
},
|
|
19430
19482
|
{
|
|
@@ -19434,8 +19486,8 @@ var SCOPE_CATEGORIES = [
|
|
|
19434
19486
|
resources: [
|
|
19435
19487
|
{ resource: "senders", label: "Senders", actions: ["read", "write", "delete"] },
|
|
19436
19488
|
{ resource: "dkim", label: "DKIM", actions: ["read", "write", "delete"] },
|
|
19437
|
-
{ resource: "domains", label: "Domains", actions: ["read", "write"
|
|
19438
|
-
{ resource: "logos", label: "Logos", actions: ["
|
|
19489
|
+
{ resource: "domains", label: "Domains", actions: ["read", "write"] },
|
|
19490
|
+
{ resource: "logos", label: "Logos", actions: ["write", "delete"] },
|
|
19439
19491
|
]
|
|
19440
19492
|
},
|
|
19441
19493
|
{
|
|
@@ -19443,7 +19495,7 @@ var SCOPE_CATEGORIES = [
|
|
|
19443
19495
|
label: "Webhooks",
|
|
19444
19496
|
adminOnly: false,
|
|
19445
19497
|
resources: [
|
|
19446
|
-
{ resource: "webhooks", label: "Webhooks", actions: ["read", "write"
|
|
19498
|
+
{ resource: "webhooks", label: "Webhooks", actions: ["read", "write"] },
|
|
19447
19499
|
]
|
|
19448
19500
|
},
|
|
19449
19501
|
{
|
|
@@ -19451,10 +19503,10 @@ var SCOPE_CATEGORIES = [
|
|
|
19451
19503
|
label: "Analytics",
|
|
19452
19504
|
adminOnly: false,
|
|
19453
19505
|
resources: [
|
|
19454
|
-
{ resource: "reports", label: "Reports", actions: ["read"
|
|
19506
|
+
{ resource: "reports", label: "Reports", actions: ["read"] },
|
|
19455
19507
|
{ resource: "logs", label: "Logs", actions: ["read", "export"] },
|
|
19456
19508
|
{ resource: "links", label: "Links", actions: ["read"] },
|
|
19457
|
-
{ resource: "tasks", label: "Tasks", actions: ["read"] },
|
|
19509
|
+
{ resource: "tasks", label: "Tasks", actions: ["read", "delete"] },
|
|
19458
19510
|
]
|
|
19459
19511
|
},
|
|
19460
19512
|
{
|
|
@@ -19481,6 +19533,14 @@ var SCOPE_CATEGORIES = [
|
|
|
19481
19533
|
{ resource: "sub_accounts", label: "Sub-accounts", actions: ["read", "write", "admin"] },
|
|
19482
19534
|
]
|
|
19483
19535
|
},
|
|
19536
|
+
{
|
|
19537
|
+
id: "system_emails_admin",
|
|
19538
|
+
label: "System Emails (Admin)",
|
|
19539
|
+
adminOnly: true,
|
|
19540
|
+
resources: [
|
|
19541
|
+
{ resource: "system_emails", label: "System Emails", actions: ["read", "write"] },
|
|
19542
|
+
]
|
|
19543
|
+
},
|
|
19484
19544
|
{
|
|
19485
19545
|
id: "tokens_admin",
|
|
19486
19546
|
label: "Tokens (Admin)",
|
|
@@ -19490,6 +19550,9 @@ var SCOPE_CATEGORIES = [
|
|
|
19490
19550
|
]
|
|
19491
19551
|
},
|
|
19492
19552
|
];
|
|
19553
|
+
// Every valid granular scope, derived from the catalog. Used to filter out any
|
|
19554
|
+
// implied/preset scope that isn't a real API enum member.
|
|
19555
|
+
var ALL_GRANULAR_SCOPES = new Set(SCOPE_CATEGORIES.flatMap(function (c) { return c.resources.flatMap(function (r) { return r.actions.map(function (a) { return "".concat(r.resource, ":").concat(a); }); }); }));
|
|
19493
19556
|
// Helper to get all scopes for a category
|
|
19494
19557
|
function getCategoryScopes(categoryId) {
|
|
19495
19558
|
var cat = SCOPE_CATEGORIES.find(function (c) { return c.id === categoryId; });
|
|
@@ -19497,13 +19560,31 @@ function getCategoryScopes(categoryId) {
|
|
|
19497
19560
|
return [];
|
|
19498
19561
|
return cat.resources.flatMap(function (r) { return r.actions.map(function (a) { return "".concat(r.resource, ":").concat(a); }); });
|
|
19499
19562
|
}
|
|
19563
|
+
// Group a flat list of granular scopes by their category, for compact display
|
|
19564
|
+
// (e.g. listing pills). Categories with no matching scope are omitted.
|
|
19565
|
+
function groupScopesByCategory(scopes) {
|
|
19566
|
+
var selected = new Set(scopes);
|
|
19567
|
+
return SCOPE_CATEGORIES
|
|
19568
|
+
.map(function (cat) { return ({
|
|
19569
|
+
id: cat.id,
|
|
19570
|
+
label: cat.label,
|
|
19571
|
+
// `cat` is already in hand here — derive its scopes directly instead of
|
|
19572
|
+
// re-locating it with getCategoryScopes (which does a redundant find).
|
|
19573
|
+
scopes: cat.resources
|
|
19574
|
+
.flatMap(function (r) { return r.actions.map(function (a) { return "".concat(r.resource, ":").concat(a); }); })
|
|
19575
|
+
.filter(function (s) { return selected.has(s); }),
|
|
19576
|
+
}); })
|
|
19577
|
+
.filter(function (c) { return c.scopes.length > 0; });
|
|
19578
|
+
}
|
|
19500
19579
|
var SCOPE_PRESETS = [
|
|
19501
19580
|
{
|
|
19502
19581
|
id: "readonly",
|
|
19503
19582
|
label: "Read-only (all)",
|
|
19504
19583
|
scopes: SCOPE_CATEGORIES
|
|
19505
19584
|
.filter(function (c) { return !c.adminOnly; })
|
|
19506
|
-
.flatMap(function (c) { return c.resources
|
|
19585
|
+
.flatMap(function (c) { return c.resources
|
|
19586
|
+
.filter(function (r) { return r.actions.includes("read"); })
|
|
19587
|
+
.map(function (r) { return "".concat(r.resource, ":read"); }); })
|
|
19507
19588
|
},
|
|
19508
19589
|
{
|
|
19509
19590
|
id: "full",
|
|
@@ -19534,10 +19615,28 @@ var SCOPE_PRESETS = [
|
|
|
19534
19615
|
},
|
|
19535
19616
|
];
|
|
19536
19617
|
|
|
19618
|
+
var css_248z$3 = ".scopePicker {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n font-family: proxima-nova, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif;\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.scopePicker__presets {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.75rem;\n}\n.scopePicker__presetsLabel {\n font-size: 0.8125rem;\n font-weight: 600;\n color: var(--body-font-color-2, var(--silver, #9B9B9B));\n}\n.scopePicker__presetButtons {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n.scopePicker__presetBtn {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n cursor: pointer;\n border: 1px solid var(--shade200, #DBDADA);\n background: var(--white, #FFFFFF);\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n font: inherit;\n font-size: 0.8125rem;\n line-height: 1;\n padding: 0.5rem 0.75rem;\n border-radius: 100px;\n transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;\n}\n.scopePicker__presetBtn:hover:not(:disabled) {\n border-color: var(--primary-brand-color, var(--grape, #69006E));\n color: var(--primary-brand-color, var(--grape, #69006E));\n background: var(--shade100, #F3F2F2);\n}\n.scopePicker__presetBtn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n.scopePicker__categories {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--shade200, #DBDADA);\n border-radius: 8px;\n overflow: hidden;\n}\n.scopePicker__category {\n border-bottom: 1px solid var(--shade150, #E7E6E6);\n}\n.scopePicker__category:last-child {\n border-bottom: none;\n}\n.scopePicker__category--admin {\n background: var(--shade100, #F3F2F2);\n}\n.scopePicker__categoryHeader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 1rem;\n padding: 0.75rem 1rem;\n}\n.scopePicker__categorySelect {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n cursor: pointer;\n flex: 1;\n}\n.scopePicker__categorySelect input[type=checkbox] {\n width: 1rem;\n height: 1rem;\n accent-color: var(--primary-brand-color, var(--grape, #69006E));\n cursor: pointer;\n}\n.scopePicker__categoryLabel {\n font-size: 0.875rem;\n font-weight: 600;\n}\n.scopePicker__categoryToggle {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: none;\n background: none;\n cursor: pointer;\n color: var(--body-font-color-2, var(--silver, #9B9B9B));\n font-size: 0.625rem;\n padding: 0.5rem;\n line-height: 1;\n border-radius: 4px;\n}\n.scopePicker__categoryToggle:hover {\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n background: var(--shade150, #E7E6E6);\n}\n.scopePicker__categoryBody {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 0 1rem 1rem calc(1rem + 1.75rem);\n}\n.scopePicker__resource {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.75rem;\n}\n.scopePicker__resourceLabel {\n font-size: 0.8125rem;\n color: var(--body-font-color-2, var(--silver, #9B9B9B));\n min-width: 9rem;\n}\n.scopePicker__actions {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n.scopePicker__action {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n font-size: 0.8125rem;\n cursor: pointer;\n padding: 0.125rem 0.5rem;\n border-radius: 4px;\n border: 1px solid transparent;\n}\n.scopePicker__action input[type=checkbox] {\n width: 0.875rem;\n height: 0.875rem;\n accent-color: var(--primary-brand-color, var(--grape, #69006E));\n cursor: pointer;\n}\n.scopePicker__action:hover {\n background: var(--shade100, #F3F2F2);\n}\n.scopePicker__action--implied {\n color: var(--body-font-color-2, var(--silver, #9B9B9B));\n cursor: not-allowed;\n opacity: 0.7;\n}\n.scopePicker__action--implied input {\n cursor: not-allowed;\n}\n.scopePicker__summary {\n border: 1px dashed var(--shade200, #DBDADA);\n border-radius: 8px;\n padding: 0.75rem 1rem;\n font-size: 0.8125rem;\n}\n.scopePicker__summary summary {\n cursor: pointer;\n font-weight: 600;\n color: var(--body-font-color-2, var(--silver, #9B9B9B));\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.scopePicker__summaryList {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n margin-top: 0.75rem;\n}\n.scopePicker__summaryChip {\n font-family: monospace;\n font-size: 0.75rem;\n background: var(--shade100, #F3F2F2);\n border: 1px solid var(--shade200, #DBDADA);\n border-radius: 4px;\n padding: 0.125rem 0.375rem;\n color: var(--body-font-color, var(--dark-matter, #2B2B2B));\n}\n.scopePicker__summaryChip--unknown {\n border-color: var(--warning-brand-color, var(--orange, #FF9E0E));\n color: var(--warning-brand-color, var(--orange, #FF9E0E));\n}";
|
|
19619
|
+
styleInject(css_248z$3);
|
|
19620
|
+
|
|
19621
|
+
// `indeterminate` has no HTML attribute — it must be set imperatively on the DOM
|
|
19622
|
+
// node. A dedicated component scopes that write to a useEffect that runs only
|
|
19623
|
+
// when the flag changes, instead of an inline ref callback that React re-attaches
|
|
19624
|
+
// (null then element) on every parent render.
|
|
19625
|
+
function IndeterminateCheckbox(_a) {
|
|
19626
|
+
var checked = _a.checked, indeterminate = _a.indeterminate, onChange = _a.onChange, disabled = _a.disabled, ariaLabel = _a.ariaLabel;
|
|
19627
|
+
var ref = React.useRef(null);
|
|
19628
|
+
React.useEffect(function () {
|
|
19629
|
+
if (ref.current)
|
|
19630
|
+
ref.current.indeterminate = indeterminate;
|
|
19631
|
+
}, [indeterminate]);
|
|
19632
|
+
return (React.createElement("input", { ref: ref, type: "checkbox", checked: checked, onChange: function (e) { return onChange(e.target.checked); }, disabled: disabled, "aria-label": ariaLabel }));
|
|
19633
|
+
}
|
|
19537
19634
|
function getImpliedScopes(scope) {
|
|
19538
19635
|
var _a = scope.split(":"), resource = _a[0], action = _a[1];
|
|
19539
19636
|
var implied = SCOPE_IMPLICATIONS[action] || [];
|
|
19540
|
-
|
|
19637
|
+
// Only keep implied scopes that are real API enum members for this resource
|
|
19638
|
+
// (e.g. `logos` has no `read`, `users` has no `delete`).
|
|
19639
|
+
return implied.map(function (a) { return "".concat(resource, ":").concat(a); }).filter(function (s) { return ALL_GRANULAR_SCOPES.has(s); });
|
|
19541
19640
|
}
|
|
19542
19641
|
function ScopePicker(_a) {
|
|
19543
19642
|
var value = _a.value, onChange = _a.onChange, _b = _a.isPartner, isPartner = _b === void 0 ? false : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c;
|
|
@@ -19564,6 +19663,9 @@ function ScopePicker(_a) {
|
|
|
19564
19663
|
getImpliedScopes(scope).forEach(function (s) { return next.add(s); });
|
|
19565
19664
|
}
|
|
19566
19665
|
else {
|
|
19666
|
+
// Remove only the unchecked scope. We intentionally do NOT cascade-remove
|
|
19667
|
+
// its implied scopes: they are independent permissions the user may still
|
|
19668
|
+
// want, and cascading can silently drop scopes the user explicitly selected.
|
|
19567
19669
|
next.delete(scope);
|
|
19568
19670
|
}
|
|
19569
19671
|
onChange(Array.from(next));
|
|
@@ -19590,6 +19692,9 @@ function ScopePicker(_a) {
|
|
|
19590
19692
|
onChange(Array.from(next));
|
|
19591
19693
|
}, [selectedSet, onChange, disabled]);
|
|
19592
19694
|
var handlePreset = React.useCallback(function (presetId) {
|
|
19695
|
+
// Guard for symmetry with handleScopeToggle/handleCategorySelectAll: the
|
|
19696
|
+
// preset buttons are only rendered when !disabled, but keeping the check
|
|
19697
|
+
// makes all three value-mutators behave identically and stay safe to call.
|
|
19593
19698
|
if (disabled)
|
|
19594
19699
|
return;
|
|
19595
19700
|
var preset = SCOPE_PRESETS.find(function (p) { return p.id === presetId; });
|
|
@@ -19601,38 +19706,46 @@ function ScopePicker(_a) {
|
|
|
19601
19706
|
expanded.add(s);
|
|
19602
19707
|
getImpliedScopes(s).forEach(function (implied) { return expanded.add(implied); });
|
|
19603
19708
|
});
|
|
19709
|
+
// Preserve any already-selected scopes that aren't in the catalog (e.g.
|
|
19710
|
+
// server-side enum drift): applying a preset replaces the selection, but
|
|
19711
|
+
// it must never silently strip permissions the picker can't display.
|
|
19712
|
+
selectedSet.forEach(function (s) { if (!ALL_GRANULAR_SCOPES.has(s))
|
|
19713
|
+
expanded.add(s); });
|
|
19604
19714
|
onChange(Array.from(expanded));
|
|
19605
|
-
}, [onChange, disabled]);
|
|
19715
|
+
}, [selectedSet, onChange, disabled]);
|
|
19606
19716
|
var isCategoryAllSelected = React.useCallback(function (categoryId) {
|
|
19607
19717
|
var cat = SCOPE_CATEGORIES.find(function (c) { return c.id === categoryId; });
|
|
19608
19718
|
if (!cat)
|
|
19609
19719
|
return false;
|
|
19610
19720
|
return cat.resources.every(function (r) { return r.actions.every(function (a) { return selectedSet.has("".concat(r.resource, ":").concat(a)); }); });
|
|
19611
19721
|
}, [selectedSet]);
|
|
19722
|
+
var isCategorySomeSelected = React.useCallback(function (categoryId) {
|
|
19723
|
+
var cat = SCOPE_CATEGORIES.find(function (c) { return c.id === categoryId; });
|
|
19724
|
+
if (!cat)
|
|
19725
|
+
return false;
|
|
19726
|
+
return cat.resources.some(function (r) { return r.actions.some(function (a) { return selectedSet.has("".concat(r.resource, ":").concat(a)); }); });
|
|
19727
|
+
}, [selectedSet]);
|
|
19612
19728
|
var isImplied = React.useCallback(function (scope) {
|
|
19613
|
-
//
|
|
19614
|
-
|
|
19615
|
-
|
|
19616
|
-
|
|
19617
|
-
|
|
19618
|
-
|
|
19619
|
-
|
|
19620
|
-
if (r !== resource)
|
|
19621
|
-
return false;
|
|
19622
|
-
return (SCOPE_IMPLICATIONS[a] || []).includes(action);
|
|
19623
|
-
});
|
|
19729
|
+
// Only lock a scope as "implied" if it's actually selected — otherwise an
|
|
19730
|
+
// unselected-but-implied scope would render disabled+unchecked (a dead end).
|
|
19731
|
+
if (!selectedSet.has(scope))
|
|
19732
|
+
return false;
|
|
19733
|
+
// Implied if any other selected scope implies it. Uses getImpliedScopes so
|
|
19734
|
+
// the catalog filtering (ALL_GRANULAR_SCOPES) stays consistent across both.
|
|
19735
|
+
return Array.from(selectedSet).some(function (s) { return s !== scope && getImpliedScopes(s).includes(scope); });
|
|
19624
19736
|
}, [selectedSet]);
|
|
19625
19737
|
return (React.createElement("div", { className: "scopePicker", "aria-label": "Permission scope picker" },
|
|
19626
|
-
React.createElement("div", { className: "scopePicker__presets" },
|
|
19738
|
+
!disabled && (React.createElement("div", { className: "scopePicker__presets" },
|
|
19627
19739
|
React.createElement("span", { className: "scopePicker__presetsLabel" }, "Quick presets:"),
|
|
19628
|
-
React.createElement("div", { className: "scopePicker__presetButtons" }, SCOPE_PRESETS.map(function (preset) { return (React.createElement("button", { key: preset.id, type: "button", className: "scopePicker__presetBtn", onClick: function () { return handlePreset(preset.id); }
|
|
19740
|
+
React.createElement("div", { className: "scopePicker__presetButtons" }, SCOPE_PRESETS.map(function (preset) { return (React.createElement("button", { key: preset.id, type: "button", className: "scopePicker__presetBtn", onClick: function () { return handlePreset(preset.id); } }, preset.label)); })))),
|
|
19629
19741
|
React.createElement("div", { className: "scopePicker__categories" }, visibleCategories.map(function (category) {
|
|
19630
19742
|
var isExpanded = expandedCategories.has(category.id);
|
|
19631
19743
|
var allSelected = isCategoryAllSelected(category.id);
|
|
19744
|
+
var someSelected = isCategorySomeSelected(category.id);
|
|
19632
19745
|
return (React.createElement("div", { key: category.id, className: "scopePicker__category ".concat(category.adminOnly ? "scopePicker__category--admin" : "") },
|
|
19633
19746
|
React.createElement("div", { className: "scopePicker__categoryHeader" },
|
|
19634
19747
|
React.createElement("label", { className: "scopePicker__categorySelect" },
|
|
19635
|
-
React.createElement(
|
|
19748
|
+
React.createElement(IndeterminateCheckbox, { checked: allSelected, indeterminate: someSelected && !allSelected, onChange: function (checked) { return handleCategorySelectAll(category.id, checked); }, disabled: disabled, ariaLabel: "Select all ".concat(category.label, " scopes") }),
|
|
19636
19749
|
React.createElement("span", { className: "scopePicker__categoryLabel" }, category.label)),
|
|
19637
19750
|
React.createElement("button", { type: "button", className: "scopePicker__categoryToggle", onClick: function () { return toggleCategory(category.id); }, "aria-expanded": isExpanded, "aria-label": "".concat(isExpanded ? "Collapse" : "Expand", " ").concat(category.label) }, isExpanded ? "▲" : "▼")),
|
|
19638
19751
|
isExpanded && (React.createElement("div", { className: "scopePicker__categoryBody" }, category.resources.map(function (resource) { return (React.createElement("div", { key: resource.resource, className: "scopePicker__resource" },
|
|
@@ -19651,7 +19764,12 @@ function ScopePicker(_a) {
|
|
|
19651
19764
|
"Selected permissions (",
|
|
19652
19765
|
value.length,
|
|
19653
19766
|
")"),
|
|
19654
|
-
React.createElement("div", { className: "scopePicker__summaryList" }, value.sort().map(function (scope) {
|
|
19767
|
+
React.createElement("div", { className: "scopePicker__summaryList" }, __spreadArray([], value, true).sort().map(function (scope) {
|
|
19768
|
+
// Scopes not in the catalog (e.g. enum drift) get a
|
|
19769
|
+
// distinct style + tooltip so they're never invisible.
|
|
19770
|
+
var unrecognized = !ALL_GRANULAR_SCOPES.has(scope);
|
|
19771
|
+
return (React.createElement("span", { key: scope, className: "scopePicker__summaryChip ".concat(unrecognized ? "scopePicker__summaryChip--unknown" : ""), title: unrecognized ? "Not in the current permission catalog — kept as-is on save" : undefined }, scope));
|
|
19772
|
+
}))))));
|
|
19655
19773
|
}
|
|
19656
19774
|
|
|
19657
19775
|
var css_248z$2 = ".sideMenu-component-v2 {\n z-index: 8000;\n width: -moz-fit-content;\n width: fit-content;\n}\n.sideMenu-component-v2 .sideMenu-spacer {\n display: none;\n}\n.sideMenu-component-v2.minified:hover .sideMenu-spacer {\n display: block;\n}\n.sideMenu-component-v2 .sideMenu-wrapper {\n z-index: 8000;\n display: flex;\n height: 100%;\n flex-direction: column;\n width: 20rem;\n min-width: 20rem;\n max-width: 20rem;\n padding: 1rem;\n background: var(--shade100, #F3F2F2);\n position: relative;\n box-sizing: border-box;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar {\n display: block;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar-track:horizontal {\n position: absolute;\n bottom: -20px;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar-track:vertical {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 8px !important;\n border-top-right-radius: 8px !important;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar-track {\n height: 2.5rem;\n width: 2.5rem;\n padding: 2rem;\n background-clip: content-box;\n border-bottom-left-radius: 8px;\n}\n.sideMenu-component-v2 .sideMenu-wrapper::-webkit-scrollbar-thumb {\n background: var(--body-font-color-2, var(--silver, #9B9B9B));\n border-radius: 24px;\n border-top: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-bottom: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-right: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n border-left: 5px solid var(--background-color-1, var(--white, #FFFFFF));\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:hover {\n box-shadow: 0px 0px 32px 0px rgba(0, 0, 0, 0.15);\n position: absolute !important;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) {\n gap: 1rem;\n max-width: 73px;\n min-width: 73px;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuHeader {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .subNav-component-v2 button {\n padding: 0.75rem;\n margin-right: 0;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .subNav-component-v2 button:not(.selected) {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuContainer-component-v2 .menuItemRow .sideMenuItem-component-v2.subItem,\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuContainer-component-v2 .menuItemRow .sideMenuItem-component-v2 .chevron {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuContainer-component-v2 .menuItemRow .sideMenuItem-component-v2 a {\n justify-content: center;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .sideMenuContainer-component-v2 .menuItemRow .sideMenuItem-component-v2 a .MuiStack-root {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .footer > .avatar-component-v2 {\n display: block;\n}\n.sideMenu-component-v2 .sideMenu-wrapper.minified:not(:hover) .footer button {\n display: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .sideMenuHeader {\n margin-bottom: 1.5rem;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .sideMenuHeader .minifyIcon {\n cursor: pointer;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .search-component-v2 {\n margin-top: 1.5rem;\n position: relative;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .search-component-v2 .inputContainer {\n padding: 0.75rem 1rem;\n box-shadow: unset;\n border-radius: 8px;\n border: 1px solid var(--shade200, #DBDADA);\n}\n.sideMenu-component-v2 .sideMenu-wrapper .search-component-v2:after {\n position: absolute;\n left: 0;\n bottom: -1.5rem;\n content: \"\";\n display: block;\n width: 100%;\n height: 1.5rem;\n background: linear-gradient(var(--shade100, #F3F2F2) 0%, transparent 100%);\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 {\n width: 100%;\n position: relative;\n justify-content: space-between;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2:after {\n position: absolute;\n left: 0;\n bottom: -1.5rem;\n content: \"\";\n display: block;\n width: 100%;\n height: 1.5rem;\n background: linear-gradient(var(--shade100, #F3F2F2) 0%, transparent 100%);\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button {\n flex: 1;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) {\n background: none;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) svg path:not(.noFill),\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) svg rect:not(.noFill) {\n fill: var(--secondary-brand-color, var(--teal, #0ABDAE));\n}\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) svg path.noFill,\n.sideMenu-component-v2 .sideMenu-wrapper .subNav-component-v2 button:not(.selected):not(:hover) svg rect.noFill {\n stroke: var(--secondary-brand-color, var(--teal, #0ABDAE));\n}\n.sideMenu-component-v2 .sideMenu-wrapper .sideMenuContainer-component-v2 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .footer {\n position: relative;\n justify-self: flex-end;\n}\n.sideMenu-component-v2 .sideMenu-wrapper .footer:before {\n position: absolute;\n left: 0;\n top: -1.5rem;\n content: \"\";\n display: block;\n width: 100%;\n height: 1.5rem;\n background: linear-gradient(transparent 0, var(--shade100, #F3F2F2) 100%);\n}\n.sideMenu-component-v2 .sideMenu-wrapper .footer > .avatar-component-v2 {\n display: none;\n}\n\n.sideMenuContainer-component-v2 {\n flex: 1;\n overflow-y: auto;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow.divider {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow.withSubItems.openedSubMenu .sideMenuItem-component-v2:nth-child(2) {\n margin-top: calc(0.5rem - 1px);\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow.withSubItems.openedSubMenu .sideMenuItem-component-v2:last-child {\n margin-bottom: calc(0.5rem - 1px);\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow.subSection {\n margin-top: 1rem;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer > .menuItemRow:first-child {\n margin-top: 0;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.subItem {\n margin-left: 2.75rem;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.subItem > a,\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.subItem > a > div > span {\n font-size: 0.875rem;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.rotate .chevron {\n rotate: 180deg;\n}\n.sideMenuContainer-component-v2 .menuItemsContainer .sideMenuItem-component-v2.hasLocationSelected:hover a {\n cursor: default;\n background: unset !important;\n}\n\n.sideMenuItem-component-v2 {\n box-sizing: border-box;\n}\n.sideMenuItem-component-v2:hover a, .sideMenuItem-component-v2.selected a {\n background: var(--shade200, #DBDADA);\n}\n.sideMenuItem-component-v2.hasSubItemSelected > .MuiTypography-root .chevron {\n rotate: -90deg;\n}\n.sideMenuItem-component-v2 .avatar-component-v2 .MuiAvatar-root {\n border-color: var(--shade200, #DBDADA);\n background: var(--white, #FFFFFF);\n}\n.sideMenuItem-component-v2 .chevron {\n margin-left: 1rem;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.sideMenuItem-component-v2 a {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.75rem;\n border-radius: 8px;\n text-decoration: none !important;\n gap: 1rem;\n}\n.sideMenuItem-component-v2 a > .MuiStack-root {\n flex: 1;\n}\n.sideMenuItem-component-v2 a img {\n max-width: 80px;\n}\n.sideMenuItem-component-v2.soloItem a {\n border-radius: 16px;\n padding: 1.5rem;\n border: 1px solid var(--shade200, #DBDADA);\n}\n.sideMenuItem-component-v2.soloItem a:hover {\n border-color: var(--wild-sand, #dddddd);\n}\n.sideMenuItem-component-v2.soloItem .chevron {\n rotate: -90deg;\n}\n.sideMenuItem-component-v2.subSection {\n padding: 0.5rem 0.75rem 0.5rem 0.75rem;\n}";
|
|
@@ -19746,7 +19864,7 @@ function SideMenuContainer(_a) {
|
|
|
19746
19864
|
if (subSelected) {
|
|
19747
19865
|
hasSubItemSelected = true;
|
|
19748
19866
|
}
|
|
19749
|
-
return React.createElement(SideMenuItem, { item: s, defaultItemIcon: s.defaultItemIcon, menuItemClick: handleMenuItemClick, selected: subSelected, className: subClasses, key: "subItem-".concat(sIndex) });
|
|
19867
|
+
return React.createElement(SideMenuItem, { item: s, variant: s.variant, defaultItemIcon: s.defaultItemIcon, menuItemClick: handleMenuItemClick, selected: subSelected, className: subClasses, key: "subItem-".concat(sIndex) });
|
|
19750
19868
|
});
|
|
19751
19869
|
var openedSubMenu = (hasSubItemSelected || openedItems.includes(i.name || ""));
|
|
19752
19870
|
var classes = classNames({
|
|
@@ -20649,7 +20767,7 @@ var PersonalAccessTokensFactory = /** @class */ (function () {
|
|
|
20649
20767
|
var keyPrefix = _b.keyPrefix;
|
|
20650
20768
|
return __generator(this, function (_c) {
|
|
20651
20769
|
return [2 /*return*/, getPat({ keyPrefix: keyPrefix }).then(function (data) {
|
|
20652
|
-
return new PersonalAccessTokenModel(data
|
|
20770
|
+
return new PersonalAccessTokenModel(unwrapResponse(data));
|
|
20653
20771
|
})];
|
|
20654
20772
|
});
|
|
20655
20773
|
});
|
|
@@ -20659,7 +20777,19 @@ var PersonalAccessTokensFactory = /** @class */ (function () {
|
|
|
20659
20777
|
var name = _b.name, scopes = _b.scopes, expiresAt = _b.expiresAt, allowedAccountIds = _b.allowedAccountIds;
|
|
20660
20778
|
return __generator(this, function (_c) {
|
|
20661
20779
|
return [2 /*return*/, createPat({ name: name, scopes: scopes, expiresAt: expiresAt, allowedAccountIds: allowedAccountIds }).then(function (data) {
|
|
20662
|
-
|
|
20780
|
+
// Single-resource responses are returned flat (not wrapped in `{ data }`).
|
|
20781
|
+
var body = unwrapResponse(data);
|
|
20782
|
+
var plaintext = body.plaintext, patData = __rest(body
|
|
20783
|
+
// The plaintext token is shown to the user exactly once, at creation;
|
|
20784
|
+
// if the API omits it there is nothing to display, so fail loudly here
|
|
20785
|
+
// rather than handing back `undefined` as the token.
|
|
20786
|
+
, ["plaintext"]);
|
|
20787
|
+
// The plaintext token is shown to the user exactly once, at creation;
|
|
20788
|
+
// if the API omits it there is nothing to display, so fail loudly here
|
|
20789
|
+
// rather than handing back `undefined` as the token.
|
|
20790
|
+
if (typeof plaintext !== "string" || plaintext.length === 0) {
|
|
20791
|
+
throw new Error("API response did not include the plaintext token");
|
|
20792
|
+
}
|
|
20663
20793
|
trackEvent(exports.EEvents.PAT_CREATED, { name: name, scopes: scopes });
|
|
20664
20794
|
return { pat: new PersonalAccessTokenModel(patData), plaintext: plaintext };
|
|
20665
20795
|
})];
|
|
@@ -21316,6 +21446,7 @@ exports.getUrlQueryParam = getUrlQueryParam;
|
|
|
21316
21446
|
exports.getUser = getUser;
|
|
21317
21447
|
exports.getUtmCookies = getUtmCookies;
|
|
21318
21448
|
exports.googlePlacesMapper = googlePlacesMapper;
|
|
21449
|
+
exports.groupScopesByCategory = groupScopesByCategory;
|
|
21319
21450
|
exports.hasDecimal = hasDecimal;
|
|
21320
21451
|
exports.impersonateService = impersonateService;
|
|
21321
21452
|
exports.initFieldValidation = initFieldValidation;
|
|
@@ -21408,6 +21539,7 @@ exports.unshareTemplate = unshareTemplate;
|
|
|
21408
21539
|
exports.unsubscribeContact = unsubscribeContact;
|
|
21409
21540
|
exports.untagContact = untagContact;
|
|
21410
21541
|
exports.untagContactsOfList = untagContactsOfList;
|
|
21542
|
+
exports.unwrapResponse = unwrapResponse;
|
|
21411
21543
|
exports.updateAccount = updateAccount;
|
|
21412
21544
|
exports.updateAndClearUrlParams = updateAndClearUrlParams;
|
|
21413
21545
|
exports.updateAnyAutomation = updateAnyAutomation;
|