@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/esm/index.js
CHANGED
|
@@ -509,8 +509,37 @@ function fetchRetry(_a) {
|
|
|
509
509
|
});
|
|
510
510
|
}
|
|
511
511
|
}).catch(function (e) {
|
|
512
|
-
onError
|
|
513
|
-
|
|
512
|
+
// Return the result of onError: on a retry it resolves to the recursive
|
|
513
|
+
// fetchRetry promise, so the caller receives the retried response. Without
|
|
514
|
+
// the return the chain would resolve to undefined and silently swallow it.
|
|
515
|
+
return onError(e);
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
// Single-resource API responses may be flat (the object itself) or enveloped as
|
|
519
|
+
// `{ data }`. Returns the inner payload in both cases; a flat object (no `data`
|
|
520
|
+
// key) is returned as-is. Centralizes the unwrap used by single-resource factories.
|
|
521
|
+
function unwrapResponse(data) {
|
|
522
|
+
// Reject null/undefined/empty-string/non-object bodies (e.g. a 204) loudly
|
|
523
|
+
// instead of building a model with undefined fields.
|
|
524
|
+
if (data == null || typeof data !== "object") {
|
|
525
|
+
throw new Error("API returned an empty or non-object response");
|
|
526
|
+
}
|
|
527
|
+
// Enveloped responses wrap the resource in a `data` field; flat responses are
|
|
528
|
+
// the resource object itself. When the envelope is present, its payload MUST
|
|
529
|
+
// be a non-array object — a null/array/scalar `data` is a malformed response
|
|
530
|
+
// and throws, rather than silently yielding the envelope as the resource.
|
|
531
|
+
if ("data" in data) {
|
|
532
|
+
var inner = data.data;
|
|
533
|
+
if (inner == null || typeof inner !== "object" || Array.isArray(inner)) {
|
|
534
|
+
throw new Error("API returned a null, array, or non-object payload");
|
|
535
|
+
}
|
|
536
|
+
return inner;
|
|
537
|
+
}
|
|
538
|
+
// Flat response: the object itself is the payload (but never an array).
|
|
539
|
+
if (Array.isArray(data)) {
|
|
540
|
+
throw new Error("API returned an array where a single resource was expected");
|
|
541
|
+
}
|
|
542
|
+
return data;
|
|
514
543
|
}
|
|
515
544
|
|
|
516
545
|
function getStorage(_a) {
|
|
@@ -6457,8 +6486,8 @@ function styleInject(css, ref) {
|
|
|
6457
6486
|
}
|
|
6458
6487
|
}
|
|
6459
6488
|
|
|
6460
|
-
var css_248z$
|
|
6461
|
-
styleInject(css_248z$
|
|
6489
|
+
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}";
|
|
6490
|
+
styleInject(css_248z$z);
|
|
6462
6491
|
|
|
6463
6492
|
var ActionBarContainer = forwardRef(function (props, ref) {
|
|
6464
6493
|
var refState = useRef({ open: false });
|
|
@@ -7654,8 +7683,8 @@ function Icon(_a) {
|
|
|
7654
7683
|
return React__default.createElement(React__default.Fragment, null, Component ? React__default.createElement(SvgIcon, __assign({ fontSize: fontSize, sx: __assign(__assign({}, sx), csx) }, iconProps, { component: Component })) : "");
|
|
7655
7684
|
}
|
|
7656
7685
|
|
|
7657
|
-
var css_248z$
|
|
7658
|
-
styleInject(css_248z$
|
|
7686
|
+
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}";
|
|
7687
|
+
styleInject(css_248z$y);
|
|
7659
7688
|
|
|
7660
7689
|
function CircularProgress(_a) {
|
|
7661
7690
|
var color = _a.color, _b = _a.location, location = _b === void 0 ? "default" : _b, props = __rest(_a, ["color", "location"]);
|
|
@@ -7669,8 +7698,8 @@ function LinearProgress(_a) {
|
|
|
7669
7698
|
return React__default.createElement(LinearProgress$1, __assign({}, props, { color: color, className: classes }));
|
|
7670
7699
|
}
|
|
7671
7700
|
|
|
7672
|
-
var css_248z$
|
|
7673
|
-
styleInject(css_248z$
|
|
7701
|
+
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}";
|
|
7702
|
+
styleInject(css_248z$x);
|
|
7674
7703
|
|
|
7675
7704
|
function LoadingContainer(_a) {
|
|
7676
7705
|
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
|
|
@@ -7693,8 +7722,8 @@ function LoadingContainer(_a) {
|
|
|
7693
7722
|
React__default.createElement(Container, { className: "loadingContainer-component-v2 ".concat(className), sx: { display: "flex", alignItems: "center", justifyContent: "center", width: "100%" } }, loader)));
|
|
7694
7723
|
}
|
|
7695
7724
|
|
|
7696
|
-
var css_248z$
|
|
7697
|
-
styleInject(css_248z$
|
|
7725
|
+
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}";
|
|
7726
|
+
styleInject(css_248z$w);
|
|
7698
7727
|
|
|
7699
7728
|
var TextField = forwardRef(function (_a, ref) {
|
|
7700
7729
|
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"]);
|
|
@@ -7749,8 +7778,8 @@ var TextField = forwardRef(function (_a, ref) {
|
|
|
7749
7778
|
React__default.createElement(MUITextField, __assign({}, props, { inputProps: inputProps, onChange: useBareBoneInput ? onChange : onChangeHandler, label: cLabel, disabled: disabled, onKeyDown: handleKeyDown, multiline: multiline, inputRef: ref, size: size })));
|
|
7750
7779
|
});
|
|
7751
7780
|
|
|
7752
|
-
var css_248z$
|
|
7753
|
-
styleInject(css_248z$
|
|
7781
|
+
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}";
|
|
7782
|
+
styleInject(css_248z$v);
|
|
7754
7783
|
|
|
7755
7784
|
var EAssetManagerMatchType;
|
|
7756
7785
|
(function (EAssetManagerMatchType) {
|
|
@@ -8228,8 +8257,8 @@ function DialogTitle(_a) {
|
|
|
8228
8257
|
React__default.createElement(Typography, { className: className, variant: variant }, children));
|
|
8229
8258
|
}
|
|
8230
8259
|
|
|
8231
|
-
var css_248z$
|
|
8232
|
-
styleInject(css_248z$
|
|
8260
|
+
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}";
|
|
8261
|
+
styleInject(css_248z$u);
|
|
8233
8262
|
|
|
8234
8263
|
var Dialog = forwardRef(function (props, ref) {
|
|
8235
8264
|
var refState = useRef({ open: false });
|
|
@@ -8319,8 +8348,8 @@ var Dialog = forwardRef(function (props, ref) {
|
|
|
8319
8348
|
!state.managedByContent && props.children);
|
|
8320
8349
|
});
|
|
8321
8350
|
|
|
8322
|
-
var css_248z$
|
|
8323
|
-
styleInject(css_248z$
|
|
8351
|
+
var css_248z$t = "";
|
|
8352
|
+
styleInject(css_248z$t);
|
|
8324
8353
|
|
|
8325
8354
|
var Drawer = forwardRef(function (props, ref) {
|
|
8326
8355
|
var _a = useState(props.open || false), isOpen = _a[0], setIsOpen = _a[1];
|
|
@@ -8367,16 +8396,16 @@ var Drawer = forwardRef(function (props, ref) {
|
|
|
8367
8396
|
return React__default.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);
|
|
8368
8397
|
});
|
|
8369
8398
|
|
|
8370
|
-
var css_248z$
|
|
8371
|
-
styleInject(css_248z$
|
|
8399
|
+
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}";
|
|
8400
|
+
styleInject(css_248z$s);
|
|
8372
8401
|
|
|
8373
8402
|
function ContentSectionContainer(_a) {
|
|
8374
8403
|
var _b = _a.className, className = _b === void 0 ? "" : _b, children = _a.children;
|
|
8375
8404
|
return React__default.createElement(Box, { className: "contentSectionContainer ".concat(className) }, children);
|
|
8376
8405
|
}
|
|
8377
8406
|
|
|
8378
|
-
var css_248z$
|
|
8379
|
-
styleInject(css_248z$
|
|
8407
|
+
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}";
|
|
8408
|
+
styleInject(css_248z$r);
|
|
8380
8409
|
|
|
8381
8410
|
function FullBar(props) {
|
|
8382
8411
|
if (props === void 0) { props = {}; }
|
|
@@ -8390,8 +8419,8 @@ function FullBar(props) {
|
|
|
8390
8419
|
React__default.createElement(Stack$1, __assign({ direction: "row" }, rightProps, { sx: __assign({ alignItems: "center", justifyContent: "right", fex: 1 }, rightSX), className: "right" }), right));
|
|
8391
8420
|
}
|
|
8392
8421
|
|
|
8393
|
-
var css_248z$
|
|
8394
|
-
styleInject(css_248z$
|
|
8422
|
+
var css_248z$q = ".logo-component-v2 {\n line-height: 0;\n}";
|
|
8423
|
+
styleInject(css_248z$q);
|
|
8395
8424
|
|
|
8396
8425
|
function Logo(_a) {
|
|
8397
8426
|
var url = _a.url, _b = _a.className, className = _b === void 0 ? "" : _b, _c = _a.imgProps, imgProps = _c === void 0 ? {} : _c;
|
|
@@ -8401,8 +8430,8 @@ function Logo(_a) {
|
|
|
8401
8430
|
React__default.createElement("img", __assign({ src: url, style: __assign({ maxHeight: "45px", maxWidth: "200px" }, styles) }, imgProps)));
|
|
8402
8431
|
}
|
|
8403
8432
|
|
|
8404
|
-
var css_248z$
|
|
8405
|
-
styleInject(css_248z$
|
|
8433
|
+
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}";
|
|
8434
|
+
styleInject(css_248z$p);
|
|
8406
8435
|
|
|
8407
8436
|
function ModalHeading(props) {
|
|
8408
8437
|
if (props === void 0) { props = {}; }
|
|
@@ -8492,8 +8521,8 @@ var Modal = forwardRef(function (props, ref) {
|
|
|
8492
8521
|
React__default.createElement(ContentSectionContainer, null, state.content))));
|
|
8493
8522
|
});
|
|
8494
8523
|
|
|
8495
|
-
var css_248z$
|
|
8496
|
-
styleInject(css_248z$
|
|
8524
|
+
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}";
|
|
8525
|
+
styleInject(css_248z$o);
|
|
8497
8526
|
|
|
8498
8527
|
function OverlayHeading(props) {
|
|
8499
8528
|
if (props === void 0) { props = {}; }
|
|
@@ -8582,8 +8611,8 @@ var Overlay = forwardRef(function (props, ref) {
|
|
|
8582
8611
|
React__default.createElement(ContentSectionContainer, null, state.content)))));
|
|
8583
8612
|
});
|
|
8584
8613
|
|
|
8585
|
-
var css_248z$
|
|
8586
|
-
styleInject(css_248z$
|
|
8614
|
+
var css_248z$n = ".ui-kit-v2-wrapper {\n width: 100%;\n flex: 1;\n display: flex;\n flex-direction: column;\n}";
|
|
8615
|
+
styleInject(css_248z$n);
|
|
8587
8616
|
|
|
8588
8617
|
function BrandWrapper(_a) {
|
|
8589
8618
|
_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;
|
|
@@ -8683,8 +8712,8 @@ function MenuOption(_a) {
|
|
|
8683
8712
|
React__default.createElement(Icon, { name: "Checkmark10" }))));
|
|
8684
8713
|
}
|
|
8685
8714
|
|
|
8686
|
-
var css_248z$
|
|
8687
|
-
styleInject(css_248z$
|
|
8715
|
+
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}";
|
|
8716
|
+
styleInject(css_248z$m);
|
|
8688
8717
|
|
|
8689
8718
|
function DropMenu(_a) {
|
|
8690
8719
|
var _b = _a.options, options = _b === void 0 ? [] : _b, _c = _a.popoverProps, popoverProps = _c === void 0 ? {
|
|
@@ -8709,8 +8738,8 @@ function DropMenu(_a) {
|
|
|
8709
8738
|
}
|
|
8710
8739
|
}
|
|
8711
8740
|
|
|
8712
|
-
var css_248z$
|
|
8713
|
-
styleInject(css_248z$
|
|
8741
|
+
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}";
|
|
8742
|
+
styleInject(css_248z$l);
|
|
8714
8743
|
|
|
8715
8744
|
function ButtonMenu(_a) {
|
|
8716
8745
|
var children = _a.children, _b = _a.buttonProps, buttonProps = _b === void 0 ? {
|
|
@@ -8753,8 +8782,8 @@ function Chip(_a) {
|
|
|
8753
8782
|
return React__default.createElement(Chip$1, __assign({}, props, { className: classes, color: color }));
|
|
8754
8783
|
}
|
|
8755
8784
|
|
|
8756
|
-
var css_248z$
|
|
8757
|
-
styleInject(css_248z$
|
|
8785
|
+
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}";
|
|
8786
|
+
styleInject(css_248z$k);
|
|
8758
8787
|
|
|
8759
8788
|
function CodeInput(_a) {
|
|
8760
8789
|
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;
|
|
@@ -8807,8 +8836,8 @@ function CustomPaginationActions(_a) {
|
|
|
8807
8836
|
React__default.createElement(Button, { onClick: handleLastPageButtonClick, disabled: page >= Math.ceil(count / rowsPerPage) - 1, "aria-label": "last page", variant: "outlined", color: "body1" }, "Last")));
|
|
8808
8837
|
}
|
|
8809
8838
|
|
|
8810
|
-
var css_248z$
|
|
8811
|
-
styleInject(css_248z$
|
|
8839
|
+
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}";
|
|
8840
|
+
styleInject(css_248z$j);
|
|
8812
8841
|
|
|
8813
8842
|
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";
|
|
8814
8843
|
|
|
@@ -8969,8 +8998,8 @@ function DataTableRow(_a) {
|
|
|
8969
8998
|
React__default.createElement(TableCell, { className: "rightStickyEffect stickyEffect" })));
|
|
8970
8999
|
}
|
|
8971
9000
|
|
|
8972
|
-
var css_248z$
|
|
8973
|
-
styleInject(css_248z$
|
|
9001
|
+
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}";
|
|
9002
|
+
styleInject(css_248z$i);
|
|
8974
9003
|
|
|
8975
9004
|
function Search(_a) {
|
|
8976
9005
|
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;
|
|
@@ -9043,8 +9072,8 @@ function Search(_a) {
|
|
|
9043
9072
|
React__default.createElement(Icon, { actionIcon: true, className: "close", name: "X18", onClick: onClose }))));
|
|
9044
9073
|
}
|
|
9045
9074
|
|
|
9046
|
-
var css_248z$
|
|
9047
|
-
styleInject(css_248z$
|
|
9075
|
+
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}";
|
|
9076
|
+
styleInject(css_248z$h);
|
|
9048
9077
|
|
|
9049
9078
|
function Dropdown(_a) {
|
|
9050
9079
|
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;
|
|
@@ -9269,8 +9298,8 @@ function DataTable(_a) {
|
|
|
9269
9298
|
ActionsComponent: CustomPaginationActions }))));
|
|
9270
9299
|
}
|
|
9271
9300
|
|
|
9272
|
-
var css_248z$
|
|
9273
|
-
styleInject(css_248z$
|
|
9301
|
+
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}";
|
|
9302
|
+
styleInject(css_248z$g);
|
|
9274
9303
|
|
|
9275
9304
|
function DatePicker(_a) {
|
|
9276
9305
|
var className = _a.className, props = __rest(_a, ["className"]);
|
|
@@ -9330,8 +9359,8 @@ function DateTimeCalendar(_a) {
|
|
|
9330
9359
|
} })));
|
|
9331
9360
|
}
|
|
9332
9361
|
|
|
9333
|
-
var css_248z$
|
|
9334
|
-
styleInject(css_248z$
|
|
9362
|
+
var css_248z$f = ".divider-component-v2 {\n width: 100%;\n}";
|
|
9363
|
+
styleInject(css_248z$f);
|
|
9335
9364
|
|
|
9336
9365
|
function Divider(_a) {
|
|
9337
9366
|
var _b = _a.height, height = _b === void 0 ? 1 : _b, _c = _a.color, color = _c === void 0 ? "wildSand" : _c;
|
|
@@ -9358,8 +9387,8 @@ function CountryDropdown(_a) {
|
|
|
9358
9387
|
return React__default.createElement(Dropdown, __assign({}, args, { value: value, defaultValue: defaultValue, options: options, onChange: onChange }));
|
|
9359
9388
|
}
|
|
9360
9389
|
|
|
9361
|
-
var css_248z$
|
|
9362
|
-
styleInject(css_248z$
|
|
9390
|
+
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}";
|
|
9391
|
+
styleInject(css_248z$e);
|
|
9363
9392
|
|
|
9364
9393
|
function EmptyContent(_a) {
|
|
9365
9394
|
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;
|
|
@@ -9373,8 +9402,8 @@ function EmptyContent(_a) {
|
|
|
9373
9402
|
button && button));
|
|
9374
9403
|
}
|
|
9375
9404
|
|
|
9376
|
-
var css_248z$
|
|
9377
|
-
styleInject(css_248z$
|
|
9405
|
+
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}";
|
|
9406
|
+
styleInject(css_248z$d);
|
|
9378
9407
|
|
|
9379
9408
|
function FileUpload(_a) {
|
|
9380
9409
|
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;
|
|
@@ -9477,8 +9506,8 @@ function Link(_a) {
|
|
|
9477
9506
|
return React__default.createElement(Link$1, __assign({}, props, { variant: variant, color: color, className: classes }), children);
|
|
9478
9507
|
}
|
|
9479
9508
|
|
|
9480
|
-
var css_248z$
|
|
9481
|
-
styleInject(css_248z$
|
|
9509
|
+
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}";
|
|
9510
|
+
styleInject(css_248z$c);
|
|
9482
9511
|
|
|
9483
9512
|
function SubNav(_a) {
|
|
9484
9513
|
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;
|
|
@@ -9510,8 +9539,8 @@ function SubNav(_a) {
|
|
|
9510
9539
|
}));
|
|
9511
9540
|
}
|
|
9512
9541
|
|
|
9513
|
-
var css_248z$
|
|
9514
|
-
styleInject(css_248z$
|
|
9542
|
+
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}";
|
|
9543
|
+
styleInject(css_248z$b);
|
|
9515
9544
|
|
|
9516
9545
|
function FilterBar(_a) {
|
|
9517
9546
|
var _b, _c, _d, _e, _f, _g, _h, _j;
|
|
@@ -11381,6 +11410,7 @@ var EEventBreakdownDimension;
|
|
|
11381
11410
|
EEventBreakdownDimension["listId"] = "list_id";
|
|
11382
11411
|
EEventBreakdownDimension["contactId"] = "contact_id";
|
|
11383
11412
|
EEventBreakdownDimension["formId"] = "form_id";
|
|
11413
|
+
EEventBreakdownDimension["scrollDepth"] = "scroll_depth";
|
|
11384
11414
|
})(EEventBreakdownDimension || (EEventBreakdownDimension = {}));
|
|
11385
11415
|
var EEventTimeseriesGranularity;
|
|
11386
11416
|
(function (EEventTimeseriesGranularity) {
|
|
@@ -11927,7 +11957,7 @@ function renderPage(_a) {
|
|
|
11927
11957
|
});
|
|
11928
11958
|
}
|
|
11929
11959
|
|
|
11930
|
-
var BASE_URL = function () { return uiKitConfig.GATEWAY_PROXY + "/pats"; };
|
|
11960
|
+
var BASE_URL = function () { return uiKitConfig.GATEWAY_PROXY + "/users/self/pats"; };
|
|
11931
11961
|
function listPats(_a) {
|
|
11932
11962
|
var page = _a.page, perPage = _a.perPage, status = _a.status;
|
|
11933
11963
|
return callApi({
|
|
@@ -13225,8 +13255,15 @@ var PersonalAccessTokenModel = /** @class */ (function () {
|
|
|
13225
13255
|
return __generator(this, function (_c) {
|
|
13226
13256
|
return [2 /*return*/, updatePat({ keyPrefix: this.key_prefix, name: name, scopes: scopes, allowedAccountIds: allowedAccountIds })
|
|
13227
13257
|
.then(function (data) {
|
|
13258
|
+
// Unlike revoke(), update() does NOT tolerate an empty/204 body: it
|
|
13259
|
+
// must return a model reflecting the new field values, so falling
|
|
13260
|
+
// back to `this` (the pre-update model) would be wrong. ng-api
|
|
13261
|
+
// returns the updated resource; a missing body is a real error.
|
|
13262
|
+
var updated = new PersonalAccessTokenModel(unwrapResponse(data));
|
|
13263
|
+
// Track only after a successful parse, so a malformed body (which
|
|
13264
|
+
// throws above) never misreports a successful update.
|
|
13228
13265
|
trackEvent(EEvents.PAT_UPDATED, { key_prefix: _this.key_prefix });
|
|
13229
|
-
return
|
|
13266
|
+
return updated;
|
|
13230
13267
|
})];
|
|
13231
13268
|
});
|
|
13232
13269
|
});
|
|
@@ -13237,8 +13274,16 @@ var PersonalAccessTokenModel = /** @class */ (function () {
|
|
|
13237
13274
|
return __generator(this, function (_a) {
|
|
13238
13275
|
return [2 /*return*/, revokePat({ keyPrefix: this.key_prefix })
|
|
13239
13276
|
.then(function (data) {
|
|
13277
|
+
// ng-api returns the updated token. Tolerate an empty body (e.g. a
|
|
13278
|
+
// 204) — return a copy with status: "revoked" rather than the
|
|
13279
|
+
// unchanged model, so callers reading .status see the revocation.
|
|
13280
|
+
var revoked = (data != null && typeof data === "object")
|
|
13281
|
+
? new PersonalAccessTokenModel(unwrapResponse(data))
|
|
13282
|
+
: new PersonalAccessTokenModel(__assign(__assign({}, _this), { status: "revoked" }));
|
|
13283
|
+
// Track only after a successful parse, so a malformed body (which
|
|
13284
|
+
// throws above) never misreports a successful revoke.
|
|
13240
13285
|
trackEvent(EEvents.PAT_REVOKED, { key_prefix: _this.key_prefix });
|
|
13241
|
-
return
|
|
13286
|
+
return revoked;
|
|
13242
13287
|
})];
|
|
13243
13288
|
});
|
|
13244
13289
|
});
|
|
@@ -13770,8 +13815,8 @@ function GenericWrapper(_a) {
|
|
|
13770
13815
|
content);
|
|
13771
13816
|
}
|
|
13772
13817
|
|
|
13773
|
-
var css_248z$
|
|
13774
|
-
styleInject(css_248z$
|
|
13818
|
+
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}";
|
|
13819
|
+
styleInject(css_248z$a);
|
|
13775
13820
|
|
|
13776
13821
|
function GroupedActions(_a) {
|
|
13777
13822
|
var _b = _a.components, components = _b === void 0 ? [] : _b, classNames$1 = _a.classNames, _c = _a.variant, variant = _c === void 0 ? "contained" : _c;
|
|
@@ -13785,8 +13830,8 @@ function GroupedActions(_a) {
|
|
|
13785
13830
|
return React__default.createElement(Box$1, { className: classes }, components);
|
|
13786
13831
|
}
|
|
13787
13832
|
|
|
13788
|
-
var css_248z$
|
|
13789
|
-
styleInject(css_248z$
|
|
13833
|
+
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}";
|
|
13834
|
+
styleInject(css_248z$9);
|
|
13790
13835
|
|
|
13791
13836
|
//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
|
|
13792
13837
|
//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
|
|
@@ -13810,8 +13855,8 @@ function Header(_a) {
|
|
|
13810
13855
|
React__default.createElement(Typography$2, { variant: "body1L", className: "desc ".concat(descTooltip ? "showTooltip" : "") }, desc)));
|
|
13811
13856
|
}
|
|
13812
13857
|
|
|
13813
|
-
var css_248z$
|
|
13814
|
-
styleInject(css_248z$
|
|
13858
|
+
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}";
|
|
13859
|
+
styleInject(css_248z$8);
|
|
13815
13860
|
|
|
13816
13861
|
var IconPill = forwardRef(function (_a, ref) {
|
|
13817
13862
|
var _b = _a.count, count = _b === void 0 ? 0 : _b, _c = _a.iconName, iconName = _c === void 0 ? "Domainauthenticated24" : _c, color = _a.color;
|
|
@@ -13832,8 +13877,8 @@ var IconPill = forwardRef(function (_a, ref) {
|
|
|
13832
13877
|
React__default.createElement(Icon, { name: iconName, color: defaultColor }));
|
|
13833
13878
|
});
|
|
13834
13879
|
|
|
13835
|
-
var css_248z$
|
|
13836
|
-
styleInject(css_248z$
|
|
13880
|
+
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}";
|
|
13881
|
+
styleInject(css_248z$7);
|
|
13837
13882
|
|
|
13838
13883
|
function InformationGroup(_a) {
|
|
13839
13884
|
var title = _a.title, desc = _a.desc, rightContent = _a.rightContent, children = _a.children;
|
|
@@ -13846,8 +13891,8 @@ function InformationGroup(_a) {
|
|
|
13846
13891
|
children));
|
|
13847
13892
|
}
|
|
13848
13893
|
|
|
13849
|
-
var css_248z$
|
|
13850
|
-
styleInject(css_248z$
|
|
13894
|
+
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}";
|
|
13895
|
+
styleInject(css_248z$6);
|
|
13851
13896
|
|
|
13852
13897
|
function InlineTextEdit(_a) {
|
|
13853
13898
|
var _b, _c;
|
|
@@ -19259,8 +19304,8 @@ process.env.NODE_ENV !== "production" ? Stack.propTypes /* remove-proptypes */ =
|
|
|
19259
19304
|
useFlexGap: PropTypes.bool
|
|
19260
19305
|
} : void 0;
|
|
19261
19306
|
|
|
19262
|
-
var css_248z$
|
|
19263
|
-
styleInject(css_248z$
|
|
19307
|
+
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}";
|
|
19308
|
+
styleInject(css_248z$5);
|
|
19264
19309
|
|
|
19265
19310
|
function MetricCard(_a) {
|
|
19266
19311
|
var _b, _c, _d, _e;
|
|
@@ -19317,8 +19362,8 @@ function Radio(_a) {
|
|
|
19317
19362
|
return React__default.createElement(Radio$1, __assign({}, props));
|
|
19318
19363
|
}
|
|
19319
19364
|
|
|
19320
|
-
var css_248z$
|
|
19321
|
-
styleInject(css_248z$
|
|
19365
|
+
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}";
|
|
19366
|
+
styleInject(css_248z$4);
|
|
19322
19367
|
|
|
19323
19368
|
function ResourceEdit(_a) {
|
|
19324
19369
|
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;
|
|
@@ -19342,15 +19387,22 @@ function ResourceEdit(_a) {
|
|
|
19342
19387
|
support && React__default.createElement(Box, { className: "resource-support ".concat(!open ? "open" : "hidden") }, support));
|
|
19343
19388
|
}
|
|
19344
19389
|
|
|
19345
|
-
// Scope implication rules
|
|
19390
|
+
// Scope implication rules: selecting the key action also grants the listed actions.
|
|
19391
|
+
// Implied scopes are filtered against ALL_GRANULAR_SCOPES so we never emit a scope
|
|
19392
|
+
// the API doesn't define (e.g. a resource that has no `read`).
|
|
19346
19393
|
var SCOPE_IMPLICATIONS = {
|
|
19347
19394
|
"write": ["read"],
|
|
19348
19395
|
"delete": ["read"],
|
|
19349
19396
|
"send": ["read"],
|
|
19397
|
+
"send-test": ["read"],
|
|
19398
|
+
"share": ["read"],
|
|
19399
|
+
"publish": ["read"],
|
|
19350
19400
|
"import": ["read", "write"],
|
|
19351
19401
|
"export": ["read"],
|
|
19352
19402
|
"admin": ["read", "write", "delete"],
|
|
19353
19403
|
};
|
|
19404
|
+
// Catalog mirrors the ng-api ResourceScope enum exactly. Keep in sync with it —
|
|
19405
|
+
// the API rejects (422) any scope that is not a member of the enum.
|
|
19354
19406
|
var SCOPE_CATEGORIES = [
|
|
19355
19407
|
{
|
|
19356
19408
|
id: "audience",
|
|
@@ -19378,8 +19430,8 @@ var SCOPE_CATEGORIES = [
|
|
|
19378
19430
|
label: "Campaigns",
|
|
19379
19431
|
adminOnly: false,
|
|
19380
19432
|
resources: [
|
|
19381
|
-
{ resource: "campaigns", label: "Campaigns", actions: ["read", "write", "delete", "send"] },
|
|
19382
|
-
{ resource: "campaign_blueprints", label: "Campaign Blueprints", actions: ["read"
|
|
19433
|
+
{ resource: "campaigns", label: "Campaigns", actions: ["read", "write", "delete", "send", "send-test", "admin"] },
|
|
19434
|
+
{ resource: "campaign_blueprints", label: "Campaign Blueprints", actions: ["read"] },
|
|
19383
19435
|
]
|
|
19384
19436
|
},
|
|
19385
19437
|
{
|
|
@@ -19387,7 +19439,7 @@ var SCOPE_CATEGORIES = [
|
|
|
19387
19439
|
label: "Templates",
|
|
19388
19440
|
adminOnly: false,
|
|
19389
19441
|
resources: [
|
|
19390
|
-
{ resource: "templates", label: "Templates", actions: ["read", "write", "delete"] },
|
|
19442
|
+
{ resource: "templates", label: "Templates", actions: ["read", "write", "delete", "share"] },
|
|
19391
19443
|
]
|
|
19392
19444
|
},
|
|
19393
19445
|
{
|
|
@@ -19395,7 +19447,7 @@ var SCOPE_CATEGORIES = [
|
|
|
19395
19447
|
label: "Email API",
|
|
19396
19448
|
adminOnly: false,
|
|
19397
19449
|
resources: [
|
|
19398
|
-
{ resource: "
|
|
19450
|
+
{ resource: "emailapi", label: "Email API", actions: ["read", "send"] },
|
|
19399
19451
|
]
|
|
19400
19452
|
},
|
|
19401
19453
|
{
|
|
@@ -19403,8 +19455,8 @@ var SCOPE_CATEGORIES = [
|
|
|
19403
19455
|
label: "Forms",
|
|
19404
19456
|
adminOnly: false,
|
|
19405
19457
|
resources: [
|
|
19406
|
-
{ resource: "forms", label: "Forms", actions: ["read", "write", "delete"] },
|
|
19407
|
-
{ resource: "preference_centers", label: "Preference Centers", actions: ["read", "write"
|
|
19458
|
+
{ resource: "forms", label: "Forms", actions: ["read", "write", "delete", "publish"] },
|
|
19459
|
+
{ resource: "preference_centers", label: "Preference Centers", actions: ["read", "write"] },
|
|
19408
19460
|
]
|
|
19409
19461
|
},
|
|
19410
19462
|
{
|
|
@@ -19414,8 +19466,8 @@ var SCOPE_CATEGORIES = [
|
|
|
19414
19466
|
resources: [
|
|
19415
19467
|
{ resource: "senders", label: "Senders", actions: ["read", "write", "delete"] },
|
|
19416
19468
|
{ resource: "dkim", label: "DKIM", actions: ["read", "write", "delete"] },
|
|
19417
|
-
{ resource: "domains", label: "Domains", actions: ["read", "write"
|
|
19418
|
-
{ resource: "logos", label: "Logos", actions: ["
|
|
19469
|
+
{ resource: "domains", label: "Domains", actions: ["read", "write"] },
|
|
19470
|
+
{ resource: "logos", label: "Logos", actions: ["write", "delete"] },
|
|
19419
19471
|
]
|
|
19420
19472
|
},
|
|
19421
19473
|
{
|
|
@@ -19423,7 +19475,7 @@ var SCOPE_CATEGORIES = [
|
|
|
19423
19475
|
label: "Webhooks",
|
|
19424
19476
|
adminOnly: false,
|
|
19425
19477
|
resources: [
|
|
19426
|
-
{ resource: "webhooks", label: "Webhooks", actions: ["read", "write"
|
|
19478
|
+
{ resource: "webhooks", label: "Webhooks", actions: ["read", "write"] },
|
|
19427
19479
|
]
|
|
19428
19480
|
},
|
|
19429
19481
|
{
|
|
@@ -19431,10 +19483,10 @@ var SCOPE_CATEGORIES = [
|
|
|
19431
19483
|
label: "Analytics",
|
|
19432
19484
|
adminOnly: false,
|
|
19433
19485
|
resources: [
|
|
19434
|
-
{ resource: "reports", label: "Reports", actions: ["read"
|
|
19486
|
+
{ resource: "reports", label: "Reports", actions: ["read"] },
|
|
19435
19487
|
{ resource: "logs", label: "Logs", actions: ["read", "export"] },
|
|
19436
19488
|
{ resource: "links", label: "Links", actions: ["read"] },
|
|
19437
|
-
{ resource: "tasks", label: "Tasks", actions: ["read"] },
|
|
19489
|
+
{ resource: "tasks", label: "Tasks", actions: ["read", "delete"] },
|
|
19438
19490
|
]
|
|
19439
19491
|
},
|
|
19440
19492
|
{
|
|
@@ -19461,6 +19513,14 @@ var SCOPE_CATEGORIES = [
|
|
|
19461
19513
|
{ resource: "sub_accounts", label: "Sub-accounts", actions: ["read", "write", "admin"] },
|
|
19462
19514
|
]
|
|
19463
19515
|
},
|
|
19516
|
+
{
|
|
19517
|
+
id: "system_emails_admin",
|
|
19518
|
+
label: "System Emails (Admin)",
|
|
19519
|
+
adminOnly: true,
|
|
19520
|
+
resources: [
|
|
19521
|
+
{ resource: "system_emails", label: "System Emails", actions: ["read", "write"] },
|
|
19522
|
+
]
|
|
19523
|
+
},
|
|
19464
19524
|
{
|
|
19465
19525
|
id: "tokens_admin",
|
|
19466
19526
|
label: "Tokens (Admin)",
|
|
@@ -19470,6 +19530,9 @@ var SCOPE_CATEGORIES = [
|
|
|
19470
19530
|
]
|
|
19471
19531
|
},
|
|
19472
19532
|
];
|
|
19533
|
+
// Every valid granular scope, derived from the catalog. Used to filter out any
|
|
19534
|
+
// implied/preset scope that isn't a real API enum member.
|
|
19535
|
+
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); }); }); }));
|
|
19473
19536
|
// Helper to get all scopes for a category
|
|
19474
19537
|
function getCategoryScopes(categoryId) {
|
|
19475
19538
|
var cat = SCOPE_CATEGORIES.find(function (c) { return c.id === categoryId; });
|
|
@@ -19477,13 +19540,31 @@ function getCategoryScopes(categoryId) {
|
|
|
19477
19540
|
return [];
|
|
19478
19541
|
return cat.resources.flatMap(function (r) { return r.actions.map(function (a) { return "".concat(r.resource, ":").concat(a); }); });
|
|
19479
19542
|
}
|
|
19543
|
+
// Group a flat list of granular scopes by their category, for compact display
|
|
19544
|
+
// (e.g. listing pills). Categories with no matching scope are omitted.
|
|
19545
|
+
function groupScopesByCategory(scopes) {
|
|
19546
|
+
var selected = new Set(scopes);
|
|
19547
|
+
return SCOPE_CATEGORIES
|
|
19548
|
+
.map(function (cat) { return ({
|
|
19549
|
+
id: cat.id,
|
|
19550
|
+
label: cat.label,
|
|
19551
|
+
// `cat` is already in hand here — derive its scopes directly instead of
|
|
19552
|
+
// re-locating it with getCategoryScopes (which does a redundant find).
|
|
19553
|
+
scopes: cat.resources
|
|
19554
|
+
.flatMap(function (r) { return r.actions.map(function (a) { return "".concat(r.resource, ":").concat(a); }); })
|
|
19555
|
+
.filter(function (s) { return selected.has(s); }),
|
|
19556
|
+
}); })
|
|
19557
|
+
.filter(function (c) { return c.scopes.length > 0; });
|
|
19558
|
+
}
|
|
19480
19559
|
var SCOPE_PRESETS = [
|
|
19481
19560
|
{
|
|
19482
19561
|
id: "readonly",
|
|
19483
19562
|
label: "Read-only (all)",
|
|
19484
19563
|
scopes: SCOPE_CATEGORIES
|
|
19485
19564
|
.filter(function (c) { return !c.adminOnly; })
|
|
19486
|
-
.flatMap(function (c) { return c.resources
|
|
19565
|
+
.flatMap(function (c) { return c.resources
|
|
19566
|
+
.filter(function (r) { return r.actions.includes("read"); })
|
|
19567
|
+
.map(function (r) { return "".concat(r.resource, ":read"); }); })
|
|
19487
19568
|
},
|
|
19488
19569
|
{
|
|
19489
19570
|
id: "full",
|
|
@@ -19514,10 +19595,28 @@ var SCOPE_PRESETS = [
|
|
|
19514
19595
|
},
|
|
19515
19596
|
];
|
|
19516
19597
|
|
|
19598
|
+
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}";
|
|
19599
|
+
styleInject(css_248z$3);
|
|
19600
|
+
|
|
19601
|
+
// `indeterminate` has no HTML attribute — it must be set imperatively on the DOM
|
|
19602
|
+
// node. A dedicated component scopes that write to a useEffect that runs only
|
|
19603
|
+
// when the flag changes, instead of an inline ref callback that React re-attaches
|
|
19604
|
+
// (null then element) on every parent render.
|
|
19605
|
+
function IndeterminateCheckbox(_a) {
|
|
19606
|
+
var checked = _a.checked, indeterminate = _a.indeterminate, onChange = _a.onChange, disabled = _a.disabled, ariaLabel = _a.ariaLabel;
|
|
19607
|
+
var ref = useRef(null);
|
|
19608
|
+
useEffect(function () {
|
|
19609
|
+
if (ref.current)
|
|
19610
|
+
ref.current.indeterminate = indeterminate;
|
|
19611
|
+
}, [indeterminate]);
|
|
19612
|
+
return (React__default.createElement("input", { ref: ref, type: "checkbox", checked: checked, onChange: function (e) { return onChange(e.target.checked); }, disabled: disabled, "aria-label": ariaLabel }));
|
|
19613
|
+
}
|
|
19517
19614
|
function getImpliedScopes(scope) {
|
|
19518
19615
|
var _a = scope.split(":"), resource = _a[0], action = _a[1];
|
|
19519
19616
|
var implied = SCOPE_IMPLICATIONS[action] || [];
|
|
19520
|
-
|
|
19617
|
+
// Only keep implied scopes that are real API enum members for this resource
|
|
19618
|
+
// (e.g. `logos` has no `read`, `users` has no `delete`).
|
|
19619
|
+
return implied.map(function (a) { return "".concat(resource, ":").concat(a); }).filter(function (s) { return ALL_GRANULAR_SCOPES.has(s); });
|
|
19521
19620
|
}
|
|
19522
19621
|
function ScopePicker(_a) {
|
|
19523
19622
|
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;
|
|
@@ -19544,6 +19643,9 @@ function ScopePicker(_a) {
|
|
|
19544
19643
|
getImpliedScopes(scope).forEach(function (s) { return next.add(s); });
|
|
19545
19644
|
}
|
|
19546
19645
|
else {
|
|
19646
|
+
// Remove only the unchecked scope. We intentionally do NOT cascade-remove
|
|
19647
|
+
// its implied scopes: they are independent permissions the user may still
|
|
19648
|
+
// want, and cascading can silently drop scopes the user explicitly selected.
|
|
19547
19649
|
next.delete(scope);
|
|
19548
19650
|
}
|
|
19549
19651
|
onChange(Array.from(next));
|
|
@@ -19570,6 +19672,9 @@ function ScopePicker(_a) {
|
|
|
19570
19672
|
onChange(Array.from(next));
|
|
19571
19673
|
}, [selectedSet, onChange, disabled]);
|
|
19572
19674
|
var handlePreset = useCallback(function (presetId) {
|
|
19675
|
+
// Guard for symmetry with handleScopeToggle/handleCategorySelectAll: the
|
|
19676
|
+
// preset buttons are only rendered when !disabled, but keeping the check
|
|
19677
|
+
// makes all three value-mutators behave identically and stay safe to call.
|
|
19573
19678
|
if (disabled)
|
|
19574
19679
|
return;
|
|
19575
19680
|
var preset = SCOPE_PRESETS.find(function (p) { return p.id === presetId; });
|
|
@@ -19581,38 +19686,46 @@ function ScopePicker(_a) {
|
|
|
19581
19686
|
expanded.add(s);
|
|
19582
19687
|
getImpliedScopes(s).forEach(function (implied) { return expanded.add(implied); });
|
|
19583
19688
|
});
|
|
19689
|
+
// Preserve any already-selected scopes that aren't in the catalog (e.g.
|
|
19690
|
+
// server-side enum drift): applying a preset replaces the selection, but
|
|
19691
|
+
// it must never silently strip permissions the picker can't display.
|
|
19692
|
+
selectedSet.forEach(function (s) { if (!ALL_GRANULAR_SCOPES.has(s))
|
|
19693
|
+
expanded.add(s); });
|
|
19584
19694
|
onChange(Array.from(expanded));
|
|
19585
|
-
}, [onChange, disabled]);
|
|
19695
|
+
}, [selectedSet, onChange, disabled]);
|
|
19586
19696
|
var isCategoryAllSelected = useCallback(function (categoryId) {
|
|
19587
19697
|
var cat = SCOPE_CATEGORIES.find(function (c) { return c.id === categoryId; });
|
|
19588
19698
|
if (!cat)
|
|
19589
19699
|
return false;
|
|
19590
19700
|
return cat.resources.every(function (r) { return r.actions.every(function (a) { return selectedSet.has("".concat(r.resource, ":").concat(a)); }); });
|
|
19591
19701
|
}, [selectedSet]);
|
|
19702
|
+
var isCategorySomeSelected = useCallback(function (categoryId) {
|
|
19703
|
+
var cat = SCOPE_CATEGORIES.find(function (c) { return c.id === categoryId; });
|
|
19704
|
+
if (!cat)
|
|
19705
|
+
return false;
|
|
19706
|
+
return cat.resources.some(function (r) { return r.actions.some(function (a) { return selectedSet.has("".concat(r.resource, ":").concat(a)); }); });
|
|
19707
|
+
}, [selectedSet]);
|
|
19592
19708
|
var isImplied = useCallback(function (scope) {
|
|
19593
|
-
//
|
|
19594
|
-
|
|
19595
|
-
|
|
19596
|
-
|
|
19597
|
-
|
|
19598
|
-
|
|
19599
|
-
|
|
19600
|
-
if (r !== resource)
|
|
19601
|
-
return false;
|
|
19602
|
-
return (SCOPE_IMPLICATIONS[a] || []).includes(action);
|
|
19603
|
-
});
|
|
19709
|
+
// Only lock a scope as "implied" if it's actually selected — otherwise an
|
|
19710
|
+
// unselected-but-implied scope would render disabled+unchecked (a dead end).
|
|
19711
|
+
if (!selectedSet.has(scope))
|
|
19712
|
+
return false;
|
|
19713
|
+
// Implied if any other selected scope implies it. Uses getImpliedScopes so
|
|
19714
|
+
// the catalog filtering (ALL_GRANULAR_SCOPES) stays consistent across both.
|
|
19715
|
+
return Array.from(selectedSet).some(function (s) { return s !== scope && getImpliedScopes(s).includes(scope); });
|
|
19604
19716
|
}, [selectedSet]);
|
|
19605
19717
|
return (React__default.createElement("div", { className: "scopePicker", "aria-label": "Permission scope picker" },
|
|
19606
|
-
React__default.createElement("div", { className: "scopePicker__presets" },
|
|
19718
|
+
!disabled && (React__default.createElement("div", { className: "scopePicker__presets" },
|
|
19607
19719
|
React__default.createElement("span", { className: "scopePicker__presetsLabel" }, "Quick presets:"),
|
|
19608
|
-
React__default.createElement("div", { className: "scopePicker__presetButtons" }, SCOPE_PRESETS.map(function (preset) { return (React__default.createElement("button", { key: preset.id, type: "button", className: "scopePicker__presetBtn", onClick: function () { return handlePreset(preset.id); }
|
|
19720
|
+
React__default.createElement("div", { className: "scopePicker__presetButtons" }, SCOPE_PRESETS.map(function (preset) { return (React__default.createElement("button", { key: preset.id, type: "button", className: "scopePicker__presetBtn", onClick: function () { return handlePreset(preset.id); } }, preset.label)); })))),
|
|
19609
19721
|
React__default.createElement("div", { className: "scopePicker__categories" }, visibleCategories.map(function (category) {
|
|
19610
19722
|
var isExpanded = expandedCategories.has(category.id);
|
|
19611
19723
|
var allSelected = isCategoryAllSelected(category.id);
|
|
19724
|
+
var someSelected = isCategorySomeSelected(category.id);
|
|
19612
19725
|
return (React__default.createElement("div", { key: category.id, className: "scopePicker__category ".concat(category.adminOnly ? "scopePicker__category--admin" : "") },
|
|
19613
19726
|
React__default.createElement("div", { className: "scopePicker__categoryHeader" },
|
|
19614
19727
|
React__default.createElement("label", { className: "scopePicker__categorySelect" },
|
|
19615
|
-
React__default.createElement(
|
|
19728
|
+
React__default.createElement(IndeterminateCheckbox, { checked: allSelected, indeterminate: someSelected && !allSelected, onChange: function (checked) { return handleCategorySelectAll(category.id, checked); }, disabled: disabled, ariaLabel: "Select all ".concat(category.label, " scopes") }),
|
|
19616
19729
|
React__default.createElement("span", { className: "scopePicker__categoryLabel" }, category.label)),
|
|
19617
19730
|
React__default.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 ? "▲" : "▼")),
|
|
19618
19731
|
isExpanded && (React__default.createElement("div", { className: "scopePicker__categoryBody" }, category.resources.map(function (resource) { return (React__default.createElement("div", { key: resource.resource, className: "scopePicker__resource" },
|
|
@@ -19631,7 +19744,12 @@ function ScopePicker(_a) {
|
|
|
19631
19744
|
"Selected permissions (",
|
|
19632
19745
|
value.length,
|
|
19633
19746
|
")"),
|
|
19634
|
-
React__default.createElement("div", { className: "scopePicker__summaryList" }, value.sort().map(function (scope) {
|
|
19747
|
+
React__default.createElement("div", { className: "scopePicker__summaryList" }, __spreadArray([], value, true).sort().map(function (scope) {
|
|
19748
|
+
// Scopes not in the catalog (e.g. enum drift) get a
|
|
19749
|
+
// distinct style + tooltip so they're never invisible.
|
|
19750
|
+
var unrecognized = !ALL_GRANULAR_SCOPES.has(scope);
|
|
19751
|
+
return (React__default.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));
|
|
19752
|
+
}))))));
|
|
19635
19753
|
}
|
|
19636
19754
|
|
|
19637
19755
|
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}";
|
|
@@ -19726,7 +19844,7 @@ function SideMenuContainer(_a) {
|
|
|
19726
19844
|
if (subSelected) {
|
|
19727
19845
|
hasSubItemSelected = true;
|
|
19728
19846
|
}
|
|
19729
|
-
return React__default.createElement(SideMenuItem, { item: s, defaultItemIcon: s.defaultItemIcon, menuItemClick: handleMenuItemClick, selected: subSelected, className: subClasses, key: "subItem-".concat(sIndex) });
|
|
19847
|
+
return React__default.createElement(SideMenuItem, { item: s, variant: s.variant, defaultItemIcon: s.defaultItemIcon, menuItemClick: handleMenuItemClick, selected: subSelected, className: subClasses, key: "subItem-".concat(sIndex) });
|
|
19730
19848
|
});
|
|
19731
19849
|
var openedSubMenu = (hasSubItemSelected || openedItems.includes(i.name || ""));
|
|
19732
19850
|
var classes = classNames({
|
|
@@ -20629,7 +20747,7 @@ var PersonalAccessTokensFactory = /** @class */ (function () {
|
|
|
20629
20747
|
var keyPrefix = _b.keyPrefix;
|
|
20630
20748
|
return __generator(this, function (_c) {
|
|
20631
20749
|
return [2 /*return*/, getPat({ keyPrefix: keyPrefix }).then(function (data) {
|
|
20632
|
-
return new PersonalAccessTokenModel(data
|
|
20750
|
+
return new PersonalAccessTokenModel(unwrapResponse(data));
|
|
20633
20751
|
})];
|
|
20634
20752
|
});
|
|
20635
20753
|
});
|
|
@@ -20639,7 +20757,19 @@ var PersonalAccessTokensFactory = /** @class */ (function () {
|
|
|
20639
20757
|
var name = _b.name, scopes = _b.scopes, expiresAt = _b.expiresAt, allowedAccountIds = _b.allowedAccountIds;
|
|
20640
20758
|
return __generator(this, function (_c) {
|
|
20641
20759
|
return [2 /*return*/, createPat({ name: name, scopes: scopes, expiresAt: expiresAt, allowedAccountIds: allowedAccountIds }).then(function (data) {
|
|
20642
|
-
|
|
20760
|
+
// Single-resource responses are returned flat (not wrapped in `{ data }`).
|
|
20761
|
+
var body = unwrapResponse(data);
|
|
20762
|
+
var plaintext = body.plaintext, patData = __rest(body
|
|
20763
|
+
// The plaintext token is shown to the user exactly once, at creation;
|
|
20764
|
+
// if the API omits it there is nothing to display, so fail loudly here
|
|
20765
|
+
// rather than handing back `undefined` as the token.
|
|
20766
|
+
, ["plaintext"]);
|
|
20767
|
+
// The plaintext token is shown to the user exactly once, at creation;
|
|
20768
|
+
// if the API omits it there is nothing to display, so fail loudly here
|
|
20769
|
+
// rather than handing back `undefined` as the token.
|
|
20770
|
+
if (typeof plaintext !== "string" || plaintext.length === 0) {
|
|
20771
|
+
throw new Error("API response did not include the plaintext token");
|
|
20772
|
+
}
|
|
20643
20773
|
trackEvent(EEvents.PAT_CREATED, { name: name, scopes: scopes });
|
|
20644
20774
|
return { pat: new PersonalAccessTokenModel(patData), plaintext: plaintext };
|
|
20645
20775
|
})];
|
|
@@ -21033,4 +21163,4 @@ var UsersFactory = /** @class */ (function () {
|
|
|
21033
21163
|
return UsersFactory;
|
|
21034
21164
|
}());
|
|
21035
21165
|
|
|
21036
|
-
export { AccountModel, AccountsFactory, ActionBarContainer, ActionBarContainerHandler, AssetManager, AutomationModel, AutomationsFactory, Avatar, BillingFactory, BrandWrapper, BrandsFactory, Button, ButtonMenu, CampaignModel, CampaignsFactory, Checkbox, Chip, CircularProgress, CodeInput, ColManager, ColorTextField, CommonFormModel, ContactModel, ContactsFactory, ContentSectionContainer, CountryDropdown, CustomDomainModel, CustomDomainsFactory, CustomerModel, DataTable, DataTableHead, DataTableRow, DateCalendar, DatePicker, DateTimeCalendar, DateTimePicker, Dialog, DialogActions, DialogHandler, DialogTitle, Divider, Drawer, DrawerHandler, DropMenu, Dropdown, EApiLanguages, EAssetManagerMatchType, ECampaignStatuses, ECertificateStatus, EDnsStatus, EEMailSummaryStatuses, EEditorType, EEmailAttachementTypes, EEmailLogType, EEmailLogTypeParam, EEmailProviders, EEmailStatuses, EEmailSummaryEngagement, EEventBreakdownDimension, EEventSortField, EEventTimeseriesGranularity, EEvents, EIngressRouteStatus, EListAttributeType, EMethods, EOperatorTypes, EPageBranding, EPartialInfoPool, EPopupBranding, EPopupBrowserType, EPopupCloseButtonPosition, EPopupDeviceType, EPopupDisplayFrequency, EPopupPosition, EPopupTriggerType, EStorageType, ETaskType, ETopDomainStatus, ETrackedDeviceType, ETrackedEntityType, ETrackedEventType, ElementContains, Email, EmailAPIFactory, EmptyContent, EnhancedFormModel, EventModel, EventTrackingFactory, FileUpload, FilterBar, FormModel, FormsFactory, FullBar, GenericWrapper, GenericWrapperContext, GroupedActions, Header, Icon, IconPill, InformationGroup, InlineTextEdit, LinearProgress, Link, ListCampaignModel, ListModel, ListPageModel, ListPopupModel, ListTemplateModel, ListsFactory, LoadingContainer, LocationTextField, Logo, MD5, MetricCard, Modal, ModalHandler, ModalHeading, Overlay, OverlayHandler, OverlayHeading, PageModel, PagesFactory, PersonalAccessTokenModel, PersonalAccessTokensFactory, PhoneTextField, PopupModel, PopupsFactory, Radio, ResourceEdit, ScopePicker, Search, SenderModel, SendersFactory, SideMenu, SideMenuContainer, SideMenuItem, SubNav, SummaryEnhancedFormModel, SuppressedEmailsFactory, SystemEmailsFactory, SystemEmailsModel, TagsFactory, TasksFactory, TemplateModel, TemplatesFactory, TextField, TimePicker, TimeSelector, Toggle, TopDomainModel, TopDomainsFactory, TopMenu, Typography, UserModel, UsersFactory, acceptListPolicy, addInterestsToContactsOfList, addPartialInformation, addSuppressedEmail, addToImpersonificationTree, amIImpersonating, amILoggedInService, archiveCampaign, areAllPropertiesEmpty, buildMUITheme, callApi, camelCase, camelToSnakeCase, cancelCampaign, capitalizeFirstLetter, cleanPostHogId, clearImpersonificationTree, clearStorage, copyToClipboard, createAccount, createBrand, createCampaign, createCampaignLogsExports, createCampaignsReportsExport, createContactsExport, createCustomDomain, createForm, createPage, createPat, createPopup, createSender, createSuppressedEmailExport, createTemplate, createTopDomain, deepMergeObject, deleteAccount, deleteAnyAutomation, deleteAutomation, deleteCampaign, deleteCampaignsReportsExport, deleteContact, deleteCustomDomain, deleteForm, deleteList, deletePage, deletePartialInformation, deletePopup, deleteSender, deleteStorageItem, deleteSuppressedEmail, deleteTaskService, deleteTemplate, deleteTopDomain, deleteUser, deleteWorkflow, descendingComparator, disableForm, disablePage, disablePopup, domainHasValidCertificateService, downloadCampaignLogExport, downloadCampaignsReportsExport, downloadContactsExport, downloadListLogExport, downloadSuppressedEmailExport, emptyAccountAddress, emptyAccountLimits, enableForm, enablePage, enablePopup, enrichBrand, enrichOrganization, enrichProfile, eventCondition, eventIdentify, eventLogout, fetchRetry, fetchRoute, findNestedProperty, formatNumber, getAccount, getAccountMetadata, getAccountReport, getAdjustedBillingCycle, getAllAutomationStats, getAutomation, getAutomationEmailContent, getAutomationExecutionsCount, getAutomationStats, getBeeTokenService, getBestLocalMatch, getBrand, getBrandService, getBrandUrl, getCalendarFormat, getCampaign, getCampaignLinks, getCampaignLinksReport, getCampaignLogs, getCampaignLogsExports, getCampaignReport, getCampaignRevisions, getCampaignsReportsExport, getComparator, getContactsExport, getCustomDomain, getCustomerProfile, getDate, getDomainFromEmail, getDomainsFromEmails, getDomainsService, getEmail, getEmailActivitySummary, getEmailReport, getEndOfDate, getEventBreakdown, getEventFunnel, getEventPropertyKeys, getEventSummary, getEventTimeseries, getForm, getHashQueryWithoutHistory, getIconSize, getList, getListLogs, getListReport, getNestedProperty, getPage, getPat, getPopup, getPropertyValue, getSender, getStartOfDate, getStorage, getSuppressedEmailExport, getTColor, getTaskService, getTemplate, getTopDomain, getUnixTime, getUrlQueryParam, getUser, getUtmCookies, googlePlacesMapper, hasDecimal, impersonateService, initFieldValidation, initPostHog, isColorLight, isDomainValidService, isPublicEmailProviderService, isSimpleType, isValidEmail, isValidString, isValidUrl, lisTEmailTags, listAccounts, listAutomations, listCampaigns, listCampaignsReportsExports, listContacts, listCustomDomains, listDkimService, listEmailLogs, listEvents, listForms, listList, listListAttributes, listListInterests, listPages, listPats, listPopups, listSenders, listSuppressedEmails, listSystemEmails, listTasksService, listTemplates, listTopDomains, listUsers, listWorkflows, logOutService, loginService, miliToSecond, modelSet, modelToJson, originalBrand, patchAccountDomainsService, patchForm, popImpersonificationTree, postMessage, publishForm, publishPage, publishPopup, reScheduleCampaign, removeEmptyProperties, removeInterestsFromContactsOfList, removeQueryParams, removeTrailingChar, renderCampaign, renderEmail, renderForm, renderPage, renderPopup, renderPublicHtmlForm, renderTemplate, requestSupportService, resendEmail, resendVerificationEmail, resumeCampaign, revokePat, saveList, scheduleCampaign, searchCustomerProfiles, sendCampaignTest, setBrandHeadElements, setStorage, shareTemplate, splitArray, splitObject, stableSort, startPromisePool, suspendAccount, suspendCampaign, tagContact, tagsContactsOfList, trackEvent, truncateEmail, truncateText, uiKitConfig, unArchiveCampaign, unScheduleCampaign, unSuspendAccount, unshareTemplate, unsubscribeContact, untagContact, untagContactsOfList, updateAccount, updateAndClearUrlParams, updateAnyAutomation, updateAutomation, updateCampaign, updatePage, updatePat, updatePopup, updateSystemEmails, updateTemplate, updateUser, updateWorkflow, validateColor, validateEmail, validateGenericInput, validateTopDomain, validateUrl, verifyCustomDomain, verifyTrackingCnamesService, wait, whiteLabelBrand, whoAmi };
|
|
21166
|
+
export { AccountModel, AccountsFactory, ActionBarContainer, ActionBarContainerHandler, AssetManager, AutomationModel, AutomationsFactory, Avatar, BillingFactory, BrandWrapper, BrandsFactory, Button, ButtonMenu, CampaignModel, CampaignsFactory, Checkbox, Chip, CircularProgress, CodeInput, ColManager, ColorTextField, CommonFormModel, ContactModel, ContactsFactory, ContentSectionContainer, CountryDropdown, CustomDomainModel, CustomDomainsFactory, CustomerModel, DataTable, DataTableHead, DataTableRow, DateCalendar, DatePicker, DateTimeCalendar, DateTimePicker, Dialog, DialogActions, DialogHandler, DialogTitle, Divider, Drawer, DrawerHandler, DropMenu, Dropdown, EApiLanguages, EAssetManagerMatchType, ECampaignStatuses, ECertificateStatus, EDnsStatus, EEMailSummaryStatuses, EEditorType, EEmailAttachementTypes, EEmailLogType, EEmailLogTypeParam, EEmailProviders, EEmailStatuses, EEmailSummaryEngagement, EEventBreakdownDimension, EEventSortField, EEventTimeseriesGranularity, EEvents, EIngressRouteStatus, EListAttributeType, EMethods, EOperatorTypes, EPageBranding, EPartialInfoPool, EPopupBranding, EPopupBrowserType, EPopupCloseButtonPosition, EPopupDeviceType, EPopupDisplayFrequency, EPopupPosition, EPopupTriggerType, EStorageType, ETaskType, ETopDomainStatus, ETrackedDeviceType, ETrackedEntityType, ETrackedEventType, ElementContains, Email, EmailAPIFactory, EmptyContent, EnhancedFormModel, EventModel, EventTrackingFactory, FileUpload, FilterBar, FormModel, FormsFactory, FullBar, GenericWrapper, GenericWrapperContext, GroupedActions, Header, Icon, IconPill, InformationGroup, InlineTextEdit, LinearProgress, Link, ListCampaignModel, ListModel, ListPageModel, ListPopupModel, ListTemplateModel, ListsFactory, LoadingContainer, LocationTextField, Logo, MD5, MetricCard, Modal, ModalHandler, ModalHeading, Overlay, OverlayHandler, OverlayHeading, PageModel, PagesFactory, PersonalAccessTokenModel, PersonalAccessTokensFactory, PhoneTextField, PopupModel, PopupsFactory, Radio, ResourceEdit, ScopePicker, Search, SenderModel, SendersFactory, SideMenu, SideMenuContainer, SideMenuItem, SubNav, SummaryEnhancedFormModel, SuppressedEmailsFactory, SystemEmailsFactory, SystemEmailsModel, TagsFactory, TasksFactory, TemplateModel, TemplatesFactory, TextField, TimePicker, TimeSelector, Toggle, TopDomainModel, TopDomainsFactory, TopMenu, Typography, UserModel, UsersFactory, acceptListPolicy, addInterestsToContactsOfList, addPartialInformation, addSuppressedEmail, addToImpersonificationTree, amIImpersonating, amILoggedInService, archiveCampaign, areAllPropertiesEmpty, buildMUITheme, callApi, camelCase, camelToSnakeCase, cancelCampaign, capitalizeFirstLetter, cleanPostHogId, clearImpersonificationTree, clearStorage, copyToClipboard, createAccount, createBrand, createCampaign, createCampaignLogsExports, createCampaignsReportsExport, createContactsExport, createCustomDomain, createForm, createPage, createPat, createPopup, createSender, createSuppressedEmailExport, createTemplate, createTopDomain, deepMergeObject, deleteAccount, deleteAnyAutomation, deleteAutomation, deleteCampaign, deleteCampaignsReportsExport, deleteContact, deleteCustomDomain, deleteForm, deleteList, deletePage, deletePartialInformation, deletePopup, deleteSender, deleteStorageItem, deleteSuppressedEmail, deleteTaskService, deleteTemplate, deleteTopDomain, deleteUser, deleteWorkflow, descendingComparator, disableForm, disablePage, disablePopup, domainHasValidCertificateService, downloadCampaignLogExport, downloadCampaignsReportsExport, downloadContactsExport, downloadListLogExport, downloadSuppressedEmailExport, emptyAccountAddress, emptyAccountLimits, enableForm, enablePage, enablePopup, enrichBrand, enrichOrganization, enrichProfile, eventCondition, eventIdentify, eventLogout, fetchRetry, fetchRoute, findNestedProperty, formatNumber, getAccount, getAccountMetadata, getAccountReport, getAdjustedBillingCycle, getAllAutomationStats, getAutomation, getAutomationEmailContent, getAutomationExecutionsCount, getAutomationStats, getBeeTokenService, getBestLocalMatch, getBrand, getBrandService, getBrandUrl, getCalendarFormat, getCampaign, getCampaignLinks, getCampaignLinksReport, getCampaignLogs, getCampaignLogsExports, getCampaignReport, getCampaignRevisions, getCampaignsReportsExport, getComparator, getContactsExport, getCustomDomain, getCustomerProfile, getDate, getDomainFromEmail, getDomainsFromEmails, getDomainsService, getEmail, getEmailActivitySummary, getEmailReport, getEndOfDate, getEventBreakdown, getEventFunnel, getEventPropertyKeys, getEventSummary, getEventTimeseries, getForm, getHashQueryWithoutHistory, getIconSize, getList, getListLogs, getListReport, getNestedProperty, getPage, getPat, getPopup, getPropertyValue, getSender, getStartOfDate, getStorage, getSuppressedEmailExport, getTColor, getTaskService, getTemplate, getTopDomain, getUnixTime, getUrlQueryParam, getUser, getUtmCookies, googlePlacesMapper, groupScopesByCategory, hasDecimal, impersonateService, initFieldValidation, initPostHog, isColorLight, isDomainValidService, isPublicEmailProviderService, isSimpleType, isValidEmail, isValidString, isValidUrl, lisTEmailTags, listAccounts, listAutomations, listCampaigns, listCampaignsReportsExports, listContacts, listCustomDomains, listDkimService, listEmailLogs, listEvents, listForms, listList, listListAttributes, listListInterests, listPages, listPats, listPopups, listSenders, listSuppressedEmails, listSystemEmails, listTasksService, listTemplates, listTopDomains, listUsers, listWorkflows, logOutService, loginService, miliToSecond, modelSet, modelToJson, originalBrand, patchAccountDomainsService, patchForm, popImpersonificationTree, postMessage, publishForm, publishPage, publishPopup, reScheduleCampaign, removeEmptyProperties, removeInterestsFromContactsOfList, removeQueryParams, removeTrailingChar, renderCampaign, renderEmail, renderForm, renderPage, renderPopup, renderPublicHtmlForm, renderTemplate, requestSupportService, resendEmail, resendVerificationEmail, resumeCampaign, revokePat, saveList, scheduleCampaign, searchCustomerProfiles, sendCampaignTest, setBrandHeadElements, setStorage, shareTemplate, splitArray, splitObject, stableSort, startPromisePool, suspendAccount, suspendCampaign, tagContact, tagsContactsOfList, trackEvent, truncateEmail, truncateText, uiKitConfig, unArchiveCampaign, unScheduleCampaign, unSuspendAccount, unshareTemplate, unsubscribeContact, untagContact, untagContactsOfList, unwrapResponse, updateAccount, updateAndClearUrlParams, updateAnyAutomation, updateAutomation, updateCampaign, updatePage, updatePat, updatePopup, updateSystemEmails, updateTemplate, updateUser, updateWorkflow, validateColor, validateEmail, validateGenericInput, validateTopDomain, validateUrl, verifyCustomDomain, verifyTrackingCnamesService, wait, whiteLabelBrand, whoAmi };
|