@devtron-labs/devtron-fe-common-lib 0.0.48-beta-9 → 0.0.48-beta-10
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/.eslintignore +75 -0
- package/.eslintrc.js +84 -16
- package/.github/pull_request_template.md +25 -0
- package/.github/workflows/ci.yml +31 -0
- package/.github/workflows/release-package.yml +2 -3
- package/.husky/pre-commit +5 -0
- package/.lintstagedrc +3 -0
- package/.nvmrc +1 -0
- package/dist/Common/BreadCrumb/BreadCrumb.d.ts +1 -1
- package/dist/Common/BreadCrumb/BreadcrumbStore.d.ts +2 -2
- package/dist/Common/Constants.d.ts +1 -5
- package/dist/Common/CustomInput/CustomInput.d.ts +1 -1
- package/dist/Common/CustomInput/Types.d.ts +2 -2
- package/dist/Common/CustomTagSelector/ResizableTagTextArea.d.ts +1 -1
- package/dist/Common/DeleteComponentModal/DeleteComponent.d.ts +1 -1
- package/dist/Common/DevtronProgressing/DevtronProgressing.d.ts +1 -1
- package/dist/Common/Dialogs/ConfirmationDialog.d.ts +6 -6
- package/dist/Common/Dialogs/DeleteDialog.d.ts +1 -1
- package/dist/Common/Dialogs/ForceDeleteDialog.d.ts +1 -1
- package/dist/Common/Dialogs/Types.d.ts +1 -1
- package/dist/Common/EmptyState/EmptyState.d.ts +20 -17
- package/dist/Common/EmptyState/GenericEmptyState.d.ts +1 -1
- package/dist/Common/Error.d.ts +2 -1
- package/dist/Common/ErrorScreenNotFound.d.ts +1 -1
- package/dist/Common/Helper.d.ts +1 -1
- package/dist/Common/ImageTags.d.ts +1 -1
- package/dist/Common/InfoColorBar/InfoColourbar.d.ts +1 -1
- package/dist/Common/Modals/Modal.d.ts +2 -2
- package/dist/Common/Modals/OpaqueModal.d.ts +3 -3
- package/dist/Common/Modals/VisibleModal.d.ts +3 -3
- package/dist/Common/Modals/VisibleModal2.d.ts +3 -3
- package/dist/Common/MultiSelectCustomization.d.ts +1 -1
- package/dist/Common/Policy.Types.d.ts +2 -2
- package/dist/Common/PopupMenu.d.ts +5 -5
- package/dist/Common/Progressing.d.ts +2 -2
- package/dist/Common/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/Common/ResizableTextarea.d.ts +1 -1
- package/dist/Common/TippyCustomized.d.ts +1 -1
- package/dist/Common/ToastBody.d.ts +5 -5
- package/dist/index.d.ts +1 -1
- package/dist/index.js +266 -351
- package/package.json +19 -2
- package/src/Common/AddCDButton/AddCDButton.tsx +1 -2
- package/src/Common/Api.ts +21 -26
- package/src/Common/AppStatus/AppStatus.tsx +12 -12
- package/src/Common/AppStatus/utils.ts +6 -5
- package/src/Common/BreadCrumb/BreadCrumb.tsx +32 -28
- package/src/Common/BreadCrumb/BreadcrumbStore.tsx +2 -2
- package/src/Common/BreadCrumb/Types.ts +11 -12
- package/src/Common/Checkbox.tsx +17 -19
- package/src/Common/ClipboardButton/ClipboardButton.tsx +1 -1
- package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +0 -1
- package/src/Common/Common.service.ts +59 -64
- package/src/Common/Constants.ts +9 -14
- package/src/Common/CustomInput/CustomInput.tsx +22 -29
- package/src/Common/CustomInput/Types.ts +4 -4
- package/src/Common/CustomInput/index.ts +1 -1
- package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +15 -18
- package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +9 -9
- package/src/Common/CustomTagSelector/TagDetails.tsx +9 -3
- package/src/Common/CustomTagSelector/TagLabelSelect.tsx +7 -9
- package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +31 -35
- package/src/Common/CustomTagSelector/TagSelector.utils.ts +2 -3
- package/src/Common/CustomTagSelector/Types.ts +1 -1
- package/src/Common/CustomTagSelector/ValidationRules.ts +18 -22
- package/src/Common/CustomTagSelector/index.ts +2 -2
- package/src/Common/DebouncedSearch/DebouncedSearch.tsx +2 -1
- package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +0 -1
- package/src/Common/DeleteComponentModal/DeleteComponent.tsx +27 -32
- package/src/Common/DeleteComponentModal/types.ts +1 -1
- package/src/Common/DevtronProgressing/DevtronProgressing.tsx +5 -8
- package/src/Common/Dialogs/ConfirmationDialog.tsx +24 -24
- package/src/Common/Dialogs/DeleteDialog.tsx +3 -5
- package/src/Common/Dialogs/DialogForm.tsx +31 -35
- package/src/Common/Dialogs/ForceDeleteDialog.tsx +13 -7
- package/src/Common/Dialogs/Types.ts +12 -12
- package/src/Common/Dialogs/index.ts +1 -1
- package/src/Common/Drawer/Drawer.tsx +1 -1
- package/src/Common/EmptyState/EmptyState.tsx +13 -17
- package/src/Common/EmptyState/GenericEmptyState.tsx +7 -21
- package/src/Common/Error.tsx +5 -5
- package/src/Common/ErrorScreenNotFound.tsx +9 -12
- package/src/Common/Grid/Grid.tsx +1 -2
- package/src/Common/Helper.tsx +23 -24
- package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +1 -1
- package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +1 -1
- package/src/Common/ImageTags.Types.ts +2 -3
- package/src/Common/ImageTags.tsx +61 -66
- package/src/Common/InfoColorBar/InfoColourbar.tsx +10 -5
- package/src/Common/Modals/Modal.tsx +3 -3
- package/src/Common/Modals/OpaqueModal.tsx +25 -18
- package/src/Common/Modals/VisibleModal.tsx +7 -3
- package/src/Common/Modals/VisibleModal2.tsx +20 -15
- package/src/Common/MultiSelectCustomization.tsx +9 -13
- package/src/Common/Policy.Types.ts +38 -38
- package/src/Common/PopupMenu.tsx +10 -9
- package/src/Common/Progressing.tsx +15 -18
- package/src/Common/RJSF/Form.tsx +0 -1
- package/src/Common/RJSF/common/FieldRow.tsx +0 -1
- package/src/Common/RJSF/config.ts +0 -1
- package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +1 -1
- package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +0 -1
- package/src/Common/RJSF/templates/BaseInput.tsx +0 -1
- package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +0 -1
- package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +0 -1
- package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +1 -6
- package/src/Common/RJSF/templates/Description.tsx +0 -1
- package/src/Common/RJSF/templates/Field.tsx +14 -3
- package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +6 -9
- package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +5 -7
- package/src/Common/RJSF/templates/TitleField.tsx +0 -1
- package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +0 -1
- package/src/Common/RJSF/utils.ts +53 -57
- package/src/Common/RJSF/widgets/Checkbox.tsx +2 -2
- package/src/Common/RJSF/widgets/Select.tsx +0 -1
- package/src/Common/RadioGroup/RadioGroup.tsx +18 -23
- package/src/Common/RadioGroup.tsx +24 -23
- package/src/Common/Reload.tsx +0 -1
- package/src/Common/ResizableTextarea.tsx +18 -17
- package/src/Common/Security/ScanVulnerabilitiesTable.tsx +29 -34
- package/src/Common/ServerError.ts +5 -1
- package/src/Common/TippyCustomized.tsx +41 -38
- package/src/Common/ToastBody.tsx +6 -7
- package/src/Common/Toggle/Toggle.tsx +3 -3
- package/src/Common/Types.ts +12 -12
- package/src/custom.d.ts +7 -7
- package/src/index.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -9,20 +9,20 @@ var RJSFValidator = require('@rjsf/validator-ajv8');
|
|
|
9
9
|
var utils = require('@rjsf/utils');
|
|
10
10
|
|
|
11
11
|
function _interopNamespaceDefault(e) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
var n = Object.create(null);
|
|
13
|
+
if (e) {
|
|
14
|
+
Object.keys(e).forEach(function (k) {
|
|
15
|
+
if (k !== 'default') {
|
|
16
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
17
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return e[k]; }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
20
22
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
n.default = e;
|
|
25
|
-
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
n.default = e;
|
|
25
|
+
return Object.freeze(n);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
@@ -47,7 +47,7 @@ var ROUTES = {
|
|
|
47
47
|
PROJECT_LIST_MIN: 'team/autocomplete',
|
|
48
48
|
USER_CHECK_ROLE: 'user/check/roles',
|
|
49
49
|
IMAGE_TAGGING: 'app/image-tagging',
|
|
50
|
-
CD_MATERIAL_GET: 'app/cd-pipeline'
|
|
50
|
+
CD_MATERIAL_GET: 'app/cd-pipeline',
|
|
51
51
|
};
|
|
52
52
|
exports.KEY_VALUE = void 0;
|
|
53
53
|
(function (KEY_VALUE) {
|
|
@@ -251,15 +251,10 @@ var REGISTRY_TYPE_MAP = {
|
|
|
251
251
|
},
|
|
252
252
|
};
|
|
253
253
|
var RepositoryAction = {
|
|
254
|
-
CONTAINER:
|
|
255
|
-
CHART_PULL:
|
|
256
|
-
CHART_PUSH:
|
|
257
|
-
};
|
|
258
|
-
exports.APPROVAL_MODAL_TYPE = void 0;
|
|
259
|
-
(function (APPROVAL_MODAL_TYPE) {
|
|
260
|
-
APPROVAL_MODAL_TYPE["CONFIG"] = "CONFIG";
|
|
261
|
-
APPROVAL_MODAL_TYPE["IMAGE"] = "IMAGE";
|
|
262
|
-
})(exports.APPROVAL_MODAL_TYPE || (exports.APPROVAL_MODAL_TYPE = {}));
|
|
254
|
+
CONTAINER: 'CONTAINER',
|
|
255
|
+
CHART_PULL: 'CHART_PULL',
|
|
256
|
+
CHART_PUSH: 'CHART_PUSH',
|
|
257
|
+
};
|
|
263
258
|
|
|
264
259
|
/******************************************************************************
|
|
265
260
|
Copyright (c) Microsoft Corporation.
|
|
@@ -275,7 +270,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
275
270
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
276
271
|
PERFORMANCE OF THIS SOFTWARE.
|
|
277
272
|
***************************************************************************** */
|
|
278
|
-
/* global Reflect, Promise */
|
|
273
|
+
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
279
274
|
|
|
280
275
|
var extendStatics = function(d, b) {
|
|
281
276
|
extendStatics = Object.setPrototypeOf ||
|
|
@@ -378,7 +373,12 @@ function __spreadArray(to, from, pack) {
|
|
|
378
373
|
}
|
|
379
374
|
}
|
|
380
375
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
381
|
-
}
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
379
|
+
var e = new Error(message);
|
|
380
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
381
|
+
};
|
|
382
382
|
|
|
383
383
|
var ServerError = /** @class */ (function () {
|
|
384
384
|
function ServerError(error) {
|
|
@@ -580,7 +580,7 @@ function handleServerError(contentType, response) {
|
|
|
580
580
|
status = response.statusText || responseMessages[code];
|
|
581
581
|
serverError = new ServerErrors({ code: code, errors: [] });
|
|
582
582
|
if (!(contentType !== 'application/json')) return [3 /*break*/, 1];
|
|
583
|
-
//used for better debugging,
|
|
583
|
+
// used for better debugging,
|
|
584
584
|
status = "".concat(responseMessages[code], ". Please try again.");
|
|
585
585
|
return [3 /*break*/, 3];
|
|
586
586
|
case 1: return [4 /*yield*/, response.json()];
|
|
@@ -608,8 +608,8 @@ function fetchAPI(url, type, data, signal, preventAutoLogout, isMultipartRequest
|
|
|
608
608
|
method: type,
|
|
609
609
|
signal: signal,
|
|
610
610
|
body: data ? JSON.stringify(data) : undefined,
|
|
611
|
+
credentials: 'include',
|
|
611
612
|
};
|
|
612
|
-
options['credentials'] = 'include';
|
|
613
613
|
return [2 /*return*/, fetch("".concat(Host, "/").concat(url), !isMultipartRequest
|
|
614
614
|
? options
|
|
615
615
|
: {
|
|
@@ -642,17 +642,17 @@ function fetchAPI(url, type, data, signal, preventAutoLogout, isMultipartRequest
|
|
|
642
642
|
if (contentType === 'application/json') {
|
|
643
643
|
return [2 /*return*/, response.json().then(function (responseBody) {
|
|
644
644
|
if (responseBody.code >= 300 && responseBody.code <= 599) {
|
|
645
|
-
//Test Code in Response Body, despite successful HTTP Response Code
|
|
645
|
+
// Test Code in Response Body, despite successful HTTP Response Code
|
|
646
646
|
throw new ServerErrors({ code: responseBody.code, errors: responseBody.errors });
|
|
647
647
|
}
|
|
648
648
|
else {
|
|
649
|
-
//Successfull Response. Expected Response Type {code, result, status}
|
|
649
|
+
// Successfull Response. Expected Response Type {code, result, status}
|
|
650
650
|
return responseBody;
|
|
651
651
|
}
|
|
652
652
|
})];
|
|
653
653
|
}
|
|
654
|
-
|
|
655
|
-
//used in getArtifact() API only
|
|
654
|
+
if (contentType === 'octet-stream' || contentType === 'application/octet-stream') {
|
|
655
|
+
// used in getArtifact() API only
|
|
656
656
|
return [2 /*return*/, response];
|
|
657
657
|
}
|
|
658
658
|
_a.label = 4;
|
|
@@ -660,7 +660,7 @@ function fetchAPI(url, type, data, signal, preventAutoLogout, isMultipartRequest
|
|
|
660
660
|
}
|
|
661
661
|
});
|
|
662
662
|
}); }, function (error) {
|
|
663
|
-
//Network call fails. Handle Failed to Fetch
|
|
663
|
+
// Network call fails. Handle Failed to Fetch
|
|
664
664
|
var err = {
|
|
665
665
|
code: 0,
|
|
666
666
|
userMessage: error.message,
|
|
@@ -706,15 +706,11 @@ function fetchInTime(url, type, data, options, isMultipartRequest) {
|
|
|
706
706
|
}
|
|
707
707
|
});
|
|
708
708
|
}
|
|
709
|
-
var post = function (url, data, options, isMultipartRequest) {
|
|
710
|
-
return fetchInTime(url, 'POST', data, options, isMultipartRequest);
|
|
711
|
-
};
|
|
709
|
+
var post = function (url, data, options, isMultipartRequest) { return fetchInTime(url, 'POST', data, options, isMultipartRequest); };
|
|
712
710
|
var put = function (url, data, options) {
|
|
713
711
|
return fetchInTime(url, 'PUT', data, options);
|
|
714
712
|
};
|
|
715
|
-
var get = function (url, options) {
|
|
716
|
-
return fetchInTime(url, 'GET', null, options);
|
|
717
|
-
};
|
|
713
|
+
var get = function (url, options) { return fetchInTime(url, 'GET', null, options); };
|
|
718
714
|
var trash = function (url, data, options) {
|
|
719
715
|
return fetchInTime(url, 'DELETE', data, options);
|
|
720
716
|
};
|
|
@@ -773,10 +769,10 @@ var SvgIcProgressing = function SvgIcProgressing(props) {
|
|
|
773
769
|
}))));
|
|
774
770
|
};
|
|
775
771
|
|
|
776
|
-
function
|
|
772
|
+
var EmptyState = function (_a) {
|
|
777
773
|
var children = _a.children, _b = _a.className, className = _b === void 0 ? '' : _b;
|
|
778
774
|
return (jsxRuntime.jsx("div", __assign({ className: "flex column empty-state w-100 h-100 ".concat(className) }, { children: children })));
|
|
779
|
-
}
|
|
775
|
+
};
|
|
780
776
|
function Image(_a) {
|
|
781
777
|
var children = _a.children;
|
|
782
778
|
return children;
|
|
@@ -785,17 +781,15 @@ function Title(_a) {
|
|
|
785
781
|
var children = _a.children;
|
|
786
782
|
return children;
|
|
787
783
|
}
|
|
788
|
-
function
|
|
784
|
+
var Subtitle = function (_a) {
|
|
789
785
|
var children = _a.children, className = _a.className;
|
|
790
|
-
return jsxRuntime.jsx("p", __assign({ className: "subtitle ".concat(className || '') }, { children: children }));
|
|
791
|
-
}
|
|
786
|
+
return (jsxRuntime.jsx("p", __assign({ className: "subtitle ".concat(className || '') }, { children: children })));
|
|
787
|
+
};
|
|
792
788
|
function Button$1(_a) {
|
|
793
789
|
var children = _a.children;
|
|
794
790
|
return children;
|
|
795
791
|
}
|
|
796
|
-
var Loading = function (props) {
|
|
797
|
-
return jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(SvgIcProgressing, { className: "dc__block empty-state__loader" }), jsxRuntime.jsx("p", __assign({ className: "empty-state__loading-text" }, { children: props.text }))] });
|
|
798
|
-
};
|
|
792
|
+
var Loading = function (props) { return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(SvgIcProgressing, { className: "dc__block empty-state__loader" }), jsxRuntime.jsx("p", __assign({ className: "empty-state__loading-text" }, { children: props.text }))] })); };
|
|
799
793
|
EmptyState.Image = Image;
|
|
800
794
|
EmptyState.Title = Title;
|
|
801
795
|
EmptyState.Subtitle = Subtitle;
|
|
@@ -2229,32 +2223,20 @@ var notFound = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAFACAYAAACSgS
|
|
|
2229
2223
|
|
|
2230
2224
|
var AppNotDeployed = "data:image/png;base64,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";
|
|
2231
2225
|
|
|
2232
|
-
function
|
|
2226
|
+
var GenericEmptyState = function (_a) {
|
|
2233
2227
|
var title = _a.title, image = _a.image, subTitle = _a.subTitle, isButtonAvailable = _a.isButtonAvailable, classname = _a.classname, styles = _a.styles, heightToDeduct = _a.heightToDeduct, imageType = _a.imageType, renderButton = _a.renderButton, imageClassName = _a.imageClassName, children = _a.children, SvgImage = _a.SvgImage, noImage = _a.noImage, _b = _a.layout, layout = _b === void 0 ? 'column' : _b, _c = _a.contentClassName, contentClassName = _c === void 0 ? '' : _c;
|
|
2234
2228
|
var isRowLayout = layout === 'row';
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
case exports.ImageType.Medium:
|
|
2238
|
-
return { width: '200', height: '160' };
|
|
2239
|
-
case exports.ImageType.Large:
|
|
2240
|
-
return { width: '250', height: '200' };
|
|
2241
|
-
default:
|
|
2242
|
-
return { width: '200', height: '160' };
|
|
2243
|
-
}
|
|
2244
|
-
};
|
|
2245
|
-
return (jsxRuntime.jsxs("div", __assign({ className: "flex ".concat(isRowLayout ? 'dc__gap-32' : 'column dc__gap-20', " empty-state ").concat(classname ? classname : ''), style: styles, "data-testid": "generic-empty-state" }, (heightToDeduct >= 0 && { style: __assign(__assign({}, styles), { height: "calc(100vh - ".concat(heightToDeduct, "px)") }) }), { children: [!SvgImage ? (!noImage && (jsxRuntime.jsx("img", { className: imageClassName ? imageClassName : '', src: image || AppNotDeployed, width: getImageSize().width, height: getImageSize().height, alt: "empty-state" }))) : (jsxRuntime.jsx(SvgImage, { style: { width: "".concat(getImageSize().width, "px"), height: "".concat(getImageSize().height, "px") } })), jsxRuntime.jsxs("div", __assign({ className: "flex column dc__gap-10 dc__mxw-300 ".concat(isRowLayout ? 'dc__align-start' : '', " ").concat(contentClassName) }, { children: [jsxRuntime.jsx("h4", __assign({ className: "title fw-6 cn-9 mt-0 mb-0" }, { children: title })), subTitle && jsxRuntime.jsx("p", __assign({ className: "subtitle ".concat(isRowLayout ? 'subtitle--text-start' : '') }, { children: subTitle })), isButtonAvailable && renderButton(), children] }))] })));
|
|
2246
|
-
}
|
|
2229
|
+
return (jsxRuntime.jsxs("div", __assign({ className: "flex ".concat(isRowLayout ? 'dc__gap-32' : 'column dc__gap-20', " empty-state ").concat(classname || ''), style: styles, "data-testid": "generic-empty-state" }, (heightToDeduct >= 0 && { style: __assign(__assign({}, styles), { height: "calc(100vh - ".concat(heightToDeduct, "px)") }) }), { children: [!SvgImage ? (!noImage && (jsxRuntime.jsx("img", { className: imageClassName || '', src: image || AppNotDeployed, width: imageType === exports.ImageType.Medium ? '200' : '250', height: imageType === exports.ImageType.Medium ? '160' : '200', alt: "empty-state" }))) : (jsxRuntime.jsx(SvgImage, {})), jsxRuntime.jsxs("div", __assign({ className: "flex column dc__gap-10 dc__mxw-300 ".concat(isRowLayout ? 'dc__align-start' : '', " ").concat(contentClassName) }, { children: [jsxRuntime.jsx("h4", __assign({ className: "title fw-6 cn-9 mt-0 mb-0" }, { children: title })), subTitle && jsxRuntime.jsx("p", __assign({ className: "subtitle ".concat(isRowLayout ? 'subtitle--text-start' : '') }, { children: subTitle })), isButtonAvailable && renderButton(), children] }))] })));
|
|
2230
|
+
};
|
|
2247
2231
|
|
|
2248
|
-
function
|
|
2232
|
+
var ErrorScreenNotFound = function () {
|
|
2249
2233
|
var push = reactRouterDom.useHistory().push;
|
|
2250
2234
|
var redirectToHome = function () {
|
|
2251
2235
|
push('/app/list');
|
|
2252
2236
|
};
|
|
2253
|
-
var renderGenerateButton = function () {
|
|
2254
|
-
return (jsxRuntime.jsx("button", __assign({ className: "flex cta h-32", onClick: redirectToHome, "data-testid": "empty-screen-take-me-home" }, { children: ERROR_EMPTY_SCREEN.TAKE_BACK_HOME })));
|
|
2255
|
-
};
|
|
2237
|
+
var renderGenerateButton = function () { return (jsxRuntime.jsx("button", __assign({ className: "flex cta h-32", onClick: redirectToHome, "data-testid": "empty-screen-take-me-home" }, { children: ERROR_EMPTY_SCREEN.TAKE_BACK_HOME }))); };
|
|
2256
2238
|
return (jsxRuntime.jsx(GenericEmptyState, { image: notFound, title: ERROR_EMPTY_SCREEN.PAGE_NOT_FOUND, subTitle: ERROR_EMPTY_SCREEN.PAGE_NOT_EXIST, isButtonAvailable: true, renderButton: renderGenerateButton }));
|
|
2257
|
-
}
|
|
2239
|
+
};
|
|
2258
2240
|
|
|
2259
2241
|
var ErrorScreenManager = /** @class */ (function (_super) {
|
|
2260
2242
|
__extends(ErrorScreenManager, _super);
|
|
@@ -2268,7 +2250,7 @@ var ErrorScreenManager = /** @class */ (function (_super) {
|
|
|
2268
2250
|
case 401:
|
|
2269
2251
|
return 'Unauthorized';
|
|
2270
2252
|
case 403:
|
|
2271
|
-
return
|
|
2253
|
+
return jsxRuntime.jsx(ErrorScreenNotAuthorized, { subtitle: this.props.subtitle });
|
|
2272
2254
|
case 404:
|
|
2273
2255
|
return jsxRuntime.jsx(ErrorScreenNotFound, {});
|
|
2274
2256
|
case 500:
|
|
@@ -9942,7 +9924,7 @@ var stopPropagation = function (event) {
|
|
|
9942
9924
|
};
|
|
9943
9925
|
function useThrottledEffect(callback, delay, deps) {
|
|
9944
9926
|
if (deps === void 0) { deps = []; }
|
|
9945
|
-
//function will be executed only once in a given time interval.
|
|
9927
|
+
// function will be executed only once in a given time interval.
|
|
9946
9928
|
var lastRan = React.useRef(Date.now());
|
|
9947
9929
|
React.useEffect(function () {
|
|
9948
9930
|
var handler = setTimeout(function () {
|
|
@@ -9976,22 +9958,20 @@ function getRandomColor(email) {
|
|
|
9976
9958
|
return colors$1[sum % colors$1.length];
|
|
9977
9959
|
}
|
|
9978
9960
|
var getAlphabetIcon = function (str, rootClassName) {
|
|
9979
|
-
if (rootClassName === void 0) { rootClassName =
|
|
9961
|
+
if (rootClassName === void 0) { rootClassName = ''; }
|
|
9980
9962
|
if (!str)
|
|
9981
9963
|
return null;
|
|
9982
9964
|
return (jsxRuntime.jsx("span", __assign({ className: "".concat(rootClassName, " alphabet-icon__initial fs-13 icon-dim-20 flex cn-0 mr-8"), style: { backgroundColor: getRandomColor(str) } }, { children: str[0] })));
|
|
9983
9965
|
};
|
|
9984
|
-
var getEmptyArrayOfLength = function (length) {
|
|
9985
|
-
return Array.from({ length: length });
|
|
9986
|
-
};
|
|
9966
|
+
var getEmptyArrayOfLength = function (length) { return Array.from({ length: length }); };
|
|
9987
9967
|
function noop$1() {
|
|
9988
9968
|
}
|
|
9989
9969
|
function not(e) {
|
|
9990
9970
|
return !e;
|
|
9991
9971
|
}
|
|
9992
9972
|
function useEffectAfterMount(cb, dependencies) {
|
|
9993
|
-
var justMounted =
|
|
9994
|
-
|
|
9973
|
+
var justMounted = React__namespace.useRef(true);
|
|
9974
|
+
React__namespace.useEffect(function () {
|
|
9995
9975
|
if (!justMounted.current) {
|
|
9996
9976
|
return cb();
|
|
9997
9977
|
}
|
|
@@ -10002,7 +9982,7 @@ function getCookie(sKey) {
|
|
|
10002
9982
|
if (!sKey) {
|
|
10003
9983
|
return null;
|
|
10004
9984
|
}
|
|
10005
|
-
return (document.cookie.replace(new RegExp(
|
|
9985
|
+
return (document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*".concat(sKey.replace(/[\-\.\+\*]/g, '\\$&'), "\\s*\\=\\s*([^;]*).*$)|^.*$")), '$1') || null);
|
|
10006
9986
|
}
|
|
10007
9987
|
function getLoginInfo() {
|
|
10008
9988
|
var argocdToken = getCookie(TOKEN_COOKIE_NAME);
|
|
@@ -10038,7 +10018,7 @@ function useForm(stateSchema, validationSchema, callback) {
|
|
|
10038
10018
|
// Wrapped in useCallback to cached the function to avoid intensive memory leaked
|
|
10039
10019
|
// in every re-render in component
|
|
10040
10020
|
var validateState = React.useCallback(function (state) {
|
|
10041
|
-
//check errors in all fields
|
|
10021
|
+
// check errors in all fields
|
|
10042
10022
|
var hasErrorInState = Object.keys(validationSchema).some(function (key) {
|
|
10043
10023
|
var isInputFieldRequired = validationSchema[key].required;
|
|
10044
10024
|
var stateValue = state[key].value; // state value
|
|
@@ -10190,9 +10170,7 @@ function useAsync(func, dependencyArray, shouldRun, options) {
|
|
|
10190
10170
|
dependencies: dependencyArray,
|
|
10191
10171
|
}), 2), state = _a[0], setState = _a[1];
|
|
10192
10172
|
var mounted = React.useRef(true);
|
|
10193
|
-
var dependencies = React.useMemo(function () {
|
|
10194
|
-
return __spreadArray(__spreadArray([], __read(dependencyArray), false), [shouldRun], false);
|
|
10195
|
-
}, __spreadArray(__spreadArray([], __read(dependencyArray), false), [shouldRun], false));
|
|
10173
|
+
var dependencies = React.useMemo(function () { return __spreadArray(__spreadArray([], __read(dependencyArray), false), [shouldRun], false); }, __spreadArray(__spreadArray([], __read(dependencyArray), false), [shouldRun], false));
|
|
10196
10174
|
var reload = function () {
|
|
10197
10175
|
function call() {
|
|
10198
10176
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -10251,9 +10229,7 @@ var processDeployedTime = function (lastDeployed, isArgoInstalled) {
|
|
|
10251
10229
|
if (lastDeployed) {
|
|
10252
10230
|
return handleUTCTime(lastDeployed, true);
|
|
10253
10231
|
}
|
|
10254
|
-
|
|
10255
|
-
return isArgoInstalled ? '' : 'Not deployed';
|
|
10256
|
-
}
|
|
10232
|
+
return isArgoInstalled ? '' : 'Not deployed';
|
|
10257
10233
|
};
|
|
10258
10234
|
/**
|
|
10259
10235
|
* Appends search parameters to the url as a query string
|
|
@@ -10276,15 +10252,15 @@ var getUrlWithSearchParams = function (url, params) {
|
|
|
10276
10252
|
*/
|
|
10277
10253
|
var logExceptionToSentry = captureException.bind(window);
|
|
10278
10254
|
|
|
10279
|
-
function
|
|
10255
|
+
var Progressing = function (_a) {
|
|
10280
10256
|
var pageLoader = _a.pageLoader, size = _a.size, theme = _a.theme, styles = _a.styles, fillColor = _a.fillColor;
|
|
10281
10257
|
var loaderSize = size ? "".concat(size, "px") : pageLoader ? '48px' : '20px';
|
|
10282
10258
|
return (jsxRuntime.jsx("div", __assign({ className: "loader ".concat(theme || 'default', "-background"), style: styles, "data-testid": "progressing" }, { children: jsxRuntime.jsx("div", __assign({ style: { width: loaderSize, height: loaderSize } }, { children: jsxRuntime.jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", className: "loader__svg" }, { children: jsxRuntime.jsxs("g", __assign({ fill: "none", fillRule: "evenodd", strokeLinecap: "round" }, { children: [jsxRuntime.jsx("animateTransform", { attributeName: "transform", attributeType: "XML", dur: "0.5s", from: "0 12 12", repeatCount: "indefinite", to: "360 12 12", type: "rotate" }), jsxRuntime.jsx("path", { fill: fillColor || '#06C', fillRule: "nonzero", d: "M12 2.5A9.5 9.5 0 1 1 2.5 12a1.5 1.5 0 0 1 3 0A6.5 6.5 0 1 0 12 5.5a1.5 1.5 0 0 1 0-3z" })] })) })) })) })));
|
|
10283
|
-
}
|
|
10284
|
-
function
|
|
10259
|
+
};
|
|
10260
|
+
var DetailsProgressing = function (_a) {
|
|
10285
10261
|
var loadingText = _a.loadingText, _b = _a.size, size = _b === void 0 ? 24 : _b, _c = _a.fullHeight, fullHeight = _c === void 0 ? false : _c, styles = _a.styles, fillColor = _a.fillColor, children = _a.children;
|
|
10286
10262
|
return (jsxRuntime.jsxs("div", __assign({ className: "details-loader bcn-0 flex column fs-14 fw-6 ".concat(fullHeight ? 'h-100' : 'details-loader-height'), style: styles, "data-testid": "details-progressing" }, { children: [jsxRuntime.jsx("span", __assign({ style: { width: "".concat(size, "px"), height: "".concat(size, "px") } }, { children: jsxRuntime.jsx(Progressing, { size: size, fillColor: fillColor }) })), loadingText && jsxRuntime.jsx("span", __assign({ className: "mt-10" }, { children: loadingText })), children] })));
|
|
10287
|
-
}
|
|
10263
|
+
};
|
|
10288
10264
|
|
|
10289
10265
|
var VisibleModal = /** @class */ (function (_super) {
|
|
10290
10266
|
__extends(VisibleModal, _super);
|
|
@@ -10426,17 +10402,17 @@ var OpaqueModal = /** @class */ (function (_super) {
|
|
|
10426
10402
|
}
|
|
10427
10403
|
OpaqueModal.prototype.componentDidMount = function () {
|
|
10428
10404
|
if (this.props.noBackground)
|
|
10429
|
-
this.modalRef.classList.add(
|
|
10405
|
+
this.modalRef.classList.add('show');
|
|
10430
10406
|
else
|
|
10431
|
-
this.modalRef.classList.add(
|
|
10407
|
+
this.modalRef.classList.add('show-with-bg');
|
|
10432
10408
|
};
|
|
10433
10409
|
OpaqueModal.prototype.componentWillUnmount = function () {
|
|
10434
|
-
this.modalRef.classList.remove(
|
|
10435
|
-
this.modalRef.classList.remove(
|
|
10410
|
+
this.modalRef.classList.remove('show');
|
|
10411
|
+
this.modalRef.classList.remove('show-with-bg');
|
|
10436
10412
|
};
|
|
10437
10413
|
OpaqueModal.prototype.render = function () {
|
|
10438
|
-
var _a = __assign({}, this.props), _b = _a.className, className = _b === void 0 ?
|
|
10439
|
-
return ReactDOM.createPortal(jsxRuntime.jsxs("div", __assign({ className: "full-screen-modal__body-container ".concat(className) }, { children: [this.props.children, typeof onHide === 'function' && jsxRuntime.jsx("div", __assign({ className: "close-btn icon-dim-24", onClick: function (e) { return onHide(false); }, "data-testid": "opaque-modal-close" }, { children: jsxRuntime.jsx("img", { className: "close-img", src: close, alt: "close" }) }))] })), document.getElementById('full-screen-modal'));
|
|
10414
|
+
var _a = __assign({}, this.props), _b = _a.className, className = _b === void 0 ? '' : _b, _c = _a.onHide, onHide = _c === void 0 ? null : _c;
|
|
10415
|
+
return ReactDOM.createPortal(jsxRuntime.jsxs("div", __assign({ className: "full-screen-modal__body-container ".concat(className) }, { children: [this.props.children, typeof onHide === 'function' && (jsxRuntime.jsx("div", __assign({ className: "close-btn icon-dim-24", onClick: function (e) { return onHide(false); }, "data-testid": "opaque-modal-close" }, { children: jsxRuntime.jsx("img", { className: "close-img", src: close, alt: "close" }) })))] })), document.getElementById('full-screen-modal'));
|
|
10440
10416
|
};
|
|
10441
10417
|
return OpaqueModal;
|
|
10442
10418
|
}(React.Component));
|
|
@@ -10455,12 +10431,12 @@ var VisibleModal2 = /** @class */ (function (_super) {
|
|
|
10455
10431
|
}
|
|
10456
10432
|
};
|
|
10457
10433
|
VisibleModal2.prototype.componentDidMount = function () {
|
|
10458
|
-
document.addEventListener(
|
|
10459
|
-
this.modalRef.classList.add(
|
|
10434
|
+
document.addEventListener('keydown', this.escFunction);
|
|
10435
|
+
this.modalRef.classList.add('show-with-bg');
|
|
10460
10436
|
};
|
|
10461
10437
|
VisibleModal2.prototype.componentWillUnmount = function () {
|
|
10462
|
-
document.removeEventListener(
|
|
10463
|
-
this.modalRef.classList.remove(
|
|
10438
|
+
document.removeEventListener('keydown', this.escFunction);
|
|
10439
|
+
this.modalRef.classList.remove('show-with-bg');
|
|
10464
10440
|
};
|
|
10465
10441
|
VisibleModal2.prototype.render = function () {
|
|
10466
10442
|
var _a;
|
|
@@ -10489,7 +10465,7 @@ function useBreadcrumbContext() {
|
|
|
10489
10465
|
return context;
|
|
10490
10466
|
}
|
|
10491
10467
|
|
|
10492
|
-
|
|
10468
|
+
React__namespace.createContext(null);
|
|
10493
10469
|
function useBreadcrumb(props, deps) {
|
|
10494
10470
|
var sep = (props === null || props === void 0 ? void 0 : props.sep) || '/';
|
|
10495
10471
|
deps = deps || [];
|
|
@@ -10533,7 +10509,7 @@ function useBreadcrumb(props, deps) {
|
|
|
10533
10509
|
? "".concat(prefix).concat(to)
|
|
10534
10510
|
: null,
|
|
10535
10511
|
name: typeof state.alias[name] === 'object'
|
|
10536
|
-
?
|
|
10512
|
+
? ((_d = state.alias[name]) === null || _d === void 0 ? void 0 : _d.component)
|
|
10537
10513
|
? state.alias[name].component
|
|
10538
10514
|
: null
|
|
10539
10515
|
: state.alias[name] || name,
|
|
@@ -10548,7 +10524,7 @@ var BreadCrumb = function (_a) {
|
|
|
10548
10524
|
var breadcrumbs = _a.breadcrumbs, _b = _a.sep, sep = _b === void 0 ? '/' : _b, _c = _a.className, className = _c === void 0 ? 'dc__devtron-breadcrumb__item' : _c;
|
|
10549
10525
|
var url = reactRouterDom.useRouteMatch().url;
|
|
10550
10526
|
var filteredCrumbs = breadcrumbs.filter(function (crumb) { return !!crumb.name; });
|
|
10551
|
-
return (jsxRuntime.jsx(
|
|
10527
|
+
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: filteredCrumbs.map(function (breadcrumb, idx) { return (jsxRuntime.jsxs(React__namespace.Fragment, { children: [jsxRuntime.jsx(ConditionalWrap, __assign({ condition: !!breadcrumb.to, wrap: function (children) { return (jsxRuntime.jsx(reactRouterDom.Link, __assign({ className: "".concat(url === breadcrumb.to ? 'active' : '', " ").concat(className, " ").concat(breadcrumb.className || ''), to: breadcrumb.to }, { children: children }))); } }, { children: breadcrumb.name })), idx + 1 !== filteredCrumbs.length && breadcrumb.name && (jsxRuntime.jsx("span", __assign({ className: "".concat(className, "__separator cn-5") }, { children: sep })))] }, idx)); }) }));
|
|
10552
10528
|
};
|
|
10553
10529
|
|
|
10554
10530
|
var RadioGroupContext = React.createContext({ name: '', value: '', disabled: false, onChange: function (event) { } });
|
|
@@ -10559,9 +10535,7 @@ var RadioGroupItem = /** @class */ (function (_super) {
|
|
|
10559
10535
|
}
|
|
10560
10536
|
RadioGroupItem.prototype.render = function () {
|
|
10561
10537
|
var _this = this;
|
|
10562
|
-
return (jsxRuntime.jsx(RadioGroupContext.Consumer, { children: function (context) {
|
|
10563
|
-
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("label", __assign({ className: (_this.props.disabled || context.disabled) ? 'form__radio-item disabled' : 'form__radio-item' }, { children: [jsxRuntime.jsx("input", { type: "radio", className: "form__checkbox", name: context.name, disabled: context.disabled || _this.props.disabled, onChange: context.onChange, value: _this.props.value, checked: context.value === _this.props.value, "data-testid": _this.props.dataTestId }), jsxRuntime.jsxs("span", __assign({ className: "form__radio-item-content", "data-testid": "".concat(_this.props.dataTestId, "-span") }, { children: [jsxRuntime.jsx("span", { className: "radio__button" }), jsxRuntime.jsx("span", __assign({ className: "radio__title" }, { children: _this.props.children }))] }))] })) }));
|
|
10564
|
-
} }));
|
|
10538
|
+
return (jsxRuntime.jsx(RadioGroupContext.Consumer, { children: function (context) { return (jsxRuntime.jsxs("label", __assign({ className: _this.props.disabled || context.disabled ? 'form__radio-item disabled' : 'form__radio-item' }, { children: [jsxRuntime.jsx("input", { type: "radio", className: "form__checkbox", name: context.name, disabled: context.disabled || _this.props.disabled, onChange: context.onChange, value: _this.props.value, checked: context.value === _this.props.value, "data-testid": _this.props.dataTestId }), jsxRuntime.jsxs("span", __assign({ className: "form__radio-item-content", "data-testid": "".concat(_this.props.dataTestId, "-span") }, { children: [jsxRuntime.jsx("span", { className: "radio__button" }), jsxRuntime.jsx("span", __assign({ className: "radio__title" }, { children: _this.props.children }))] }))] }))); } }));
|
|
10565
10539
|
};
|
|
10566
10540
|
return RadioGroupItem;
|
|
10567
10541
|
}(React.Component));
|
|
@@ -10581,23 +10555,23 @@ var RadioGroup$1 = /** @class */ (function (_super) {
|
|
|
10581
10555
|
return RadioGroup;
|
|
10582
10556
|
}(React.Component));
|
|
10583
10557
|
|
|
10584
|
-
var PopupContext =
|
|
10558
|
+
var PopupContext = React__namespace.createContext(null);
|
|
10585
10559
|
function usePopupContext() {
|
|
10586
|
-
var context =
|
|
10560
|
+
var context = React__namespace.useContext(PopupContext);
|
|
10587
10561
|
if (!context) {
|
|
10588
10562
|
throw new Error("Select compound components cannot be rendered outside popupmenup");
|
|
10589
10563
|
}
|
|
10590
10564
|
return context;
|
|
10591
10565
|
}
|
|
10592
|
-
function
|
|
10566
|
+
var PopupMenu = function (_a) {
|
|
10593
10567
|
var _b;
|
|
10594
10568
|
var _c = _a.children, children = _c === void 0 ? null : _c, _d = _a.onToggleCallback, onToggleCallback = _d === void 0 ? null : _d, _e = _a.autoClose, autoClose = _e === void 0 ? false : _e, _f = _a.autoPosition, autoPosition = _f === void 0 ? false : _f;
|
|
10595
|
-
var _g = __read(
|
|
10596
|
-
var _h = __read(
|
|
10597
|
-
var observer =
|
|
10598
|
-
var buttonRef =
|
|
10599
|
-
var buttonWidth =
|
|
10600
|
-
|
|
10569
|
+
var _g = __read(React__namespace.useState(null), 2), popupPosition = _g[0], setPopupPosition = _g[1];
|
|
10570
|
+
var _h = __read(React__namespace.useState(0), 2), opacity = _h[0], setOpacity = _h[1];
|
|
10571
|
+
var observer = React__namespace.useRef(null);
|
|
10572
|
+
var buttonRef = React__namespace.useRef(null);
|
|
10573
|
+
var buttonWidth = React__namespace.useRef(null);
|
|
10574
|
+
React__namespace.useEffect(function () {
|
|
10601
10575
|
observer.current = window.IntersectionObserver ? new IntersectionObserver(intersectionCallback, options) : null;
|
|
10602
10576
|
return function () {
|
|
10603
10577
|
if (observer && observer.current && observer.current.disconnect)
|
|
@@ -10691,17 +10665,17 @@ function PopupMenu(_a) {
|
|
|
10691
10665
|
initialiseButtonWidth: initialiseButtonWidth,
|
|
10692
10666
|
buttonWidth: buttonWidth,
|
|
10693
10667
|
} }, { children: children })));
|
|
10694
|
-
}
|
|
10695
|
-
function
|
|
10696
|
-
var _b = _a.children, children = _b === void 0 ? null : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, _d = _a.rootClassName, rootClassName = _d === void 0 ? '' : _d, _e = _a.tabIndex, tabIndex = _e === void 0 ? 0 : _e, _f = _a.onHover, onHover = _f === void 0 ? false : _f, _g = _a.isKebab, isKebab = _g === void 0 ? false : _g, _h = _a.dataTestId, dataTestId = _h === void 0 ?
|
|
10668
|
+
};
|
|
10669
|
+
var Button = function (_a) {
|
|
10670
|
+
var _b = _a.children, children = _b === void 0 ? null : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, _d = _a.rootClassName, rootClassName = _d === void 0 ? '' : _d, _e = _a.tabIndex, tabIndex = _e === void 0 ? 0 : _e, _f = _a.onHover, onHover = _f === void 0 ? false : _f, _g = _a.isKebab, isKebab = _g === void 0 ? false : _g, _h = _a.dataTestId, dataTestId = _h === void 0 ? '' : _h;
|
|
10697
10671
|
var _j = usePopupContext(), handleOpen = _j.handleOpen, popupPosition = _j.popupPosition; _j.buttonRef; var initialiseButtonWidth = _j.initialiseButtonWidth;
|
|
10698
10672
|
return (jsxRuntime.jsx("button", __assign({ ref: initialiseButtonWidth, type: "button", tabIndex: tabIndex, disabled: disabled, className: "".concat(rootClassName, " ").concat(popupPosition ? 'focused' : '', " ").concat(isKebab ? 'popup-button-kebab' : 'popup-button'), onMouseEnter: onHover ? (disabled ? null : handleOpen) : function () { }, onClick: disabled ? null : handleOpen, "data-testid": dataTestId }, { children: children })));
|
|
10699
|
-
}
|
|
10700
|
-
|
|
10673
|
+
};
|
|
10674
|
+
var Body$1 = function (_a) {
|
|
10701
10675
|
var _b = _a.children, children = _b === void 0 ? null : _b, _c = _a.rootClassName, rootClassName = _c === void 0 ? '' : _c, _d = _a.style, style = _d === void 0 ? {} : _d, _e = _a.autoWidth, autoWidth = _e === void 0 ? false : _e, _f = _a.preventWheelDisable, preventWheelDisable = _f === void 0 ? false : _f, noBackDrop = _a.noBackDrop;
|
|
10702
10676
|
var _g = usePopupContext(), handleClose = _g.handleClose, popupPosition = _g.popupPosition, opacity = _g.opacity, callbackRef = _g.callbackRef, buttonWidth = _g.buttonWidth;
|
|
10703
10677
|
return popupPosition ? (jsxRuntime.jsx(Modal, __assign({ callbackRef: callbackRef, onClick: handleClose, rootClassName: "".concat(rootClassName, " popup-body ").concat(!children ? 'popup-body--empty' : '', " ").concat(Object.keys(popupPosition).join(' ')), style: __assign(__assign(__assign(__assign({}, popupPosition), style), (autoWidth ? { width: buttonWidth.current } : {})), { opacity: opacity }), preventWheelDisable: preventWheelDisable, noBackDrop: noBackDrop }, { children: children }))) : null;
|
|
10704
|
-
}
|
|
10678
|
+
};
|
|
10705
10679
|
PopupMenu.Button = Button;
|
|
10706
10680
|
PopupMenu.Body = Body$1;
|
|
10707
10681
|
|
|
@@ -14744,7 +14718,7 @@ styleInject(css_248z$5);
|
|
|
14744
14718
|
|
|
14745
14719
|
// This component will handle some of the new tippy designs and interactions
|
|
14746
14720
|
// So this can be updated to support further for new features or interactions
|
|
14747
|
-
function
|
|
14721
|
+
var TippyCustomized = function (props) {
|
|
14748
14722
|
var tippyRef = React.useRef(null);
|
|
14749
14723
|
var _a = __read(React.useState(false), 2), showHeadingInfo = _a[0], setShowHeadingInfo = _a[1];
|
|
14750
14724
|
var isWhiteTheme = props.theme === exports.TippyTheme.white;
|
|
@@ -14773,16 +14747,15 @@ function TippyCustomized(props) {
|
|
|
14773
14747
|
};
|
|
14774
14748
|
var getTippyContent = function () {
|
|
14775
14749
|
var Icon = props.Icon, iconPath = props.iconPath, iconClass = props.iconClass, iconSize = props.iconSize, onImageLoadError = props.onImageLoadError, heading = props.heading, headingInfo = props.headingInfo, infoTextHeading = props.infoTextHeading, hideHeading = props.hideHeading, infoText = props.infoText, showCloseButton = props.showCloseButton, additionalContent = props.additionalContent, documentationLink = props.documentationLink, documentationLinkText = props.documentationLinkText;
|
|
14776
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [!hideHeading &&
|
|
14777
|
-
|
|
14778
|
-
|
|
14779
|
-
: 'pt-20 pb-12 pr-20 pl-20 cn-0 top') }, { children: [iconPath ? (jsxRuntime.jsx("img", { className: "icon-dim-".concat(iconSize || 20, " mr-6 ").concat(iconClass || ''), src: iconPath, alt: "Heading", onError: onImageLoadError })) : (Icon && (jsxRuntime.jsx("div", __assign({ className: "icon-dim-".concat(iconSize || 20, " mr-6") }, { children: jsxRuntime.jsx(Icon, { className: "icon-dim-".concat(iconSize || 20, " ").concat(iconClass || '') }) })))), heading && jsxRuntime.jsx("span", __assign({ className: "fs-14 fw-6 lh-20 ".concat(showCloseButton ? 'mr-6' : '') }, { children: heading })), headingInfo && (jsxRuntime.jsx("div", __assign({ className: "icon-dim-20 cursor", onClick: toggleHeadingInfo }, { children: jsxRuntime.jsx(SvgIcHelpOutline, { className: "icon-dim-20" }) }))), showCloseButton && (jsxRuntime.jsx("div", __assign({ className: "icon-dim-16 ml-auto" }, { children: jsxRuntime.jsx(SvgIcCross, { className: "icon-dim-16 cursor ".concat(isWhiteTheme ? 'fcn-9' : 'fcn-0'), onClick: closeTippy }) })))] })), showHeadingInfo && (jsxRuntime.jsxs("div", __assign({ className: "flex left top bcv-1 fs-13 fw-4 lh-20 pt-8 pb-8 ".concat(isWhiteTheme ? 'pl-12 pr-12' : 'pl-20 pr-20') }, { children: [jsxRuntime.jsx("div", __assign({ className: "icon-dim-20 mr-8" }, { children: jsxRuntime.jsx(SvgIcHelp, { className: "icon-dim-20 fcv-5" }) })), jsxRuntime.jsx("div", __assign({ className: "dc__word-break dc__hyphens-auto" }, { children: headingInfo }))] }))), infoTextHeading && (jsxRuntime.jsx("div", __assign({ className: "dc__word-break dc__hyphens-auto fs-14 fw-6 lh-20 ".concat(isWhiteTheme ? 'pl-12 pr-12' : 'pl-20 pr-20') }, { children: infoTextHeading }))), infoText && (jsxRuntime.jsx("div", __assign({ className: "dc__word-break dc__hyphens-auto fs-13 fw-4 lh-20 ".concat(isWhiteTheme
|
|
14750
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [!hideHeading && (jsxRuntime.jsxs("div", __assign({ className: "dc__word-break dc__hyphens-auto flex left ".concat(isWhiteTheme
|
|
14751
|
+
? "p-12 cn-9 ".concat(props.noHeadingBorder ? '' : 'dc__border-bottom-n1')
|
|
14752
|
+
: 'pt-20 pb-12 pr-20 pl-20 cn-0 top') }, { children: [iconPath ? (jsxRuntime.jsx("img", { className: "icon-dim-".concat(iconSize || 20, " mr-6 ").concat(iconClass || ''), src: iconPath, alt: "Heading", onError: onImageLoadError })) : (Icon && (jsxRuntime.jsx("div", __assign({ className: "icon-dim-".concat(iconSize || 20, " mr-6") }, { children: jsxRuntime.jsx(Icon, { className: "icon-dim-".concat(iconSize || 20, " ").concat(iconClass || '') }) })))), heading && (jsxRuntime.jsx("span", __assign({ className: "fs-14 fw-6 lh-20 ".concat(showCloseButton ? 'mr-6' : '') }, { children: heading }))), headingInfo && (jsxRuntime.jsx("div", __assign({ className: "icon-dim-20 cursor", onClick: toggleHeadingInfo }, { children: jsxRuntime.jsx(SvgIcHelpOutline, { className: "icon-dim-20" }) }))), showCloseButton && (jsxRuntime.jsx("div", __assign({ className: "icon-dim-16 ml-auto" }, { children: jsxRuntime.jsx(SvgIcCross, { className: "icon-dim-16 cursor ".concat(isWhiteTheme ? 'fcn-9' : 'fcn-0'), onClick: closeTippy }) })))] }))), showHeadingInfo && (jsxRuntime.jsxs("div", __assign({ className: "flex left top bcv-1 fs-13 fw-4 lh-20 pt-8 pb-8 ".concat(isWhiteTheme ? 'pl-12 pr-12' : 'pl-20 pr-20') }, { children: [jsxRuntime.jsx("div", __assign({ className: "icon-dim-20 mr-8" }, { children: jsxRuntime.jsx(SvgIcHelp, { className: "icon-dim-20 fcv-5" }) })), jsxRuntime.jsx("div", __assign({ className: "dc__word-break dc__hyphens-auto" }, { children: headingInfo }))] }))), infoTextHeading && (jsxRuntime.jsx("div", __assign({ className: "dc__word-break dc__hyphens-auto fs-14 fw-6 lh-20 ".concat(isWhiteTheme ? 'pl-12 pr-12' : 'pl-20 pr-20') }, { children: infoTextHeading }))), infoText && (jsxRuntime.jsx("div", __assign({ className: "dc__word-break dc__hyphens-auto fs-13 fw-4 lh-20 ".concat(isWhiteTheme
|
|
14780
14753
|
? 'p-12'
|
|
14781
14754
|
: "pl-20 pr-20 pt-4 ".concat(additionalContent && documentationLink ? 'pb-12' : 'pb-20')) }, { children: infoText }))), additionalContent, documentationLink && (jsxRuntime.jsx("div", __assign({ className: "pl-12 pb-12" }, { children: jsxRuntime.jsx("a", __assign({ href: documentationLink, target: "_blank", rel: "noreferrer noopener", className: "fs-13 cb-5", onClick: closeTippy }, { children: documentationLinkText || 'Learn more' })) })))] }));
|
|
14782
14755
|
};
|
|
14783
14756
|
var className = props.className, placement = props.placement, arrow = props.arrow, interactive = props.interactive, showOnCreate = props.showOnCreate, trigger = props.trigger, animation = props.animation, duration = props.duration, children = props.children;
|
|
14784
14757
|
return (jsxRuntime.jsx(Tippy, __assign({ className: "".concat(isWhiteTheme ? 'tippy-white-container default-white' : 'tippy-black-container default-black', " no-content-padding tippy-shadow ").concat(className), arrow: arrow || false, interactive: interactive || false, placement: placement || 'top', content: getTippyContent(), trigger: trigger || 'mouseenter', onMount: onTippyMount, onClickOutside: closeTippy, showOnCreate: showOnCreate || false, animation: animation || 'fade', duration: duration || 300, visible: props.visible }, { children: children })));
|
|
14785
|
-
}
|
|
14758
|
+
};
|
|
14786
14759
|
|
|
14787
14760
|
var _path$9, _circle, _path2$1;
|
|
14788
14761
|
function _extends$h() { _extends$h = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$h.apply(this, arguments); }
|
|
@@ -14815,10 +14788,8 @@ var SvgInjectTag = function SvgInjectTag(props) {
|
|
|
14815
14788
|
|
|
14816
14789
|
function PropagateTagInfo(_a) {
|
|
14817
14790
|
var isCreateApp = _a.isCreateApp;
|
|
14818
|
-
var additionalInfo = function () {
|
|
14819
|
-
|
|
14820
|
-
};
|
|
14821
|
-
return (jsxRuntime.jsx(TippyCustomized, __assign({ theme: exports.TippyTheme.white, className: "w-300", placement: "top", Icon: SvgInjectTag, heading: 'Propagate tags to K8s resources', infoText: "", additionalContent: additionalInfo(), showCloseButton: true, trigger: "click", interactive: true, documentationLink: isCreateApp ? DOCUMENTATION.APP_TAGS : DOCUMENTATION.APP_OVERVIEW_TAGS, documentationLinkText: "View Documentation" }, { children: jsxRuntime.jsxs("div", __assign({ className: "flexbox cursor" }, { children: [jsxRuntime.jsx(SvgInjectTag, { className: "icon-dim-16 mt-2 mr-4" }), jsxRuntime.jsx("span", { children: "Propagate tags" }), jsxRuntime.jsx(SvgIcHelpOutline, { className: "icon-dim-16 mt-2 ml-4" })] })) })));
|
|
14791
|
+
var additionalInfo = function () { return (jsxRuntime.jsxs("div", __assign({ className: "p-12 fs-13" }, { children: [jsxRuntime.jsxs("div", __assign({ className: "mb-20" }, { children: [jsxRuntime.jsxs("span", __assign({ className: "flex left" }, { children: ["Add a tag and click on the", jsxRuntime.jsx(SvgInjectTag, { className: "icon-dim-16 ml-4 mr-4" }), "icon to"] })), "propagate tags as labels to Kubernetes resources"] })), jsxRuntime.jsx("div", { children: "Use these tags to filter/identify resources via CLI or in other Kubernetes tools." })] }))); };
|
|
14792
|
+
return (jsxRuntime.jsx(TippyCustomized, __assign({ theme: exports.TippyTheme.white, className: "w-300", placement: "top", Icon: SvgInjectTag, heading: "Propagate tags to K8s resources", infoText: "", additionalContent: additionalInfo(), showCloseButton: true, trigger: "click", interactive: true, documentationLink: isCreateApp ? DOCUMENTATION.APP_TAGS : DOCUMENTATION.APP_OVERVIEW_TAGS, documentationLinkText: "View Documentation" }, { children: jsxRuntime.jsxs("div", __assign({ className: "flexbox cursor" }, { children: [jsxRuntime.jsx(SvgInjectTag, { className: "icon-dim-16 mt-2 mr-4" }), jsxRuntime.jsx("span", { children: "Propagate tags" }), jsxRuntime.jsx(SvgIcHelpOutline, { className: "icon-dim-16 mt-2 ml-4" })] })) })));
|
|
14822
14793
|
}
|
|
14823
14794
|
|
|
14824
14795
|
var _path$8;
|
|
@@ -14836,7 +14807,7 @@ var SvgIcInfoOutlined = function SvgIcInfoOutlined(props) {
|
|
|
14836
14807
|
})));
|
|
14837
14808
|
};
|
|
14838
14809
|
|
|
14839
|
-
function
|
|
14810
|
+
var ResizableTagTextArea = function (_a) {
|
|
14840
14811
|
var className = _a.className, minHeight = _a.minHeight, maxHeight = _a.maxHeight, value = _a.value, onChange = _a.onChange, onBlur = _a.onBlur, onFocus = _a.onFocus, placeholder = _a.placeholder, tabIndex = _a.tabIndex, refVar = _a.refVar, dependentRef = _a.dependentRef, dataTestId = _a.dataTestId, handleKeyDown = _a.handleKeyDown;
|
|
14841
14812
|
var _b = __read(React.useState(''), 2), text = _b[0], setText = _b[1];
|
|
14842
14813
|
React.useEffect(function () {
|
|
@@ -14849,9 +14820,9 @@ function ResizableTagTextArea(_a) {
|
|
|
14849
14820
|
var reInitHeight = function () {
|
|
14850
14821
|
if (document.activeElement !== refVar.current)
|
|
14851
14822
|
return;
|
|
14852
|
-
refVar.current.style.height = minHeight
|
|
14823
|
+
refVar.current.style.height = "".concat(minHeight, "px");
|
|
14853
14824
|
if (dependentRef) {
|
|
14854
|
-
dependentRef.current.style.height = minHeight
|
|
14825
|
+
dependentRef.current.style.height = "".concat(minHeight, "px");
|
|
14855
14826
|
}
|
|
14856
14827
|
var nextHeight = refVar.current.scrollHeight;
|
|
14857
14828
|
if (dependentRef && nextHeight < dependentRef.current.scrollHeight) {
|
|
@@ -14863,16 +14834,16 @@ function ResizableTagTextArea(_a) {
|
|
|
14863
14834
|
if (maxHeight && nextHeight > maxHeight) {
|
|
14864
14835
|
nextHeight = maxHeight;
|
|
14865
14836
|
}
|
|
14866
|
-
refVar.current.style.height = nextHeight
|
|
14837
|
+
refVar.current.style.height = "".concat(nextHeight, "px");
|
|
14867
14838
|
if (dependentRef) {
|
|
14868
|
-
dependentRef.current.style.height = nextHeight
|
|
14839
|
+
dependentRef.current.style.height = "".concat(nextHeight, "px");
|
|
14869
14840
|
}
|
|
14870
14841
|
};
|
|
14871
14842
|
useThrottledEffect(reInitHeight, 500, [text]);
|
|
14872
14843
|
var handleOnBlur = function (event) {
|
|
14873
|
-
refVar.current.style.height = minHeight
|
|
14844
|
+
refVar.current.style.height = "".concat(minHeight, "px");
|
|
14874
14845
|
if (dependentRef) {
|
|
14875
|
-
dependentRef.current.style.height = minHeight
|
|
14846
|
+
dependentRef.current.style.height = "".concat(minHeight, "px");
|
|
14876
14847
|
}
|
|
14877
14848
|
onBlur && onBlur(event);
|
|
14878
14849
|
};
|
|
@@ -14881,7 +14852,7 @@ function ResizableTagTextArea(_a) {
|
|
|
14881
14852
|
onFocus && onFocus(event);
|
|
14882
14853
|
};
|
|
14883
14854
|
return (jsxRuntime.jsx("textarea", { rows: 1, ref: refVar, value: text, placeholder: placeholder, className: "".concat(className || '', " lh-20"), style: { resize: 'none' }, onChange: handleChange, onBlur: handleOnBlur, onFocus: handleOnFocus, tabIndex: tabIndex, "data-testid": dataTestId, onKeyDown: handleKeyDown }));
|
|
14884
|
-
}
|
|
14855
|
+
};
|
|
14885
14856
|
|
|
14886
14857
|
var validateTagValue = function (value) {
|
|
14887
14858
|
var errorList = [];
|
|
@@ -14906,28 +14877,26 @@ var ValidationRules = /** @class */ (function () {
|
|
|
14906
14877
|
if (!key) {
|
|
14907
14878
|
errorList.push('Key is required');
|
|
14908
14879
|
}
|
|
14909
|
-
else {
|
|
14910
|
-
|
|
14911
|
-
|
|
14912
|
-
|
|
14913
|
-
|
|
14914
|
-
|
|
14915
|
-
|
|
14916
|
-
|
|
14917
|
-
|
|
14918
|
-
|
|
14919
|
-
|
|
14920
|
-
errorList.push('Prefix: Can be max 253 characters');
|
|
14921
|
-
}
|
|
14922
|
-
var validPrefix = PATTERNS.KUBERNETES_KEY_PREFIX.test(prefix);
|
|
14923
|
-
if (!validPrefix) {
|
|
14924
|
-
errorList.push('Prefix: Must be a DNS subdomain (a series of DNS labels separated by dots (.)');
|
|
14925
|
-
}
|
|
14880
|
+
else if (!key.startsWith('devtron.ai/')) {
|
|
14881
|
+
var re = new RegExp('/', 'g');
|
|
14882
|
+
var noOfSlashInKey = (_a = key.match(re)) === null || _a === void 0 ? void 0 : _a.length;
|
|
14883
|
+
if (noOfSlashInKey > 1) {
|
|
14884
|
+
errorList.push('Key: Max 1 ( / ) allowed');
|
|
14885
|
+
}
|
|
14886
|
+
else if (noOfSlashInKey === 1) {
|
|
14887
|
+
var _b = __read(key.split('/'), 2), prefix = _b[0], name_1 = _b[1];
|
|
14888
|
+
errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(name_1).map(function (error) { return "Name: ".concat(error); })), false));
|
|
14889
|
+
if (prefix.length > 253) {
|
|
14890
|
+
errorList.push('Prefix: Can be max 253 characters');
|
|
14926
14891
|
}
|
|
14927
|
-
|
|
14928
|
-
|
|
14892
|
+
var validPrefix = PATTERNS.KUBERNETES_KEY_PREFIX.test(prefix);
|
|
14893
|
+
if (!validPrefix) {
|
|
14894
|
+
errorList.push('Prefix: Must be a DNS subdomain (a series of DNS labels separated by dots (.)');
|
|
14929
14895
|
}
|
|
14930
14896
|
}
|
|
14897
|
+
else {
|
|
14898
|
+
errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(key).map(function (error) { return "Name: ".concat(error); })), false));
|
|
14899
|
+
}
|
|
14931
14900
|
}
|
|
14932
14901
|
return { isValid: errorList.length === 0, messages: errorList };
|
|
14933
14902
|
};
|
|
@@ -14936,10 +14905,8 @@ var ValidationRules = /** @class */ (function () {
|
|
|
14936
14905
|
if (!value) {
|
|
14937
14906
|
errorList.push('Value is required');
|
|
14938
14907
|
}
|
|
14939
|
-
else {
|
|
14940
|
-
|
|
14941
|
-
errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(value)), false));
|
|
14942
|
-
}
|
|
14908
|
+
else if (!key.startsWith('devtron.ai/')) {
|
|
14909
|
+
errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(value)), false));
|
|
14943
14910
|
}
|
|
14944
14911
|
return { isValid: errorList.length === 0, messages: errorList };
|
|
14945
14912
|
};
|
|
@@ -15010,12 +14977,8 @@ var TagLabelValueSelector = function (_a) {
|
|
|
15010
14977
|
}
|
|
15011
14978
|
return null;
|
|
15012
14979
|
};
|
|
15013
|
-
var option = function (tag, index) {
|
|
15014
|
-
|
|
15015
|
-
};
|
|
15016
|
-
var optionWithTippy = function (tag, index) {
|
|
15017
|
-
return (jsxRuntime.jsx(Tippy, __assign({ className: "default-tt", arrow: false, placement: "right", content: jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", __assign({ className: "mb-10 fs-12 fw-6 cn-0 dc__break-word" }, { children: tag.label })), jsxRuntime.jsx("div", __assign({ className: "fs-12 fw-4 cn-0 dc__break-word" }, { children: tag.description }))] }) }, { children: option(tag, index) })));
|
|
15018
|
-
};
|
|
14980
|
+
var option = function (tag, index) { return (jsxRuntime.jsx("div", __assign({ "data-key": tag.label, "data-propagate": tag.propagate, className: "dc__hover-n50 dc__ellipsis-right lh-20 fs-13 fw-4 pt-6 pr-8 pb-6 pl-8 cursor", onClick: onSelectValue, "data-testid": "tag-label-value-".concat(index) }, { children: tag.label }), "".concat(tag.value, "-").concat(index))); };
|
|
14981
|
+
var optionWithTippy = function (tag, index) { return (jsxRuntime.jsx(Tippy, __assign({ className: "default-tt", arrow: false, placement: "right", content: jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", __assign({ className: "mb-10 fs-12 fw-6 cn-0 dc__break-word" }, { children: tag.label })), jsxRuntime.jsx("div", __assign({ className: "fs-12 fw-4 cn-0 dc__break-word" }, { children: tag.description }))] }) }, { children: option(tag, index) }))); };
|
|
15019
14982
|
var renderSuggestions = function () {
|
|
15020
14983
|
if (tagOptions === null || tagOptions === void 0 ? void 0 : tagOptions.length) {
|
|
15021
14984
|
var filteredTags = tagOptions.filter(function (tag) { return tag.label.indexOf(selectedValue) >= 0; });
|
|
@@ -15060,7 +15023,7 @@ var TagDetails = function (_a) {
|
|
|
15060
15023
|
}
|
|
15061
15024
|
setTagData(index, _tagData);
|
|
15062
15025
|
};
|
|
15063
|
-
return (jsxRuntime.jsxs("div", __assign({ className: "flexbox mb-8" }, { children: [jsxRuntime.jsx("div", __assign({ className: "dc__border h-30 pl-4 pr-4 br-4 mr-8 pointer ".concat(tagData.propagate ? 'bcn-7' : '', " ").concat(tagData.key.startsWith(
|
|
15026
|
+
return (jsxRuntime.jsxs("div", __assign({ className: "flexbox mb-8" }, { children: [jsxRuntime.jsx("div", __assign({ className: "dc__border h-30 pl-4 pr-4 br-4 mr-8 pointer ".concat(tagData.propagate ? 'bcn-7' : '', " ").concat(tagData.key.startsWith('devtron.ai/') ? 'cursor-not-allowed bcn-1' : ''), onClick: propagateTagToResource, "data-testid": "propagate-tag-".concat(index) }, { children: jsxRuntime.jsx(SvgInjectTag, { className: "icon-dim-20 mt-4 ".concat(tagData.propagate ? 'scn-0' : '') }) })), jsxRuntime.jsx(TagLabelValueSelector, { selectedTagIndex: index, tagData: tagData, setTagData: setTagData, tagInputType: exports.KEY_VALUE.KEY, placeholder: "Enter key", tabIndex: tabIndex - 1, refVar: keyRef, dependentRef: valueRef, tagOptions: suggestedTagsOptions }), jsxRuntime.jsx(TagLabelValueSelector, { selectedTagIndex: index, tagData: tagData, setTagData: setTagData, tagInputType: exports.KEY_VALUE.VALUE, placeholder: "Enter value", tabIndex: tabIndex, refVar: valueRef, dependentRef: keyRef }), jsxRuntime.jsx("div", __assign({ className: "dc__border pl-4 pr-4 dc__right-radius-4 pointer flex top", onClick: deleteTag, "data-testid": "delete-tag-".concat(index) }, { children: jsxRuntime.jsx(SvgIcCross, { className: "icon-dim-20 mt-4" }) }))] })));
|
|
15064
15027
|
};
|
|
15065
15028
|
|
|
15066
15029
|
var _path$7;
|
|
@@ -15083,7 +15046,7 @@ var TagLabelSelect = function (_a) {
|
|
|
15083
15046
|
var setTagData = function (index, tagValue) {
|
|
15084
15047
|
var _tags = __spreadArray([], __read(labelTags), false);
|
|
15085
15048
|
var _tagValue = tagValue;
|
|
15086
|
-
if (_tagValue.key.startsWith(
|
|
15049
|
+
if (_tagValue.key.startsWith('devtron.ai/')) {
|
|
15087
15050
|
_tagValue.propagate = false;
|
|
15088
15051
|
}
|
|
15089
15052
|
_tags[index] = _tagValue;
|
|
@@ -15102,22 +15065,22 @@ var TagLabelSelect = function (_a) {
|
|
|
15102
15065
|
return (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs("div", __assign({ className: "flexbox dc__content-space mb-8" }, { children: [jsxRuntime.jsx("span", { children: "Tags" }), jsxRuntime.jsx(PropagateTagInfo, { isCreateApp: isCreateApp })] })), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs("div", __assign({ className: "dc_width-max-content cb-5 fw-6 fs-13 flexbox mr-20 mb-8 cursor", onClick: addNewTag, "data-testid": "add-tag-button" }, { children: [jsxRuntime.jsx(SvgIcAdd, { className: "icon-dim-20 fcb-5" }), " Add tag"] })), jsxRuntime.jsx("div", __assign({ className: "mb-8", "data-testid": "tag-rows-container" }, { children: labelTags === null || labelTags === void 0 ? void 0 : labelTags.map(function (tagData, index) { return (jsxRuntime.jsx(TagDetails, { index: index, tagData: tagData, setTagData: setTagData, removeTag: removeTag, tabIndex: tabIndex + (index + 2) }, "tag-".concat(index))); }) }))] })] }));
|
|
15103
15066
|
};
|
|
15104
15067
|
|
|
15105
|
-
function
|
|
15068
|
+
var ConfirmationDialog = function (_a) {
|
|
15106
15069
|
var _b = _a.className, className = _b === void 0 ? '' : _b, children = _a.children;
|
|
15107
15070
|
return (jsxRuntime.jsx(VisibleModal2, __assign({ className: "confirmation-dialog" }, { children: jsxRuntime.jsx("div", __assign({ className: "confirmation-dialog__body ".concat(className) }, { children: children })) })));
|
|
15108
|
-
}
|
|
15109
|
-
function
|
|
15071
|
+
};
|
|
15072
|
+
var Icon = function (_a) {
|
|
15110
15073
|
var src = _a.src, _b = _a.className, className = _b === void 0 ? '' : _b;
|
|
15111
|
-
return jsxRuntime.jsx("img", { src: src, className: "confirmation-dialog__icon ".concat(className), alt: "" });
|
|
15112
|
-
}
|
|
15113
|
-
function
|
|
15074
|
+
return (jsxRuntime.jsx("img", { src: src, className: "confirmation-dialog__icon ".concat(className), alt: "" }));
|
|
15075
|
+
};
|
|
15076
|
+
var Body = function (_a) {
|
|
15114
15077
|
var title = _a.title, _b = _a.subtitle, subtitle = _b === void 0 ? null : _b, _c = _a.children, children = _c === void 0 ? null : _c;
|
|
15115
15078
|
return (jsxRuntime.jsxs("div", __assign({ className: "flex left column " }, { children: [jsxRuntime.jsx("h3", __assign({ className: "confirmation-dialog__title lh-1-5 dc__break-word w-100" }, { children: title })), subtitle && jsxRuntime.jsx("div", __assign({ className: "confirmation-dialog__subtitle" }, { children: subtitle })), children] })));
|
|
15116
|
-
}
|
|
15117
|
-
function
|
|
15079
|
+
};
|
|
15080
|
+
var ButtonGroup = function (_a) {
|
|
15118
15081
|
var children = _a.children;
|
|
15119
|
-
return jsxRuntime.jsx("div", __assign({ className: "flex right confirmation-dialog__button-group" }, { children: children }));
|
|
15120
|
-
}
|
|
15082
|
+
return (jsxRuntime.jsx("div", __assign({ className: "flex right confirmation-dialog__button-group" }, { children: children })));
|
|
15083
|
+
};
|
|
15121
15084
|
ConfirmationDialog.Icon = Icon;
|
|
15122
15085
|
ConfirmationDialog.Body = Body;
|
|
15123
15086
|
ConfirmationDialog.ButtonGroup = ButtonGroup;
|
|
@@ -15139,12 +15102,10 @@ var DeleteDialog = function (props) {
|
|
|
15139
15102
|
};
|
|
15140
15103
|
return (jsxRuntime.jsxs(ConfirmationDialog, __assign({ className: "confirmation-dialog__body--w-400" }, { children: [jsxRuntime.jsx(ConfirmationDialog.Icon, { src: warn }), jsxRuntime.jsx(ConfirmationDialog.Body, __assign({ title: props.title }, { children: jsxRuntime.jsxs("div", __assign({ className: "fs-13 cn-7 lh-1-54 w-100" }, { children: [props.description ? props.description : null, props.children] })) })), jsxRuntime.jsx(ConfirmationDialog.ButtonGroup, { children: jsxRuntime.jsxs("div", __assign({ className: "flex right" }, { children: [jsxRuntime.jsx("button", __assign({ type: "button", className: "cta cancel cta-cd-delete-modal ml-16", onClick: handleModalClose, disabled: props.apiCallInProgress, "data-testid": "dialog-cancel" }, { children: "Cancel" })), jsxRuntime.jsx("button", __assign({ type: "button", className: "cta delete cta-cd-delete-modal ml-16", onClick: handleDelete, disabled: props.apiCallInProgress || props.disabled, "data-testid": "dialog-delete" }, { children: props.apiCallInProgress ? (jsxRuntime.jsx(Progressing, {})) : ("".concat(props.deletePrefix || '').concat(props.buttonPrimaryText ? props.buttonPrimaryText : 'Delete').concat(props.deletePostfix || '')) }))] })) })] })));
|
|
15141
15104
|
};
|
|
15142
|
-
function
|
|
15143
|
-
return jsxRuntime.jsx(jsxRuntime.Fragment, { children: props.children });
|
|
15144
|
-
}
|
|
15105
|
+
var DeleteDialogDescription = function (props) { return jsxRuntime.jsx(jsxRuntime.Fragment, { children: props.children }); };
|
|
15145
15106
|
DeleteDialog.Description = DeleteDialogDescription;
|
|
15146
15107
|
|
|
15147
|
-
//TODO: may not need context
|
|
15108
|
+
// TODO: may not need context
|
|
15148
15109
|
var DialogFormContext = React.createContext({ title: '', isLoading: false, close: function (event) { }, onSave: function (event) { } });
|
|
15149
15110
|
var DialogForm = /** @class */ (function (_super) {
|
|
15150
15111
|
__extends(DialogForm, _super);
|
|
@@ -15171,14 +15132,12 @@ var DialogForm = /** @class */ (function (_super) {
|
|
|
15171
15132
|
isLoading: this.props.isLoading,
|
|
15172
15133
|
close: this.props.close,
|
|
15173
15134
|
onSave: this.props.onSave,
|
|
15174
|
-
} }, { children: jsxRuntime.jsx(VisibleModal, __assign({ className: "" }, { children: jsxRuntime.jsxs("div", __assign({ className: "modal__body ".concat(this.props.className || '') }, { children: [jsxRuntime.jsxs("div", __assign({ className: "modal__header ".concat(this.props.headerClassName || '') }, { children: [jsxRuntime.jsx("h1", __assign({ className: "modal__title" }, { children: this.props.title })), jsxRuntime.jsxs("button", __assign({ type: "button", className: "dc__transparent", onClick: this.props.close }, { children: [' ', jsxRuntime.jsx("img", { src: close, alt: "close" })] }))] })), jsxRuntime.jsx(DialogFormContext.Consumer, { children: function (context) {
|
|
15175
|
-
|
|
15176
|
-
|
|
15177
|
-
|
|
15178
|
-
|
|
15179
|
-
|
|
15180
|
-
} }, { children: _this.props.children })));
|
|
15181
|
-
} })] })) })) })));
|
|
15135
|
+
} }, { children: jsxRuntime.jsx(VisibleModal, __assign({ className: "" }, { children: jsxRuntime.jsxs("div", __assign({ className: "modal__body ".concat(this.props.className || '') }, { children: [jsxRuntime.jsxs("div", __assign({ className: "modal__header ".concat(this.props.headerClassName || '') }, { children: [jsxRuntime.jsx("h1", __assign({ className: "modal__title" }, { children: this.props.title })), jsxRuntime.jsxs("button", __assign({ type: "button", className: "dc__transparent", onClick: this.props.close }, { children: [' ', jsxRuntime.jsx("img", { src: close, alt: "close" })] }))] })), jsxRuntime.jsx(DialogFormContext.Consumer, { children: function (context) { return (jsxRuntime.jsx("form", __assign({ noValidate: true, onSubmit: function (e) {
|
|
15136
|
+
e.preventDefault();
|
|
15137
|
+
if (!context.isLoading) {
|
|
15138
|
+
context.onSave(e);
|
|
15139
|
+
}
|
|
15140
|
+
} }, { children: _this.props.children }))); } })] })) })) })));
|
|
15182
15141
|
};
|
|
15183
15142
|
return DialogForm;
|
|
15184
15143
|
}(React.Component));
|
|
@@ -15189,9 +15148,7 @@ var DialogFormSubmit = /** @class */ (function (_super) {
|
|
|
15189
15148
|
}
|
|
15190
15149
|
DialogFormSubmit.prototype.render = function () {
|
|
15191
15150
|
var _this = this;
|
|
15192
|
-
return (jsxRuntime.jsx(DialogFormContext.Consumer, { children: function (context) {
|
|
15193
|
-
return (jsxRuntime.jsx("button", __assign({ type: "submit", className: "cta dc__align-right", tabIndex: _this.props.tabIndex }, { children: context.isLoading ? jsxRuntime.jsx(Progressing, {}) : _this.props.children })));
|
|
15194
|
-
} }));
|
|
15151
|
+
return (jsxRuntime.jsx(DialogFormContext.Consumer, { children: function (context) { return (jsxRuntime.jsx("button", __assign({ type: "submit", className: "cta dc__align-right", tabIndex: _this.props.tabIndex }, { children: context.isLoading ? jsxRuntime.jsx(Progressing, {}) : _this.props.children }))); } }));
|
|
15195
15152
|
};
|
|
15196
15153
|
return DialogFormSubmit;
|
|
15197
15154
|
}(React.Component));
|
|
@@ -18041,14 +17998,14 @@ function _objectWithoutProperties(source, excluded) {
|
|
|
18041
17998
|
return target;
|
|
18042
17999
|
}
|
|
18043
18000
|
|
|
18044
|
-
function _typeof(
|
|
18001
|
+
function _typeof(o) {
|
|
18045
18002
|
"@babel/helpers - typeof";
|
|
18046
18003
|
|
|
18047
|
-
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (
|
|
18048
|
-
return typeof
|
|
18049
|
-
} : function (
|
|
18050
|
-
return
|
|
18051
|
-
}, _typeof(
|
|
18004
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
|
|
18005
|
+
return typeof o;
|
|
18006
|
+
} : function (o) {
|
|
18007
|
+
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
18008
|
+
}, _typeof(o);
|
|
18052
18009
|
}
|
|
18053
18010
|
|
|
18054
18011
|
function _classCallCheck(instance, Constructor) {
|
|
@@ -18057,20 +18014,20 @@ function _classCallCheck(instance, Constructor) {
|
|
|
18057
18014
|
}
|
|
18058
18015
|
}
|
|
18059
18016
|
|
|
18060
|
-
function
|
|
18061
|
-
if (
|
|
18062
|
-
var
|
|
18063
|
-
if (
|
|
18064
|
-
var
|
|
18065
|
-
if (
|
|
18017
|
+
function toPrimitive(t, r) {
|
|
18018
|
+
if ("object" != _typeof(t) || !t) return t;
|
|
18019
|
+
var e = t[Symbol.toPrimitive];
|
|
18020
|
+
if (void 0 !== e) {
|
|
18021
|
+
var i = e.call(t, r || "default");
|
|
18022
|
+
if ("object" != _typeof(i)) return i;
|
|
18066
18023
|
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
18067
18024
|
}
|
|
18068
|
-
return (
|
|
18025
|
+
return ("string" === r ? String : Number)(t);
|
|
18069
18026
|
}
|
|
18070
18027
|
|
|
18071
|
-
function
|
|
18072
|
-
var
|
|
18073
|
-
return _typeof(
|
|
18028
|
+
function toPropertyKey(t) {
|
|
18029
|
+
var i = toPrimitive(t, "string");
|
|
18030
|
+
return "symbol" == _typeof(i) ? i : String(i);
|
|
18074
18031
|
}
|
|
18075
18032
|
|
|
18076
18033
|
function _defineProperties(target, props) {
|
|
@@ -18079,7 +18036,7 @@ function _defineProperties(target, props) {
|
|
|
18079
18036
|
descriptor.enumerable = descriptor.enumerable || false;
|
|
18080
18037
|
descriptor.configurable = true;
|
|
18081
18038
|
if ("value" in descriptor) descriptor.writable = true;
|
|
18082
|
-
Object.defineProperty(target,
|
|
18039
|
+
Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
|
|
18083
18040
|
}
|
|
18084
18041
|
}
|
|
18085
18042
|
function _createClass(Constructor, protoProps, staticProps) {
|
|
@@ -18117,7 +18074,7 @@ function _inherits(subClass, superClass) {
|
|
|
18117
18074
|
}
|
|
18118
18075
|
|
|
18119
18076
|
function _defineProperty$1(obj, key, value) {
|
|
18120
|
-
key =
|
|
18077
|
+
key = toPropertyKey(key);
|
|
18121
18078
|
if (key in obj) {
|
|
18122
18079
|
Object.defineProperty(obj, key, {
|
|
18123
18080
|
value: value,
|
|
@@ -19675,31 +19632,31 @@ function _arrayWithHoles(arr) {
|
|
|
19675
19632
|
if (Array.isArray(arr)) return arr;
|
|
19676
19633
|
}
|
|
19677
19634
|
|
|
19678
|
-
function _iterableToArrayLimit(
|
|
19679
|
-
var
|
|
19680
|
-
if (null !=
|
|
19681
|
-
var
|
|
19682
|
-
|
|
19683
|
-
|
|
19684
|
-
|
|
19685
|
-
|
|
19686
|
-
|
|
19687
|
-
|
|
19635
|
+
function _iterableToArrayLimit(r, l) {
|
|
19636
|
+
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
19637
|
+
if (null != t) {
|
|
19638
|
+
var e,
|
|
19639
|
+
n,
|
|
19640
|
+
i,
|
|
19641
|
+
u,
|
|
19642
|
+
a = [],
|
|
19643
|
+
f = !0,
|
|
19644
|
+
o = !1;
|
|
19688
19645
|
try {
|
|
19689
|
-
if (
|
|
19690
|
-
if (Object(
|
|
19691
|
-
|
|
19692
|
-
} else for (; !(
|
|
19693
|
-
} catch (
|
|
19694
|
-
|
|
19646
|
+
if (i = (t = t.call(r)).next, 0 === l) {
|
|
19647
|
+
if (Object(t) !== t) return;
|
|
19648
|
+
f = !1;
|
|
19649
|
+
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
|
19650
|
+
} catch (r) {
|
|
19651
|
+
o = !0, n = r;
|
|
19695
19652
|
} finally {
|
|
19696
19653
|
try {
|
|
19697
|
-
if (!
|
|
19654
|
+
if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
|
|
19698
19655
|
} finally {
|
|
19699
|
-
if (
|
|
19656
|
+
if (o) throw n;
|
|
19700
19657
|
}
|
|
19701
19658
|
}
|
|
19702
|
-
return
|
|
19659
|
+
return a;
|
|
19703
19660
|
}
|
|
19704
19661
|
}
|
|
19705
19662
|
|
|
@@ -22690,35 +22647,31 @@ var MultiValueChipContainer = function (_a) {
|
|
|
22690
22647
|
var multiSelectStyles = {
|
|
22691
22648
|
control: function (base, state) { return (__assign(__assign({}, base), { cursor: state.isDisabled ? 'not-allowed' : 'normal', border: state.isFocused ? '1px solid #06c' : '1px solid #d6dbdf', boxShadow: 'none' })); },
|
|
22692
22649
|
menu: function (base, state) { return (__assign({}, base)); },
|
|
22693
|
-
option: function (base, state) {
|
|
22694
|
-
return __assign(__assign({}, base), { backgroundColor: state.isFocused ? 'var(--N100)' : 'white', color: 'var(--N900)', padding: '8px 12px' });
|
|
22695
|
-
},
|
|
22650
|
+
option: function (base, state) { return (__assign(__assign({}, base), { backgroundColor: state.isFocused ? 'var(--N100)' : 'white', color: 'var(--N900)', padding: '8px 12px' })); },
|
|
22696
22651
|
container: function (base, state) { return (__assign(__assign({}, base), { cursor: state.isDisabled ? 'not-allowed' : 'pointer' })); },
|
|
22697
22652
|
valueContainer: function (base, state) { return (__assign(__assign({}, base), { color: state.selectProps.menuIsOpen ? 'var(--N500)' : base.color })); },
|
|
22698
22653
|
};
|
|
22699
|
-
var CustomSelect = function (props) {
|
|
22700
|
-
return jsxRuntime.jsx(ReactSelect, __assign({}, props));
|
|
22701
|
-
};
|
|
22654
|
+
var CustomSelect = function (props) { return jsxRuntime.jsx(ReactSelect, __assign({}, props)); };
|
|
22702
22655
|
|
|
22703
22656
|
var css_248z$4 = ".info-bar-container .info_text .success {\n background-color: var(--G100);\n}\n.info-bar-container .warn {\n background: var(--Y100);\n border: solid var(--Y200);\n}\n.info-bar-container .warn .warning-icon path:nth-child(2) {\n fill: var(--Y700);\n}\n.info-bar-container .info_bar {\n background-color: var(--B100);\n border: 1px solid var(--B200);\n}\n.info-bar-container .error_bar {\n background-color: var(--R100);\n border: 1px solid var(--R200);\n}\n.info-bar-container .question-bar {\n background-color: var(--V100);\n border: 1px solid var(--V200);\n}";
|
|
22704
22657
|
styleInject(css_248z$4);
|
|
22705
22658
|
|
|
22706
|
-
function
|
|
22659
|
+
var InfoColourBar = function (_a) {
|
|
22707
22660
|
var message = _a.message, classname = _a.classname, Icon = _a.Icon, iconClass = _a.iconClass, iconSize = _a.iconSize, renderActionButton = _a.renderActionButton, linkText = _a.linkText, redirectLink = _a.redirectLink, linkOnClick = _a.linkOnClick, linkClass = _a.linkClass, internalLink = _a.internalLink, styles = _a.styles;
|
|
22708
22661
|
var renderLink = function () {
|
|
22709
22662
|
if (!linkText) {
|
|
22710
22663
|
return null;
|
|
22711
22664
|
}
|
|
22712
|
-
|
|
22665
|
+
if (redirectLink) {
|
|
22713
22666
|
if (internalLink) {
|
|
22714
22667
|
return (jsxRuntime.jsx(reactRouterDom.Link, __assign({ to: redirectLink, onClick: linkOnClick, "data-testid": "info-bar-internal-link", className: "cursor dc__link dc__underline-onhover mr-5" }, { children: linkText })));
|
|
22715
22668
|
}
|
|
22716
|
-
return (jsxRuntime.jsx("a", __assign({ href: redirectLink, target: "_blank", onClick: linkOnClick, "data-testid": "info-bar-redirectLink", className: "cursor dc__link dc__underline-onhover mr-5" }, { children: linkText })));
|
|
22669
|
+
return (jsxRuntime.jsx("a", __assign({ href: redirectLink, target: "_blank", onClick: linkOnClick, "data-testid": "info-bar-redirectLink", className: "cursor dc__link dc__underline-onhover mr-5", rel: "noreferrer" }, { children: linkText })));
|
|
22717
22670
|
}
|
|
22718
22671
|
return (linkOnClick && (jsxRuntime.jsx("div", __assign({ onClick: linkOnClick, className: "cursor dc__link dc__underline-onhover", "data-testid": "info-bar-linkText" }, { children: linkText }))));
|
|
22719
22672
|
};
|
|
22720
22673
|
return (jsxRuntime.jsx("div", __assign({ className: "info-bar-container" }, { children: jsxRuntime.jsxs("div", __assign({ className: "".concat(classname, " info_text flex dc__content-space pt-8 pb-8 pl-12 pr-12 br-4 top fs-13 fw-4"), style: styles }, { children: [jsxRuntime.jsxs("div", __assign({ className: "flex top ".concat(typeof renderActionButton === 'function' ? 'mr-5' : '') }, { children: [jsxRuntime.jsx("div", __assign({ className: "icon-dim-".concat(iconSize !== null && iconSize !== void 0 ? iconSize : '20', " mr-10") }, { children: jsxRuntime.jsx(Icon, { className: "icon-dim-".concat(iconSize !== null && iconSize !== void 0 ? iconSize : '20', " ").concat(iconClass || '', " mr-8") }) })), jsxRuntime.jsxs("div", __assign({ className: "info-bar-message-wrapper ".concat(linkClass || '') }, { children: [jsxRuntime.jsx("span", __assign({ className: linkText && redirectLink ? 'mr-5' : '' }, { children: message })), renderLink()] }))] })), typeof renderActionButton === 'function' && renderActionButton()] })) })));
|
|
22721
|
-
}
|
|
22674
|
+
};
|
|
22722
22675
|
|
|
22723
22676
|
var getTeamListMin = function () {
|
|
22724
22677
|
// ignore active field
|
|
@@ -22728,9 +22681,7 @@ var getTeamListMin = function () {
|
|
|
22728
22681
|
if (response && response.result && Array.isArray(response.result)) {
|
|
22729
22682
|
list = response.result;
|
|
22730
22683
|
}
|
|
22731
|
-
list = list.sort(function (a, b) {
|
|
22732
|
-
return sortCallback('name', a, b);
|
|
22733
|
-
});
|
|
22684
|
+
list = list.sort(function (a, b) { return sortCallback('name', a, b); });
|
|
22734
22685
|
return {
|
|
22735
22686
|
code: response.code,
|
|
22736
22687
|
status: response.status,
|
|
@@ -22756,9 +22707,7 @@ function setImageTags(request, pipelineId, artifactId) {
|
|
|
22756
22707
|
return post("".concat(ROUTES.IMAGE_TAGGING, "/").concat(pipelineId, "/").concat(artifactId), request);
|
|
22757
22708
|
}
|
|
22758
22709
|
var processURL = function (url, params) {
|
|
22759
|
-
var validParams = Object.keys(params).filter(function (key) {
|
|
22760
|
-
return params[key] != null;
|
|
22761
|
-
});
|
|
22710
|
+
var validParams = Object.keys(params).filter(function (key) { return params[key] != null; });
|
|
22762
22711
|
if (!validParams.length) {
|
|
22763
22712
|
return url;
|
|
22764
22713
|
}
|
|
@@ -22820,24 +22769,22 @@ var cdMaterialListModal = function (artifacts, offset, artifactId, artifactStatu
|
|
|
22820
22769
|
// It is going to be null but required in type so can't remove
|
|
22821
22770
|
lastExecution: material.lastExecution,
|
|
22822
22771
|
materialInfo: material.material_info
|
|
22823
|
-
? material.material_info.map(function (mat) {
|
|
22824
|
-
|
|
22825
|
-
|
|
22826
|
-
|
|
22827
|
-
|
|
22828
|
-
|
|
22829
|
-
|
|
22830
|
-
|
|
22831
|
-
|
|
22832
|
-
|
|
22833
|
-
|
|
22834
|
-
|
|
22835
|
-
|
|
22836
|
-
|
|
22837
|
-
|
|
22838
|
-
|
|
22839
|
-
};
|
|
22840
|
-
})
|
|
22772
|
+
? material.material_info.map(function (mat) { return ({
|
|
22773
|
+
modifiedTime: mat.modifiedTime
|
|
22774
|
+
? moment(mat.modifiedTime).format('ddd, DD MMM YYYY, hh:mm A')
|
|
22775
|
+
: '',
|
|
22776
|
+
commitLink: createGitCommitUrl(mat.url, mat.revision),
|
|
22777
|
+
author: mat.author || '',
|
|
22778
|
+
message: mat.message || '',
|
|
22779
|
+
revision: mat.revision || '',
|
|
22780
|
+
tag: mat.tag || '',
|
|
22781
|
+
webhookData: mat.webhookData || '',
|
|
22782
|
+
url: mat.url || '',
|
|
22783
|
+
branch: (material.ciConfigureSourceType === SourceTypeMap.WEBHOOK
|
|
22784
|
+
? material.ciConfigureSourceValue
|
|
22785
|
+
: mat.branch) || '',
|
|
22786
|
+
type: material.ciConfigureSourceType || '',
|
|
22787
|
+
}); })
|
|
22841
22788
|
: [],
|
|
22842
22789
|
filterState: filterState,
|
|
22843
22790
|
appliedFiltersTimestamp: (_b = material.appliedFiltersTimestamp) !== null && _b !== void 0 ? _b : '',
|
|
@@ -22896,9 +22843,7 @@ var processCDMaterialServiceResponse = function (cdMaterialsResult, stage, offse
|
|
|
22896
22843
|
var metaInfo = processCDMaterialsMetaInfo(cdMaterialsResult);
|
|
22897
22844
|
// TODO: On update of service would remove from here
|
|
22898
22845
|
var filteredMaterials = filter && filter === exports.CDMaterialFilterQuery.RESOURCE
|
|
22899
|
-
? materials.filter(function (material) {
|
|
22900
|
-
return material.filterState === exports.FilterStates.ALLOWED;
|
|
22901
|
-
})
|
|
22846
|
+
? materials.filter(function (material) { return material.filterState === exports.FilterStates.ALLOWED; })
|
|
22902
22847
|
: materials;
|
|
22903
22848
|
return __assign(__assign({ materials: filteredMaterials }, approvalInfo), metaInfo);
|
|
22904
22849
|
};
|
|
@@ -22929,27 +22874,27 @@ function extractImage(image) {
|
|
|
22929
22874
|
}
|
|
22930
22875
|
function createGitCommitUrl(url, revision) {
|
|
22931
22876
|
if (!url || !revision) {
|
|
22932
|
-
return
|
|
22877
|
+
return 'NA';
|
|
22933
22878
|
}
|
|
22934
|
-
if (url.indexOf(
|
|
22935
|
-
var urlpart = url.split(
|
|
22879
|
+
if (url.indexOf('gitlab') > 0 || url.indexOf('github') > 0 || url.indexOf('azure') > 0) {
|
|
22880
|
+
var urlpart = url.split('@');
|
|
22936
22881
|
if (urlpart.length > 1) {
|
|
22937
|
-
return "https://"
|
|
22882
|
+
return "https://".concat(urlpart[1].split('.git')[0], "/commit/").concat(revision);
|
|
22938
22883
|
}
|
|
22939
22884
|
if (urlpart.length == 1) {
|
|
22940
|
-
return urlpart[0].split(
|
|
22885
|
+
return "".concat(urlpart[0].split('.git')[0], "/commit/").concat(revision);
|
|
22941
22886
|
}
|
|
22942
22887
|
}
|
|
22943
|
-
if (url.indexOf(
|
|
22944
|
-
var urlpart = url.split(
|
|
22888
|
+
if (url.indexOf('bitbucket') > 0) {
|
|
22889
|
+
var urlpart = url.split('@');
|
|
22945
22890
|
if (urlpart.length > 1) {
|
|
22946
|
-
return "https://"
|
|
22891
|
+
return "https://".concat(urlpart[1].split('.git')[0], "/commits/").concat(revision);
|
|
22947
22892
|
}
|
|
22948
22893
|
if (urlpart.length == 1) {
|
|
22949
|
-
return urlpart[0].split(
|
|
22894
|
+
return "".concat(urlpart[0].split('.git')[0], "/commits/").concat(revision);
|
|
22950
22895
|
}
|
|
22951
22896
|
}
|
|
22952
|
-
return
|
|
22897
|
+
return 'NA';
|
|
22953
22898
|
}
|
|
22954
22899
|
|
|
22955
22900
|
/*
|
|
@@ -22969,7 +22914,7 @@ var Checkbox$1 = /** @class */ (function (_super) {
|
|
|
22969
22914
|
Checkbox.prototype.render = function () {
|
|
22970
22915
|
var _a;
|
|
22971
22916
|
var rootClassName = "".concat(this.props.rootClassName ? this.props.rootClassName : '');
|
|
22972
|
-
return (jsxRuntime.
|
|
22917
|
+
return (jsxRuntime.jsxs("label", __assign({ className: "dc__position-rel flex left cursor ".concat(rootClassName), onClick: (_a = this.props) === null || _a === void 0 ? void 0 : _a.onClick }, { children: [jsxRuntime.jsx("input", { type: "checkbox", className: "form__checkbox", disabled: this.props.disabled, value: this.props.value, onChange: this.props.onChange, tabIndex: this.props.tabIndex, checked: this.props.isChecked, id: this.props.id, "data-testid": this.props.dataTestId }), jsxRuntime.jsx("span", { className: "form__checkbox-container", "data-testid": "".concat(this.props.dataTestId, "-chk-span") }), jsxRuntime.jsx("span", __assign({ className: "form__checkbox-label" }, { children: this.props.children }))] })));
|
|
22973
22918
|
};
|
|
22974
22919
|
return Checkbox;
|
|
22975
22920
|
}(React.Component));
|
|
@@ -23010,23 +22955,21 @@ function ScanVulnerabilitiesTable(_a) {
|
|
|
23010
22955
|
window.open("https://cve.mitre.org/cgi-bin/cvename.cgi?name=".concat(vulnerability.name), '_blank');
|
|
23011
22956
|
} }, { children: [jsxRuntime.jsx("td", __assign({ className: "security-tab__cell-cve dc__cve-cell" }, { children: jsxRuntime.jsx("a", __assign({ href: "https://cve.mitre.org/cgi-bin/cvename.cgi?name=".concat(vulnerability.name), rel: "noopener noreferrer", target: "_blank" }, { children: vulnerability.name })) })), jsxRuntime.jsx("td", __assign({ className: "security-tab__cell-severity" }, { children: jsxRuntime.jsx("span", __assign({ className: "fill-".concat((_a = vulnerability.severity) === null || _a === void 0 ? void 0 : _a.toLowerCase()) }, { children: vulnerability.severity })) })), jsxRuntime.jsx("td", __assign({ className: "security-tab__cell-package" }, { children: vulnerability.package })), jsxRuntime.jsx("td", __assign({ className: "security-tab__cell-current-ver" }, { children: vulnerability.version })), jsxRuntime.jsx("td", __assign({ className: "security-tab__cell-fixed-ver" }, { children: vulnerability.fixedVersion })), jsxRuntime.jsx("td", __assign({ className: "security-tab__cell-policy security-tab__cell-policy--".concat((_b = vulnerability.policy) === null || _b === void 0 ? void 0 : _b.toLowerCase()) }, { children: (_c = vulnerability.policy) === null || _c === void 0 ? void 0 : _c.toLowerCase() }))] })));
|
|
23012
22957
|
};
|
|
23013
|
-
return (jsxRuntime.jsx("table", __assign({ className: "security-tab__table" }, { children: jsxRuntime.jsxs("tbody", { children: [jsxRuntime.jsxs("tr", __assign({ className: "security-tab__table-header" }, { children: [jsxRuntime.jsx("th", __assign({ className: "security-cell-header security-tab__cell-cve" }, { children: "CVE" })), jsxRuntime.jsx("th", __assign({ className: "security-cell-header security-tab__cell-severity" }, { children: "Severity" })), jsxRuntime.jsx("th", __assign({ className: "security-cell-header security-tab__cell-package" }, { children: "Package" })), jsxRuntime.jsx("th", __assign({ className: "security-cell-header security-tab__cell-current-ver" }, { children: "Current Version" })), jsxRuntime.jsx("th", __assign({ className: "security-cell-header security-tab__cell-fixed-ver" }, { children: "Fixed In Version" })), jsxRuntime.jsx("th", __assign({ className: "security-cell-header security-tab__cell-policy" }, { children: "Policy" }))] })), vulnerabilities.map(function (vulnerability) {
|
|
23014
|
-
return renderRow(vulnerability);
|
|
23015
|
-
})] }) })));
|
|
22958
|
+
return (jsxRuntime.jsx("table", __assign({ className: "security-tab__table" }, { children: jsxRuntime.jsxs("tbody", { children: [jsxRuntime.jsxs("tr", __assign({ className: "security-tab__table-header" }, { children: [jsxRuntime.jsx("th", __assign({ className: "security-cell-header security-tab__cell-cve" }, { children: "CVE" })), jsxRuntime.jsx("th", __assign({ className: "security-cell-header security-tab__cell-severity" }, { children: "Severity" })), jsxRuntime.jsx("th", __assign({ className: "security-cell-header security-tab__cell-package" }, { children: "Package" })), jsxRuntime.jsx("th", __assign({ className: "security-cell-header security-tab__cell-current-ver" }, { children: "Current Version" })), jsxRuntime.jsx("th", __assign({ className: "security-cell-header security-tab__cell-fixed-ver" }, { children: "Fixed In Version" })), jsxRuntime.jsx("th", __assign({ className: "security-cell-header security-tab__cell-policy" }, { children: "Policy" }))] })), vulnerabilities.map(function (vulnerability) { return renderRow(vulnerability); })] }) })));
|
|
23016
22959
|
}
|
|
23017
22960
|
|
|
23018
22961
|
var css_248z$1 = ".radio-group {\n height: 30px;\n background: white;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 4px;\n border-radius: 4px;\n}\n.radio-group .label,\n.radio-group .radio,\n.radio-group .checkbox {\n margin: 0;\n}\n.radio-group .radio {\n height: 100%;\n width: auto;\n color: var(--N400);\n display: flex;\n align-items: center;\n}\n.radio-group .radio + .radio {\n margin-top: 0;\n}\n.radio-group input[type=checkbox] {\n display: contents;\n overflow: hidden;\n max-width: 0px;\n height: 0;\n opacity: 0;\n margin: unset;\n}\n.radio-group input + .radio__item-label {\n padding: 4px 6px;\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n transition: all 0.5s;\n cursor: pointer;\n}\n.radio-group input[type=checkbox]:checked + .radio__item-label {\n background: #2c3354;\n color: white;\n border-radius: 4px;\n}";
|
|
23019
22962
|
styleInject(css_248z$1);
|
|
23020
22963
|
|
|
23021
|
-
var RadioContext =
|
|
22964
|
+
var RadioContext = React__namespace.createContext(null);
|
|
23022
22965
|
function useRadioContext() {
|
|
23023
|
-
var context =
|
|
22966
|
+
var context = React__namespace.useContext(RadioContext);
|
|
23024
22967
|
if (!context) {
|
|
23025
22968
|
throw new Error("Radio compound components cannot be rendered outside the Toggle component");
|
|
23026
22969
|
}
|
|
23027
22970
|
return context;
|
|
23028
22971
|
}
|
|
23029
|
-
var RadioGroup =
|
|
22972
|
+
var RadioGroup = React__namespace.memo(function (_a) {
|
|
23030
22973
|
var name = _a.name, onChange = _a.onChange, children = _a.children, _b = _a.className, className = _b === void 0 ? '' : _b, initialTab = _a.initialTab, _c = _a.disabled, disabled = _c === void 0 ? false : _c; _a.dataTestId;
|
|
23031
22974
|
var _d = __read(React.useState(null), 2), selected = _d[0], select = _d[1];
|
|
23032
22975
|
React.useEffect(function () {
|
|
@@ -23036,7 +22979,7 @@ var RadioGroup = React.memo(function RadioGroup(_a) {
|
|
|
23036
22979
|
}, [initialTab]);
|
|
23037
22980
|
return (jsxRuntime.jsx(RadioContext.Provider, __assign({ value: { name: name, selected: selected, select: select, disabled: disabled, onChange: onChange } }, { children: jsxRuntime.jsx("div", __assign({ className: "".concat(className, " radio-group") }, { children: children })) })));
|
|
23038
22981
|
});
|
|
23039
|
-
function
|
|
22982
|
+
var Radio = function (_a) {
|
|
23040
22983
|
var value = _a.value, children = _a.children, _b = _a.className, className = _b === void 0 ? '' : _b, _c = _a.showTippy, showTippy = _c === void 0 ? false : _c, _d = _a.tippyContent, tippyContent = _d === void 0 ? '' : _d, _e = _a.tippyPlacement, tippyPlacement = _e === void 0 ? 'bottom' : _e, _f = _a.canSelect, canSelect = _f === void 0 ? true : _f, _g = _a.isDisabled, isDisabled = _g === void 0 ? false : _g, _h = _a.tippyClass, tippyClass = _h === void 0 ? '' : _h, dataTestId = _a.dataTestId;
|
|
23041
22984
|
var _j = useRadioContext(), name = _j.name, selected = _j.selected, select = _j.select, disabled = _j.disabled, onChange = _j.onChange;
|
|
23042
22985
|
return (jsxRuntime.jsx(ConditionalWrap, __assign({ condition: showTippy, wrap: function (children) { return (jsxRuntime.jsx(Tippy, __assign({ className: "default-tt w-250 ".concat(tippyClass), arrow: false, placement: tippyPlacement, content: tippyContent }, { children: children }))); } }, { children: jsxRuntime.jsxs("label", __assign({ className: "".concat(className, " radio ").concat(isDisabled || disabled ? 'disabled' : '') }, { children: [jsxRuntime.jsx("input", { type: "checkbox", value: value, name: name, checked: value === selected, onChange: function (e) {
|
|
@@ -23046,7 +22989,7 @@ function Radio(_a) {
|
|
|
23046
22989
|
}
|
|
23047
22990
|
onChange(e);
|
|
23048
22991
|
}, disabled: isDisabled || disabled }), jsxRuntime.jsx("span", __assign({ className: "radio__item-label", "data-testid": dataTestId }, { children: children }))] })) })));
|
|
23049
|
-
}
|
|
22992
|
+
};
|
|
23050
22993
|
RadioGroup.Radio = Radio;
|
|
23051
22994
|
|
|
23052
22995
|
exports.RefVariableType = void 0;
|
|
@@ -23132,7 +23075,7 @@ var SvgIcInfoFilled = function SvgIcInfoFilled(props) {
|
|
|
23132
23075
|
};
|
|
23133
23076
|
var info = "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2032%2032%22%3E%20%20%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M0%200h32v32H0z%22%2F%3E%20%20%20%20%20%20%20%20%3Cpath%20fill%3D%22%2306C%22%20d%3D%22M16%202.667C8.64%202.667%202.667%208.64%202.667%2016S8.64%2029.333%2016%2029.333%2029.333%2023.36%2029.333%2016%2023.36%202.667%2016%202.667z%22%2F%3E%20%20%20%20%20%20%20%20%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M16%2014.667c.736%200%201.333.597%201.333%201.333v5.333a1.333%201.333%200%201%201-2.666%200V16c0-.736.597-1.333%201.333-1.333zm0-5.334A1.333%201.333%200%201%201%2016%2012a1.333%201.333%200%200%201%200-2.667z%22%2F%3E%20%20%20%20%3C%2Fg%3E%3C%2Fsvg%3E";
|
|
23134
23077
|
|
|
23135
|
-
function
|
|
23078
|
+
var DeleteComponent = function (_a) {
|
|
23136
23079
|
var setDeleting = _a.setDeleting, toggleConfirmation = _a.toggleConfirmation, deleteComponent = _a.deleteComponent, title = _a.title, component = _a.component, payload = _a.payload, _b = _a.confirmationDialogDescription, confirmationDialogDescription = _b === void 0 ? '' : _b, _c = _a.redirectTo, redirectTo = _c === void 0 ? false : _c, _d = _a.url, url = _d === void 0 ? '' : _d, reload = _a.reload, _e = _a.configuration, configuration = _e === void 0 ? '' : _e, closeCustomComponent = _a.closeCustomComponent;
|
|
23137
23080
|
var _f = __read(React.useState(false), 2), showCannotDeleteDialogModal = _f[0], setCannotDeleteDialogModal = _f[1];
|
|
23138
23081
|
var push = reactRouterDom.useHistory().push;
|
|
@@ -23182,14 +23125,10 @@ function DeleteComponent(_a) {
|
|
|
23182
23125
|
closeCustomComponent();
|
|
23183
23126
|
}
|
|
23184
23127
|
};
|
|
23185
|
-
var renderCannotDeleteDialogModal = function () {
|
|
23186
|
-
|
|
23187
|
-
};
|
|
23188
|
-
var renderDeleteDialog = function () {
|
|
23189
|
-
return (jsxRuntime.jsx(DeleteDialog, __assign({ title: "Delete ".concat(component, " '").concat(title, "'"), delete: handleDelete, closeDelete: function () { return toggleConfirmation(false); }, dataTestId: "delete-dialog" }, { children: jsxRuntime.jsx(DeleteDialog.Description, { children: jsxRuntime.jsxs("p", { children: ["Are you sure you want to delete this ", configuration ? configuration : component, "? "] }) }) })));
|
|
23190
|
-
};
|
|
23128
|
+
var renderCannotDeleteDialogModal = function () { return (jsxRuntime.jsxs(ConfirmationDialog, __assign({ className: "confirmation-dialog__body--w-360" }, { children: [jsxRuntime.jsx(ConfirmationDialog.Icon, { src: info }), jsxRuntime.jsx(ConfirmationDialog.Body, { title: "Cannot delete ".concat(component, " '").concat(title, "'") }), jsxRuntime.jsx("p", __assign({ className: "fs-13 cn-7 " }, { children: confirmationDialogDescription })), jsxRuntime.jsx(ConfirmationDialog.ButtonGroup, { children: jsxRuntime.jsx("button", __assign({ type: "button", className: "cta", onClick: handleConfirmation }, { children: "Okay" })) })] }))); };
|
|
23129
|
+
var renderDeleteDialog = function () { return (jsxRuntime.jsx(DeleteDialog, __assign({ title: "Delete ".concat(component, " '").concat(title, "'"), delete: handleDelete, closeDelete: function () { return toggleConfirmation(false); }, dataTestId: "delete-dialog" }, { children: jsxRuntime.jsx(DeleteDialog.Description, { children: jsxRuntime.jsxs("p", { children: ["Are you sure you want to delete this ", configuration || component, "? "] }) }) }))); };
|
|
23191
23130
|
return (jsxRuntime.jsxs("div", { children: [!showCannotDeleteDialogModal && renderDeleteDialog(), showCannotDeleteDialogModal && renderCannotDeleteDialogModal()] }));
|
|
23192
|
-
}
|
|
23131
|
+
};
|
|
23193
23132
|
|
|
23194
23133
|
var _path$5;
|
|
23195
23134
|
function _extends$9() { _extends$9 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$9.apply(this, arguments); }
|
|
@@ -23313,13 +23252,13 @@ var ImageTagsContainer = function (_a) {
|
|
|
23313
23252
|
var
|
|
23314
23253
|
// Setting it to zero in case of external pipeline
|
|
23315
23254
|
ciPipelineId = _a.ciPipelineId, artifactId = _a.artifactId, imageComment = _a.imageComment, imageReleaseTags = _a.imageReleaseTags, updateCurrentAppMaterial = _a.updateCurrentAppMaterial, appReleaseTagNames = _a.appReleaseTagNames, setAppReleaseTagNames = _a.setAppReleaseTagNames, tagsEditable = _a.tagsEditable, setTagsEditable = _a.setTagsEditable, toggleCardMode = _a.toggleCardMode, hideHardDelete = _a.hideHardDelete, forceReInit = _a.forceReInit, isSuperAdmin = _a.isSuperAdmin;
|
|
23316
|
-
var _b = __read(React.useState(imageReleaseTags
|
|
23255
|
+
var _b = __read(React.useState(imageReleaseTags || []), 2), initialTags = _b[0], setInitialTags = _b[1];
|
|
23317
23256
|
var _c = __read(React.useState(imageComment ? imageComment.comment : ''), 2), initialDescription = _c[0], setInitialDescription = _c[1];
|
|
23318
|
-
var _d = __read(React.useState(appReleaseTagNames
|
|
23257
|
+
var _d = __read(React.useState(appReleaseTagNames || []), 2), existingTags = _d[0], setExistingTags = _d[1];
|
|
23319
23258
|
var _e = __read(React.useState(imageComment ? imageComment.comment : ''), 2), newDescription = _e[0], setNewDescription = _e[1];
|
|
23320
23259
|
var _f = __read(React.useState(false), 2), isEditing = _f[0], setIsEditing = _f[1];
|
|
23321
23260
|
var _g = __read(React.useState(false), 2), showTagsWarning = _g[0], setShowTagsWarning = _g[1];
|
|
23322
|
-
var _h = __read(React.useState(imageReleaseTags
|
|
23261
|
+
var _h = __read(React.useState(imageReleaseTags || []), 2), displayedTags = _h[0], setDisplayedTags = _h[1];
|
|
23323
23262
|
var _j = __read(React.useState(''), 2), tagErrorMessage = _j[0], setTagErrorMessage = _j[1];
|
|
23324
23263
|
var _k = __read(React.useState([]), 2), createTags = _k[0], setCreateTags = _k[1];
|
|
23325
23264
|
var _l = __read(React.useState([]), 2), softDeleteTags = _l[0], setSoftDeleteTags = _l[1];
|
|
@@ -23331,14 +23270,14 @@ var ImageTagsContainer = function (_a) {
|
|
|
23331
23270
|
reInitState();
|
|
23332
23271
|
}, [imageReleaseTags, imageComment, tagsEditable]);
|
|
23333
23272
|
React.useEffect(function () {
|
|
23334
|
-
setExistingTags(appReleaseTagNames
|
|
23273
|
+
setExistingTags(appReleaseTagNames || []);
|
|
23335
23274
|
}, [appReleaseTagNames]);
|
|
23336
23275
|
var reInitState = function () {
|
|
23337
23276
|
if (forceReInit || !isEditing) {
|
|
23338
|
-
setInitialTags(imageReleaseTags
|
|
23277
|
+
setInitialTags(imageReleaseTags || []);
|
|
23339
23278
|
setInitialDescription(imageComment ? imageComment.comment : '');
|
|
23340
23279
|
setNewDescription(imageComment ? imageComment.comment : '');
|
|
23341
|
-
setDisplayedTags(imageReleaseTags
|
|
23280
|
+
setDisplayedTags(imageReleaseTags || []);
|
|
23342
23281
|
setIsEditing(false);
|
|
23343
23282
|
}
|
|
23344
23283
|
};
|
|
@@ -23521,12 +23460,8 @@ var ImageTagsContainer = function (_a) {
|
|
|
23521
23460
|
return [2 /*return*/];
|
|
23522
23461
|
});
|
|
23523
23462
|
}); };
|
|
23524
|
-
var renderInfoCard = function () {
|
|
23525
|
-
|
|
23526
|
-
};
|
|
23527
|
-
var getBuildContextAdditionalContent = function () {
|
|
23528
|
-
return (jsxRuntime.jsxs("div", __assign({ className: "h-250 fs-13 dc__overflow-scroll p-12" }, { children: [jsxRuntime.jsx("div", { children: "Release tags allow you to tag container images with readable and relatable tags eg. v1.0." }), jsxRuntime.jsxs("ul", __assign({ className: "pl-20 mt-8" }, { children: [jsxRuntime.jsx("li", { children: "A release tag can only be added if a workflow has CD pipelines deploying to Production environments." }), jsxRuntime.jsx("li", { children: "Multiple tags can be added to an image." }), jsxRuntime.jsx("li", { children: "Multiple images in an application cannot have the same tag." }), jsxRuntime.jsx("li", { children: "Tags cannot be deleted once saved. Although, you can soft delete a tag if an unwanted tag has been added." })] }))] })));
|
|
23529
|
-
};
|
|
23463
|
+
var renderInfoCard = function () { return (jsxRuntime.jsx(TippyCustomized, __assign({ theme: exports.TippyTheme.white, className: "w-300 fcv-5", placement: "right", Icon: SvgIcHelp, heading: "Release tags", showCloseButton: true, trigger: "click", interactive: true, additionalContent: getBuildContextAdditionalContent() }, { children: jsxRuntime.jsx("div", __assign({ className: "flex" }, { children: jsxRuntime.jsx(SvgIcHelpOutline, { className: "fcn-5 ml-8 cursor icon-dim-16" }) })) }))); };
|
|
23464
|
+
var getBuildContextAdditionalContent = function () { return (jsxRuntime.jsxs("div", __assign({ className: "h-250 fs-13 dc__overflow-scroll p-12" }, { children: [jsxRuntime.jsx("div", { children: "Release tags allow you to tag container images with readable and relatable tags eg. v1.0." }), jsxRuntime.jsxs("ul", __assign({ className: "pl-20 mt-8" }, { children: [jsxRuntime.jsx("li", { children: "A release tag can only be added if a workflow has CD pipelines deploying to Production environments." }), jsxRuntime.jsx("li", { children: "Multiple tags can be added to an image." }), jsxRuntime.jsx("li", { children: "Multiple images in an application cannot have the same tag." }), jsxRuntime.jsx("li", { children: "Tags cannot be deleted once saved. Although, you can soft delete a tag if an unwanted tag has been added." })] }))] }))); };
|
|
23530
23465
|
var creatableRef = React.useRef(null);
|
|
23531
23466
|
if (newDescription === '' && displayedTags.length === 0 && !isEditing) {
|
|
23532
23467
|
return tagsEditable ? (jsxRuntime.jsx("div", __assign({ className: "bcn-0 mt-8 add-image-button" }, { children: jsxRuntime.jsx(AddImageButton, { handleEditClick: handleEditClick }) }))) : (jsxRuntime.jsx("div", {}));
|
|
@@ -23570,7 +23505,7 @@ var ImageTagsContainer = function (_a) {
|
|
|
23570
23505
|
}, disabled: loading }, { children: "Cancel" })), jsxRuntime.jsx("button", __assign({ className: "cta flex h-32 lh-32-imp ml-12", "data-testid": "save-tags-button", type: "button", onClick: function (e) {
|
|
23571
23506
|
stopPropagation(e);
|
|
23572
23507
|
onClickSave();
|
|
23573
|
-
}, disabled: loading }, { children: loading ? jsxRuntime.jsx(Progressing, {}) : 'Save' }))] }))] }))) : (jsxRuntime.jsxs("div", __assign({ className: "top br-4 bcn-0 image-tags-container flexbox" }, { children: [jsxRuntime.jsx("div", __assign({ className: "flex left image-tag-left-border w-100 mt-8 mb-8 pr-10 pl-10", "data-testid": "image-tags-container-hover" }, { children: jsxRuntime.jsxs("div", __assign({ className:
|
|
23508
|
+
}, disabled: loading }, { children: loading ? jsxRuntime.jsx(Progressing, {}) : 'Save' }))] }))] }))) : (jsxRuntime.jsxs("div", __assign({ className: "top br-4 bcn-0 image-tags-container flexbox" }, { children: [jsxRuntime.jsx("div", __assign({ className: "flex left image-tag-left-border w-100 mt-8 mb-8 pr-10 pl-10", "data-testid": "image-tags-container-hover" }, { children: jsxRuntime.jsxs("div", __assign({ className: "w-100" }, { children: [initialDescription && (jsxRuntime.jsx("div", __assign({ className: "mb-6 fs-13 lh-20 dc__word-break-all" }, { children: initialDescription }))), jsxRuntime.jsx("div", __assign({ className: "flex-wrap flex left" }, { children: initialTags === null || initialTags === void 0 ? void 0 : initialTags.map(function (tag, index) { return (jsxRuntime.jsx(ImageTagButton, { text: tag === null || tag === void 0 ? void 0 : tag.tagName, isSoftDeleted: tag === null || tag === void 0 ? void 0 : tag.deleted, isEditing: isEditing, onSoftDeleteClick: function (e) {
|
|
23574
23509
|
stopPropagation(e);
|
|
23575
23510
|
handleTagSoftDelete(index);
|
|
23576
23511
|
}, onHardDeleteClick: function (e) {
|
|
@@ -23590,12 +23525,10 @@ var ImageTagButton = function (_a) {
|
|
|
23590
23525
|
if (duplicateTag) {
|
|
23591
23526
|
return 'cr-5 bcr-1 er-2';
|
|
23592
23527
|
}
|
|
23593
|
-
|
|
23528
|
+
if (isSoftDeleted) {
|
|
23594
23529
|
return 'cy-7 bcy-1 dc__strike-through ey-2';
|
|
23595
23530
|
}
|
|
23596
|
-
|
|
23597
|
-
return 'cn-9';
|
|
23598
|
-
}
|
|
23531
|
+
return 'cn-9';
|
|
23599
23532
|
};
|
|
23600
23533
|
return (jsxRuntime.jsxs("div", __assign({ className: "br-4 en-2 bw-1 mr-8 bcn-0 mb-4 pt-2 pr-8 pb-2 pl-8 tag-class dc__word-break-all flex ".concat(isEditing ? 'icon-hover' : '', " ").concat(tabColor()) }, { children: [duplicateTag ? (jsxRuntime.jsx(SvgIcErrorExclamation, { className: "icon-dim-12 mr-4" })) : (jsxRuntime.jsx(Tippy, __assign({ className: "default-tt", arrow: true, placement: "top", content: isInSoftDeleteTags ? 'Restore tag' : 'Soft delete tag' }, { children: jsxRuntime.jsx("div", __assign({ className: "action-icon mr-4 lh-16 pt-3 ".concat(isInSoftDeleteTags || (tagId !== 0 && !isSoftDeleted) ? 'show-icon' : '') }, { children: jsxRuntime.jsx(IconComponent, { className: "icon-dim-12 cursor ".concat(isSoftDeleted ? 'scn-6' : 'fcn-6', " "), "data-testid": "".concat(text, "-tag-soft-delete"), onClick: onSoftDeleteClick }) })) }))), text, jsxRuntime.jsx(Tippy, __assign({ className: "default-tt", arrow: true, placement: "top", content: "Remove tag" }, { children: jsxRuntime.jsx("div", __assign({ className: "action-icon ml-4 lh-16 pt-3 ".concat(canTagBeHardDelete ? 'show-icon' : '') }, { children: jsxRuntime.jsx(SvgIcCross, { className: "icon-dim-12 fcn-6 cursor", "data-testid": "".concat(text, "-tag-hard-delete"), onClick: onHardDeleteClick }) })) }))] })));
|
|
23601
23534
|
};
|
|
@@ -23638,7 +23571,7 @@ var ResizableTextarea = function (_a) {
|
|
|
23638
23571
|
if (maxHeight && nextHeight > maxHeight) {
|
|
23639
23572
|
nextHeight = maxHeight;
|
|
23640
23573
|
}
|
|
23641
|
-
_textRef.current.style.height = nextHeight + 2
|
|
23574
|
+
_textRef.current.style.height = "".concat(nextHeight + 2, "px");
|
|
23642
23575
|
}, 500, [text]);
|
|
23643
23576
|
return (jsxRuntime.jsx("textarea", __assign({ "data-testid": dataTestId, ref: function (el) { return (_textRef.current = el); }, value: text, placeholder: placeholder, className: "dc__resizable-textarea ".concat(className), onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, style: { lineHeight: "".concat(lineHeight, "px"), padding: "".concat(padding, "px") }, spellCheck: false, disabled: disabled }, props)));
|
|
23644
23577
|
};
|
|
@@ -23717,7 +23650,7 @@ function DebouncedSearch(_a) {
|
|
|
23717
23650
|
// This is meant to be a reusable component that will provide a grid like dynamic layout where xs is the number of columns out of 12 that the item will take up
|
|
23718
23651
|
function Grid(_a) {
|
|
23719
23652
|
var container = _a.container, _b = _a.spacing, spacing = _b === void 0 ? 0 : _b, item = _a.item, xs = _a.xs, _c = _a.containerClass, containerClass = _c === void 0 ? '' : _c, _d = _a.itemClass, itemClass = _d === void 0 ? '' : _d, children = _a.children;
|
|
23720
|
-
var containerStyles = container ? { gap: spacing
|
|
23653
|
+
var containerStyles = container ? { gap: "".concat(spacing, "px") } : {};
|
|
23721
23654
|
if (item) {
|
|
23722
23655
|
var getColumnWidth = function () {
|
|
23723
23656
|
var percentageWidth = (xs / 12) * 100;
|
|
@@ -23871,15 +23804,13 @@ var triggerStatus = function (triggerDetailStatus) {
|
|
|
23871
23804
|
if (triggerStatus === TIMELINE_STATUS.ABORTED || triggerStatus === TIMELINE_STATUS.DEGRADED) {
|
|
23872
23805
|
return 'Failed';
|
|
23873
23806
|
}
|
|
23874
|
-
|
|
23807
|
+
if (triggerStatus === TIMELINE_STATUS.HEALTHY) {
|
|
23875
23808
|
return 'Succeeded';
|
|
23876
23809
|
}
|
|
23877
|
-
|
|
23810
|
+
if (triggerStatus === TIMELINE_STATUS.INPROGRESS) {
|
|
23878
23811
|
return 'Inprogress';
|
|
23879
23812
|
}
|
|
23880
|
-
|
|
23881
|
-
return triggerDetailStatus;
|
|
23882
|
-
}
|
|
23813
|
+
return triggerDetailStatus;
|
|
23883
23814
|
};
|
|
23884
23815
|
|
|
23885
23816
|
function AppStatus(_a) {
|
|
@@ -23898,12 +23829,10 @@ function AppStatus(_a) {
|
|
|
23898
23829
|
if (iconClass) {
|
|
23899
23830
|
return jsxRuntime.jsx("span", { className: "dc__app-summary__icon icon-dim-16 ".concat(iconClass, " ").concat(iconClass, "--node") });
|
|
23900
23831
|
}
|
|
23901
|
-
|
|
23832
|
+
if (isVirtualEnv) {
|
|
23902
23833
|
return (jsxRuntime.jsx("span", { className: "dc__app-summary__icon icon-dim-16 ".concat(StatusConstants.NOT_DEPLOYED.lowerCase, " ").concat(StatusConstants.NOT_DEPLOYED.lowerCase, "--node") }));
|
|
23903
23834
|
}
|
|
23904
|
-
|
|
23905
|
-
return (jsxRuntime.jsx(Tippy, __assign({ className: "default-tt w-200", arrow: false, placement: "top", content: "To fetch app status for GitOps based deployments open the app detail page" }, { children: jsxRuntime.jsx(SvgIcInfoOutlined, { className: "icon-dim-16 fcn-6" }) })));
|
|
23906
|
-
}
|
|
23835
|
+
return (jsxRuntime.jsx(Tippy, __assign({ className: "default-tt w-200", arrow: false, placement: "top", content: "To fetch app status for GitOps based deployments open the app detail page" }, { children: jsxRuntime.jsx(SvgIcInfoOutlined, { className: "icon-dim-16 fcn-6" }) })));
|
|
23907
23836
|
};
|
|
23908
23837
|
return hideStatusMessage ? (iconClass || isVirtualEnv ? (jsxRuntime.jsx(Tippy, __assign({ className: "default-tt", arrow: false, placement: "top", content: textContent }, { children: jsxRuntime.jsx("div", __assign({ className: "flex" }, { children: renderIcon() })) }))) : (renderIcon())) : (jsxRuntime.jsxs("div", __assign({ className: "flex left" }, { children: [jsxRuntime.jsx("div", __assign({ className: "flex mr-6" }, { children: renderIcon() })), jsxRuntime.jsx("p", __assign({ "data-testid": "".concat(status, "-app-status"), className: "dc__truncate-text dc__first-letter-capitalize cn-6 m-0" }, { children: textContent }))] })));
|
|
23909
23838
|
}
|
|
@@ -23991,9 +23920,7 @@ var FieldErrorTemplate = function (_a) {
|
|
|
23991
23920
|
var id = utils.errorId(idSchema);
|
|
23992
23921
|
return (errors.length > 0 && (jsxRuntime.jsx("span", __assign({ id: id }, { children: errors
|
|
23993
23922
|
.filter(function (elem) { return !!elem; })
|
|
23994
|
-
.map(function (error, index) {
|
|
23995
|
-
return (jsxRuntime.jsxs("span", __assign({ className: "form__error" }, { children: [jsxRuntime.jsx(SvgIcWarning, { className: "form__icon form__icon--error" }), error] }), index));
|
|
23996
|
-
}) }))));
|
|
23923
|
+
.map(function (error, index) { return (jsxRuntime.jsxs("span", __assign({ className: "form__error" }, { children: [jsxRuntime.jsx(SvgIcWarning, { className: "form__icon form__icon--error" }), error] }), index)); }) }))));
|
|
23997
23924
|
};
|
|
23998
23925
|
|
|
23999
23926
|
var Field = function (_a) {
|
|
@@ -24006,9 +23933,7 @@ var Field = function (_a) {
|
|
|
24006
23933
|
if (properties.length) {
|
|
24007
23934
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(FieldRowWithLabel, __assign({ label: title, required: required, showLabel: true, id: idSchema.$id, shouldAlignCenter: false }, { children: jsxRuntime.jsx("div", { children: Properties }) })), ActionButton] }));
|
|
24008
23935
|
}
|
|
24009
|
-
|
|
24010
|
-
return (jsxRuntime.jsx(FieldRowWithLabel, __assign({ label: title, required: required, showLabel: true, id: idSchema.$id }, { children: ActionButton })));
|
|
24011
|
-
}
|
|
23936
|
+
return (jsxRuntime.jsx(FieldRowWithLabel, __assign({ label: title, required: required, showLabel: true, id: idSchema.$id }, { children: ActionButton })));
|
|
24012
23937
|
}
|
|
24013
23938
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [Properties, ActionButton] }));
|
|
24014
23939
|
};
|
|
@@ -26498,9 +26423,7 @@ var translateString = function (stringToTranslate, params) {
|
|
|
26498
26423
|
};
|
|
26499
26424
|
var getCommonSelectStyle = function (styleOverrides) {
|
|
26500
26425
|
if (styleOverrides === void 0) { styleOverrides = {}; }
|
|
26501
|
-
return __assign({ menuList: function (base) { return (__assign(__assign({}, base), { paddingTop: 0, paddingBottom: 0 })); }, control: function (base, state) { return (__assign(__assign({}, base), { minHeight: '32px', boxShadow: 'none', backgroundColor: 'var(--N50)', border: state.isFocused ? '1px solid var(--B500)' : '1px solid var(--N200)', cursor: 'pointer' })); }, option: function (base, state) { return (__assign(__assign({}, base), { color: 'var(--N900)', backgroundColor: state.isFocused ? 'var(--N100)' : 'white', padding: '10px 12px' })); }, dropdownIndicator: function (base, state) { return (__assign(__assign({}, base), { color: 'var(--N400)', padding: '0 8px', transition: 'all .2s ease', transform: state.selectProps.menuIsOpen ? 'rotate(180deg)' : 'rotate(0deg)' })); }, valueContainer: function (base, state) { return (__assign(__assign({}, base), { padding: '0 8px', fontWeight: '400', color: state.selectProps.menuIsOpen ? 'var(--N500)' : base.color })); }, loadingMessage: function (base) { return (__assign(__assign({}, base), { color: 'var(--N600)' })); }, noOptionsMessage: function (base) { return (__assign(__assign({}, base), { color: 'var(--N600)' })); }, multiValue: function (base, state) {
|
|
26502
|
-
return __assign(__assign({}, base), { border: "1px solid var(--N200)", borderRadius: "4px", background: 'white', height: '28px', marginRight: '8px', padding: '2px', fontSize: '12px' });
|
|
26503
|
-
} }, styleOverrides);
|
|
26426
|
+
return (__assign({ menuList: function (base) { return (__assign(__assign({}, base), { paddingTop: 0, paddingBottom: 0 })); }, control: function (base, state) { return (__assign(__assign({}, base), { minHeight: '32px', boxShadow: 'none', backgroundColor: 'var(--N50)', border: state.isFocused ? '1px solid var(--B500)' : '1px solid var(--N200)', cursor: 'pointer' })); }, option: function (base, state) { return (__assign(__assign({}, base), { color: 'var(--N900)', backgroundColor: state.isFocused ? 'var(--N100)' : 'white', padding: '10px 12px' })); }, dropdownIndicator: function (base, state) { return (__assign(__assign({}, base), { color: 'var(--N400)', padding: '0 8px', transition: 'all .2s ease', transform: state.selectProps.menuIsOpen ? 'rotate(180deg)' : 'rotate(0deg)' })); }, valueContainer: function (base, state) { return (__assign(__assign({}, base), { padding: '0 8px', fontWeight: '400', color: state.selectProps.menuIsOpen ? 'var(--N500)' : base.color })); }, loadingMessage: function (base) { return (__assign(__assign({}, base), { color: 'var(--N600)' })); }, noOptionsMessage: function (base) { return (__assign(__assign({}, base), { color: 'var(--N600)' })); }, multiValue: function (base, state) { return (__assign(__assign({}, base), { border: "1px solid var(--N200)", borderRadius: "4px", background: 'white', height: '28px', marginRight: '8px', padding: '2px', fontSize: '12px' })); } }, styleOverrides));
|
|
26504
26427
|
};
|
|
26505
26428
|
/**
|
|
26506
26429
|
* Returns the redirection props for a url
|
|
@@ -26659,18 +26582,18 @@ var SvgIcRotateDevtron = function SvgIcRotateDevtron(props) {
|
|
|
26659
26582
|
}))));
|
|
26660
26583
|
};
|
|
26661
26584
|
|
|
26662
|
-
function
|
|
26585
|
+
var DevtronProgressing = function (_a) {
|
|
26663
26586
|
var classes = _a.classes, parentClasses = _a.parentClasses;
|
|
26664
|
-
return (jsxRuntime.jsx("div", __assign({ className: parentClasses
|
|
26665
|
-
}
|
|
26587
|
+
return (jsxRuntime.jsx("div", __assign({ className: parentClasses || '' }, { children: jsxRuntime.jsx(SvgIcRotateDevtron, { className: classes || '' }) })));
|
|
26588
|
+
};
|
|
26666
26589
|
|
|
26667
|
-
function
|
|
26590
|
+
var TooltipContent = function (_a) {
|
|
26668
26591
|
var tooltipContent = _a.tooltipContent;
|
|
26669
26592
|
if (tooltipContent) {
|
|
26670
26593
|
return (jsxRuntime.jsxs("div", __assign({ className: "dc__white-space-pre-wrap" }, { children: [jsxRuntime.jsx("p", __assign({ className: "m-0 cn-0 fs-12 fw-6 lh-18" }, { children: "Click to add" })), tooltipContent] })));
|
|
26671
26594
|
}
|
|
26672
26595
|
return jsxRuntime.jsx("div", __assign({ className: "dc__white-space-pre-wrap" }, { children: "Click to add here" }));
|
|
26673
|
-
}
|
|
26596
|
+
};
|
|
26674
26597
|
function AddCDButton(_a) {
|
|
26675
26598
|
var position = _a.position, addCDButtons = _a.addCDButtons, endNode = _a.endNode, startNode = _a.startNode, handleAddCD = _a.handleAddCD, tooltipContent = _a.tooltipContent;
|
|
26676
26599
|
var referenceNode = position === exports.AddCDPositions.RIGHT ? endNode : startNode;
|
|
@@ -26706,8 +26629,8 @@ var handleAddCD = function (_a) {
|
|
|
26706
26629
|
handleCDSelect(workflowId, ciPipelineId, pipelineType, startNode.id, isWebhookCD, endNodeId, addPipelineType);
|
|
26707
26630
|
};
|
|
26708
26631
|
|
|
26709
|
-
function
|
|
26710
|
-
var name = _a.name, value = _a.value, error = _a.error, onChange = _a.onChange, _b = _a.onFocus, onFocus = _b === void 0 ? function (e) { } : _b, label = _a.label, _c = _a.type, type = _c === void 0 ? 'text' : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, _e = _a.labelClassName, labelClassName = _e === void 0 ? '' : _e, _f = _a.placeholder, placeholder = _f === void 0 ? '' : _f, _g = _a.tabIndex, tabIndex = _g === void 0 ? 1 : _g, _h = _a.dataTestid, dataTestid = _h === void 0 ? '' : _h, _j = _a.isRequiredField, isRequiredField = _j === void 0 ? false : _j, _k = _a.autoFocus, autoFocus = _k === void 0 ? false : _k, _l = _a.rootClassName, rootClassName = _l === void 0 ? '' : _l, _m = _a.autoComplete, autoComplete = _m === void 0 ? 'off' : _m, _o = _a.helperText, helperText = _o === void 0 ? '' : _o, handleOnBlur = _a.handleOnBlur, _p = _a.readOnly, readOnly = _p === void 0 ? false : _p, _q = _a.noTrim, noTrim = _q === void 0 ? false : _q, ref = _a.ref, onKeyPress = _a.onKeyPress, defaultValue = _a.defaultValue, onKeyDown = _a.onKeyDown, required = _a.required, additionalErrorInfo = _a.additionalErrorInfo
|
|
26632
|
+
var CustomInput = function (_a) {
|
|
26633
|
+
var name = _a.name, value = _a.value, error = _a.error, onChange = _a.onChange, _b = _a.onFocus, onFocus = _b === void 0 ? function (e) { } : _b, label = _a.label, _c = _a.type, type = _c === void 0 ? 'text' : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, _e = _a.labelClassName, labelClassName = _e === void 0 ? '' : _e, _f = _a.placeholder, placeholder = _f === void 0 ? '' : _f, _g = _a.tabIndex, tabIndex = _g === void 0 ? 1 : _g, _h = _a.dataTestid, dataTestid = _h === void 0 ? '' : _h, _j = _a.isRequiredField, isRequiredField = _j === void 0 ? false : _j, _k = _a.autoFocus, autoFocus = _k === void 0 ? false : _k, _l = _a.rootClassName, rootClassName = _l === void 0 ? '' : _l, _m = _a.autoComplete, autoComplete = _m === void 0 ? 'off' : _m, _o = _a.helperText, helperText = _o === void 0 ? '' : _o, handleOnBlur = _a.handleOnBlur, _p = _a.readOnly, readOnly = _p === void 0 ? false : _p, _q = _a.noTrim, noTrim = _q === void 0 ? false : _q, ref = _a.ref, onKeyPress = _a.onKeyPress, defaultValue = _a.defaultValue, onKeyDown = _a.onKeyDown, required = _a.required, additionalErrorInfo = _a.additionalErrorInfo;
|
|
26711
26634
|
function handleError(error) {
|
|
26712
26635
|
if (!Array.isArray(error)) {
|
|
26713
26636
|
return [error];
|
|
@@ -26716,7 +26639,7 @@ function CustomInput(_a) {
|
|
|
26716
26639
|
}
|
|
26717
26640
|
var onBlur = function (event) {
|
|
26718
26641
|
var _a;
|
|
26719
|
-
//NOTE: This is to prevent the input from being trimmed when the user do not want to trim the input
|
|
26642
|
+
// NOTE: This is to prevent the input from being trimmed when the user do not want to trim the input
|
|
26720
26643
|
if (!noTrim) {
|
|
26721
26644
|
event.stopPropagation();
|
|
26722
26645
|
event.target.value = (_a = event.target.value) === null || _a === void 0 ? void 0 : _a.trim();
|
|
@@ -26726,41 +26649,33 @@ function CustomInput(_a) {
|
|
|
26726
26649
|
handleOnBlur(event);
|
|
26727
26650
|
}
|
|
26728
26651
|
};
|
|
26729
|
-
var renderFormErrorWithIcon = function (error) {
|
|
26730
|
-
return (jsxRuntime.jsxs("div", __assign({ className: "form__error" }, { children: [jsxRuntime.jsx(SvgIcWarning, { className: "form__icon form__icon--error" }), error, typeof additionalErrorInfo === 'function' && additionalErrorInfo()] }), error));
|
|
26731
|
-
};
|
|
26652
|
+
var renderFormErrorWithIcon = function (error) { return (jsxRuntime.jsxs("div", __assign({ className: "form__error" }, { children: [jsxRuntime.jsx(SvgIcWarning, { className: "form__icon form__icon--error" }), error, typeof additionalErrorInfo === 'function' && additionalErrorInfo()] }), error)); };
|
|
26732
26653
|
var getInputError = function () {
|
|
26733
26654
|
if (!(error === null || error === void 0 ? void 0 : error.length)) {
|
|
26734
26655
|
return null;
|
|
26735
26656
|
}
|
|
26736
|
-
|
|
26737
|
-
|
|
26738
|
-
return handleError(error).map(function (err) { return renderFormErrorWithIcon(err); });
|
|
26739
|
-
}
|
|
26740
|
-
return renderFormErrorWithIcon(error);
|
|
26657
|
+
if (typeof error === 'object') {
|
|
26658
|
+
return handleError(error).map(function (err) { return renderFormErrorWithIcon(err); });
|
|
26741
26659
|
}
|
|
26660
|
+
return renderFormErrorWithIcon(error);
|
|
26742
26661
|
};
|
|
26743
26662
|
var renderInputLabelConditionally = function () {
|
|
26744
26663
|
if (typeof label === 'string') {
|
|
26745
26664
|
return jsxRuntime.jsx("span", __assign({ className: "".concat(isRequiredField ? 'dc__required-field' : '') }, { children: label }));
|
|
26746
26665
|
}
|
|
26747
|
-
|
|
26748
|
-
return label;
|
|
26749
|
-
}
|
|
26666
|
+
return label;
|
|
26750
26667
|
};
|
|
26751
26668
|
var renderInputLabel = function () {
|
|
26752
26669
|
if (!label) {
|
|
26753
26670
|
return null;
|
|
26754
26671
|
}
|
|
26755
|
-
|
|
26756
|
-
return (jsxRuntime.jsx("label", __assign({ className: "form__label ".concat(labelClassName), "data-testid": "label-".concat(dataTestid) }, { children: renderInputLabelConditionally() })));
|
|
26757
|
-
}
|
|
26672
|
+
return (jsxRuntime.jsx("label", __assign({ className: "form__label ".concat(labelClassName), "data-testid": "label-".concat(dataTestid) }, { children: renderInputLabelConditionally() })));
|
|
26758
26673
|
};
|
|
26759
|
-
return (jsxRuntime.jsxs("div", __assign({ className: "flex column left top
|
|
26674
|
+
return (jsxRuntime.jsxs("div", __assign({ className: "flex column left top" }, { children: [renderInputLabel(), jsxRuntime.jsx("input", { "data-testid": dataTestid, type: type, name: name, autoComplete: autoComplete, className: "form__input ".concat(rootClassName), onChange: function (e) {
|
|
26760
26675
|
e.persist();
|
|
26761
26676
|
onChange(e);
|
|
26762
26677
|
}, onBlur: onBlur, onFocus: onFocus, placeholder: placeholder, value: value, disabled: disabled, tabIndex: tabIndex, autoFocus: autoFocus, readOnly: readOnly, ref: ref, onKeyPress: onKeyPress, defaultValue: defaultValue, onKeyDown: onKeyDown, required: required }), getInputError(), helperText && (jsxRuntime.jsxs("div", __assign({ className: "form__text-field-info" }, { children: [jsxRuntime.jsx(SvgIcInfoFilled, { className: "form__icon form__icon--info" }), jsxRuntime.jsx("p", __assign({ className: "sentence-case" }, { children: helperText }))] })))] })));
|
|
26763
|
-
}
|
|
26678
|
+
};
|
|
26764
26679
|
|
|
26765
26680
|
exports.AddCDButton = AddCDButton;
|
|
26766
26681
|
exports.AppStatus = AppStatus;
|