@cakemail-org/ui-components-v2 2.2.102 → 2.2.104
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/index.d.ts +1 -0
- package/dist/cjs/components/scopePicker/index.d.ts +8 -0
- package/dist/cjs/components/scopePicker/scopeGroups.d.ts +21 -0
- package/dist/cjs/components/scopePicker/types.d.ts +1 -0
- package/dist/cjs/components/textField/types.d.ts +1 -1
- package/dist/cjs/data/theme/MuiTextField.d.ts +27 -0
- package/dist/cjs/factories/index.d.ts +1 -0
- package/dist/cjs/factories/personalAccessTokens/index.d.ts +22 -0
- package/dist/cjs/factories/personalAccessTokens/types.d.ts +1 -0
- package/dist/cjs/index.js +470 -4
- package/dist/cjs/models/index.d.ts +1 -0
- package/dist/cjs/models/personalAccessToken/index.d.ts +21 -0
- package/dist/cjs/models/personalAccessToken/types.d.ts +10 -0
- package/dist/cjs/services/index.d.ts +1 -0
- package/dist/cjs/services/personalAccessTokens/index.d.ts +24 -0
- package/dist/cjs/services/personalAccessTokens/types.d.ts +1 -0
- package/dist/cjs/utils/posthog.d.ts +5 -1
- package/dist/esm/components/index.d.ts +1 -0
- package/dist/esm/components/scopePicker/index.d.ts +8 -0
- package/dist/esm/components/scopePicker/scopeGroups.d.ts +21 -0
- package/dist/esm/components/scopePicker/types.d.ts +1 -0
- package/dist/esm/components/textField/types.d.ts +1 -1
- package/dist/esm/data/theme/MuiTextField.d.ts +27 -0
- package/dist/esm/factories/index.d.ts +1 -0
- package/dist/esm/factories/personalAccessTokens/index.d.ts +22 -0
- package/dist/esm/factories/personalAccessTokens/types.d.ts +1 -0
- package/dist/esm/index.js +464 -6
- package/dist/esm/models/index.d.ts +1 -0
- package/dist/esm/models/personalAccessToken/index.d.ts +21 -0
- package/dist/esm/models/personalAccessToken/types.d.ts +10 -0
- package/dist/esm/services/index.d.ts +1 -0
- package/dist/esm/services/personalAccessTokens/index.d.ts +24 -0
- package/dist/esm/services/personalAccessTokens/types.d.ts +1 -0
- package/dist/esm/utils/posthog.d.ts +5 -1
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -3895,6 +3895,10 @@ exports.EEvents = void 0;
|
|
|
3895
3895
|
EEvents["CUSTOM_DOMAIN_CREATED"] = "CustomDomain.Created";
|
|
3896
3896
|
EEvents["CUSTOM_DOMAIN_VERIFIED"] = "CustomDomain.Verified";
|
|
3897
3897
|
EEvents["CUSTOM_DOMAIN_DELETED"] = "CustomDomain.Deleted";
|
|
3898
|
+
EEvents["PAT_CREATED"] = "PAT.Created";
|
|
3899
|
+
EEvents["PAT_UPDATED"] = "PAT.Updated";
|
|
3900
|
+
EEvents["PAT_REVOKED"] = "PAT.Revoked";
|
|
3901
|
+
EEvents["PAT_TOKEN_COPIED"] = "PAT.Token.Copied";
|
|
3898
3902
|
})(exports.EEvents || (exports.EEvents = {}));
|
|
3899
3903
|
function eventCondition(type, disabledEvents) {
|
|
3900
3904
|
if (disabledEvents === void 0) { disabledEvents = []; }
|
|
@@ -5738,6 +5742,37 @@ function getMuiTableRow(theme) {
|
|
|
5738
5742
|
|
|
5739
5743
|
function getMuiTextField(theme) {
|
|
5740
5744
|
return {
|
|
5745
|
+
variants: [
|
|
5746
|
+
{
|
|
5747
|
+
props: { size: "small" },
|
|
5748
|
+
style: {
|
|
5749
|
+
".MuiInputBase-root > input, .MuiInputBase-root > textarea": {
|
|
5750
|
+
padding: theme.spacing(3, 3.5),
|
|
5751
|
+
fontSize: theme.typography.body1.fontSize,
|
|
5752
|
+
lineHeight: theme.typography.body1.lineHeight,
|
|
5753
|
+
},
|
|
5754
|
+
".MuiSvgIcon-root": {
|
|
5755
|
+
top: "1.5rem !important",
|
|
5756
|
+
},
|
|
5757
|
+
},
|
|
5758
|
+
},
|
|
5759
|
+
{
|
|
5760
|
+
props: { size: "medium" },
|
|
5761
|
+
style: {
|
|
5762
|
+
".MuiInputBase-root > input, .MuiInputBase-root > textarea": {
|
|
5763
|
+
padding: theme.spacing(4, 3.5),
|
|
5764
|
+
}
|
|
5765
|
+
},
|
|
5766
|
+
},
|
|
5767
|
+
{
|
|
5768
|
+
props: { size: "large" },
|
|
5769
|
+
style: {
|
|
5770
|
+
".MuiInputBase-root > input, .MuiInputBase-root > textarea": {
|
|
5771
|
+
padding: theme.spacing(5, 3.5),
|
|
5772
|
+
}
|
|
5773
|
+
},
|
|
5774
|
+
},
|
|
5775
|
+
],
|
|
5741
5776
|
styleOverrides: {
|
|
5742
5777
|
root: {
|
|
5743
5778
|
".MuiInputLabel-root": __assign(__assign({}, theme.typography.body2), { color: theme.palette.body1.main, transform: "translate(14px, -9px)", ">div": {
|
|
@@ -7673,11 +7708,11 @@ function LoadingContainer(_a) {
|
|
|
7673
7708
|
React.createElement(Container, { className: "loadingContainer-component-v2 ".concat(className), sx: { display: "flex", alignItems: "center", justifyContent: "center", width: "100%" } }, loader)));
|
|
7674
7709
|
}
|
|
7675
7710
|
|
|
7676
|
-
var css_248z$v = ".textfield-component-v2 {\n position: relative;\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}";
|
|
7711
|
+
var css_248z$v = ".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}";
|
|
7677
7712
|
styleInject(css_248z$v);
|
|
7678
7713
|
|
|
7679
7714
|
var TextField = React.forwardRef(function (_a, ref) {
|
|
7680
|
-
var _b = _a.className, className = _b === void 0 ? "" : _b, label = _a.label, timeout = _a.timeout, labelTooltipText = _a.labelTooltipText, disabled = _a.disabled; _a.useBareBoneInput; var onChange = _a.onChange, multiline = _a.multiline, inputProps = _a.inputProps, iconName = _a.iconName, onKeyDown = _a.onKeyDown, props = __rest(_a, ["className", "label", "timeout", "labelTooltipText", "disabled", "useBareBoneInput", "onChange", "multiline", "inputProps", "iconName", "onKeyDown"]);
|
|
7715
|
+
var _b = _a.className, className = _b === void 0 ? "" : _b, label = _a.label, timeout = _a.timeout, labelTooltipText = _a.labelTooltipText, disabled = _a.disabled; _a.useBareBoneInput; var 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"]);
|
|
7681
7716
|
var cLabel = label;
|
|
7682
7717
|
var timeoutRef = React.useRef(undefined);
|
|
7683
7718
|
function onChangeHandler(e) {
|
|
@@ -7724,9 +7759,9 @@ var TextField = React.forwardRef(function (_a, ref) {
|
|
|
7724
7759
|
onKeyDown && onKeyDown(event);
|
|
7725
7760
|
}
|
|
7726
7761
|
inputProps = __assign({ maxLength: 256 }, inputProps);
|
|
7727
|
-
return React.createElement(Box, { className: "textfield-component-v2 ".concat(className, " ").concat(disabled ? "disabled" : "", " ") },
|
|
7762
|
+
return React.createElement(Box, { className: "textfield-component-v2 ".concat(className, " ").concat(disabled ? "disabled" : "", " ").concat(size) },
|
|
7728
7763
|
iconName && React.createElement(Icon, { name: iconName }),
|
|
7729
|
-
React.createElement(MUITextField, __assign({}, props, { inputProps: inputProps, onChange: onChangeHandler, label: cLabel, disabled: disabled, onKeyDown: handleKeyDown, multiline: multiline, inputRef: ref })));
|
|
7764
|
+
React.createElement(MUITextField, __assign({}, props, { inputProps: inputProps, onChange: onChangeHandler, label: cLabel, disabled: disabled, onKeyDown: handleKeyDown, multiline: multiline, inputRef: ref, size: size })));
|
|
7730
7765
|
});
|
|
7731
7766
|
|
|
7732
7767
|
var css_248z$u = ".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}";
|
|
@@ -11711,6 +11746,57 @@ function renderPage(_a) {
|
|
|
11711
11746
|
});
|
|
11712
11747
|
}
|
|
11713
11748
|
|
|
11749
|
+
var BASE_URL = function () { return uiKitConfig.GATEWAY_PROXY + "/pats"; };
|
|
11750
|
+
function listPats(_a) {
|
|
11751
|
+
var page = _a.page, perPage = _a.perPage, status = _a.status;
|
|
11752
|
+
return callApi({
|
|
11753
|
+
url: BASE_URL(),
|
|
11754
|
+
query: camelCase({ page: page, per_page: perPage, status: status }),
|
|
11755
|
+
fetchOptions: { method: exports.EMethods.get }
|
|
11756
|
+
});
|
|
11757
|
+
}
|
|
11758
|
+
function getPat(_a) {
|
|
11759
|
+
var keyPrefix = _a.keyPrefix;
|
|
11760
|
+
return callApi({
|
|
11761
|
+
url: "".concat(BASE_URL(), "/").concat(keyPrefix),
|
|
11762
|
+
fetchOptions: { method: exports.EMethods.get }
|
|
11763
|
+
});
|
|
11764
|
+
}
|
|
11765
|
+
function createPat(_a) {
|
|
11766
|
+
var name = _a.name, scopes = _a.scopes, expiresAt = _a.expiresAt, allowedAccountIds = _a.allowedAccountIds;
|
|
11767
|
+
return callApi({
|
|
11768
|
+
url: BASE_URL(),
|
|
11769
|
+
fetchOptions: {
|
|
11770
|
+
method: exports.EMethods.post,
|
|
11771
|
+
body: { name: name, scopes: scopes, expires_at: expiresAt !== null && expiresAt !== void 0 ? expiresAt : null, allowed_account_ids: allowedAccountIds !== null && allowedAccountIds !== void 0 ? allowedAccountIds : null }
|
|
11772
|
+
}
|
|
11773
|
+
});
|
|
11774
|
+
}
|
|
11775
|
+
function updatePat(_a) {
|
|
11776
|
+
var keyPrefix = _a.keyPrefix, name = _a.name, scopes = _a.scopes, allowedAccountIds = _a.allowedAccountIds;
|
|
11777
|
+
var body = {};
|
|
11778
|
+
if (name !== undefined)
|
|
11779
|
+
body.name = name;
|
|
11780
|
+
if (scopes !== undefined)
|
|
11781
|
+
body.scopes = scopes;
|
|
11782
|
+
if (allowedAccountIds !== undefined)
|
|
11783
|
+
body.allowed_account_ids = allowedAccountIds;
|
|
11784
|
+
return callApi({
|
|
11785
|
+
url: "".concat(BASE_URL(), "/").concat(keyPrefix),
|
|
11786
|
+
fetchOptions: {
|
|
11787
|
+
method: exports.EMethods.patch,
|
|
11788
|
+
body: body
|
|
11789
|
+
}
|
|
11790
|
+
});
|
|
11791
|
+
}
|
|
11792
|
+
function revokePat(_a) {
|
|
11793
|
+
var keyPrefix = _a.keyPrefix;
|
|
11794
|
+
return callApi({
|
|
11795
|
+
url: "".concat(BASE_URL(), "/").concat(keyPrefix),
|
|
11796
|
+
fetchOptions: { method: exports.EMethods.delete }
|
|
11797
|
+
});
|
|
11798
|
+
}
|
|
11799
|
+
|
|
11714
11800
|
function listPopups(_a) {
|
|
11715
11801
|
return __awaiter(this, void 0, void 0, function () {
|
|
11716
11802
|
var options = __rest(_a, []);
|
|
@@ -12812,6 +12898,47 @@ var PageModel = /** @class */ (function (_super) {
|
|
|
12812
12898
|
return PageModel;
|
|
12813
12899
|
}(ListPageModel));
|
|
12814
12900
|
|
|
12901
|
+
var PersonalAccessTokenModel = /** @class */ (function () {
|
|
12902
|
+
function PersonalAccessTokenModel(params) {
|
|
12903
|
+
this.key_prefix = params.key_prefix;
|
|
12904
|
+
this.name = params.name;
|
|
12905
|
+
this.status = params.status;
|
|
12906
|
+
this.scopes = params.scopes;
|
|
12907
|
+
this.allowed_account_ids = params.allowed_account_ids;
|
|
12908
|
+
this.created_at = params.created_at;
|
|
12909
|
+
this.expires_at = params.expires_at;
|
|
12910
|
+
this.revoked_at = params.revoked_at;
|
|
12911
|
+
}
|
|
12912
|
+
PersonalAccessTokenModel.prototype.toJson = function () { return modelToJson(this); };
|
|
12913
|
+
PersonalAccessTokenModel.prototype.set = function (property, value) { modelSet(this, property, value); };
|
|
12914
|
+
PersonalAccessTokenModel.prototype.update = function (_a) {
|
|
12915
|
+
return __awaiter(this, arguments, void 0, function (_b) {
|
|
12916
|
+
var _this = this;
|
|
12917
|
+
var name = _b.name, scopes = _b.scopes, allowedAccountIds = _b.allowedAccountIds;
|
|
12918
|
+
return __generator(this, function (_c) {
|
|
12919
|
+
return [2 /*return*/, updatePat({ keyPrefix: this.key_prefix, name: name, scopes: scopes, allowedAccountIds: allowedAccountIds })
|
|
12920
|
+
.then(function (data) {
|
|
12921
|
+
trackEvent(exports.EEvents.PAT_UPDATED, { key_prefix: _this.key_prefix });
|
|
12922
|
+
return new PersonalAccessTokenModel(data.data);
|
|
12923
|
+
})];
|
|
12924
|
+
});
|
|
12925
|
+
});
|
|
12926
|
+
};
|
|
12927
|
+
PersonalAccessTokenModel.prototype.revoke = function () {
|
|
12928
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
12929
|
+
var _this = this;
|
|
12930
|
+
return __generator(this, function (_a) {
|
|
12931
|
+
return [2 /*return*/, revokePat({ keyPrefix: this.key_prefix })
|
|
12932
|
+
.then(function (data) {
|
|
12933
|
+
trackEvent(exports.EEvents.PAT_REVOKED, { key_prefix: _this.key_prefix });
|
|
12934
|
+
return new PersonalAccessTokenModel(data.data);
|
|
12935
|
+
})];
|
|
12936
|
+
});
|
|
12937
|
+
});
|
|
12938
|
+
};
|
|
12939
|
+
return PersonalAccessTokenModel;
|
|
12940
|
+
}());
|
|
12941
|
+
|
|
12815
12942
|
exports.EPopupTriggerType = void 0;
|
|
12816
12943
|
(function (EPopupTriggerType) {
|
|
12817
12944
|
EPopupTriggerType["on_page_load"] = "on_page_load";
|
|
@@ -18908,6 +19035,298 @@ function ResourceEdit(_a) {
|
|
|
18908
19035
|
support && React.createElement(material.Box, { className: "resource-support ".concat(!open ? "open" : "hidden") }, support));
|
|
18909
19036
|
}
|
|
18910
19037
|
|
|
19038
|
+
// Scope implication rules
|
|
19039
|
+
var SCOPE_IMPLICATIONS = {
|
|
19040
|
+
"write": ["read"],
|
|
19041
|
+
"delete": ["read"],
|
|
19042
|
+
"send": ["read"],
|
|
19043
|
+
"import": ["read", "write"],
|
|
19044
|
+
"export": ["read"],
|
|
19045
|
+
"admin": ["read", "write", "delete"],
|
|
19046
|
+
};
|
|
19047
|
+
var SCOPE_CATEGORIES = [
|
|
19048
|
+
{
|
|
19049
|
+
id: "audience",
|
|
19050
|
+
label: "Audience",
|
|
19051
|
+
adminOnly: false,
|
|
19052
|
+
resources: [
|
|
19053
|
+
{ resource: "lists", label: "Lists", actions: ["read", "write", "delete"] },
|
|
19054
|
+
{ resource: "contacts", label: "Contacts", actions: ["read", "write", "delete", "import", "export"] },
|
|
19055
|
+
{ resource: "segments", label: "Segments", actions: ["read", "write", "delete"] },
|
|
19056
|
+
{ resource: "tags", label: "Tags", actions: ["read", "write", "delete"] },
|
|
19057
|
+
{ resource: "custom_attributes", label: "Custom Attributes", actions: ["read", "write", "delete"] },
|
|
19058
|
+
{ resource: "interests", label: "Interests", actions: ["read", "write", "delete"] },
|
|
19059
|
+
]
|
|
19060
|
+
},
|
|
19061
|
+
{
|
|
19062
|
+
id: "suppressions",
|
|
19063
|
+
label: "Suppressions",
|
|
19064
|
+
adminOnly: false,
|
|
19065
|
+
resources: [
|
|
19066
|
+
{ resource: "suppressions", label: "Suppressions", actions: ["read", "write", "delete"] },
|
|
19067
|
+
]
|
|
19068
|
+
},
|
|
19069
|
+
{
|
|
19070
|
+
id: "campaigns",
|
|
19071
|
+
label: "Campaigns",
|
|
19072
|
+
adminOnly: false,
|
|
19073
|
+
resources: [
|
|
19074
|
+
{ resource: "campaigns", label: "Campaigns", actions: ["read", "write", "delete", "send"] },
|
|
19075
|
+
{ resource: "campaign_blueprints", label: "Campaign Blueprints", actions: ["read", "write", "delete"] },
|
|
19076
|
+
]
|
|
19077
|
+
},
|
|
19078
|
+
{
|
|
19079
|
+
id: "templates",
|
|
19080
|
+
label: "Templates",
|
|
19081
|
+
adminOnly: false,
|
|
19082
|
+
resources: [
|
|
19083
|
+
{ resource: "templates", label: "Templates", actions: ["read", "write", "delete"] },
|
|
19084
|
+
]
|
|
19085
|
+
},
|
|
19086
|
+
{
|
|
19087
|
+
id: "emailapi",
|
|
19088
|
+
label: "Email API",
|
|
19089
|
+
adminOnly: false,
|
|
19090
|
+
resources: [
|
|
19091
|
+
{ resource: "email_api", label: "Email API", actions: ["read", "send"] },
|
|
19092
|
+
]
|
|
19093
|
+
},
|
|
19094
|
+
{
|
|
19095
|
+
id: "forms",
|
|
19096
|
+
label: "Forms",
|
|
19097
|
+
adminOnly: false,
|
|
19098
|
+
resources: [
|
|
19099
|
+
{ resource: "forms", label: "Forms", actions: ["read", "write", "delete"] },
|
|
19100
|
+
{ resource: "preference_centers", label: "Preference Centers", actions: ["read", "write", "delete"] },
|
|
19101
|
+
]
|
|
19102
|
+
},
|
|
19103
|
+
{
|
|
19104
|
+
id: "deliverability",
|
|
19105
|
+
label: "Deliverability",
|
|
19106
|
+
adminOnly: false,
|
|
19107
|
+
resources: [
|
|
19108
|
+
{ resource: "senders", label: "Senders", actions: ["read", "write", "delete"] },
|
|
19109
|
+
{ resource: "dkim", label: "DKIM", actions: ["read", "write", "delete"] },
|
|
19110
|
+
{ resource: "domains", label: "Domains", actions: ["read", "write", "delete"] },
|
|
19111
|
+
{ resource: "logos", label: "Logos", actions: ["read", "write", "delete"] },
|
|
19112
|
+
]
|
|
19113
|
+
},
|
|
19114
|
+
{
|
|
19115
|
+
id: "webhooks",
|
|
19116
|
+
label: "Webhooks",
|
|
19117
|
+
adminOnly: false,
|
|
19118
|
+
resources: [
|
|
19119
|
+
{ resource: "webhooks", label: "Webhooks", actions: ["read", "write", "delete"] },
|
|
19120
|
+
]
|
|
19121
|
+
},
|
|
19122
|
+
{
|
|
19123
|
+
id: "analytics",
|
|
19124
|
+
label: "Analytics",
|
|
19125
|
+
adminOnly: false,
|
|
19126
|
+
resources: [
|
|
19127
|
+
{ resource: "reports", label: "Reports", actions: ["read", "export"] },
|
|
19128
|
+
{ resource: "logs", label: "Logs", actions: ["read", "export"] },
|
|
19129
|
+
{ resource: "links", label: "Links", actions: ["read"] },
|
|
19130
|
+
{ resource: "tasks", label: "Tasks", actions: ["read"] },
|
|
19131
|
+
]
|
|
19132
|
+
},
|
|
19133
|
+
{
|
|
19134
|
+
id: "account",
|
|
19135
|
+
label: "Account",
|
|
19136
|
+
adminOnly: false,
|
|
19137
|
+
resources: [
|
|
19138
|
+
{ resource: "account", label: "Account", actions: ["read", "write"] },
|
|
19139
|
+
]
|
|
19140
|
+
},
|
|
19141
|
+
{
|
|
19142
|
+
id: "users_admin",
|
|
19143
|
+
label: "Users (Admin)",
|
|
19144
|
+
adminOnly: true,
|
|
19145
|
+
resources: [
|
|
19146
|
+
{ resource: "users", label: "Users", actions: ["read", "write", "admin"] },
|
|
19147
|
+
]
|
|
19148
|
+
},
|
|
19149
|
+
{
|
|
19150
|
+
id: "subaccounts_admin",
|
|
19151
|
+
label: "Sub-accounts (Admin)",
|
|
19152
|
+
adminOnly: true,
|
|
19153
|
+
resources: [
|
|
19154
|
+
{ resource: "sub_accounts", label: "Sub-accounts", actions: ["read", "write", "admin"] },
|
|
19155
|
+
]
|
|
19156
|
+
},
|
|
19157
|
+
{
|
|
19158
|
+
id: "tokens_admin",
|
|
19159
|
+
label: "Tokens (Admin)",
|
|
19160
|
+
adminOnly: true,
|
|
19161
|
+
resources: [
|
|
19162
|
+
{ resource: "tokens", label: "Access Tokens", actions: ["read", "admin"] },
|
|
19163
|
+
]
|
|
19164
|
+
},
|
|
19165
|
+
];
|
|
19166
|
+
// Helper to get all scopes for a category
|
|
19167
|
+
function getCategoryScopes(categoryId) {
|
|
19168
|
+
var cat = SCOPE_CATEGORIES.find(function (c) { return c.id === categoryId; });
|
|
19169
|
+
if (!cat)
|
|
19170
|
+
return [];
|
|
19171
|
+
return cat.resources.flatMap(function (r) { return r.actions.map(function (a) { return "".concat(r.resource, ":").concat(a); }); });
|
|
19172
|
+
}
|
|
19173
|
+
var SCOPE_PRESETS = [
|
|
19174
|
+
{
|
|
19175
|
+
id: "readonly",
|
|
19176
|
+
label: "Read-only (all)",
|
|
19177
|
+
scopes: SCOPE_CATEGORIES
|
|
19178
|
+
.filter(function (c) { return !c.adminOnly; })
|
|
19179
|
+
.flatMap(function (c) { return c.resources.map(function (r) { return "".concat(r.resource, ":read"); }); })
|
|
19180
|
+
},
|
|
19181
|
+
{
|
|
19182
|
+
id: "full",
|
|
19183
|
+
label: "Full access",
|
|
19184
|
+
scopes: SCOPE_CATEGORIES
|
|
19185
|
+
.filter(function (c) { return !c.adminOnly; })
|
|
19186
|
+
.flatMap(function (c) { return c.resources.flatMap(function (r) { return r.actions.map(function (a) { return "".concat(r.resource, ":").concat(a); }); }); })
|
|
19187
|
+
},
|
|
19188
|
+
{
|
|
19189
|
+
id: "campaigns",
|
|
19190
|
+
label: "Campaigns manager",
|
|
19191
|
+
scopes: __spreadArray(__spreadArray(__spreadArray([], getCategoryScopes("campaigns"), true), getCategoryScopes("templates"), true), [
|
|
19192
|
+
"senders:read",
|
|
19193
|
+
"reports:read",
|
|
19194
|
+
], false)
|
|
19195
|
+
},
|
|
19196
|
+
{
|
|
19197
|
+
id: "contacts",
|
|
19198
|
+
label: "Contact manager",
|
|
19199
|
+
scopes: __spreadArray(__spreadArray([], getCategoryScopes("audience"), true), getCategoryScopes("suppressions"), true)
|
|
19200
|
+
},
|
|
19201
|
+
{
|
|
19202
|
+
id: "developer",
|
|
19203
|
+
label: "Developer",
|
|
19204
|
+
scopes: __spreadArray(__spreadArray(__spreadArray([], getCategoryScopes("emailapi"), true), getCategoryScopes("webhooks"), true), [
|
|
19205
|
+
"reports:read", "logs:read",
|
|
19206
|
+
], false)
|
|
19207
|
+
},
|
|
19208
|
+
];
|
|
19209
|
+
|
|
19210
|
+
function getImpliedScopes(scope) {
|
|
19211
|
+
var _a = scope.split(":"), resource = _a[0], action = _a[1];
|
|
19212
|
+
var implied = SCOPE_IMPLICATIONS[action] || [];
|
|
19213
|
+
return implied.map(function (a) { return "".concat(resource, ":").concat(a); });
|
|
19214
|
+
}
|
|
19215
|
+
function ScopePicker(_a) {
|
|
19216
|
+
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;
|
|
19217
|
+
var _d = React.useState(new Set()), expandedCategories = _d[0], setExpandedCategories = _d[1];
|
|
19218
|
+
var selectedSet = React.useMemo(function () { return new Set(value); }, [value]);
|
|
19219
|
+
var visibleCategories = React.useMemo(function () { return SCOPE_CATEGORIES.filter(function (c) { return !c.adminOnly || isPartner; }); }, [isPartner]);
|
|
19220
|
+
var toggleCategory = React.useCallback(function (categoryId) {
|
|
19221
|
+
setExpandedCategories(function (prev) {
|
|
19222
|
+
var next = new Set(prev);
|
|
19223
|
+
if (next.has(categoryId))
|
|
19224
|
+
next.delete(categoryId);
|
|
19225
|
+
else
|
|
19226
|
+
next.add(categoryId);
|
|
19227
|
+
return next;
|
|
19228
|
+
});
|
|
19229
|
+
}, []);
|
|
19230
|
+
var handleScopeToggle = React.useCallback(function (scope, checked) {
|
|
19231
|
+
if (disabled)
|
|
19232
|
+
return;
|
|
19233
|
+
var next = new Set(selectedSet);
|
|
19234
|
+
if (checked) {
|
|
19235
|
+
next.add(scope);
|
|
19236
|
+
// Add implied scopes
|
|
19237
|
+
getImpliedScopes(scope).forEach(function (s) { return next.add(s); });
|
|
19238
|
+
}
|
|
19239
|
+
else {
|
|
19240
|
+
next.delete(scope);
|
|
19241
|
+
}
|
|
19242
|
+
onChange(Array.from(next));
|
|
19243
|
+
}, [selectedSet, onChange, disabled]);
|
|
19244
|
+
var handleCategorySelectAll = React.useCallback(function (categoryId, checked) {
|
|
19245
|
+
if (disabled)
|
|
19246
|
+
return;
|
|
19247
|
+
var cat = SCOPE_CATEGORIES.find(function (c) { return c.id === categoryId; });
|
|
19248
|
+
if (!cat)
|
|
19249
|
+
return;
|
|
19250
|
+
var next = new Set(selectedSet);
|
|
19251
|
+
cat.resources.forEach(function (r) {
|
|
19252
|
+
r.actions.forEach(function (a) {
|
|
19253
|
+
var scope = "".concat(r.resource, ":").concat(a);
|
|
19254
|
+
if (checked) {
|
|
19255
|
+
next.add(scope);
|
|
19256
|
+
getImpliedScopes(scope).forEach(function (s) { return next.add(s); });
|
|
19257
|
+
}
|
|
19258
|
+
else {
|
|
19259
|
+
next.delete(scope);
|
|
19260
|
+
}
|
|
19261
|
+
});
|
|
19262
|
+
});
|
|
19263
|
+
onChange(Array.from(next));
|
|
19264
|
+
}, [selectedSet, onChange, disabled]);
|
|
19265
|
+
var handlePreset = React.useCallback(function (presetId) {
|
|
19266
|
+
if (disabled)
|
|
19267
|
+
return;
|
|
19268
|
+
var preset = SCOPE_PRESETS.find(function (p) { return p.id === presetId; });
|
|
19269
|
+
if (!preset)
|
|
19270
|
+
return;
|
|
19271
|
+
// Expand all implied scopes
|
|
19272
|
+
var expanded = new Set();
|
|
19273
|
+
preset.scopes.forEach(function (s) {
|
|
19274
|
+
expanded.add(s);
|
|
19275
|
+
getImpliedScopes(s).forEach(function (implied) { return expanded.add(implied); });
|
|
19276
|
+
});
|
|
19277
|
+
onChange(Array.from(expanded));
|
|
19278
|
+
}, [onChange, disabled]);
|
|
19279
|
+
var isCategoryAllSelected = React.useCallback(function (categoryId) {
|
|
19280
|
+
var cat = SCOPE_CATEGORIES.find(function (c) { return c.id === categoryId; });
|
|
19281
|
+
if (!cat)
|
|
19282
|
+
return false;
|
|
19283
|
+
return cat.resources.every(function (r) { return r.actions.every(function (a) { return selectedSet.has("".concat(r.resource, ":").concat(a)); }); });
|
|
19284
|
+
}, [selectedSet]);
|
|
19285
|
+
var isImplied = React.useCallback(function (scope) {
|
|
19286
|
+
// Scope is implied (auto-selected due to another scope) if removing it wouldn't break anything
|
|
19287
|
+
var _a = scope.split(":"), resource = _a[0], action = _a[1];
|
|
19288
|
+
// Check if any other selected scope implies this one
|
|
19289
|
+
return Array.from(selectedSet).some(function (s) {
|
|
19290
|
+
if (s === scope)
|
|
19291
|
+
return false;
|
|
19292
|
+
var _a = s.split(":"), r = _a[0], a = _a[1];
|
|
19293
|
+
if (r !== resource)
|
|
19294
|
+
return false;
|
|
19295
|
+
return (SCOPE_IMPLICATIONS[a] || []).includes(action);
|
|
19296
|
+
});
|
|
19297
|
+
}, [selectedSet]);
|
|
19298
|
+
return (React.createElement("div", { className: "scopePicker", "aria-label": "Permission scope picker" },
|
|
19299
|
+
React.createElement("div", { className: "scopePicker__presets" },
|
|
19300
|
+
React.createElement("span", { className: "scopePicker__presetsLabel" }, "Quick presets:"),
|
|
19301
|
+
React.createElement("div", { className: "scopePicker__presetButtons" }, SCOPE_PRESETS.map(function (preset) { return (React.createElement("button", { key: preset.id, type: "button", className: "scopePicker__presetBtn", onClick: function () { return handlePreset(preset.id); }, disabled: disabled }, preset.label)); }))),
|
|
19302
|
+
React.createElement("div", { className: "scopePicker__categories" }, visibleCategories.map(function (category) {
|
|
19303
|
+
var isExpanded = expandedCategories.has(category.id);
|
|
19304
|
+
var allSelected = isCategoryAllSelected(category.id);
|
|
19305
|
+
return (React.createElement("div", { key: category.id, className: "scopePicker__category ".concat(category.adminOnly ? "scopePicker__category--admin" : "") },
|
|
19306
|
+
React.createElement("div", { className: "scopePicker__categoryHeader" },
|
|
19307
|
+
React.createElement("label", { className: "scopePicker__categorySelect" },
|
|
19308
|
+
React.createElement("input", { type: "checkbox", checked: allSelected, onChange: function (e) { return handleCategorySelectAll(category.id, e.target.checked); }, disabled: disabled, "aria-label": "Select all ".concat(category.label, " scopes") }),
|
|
19309
|
+
React.createElement("span", { className: "scopePicker__categoryLabel" }, category.label)),
|
|
19310
|
+
React.createElement("button", { type: "button", className: "scopePicker__categoryToggle", onClick: function () { return toggleCategory(category.id); }, "aria-expanded": isExpanded, "aria-label": "".concat(isExpanded ? "Collapse" : "Expand", " ").concat(category.label) }, isExpanded ? "▲" : "▼")),
|
|
19311
|
+
isExpanded && (React.createElement("div", { className: "scopePicker__categoryBody" }, category.resources.map(function (resource) { return (React.createElement("div", { key: resource.resource, className: "scopePicker__resource" },
|
|
19312
|
+
React.createElement("span", { className: "scopePicker__resourceLabel" }, resource.label),
|
|
19313
|
+
React.createElement("div", { className: "scopePicker__actions" }, resource.actions.map(function (action) {
|
|
19314
|
+
var scope = "".concat(resource.resource, ":").concat(action);
|
|
19315
|
+
var checked = selectedSet.has(scope);
|
|
19316
|
+
var implied = isImplied(scope);
|
|
19317
|
+
return (React.createElement("label", { key: action, className: "scopePicker__action ".concat(implied ? "scopePicker__action--implied" : ""), title: implied ? "Automatically included by another selected permission" : undefined },
|
|
19318
|
+
React.createElement("input", { type: "checkbox", checked: checked, onChange: function (e) { return handleScopeToggle(scope, e.target.checked); }, disabled: disabled || implied, "aria-label": "".concat(resource.label, " ").concat(action) }),
|
|
19319
|
+
React.createElement("span", null, action)));
|
|
19320
|
+
})))); })))));
|
|
19321
|
+
})),
|
|
19322
|
+
value.length > 0 && (React.createElement("details", { className: "scopePicker__summary" },
|
|
19323
|
+
React.createElement("summary", null,
|
|
19324
|
+
"Selected permissions (",
|
|
19325
|
+
value.length,
|
|
19326
|
+
")"),
|
|
19327
|
+
React.createElement("div", { className: "scopePicker__summaryList" }, value.sort().map(function (scope) { return (React.createElement("span", { key: scope, className: "scopePicker__summaryChip" }, scope)); }))))));
|
|
19328
|
+
}
|
|
19329
|
+
|
|
18911
19330
|
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}";
|
|
18912
19331
|
styleInject(css_248z$2);
|
|
18913
19332
|
|
|
@@ -19765,6 +20184,45 @@ var PagesFactory = /** @class */ (function () {
|
|
|
19765
20184
|
return PagesFactory;
|
|
19766
20185
|
}());
|
|
19767
20186
|
|
|
20187
|
+
var PersonalAccessTokensFactory = /** @class */ (function () {
|
|
20188
|
+
function PersonalAccessTokensFactory() {
|
|
20189
|
+
}
|
|
20190
|
+
PersonalAccessTokensFactory.list = function () {
|
|
20191
|
+
return __awaiter(this, arguments, void 0, function (_a) {
|
|
20192
|
+
var _b = _a === void 0 ? {} : _a, page = _b.page, perPage = _b.perPage, status = _b.status;
|
|
20193
|
+
return __generator(this, function (_c) {
|
|
20194
|
+
return [2 /*return*/, listPats({ page: page, perPage: perPage, status: status }).then(function (data) {
|
|
20195
|
+
data.data = data.data.map(function (pat) { return new PersonalAccessTokenModel(pat); });
|
|
20196
|
+
return data;
|
|
20197
|
+
})];
|
|
20198
|
+
});
|
|
20199
|
+
});
|
|
20200
|
+
};
|
|
20201
|
+
PersonalAccessTokensFactory.get = function (_a) {
|
|
20202
|
+
return __awaiter(this, arguments, void 0, function (_b) {
|
|
20203
|
+
var keyPrefix = _b.keyPrefix;
|
|
20204
|
+
return __generator(this, function (_c) {
|
|
20205
|
+
return [2 /*return*/, getPat({ keyPrefix: keyPrefix }).then(function (data) {
|
|
20206
|
+
return new PersonalAccessTokenModel(data.data);
|
|
20207
|
+
})];
|
|
20208
|
+
});
|
|
20209
|
+
});
|
|
20210
|
+
};
|
|
20211
|
+
PersonalAccessTokensFactory.create = function (_a) {
|
|
20212
|
+
return __awaiter(this, arguments, void 0, function (_b) {
|
|
20213
|
+
var name = _b.name, scopes = _b.scopes, expiresAt = _b.expiresAt, allowedAccountIds = _b.allowedAccountIds;
|
|
20214
|
+
return __generator(this, function (_c) {
|
|
20215
|
+
return [2 /*return*/, createPat({ name: name, scopes: scopes, expiresAt: expiresAt, allowedAccountIds: allowedAccountIds }).then(function (data) {
|
|
20216
|
+
var _a = data.data, plaintext = _a.plaintext, patData = __rest(_a, ["plaintext"]);
|
|
20217
|
+
trackEvent(exports.EEvents.PAT_CREATED, { name: name, scopes: scopes });
|
|
20218
|
+
return { pat: new PersonalAccessTokenModel(patData), plaintext: plaintext };
|
|
20219
|
+
})];
|
|
20220
|
+
});
|
|
20221
|
+
});
|
|
20222
|
+
};
|
|
20223
|
+
return PersonalAccessTokensFactory;
|
|
20224
|
+
}());
|
|
20225
|
+
|
|
19768
20226
|
var PopupsFactory = /** @class */ (function () {
|
|
19769
20227
|
function PopupsFactory() {
|
|
19770
20228
|
}
|
|
@@ -20233,11 +20691,14 @@ exports.OverlayHandler = OverlayHandler;
|
|
|
20233
20691
|
exports.OverlayHeading = OverlayHeading;
|
|
20234
20692
|
exports.PageModel = PageModel;
|
|
20235
20693
|
exports.PagesFactory = PagesFactory;
|
|
20694
|
+
exports.PersonalAccessTokenModel = PersonalAccessTokenModel;
|
|
20695
|
+
exports.PersonalAccessTokensFactory = PersonalAccessTokensFactory;
|
|
20236
20696
|
exports.PhoneTextField = PhoneTextField;
|
|
20237
20697
|
exports.PopupModel = PopupModel;
|
|
20238
20698
|
exports.PopupsFactory = PopupsFactory;
|
|
20239
20699
|
exports.Radio = Radio;
|
|
20240
20700
|
exports.ResourceEdit = ResourceEdit;
|
|
20701
|
+
exports.ScopePicker = ScopePicker;
|
|
20241
20702
|
exports.Search = Search;
|
|
20242
20703
|
exports.SenderModel = SenderModel;
|
|
20243
20704
|
exports.SendersFactory = SendersFactory;
|
|
@@ -20289,6 +20750,7 @@ exports.createContactsExport = createContactsExport;
|
|
|
20289
20750
|
exports.createCustomDomain = createCustomDomain;
|
|
20290
20751
|
exports.createForm = createForm;
|
|
20291
20752
|
exports.createPage = createPage;
|
|
20753
|
+
exports.createPat = createPat;
|
|
20292
20754
|
exports.createPopup = createPopup;
|
|
20293
20755
|
exports.createSender = createSender;
|
|
20294
20756
|
exports.createSuppressedEmailExport = createSuppressedEmailExport;
|
|
@@ -20381,6 +20843,7 @@ exports.getListLogs = getListLogs;
|
|
|
20381
20843
|
exports.getListReport = getListReport;
|
|
20382
20844
|
exports.getNestedProperty = getNestedProperty;
|
|
20383
20845
|
exports.getPage = getPage;
|
|
20846
|
+
exports.getPat = getPat;
|
|
20384
20847
|
exports.getPopup = getPopup;
|
|
20385
20848
|
exports.getPropertyValue = getPropertyValue;
|
|
20386
20849
|
exports.getSender = getSender;
|
|
@@ -20420,6 +20883,7 @@ exports.listList = listList;
|
|
|
20420
20883
|
exports.listListAttributes = listListAttributes;
|
|
20421
20884
|
exports.listListInterests = listListInterests;
|
|
20422
20885
|
exports.listPages = listPages;
|
|
20886
|
+
exports.listPats = listPats;
|
|
20423
20887
|
exports.listPopups = listPopups;
|
|
20424
20888
|
exports.listSenders = listSenders;
|
|
20425
20889
|
exports.listSuppressedEmails = listSuppressedEmails;
|
|
@@ -20457,6 +20921,7 @@ exports.requestSupportService = requestSupportService;
|
|
|
20457
20921
|
exports.resendEmail = resendEmail;
|
|
20458
20922
|
exports.resendVerificationEmail = resendVerificationEmail;
|
|
20459
20923
|
exports.resumeCampaign = resumeCampaign;
|
|
20924
|
+
exports.revokePat = revokePat;
|
|
20460
20925
|
exports.saveList = saveList;
|
|
20461
20926
|
exports.scheduleCampaign = scheduleCampaign;
|
|
20462
20927
|
exports.searchCustomerProfiles = searchCustomerProfiles;
|
|
@@ -20489,6 +20954,7 @@ exports.updateAnyAutomation = updateAnyAutomation;
|
|
|
20489
20954
|
exports.updateAutomation = updateAutomation;
|
|
20490
20955
|
exports.updateCampaign = updateCampaign;
|
|
20491
20956
|
exports.updatePage = updatePage;
|
|
20957
|
+
exports.updatePat = updatePat;
|
|
20492
20958
|
exports.updatePopup = updatePopup;
|
|
20493
20959
|
exports.updateSystemEmails = updateSystemEmails;
|
|
20494
20960
|
exports.updateTemplate = updateTemplate;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TPatModel } from "./types";
|
|
2
|
+
export declare class PersonalAccessTokenModel {
|
|
3
|
+
readonly key_prefix: string;
|
|
4
|
+
name: string;
|
|
5
|
+
status: "active" | "revoked" | "expired";
|
|
6
|
+
scopes: string[];
|
|
7
|
+
allowed_account_ids: string[] | null;
|
|
8
|
+
readonly created_at: number;
|
|
9
|
+
readonly expires_at: number | null;
|
|
10
|
+
readonly revoked_at: number | null;
|
|
11
|
+
constructor(params: TPatModel);
|
|
12
|
+
toJson(): any;
|
|
13
|
+
set<T extends keyof this>(property: T, value: this[T]): void;
|
|
14
|
+
update({ name, scopes, allowedAccountIds }: {
|
|
15
|
+
name?: string;
|
|
16
|
+
scopes?: string[];
|
|
17
|
+
allowedAccountIds?: string[] | null;
|
|
18
|
+
}): Promise<PersonalAccessTokenModel>;
|
|
19
|
+
revoke(): Promise<PersonalAccessTokenModel>;
|
|
20
|
+
}
|
|
21
|
+
export * from "./types";
|