@devtron-labs/devtron-fe-common-lib 0.0.48-beta-6 → 0.0.48-beta-7

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.
Files changed (133) hide show
  1. package/.eslintignore +75 -0
  2. package/.eslintrc.js +84 -16
  3. package/.github/pull_request_template.md +25 -0
  4. package/.github/workflows/ci.yml +31 -0
  5. package/.github/workflows/release-package.yml +2 -3
  6. package/.husky/pre-commit +4 -0
  7. package/.lintstagedrc +5 -0
  8. package/.nvmrc +1 -0
  9. package/dist/Common/BreadCrumb/BreadCrumb.d.ts +1 -1
  10. package/dist/Common/BreadCrumb/BreadcrumbStore.d.ts +2 -2
  11. package/dist/Common/Common.service.d.ts +0 -1
  12. package/dist/Common/Constants.d.ts +1 -2
  13. package/dist/Common/CustomInput/CustomInput.d.ts +1 -1
  14. package/dist/Common/CustomInput/Types.d.ts +2 -1
  15. package/dist/Common/CustomTagSelector/ResizableTagTextArea.d.ts +1 -1
  16. package/dist/Common/DeleteComponentModal/DeleteComponent.d.ts +1 -1
  17. package/dist/Common/DevtronProgressing/DevtronProgressing.d.ts +1 -1
  18. package/dist/Common/Dialogs/ConfirmationDialog.d.ts +6 -6
  19. package/dist/Common/Dialogs/DeleteDialog.d.ts +1 -1
  20. package/dist/Common/Dialogs/ForceDeleteDialog.d.ts +1 -1
  21. package/dist/Common/Dialogs/Types.d.ts +1 -1
  22. package/dist/Common/EmptyState/EmptyState.d.ts +20 -17
  23. package/dist/Common/EmptyState/GenericEmptyState.d.ts +1 -1
  24. package/dist/Common/Error.d.ts +2 -1
  25. package/dist/Common/ErrorScreenNotFound.d.ts +1 -1
  26. package/dist/Common/Helper.d.ts +1 -10
  27. package/dist/Common/ImageTags.d.ts +1 -1
  28. package/dist/Common/InfoColorBar/InfoColourbar.d.ts +1 -1
  29. package/dist/Common/Modals/Modal.d.ts +2 -2
  30. package/dist/Common/Modals/OpaqueModal.d.ts +3 -3
  31. package/dist/Common/Modals/VisibleModal.d.ts +3 -3
  32. package/dist/Common/Modals/VisibleModal2.d.ts +3 -3
  33. package/dist/Common/MultiSelectCustomization.d.ts +1 -1
  34. package/dist/Common/Policy.Types.d.ts +2 -2
  35. package/dist/Common/PopupMenu.d.ts +5 -5
  36. package/dist/Common/Progressing.d.ts +2 -2
  37. package/dist/Common/RadioGroup/RadioGroup.d.ts +1 -1
  38. package/dist/Common/ResizableTextarea.d.ts +1 -1
  39. package/dist/Common/TippyCustomized.d.ts +1 -1
  40. package/dist/Common/ToastBody.d.ts +5 -5
  41. package/dist/Common/Types.d.ts +0 -64
  42. package/dist/Common/index.d.ts +0 -1
  43. package/dist/index.d.ts +1 -1
  44. package/dist/index.js +380 -2083
  45. package/package.json +19 -4
  46. package/src/Common/AddCDButton/AddCDButton.tsx +1 -2
  47. package/src/Common/Api.ts +21 -26
  48. package/src/Common/AppStatus/AppStatus.tsx +12 -12
  49. package/src/Common/AppStatus/utils.ts +6 -5
  50. package/src/Common/BreadCrumb/BreadCrumb.tsx +32 -28
  51. package/src/Common/BreadCrumb/BreadcrumbStore.tsx +2 -2
  52. package/src/Common/BreadCrumb/Types.ts +11 -12
  53. package/src/Common/Checkbox.tsx +17 -19
  54. package/src/Common/ClipboardButton/ClipboardButton.tsx +1 -1
  55. package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +0 -1
  56. package/src/Common/Common.service.ts +59 -68
  57. package/src/Common/Constants.ts +9 -10
  58. package/src/Common/CustomInput/CustomInput.tsx +22 -28
  59. package/src/Common/CustomInput/Types.ts +4 -3
  60. package/src/Common/CustomInput/index.ts +1 -1
  61. package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +15 -18
  62. package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +9 -9
  63. package/src/Common/CustomTagSelector/TagDetails.tsx +9 -3
  64. package/src/Common/CustomTagSelector/TagLabelSelect.tsx +7 -9
  65. package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +31 -35
  66. package/src/Common/CustomTagSelector/TagSelector.utils.ts +2 -3
  67. package/src/Common/CustomTagSelector/Types.ts +1 -1
  68. package/src/Common/CustomTagSelector/ValidationRules.ts +18 -22
  69. package/src/Common/CustomTagSelector/index.ts +2 -2
  70. package/src/Common/DebouncedSearch/DebouncedSearch.tsx +2 -1
  71. package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +0 -1
  72. package/src/Common/DeleteComponentModal/DeleteComponent.tsx +27 -32
  73. package/src/Common/DeleteComponentModal/types.ts +1 -1
  74. package/src/Common/DevtronProgressing/DevtronProgressing.tsx +5 -8
  75. package/src/Common/Dialogs/ConfirmationDialog.tsx +24 -24
  76. package/src/Common/Dialogs/DeleteDialog.tsx +3 -5
  77. package/src/Common/Dialogs/DialogForm.tsx +31 -35
  78. package/src/Common/Dialogs/ForceDeleteDialog.tsx +13 -7
  79. package/src/Common/Dialogs/Types.ts +12 -12
  80. package/src/Common/Dialogs/index.ts +1 -1
  81. package/src/Common/Drawer/Drawer.tsx +1 -1
  82. package/src/Common/EmptyState/EmptyState.tsx +13 -17
  83. package/src/Common/EmptyState/GenericEmptyState.tsx +25 -15
  84. package/src/Common/Error.tsx +5 -5
  85. package/src/Common/ErrorScreenNotFound.tsx +9 -12
  86. package/src/Common/Grid/Grid.tsx +1 -2
  87. package/src/Common/Helper.tsx +23 -125
  88. package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +1 -1
  89. package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +1 -1
  90. package/src/Common/ImageTags.Types.ts +2 -3
  91. package/src/Common/ImageTags.tsx +61 -66
  92. package/src/Common/InfoColorBar/InfoColourbar.tsx +10 -5
  93. package/src/Common/Modals/Modal.tsx +3 -3
  94. package/src/Common/Modals/OpaqueModal.tsx +25 -18
  95. package/src/Common/Modals/VisibleModal.tsx +7 -3
  96. package/src/Common/Modals/VisibleModal2.tsx +20 -15
  97. package/src/Common/MultiSelectCustomization.tsx +9 -13
  98. package/src/Common/Policy.Types.ts +38 -38
  99. package/src/Common/PopupMenu.tsx +10 -9
  100. package/src/Common/Progressing.tsx +15 -18
  101. package/src/Common/RJSF/Form.tsx +0 -1
  102. package/src/Common/RJSF/common/FieldRow.tsx +0 -1
  103. package/src/Common/RJSF/config.ts +0 -1
  104. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +1 -1
  105. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +0 -1
  106. package/src/Common/RJSF/templates/BaseInput.tsx +0 -1
  107. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +0 -1
  108. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +0 -1
  109. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +1 -6
  110. package/src/Common/RJSF/templates/Description.tsx +0 -1
  111. package/src/Common/RJSF/templates/Field.tsx +14 -3
  112. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +6 -9
  113. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +5 -7
  114. package/src/Common/RJSF/templates/TitleField.tsx +0 -1
  115. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +0 -1
  116. package/src/Common/RJSF/utils.ts +53 -57
  117. package/src/Common/RJSF/widgets/Checkbox.tsx +2 -2
  118. package/src/Common/RJSF/widgets/Select.tsx +0 -1
  119. package/src/Common/RadioGroup/RadioGroup.tsx +18 -23
  120. package/src/Common/RadioGroup.tsx +24 -23
  121. package/src/Common/Reload.tsx +0 -1
  122. package/src/Common/ResizableTextarea.tsx +18 -17
  123. package/src/Common/Security/ScanVulnerabilitiesTable.tsx +29 -34
  124. package/src/Common/ServerError.ts +5 -1
  125. package/src/Common/TippyCustomized.tsx +41 -38
  126. package/src/Common/ToastBody.tsx +6 -7
  127. package/src/Common/Toggle/Toggle.tsx +3 -3
  128. package/src/Common/Types.ts +12 -81
  129. package/src/Common/index.ts +0 -1
  130. package/src/custom.d.ts +7 -7
  131. package/src/index.ts +1 -1
  132. package/dist/Common/ChartVersionAndTypeSelector.d.ts +0 -4
  133. package/src/Common/ChartVersionAndTypeSelector.tsx +0 -78
package/dist/index.js CHANGED
@@ -4,26 +4,25 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var ReactDOM = require('react-dom');
6
6
  var reactRouterDom = require('react-router-dom');
7
- var vm = require('vm');
8
7
  var RJSF = require('@rjsf/core');
9
8
  var RJSFValidator = require('@rjsf/validator-ajv8');
10
9
  var utils = require('@rjsf/utils');
11
10
 
12
11
  function _interopNamespaceDefault(e) {
13
- var n = Object.create(null);
14
- if (e) {
15
- Object.keys(e).forEach(function (k) {
16
- if (k !== 'default') {
17
- var d = Object.getOwnPropertyDescriptor(e, k);
18
- Object.defineProperty(n, k, d.get ? d : {
19
- enumerable: true,
20
- get: function () { return e[k]; }
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
+ }
21
22
  });
22
- }
23
- });
24
- }
25
- n.default = e;
26
- return Object.freeze(n);
23
+ }
24
+ n.default = e;
25
+ return Object.freeze(n);
27
26
  }
28
27
 
29
28
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
@@ -49,7 +48,6 @@ var ROUTES = {
49
48
  USER_CHECK_ROLE: 'user/check/roles',
50
49
  IMAGE_TAGGING: 'app/image-tagging',
51
50
  CD_MATERIAL_GET: 'app/cd-pipeline',
52
- DEPLOYMENT_TEMPLATE_LIST: 'app/template/list'
53
51
  };
54
52
  exports.KEY_VALUE = void 0;
55
53
  (function (KEY_VALUE) {
@@ -253,9 +251,9 @@ var REGISTRY_TYPE_MAP = {
253
251
  },
254
252
  };
255
253
  var RepositoryAction = {
256
- CONTAINER: "CONTAINER",
257
- CHART_PULL: "CHART_PULL",
258
- CHART_PUSH: "CHART_PUSH"
254
+ CONTAINER: 'CONTAINER',
255
+ CHART_PULL: 'CHART_PULL',
256
+ CHART_PUSH: 'CHART_PUSH',
259
257
  };
260
258
 
261
259
  /******************************************************************************
@@ -272,7 +270,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
272
270
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
273
271
  PERFORMANCE OF THIS SOFTWARE.
274
272
  ***************************************************************************** */
275
- /* global Reflect, Promise */
273
+ /* global Reflect, Promise, SuppressedError, Symbol */
276
274
 
277
275
  var extendStatics = function(d, b) {
278
276
  extendStatics = Object.setPrototypeOf ||
@@ -281,7 +279,7 @@ var extendStatics = function(d, b) {
281
279
  return extendStatics(d, b);
282
280
  };
283
281
 
284
- function __extends$1(d, b) {
282
+ function __extends(d, b) {
285
283
  if (typeof b !== "function" && b !== null)
286
284
  throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
287
285
  extendStatics(d, b);
@@ -375,7 +373,12 @@ function __spreadArray(to, from, pack) {
375
373
  }
376
374
  }
377
375
  return to.concat(ar || Array.prototype.slice.call(from));
378
- }
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
+ };
379
382
 
380
383
  var ServerError = /** @class */ (function () {
381
384
  function ServerError(error) {
@@ -387,7 +390,7 @@ var ServerError = /** @class */ (function () {
387
390
  return ServerError;
388
391
  }());
389
392
  var ServerErrors = /** @class */ (function (_super) {
390
- __extends$1(ServerErrors, _super);
393
+ __extends(ServerErrors, _super);
391
394
  function ServerErrors(obj) {
392
395
  var _this = _super.call(this) || this;
393
396
  _this.code = obj.code;
@@ -577,7 +580,7 @@ function handleServerError(contentType, response) {
577
580
  status = response.statusText || responseMessages[code];
578
581
  serverError = new ServerErrors({ code: code, errors: [] });
579
582
  if (!(contentType !== 'application/json')) return [3 /*break*/, 1];
580
- //used for better debugging,
583
+ // used for better debugging,
581
584
  status = "".concat(responseMessages[code], ". Please try again.");
582
585
  return [3 /*break*/, 3];
583
586
  case 1: return [4 /*yield*/, response.json()];
@@ -605,8 +608,8 @@ function fetchAPI(url, type, data, signal, preventAutoLogout, isMultipartRequest
605
608
  method: type,
606
609
  signal: signal,
607
610
  body: data ? JSON.stringify(data) : undefined,
611
+ credentials: 'include',
608
612
  };
609
- options['credentials'] = 'include';
610
613
  return [2 /*return*/, fetch("".concat(Host, "/").concat(url), !isMultipartRequest
611
614
  ? options
612
615
  : {
@@ -639,17 +642,17 @@ function fetchAPI(url, type, data, signal, preventAutoLogout, isMultipartRequest
639
642
  if (contentType === 'application/json') {
640
643
  return [2 /*return*/, response.json().then(function (responseBody) {
641
644
  if (responseBody.code >= 300 && responseBody.code <= 599) {
642
- //Test Code in Response Body, despite successful HTTP Response Code
645
+ // Test Code in Response Body, despite successful HTTP Response Code
643
646
  throw new ServerErrors({ code: responseBody.code, errors: responseBody.errors });
644
647
  }
645
648
  else {
646
- //Successfull Response. Expected Response Type {code, result, status}
649
+ // Successfull Response. Expected Response Type {code, result, status}
647
650
  return responseBody;
648
651
  }
649
652
  })];
650
653
  }
651
- else if (contentType === 'octet-stream' || contentType === 'application/octet-stream') {
652
- //used in getArtifact() API only
654
+ if (contentType === 'octet-stream' || contentType === 'application/octet-stream') {
655
+ // used in getArtifact() API only
653
656
  return [2 /*return*/, response];
654
657
  }
655
658
  _a.label = 4;
@@ -657,7 +660,7 @@ function fetchAPI(url, type, data, signal, preventAutoLogout, isMultipartRequest
657
660
  }
658
661
  });
659
662
  }); }, function (error) {
660
- //Network call fails. Handle Failed to Fetch
663
+ // Network call fails. Handle Failed to Fetch
661
664
  var err = {
662
665
  code: 0,
663
666
  userMessage: error.message,
@@ -703,15 +706,11 @@ function fetchInTime(url, type, data, options, isMultipartRequest) {
703
706
  }
704
707
  });
705
708
  }
706
- var post = function (url, data, options, isMultipartRequest) {
707
- return fetchInTime(url, 'POST', data, options, isMultipartRequest);
708
- };
709
+ var post = function (url, data, options, isMultipartRequest) { return fetchInTime(url, 'POST', data, options, isMultipartRequest); };
709
710
  var put = function (url, data, options) {
710
711
  return fetchInTime(url, 'PUT', data, options);
711
712
  };
712
- var get = function (url, options) {
713
- return fetchInTime(url, 'GET', null, options);
714
- };
713
+ var get = function (url, options) { return fetchInTime(url, 'GET', null, options); };
715
714
  var trash = function (url, data, options) {
716
715
  return fetchInTime(url, 'DELETE', data, options);
717
716
  };
@@ -770,10 +769,10 @@ var SvgIcProgressing = function SvgIcProgressing(props) {
770
769
  }))));
771
770
  };
772
771
 
773
- function EmptyState(_a) {
772
+ var EmptyState = function (_a) {
774
773
  var children = _a.children, _b = _a.className, className = _b === void 0 ? '' : _b;
775
774
  return (jsxRuntime.jsx("div", __assign({ className: "flex column empty-state w-100 h-100 ".concat(className) }, { children: children })));
776
- }
775
+ };
777
776
  function Image(_a) {
778
777
  var children = _a.children;
779
778
  return children;
@@ -782,17 +781,15 @@ function Title(_a) {
782
781
  var children = _a.children;
783
782
  return children;
784
783
  }
785
- function Subtitle(_a) {
784
+ var Subtitle = function (_a) {
786
785
  var children = _a.children, className = _a.className;
787
- return jsxRuntime.jsx("p", __assign({ className: "subtitle ".concat(className || '') }, { children: children }));
788
- }
786
+ return (jsxRuntime.jsx("p", __assign({ className: "subtitle ".concat(className || '') }, { children: children })));
787
+ };
789
788
  function Button$1(_a) {
790
789
  var children = _a.children;
791
790
  return children;
792
791
  }
793
- var Loading = function (props) {
794
- 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 }))] });
795
- };
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 }))] })); };
796
793
  EmptyState.Image = Image;
797
794
  EmptyState.Title = Title;
798
795
  EmptyState.Subtitle = Subtitle;
@@ -2175,7 +2172,7 @@ eventManager.on(2
2175
2172
  });
2176
2173
 
2177
2174
  var ToastBody = /** @class */ (function (_super) {
2178
- __extends$1(ToastBody, _super);
2175
+ __extends(ToastBody, _super);
2179
2176
  function ToastBody() {
2180
2177
  return _super !== null && _super.apply(this, arguments) || this;
2181
2178
  }
@@ -2185,7 +2182,7 @@ var ToastBody = /** @class */ (function (_super) {
2185
2182
  return ToastBody;
2186
2183
  }(React.Component));
2187
2184
  var ToastBody3 = /** @class */ (function (_super) {
2188
- __extends$1(ToastBody3, _super);
2185
+ __extends(ToastBody3, _super);
2189
2186
  function ToastBody3() {
2190
2187
  return _super !== null && _super.apply(this, arguments) || this;
2191
2188
  }
@@ -2195,7 +2192,7 @@ var ToastBody3 = /** @class */ (function (_super) {
2195
2192
  return ToastBody3;
2196
2193
  }(React.Component));
2197
2194
  var ToastBodyWithButton = /** @class */ (function (_super) {
2198
- __extends$1(ToastBodyWithButton, _super);
2195
+ __extends(ToastBodyWithButton, _super);
2199
2196
  function ToastBodyWithButton() {
2200
2197
  return _super !== null && _super.apply(this, arguments) || this;
2201
2198
  }
@@ -2226,25 +2223,23 @@ var notFound = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAFACAYAAACSgS
2226
2223
 
2227
2224
  var AppNotDeployed = "data:image/png;base64,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";
2228
2225
 
2229
- function GenericEmptyState(_a) {
2226
+ var GenericEmptyState = function (_a) {
2230
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;
2231
2228
  var isRowLayout = layout === 'row';
2232
- 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: 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] }))] })));
2233
- }
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
+ };
2234
2231
 
2235
- function ErrorScreenNotFound() {
2232
+ var ErrorScreenNotFound = function () {
2236
2233
  var push = reactRouterDom.useHistory().push;
2237
2234
  var redirectToHome = function () {
2238
2235
  push('/app/list');
2239
2236
  };
2240
- var renderGenerateButton = function () {
2241
- 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 })));
2242
- };
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 }))); };
2243
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 }));
2244
- }
2239
+ };
2245
2240
 
2246
2241
  var ErrorScreenManager = /** @class */ (function (_super) {
2247
- __extends$1(ErrorScreenManager, _super);
2242
+ __extends(ErrorScreenManager, _super);
2248
2243
  function ErrorScreenManager() {
2249
2244
  return _super !== null && _super.apply(this, arguments) || this;
2250
2245
  }
@@ -2255,7 +2250,7 @@ var ErrorScreenManager = /** @class */ (function (_super) {
2255
2250
  case 401:
2256
2251
  return 'Unauthorized';
2257
2252
  case 403:
2258
- return (jsxRuntime.jsx(ErrorScreenNotAuthorized, { subtitle: this.props.subtitle }));
2253
+ return jsxRuntime.jsx(ErrorScreenNotAuthorized, { subtitle: this.props.subtitle });
2259
2254
  case 404:
2260
2255
  return jsxRuntime.jsx(ErrorScreenNotFound, {});
2261
2256
  case 500:
@@ -2275,7 +2270,7 @@ var ErrorScreenManager = /** @class */ (function (_super) {
2275
2270
  return ErrorScreenManager;
2276
2271
  }(React.Component));
2277
2272
  var ErrorScreenNotAuthorized = /** @class */ (function (_super) {
2278
- __extends$1(ErrorScreenNotAuthorized, _super);
2273
+ __extends(ErrorScreenNotAuthorized, _super);
2279
2274
  function ErrorScreenNotAuthorized() {
2280
2275
  return _super !== null && _super.apply(this, arguments) || this;
2281
2276
  }
@@ -9757,1612 +9752,112 @@ var moment$1 = {
9757
9752
 
9758
9753
  proto$2.isValid = isValid$1;
9759
9754
  proto$2.abs = abs;
9760
- proto$2.add = add$1;
9761
- proto$2.subtract = subtract$1;
9762
- proto$2.as = as;
9763
- proto$2.asMilliseconds = asMilliseconds;
9764
- proto$2.asSeconds = asSeconds;
9765
- proto$2.asMinutes = asMinutes;
9766
- proto$2.asHours = asHours;
9767
- proto$2.asDays = asDays;
9768
- proto$2.asWeeks = asWeeks;
9769
- proto$2.asMonths = asMonths;
9770
- proto$2.asQuarters = asQuarters;
9771
- proto$2.asYears = asYears;
9772
- proto$2.valueOf = valueOf$1;
9773
- proto$2._bubble = bubble;
9774
- proto$2.clone = clone$1;
9775
- proto$2.get = get$2;
9776
- proto$2.milliseconds = milliseconds;
9777
- proto$2.seconds = seconds;
9778
- proto$2.minutes = minutes;
9779
- proto$2.hours = hours;
9780
- proto$2.days = days;
9781
- proto$2.weeks = weeks;
9782
- proto$2.months = months;
9783
- proto$2.years = years;
9784
- proto$2.humanize = humanize;
9785
- proto$2.toISOString = toISOString$1;
9786
- proto$2.toString = toISOString$1;
9787
- proto$2.toJSON = toISOString$1;
9788
- proto$2.locale = locale;
9789
- proto$2.localeData = localeData;
9790
-
9791
- proto$2.toIsoString = deprecate(
9792
- 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
9793
- toISOString$1
9794
- );
9795
- proto$2.lang = lang;
9796
-
9797
- // FORMATTING
9798
-
9799
- addFormatToken('X', 0, 0, 'unix');
9800
- addFormatToken('x', 0, 0, 'valueOf');
9801
-
9802
- // PARSING
9803
-
9804
- addRegexToken('x', matchSigned);
9805
- addRegexToken('X', matchTimestamp);
9806
- addParseToken('X', function (input, array, config) {
9807
- config._d = new Date(parseFloat(input) * 1000);
9808
- });
9809
- addParseToken('x', function (input, array, config) {
9810
- config._d = new Date(toInt(input));
9811
- });
9812
-
9813
- //! moment.js
9814
-
9815
- hooks.version = '2.29.4';
9816
-
9817
- setHookCallback(createLocal);
9818
-
9819
- hooks.fn = proto;
9820
- hooks.min = min;
9821
- hooks.max = max;
9822
- hooks.now = now;
9823
- hooks.utc = createUTC;
9824
- hooks.unix = createUnix;
9825
- hooks.months = listMonths;
9826
- hooks.isDate = isDate;
9827
- hooks.locale = getSetGlobalLocale;
9828
- hooks.invalid = createInvalid;
9829
- hooks.duration = createDuration;
9830
- hooks.isMoment = isMoment;
9831
- hooks.weekdays = listWeekdays;
9832
- hooks.parseZone = createInZone;
9833
- hooks.localeData = getLocale;
9834
- hooks.isDuration = isDuration;
9835
- hooks.monthsShort = listMonthsShort;
9836
- hooks.weekdaysMin = listWeekdaysMin;
9837
- hooks.defineLocale = defineLocale;
9838
- hooks.updateLocale = updateLocale;
9839
- hooks.locales = listLocales;
9840
- hooks.weekdaysShort = listWeekdaysShort;
9841
- hooks.normalizeUnits = normalizeUnits;
9842
- hooks.relativeTimeRounding = getSetRelativeTimeRounding;
9843
- hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
9844
- hooks.calendarFormat = getCalendarFormat;
9845
- hooks.prototype = proto;
9846
-
9847
- // currently HTML5 input type only supports 24-hour formats
9848
- hooks.HTML5_FMT = {
9849
- DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
9850
- DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
9851
- DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
9852
- DATE: 'YYYY-MM-DD', // <input type="date" />
9853
- TIME: 'HH:mm', // <input type="time" />
9854
- TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
9855
- TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
9856
- WEEK: 'GGGG-[W]WW', // <input type="week" />
9857
- MONTH: 'YYYY-MM', // <input type="month" />
9858
- };
9859
-
9860
- return hooks;
9861
-
9862
- })));
9863
- } (moment$1));
9864
-
9865
- var moment = momentExports;
9866
-
9867
- const {
9868
- hasOwnProperty: hasOwnProp
9869
- } = Object.prototype;
9870
- /**
9871
- * @typedef {null|boolean|number|string|PlainObject|GenericArray} JSONObject
9872
- */
9873
-
9874
- /**
9875
- * @typedef {any} AnyItem
9876
- */
9877
-
9878
- /**
9879
- * @typedef {any} AnyResult
9880
- */
9881
-
9882
- /**
9883
- * Copies array and then pushes item into it.
9884
- * @param {GenericArray} arr Array to copy and into which to push
9885
- * @param {AnyItem} item Array item to add (to end)
9886
- * @returns {GenericArray} Copy of the original array
9887
- */
9888
-
9889
- function push(arr, item) {
9890
- arr = arr.slice();
9891
- arr.push(item);
9892
- return arr;
9893
- }
9894
- /**
9895
- * Copies array and then unshifts item into it.
9896
- * @param {AnyItem} item Array item to add (to beginning)
9897
- * @param {GenericArray} arr Array to copy and into which to unshift
9898
- * @returns {GenericArray} Copy of the original array
9899
- */
9900
-
9901
-
9902
- function unshift(item, arr) {
9903
- arr = arr.slice();
9904
- arr.unshift(item);
9905
- return arr;
9906
- }
9907
- /**
9908
- * Caught when JSONPath is used without `new` but rethrown if with `new`
9909
- * @extends Error
9910
- */
9911
-
9912
-
9913
- class NewError extends Error {
9914
- /**
9915
- * @param {AnyResult} value The evaluated scalar value
9916
- */
9917
- constructor(value) {
9918
- super('JSONPath should not be called with "new" (it prevents return ' + 'of (unwrapped) scalar values)');
9919
- this.avoidNew = true;
9920
- this.value = value;
9921
- this.name = 'NewError';
9922
- }
9923
-
9924
- }
9925
- /**
9926
- * @typedef {PlainObject} ReturnObject
9927
- * @property {string} path
9928
- * @property {JSONObject} value
9929
- * @property {PlainObject|GenericArray} parent
9930
- * @property {string} parentProperty
9931
- */
9932
-
9933
- /**
9934
- * @callback JSONPathCallback
9935
- * @param {string|PlainObject} preferredOutput
9936
- * @param {"value"|"property"} type
9937
- * @param {ReturnObject} fullRetObj
9938
- * @returns {void}
9939
- */
9940
-
9941
- /**
9942
- * @callback OtherTypeCallback
9943
- * @param {JSONObject} val
9944
- * @param {string} path
9945
- * @param {PlainObject|GenericArray} parent
9946
- * @param {string} parentPropName
9947
- * @returns {boolean}
9948
- */
9949
-
9950
- /* eslint-disable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */
9951
-
9952
- /**
9953
- * @typedef {PlainObject} JSONPathOptions
9954
- * @property {JSON} json
9955
- * @property {string|string[]} path
9956
- * @property {"value"|"path"|"pointer"|"parent"|"parentProperty"|"all"} [resultType="value"]
9957
- * @property {boolean} [flatten=false]
9958
- * @property {boolean} [wrap=true]
9959
- * @property {PlainObject} [sandbox={}]
9960
- * @property {boolean} [preventEval=false]
9961
- * @property {PlainObject|GenericArray|null} [parent=null]
9962
- * @property {string|null} [parentProperty=null]
9963
- * @property {JSONPathCallback} [callback]
9964
- * @property {OtherTypeCallback} [otherTypeCallback] Defaults to
9965
- * function which throws on encountering `@other`
9966
- * @property {boolean} [autostart=true]
9967
- */
9968
-
9969
- /* eslint-enable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */
9970
-
9971
- /**
9972
- * @param {string|JSONPathOptions} opts If a string, will be treated as `expr`
9973
- * @param {string} [expr] JSON path to evaluate
9974
- * @param {JSON} [obj] JSON object to evaluate against
9975
- * @param {JSONPathCallback} [callback] Passed 3 arguments: 1) desired payload
9976
- * per `resultType`, 2) `"value"|"property"`, 3) Full returned object with
9977
- * all payloads
9978
- * @param {OtherTypeCallback} [otherTypeCallback] If `@other()` is at the end
9979
- * of one's query, this will be invoked with the value of the item, its
9980
- * path, its parent, and its parent's property name, and it should return
9981
- * a boolean indicating whether the supplied value belongs to the "other"
9982
- * type or not (or it may handle transformations and return `false`).
9983
- * @returns {JSONPath}
9984
- * @class
9985
- */
9986
-
9987
-
9988
- function JSONPath(opts, expr, obj, callback, otherTypeCallback) {
9989
- // eslint-disable-next-line no-restricted-syntax
9990
- if (!(this instanceof JSONPath)) {
9991
- try {
9992
- return new JSONPath(opts, expr, obj, callback, otherTypeCallback);
9993
- } catch (e) {
9994
- if (!e.avoidNew) {
9995
- throw e;
9996
- }
9997
-
9998
- return e.value;
9999
- }
10000
- }
10001
-
10002
- if (typeof opts === 'string') {
10003
- otherTypeCallback = callback;
10004
- callback = obj;
10005
- obj = expr;
10006
- expr = opts;
10007
- opts = null;
10008
- }
10009
-
10010
- const optObj = opts && typeof opts === 'object';
10011
- opts = opts || {};
10012
- this.json = opts.json || obj;
10013
- this.path = opts.path || expr;
10014
- this.resultType = opts.resultType || 'value';
10015
- this.flatten = opts.flatten || false;
10016
- this.wrap = hasOwnProp.call(opts, 'wrap') ? opts.wrap : true;
10017
- this.sandbox = opts.sandbox || {};
10018
- this.preventEval = opts.preventEval || false;
10019
- this.parent = opts.parent || null;
10020
- this.parentProperty = opts.parentProperty || null;
10021
- this.callback = opts.callback || callback || null;
10022
-
10023
- this.otherTypeCallback = opts.otherTypeCallback || otherTypeCallback || function () {
10024
- throw new TypeError('You must supply an otherTypeCallback callback option ' + 'with the @other() operator.');
10025
- };
10026
-
10027
- if (opts.autostart !== false) {
10028
- const args = {
10029
- path: optObj ? opts.path : expr
10030
- };
10031
-
10032
- if (!optObj) {
10033
- args.json = obj;
10034
- } else if ('json' in opts) {
10035
- args.json = opts.json;
10036
- }
10037
-
10038
- const ret = this.evaluate(args);
10039
-
10040
- if (!ret || typeof ret !== 'object') {
10041
- throw new NewError(ret);
10042
- }
10043
-
10044
- return ret;
10045
- }
10046
- } // PUBLIC METHODS
10047
-
10048
-
10049
- JSONPath.prototype.evaluate = function (expr, json, callback, otherTypeCallback) {
10050
- let currParent = this.parent,
10051
- currParentProperty = this.parentProperty;
10052
- let {
10053
- flatten,
10054
- wrap
10055
- } = this;
10056
- this.currResultType = this.resultType;
10057
- this.currPreventEval = this.preventEval;
10058
- this.currSandbox = this.sandbox;
10059
- callback = callback || this.callback;
10060
- this.currOtherTypeCallback = otherTypeCallback || this.otherTypeCallback;
10061
- json = json || this.json;
10062
- expr = expr || this.path;
10063
-
10064
- if (expr && typeof expr === 'object' && !Array.isArray(expr)) {
10065
- if (!expr.path && expr.path !== '') {
10066
- throw new TypeError('You must supply a "path" property when providing an object ' + 'argument to JSONPath.evaluate().');
10067
- }
10068
-
10069
- if (!hasOwnProp.call(expr, 'json')) {
10070
- throw new TypeError('You must supply a "json" property when providing an object ' + 'argument to JSONPath.evaluate().');
10071
- }
10072
-
10073
- ({
10074
- json
10075
- } = expr);
10076
- flatten = hasOwnProp.call(expr, 'flatten') ? expr.flatten : flatten;
10077
- this.currResultType = hasOwnProp.call(expr, 'resultType') ? expr.resultType : this.currResultType;
10078
- this.currSandbox = hasOwnProp.call(expr, 'sandbox') ? expr.sandbox : this.currSandbox;
10079
- wrap = hasOwnProp.call(expr, 'wrap') ? expr.wrap : wrap;
10080
- this.currPreventEval = hasOwnProp.call(expr, 'preventEval') ? expr.preventEval : this.currPreventEval;
10081
- callback = hasOwnProp.call(expr, 'callback') ? expr.callback : callback;
10082
- this.currOtherTypeCallback = hasOwnProp.call(expr, 'otherTypeCallback') ? expr.otherTypeCallback : this.currOtherTypeCallback;
10083
- currParent = hasOwnProp.call(expr, 'parent') ? expr.parent : currParent;
10084
- currParentProperty = hasOwnProp.call(expr, 'parentProperty') ? expr.parentProperty : currParentProperty;
10085
- expr = expr.path;
10086
- }
10087
-
10088
- currParent = currParent || null;
10089
- currParentProperty = currParentProperty || null;
10090
-
10091
- if (Array.isArray(expr)) {
10092
- expr = JSONPath.toPathString(expr);
10093
- }
10094
-
10095
- if (!expr && expr !== '' || !json) {
10096
- return undefined;
10097
- }
10098
-
10099
- const exprList = JSONPath.toPathArray(expr);
10100
-
10101
- if (exprList[0] === '$' && exprList.length > 1) {
10102
- exprList.shift();
10103
- }
10104
-
10105
- this._hasParentSelector = null;
10106
-
10107
- const result = this._trace(exprList, json, ['$'], currParent, currParentProperty, callback).filter(function (ea) {
10108
- return ea && !ea.isParentSelector;
10109
- });
10110
-
10111
- if (!result.length) {
10112
- return wrap ? [] : undefined;
10113
- }
10114
-
10115
- if (!wrap && result.length === 1 && !result[0].hasArrExpr) {
10116
- return this._getPreferredOutput(result[0]);
10117
- }
10118
-
10119
- return result.reduce((rslt, ea) => {
10120
- const valOrPath = this._getPreferredOutput(ea);
10121
-
10122
- if (flatten && Array.isArray(valOrPath)) {
10123
- rslt = rslt.concat(valOrPath);
10124
- } else {
10125
- rslt.push(valOrPath);
10126
- }
10127
-
10128
- return rslt;
10129
- }, []);
10130
- }; // PRIVATE METHODS
10131
-
10132
-
10133
- JSONPath.prototype._getPreferredOutput = function (ea) {
10134
- const resultType = this.currResultType;
10135
-
10136
- switch (resultType) {
10137
- case 'all':
10138
- {
10139
- const path = Array.isArray(ea.path) ? ea.path : JSONPath.toPathArray(ea.path);
10140
- ea.pointer = JSONPath.toPointer(path);
10141
- ea.path = typeof ea.path === 'string' ? ea.path : JSONPath.toPathString(ea.path);
10142
- return ea;
10143
- }
10144
-
10145
- case 'value':
10146
- case 'parent':
10147
- case 'parentProperty':
10148
- return ea[resultType];
10149
-
10150
- case 'path':
10151
- return JSONPath.toPathString(ea[resultType]);
10152
-
10153
- case 'pointer':
10154
- return JSONPath.toPointer(ea.path);
10155
-
10156
- default:
10157
- throw new TypeError('Unknown result type');
10158
- }
10159
- };
10160
-
10161
- JSONPath.prototype._handleCallback = function (fullRetObj, callback, type) {
10162
- if (callback) {
10163
- const preferredOutput = this._getPreferredOutput(fullRetObj);
10164
-
10165
- fullRetObj.path = typeof fullRetObj.path === 'string' ? fullRetObj.path : JSONPath.toPathString(fullRetObj.path); // eslint-disable-next-line n/callback-return
10166
-
10167
- callback(preferredOutput, type, fullRetObj);
10168
- }
10169
- };
10170
- /**
10171
- *
10172
- * @param {string} expr
10173
- * @param {JSONObject} val
10174
- * @param {string} path
10175
- * @param {PlainObject|GenericArray} parent
10176
- * @param {string} parentPropName
10177
- * @param {JSONPathCallback} callback
10178
- * @param {boolean} hasArrExpr
10179
- * @param {boolean} literalPriority
10180
- * @returns {ReturnObject|ReturnObject[]}
10181
- */
10182
-
10183
-
10184
- JSONPath.prototype._trace = function (expr, val, path, parent, parentPropName, callback, hasArrExpr, literalPriority) {
10185
- // No expr to follow? return path and value as the result of
10186
- // this trace branch
10187
- let retObj;
10188
-
10189
- if (!expr.length) {
10190
- retObj = {
10191
- path,
10192
- value: val,
10193
- parent,
10194
- parentProperty: parentPropName,
10195
- hasArrExpr
10196
- };
10197
-
10198
- this._handleCallback(retObj, callback, 'value');
10199
-
10200
- return retObj;
10201
- }
10202
-
10203
- const loc = expr[0],
10204
- x = expr.slice(1); // We need to gather the return value of recursive trace calls in order to
10205
- // do the parent sel computation.
10206
-
10207
- const ret = [];
10208
- /**
10209
- *
10210
- * @param {ReturnObject|ReturnObject[]} elems
10211
- * @returns {void}
10212
- */
10213
-
10214
- function addRet(elems) {
10215
- if (Array.isArray(elems)) {
10216
- // This was causing excessive stack size in Node (with or
10217
- // without Babel) against our performance test:
10218
- // `ret.push(...elems);`
10219
- elems.forEach(t => {
10220
- ret.push(t);
10221
- });
10222
- } else {
10223
- ret.push(elems);
10224
- }
10225
- }
10226
-
10227
- if ((typeof loc !== 'string' || literalPriority) && val && hasOwnProp.call(val, loc)) {
10228
- // simple case--directly follow property
10229
- addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr)); // eslint-disable-next-line unicorn/prefer-switch -- Part of larger `if`
10230
- } else if (loc === '*') {
10231
- // all child properties
10232
- this._walk(val, m => {
10233
- addRet(this._trace(x, val[m], push(path, m), val, m, callback, true, true));
10234
- });
10235
- } else if (loc === '..') {
10236
- // all descendent parent properties
10237
- // Check remaining expression with val's immediate children
10238
- addRet(this._trace(x, val, path, parent, parentPropName, callback, hasArrExpr));
10239
-
10240
- this._walk(val, m => {
10241
- // We don't join m and x here because we only want parents,
10242
- // not scalar values
10243
- if (typeof val[m] === 'object') {
10244
- // Keep going with recursive descent on val's
10245
- // object children
10246
- addRet(this._trace(expr.slice(), val[m], push(path, m), val, m, callback, true));
10247
- }
10248
- }); // The parent sel computation is handled in the frame above using the
10249
- // ancestor object of val
10250
-
10251
- } else if (loc === '^') {
10252
- // This is not a final endpoint, so we do not invoke the callback here
10253
- this._hasParentSelector = true;
10254
- return {
10255
- path: path.slice(0, -1),
10256
- expr: x,
10257
- isParentSelector: true
10258
- };
10259
- } else if (loc === '~') {
10260
- // property name
10261
- retObj = {
10262
- path: push(path, loc),
10263
- value: parentPropName,
10264
- parent,
10265
- parentProperty: null
10266
- };
10267
-
10268
- this._handleCallback(retObj, callback, 'property');
10269
-
10270
- return retObj;
10271
- } else if (loc === '$') {
10272
- // root only
10273
- addRet(this._trace(x, val, path, null, null, callback, hasArrExpr));
10274
- } else if (/^(-?\d*):(-?\d*):?(\d*)$/u.test(loc)) {
10275
- // [start:end:step] Python slice syntax
10276
- addRet(this._slice(loc, x, val, path, parent, parentPropName, callback));
10277
- } else if (loc.indexOf('?(') === 0) {
10278
- // [?(expr)] (filtering)
10279
- if (this.currPreventEval) {
10280
- throw new Error('Eval [?(expr)] prevented in JSONPath expression.');
10281
- }
10282
-
10283
- const safeLoc = loc.replace(/^\?\((.*?)\)$/u, '$1');
10284
-
10285
- this._walk(val, m => {
10286
- if (this._eval(safeLoc, val[m], m, path, parent, parentPropName)) {
10287
- addRet(this._trace(x, val[m], push(path, m), val, m, callback, true));
10288
- }
10289
- });
10290
- } else if (loc[0] === '(') {
10291
- // [(expr)] (dynamic property/index)
10292
- if (this.currPreventEval) {
10293
- throw new Error('Eval [(expr)] prevented in JSONPath expression.');
10294
- } // As this will resolve to a property name (but we don't know it
10295
- // yet), property and parent information is relative to the
10296
- // parent of the property to which this expression will resolve
10297
-
10298
-
10299
- addRet(this._trace(unshift(this._eval(loc, val, path[path.length - 1], path.slice(0, -1), parent, parentPropName), x), val, path, parent, parentPropName, callback, hasArrExpr));
10300
- } else if (loc[0] === '@') {
10301
- // value type: @boolean(), etc.
10302
- let addType = false;
10303
- const valueType = loc.slice(1, -2);
10304
-
10305
- switch (valueType) {
10306
- case 'scalar':
10307
- if (!val || !['object', 'function'].includes(typeof val)) {
10308
- addType = true;
10309
- }
10310
-
10311
- break;
10312
-
10313
- case 'boolean':
10314
- case 'string':
10315
- case 'undefined':
10316
- case 'function':
10317
- // eslint-disable-next-line valid-typeof
10318
- if (typeof val === valueType) {
10319
- addType = true;
10320
- }
10321
-
10322
- break;
10323
-
10324
- case 'integer':
10325
- if (Number.isFinite(val) && !(val % 1)) {
10326
- addType = true;
10327
- }
10328
-
10329
- break;
10330
-
10331
- case 'number':
10332
- if (Number.isFinite(val)) {
10333
- addType = true;
10334
- }
10335
-
10336
- break;
10337
-
10338
- case 'nonFinite':
10339
- if (typeof val === 'number' && !Number.isFinite(val)) {
10340
- addType = true;
10341
- }
10342
-
10343
- break;
10344
-
10345
- case 'object':
10346
- // eslint-disable-next-line valid-typeof
10347
- if (val && typeof val === valueType) {
10348
- addType = true;
10349
- }
10350
-
10351
- break;
10352
-
10353
- case 'array':
10354
- if (Array.isArray(val)) {
10355
- addType = true;
10356
- }
10357
-
10358
- break;
10359
-
10360
- case 'other':
10361
- addType = this.currOtherTypeCallback(val, path, parent, parentPropName);
10362
- break;
10363
-
10364
- case 'null':
10365
- if (val === null) {
10366
- addType = true;
10367
- }
10368
-
10369
- break;
10370
-
10371
- /* c8 ignore next 2 */
10372
-
10373
- default:
10374
- throw new TypeError('Unknown value type ' + valueType);
10375
- }
10376
-
10377
- if (addType) {
10378
- retObj = {
10379
- path,
10380
- value: val,
10381
- parent,
10382
- parentProperty: parentPropName
10383
- };
10384
-
10385
- this._handleCallback(retObj, callback, 'value');
10386
-
10387
- return retObj;
10388
- } // `-escaped property
10389
-
10390
- } else if (loc[0] === '`' && val && hasOwnProp.call(val, loc.slice(1))) {
10391
- const locProp = loc.slice(1);
10392
- addRet(this._trace(x, val[locProp], push(path, locProp), val, locProp, callback, hasArrExpr, true));
10393
- } else if (loc.includes(',')) {
10394
- // [name1,name2,...]
10395
- const parts = loc.split(',');
10396
-
10397
- for (const part of parts) {
10398
- addRet(this._trace(unshift(part, x), val, path, parent, parentPropName, callback, true));
10399
- } // simple case--directly follow property
10400
-
10401
- } else if (!literalPriority && val && hasOwnProp.call(val, loc)) {
10402
- addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr, true));
10403
- } // We check the resulting values for parent selections. For parent
10404
- // selections we discard the value object and continue the trace with the
10405
- // current val object
10406
-
10407
-
10408
- if (this._hasParentSelector) {
10409
- for (let t = 0; t < ret.length; t++) {
10410
- const rett = ret[t];
10411
-
10412
- if (rett && rett.isParentSelector) {
10413
- const tmp = this._trace(rett.expr, val, rett.path, parent, parentPropName, callback, hasArrExpr);
10414
-
10415
- if (Array.isArray(tmp)) {
10416
- ret[t] = tmp[0];
10417
- const tl = tmp.length;
10418
-
10419
- for (let tt = 1; tt < tl; tt++) {
10420
- t++;
10421
- ret.splice(t, 0, tmp[tt]);
10422
- }
10423
- } else {
10424
- ret[t] = tmp;
10425
- }
10426
- }
10427
- }
10428
- }
10429
-
10430
- return ret;
10431
- };
10432
-
10433
- JSONPath.prototype._walk = function (val, f) {
10434
- if (Array.isArray(val)) {
10435
- const n = val.length;
10436
-
10437
- for (let i = 0; i < n; i++) {
10438
- f(i);
10439
- }
10440
- } else if (val && typeof val === 'object') {
10441
- Object.keys(val).forEach(m => {
10442
- f(m);
10443
- });
10444
- }
10445
- };
10446
-
10447
- JSONPath.prototype._slice = function (loc, expr, val, path, parent, parentPropName, callback) {
10448
- if (!Array.isArray(val)) {
10449
- return undefined;
10450
- }
10451
-
10452
- const len = val.length,
10453
- parts = loc.split(':'),
10454
- step = parts[2] && Number.parseInt(parts[2]) || 1;
10455
- let start = parts[0] && Number.parseInt(parts[0]) || 0,
10456
- end = parts[1] && Number.parseInt(parts[1]) || len;
10457
- start = start < 0 ? Math.max(0, start + len) : Math.min(len, start);
10458
- end = end < 0 ? Math.max(0, end + len) : Math.min(len, end);
10459
- const ret = [];
10460
-
10461
- for (let i = start; i < end; i += step) {
10462
- const tmp = this._trace(unshift(i, expr), val, path, parent, parentPropName, callback, true); // Should only be possible to be an array here since first part of
10463
- // ``unshift(i, expr)` passed in above would not be empty, nor `~`,
10464
- // nor begin with `@` (as could return objects)
10465
- // This was causing excessive stack size in Node (with or
10466
- // without Babel) against our performance test: `ret.push(...tmp);`
10467
-
10468
-
10469
- tmp.forEach(t => {
10470
- ret.push(t);
10471
- });
10472
- }
10473
-
10474
- return ret;
10475
- };
10476
-
10477
- JSONPath.prototype._eval = function (code, _v, _vname, path, parent, parentPropName) {
10478
- this.currSandbox._$_parentProperty = parentPropName;
10479
- this.currSandbox._$_parent = parent;
10480
- this.currSandbox._$_property = _vname;
10481
- this.currSandbox._$_root = this.json;
10482
- this.currSandbox._$_v = _v;
10483
- const containsPath = code.includes('@path');
10484
-
10485
- if (containsPath) {
10486
- this.currSandbox._$_path = JSONPath.toPathString(path.concat([_vname]));
10487
- }
10488
-
10489
- const scriptCacheKey = 'script:' + code;
10490
-
10491
- if (!JSONPath.cache[scriptCacheKey]) {
10492
- let script = code.replace(/@parentProperty/gu, '_$_parentProperty').replace(/@parent/gu, '_$_parent').replace(/@property/gu, '_$_property').replace(/@root/gu, '_$_root').replace(/@([.\s)[])/gu, '_$_v$1');
10493
-
10494
- if (containsPath) {
10495
- script = script.replace(/@path/gu, '_$_path');
10496
- }
10497
-
10498
- JSONPath.cache[scriptCacheKey] = new this.vm.Script(script);
10499
- }
10500
-
10501
- try {
10502
- return JSONPath.cache[scriptCacheKey].runInNewContext(this.currSandbox);
10503
- } catch (e) {
10504
- throw new Error('jsonPath: ' + e.message + ': ' + code);
10505
- }
10506
- }; // PUBLIC CLASS PROPERTIES AND METHODS
10507
- // Could store the cache object itself
10508
-
10509
-
10510
- JSONPath.cache = {};
10511
- /**
10512
- * @param {string[]} pathArr Array to convert
10513
- * @returns {string} The path string
10514
- */
10515
-
10516
- JSONPath.toPathString = function (pathArr) {
10517
- const x = pathArr,
10518
- n = x.length;
10519
- let p = '$';
10520
-
10521
- for (let i = 1; i < n; i++) {
10522
- if (!/^(~|\^|@.*?\(\))$/u.test(x[i])) {
10523
- p += /^[0-9*]+$/u.test(x[i]) ? '[' + x[i] + ']' : "['" + x[i] + "']";
10524
- }
10525
- }
10526
-
10527
- return p;
10528
- };
10529
- /**
10530
- * @param {string} pointer JSON Path
10531
- * @returns {string} JSON Pointer
10532
- */
10533
-
10534
-
10535
- JSONPath.toPointer = function (pointer) {
10536
- const x = pointer,
10537
- n = x.length;
10538
- let p = '';
10539
-
10540
- for (let i = 1; i < n; i++) {
10541
- if (!/^(~|\^|@.*?\(\))$/u.test(x[i])) {
10542
- p += '/' + x[i].toString().replace(/~/gu, '~0').replace(/\//gu, '~1');
10543
- }
10544
- }
10545
-
10546
- return p;
10547
- };
10548
- /**
10549
- * @param {string} expr Expression to convert
10550
- * @returns {string[]}
10551
- */
10552
-
10553
-
10554
- JSONPath.toPathArray = function (expr) {
10555
- const {
10556
- cache
10557
- } = JSONPath;
10558
-
10559
- if (cache[expr]) {
10560
- return cache[expr].concat();
10561
- }
10562
-
10563
- const subx = [];
10564
- const normalized = expr // Properties
10565
- .replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\(\)/gu, ';$&;') // Parenthetical evaluations (filtering and otherwise), directly
10566
- // within brackets or single quotes
10567
- .replace(/[['](\??\(.*?\))[\]']/gu, function ($0, $1) {
10568
- return '[#' + (subx.push($1) - 1) + ']';
10569
- }) // Escape periods and tildes within properties
10570
- .replace(/\[['"]([^'\]]*)['"]\]/gu, function ($0, prop) {
10571
- return "['" + prop.replace(/\./gu, '%@%').replace(/~/gu, '%%@@%%') + "']";
10572
- }) // Properties operator
10573
- .replace(/~/gu, ';~;') // Split by property boundaries
10574
- .replace(/['"]?\.['"]?(?![^[]*\])|\[['"]?/gu, ';') // Reinsert periods within properties
10575
- .replace(/%@%/gu, '.') // Reinsert tildes within properties
10576
- .replace(/%%@@%%/gu, '~') // Parent
10577
- .replace(/(?:;)?(\^+)(?:;)?/gu, function ($0, ups) {
10578
- return ';' + ups.split('').join(';') + ';';
10579
- }) // Descendents
10580
- .replace(/;;;|;;/gu, ';..;') // Remove trailing
10581
- .replace(/;$|'?\]|'$/gu, '');
10582
- const exprList = normalized.split(';').map(function (exp) {
10583
- const match = exp.match(/#(\d+)/u);
10584
- return !match || !match[1] ? exp : subx[match[1]];
10585
- });
10586
- cache[expr] = exprList;
10587
- return cache[expr].concat();
10588
- };
10589
-
10590
- JSONPath.prototype.vm = vm;
10591
-
10592
- /*!
10593
- * https://github.com/Starcounter-Jack/JSON-Patch
10594
- * (c) 2017-2022 Joachim Wester
10595
- * MIT licensed
10596
- */
10597
- var __extends = (undefined && undefined.__extends) || (function () {
10598
- var extendStatics = function (d, b) {
10599
- extendStatics = Object.setPrototypeOf ||
10600
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
10601
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
10602
- return extendStatics(d, b);
10603
- };
10604
- return function (d, b) {
10605
- extendStatics(d, b);
10606
- function __() { this.constructor = d; }
10607
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
10608
- };
10609
- })();
10610
- var _hasOwnProperty = Object.prototype.hasOwnProperty;
10611
- function hasOwnProperty$b(obj, key) {
10612
- return _hasOwnProperty.call(obj, key);
10613
- }
10614
- function _objectKeys(obj) {
10615
- if (Array.isArray(obj)) {
10616
- var keys_1 = new Array(obj.length);
10617
- for (var k = 0; k < keys_1.length; k++) {
10618
- keys_1[k] = "" + k;
10619
- }
10620
- return keys_1;
10621
- }
10622
- if (Object.keys) {
10623
- return Object.keys(obj);
10624
- }
10625
- var keys = [];
10626
- for (var i in obj) {
10627
- if (hasOwnProperty$b(obj, i)) {
10628
- keys.push(i);
10629
- }
10630
- }
10631
- return keys;
10632
- }
10633
- /**
10634
- * Deeply clone the object.
10635
- * https://jsperf.com/deep-copy-vs-json-stringify-json-parse/25 (recursiveDeepCopy)
10636
- * @param {any} obj value to clone
10637
- * @return {any} cloned obj
10638
- */
10639
- function _deepClone(obj) {
10640
- switch (typeof obj) {
10641
- case "object":
10642
- return JSON.parse(JSON.stringify(obj)); //Faster than ES5 clone - http://jsperf.com/deep-cloning-of-objects/5
10643
- case "undefined":
10644
- return null; //this is how JSON.stringify behaves for array items
10645
- default:
10646
- return obj; //no need to clone primitives
10647
- }
10648
- }
10649
- //3x faster than cached /^\d+$/.test(str)
10650
- function isInteger(str) {
10651
- var i = 0;
10652
- var len = str.length;
10653
- var charCode;
10654
- while (i < len) {
10655
- charCode = str.charCodeAt(i);
10656
- if (charCode >= 48 && charCode <= 57) {
10657
- i++;
10658
- continue;
10659
- }
10660
- return false;
10661
- }
10662
- return true;
10663
- }
10664
- /**
10665
- * Escapes a json pointer path
10666
- * @param path The raw pointer
10667
- * @return the Escaped path
10668
- */
10669
- function escapePathComponent(path) {
10670
- if (path.indexOf('/') === -1 && path.indexOf('~') === -1)
10671
- return path;
10672
- return path.replace(/~/g, '~0').replace(/\//g, '~1');
10673
- }
10674
- /**
10675
- * Unescapes a json pointer path
10676
- * @param path The escaped pointer
10677
- * @return The unescaped path
10678
- */
10679
- function unescapePathComponent(path) {
10680
- return path.replace(/~1/g, '/').replace(/~0/g, '~');
10681
- }
10682
- /**
10683
- * Recursively checks whether an object has any undefined values inside.
10684
- */
10685
- function hasUndefined(obj) {
10686
- if (obj === undefined) {
10687
- return true;
10688
- }
10689
- if (obj) {
10690
- if (Array.isArray(obj)) {
10691
- for (var i_1 = 0, len = obj.length; i_1 < len; i_1++) {
10692
- if (hasUndefined(obj[i_1])) {
10693
- return true;
10694
- }
10695
- }
10696
- }
10697
- else if (typeof obj === "object") {
10698
- var objKeys = _objectKeys(obj);
10699
- var objKeysLength = objKeys.length;
10700
- for (var i = 0; i < objKeysLength; i++) {
10701
- if (hasUndefined(obj[objKeys[i]])) {
10702
- return true;
10703
- }
10704
- }
10705
- }
10706
- }
10707
- return false;
10708
- }
10709
- function patchErrorMessageFormatter(message, args) {
10710
- var messageParts = [message];
10711
- for (var key in args) {
10712
- var value = typeof args[key] === 'object' ? JSON.stringify(args[key], null, 2) : args[key]; // pretty print
10713
- if (typeof value !== 'undefined') {
10714
- messageParts.push(key + ": " + value);
10715
- }
10716
- }
10717
- return messageParts.join('\n');
10718
- }
10719
- var PatchError = /** @class */ (function (_super) {
10720
- __extends(PatchError, _super);
10721
- function PatchError(message, name, index, operation, tree) {
10722
- var _newTarget = this.constructor;
10723
- var _this = _super.call(this, patchErrorMessageFormatter(message, { name: name, index: index, operation: operation, tree: tree })) || this;
10724
- _this.name = name;
10725
- _this.index = index;
10726
- _this.operation = operation;
10727
- _this.tree = tree;
10728
- Object.setPrototypeOf(_this, _newTarget.prototype); // restore prototype chain, see https://stackoverflow.com/a/48342359
10729
- _this.message = patchErrorMessageFormatter(message, { name: name, index: index, operation: operation, tree: tree });
10730
- return _this;
10731
- }
10732
- return PatchError;
10733
- }(Error));
10734
-
10735
- var JsonPatchError = PatchError;
10736
- var deepClone = _deepClone;
10737
- /* We use a Javascript hash to store each
10738
- function. Each hash entry (property) uses
10739
- the operation identifiers specified in rfc6902.
10740
- In this way, we can map each patch operation
10741
- to its dedicated function in efficient way.
10742
- */
10743
- /* The operations applicable to an object */
10744
- var objOps = {
10745
- add: function (obj, key, document) {
10746
- obj[key] = this.value;
10747
- return { newDocument: document };
10748
- },
10749
- remove: function (obj, key, document) {
10750
- var removed = obj[key];
10751
- delete obj[key];
10752
- return { newDocument: document, removed: removed };
10753
- },
10754
- replace: function (obj, key, document) {
10755
- var removed = obj[key];
10756
- obj[key] = this.value;
10757
- return { newDocument: document, removed: removed };
10758
- },
10759
- move: function (obj, key, document) {
10760
- /* in case move target overwrites an existing value,
10761
- return the removed value, this can be taxing performance-wise,
10762
- and is potentially unneeded */
10763
- var removed = getValueByPointer(document, this.path);
10764
- if (removed) {
10765
- removed = _deepClone(removed);
10766
- }
10767
- var originalValue = applyOperation(document, { op: "remove", path: this.from }).removed;
10768
- applyOperation(document, { op: "add", path: this.path, value: originalValue });
10769
- return { newDocument: document, removed: removed };
10770
- },
10771
- copy: function (obj, key, document) {
10772
- var valueToCopy = getValueByPointer(document, this.from);
10773
- // enforce copy by value so further operations don't affect source (see issue #177)
10774
- applyOperation(document, { op: "add", path: this.path, value: _deepClone(valueToCopy) });
10775
- return { newDocument: document };
10776
- },
10777
- test: function (obj, key, document) {
10778
- return { newDocument: document, test: _areEquals(obj[key], this.value) };
10779
- },
10780
- _get: function (obj, key, document) {
10781
- this.value = obj[key];
10782
- return { newDocument: document };
10783
- }
10784
- };
10785
- /* The operations applicable to an array. Many are the same as for the object */
10786
- var arrOps = {
10787
- add: function (arr, i, document) {
10788
- if (isInteger(i)) {
10789
- arr.splice(i, 0, this.value);
10790
- }
10791
- else { // array props
10792
- arr[i] = this.value;
10793
- }
10794
- // this may be needed when using '-' in an array
10795
- return { newDocument: document, index: i };
10796
- },
10797
- remove: function (arr, i, document) {
10798
- var removedList = arr.splice(i, 1);
10799
- return { newDocument: document, removed: removedList[0] };
10800
- },
10801
- replace: function (arr, i, document) {
10802
- var removed = arr[i];
10803
- arr[i] = this.value;
10804
- return { newDocument: document, removed: removed };
10805
- },
10806
- move: objOps.move,
10807
- copy: objOps.copy,
10808
- test: objOps.test,
10809
- _get: objOps._get
10810
- };
10811
- /**
10812
- * Retrieves a value from a JSON document by a JSON pointer.
10813
- * Returns the value.
10814
- *
10815
- * @param document The document to get the value from
10816
- * @param pointer an escaped JSON pointer
10817
- * @return The retrieved value
10818
- */
10819
- function getValueByPointer(document, pointer) {
10820
- if (pointer == '') {
10821
- return document;
10822
- }
10823
- var getOriginalDestination = { op: "_get", path: pointer };
10824
- applyOperation(document, getOriginalDestination);
10825
- return getOriginalDestination.value;
10826
- }
10827
- /**
10828
- * Apply a single JSON Patch Operation on a JSON document.
10829
- * Returns the {newDocument, result} of the operation.
10830
- * It modifies the `document` and `operation` objects - it gets the values by reference.
10831
- * If you would like to avoid touching your values, clone them:
10832
- * `jsonpatch.applyOperation(document, jsonpatch._deepClone(operation))`.
10833
- *
10834
- * @param document The document to patch
10835
- * @param operation The operation to apply
10836
- * @param validateOperation `false` is without validation, `true` to use default jsonpatch's validation, or you can pass a `validateOperation` callback to be used for validation.
10837
- * @param mutateDocument Whether to mutate the original document or clone it before applying
10838
- * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.
10839
- * @return `{newDocument, result}` after the operation
10840
- */
10841
- function applyOperation(document, operation, validateOperation, mutateDocument, banPrototypeModifications, index) {
10842
- if (validateOperation === void 0) { validateOperation = false; }
10843
- if (mutateDocument === void 0) { mutateDocument = true; }
10844
- if (banPrototypeModifications === void 0) { banPrototypeModifications = true; }
10845
- if (index === void 0) { index = 0; }
10846
- if (validateOperation) {
10847
- if (typeof validateOperation == 'function') {
10848
- validateOperation(operation, 0, document, operation.path);
10849
- }
10850
- else {
10851
- validator$1(operation, 0);
10852
- }
10853
- }
10854
- /* ROOT OPERATIONS */
10855
- if (operation.path === "") {
10856
- var returnValue = { newDocument: document };
10857
- if (operation.op === 'add') {
10858
- returnValue.newDocument = operation.value;
10859
- return returnValue;
10860
- }
10861
- else if (operation.op === 'replace') {
10862
- returnValue.newDocument = operation.value;
10863
- returnValue.removed = document; //document we removed
10864
- return returnValue;
10865
- }
10866
- else if (operation.op === 'move' || operation.op === 'copy') { // it's a move or copy to root
10867
- returnValue.newDocument = getValueByPointer(document, operation.from); // get the value by json-pointer in `from` field
10868
- if (operation.op === 'move') { // report removed item
10869
- returnValue.removed = document;
10870
- }
10871
- return returnValue;
10872
- }
10873
- else if (operation.op === 'test') {
10874
- returnValue.test = _areEquals(document, operation.value);
10875
- if (returnValue.test === false) {
10876
- throw new JsonPatchError("Test operation failed", 'TEST_OPERATION_FAILED', index, operation, document);
10877
- }
10878
- returnValue.newDocument = document;
10879
- return returnValue;
10880
- }
10881
- else if (operation.op === 'remove') { // a remove on root
10882
- returnValue.removed = document;
10883
- returnValue.newDocument = null;
10884
- return returnValue;
10885
- }
10886
- else if (operation.op === '_get') {
10887
- operation.value = document;
10888
- return returnValue;
10889
- }
10890
- else { /* bad operation */
10891
- if (validateOperation) {
10892
- throw new JsonPatchError('Operation `op` property is not one of operations defined in RFC-6902', 'OPERATION_OP_INVALID', index, operation, document);
10893
- }
10894
- else {
10895
- return returnValue;
10896
- }
10897
- }
10898
- } /* END ROOT OPERATIONS */
10899
- else {
10900
- if (!mutateDocument) {
10901
- document = _deepClone(document);
10902
- }
10903
- var path = operation.path || "";
10904
- var keys = path.split('/');
10905
- var obj = document;
10906
- var t = 1; //skip empty element - http://jsperf.com/to-shift-or-not-to-shift
10907
- var len = keys.length;
10908
- var existingPathFragment = undefined;
10909
- var key = void 0;
10910
- var validateFunction = void 0;
10911
- if (typeof validateOperation == 'function') {
10912
- validateFunction = validateOperation;
10913
- }
10914
- else {
10915
- validateFunction = validator$1;
10916
- }
10917
- while (true) {
10918
- key = keys[t];
10919
- if (key && key.indexOf('~') != -1) {
10920
- key = unescapePathComponent(key);
10921
- }
10922
- if (banPrototypeModifications &&
10923
- (key == '__proto__' ||
10924
- (key == 'prototype' && t > 0 && keys[t - 1] == 'constructor'))) {
10925
- throw new TypeError('JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README');
10926
- }
10927
- if (validateOperation) {
10928
- if (existingPathFragment === undefined) {
10929
- if (obj[key] === undefined) {
10930
- existingPathFragment = keys.slice(0, t).join('/');
10931
- }
10932
- else if (t == len - 1) {
10933
- existingPathFragment = operation.path;
10934
- }
10935
- if (existingPathFragment !== undefined) {
10936
- validateFunction(operation, 0, document, existingPathFragment);
10937
- }
10938
- }
10939
- }
10940
- t++;
10941
- if (Array.isArray(obj)) {
10942
- if (key === '-') {
10943
- key = obj.length;
10944
- }
10945
- else {
10946
- if (validateOperation && !isInteger(key)) {
10947
- throw new JsonPatchError("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index", "OPERATION_PATH_ILLEGAL_ARRAY_INDEX", index, operation, document);
10948
- } // only parse key when it's an integer for `arr.prop` to work
10949
- else if (isInteger(key)) {
10950
- key = ~~key;
10951
- }
10952
- }
10953
- if (t >= len) {
10954
- if (validateOperation && operation.op === "add" && key > obj.length) {
10955
- throw new JsonPatchError("The specified index MUST NOT be greater than the number of elements in the array", "OPERATION_VALUE_OUT_OF_BOUNDS", index, operation, document);
10956
- }
10957
- var returnValue = arrOps[operation.op].call(operation, obj, key, document); // Apply patch
10958
- if (returnValue.test === false) {
10959
- throw new JsonPatchError("Test operation failed", 'TEST_OPERATION_FAILED', index, operation, document);
10960
- }
10961
- return returnValue;
10962
- }
10963
- }
10964
- else {
10965
- if (t >= len) {
10966
- var returnValue = objOps[operation.op].call(operation, obj, key, document); // Apply patch
10967
- if (returnValue.test === false) {
10968
- throw new JsonPatchError("Test operation failed", 'TEST_OPERATION_FAILED', index, operation, document);
10969
- }
10970
- return returnValue;
10971
- }
10972
- }
10973
- obj = obj[key];
10974
- // If we have more keys in the path, but the next value isn't a non-null object,
10975
- // throw an OPERATION_PATH_UNRESOLVABLE error instead of iterating again.
10976
- if (validateOperation && t < len && (!obj || typeof obj !== "object")) {
10977
- throw new JsonPatchError('Cannot perform operation at the desired path', 'OPERATION_PATH_UNRESOLVABLE', index, operation, document);
10978
- }
10979
- }
10980
- }
10981
- }
10982
- /**
10983
- * Apply a full JSON Patch array on a JSON document.
10984
- * Returns the {newDocument, result} of the patch.
10985
- * It modifies the `document` object and `patch` - it gets the values by reference.
10986
- * If you would like to avoid touching your values, clone them:
10987
- * `jsonpatch.applyPatch(document, jsonpatch._deepClone(patch))`.
10988
- *
10989
- * @param document The document to patch
10990
- * @param patch The patch to apply
10991
- * @param validateOperation `false` is without validation, `true` to use default jsonpatch's validation, or you can pass a `validateOperation` callback to be used for validation.
10992
- * @param mutateDocument Whether to mutate the original document or clone it before applying
10993
- * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.
10994
- * @return An array of `{newDocument, result}` after the patch
10995
- */
10996
- function applyPatch(document, patch, validateOperation, mutateDocument, banPrototypeModifications) {
10997
- if (mutateDocument === void 0) { mutateDocument = true; }
10998
- if (banPrototypeModifications === void 0) { banPrototypeModifications = true; }
10999
- if (validateOperation) {
11000
- if (!Array.isArray(patch)) {
11001
- throw new JsonPatchError('Patch sequence must be an array', 'SEQUENCE_NOT_AN_ARRAY');
11002
- }
11003
- }
11004
- if (!mutateDocument) {
11005
- document = _deepClone(document);
11006
- }
11007
- var results = new Array(patch.length);
11008
- for (var i = 0, length_1 = patch.length; i < length_1; i++) {
11009
- // we don't need to pass mutateDocument argument because if it was true, we already deep cloned the object, we'll just pass `true`
11010
- results[i] = applyOperation(document, patch[i], validateOperation, true, banPrototypeModifications, i);
11011
- document = results[i].newDocument; // in case root was replaced
11012
- }
11013
- results.newDocument = document;
11014
- return results;
11015
- }
11016
- /**
11017
- * Apply a single JSON Patch Operation on a JSON document.
11018
- * Returns the updated document.
11019
- * Suitable as a reducer.
11020
- *
11021
- * @param document The document to patch
11022
- * @param operation The operation to apply
11023
- * @return The updated document
11024
- */
11025
- function applyReducer(document, operation, index) {
11026
- var operationResult = applyOperation(document, operation);
11027
- if (operationResult.test === false) { // failed test
11028
- throw new JsonPatchError("Test operation failed", 'TEST_OPERATION_FAILED', index, operation, document);
11029
- }
11030
- return operationResult.newDocument;
11031
- }
11032
- /**
11033
- * Validates a single operation. Called from `jsonpatch.validate`. Throws `JsonPatchError` in case of an error.
11034
- * @param {object} operation - operation object (patch)
11035
- * @param {number} index - index of operation in the sequence
11036
- * @param {object} [document] - object where the operation is supposed to be applied
11037
- * @param {string} [existingPathFragment] - comes along with `document`
11038
- */
11039
- function validator$1(operation, index, document, existingPathFragment) {
11040
- if (typeof operation !== 'object' || operation === null || Array.isArray(operation)) {
11041
- throw new JsonPatchError('Operation is not an object', 'OPERATION_NOT_AN_OBJECT', index, operation, document);
11042
- }
11043
- else if (!objOps[operation.op]) {
11044
- throw new JsonPatchError('Operation `op` property is not one of operations defined in RFC-6902', 'OPERATION_OP_INVALID', index, operation, document);
11045
- }
11046
- else if (typeof operation.path !== 'string') {
11047
- throw new JsonPatchError('Operation `path` property is not a string', 'OPERATION_PATH_INVALID', index, operation, document);
11048
- }
11049
- else if (operation.path.indexOf('/') !== 0 && operation.path.length > 0) {
11050
- // paths that aren't empty string should start with "/"
11051
- throw new JsonPatchError('Operation `path` property must start with "/"', 'OPERATION_PATH_INVALID', index, operation, document);
11052
- }
11053
- else if ((operation.op === 'move' || operation.op === 'copy') && typeof operation.from !== 'string') {
11054
- throw new JsonPatchError('Operation `from` property is not present (applicable in `move` and `copy` operations)', 'OPERATION_FROM_REQUIRED', index, operation, document);
11055
- }
11056
- else if ((operation.op === 'add' || operation.op === 'replace' || operation.op === 'test') && operation.value === undefined) {
11057
- throw new JsonPatchError('Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)', 'OPERATION_VALUE_REQUIRED', index, operation, document);
11058
- }
11059
- else if ((operation.op === 'add' || operation.op === 'replace' || operation.op === 'test') && hasUndefined(operation.value)) {
11060
- throw new JsonPatchError('Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)', 'OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED', index, operation, document);
11061
- }
11062
- else if (document) {
11063
- if (operation.op == "add") {
11064
- var pathLen = operation.path.split("/").length;
11065
- var existingPathLen = existingPathFragment.split("/").length;
11066
- if (pathLen !== existingPathLen + 1 && pathLen !== existingPathLen) {
11067
- throw new JsonPatchError('Cannot perform an `add` operation at the desired path', 'OPERATION_PATH_CANNOT_ADD', index, operation, document);
11068
- }
11069
- }
11070
- else if (operation.op === 'replace' || operation.op === 'remove' || operation.op === '_get') {
11071
- if (operation.path !== existingPathFragment) {
11072
- throw new JsonPatchError('Cannot perform the operation at a path that does not exist', 'OPERATION_PATH_UNRESOLVABLE', index, operation, document);
11073
- }
11074
- }
11075
- else if (operation.op === 'move' || operation.op === 'copy') {
11076
- var existingValue = { op: "_get", path: operation.from, value: undefined };
11077
- var error = validate([existingValue], document);
11078
- if (error && error.name === 'OPERATION_PATH_UNRESOLVABLE') {
11079
- throw new JsonPatchError('Cannot perform the operation from a path that does not exist', 'OPERATION_FROM_UNRESOLVABLE', index, operation, document);
11080
- }
11081
- }
11082
- }
11083
- }
11084
- /**
11085
- * Validates a sequence of operations. If `document` parameter is provided, the sequence is additionally validated against the object document.
11086
- * If error is encountered, returns a JsonPatchError object
11087
- * @param sequence
11088
- * @param document
11089
- * @returns {JsonPatchError|undefined}
11090
- */
11091
- function validate(sequence, document, externalValidator) {
11092
- try {
11093
- if (!Array.isArray(sequence)) {
11094
- throw new JsonPatchError('Patch sequence must be an array', 'SEQUENCE_NOT_AN_ARRAY');
11095
- }
11096
- if (document) {
11097
- //clone document and sequence so that we can safely try applying operations
11098
- applyPatch(_deepClone(document), _deepClone(sequence), externalValidator || true);
11099
- }
11100
- else {
11101
- externalValidator = externalValidator || validator$1;
11102
- for (var i = 0; i < sequence.length; i++) {
11103
- externalValidator(sequence[i], i, document, undefined);
11104
- }
11105
- }
11106
- }
11107
- catch (e) {
11108
- if (e instanceof JsonPatchError) {
11109
- return e;
11110
- }
11111
- else {
11112
- throw e;
11113
- }
11114
- }
11115
- }
11116
- // based on https://github.com/epoberezkin/fast-deep-equal
11117
- // MIT License
11118
- // Copyright (c) 2017 Evgeny Poberezkin
11119
- // Permission is hereby granted, free of charge, to any person obtaining a copy
11120
- // of this software and associated documentation files (the "Software"), to deal
11121
- // in the Software without restriction, including without limitation the rights
11122
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11123
- // copies of the Software, and to permit persons to whom the Software is
11124
- // furnished to do so, subject to the following conditions:
11125
- // The above copyright notice and this permission notice shall be included in all
11126
- // copies or substantial portions of the Software.
11127
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11128
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11129
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
11130
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
11131
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
11132
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
11133
- // SOFTWARE.
11134
- function _areEquals(a, b) {
11135
- if (a === b)
11136
- return true;
11137
- if (a && b && typeof a == 'object' && typeof b == 'object') {
11138
- var arrA = Array.isArray(a), arrB = Array.isArray(b), i, length, key;
11139
- if (arrA && arrB) {
11140
- length = a.length;
11141
- if (length != b.length)
11142
- return false;
11143
- for (i = length; i-- !== 0;)
11144
- if (!_areEquals(a[i], b[i]))
11145
- return false;
11146
- return true;
11147
- }
11148
- if (arrA != arrB)
11149
- return false;
11150
- var keys = Object.keys(a);
11151
- length = keys.length;
11152
- if (length !== Object.keys(b).length)
11153
- return false;
11154
- for (i = length; i-- !== 0;)
11155
- if (!b.hasOwnProperty(keys[i]))
11156
- return false;
11157
- for (i = length; i-- !== 0;) {
11158
- key = keys[i];
11159
- if (!_areEquals(a[key], b[key]))
11160
- return false;
11161
- }
11162
- return true;
11163
- }
11164
- return a !== a && b !== b;
11165
- }
9755
+ proto$2.add = add$1;
9756
+ proto$2.subtract = subtract$1;
9757
+ proto$2.as = as;
9758
+ proto$2.asMilliseconds = asMilliseconds;
9759
+ proto$2.asSeconds = asSeconds;
9760
+ proto$2.asMinutes = asMinutes;
9761
+ proto$2.asHours = asHours;
9762
+ proto$2.asDays = asDays;
9763
+ proto$2.asWeeks = asWeeks;
9764
+ proto$2.asMonths = asMonths;
9765
+ proto$2.asQuarters = asQuarters;
9766
+ proto$2.asYears = asYears;
9767
+ proto$2.valueOf = valueOf$1;
9768
+ proto$2._bubble = bubble;
9769
+ proto$2.clone = clone$1;
9770
+ proto$2.get = get$2;
9771
+ proto$2.milliseconds = milliseconds;
9772
+ proto$2.seconds = seconds;
9773
+ proto$2.minutes = minutes;
9774
+ proto$2.hours = hours;
9775
+ proto$2.days = days;
9776
+ proto$2.weeks = weeks;
9777
+ proto$2.months = months;
9778
+ proto$2.years = years;
9779
+ proto$2.humanize = humanize;
9780
+ proto$2.toISOString = toISOString$1;
9781
+ proto$2.toString = toISOString$1;
9782
+ proto$2.toJSON = toISOString$1;
9783
+ proto$2.locale = locale;
9784
+ proto$2.localeData = localeData;
11166
9785
 
11167
- var core = /*#__PURE__*/Object.freeze({
11168
- __proto__: null,
11169
- JsonPatchError: JsonPatchError,
11170
- _areEquals: _areEquals,
11171
- applyOperation: applyOperation,
11172
- applyPatch: applyPatch,
11173
- applyReducer: applyReducer,
11174
- deepClone: deepClone,
11175
- getValueByPointer: getValueByPointer,
11176
- validate: validate,
11177
- validator: validator$1
11178
- });
9786
+ proto$2.toIsoString = deprecate(
9787
+ 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
9788
+ toISOString$1
9789
+ );
9790
+ proto$2.lang = lang;
11179
9791
 
11180
- /*!
11181
- * https://github.com/Starcounter-Jack/JSON-Patch
11182
- * (c) 2017-2021 Joachim Wester
11183
- * MIT license
11184
- */
11185
- var beforeDict = new WeakMap();
11186
- var Mirror = /** @class */ (function () {
11187
- function Mirror(obj) {
11188
- this.observers = new Map();
11189
- this.obj = obj;
11190
- }
11191
- return Mirror;
11192
- }());
11193
- var ObserverInfo = /** @class */ (function () {
11194
- function ObserverInfo(callback, observer) {
11195
- this.callback = callback;
11196
- this.observer = observer;
11197
- }
11198
- return ObserverInfo;
11199
- }());
11200
- function getMirror(obj) {
11201
- return beforeDict.get(obj);
11202
- }
11203
- function getObserverFromMirror(mirror, callback) {
11204
- return mirror.observers.get(callback);
11205
- }
11206
- function removeObserverFromMirror(mirror, observer) {
11207
- mirror.observers.delete(observer.callback);
11208
- }
11209
- /**
11210
- * Detach an observer from an object
11211
- */
11212
- function unobserve(root, observer) {
11213
- observer.unobserve();
11214
- }
11215
- /**
11216
- * Observes changes made to an object, which can then be retrieved using generate
11217
- */
11218
- function observe(obj, callback) {
11219
- var patches = [];
11220
- var observer;
11221
- var mirror = getMirror(obj);
11222
- if (!mirror) {
11223
- mirror = new Mirror(obj);
11224
- beforeDict.set(obj, mirror);
11225
- }
11226
- else {
11227
- var observerInfo = getObserverFromMirror(mirror, callback);
11228
- observer = observerInfo && observerInfo.observer;
11229
- }
11230
- if (observer) {
11231
- return observer;
11232
- }
11233
- observer = {};
11234
- mirror.value = _deepClone(obj);
11235
- if (callback) {
11236
- observer.callback = callback;
11237
- observer.next = null;
11238
- var dirtyCheck = function () {
11239
- generate(observer);
11240
- };
11241
- var fastCheck = function () {
11242
- clearTimeout(observer.next);
11243
- observer.next = setTimeout(dirtyCheck);
11244
- };
11245
- if (typeof window !== 'undefined') { //not Node
11246
- window.addEventListener('mouseup', fastCheck);
11247
- window.addEventListener('keyup', fastCheck);
11248
- window.addEventListener('mousedown', fastCheck);
11249
- window.addEventListener('keydown', fastCheck);
11250
- window.addEventListener('change', fastCheck);
11251
- }
11252
- }
11253
- observer.patches = patches;
11254
- observer.object = obj;
11255
- observer.unobserve = function () {
11256
- generate(observer);
11257
- clearTimeout(observer.next);
11258
- removeObserverFromMirror(mirror, observer);
11259
- if (typeof window !== 'undefined') {
11260
- window.removeEventListener('mouseup', fastCheck);
11261
- window.removeEventListener('keyup', fastCheck);
11262
- window.removeEventListener('mousedown', fastCheck);
11263
- window.removeEventListener('keydown', fastCheck);
11264
- window.removeEventListener('change', fastCheck);
11265
- }
11266
- };
11267
- mirror.observers.set(callback, new ObserverInfo(callback, observer));
11268
- return observer;
11269
- }
11270
- /**
11271
- * Generate an array of patches from an observer
11272
- */
11273
- function generate(observer, invertible) {
11274
- if (invertible === void 0) { invertible = false; }
11275
- var mirror = beforeDict.get(observer.object);
11276
- _generate(mirror.value, observer.object, observer.patches, "", invertible);
11277
- if (observer.patches.length) {
11278
- applyPatch(mirror.value, observer.patches);
11279
- }
11280
- var temp = observer.patches;
11281
- if (temp.length > 0) {
11282
- observer.patches = [];
11283
- if (observer.callback) {
11284
- observer.callback(temp);
11285
- }
11286
- }
11287
- return temp;
11288
- }
11289
- // Dirty check if obj is different from mirror, generate patches and update mirror
11290
- function _generate(mirror, obj, patches, path, invertible) {
11291
- if (obj === mirror) {
11292
- return;
11293
- }
11294
- if (typeof obj.toJSON === "function") {
11295
- obj = obj.toJSON();
11296
- }
11297
- var newKeys = _objectKeys(obj);
11298
- var oldKeys = _objectKeys(mirror);
11299
- var deleted = false;
11300
- //if ever "move" operation is implemented here, make sure this test runs OK: "should not generate the same patch twice (move)"
11301
- for (var t = oldKeys.length - 1; t >= 0; t--) {
11302
- var key = oldKeys[t];
11303
- var oldVal = mirror[key];
11304
- if (hasOwnProperty$b(obj, key) && !(obj[key] === undefined && oldVal !== undefined && Array.isArray(obj) === false)) {
11305
- var newVal = obj[key];
11306
- if (typeof oldVal == "object" && oldVal != null && typeof newVal == "object" && newVal != null && Array.isArray(oldVal) === Array.isArray(newVal)) {
11307
- _generate(oldVal, newVal, patches, path + "/" + escapePathComponent(key), invertible);
11308
- }
11309
- else {
11310
- if (oldVal !== newVal) {
11311
- if (invertible) {
11312
- patches.push({ op: "test", path: path + "/" + escapePathComponent(key), value: _deepClone(oldVal) });
11313
- }
11314
- patches.push({ op: "replace", path: path + "/" + escapePathComponent(key), value: _deepClone(newVal) });
11315
- }
11316
- }
11317
- }
11318
- else if (Array.isArray(mirror) === Array.isArray(obj)) {
11319
- if (invertible) {
11320
- patches.push({ op: "test", path: path + "/" + escapePathComponent(key), value: _deepClone(oldVal) });
11321
- }
11322
- patches.push({ op: "remove", path: path + "/" + escapePathComponent(key) });
11323
- deleted = true; // property has been deleted
11324
- }
11325
- else {
11326
- if (invertible) {
11327
- patches.push({ op: "test", path: path, value: mirror });
11328
- }
11329
- patches.push({ op: "replace", path: path, value: obj });
11330
- }
11331
- }
11332
- if (!deleted && newKeys.length == oldKeys.length) {
11333
- return;
11334
- }
11335
- for (var t = 0; t < newKeys.length; t++) {
11336
- var key = newKeys[t];
11337
- if (!hasOwnProperty$b(mirror, key) && obj[key] !== undefined) {
11338
- patches.push({ op: "add", path: path + "/" + escapePathComponent(key), value: _deepClone(obj[key]) });
11339
- }
11340
- }
11341
- }
11342
- /**
11343
- * Create an array of patches from the differences in two objects
11344
- */
11345
- function compare(tree1, tree2, invertible) {
11346
- if (invertible === void 0) { invertible = false; }
11347
- var patches = [];
11348
- _generate(tree1, tree2, patches, '', invertible);
11349
- return patches;
11350
- }
11351
-
11352
- var duplex = /*#__PURE__*/Object.freeze({
11353
- __proto__: null,
11354
- compare: compare,
11355
- generate: generate,
11356
- observe: observe,
11357
- unobserve: unobserve
11358
- });
9792
+ // FORMATTING
11359
9793
 
11360
- Object.assign({}, core, duplex, {
11361
- JsonPatchError: PatchError,
11362
- deepClone: _deepClone,
11363
- escapePathComponent,
11364
- unescapePathComponent
11365
- });
9794
+ addFormatToken('X', 0, 0, 'unix');
9795
+ addFormatToken('x', 0, 0, 'valueOf');
9796
+
9797
+ // PARSING
9798
+
9799
+ addRegexToken('x', matchSigned);
9800
+ addRegexToken('X', matchTimestamp);
9801
+ addParseToken('X', function (input, array, config) {
9802
+ config._d = new Date(parseFloat(input) * 1000);
9803
+ });
9804
+ addParseToken('x', function (input, array, config) {
9805
+ config._d = new Date(toInt(input));
9806
+ });
9807
+
9808
+ //! moment.js
9809
+
9810
+ hooks.version = '2.29.4';
9811
+
9812
+ setHookCallback(createLocal);
9813
+
9814
+ hooks.fn = proto;
9815
+ hooks.min = min;
9816
+ hooks.max = max;
9817
+ hooks.now = now;
9818
+ hooks.utc = createUTC;
9819
+ hooks.unix = createUnix;
9820
+ hooks.months = listMonths;
9821
+ hooks.isDate = isDate;
9822
+ hooks.locale = getSetGlobalLocale;
9823
+ hooks.invalid = createInvalid;
9824
+ hooks.duration = createDuration;
9825
+ hooks.isMoment = isMoment;
9826
+ hooks.weekdays = listWeekdays;
9827
+ hooks.parseZone = createInZone;
9828
+ hooks.localeData = getLocale;
9829
+ hooks.isDuration = isDuration;
9830
+ hooks.monthsShort = listMonthsShort;
9831
+ hooks.weekdaysMin = listWeekdaysMin;
9832
+ hooks.defineLocale = defineLocale;
9833
+ hooks.updateLocale = updateLocale;
9834
+ hooks.locales = listLocales;
9835
+ hooks.weekdaysShort = listWeekdaysShort;
9836
+ hooks.normalizeUnits = normalizeUnits;
9837
+ hooks.relativeTimeRounding = getSetRelativeTimeRounding;
9838
+ hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
9839
+ hooks.calendarFormat = getCalendarFormat;
9840
+ hooks.prototype = proto;
9841
+
9842
+ // currently HTML5 input type only supports 24-hour formats
9843
+ hooks.HTML5_FMT = {
9844
+ DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
9845
+ DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
9846
+ DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
9847
+ DATE: 'YYYY-MM-DD', // <input type="date" />
9848
+ TIME: 'HH:mm', // <input type="time" />
9849
+ TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
9850
+ TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
9851
+ WEEK: 'GGGG-[W]WW', // <input type="week" />
9852
+ MONTH: 'YYYY-MM', // <input type="month" />
9853
+ };
9854
+
9855
+ return hooks;
9856
+
9857
+ })));
9858
+ } (moment$1));
9859
+
9860
+ var moment = momentExports;
11366
9861
 
11367
9862
  toast.configure({
11368
9863
  autoClose: 3000,
@@ -11429,7 +9924,7 @@ var stopPropagation = function (event) {
11429
9924
  };
11430
9925
  function useThrottledEffect(callback, delay, deps) {
11431
9926
  if (deps === void 0) { deps = []; }
11432
- //function will be executed only once in a given time interval.
9927
+ // function will be executed only once in a given time interval.
11433
9928
  var lastRan = React.useRef(Date.now());
11434
9929
  React.useEffect(function () {
11435
9930
  var handler = setTimeout(function () {
@@ -11463,22 +9958,20 @@ function getRandomColor(email) {
11463
9958
  return colors$1[sum % colors$1.length];
11464
9959
  }
11465
9960
  var getAlphabetIcon = function (str, rootClassName) {
11466
- if (rootClassName === void 0) { rootClassName = ""; }
9961
+ if (rootClassName === void 0) { rootClassName = ''; }
11467
9962
  if (!str)
11468
9963
  return null;
11469
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] })));
11470
9965
  };
11471
- var getEmptyArrayOfLength = function (length) {
11472
- return Array.from({ length: length });
11473
- };
9966
+ var getEmptyArrayOfLength = function (length) { return Array.from({ length: length }); };
11474
9967
  function noop$1() {
11475
9968
  }
11476
9969
  function not(e) {
11477
9970
  return !e;
11478
9971
  }
11479
9972
  function useEffectAfterMount(cb, dependencies) {
11480
- var justMounted = React.useRef(true);
11481
- React.useEffect(function () {
9973
+ var justMounted = React__namespace.useRef(true);
9974
+ React__namespace.useEffect(function () {
11482
9975
  if (!justMounted.current) {
11483
9976
  return cb();
11484
9977
  }
@@ -11489,7 +9982,7 @@ function getCookie(sKey) {
11489
9982
  if (!sKey) {
11490
9983
  return null;
11491
9984
  }
11492
- return (document.cookie.replace(new RegExp('(?:(?:^|.*;)\\s*' + sKey.replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=\\s*([^;]*).*$)|^.*$'), '$1') || null);
9985
+ return (document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*".concat(sKey.replace(/[\-\.\+\*]/g, '\\$&'), "\\s*\\=\\s*([^;]*).*$)|^.*$")), '$1') || null);
11493
9986
  }
11494
9987
  function getLoginInfo() {
11495
9988
  var argocdToken = getCookie(TOKEN_COOKIE_NAME);
@@ -11525,7 +10018,7 @@ function useForm(stateSchema, validationSchema, callback) {
11525
10018
  // Wrapped in useCallback to cached the function to avoid intensive memory leaked
11526
10019
  // in every re-render in component
11527
10020
  var validateState = React.useCallback(function (state) {
11528
- //check errors in all fields
10021
+ // check errors in all fields
11529
10022
  var hasErrorInState = Object.keys(validationSchema).some(function (key) {
11530
10023
  var isInputFieldRequired = validationSchema[key].required;
11531
10024
  var stateValue = state[key].value; // state value
@@ -11677,9 +10170,7 @@ function useAsync(func, dependencyArray, shouldRun, options) {
11677
10170
  dependencies: dependencyArray,
11678
10171
  }), 2), state = _a[0], setState = _a[1];
11679
10172
  var mounted = React.useRef(true);
11680
- var dependencies = React.useMemo(function () {
11681
- return __spreadArray(__spreadArray([], __read(dependencyArray), false), [shouldRun], false);
11682
- }, __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));
11683
10174
  var reload = function () {
11684
10175
  function call() {
11685
10176
  return __awaiter(this, void 0, void 0, function () {
@@ -11738,9 +10229,7 @@ var processDeployedTime = function (lastDeployed, isArgoInstalled) {
11738
10229
  if (lastDeployed) {
11739
10230
  return handleUTCTime(lastDeployed, true);
11740
10231
  }
11741
- else {
11742
- return isArgoInstalled ? '' : 'Not deployed';
11743
- }
10232
+ return isArgoInstalled ? '' : 'Not deployed';
11744
10233
  };
11745
10234
  /**
11746
10235
  * Appends search parameters to the url as a query string
@@ -11761,95 +10250,20 @@ var getUrlWithSearchParams = function (url, params) {
11761
10250
  /**
11762
10251
  * Custom exception logger function for logging errors to sentry
11763
10252
  */
11764
- var logExceptionToSentry = captureException.bind(window);
11765
- var customStyles = {
11766
- control: function (base, state) { return (__assign(__assign({}, base), { minHeight: '32px', boxShadow: 'none', border: 'none', cursor: 'pointer', background: 'transparent' })); },
11767
- indicatorSeparator: function (base, state) { return (__assign(__assign({}, base), { width: 0 })); },
11768
- valueContainer: function (base, state) { return (__assign(__assign({}, base), { padding: '0', fontSize: '13px', fontWeight: '600' })); },
11769
- 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)' })); },
11770
- };
11771
- var getFilteredChartVersions = function (charts, selectedChartType) {
11772
- // Filter chart versions based on selected chart type
11773
- return charts
11774
- .filter(function (item) { return (item === null || item === void 0 ? void 0 : item.chartType) === selectedChartType.value; })
11775
- .map(function (item) { return ({
11776
- value: item === null || item === void 0 ? void 0 : item.chartVersion,
11777
- label: item === null || item === void 0 ? void 0 : item.chartVersion,
11778
- chartRefId: item.chartRefId,
11779
- }); });
11780
- };
11781
- function removeEmptyObjectKeysAndNullValues(obj) {
11782
- // It recursively removes empty object keys and array values that are null
11783
- for (var key in obj) {
11784
- if (Array.isArray(obj[key])) {
11785
- if (obj[key].length === 0)
11786
- continue;
11787
- obj[key] = obj[key].filter(function (item) { return item !== null; });
11788
- // Check if the array is empty
11789
- if (obj[key].length === 0) {
11790
- delete obj[key]; // Delete the key if the array is empty
11791
- }
11792
- }
11793
- else if (obj[key] && typeof obj[key] === 'object') {
11794
- if (removeEmptyObjectKeysAndNullValues(obj[key])) {
11795
- delete obj[key];
11796
- }
11797
- }
11798
- else if (obj[key] === undefined) {
11799
- delete obj[key];
11800
- }
11801
- }
11802
- return Object.keys(obj).length === 0;
11803
- }
11804
- function getUnlockedJSON(json, jsonPathArray) {
11805
- var jsonCopy = JSON.parse(JSON.stringify(json));
11806
- var patches = jsonPathArray.flatMap(function (jsonPath) {
11807
- var pathsToRemove = JSONPath({ path: jsonPath, json: jsonCopy, resultType: 'all' });
11808
- return pathsToRemove.map(function (result) {
11809
- return Array.isArray(result.parent)
11810
- ? { op: 'replace', path: result.pointer, value: null }
11811
- : { op: 'remove', path: result.pointer };
11812
- });
11813
- });
11814
- var newDocument = applyPatch(jsonCopy, patches).newDocument;
11815
- removeEmptyObjectKeysAndNullValues(newDocument);
11816
- return newDocument;
11817
- }
11818
- function getLockedJSON(json, jsonPathArray) {
11819
- var jsonCopy = JSON.parse(JSON.stringify(json));
11820
- var resultJson = {};
11821
- jsonPathArray.forEach(function (jsonPath) {
11822
- var elements = JSONPath({ path: jsonPath, json: jsonCopy, resultType: 'all' });
11823
- elements.forEach(function (element) {
11824
- var pathArray = JSONPath.toPathArray(element.path);
11825
- var lastPath = pathArray.pop();
11826
- var current = resultJson;
11827
- for (var i = 0; i < pathArray.length; i++) {
11828
- var key_1 = isNaN(Number(pathArray[i])) ? pathArray[i] : parseInt(pathArray[i]);
11829
- if (!current[key_1]) {
11830
- current[key_1] = isNaN(Number(pathArray[i + 1])) ? {} : [];
11831
- }
11832
- current = current[key_1];
11833
- }
11834
- var key = isNaN(Number(lastPath)) ? lastPath : parseInt(lastPath);
11835
- current[key] = element.value;
11836
- });
11837
- });
11838
- return resultJson['$'];
11839
- }
10253
+ var logExceptionToSentry = captureException.bind(window);
11840
10254
 
11841
- function Progressing(_a) {
10255
+ var Progressing = function (_a) {
11842
10256
  var pageLoader = _a.pageLoader, size = _a.size, theme = _a.theme, styles = _a.styles, fillColor = _a.fillColor;
11843
10257
  var loaderSize = size ? "".concat(size, "px") : pageLoader ? '48px' : '20px';
11844
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" })] })) })) })) })));
11845
- }
11846
- function DetailsProgressing(_a) {
10259
+ };
10260
+ var DetailsProgressing = function (_a) {
11847
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;
11848
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] })));
11849
- }
10263
+ };
11850
10264
 
11851
10265
  var VisibleModal = /** @class */ (function (_super) {
11852
- __extends$1(VisibleModal, _super);
10266
+ __extends(VisibleModal, _super);
11853
10267
  function VisibleModal(props) {
11854
10268
  var _this = _super.call(this, props) || this;
11855
10269
  _this.modalRef = document.getElementById('visible-modal');
@@ -11980,7 +10394,7 @@ var SvgIcCross = function SvgIcCross(props) {
11980
10394
  var close = "data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M19.2803%205.78033C19.5732%205.48744%2019.5732%205.01256%2019.2803%204.71967C18.9874%204.42678%2018.5126%204.42678%2018.2197%204.71967L19.2803%205.78033ZM4.71967%2018.2197C4.42678%2018.5126%204.42678%2018.9874%204.71967%2019.2803C5.01256%2019.5732%205.48744%2019.5732%205.78033%2019.2803L4.71967%2018.2197ZM18.2197%2019.2803C18.5126%2019.5732%2018.9874%2019.5732%2019.2803%2019.2803C19.5732%2018.9874%2019.5732%2018.5126%2019.2803%2018.2197L18.2197%2019.2803ZM5.78033%204.71967C5.48744%204.42678%205.01256%204.42678%204.71967%204.71967C4.42678%205.01256%204.42678%205.48744%204.71967%205.78033L5.78033%204.71967ZM18.2197%204.71967L11.4697%2011.4697L12.5303%2012.5303L19.2803%205.78033L18.2197%204.71967ZM11.4697%2011.4697L4.71967%2018.2197L5.78033%2019.2803L12.5303%2012.5303L11.4697%2011.4697ZM19.2803%2018.2197L12.5303%2011.4697L11.4697%2012.5303L18.2197%2019.2803L19.2803%2018.2197ZM12.5303%2011.4697L5.78033%204.71967L4.71967%205.78033L11.4697%2012.5303L12.5303%2011.4697Z%22%20fill%3D%22%23596168%22%2F%3E%3C%2Fsvg%3E";
11981
10395
 
11982
10396
  var OpaqueModal = /** @class */ (function (_super) {
11983
- __extends$1(OpaqueModal, _super);
10397
+ __extends(OpaqueModal, _super);
11984
10398
  function OpaqueModal() {
11985
10399
  var _this = _super !== null && _super.apply(this, arguments) || this;
11986
10400
  _this.modalRef = document.getElementById('full-screen-modal');
@@ -11988,23 +10402,23 @@ var OpaqueModal = /** @class */ (function (_super) {
11988
10402
  }
11989
10403
  OpaqueModal.prototype.componentDidMount = function () {
11990
10404
  if (this.props.noBackground)
11991
- this.modalRef.classList.add("show");
10405
+ this.modalRef.classList.add('show');
11992
10406
  else
11993
- this.modalRef.classList.add("show-with-bg");
10407
+ this.modalRef.classList.add('show-with-bg');
11994
10408
  };
11995
10409
  OpaqueModal.prototype.componentWillUnmount = function () {
11996
- this.modalRef.classList.remove("show");
11997
- this.modalRef.classList.remove("show-with-bg");
10410
+ this.modalRef.classList.remove('show');
10411
+ this.modalRef.classList.remove('show-with-bg');
11998
10412
  };
11999
10413
  OpaqueModal.prototype.render = function () {
12000
- var _a = __assign({}, this.props), _b = _a.className, className = _b === void 0 ? "" : _b, _c = _a.onHide, onHide = _c === void 0 ? null : _c;
12001
- 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'));
12002
10416
  };
12003
10417
  return OpaqueModal;
12004
10418
  }(React.Component));
12005
10419
 
12006
10420
  var VisibleModal2 = /** @class */ (function (_super) {
12007
- __extends$1(VisibleModal2, _super);
10421
+ __extends(VisibleModal2, _super);
12008
10422
  function VisibleModal2(props) {
12009
10423
  var _this = _super.call(this, props) || this;
12010
10424
  _this.modalRef = document.getElementById('visible-modal-2');
@@ -12017,12 +10431,12 @@ var VisibleModal2 = /** @class */ (function (_super) {
12017
10431
  }
12018
10432
  };
12019
10433
  VisibleModal2.prototype.componentDidMount = function () {
12020
- document.addEventListener("keydown", this.escFunction);
12021
- this.modalRef.classList.add("show-with-bg");
10434
+ document.addEventListener('keydown', this.escFunction);
10435
+ this.modalRef.classList.add('show-with-bg');
12022
10436
  };
12023
10437
  VisibleModal2.prototype.componentWillUnmount = function () {
12024
- document.removeEventListener("keydown", this.escFunction);
12025
- this.modalRef.classList.remove("show-with-bg");
10438
+ document.removeEventListener('keydown', this.escFunction);
10439
+ this.modalRef.classList.remove('show-with-bg');
12026
10440
  };
12027
10441
  VisibleModal2.prototype.render = function () {
12028
10442
  var _a;
@@ -12051,7 +10465,7 @@ function useBreadcrumbContext() {
12051
10465
  return context;
12052
10466
  }
12053
10467
 
12054
- React.createContext(null);
10468
+ React__namespace.createContext(null);
12055
10469
  function useBreadcrumb(props, deps) {
12056
10470
  var sep = (props === null || props === void 0 ? void 0 : props.sep) || '/';
12057
10471
  deps = deps || [];
@@ -12095,7 +10509,7 @@ function useBreadcrumb(props, deps) {
12095
10509
  ? "".concat(prefix).concat(to)
12096
10510
  : null,
12097
10511
  name: typeof state.alias[name] === 'object'
12098
- ? !!((_d = state.alias[name]) === null || _d === void 0 ? void 0 : _d.component)
10512
+ ? ((_d = state.alias[name]) === null || _d === void 0 ? void 0 : _d.component)
12099
10513
  ? state.alias[name].component
12100
10514
  : null
12101
10515
  : state.alias[name] || name,
@@ -12110,25 +10524,23 @@ var BreadCrumb = function (_a) {
12110
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;
12111
10525
  var url = reactRouterDom.useRouteMatch().url;
12112
10526
  var filteredCrumbs = breadcrumbs.filter(function (crumb) { return !!crumb.name; });
12113
- return (jsxRuntime.jsx(React.Fragment, { children: filteredCrumbs.map(function (breadcrumb, idx) { return (jsxRuntime.jsxs(React.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)); }) }));
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)); }) }));
12114
10528
  };
12115
10529
 
12116
10530
  var RadioGroupContext = React.createContext({ name: '', value: '', disabled: false, onChange: function (event) { } });
12117
10531
  var RadioGroupItem = /** @class */ (function (_super) {
12118
- __extends$1(RadioGroupItem, _super);
10532
+ __extends(RadioGroupItem, _super);
12119
10533
  function RadioGroupItem() {
12120
10534
  return _super !== null && _super.apply(this, arguments) || this;
12121
10535
  }
12122
10536
  RadioGroupItem.prototype.render = function () {
12123
10537
  var _this = this;
12124
- return (jsxRuntime.jsx(RadioGroupContext.Consumer, { children: function (context) {
12125
- 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 }))] }))] })) }));
12126
- } }));
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 }))] }))] }))); } }));
12127
10539
  };
12128
10540
  return RadioGroupItem;
12129
10541
  }(React.Component));
12130
10542
  var RadioGroup$1 = /** @class */ (function (_super) {
12131
- __extends$1(RadioGroup, _super);
10543
+ __extends(RadioGroup, _super);
12132
10544
  function RadioGroup() {
12133
10545
  return _super !== null && _super.apply(this, arguments) || this;
12134
10546
  }
@@ -12143,23 +10555,23 @@ var RadioGroup$1 = /** @class */ (function (_super) {
12143
10555
  return RadioGroup;
12144
10556
  }(React.Component));
12145
10557
 
12146
- var PopupContext = React.createContext(null);
10558
+ var PopupContext = React__namespace.createContext(null);
12147
10559
  function usePopupContext() {
12148
- var context = React.useContext(PopupContext);
10560
+ var context = React__namespace.useContext(PopupContext);
12149
10561
  if (!context) {
12150
10562
  throw new Error("Select compound components cannot be rendered outside popupmenup");
12151
10563
  }
12152
10564
  return context;
12153
10565
  }
12154
- function PopupMenu(_a) {
10566
+ var PopupMenu = function (_a) {
12155
10567
  var _b;
12156
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;
12157
- var _g = __read(React.useState(null), 2), popupPosition = _g[0], setPopupPosition = _g[1];
12158
- var _h = __read(React.useState(0), 2), opacity = _h[0], setOpacity = _h[1];
12159
- var observer = React.useRef(null);
12160
- var buttonRef = React.useRef(null);
12161
- var buttonWidth = React.useRef(null);
12162
- React.useEffect(function () {
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 () {
12163
10575
  observer.current = window.IntersectionObserver ? new IntersectionObserver(intersectionCallback, options) : null;
12164
10576
  return function () {
12165
10577
  if (observer && observer.current && observer.current.disconnect)
@@ -12253,17 +10665,17 @@ function PopupMenu(_a) {
12253
10665
  initialiseButtonWidth: initialiseButtonWidth,
12254
10666
  buttonWidth: buttonWidth,
12255
10667
  } }, { children: children })));
12256
- }
12257
- function Button(_a) {
12258
- 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;
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;
12259
10671
  var _j = usePopupContext(), handleOpen = _j.handleOpen, popupPosition = _j.popupPosition; _j.buttonRef; var initialiseButtonWidth = _j.initialiseButtonWidth;
12260
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 })));
12261
- }
12262
- function Body$1(_a) {
10673
+ };
10674
+ var Body$1 = function (_a) {
12263
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;
12264
10676
  var _g = usePopupContext(), handleClose = _g.handleClose, popupPosition = _g.popupPosition, opacity = _g.opacity, callbackRef = _g.callbackRef, buttonWidth = _g.buttonWidth;
12265
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;
12266
- }
10678
+ };
12267
10679
  PopupMenu.Button = Button;
12268
10680
  PopupMenu.Body = Body$1;
12269
10681
 
@@ -16306,7 +14718,7 @@ styleInject(css_248z$5);
16306
14718
 
16307
14719
  // This component will handle some of the new tippy designs and interactions
16308
14720
  // So this can be updated to support further for new features or interactions
16309
- function TippyCustomized(props) {
14721
+ var TippyCustomized = function (props) {
16310
14722
  var tippyRef = React.useRef(null);
16311
14723
  var _a = __read(React.useState(false), 2), showHeadingInfo = _a[0], setShowHeadingInfo = _a[1];
16312
14724
  var isWhiteTheme = props.theme === exports.TippyTheme.white;
@@ -16335,16 +14747,15 @@ function TippyCustomized(props) {
16335
14747
  };
16336
14748
  var getTippyContent = function () {
16337
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;
16338
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [!hideHeading &&
16339
- jsxRuntime.jsxs("div", __assign({ className: "dc__word-break dc__hyphens-auto flex left ".concat(isWhiteTheme
16340
- ? "p-12 cn-9 ".concat(props.noHeadingBorder ? '' : 'dc__border-bottom-n1')
16341
- : '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
16342
14753
  ? 'p-12'
16343
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' })) })))] }));
16344
14755
  };
16345
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;
16346
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 })));
16347
- }
14758
+ };
16348
14759
 
16349
14760
  var _path$9, _circle, _path2$1;
16350
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); }
@@ -16377,10 +14788,8 @@ var SvgInjectTag = function SvgInjectTag(props) {
16377
14788
 
16378
14789
  function PropagateTagInfo(_a) {
16379
14790
  var isCreateApp = _a.isCreateApp;
16380
- var additionalInfo = function () {
16381
- 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." })] })));
16382
- };
16383
- 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" })] })) })));
16384
14793
  }
16385
14794
 
16386
14795
  var _path$8;
@@ -16398,7 +14807,7 @@ var SvgIcInfoOutlined = function SvgIcInfoOutlined(props) {
16398
14807
  })));
16399
14808
  };
16400
14809
 
16401
- function ResizableTagTextArea(_a) {
14810
+ var ResizableTagTextArea = function (_a) {
16402
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;
16403
14812
  var _b = __read(React.useState(''), 2), text = _b[0], setText = _b[1];
16404
14813
  React.useEffect(function () {
@@ -16411,9 +14820,9 @@ function ResizableTagTextArea(_a) {
16411
14820
  var reInitHeight = function () {
16412
14821
  if (document.activeElement !== refVar.current)
16413
14822
  return;
16414
- refVar.current.style.height = minHeight + 'px';
14823
+ refVar.current.style.height = "".concat(minHeight, "px");
16415
14824
  if (dependentRef) {
16416
- dependentRef.current.style.height = minHeight + 'px';
14825
+ dependentRef.current.style.height = "".concat(minHeight, "px");
16417
14826
  }
16418
14827
  var nextHeight = refVar.current.scrollHeight;
16419
14828
  if (dependentRef && nextHeight < dependentRef.current.scrollHeight) {
@@ -16425,16 +14834,16 @@ function ResizableTagTextArea(_a) {
16425
14834
  if (maxHeight && nextHeight > maxHeight) {
16426
14835
  nextHeight = maxHeight;
16427
14836
  }
16428
- refVar.current.style.height = nextHeight + 'px';
14837
+ refVar.current.style.height = "".concat(nextHeight, "px");
16429
14838
  if (dependentRef) {
16430
- dependentRef.current.style.height = nextHeight + 'px';
14839
+ dependentRef.current.style.height = "".concat(nextHeight, "px");
16431
14840
  }
16432
14841
  };
16433
14842
  useThrottledEffect(reInitHeight, 500, [text]);
16434
14843
  var handleOnBlur = function (event) {
16435
- refVar.current.style.height = minHeight + 'px';
14844
+ refVar.current.style.height = "".concat(minHeight, "px");
16436
14845
  if (dependentRef) {
16437
- dependentRef.current.style.height = minHeight + 'px';
14846
+ dependentRef.current.style.height = "".concat(minHeight, "px");
16438
14847
  }
16439
14848
  onBlur && onBlur(event);
16440
14849
  };
@@ -16443,7 +14852,7 @@ function ResizableTagTextArea(_a) {
16443
14852
  onFocus && onFocus(event);
16444
14853
  };
16445
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 }));
16446
- }
14855
+ };
16447
14856
 
16448
14857
  var validateTagValue = function (value) {
16449
14858
  var errorList = [];
@@ -16468,28 +14877,26 @@ var ValidationRules = /** @class */ (function () {
16468
14877
  if (!key) {
16469
14878
  errorList.push('Key is required');
16470
14879
  }
16471
- else {
16472
- if (!key.startsWith("devtron.ai/")) {
16473
- var re = new RegExp('/', 'g');
16474
- var noOfSlashInKey = (_a = key.match(re)) === null || _a === void 0 ? void 0 : _a.length;
16475
- if (noOfSlashInKey > 1) {
16476
- errorList.push('Key: Max 1 ( / ) allowed');
16477
- }
16478
- else if (noOfSlashInKey === 1) {
16479
- var _b = __read(key.split('/'), 2), prefix = _b[0], name_1 = _b[1];
16480
- errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(name_1).map(function (error) { return "Name: ".concat(error); })), false));
16481
- if (prefix.length > 253) {
16482
- errorList.push('Prefix: Can be max 253 characters');
16483
- }
16484
- var validPrefix = PATTERNS.KUBERNETES_KEY_PREFIX.test(prefix);
16485
- if (!validPrefix) {
16486
- errorList.push('Prefix: Must be a DNS subdomain (a series of DNS labels separated by dots (.)');
16487
- }
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');
16488
14891
  }
16489
- else {
16490
- errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(key).map(function (error) { return "Name: ".concat(error); })), false));
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 (.)');
16491
14895
  }
16492
14896
  }
14897
+ else {
14898
+ errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(key).map(function (error) { return "Name: ".concat(error); })), false));
14899
+ }
16493
14900
  }
16494
14901
  return { isValid: errorList.length === 0, messages: errorList };
16495
14902
  };
@@ -16498,10 +14905,8 @@ var ValidationRules = /** @class */ (function () {
16498
14905
  if (!value) {
16499
14906
  errorList.push('Value is required');
16500
14907
  }
16501
- else {
16502
- if (!key.startsWith("devtron.ai/")) {
16503
- errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(value)), false));
16504
- }
14908
+ else if (!key.startsWith('devtron.ai/')) {
14909
+ errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(value)), false));
16505
14910
  }
16506
14911
  return { isValid: errorList.length === 0, messages: errorList };
16507
14912
  };
@@ -16572,12 +14977,8 @@ var TagLabelValueSelector = function (_a) {
16572
14977
  }
16573
14978
  return null;
16574
14979
  };
16575
- var option = function (tag, index) {
16576
- 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)));
16577
- };
16578
- var optionWithTippy = function (tag, index) {
16579
- 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) })));
16580
- };
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) }))); };
16581
14982
  var renderSuggestions = function () {
16582
14983
  if (tagOptions === null || tagOptions === void 0 ? void 0 : tagOptions.length) {
16583
14984
  var filteredTags = tagOptions.filter(function (tag) { return tag.label.indexOf(selectedValue) >= 0; });
@@ -16622,7 +15023,7 @@ var TagDetails = function (_a) {
16622
15023
  }
16623
15024
  setTagData(index, _tagData);
16624
15025
  };
16625
- 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" }) }))] })));
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" }) }))] })));
16626
15027
  };
16627
15028
 
16628
15029
  var _path$7;
@@ -16645,7 +15046,7 @@ var TagLabelSelect = function (_a) {
16645
15046
  var setTagData = function (index, tagValue) {
16646
15047
  var _tags = __spreadArray([], __read(labelTags), false);
16647
15048
  var _tagValue = tagValue;
16648
- if (_tagValue.key.startsWith("devtron.ai/")) {
15049
+ if (_tagValue.key.startsWith('devtron.ai/')) {
16649
15050
  _tagValue.propagate = false;
16650
15051
  }
16651
15052
  _tags[index] = _tagValue;
@@ -16664,22 +15065,22 @@ var TagLabelSelect = function (_a) {
16664
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))); }) }))] })] }));
16665
15066
  };
16666
15067
 
16667
- function ConfirmationDialog(_a) {
15068
+ var ConfirmationDialog = function (_a) {
16668
15069
  var _b = _a.className, className = _b === void 0 ? '' : _b, children = _a.children;
16669
15070
  return (jsxRuntime.jsx(VisibleModal2, __assign({ className: "confirmation-dialog" }, { children: jsxRuntime.jsx("div", __assign({ className: "confirmation-dialog__body ".concat(className) }, { children: children })) })));
16670
- }
16671
- function Icon(_a) {
15071
+ };
15072
+ var Icon = function (_a) {
16672
15073
  var src = _a.src, _b = _a.className, className = _b === void 0 ? '' : _b;
16673
- return jsxRuntime.jsx("img", { src: src, className: "confirmation-dialog__icon ".concat(className), alt: "" });
16674
- }
16675
- function Body(_a) {
15074
+ return (jsxRuntime.jsx("img", { src: src, className: "confirmation-dialog__icon ".concat(className), alt: "" }));
15075
+ };
15076
+ var Body = function (_a) {
16676
15077
  var title = _a.title, _b = _a.subtitle, subtitle = _b === void 0 ? null : _b, _c = _a.children, children = _c === void 0 ? null : _c;
16677
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] })));
16678
- }
16679
- function ButtonGroup(_a) {
15079
+ };
15080
+ var ButtonGroup = function (_a) {
16680
15081
  var children = _a.children;
16681
- return jsxRuntime.jsx("div", __assign({ className: "flex right confirmation-dialog__button-group" }, { children: children }));
16682
- }
15082
+ return (jsxRuntime.jsx("div", __assign({ className: "flex right confirmation-dialog__button-group" }, { children: children })));
15083
+ };
16683
15084
  ConfirmationDialog.Icon = Icon;
16684
15085
  ConfirmationDialog.Body = Body;
16685
15086
  ConfirmationDialog.ButtonGroup = ButtonGroup;
@@ -16701,15 +15102,13 @@ var DeleteDialog = function (props) {
16701
15102
  };
16702
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 || '')) }))] })) })] })));
16703
15104
  };
16704
- function DeleteDialogDescription(props) {
16705
- return jsxRuntime.jsx(jsxRuntime.Fragment, { children: props.children });
16706
- }
15105
+ var DeleteDialogDescription = function (props) { return jsxRuntime.jsx(jsxRuntime.Fragment, { children: props.children }); };
16707
15106
  DeleteDialog.Description = DeleteDialogDescription;
16708
15107
 
16709
- //TODO: may not need context
15108
+ // TODO: may not need context
16710
15109
  var DialogFormContext = React.createContext({ title: '', isLoading: false, close: function (event) { }, onSave: function (event) { } });
16711
15110
  var DialogForm = /** @class */ (function (_super) {
16712
- __extends$1(DialogForm, _super);
15111
+ __extends(DialogForm, _super);
16713
15112
  function DialogForm(props) {
16714
15113
  var _this = _super.call(this, props) || this;
16715
15114
  _this.escFunction = _this.escFunction.bind(_this);
@@ -16733,27 +15132,23 @@ var DialogForm = /** @class */ (function (_super) {
16733
15132
  isLoading: this.props.isLoading,
16734
15133
  close: this.props.close,
16735
15134
  onSave: this.props.onSave,
16736
- } }, { 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) {
16737
- return (jsxRuntime.jsx("form", __assign({ noValidate: true, onSubmit: function (e) {
16738
- e.preventDefault();
16739
- if (!context.isLoading) {
16740
- context.onSave(e);
16741
- }
16742
- } }, { children: _this.props.children })));
16743
- } })] })) })) })));
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 }))); } })] })) })) })));
16744
15141
  };
16745
15142
  return DialogForm;
16746
15143
  }(React.Component));
16747
15144
  var DialogFormSubmit = /** @class */ (function (_super) {
16748
- __extends$1(DialogFormSubmit, _super);
15145
+ __extends(DialogFormSubmit, _super);
16749
15146
  function DialogFormSubmit() {
16750
15147
  return _super !== null && _super.apply(this, arguments) || this;
16751
15148
  }
16752
15149
  DialogFormSubmit.prototype.render = function () {
16753
15150
  var _this = this;
16754
- return (jsxRuntime.jsx(DialogFormContext.Consumer, { children: function (context) {
16755
- 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 })));
16756
- } }));
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 }))); } }));
16757
15152
  };
16758
15153
  return DialogFormSubmit;
16759
15154
  }(React.Component));
@@ -19603,14 +17998,14 @@ function _objectWithoutProperties(source, excluded) {
19603
17998
  return target;
19604
17999
  }
19605
18000
 
19606
- function _typeof(obj) {
18001
+ function _typeof(o) {
19607
18002
  "@babel/helpers - typeof";
19608
18003
 
19609
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
19610
- return typeof obj;
19611
- } : function (obj) {
19612
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
19613
- }, _typeof(obj);
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);
19614
18009
  }
19615
18010
 
19616
18011
  function _classCallCheck(instance, Constructor) {
@@ -19619,20 +18014,20 @@ function _classCallCheck(instance, Constructor) {
19619
18014
  }
19620
18015
  }
19621
18016
 
19622
- function _toPrimitive(input, hint) {
19623
- if (_typeof(input) !== "object" || input === null) return input;
19624
- var prim = input[Symbol.toPrimitive];
19625
- if (prim !== undefined) {
19626
- var res = prim.call(input, hint || "default");
19627
- if (_typeof(res) !== "object") return res;
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;
19628
18023
  throw new TypeError("@@toPrimitive must return a primitive value.");
19629
18024
  }
19630
- return (hint === "string" ? String : Number)(input);
18025
+ return ("string" === r ? String : Number)(t);
19631
18026
  }
19632
18027
 
19633
- function _toPropertyKey(arg) {
19634
- var key = _toPrimitive(arg, "string");
19635
- return _typeof(key) === "symbol" ? key : String(key);
18028
+ function toPropertyKey(t) {
18029
+ var i = toPrimitive(t, "string");
18030
+ return "symbol" == _typeof(i) ? i : String(i);
19636
18031
  }
19637
18032
 
19638
18033
  function _defineProperties(target, props) {
@@ -19641,7 +18036,7 @@ function _defineProperties(target, props) {
19641
18036
  descriptor.enumerable = descriptor.enumerable || false;
19642
18037
  descriptor.configurable = true;
19643
18038
  if ("value" in descriptor) descriptor.writable = true;
19644
- Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
18039
+ Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
19645
18040
  }
19646
18041
  }
19647
18042
  function _createClass(Constructor, protoProps, staticProps) {
@@ -19679,7 +18074,7 @@ function _inherits(subClass, superClass) {
19679
18074
  }
19680
18075
 
19681
18076
  function _defineProperty$1(obj, key, value) {
19682
- key = _toPropertyKey(key);
18077
+ key = toPropertyKey(key);
19683
18078
  if (key in obj) {
19684
18079
  Object.defineProperty(obj, key, {
19685
18080
  value: value,
@@ -21237,31 +19632,31 @@ function _arrayWithHoles(arr) {
21237
19632
  if (Array.isArray(arr)) return arr;
21238
19633
  }
21239
19634
 
21240
- function _iterableToArrayLimit(arr, i) {
21241
- var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
21242
- if (null != _i) {
21243
- var _s,
21244
- _e,
21245
- _x,
21246
- _r,
21247
- _arr = [],
21248
- _n = !0,
21249
- _d = !1;
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;
21250
19645
  try {
21251
- if (_x = (_i = _i.call(arr)).next, 0 === i) {
21252
- if (Object(_i) !== _i) return;
21253
- _n = !1;
21254
- } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
21255
- } catch (err) {
21256
- _d = !0, _e = err;
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;
21257
19652
  } finally {
21258
19653
  try {
21259
- if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
19654
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
21260
19655
  } finally {
21261
- if (_d) throw _e;
19656
+ if (o) throw n;
21262
19657
  }
21263
19658
  }
21264
- return _arr;
19659
+ return a;
21265
19660
  }
21266
19661
  }
21267
19662
 
@@ -24252,35 +22647,31 @@ var MultiValueChipContainer = function (_a) {
24252
22647
  var multiSelectStyles = {
24253
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' })); },
24254
22649
  menu: function (base, state) { return (__assign({}, base)); },
24255
- option: function (base, state) {
24256
- return __assign(__assign({}, base), { backgroundColor: state.isFocused ? 'var(--N100)' : 'white', color: 'var(--N900)', padding: '8px 12px' });
24257
- },
22650
+ option: function (base, state) { return (__assign(__assign({}, base), { backgroundColor: state.isFocused ? 'var(--N100)' : 'white', color: 'var(--N900)', padding: '8px 12px' })); },
24258
22651
  container: function (base, state) { return (__assign(__assign({}, base), { cursor: state.isDisabled ? 'not-allowed' : 'pointer' })); },
24259
22652
  valueContainer: function (base, state) { return (__assign(__assign({}, base), { color: state.selectProps.menuIsOpen ? 'var(--N500)' : base.color })); },
24260
22653
  };
24261
- var CustomSelect = function (props) {
24262
- return jsxRuntime.jsx(ReactSelect, __assign({}, props));
24263
- };
22654
+ var CustomSelect = function (props) { return jsxRuntime.jsx(ReactSelect, __assign({}, props)); };
24264
22655
 
24265
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}";
24266
22657
  styleInject(css_248z$4);
24267
22658
 
24268
- function InfoColourBar(_a) {
22659
+ var InfoColourBar = function (_a) {
24269
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;
24270
22661
  var renderLink = function () {
24271
22662
  if (!linkText) {
24272
22663
  return null;
24273
22664
  }
24274
- else if (redirectLink) {
22665
+ if (redirectLink) {
24275
22666
  if (internalLink) {
24276
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 })));
24277
22668
  }
24278
- 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 })));
24279
22670
  }
24280
22671
  return (linkOnClick && (jsxRuntime.jsx("div", __assign({ onClick: linkOnClick, className: "cursor dc__link dc__underline-onhover", "data-testid": "info-bar-linkText" }, { children: linkText }))));
24281
22672
  };
24282
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()] })) })));
24283
- }
22674
+ };
24284
22675
 
24285
22676
  var getTeamListMin = function () {
24286
22677
  // ignore active field
@@ -24290,9 +22681,7 @@ var getTeamListMin = function () {
24290
22681
  if (response && response.result && Array.isArray(response.result)) {
24291
22682
  list = response.result;
24292
22683
  }
24293
- list = list.sort(function (a, b) {
24294
- return sortCallback('name', a, b);
24295
- });
22684
+ list = list.sort(function (a, b) { return sortCallback('name', a, b); });
24296
22685
  return {
24297
22686
  code: response.code,
24298
22687
  status: response.status,
@@ -24318,9 +22707,7 @@ function setImageTags(request, pipelineId, artifactId) {
24318
22707
  return post("".concat(ROUTES.IMAGE_TAGGING, "/").concat(pipelineId, "/").concat(artifactId), request);
24319
22708
  }
24320
22709
  var processURL = function (url, params) {
24321
- var validParams = Object.keys(params).filter(function (key) {
24322
- return params[key] != null;
24323
- });
22710
+ var validParams = Object.keys(params).filter(function (key) { return params[key] != null; });
24324
22711
  if (!validParams.length) {
24325
22712
  return url;
24326
22713
  }
@@ -24382,24 +22769,22 @@ var cdMaterialListModal = function (artifacts, offset, artifactId, artifactStatu
24382
22769
  // It is going to be null but required in type so can't remove
24383
22770
  lastExecution: material.lastExecution,
24384
22771
  materialInfo: material.material_info
24385
- ? material.material_info.map(function (mat) {
24386
- return {
24387
- modifiedTime: mat.modifiedTime
24388
- ? moment(mat.modifiedTime).format('ddd, DD MMM YYYY, hh:mm A')
24389
- : '',
24390
- commitLink: createGitCommitUrl(mat.url, mat.revision),
24391
- author: mat.author || '',
24392
- message: mat.message || '',
24393
- revision: mat.revision || '',
24394
- tag: mat.tag || '',
24395
- webhookData: mat.webhookData || '',
24396
- url: mat.url || '',
24397
- branch: (material.ciConfigureSourceType === SourceTypeMap.WEBHOOK
24398
- ? material.ciConfigureSourceValue
24399
- : mat.branch) || '',
24400
- type: material.ciConfigureSourceType || '',
24401
- };
24402
- })
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
+ }); })
24403
22788
  : [],
24404
22789
  filterState: filterState,
24405
22790
  appliedFiltersTimestamp: (_b = material.appliedFiltersTimestamp) !== null && _b !== void 0 ? _b : '',
@@ -24458,9 +22843,7 @@ var processCDMaterialServiceResponse = function (cdMaterialsResult, stage, offse
24458
22843
  var metaInfo = processCDMaterialsMetaInfo(cdMaterialsResult);
24459
22844
  // TODO: On update of service would remove from here
24460
22845
  var filteredMaterials = filter && filter === exports.CDMaterialFilterQuery.RESOURCE
24461
- ? materials.filter(function (material) {
24462
- return material.filterState === exports.FilterStates.ALLOWED;
24463
- })
22846
+ ? materials.filter(function (material) { return material.filterState === exports.FilterStates.ALLOWED; })
24464
22847
  : materials;
24465
22848
  return __assign(__assign({ materials: filteredMaterials }, approvalInfo), metaInfo);
24466
22849
  };
@@ -24491,30 +22874,27 @@ function extractImage(image) {
24491
22874
  }
24492
22875
  function createGitCommitUrl(url, revision) {
24493
22876
  if (!url || !revision) {
24494
- return "NA";
22877
+ return 'NA';
24495
22878
  }
24496
- if (url.indexOf("gitlab") > 0 || url.indexOf("github") > 0 || url.indexOf("azure") > 0) {
24497
- var urlpart = url.split("@");
22879
+ if (url.indexOf('gitlab') > 0 || url.indexOf('github') > 0 || url.indexOf('azure') > 0) {
22880
+ var urlpart = url.split('@');
24498
22881
  if (urlpart.length > 1) {
24499
- return "https://" + urlpart[1].split(".git")[0] + "/commit/" + revision;
22882
+ return "https://".concat(urlpart[1].split('.git')[0], "/commit/").concat(revision);
24500
22883
  }
24501
22884
  if (urlpart.length == 1) {
24502
- return urlpart[0].split(".git")[0] + "/commit/" + revision;
22885
+ return "".concat(urlpart[0].split('.git')[0], "/commit/").concat(revision);
24503
22886
  }
24504
22887
  }
24505
- if (url.indexOf("bitbucket") > 0) {
24506
- var urlpart = url.split("@");
22888
+ if (url.indexOf('bitbucket') > 0) {
22889
+ var urlpart = url.split('@');
24507
22890
  if (urlpart.length > 1) {
24508
- return "https://" + urlpart[1].split(".git")[0] + "/commits/" + revision;
22891
+ return "https://".concat(urlpart[1].split('.git')[0], "/commits/").concat(revision);
24509
22892
  }
24510
22893
  if (urlpart.length == 1) {
24511
- return urlpart[0].split(".git")[0] + "/commits/" + revision;
22894
+ return "".concat(urlpart[0].split('.git')[0], "/commits/").concat(revision);
24512
22895
  }
24513
22896
  }
24514
- return "NA";
24515
- }
24516
- function fetchChartTemplateVersions() {
24517
- return get("".concat(ROUTES.DEPLOYMENT_TEMPLATE_LIST, "?appId=-1&envId=-1"));
22897
+ return 'NA';
24518
22898
  }
24519
22899
 
24520
22900
  /*
@@ -24527,14 +22907,14 @@ Valid States of Checkbox:
24527
22907
  6. disabled: false, checked: true, value: CHECKED
24528
22908
  */
24529
22909
  var Checkbox$1 = /** @class */ (function (_super) {
24530
- __extends$1(Checkbox, _super);
22910
+ __extends(Checkbox, _super);
24531
22911
  function Checkbox() {
24532
22912
  return _super !== null && _super.apply(this, arguments) || this;
24533
22913
  }
24534
22914
  Checkbox.prototype.render = function () {
24535
22915
  var _a;
24536
22916
  var rootClassName = "".concat(this.props.rootClassName ? this.props.rootClassName : '');
24537
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: 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 }))] })) }));
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 }))] })));
24538
22918
  };
24539
22919
  return Checkbox;
24540
22920
  }(React.Component));
@@ -24575,23 +22955,21 @@ function ScanVulnerabilitiesTable(_a) {
24575
22955
  window.open("https://cve.mitre.org/cgi-bin/cvename.cgi?name=".concat(vulnerability.name), '_blank');
24576
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() }))] })));
24577
22957
  };
24578
- 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) {
24579
- return renderRow(vulnerability);
24580
- })] }) })));
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); })] }) })));
24581
22959
  }
24582
22960
 
24583
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}";
24584
22962
  styleInject(css_248z$1);
24585
22963
 
24586
- var RadioContext = React.createContext(null);
22964
+ var RadioContext = React__namespace.createContext(null);
24587
22965
  function useRadioContext() {
24588
- var context = React.useContext(RadioContext);
22966
+ var context = React__namespace.useContext(RadioContext);
24589
22967
  if (!context) {
24590
22968
  throw new Error("Radio compound components cannot be rendered outside the Toggle component");
24591
22969
  }
24592
22970
  return context;
24593
22971
  }
24594
- var RadioGroup = React.memo(function RadioGroup(_a) {
22972
+ var RadioGroup = React__namespace.memo(function (_a) {
24595
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;
24596
22974
  var _d = __read(React.useState(null), 2), selected = _d[0], select = _d[1];
24597
22975
  React.useEffect(function () {
@@ -24601,7 +22979,7 @@ var RadioGroup = React.memo(function RadioGroup(_a) {
24601
22979
  }, [initialTab]);
24602
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 })) })));
24603
22981
  });
24604
- function Radio(_a) {
22982
+ var Radio = function (_a) {
24605
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;
24606
22984
  var _j = useRadioContext(), name = _j.name, selected = _j.selected, select = _j.select, disabled = _j.disabled, onChange = _j.onChange;
24607
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) {
@@ -24611,7 +22989,7 @@ function Radio(_a) {
24611
22989
  }
24612
22990
  onChange(e);
24613
22991
  }, disabled: isDisabled || disabled }), jsxRuntime.jsx("span", __assign({ className: "radio__item-label", "data-testid": dataTestId }, { children: children }))] })) })));
24614
- }
22992
+ };
24615
22993
  RadioGroup.Radio = Radio;
24616
22994
 
24617
22995
  exports.RefVariableType = void 0;
@@ -24697,7 +23075,7 @@ var SvgIcInfoFilled = function SvgIcInfoFilled(props) {
24697
23075
  };
24698
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";
24699
23077
 
24700
- function DeleteComponent(_a) {
23078
+ var DeleteComponent = function (_a) {
24701
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;
24702
23080
  var _f = __read(React.useState(false), 2), showCannotDeleteDialogModal = _f[0], setCannotDeleteDialogModal = _f[1];
24703
23081
  var push = reactRouterDom.useHistory().push;
@@ -24747,14 +23125,10 @@ function DeleteComponent(_a) {
24747
23125
  closeCustomComponent();
24748
23126
  }
24749
23127
  };
24750
- var renderCannotDeleteDialogModal = function () {
24751
- 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" })) })] })));
24752
- };
24753
- var renderDeleteDialog = function () {
24754
- 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, "? "] }) }) })));
24755
- };
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, "? "] }) }) }))); };
24756
23130
  return (jsxRuntime.jsxs("div", { children: [!showCannotDeleteDialogModal && renderDeleteDialog(), showCannotDeleteDialogModal && renderCannotDeleteDialogModal()] }));
24757
- }
23131
+ };
24758
23132
 
24759
23133
  var _path$5;
24760
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); }
@@ -24878,13 +23252,13 @@ var ImageTagsContainer = function (_a) {
24878
23252
  var
24879
23253
  // Setting it to zero in case of external pipeline
24880
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;
24881
- var _b = __read(React.useState(imageReleaseTags ? imageReleaseTags : []), 2), initialTags = _b[0], setInitialTags = _b[1];
23255
+ var _b = __read(React.useState(imageReleaseTags || []), 2), initialTags = _b[0], setInitialTags = _b[1];
24882
23256
  var _c = __read(React.useState(imageComment ? imageComment.comment : ''), 2), initialDescription = _c[0], setInitialDescription = _c[1];
24883
- var _d = __read(React.useState(appReleaseTagNames ? appReleaseTagNames : []), 2), existingTags = _d[0], setExistingTags = _d[1];
23257
+ var _d = __read(React.useState(appReleaseTagNames || []), 2), existingTags = _d[0], setExistingTags = _d[1];
24884
23258
  var _e = __read(React.useState(imageComment ? imageComment.comment : ''), 2), newDescription = _e[0], setNewDescription = _e[1];
24885
23259
  var _f = __read(React.useState(false), 2), isEditing = _f[0], setIsEditing = _f[1];
24886
23260
  var _g = __read(React.useState(false), 2), showTagsWarning = _g[0], setShowTagsWarning = _g[1];
24887
- var _h = __read(React.useState(imageReleaseTags ? imageReleaseTags : []), 2), displayedTags = _h[0], setDisplayedTags = _h[1];
23261
+ var _h = __read(React.useState(imageReleaseTags || []), 2), displayedTags = _h[0], setDisplayedTags = _h[1];
24888
23262
  var _j = __read(React.useState(''), 2), tagErrorMessage = _j[0], setTagErrorMessage = _j[1];
24889
23263
  var _k = __read(React.useState([]), 2), createTags = _k[0], setCreateTags = _k[1];
24890
23264
  var _l = __read(React.useState([]), 2), softDeleteTags = _l[0], setSoftDeleteTags = _l[1];
@@ -24896,14 +23270,14 @@ var ImageTagsContainer = function (_a) {
24896
23270
  reInitState();
24897
23271
  }, [imageReleaseTags, imageComment, tagsEditable]);
24898
23272
  React.useEffect(function () {
24899
- setExistingTags(appReleaseTagNames ? appReleaseTagNames : []);
23273
+ setExistingTags(appReleaseTagNames || []);
24900
23274
  }, [appReleaseTagNames]);
24901
23275
  var reInitState = function () {
24902
23276
  if (forceReInit || !isEditing) {
24903
- setInitialTags(imageReleaseTags ? imageReleaseTags : []);
23277
+ setInitialTags(imageReleaseTags || []);
24904
23278
  setInitialDescription(imageComment ? imageComment.comment : '');
24905
23279
  setNewDescription(imageComment ? imageComment.comment : '');
24906
- setDisplayedTags(imageReleaseTags ? imageReleaseTags : []);
23280
+ setDisplayedTags(imageReleaseTags || []);
24907
23281
  setIsEditing(false);
24908
23282
  }
24909
23283
  };
@@ -25086,12 +23460,8 @@ var ImageTagsContainer = function (_a) {
25086
23460
  return [2 /*return*/];
25087
23461
  });
25088
23462
  }); };
25089
- var renderInfoCard = function () {
25090
- 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" }) })) })));
25091
- };
25092
- var getBuildContextAdditionalContent = function () {
25093
- 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." })] }))] })));
25094
- };
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." })] }))] }))); };
25095
23465
  var creatableRef = React.useRef(null);
25096
23466
  if (newDescription === '' && displayedTags.length === 0 && !isEditing) {
25097
23467
  return tagsEditable ? (jsxRuntime.jsx("div", __assign({ className: "bcn-0 mt-8 add-image-button" }, { children: jsxRuntime.jsx(AddImageButton, { handleEditClick: handleEditClick }) }))) : (jsxRuntime.jsx("div", {}));
@@ -25135,7 +23505,7 @@ var ImageTagsContainer = function (_a) {
25135
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) {
25136
23506
  stopPropagation(e);
25137
23507
  onClickSave();
25138
- }, 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) {
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) {
25139
23509
  stopPropagation(e);
25140
23510
  handleTagSoftDelete(index);
25141
23511
  }, onHardDeleteClick: function (e) {
@@ -25155,12 +23525,10 @@ var ImageTagButton = function (_a) {
25155
23525
  if (duplicateTag) {
25156
23526
  return 'cr-5 bcr-1 er-2';
25157
23527
  }
25158
- else if (isSoftDeleted) {
23528
+ if (isSoftDeleted) {
25159
23529
  return 'cy-7 bcy-1 dc__strike-through ey-2';
25160
23530
  }
25161
- else {
25162
- return 'cn-9';
25163
- }
23531
+ return 'cn-9';
25164
23532
  };
25165
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 }) })) }))] })));
25166
23534
  };
@@ -25203,7 +23571,7 @@ var ResizableTextarea = function (_a) {
25203
23571
  if (maxHeight && nextHeight > maxHeight) {
25204
23572
  nextHeight = maxHeight;
25205
23573
  }
25206
- _textRef.current.style.height = nextHeight + 2 + 'px';
23574
+ _textRef.current.style.height = "".concat(nextHeight + 2, "px");
25207
23575
  }, 500, [text]);
25208
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)));
25209
23577
  };
@@ -25282,7 +23650,7 @@ function DebouncedSearch(_a) {
25282
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
25283
23651
  function Grid(_a) {
25284
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;
25285
- var containerStyles = container ? { gap: spacing + 'px' } : {};
23653
+ var containerStyles = container ? { gap: "".concat(spacing, "px") } : {};
25286
23654
  if (item) {
25287
23655
  var getColumnWidth = function () {
25288
23656
  var percentageWidth = (xs / 12) * 100;
@@ -25436,15 +23804,13 @@ var triggerStatus = function (triggerDetailStatus) {
25436
23804
  if (triggerStatus === TIMELINE_STATUS.ABORTED || triggerStatus === TIMELINE_STATUS.DEGRADED) {
25437
23805
  return 'Failed';
25438
23806
  }
25439
- else if (triggerStatus === TIMELINE_STATUS.HEALTHY) {
23807
+ if (triggerStatus === TIMELINE_STATUS.HEALTHY) {
25440
23808
  return 'Succeeded';
25441
23809
  }
25442
- else if (triggerStatus === TIMELINE_STATUS.INPROGRESS) {
23810
+ if (triggerStatus === TIMELINE_STATUS.INPROGRESS) {
25443
23811
  return 'Inprogress';
25444
23812
  }
25445
- else {
25446
- return triggerDetailStatus;
25447
- }
23813
+ return triggerDetailStatus;
25448
23814
  };
25449
23815
 
25450
23816
  function AppStatus(_a) {
@@ -25463,12 +23829,10 @@ function AppStatus(_a) {
25463
23829
  if (iconClass) {
25464
23830
  return jsxRuntime.jsx("span", { className: "dc__app-summary__icon icon-dim-16 ".concat(iconClass, " ").concat(iconClass, "--node") });
25465
23831
  }
25466
- else if (isVirtualEnv) {
23832
+ if (isVirtualEnv) {
25467
23833
  return (jsxRuntime.jsx("span", { className: "dc__app-summary__icon icon-dim-16 ".concat(StatusConstants.NOT_DEPLOYED.lowerCase, " ").concat(StatusConstants.NOT_DEPLOYED.lowerCase, "--node") }));
25468
23834
  }
25469
- else {
25470
- 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" }) })));
25471
- }
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" }) })));
25472
23836
  };
25473
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 }))] })));
25474
23838
  }
@@ -25556,9 +23920,7 @@ var FieldErrorTemplate = function (_a) {
25556
23920
  var id = utils.errorId(idSchema);
25557
23921
  return (errors.length > 0 && (jsxRuntime.jsx("span", __assign({ id: id }, { children: errors
25558
23922
  .filter(function (elem) { return !!elem; })
25559
- .map(function (error, index) {
25560
- return (jsxRuntime.jsxs("span", __assign({ className: "form__error" }, { children: [jsxRuntime.jsx(SvgIcWarning, { className: "form__icon form__icon--error" }), error] }), index));
25561
- }) }))));
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)); }) }))));
25562
23924
  };
25563
23925
 
25564
23926
  var Field = function (_a) {
@@ -25571,9 +23933,7 @@ var Field = function (_a) {
25571
23933
  if (properties.length) {
25572
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] }));
25573
23935
  }
25574
- else {
25575
- return (jsxRuntime.jsx(FieldRowWithLabel, __assign({ label: title, required: required, showLabel: true, id: idSchema.$id }, { children: ActionButton })));
25576
- }
23936
+ return (jsxRuntime.jsx(FieldRowWithLabel, __assign({ label: title, required: required, showLabel: true, id: idSchema.$id }, { children: ActionButton })));
25577
23937
  }
25578
23938
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [Properties, ActionButton] }));
25579
23939
  };
@@ -28063,9 +26423,7 @@ var translateString = function (stringToTranslate, params) {
28063
26423
  };
28064
26424
  var getCommonSelectStyle = function (styleOverrides) {
28065
26425
  if (styleOverrides === void 0) { styleOverrides = {}; }
28066
- 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) {
28067
- return __assign(__assign({}, base), { border: "1px solid var(--N200)", borderRadius: "4px", background: 'white', height: '28px', marginRight: '8px', padding: '2px', fontSize: '12px' });
28068
- } }, 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));
28069
26427
  };
28070
26428
  /**
28071
26429
  * Returns the redirection props for a url
@@ -28224,65 +26582,18 @@ var SvgIcRotateDevtron = function SvgIcRotateDevtron(props) {
28224
26582
  }))));
28225
26583
  };
28226
26584
 
28227
- function DevtronProgressing(_a) {
26585
+ var DevtronProgressing = function (_a) {
28228
26586
  var classes = _a.classes, parentClasses = _a.parentClasses;
28229
- return (jsxRuntime.jsx("div", __assign({ className: parentClasses ? parentClasses : '' }, { children: jsxRuntime.jsx(SvgIcRotateDevtron, { className: classes ? classes : '' }) })));
28230
- }
28231
-
28232
- // @TODO: Generalize this component to be used in CodeEditor as Chart selector toolbar
28233
- // when the Code Editor is moved to the fe-common-lib
28234
- var ChartVersionAndTypeSelector = function (_a) {
28235
- var setSelectedChartRefId = _a.setSelectedChartRefId;
28236
- var _b = __read(React.useState([]), 2), charts = _b[0], setCharts = _b[1];
28237
- var _c = __read(React.useState(null), 2), selectedChartType = _c[0], setSelectedChartType = _c[1];
28238
- var _d = __read(React.useState([]), 2), chartVersionOptions = _d[0], setChartVersionOptions = _d[1];
28239
- var _e = __read(React.useState([]), 2), chartTypeOptions = _e[0], setChartTypeOptions = _e[1];
28240
- var _f = __read(React.useState(null), 2), selectedChartVersion = _f[0], setSelectedChartVersion = _f[1];
28241
- React.useEffect(function () {
28242
- fetchChartTemplateVersions()
28243
- .then(function (res) {
28244
- var charts = (res === null || res === void 0 ? void 0 : res.result) || [];
28245
- setCharts(charts);
28246
- // Extract unique chart types from the data
28247
- var chartTypeOptions = __spreadArray([], __read(new Set(charts.map(function (item) { return item.chartType; }))), false).map(function (type) { return ({
28248
- value: type,
28249
- label: type,
28250
- }); });
28251
- setChartTypeOptions(chartTypeOptions);
28252
- var filteredVersions = getFilteredChartVersions(charts, chartTypeOptions[0]);
28253
- selectFirstChartVersion(filteredVersions);
28254
- })
28255
- .catch(function (err) {
28256
- showError(err);
28257
- });
28258
- }, []);
28259
- var selectFirstChartVersion = function (filteredVersions) {
28260
- var _a;
28261
- setChartVersionOptions(filteredVersions);
28262
- setSelectedChartVersion(filteredVersions[0]); // Select the first chart version by default
28263
- setSelectedChartRefId((_a = filteredVersions[0]) === null || _a === void 0 ? void 0 : _a.chartRefId);
28264
- };
28265
- // Function to update chart version options based on selected chart type
28266
- var handleChartTypeChange = function (selectedOption) {
28267
- setSelectedChartType(selectedOption);
28268
- var filteredVersions = getFilteredChartVersions(charts, selectedOption);
28269
- selectFirstChartVersion(filteredVersions);
28270
- };
28271
- // Function to handle the change of the selected chart version
28272
- var handleChartVersionChange = function (selectedOption) {
28273
- setSelectedChartVersion(selectedOption);
28274
- setSelectedChartRefId(selectedOption.chartRefId);
28275
- };
28276
- return (jsxRuntime.jsxs("div", __assign({ className: "flex" }, { children: [jsxRuntime.jsxs("div", __assign({ className: "chart-type-options flex", "data-testid": "chart-type-options" }, { children: [jsxRuntime.jsx("span", __assign({ className: "chart-type-options-label mr-4" }, { children: "Chart Type" })), jsxRuntime.jsx(ReactSelect, { value: selectedChartType !== null && selectedChartType !== void 0 ? selectedChartType : chartTypeOptions[0], options: chartTypeOptions, onChange: handleChartTypeChange, styles: customStyles })] })), jsxRuntime.jsxs("div", __assign({ className: "chart-version-options flex", "data-testid": "chart-version-options" }, { children: [jsxRuntime.jsx("span", __assign({ className: "chart-version-options-label mr-4" }, { children: "Chart Version" })), jsxRuntime.jsx(ReactSelect, { value: selectedChartVersion !== null && selectedChartVersion !== void 0 ? selectedChartVersion : chartVersionOptions[0], options: chartVersionOptions, onChange: handleChartVersionChange, styles: customStyles })] }))] })));
26587
+ return (jsxRuntime.jsx("div", __assign({ className: parentClasses || '' }, { children: jsxRuntime.jsx(SvgIcRotateDevtron, { className: classes || '' }) })));
28277
26588
  };
28278
26589
 
28279
- function TooltipContent(_a) {
26590
+ var TooltipContent = function (_a) {
28280
26591
  var tooltipContent = _a.tooltipContent;
28281
26592
  if (tooltipContent) {
28282
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] })));
28283
26594
  }
28284
26595
  return jsxRuntime.jsx("div", __assign({ className: "dc__white-space-pre-wrap" }, { children: "Click to add here" }));
28285
- }
26596
+ };
28286
26597
  function AddCDButton(_a) {
28287
26598
  var position = _a.position, addCDButtons = _a.addCDButtons, endNode = _a.endNode, startNode = _a.startNode, handleAddCD = _a.handleAddCD, tooltipContent = _a.tooltipContent;
28288
26599
  var referenceNode = position === exports.AddCDPositions.RIGHT ? endNode : startNode;
@@ -28318,7 +26629,7 @@ var handleAddCD = function (_a) {
28318
26629
  handleCDSelect(workflowId, ciPipelineId, pipelineType, startNode.id, isWebhookCD, endNodeId, addPipelineType);
28319
26630
  };
28320
26631
 
28321
- function CustomInput(_a) {
26632
+ var CustomInput = function (_a) {
28322
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;
28323
26634
  function handleError(error) {
28324
26635
  if (!Array.isArray(error)) {
@@ -28328,7 +26639,7 @@ function CustomInput(_a) {
28328
26639
  }
28329
26640
  var onBlur = function (event) {
28330
26641
  var _a;
28331
- //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
28332
26643
  if (!noTrim) {
28333
26644
  event.stopPropagation();
28334
26645
  event.target.value = (_a = event.target.value) === null || _a === void 0 ? void 0 : _a.trim();
@@ -28338,41 +26649,33 @@ function CustomInput(_a) {
28338
26649
  handleOnBlur(event);
28339
26650
  }
28340
26651
  };
28341
- var renderFormErrorWithIcon = function (error) {
28342
- return (jsxRuntime.jsxs("div", __assign({ className: "form__error" }, { children: [jsxRuntime.jsx(SvgIcWarning, { className: "form__icon form__icon--error" }), error, typeof additionalErrorInfo === 'function' && additionalErrorInfo()] }), error));
28343
- };
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)); };
28344
26653
  var getInputError = function () {
28345
26654
  if (!(error === null || error === void 0 ? void 0 : error.length)) {
28346
26655
  return null;
28347
26656
  }
28348
- else {
28349
- if (typeof error === 'object') {
28350
- return handleError(error).map(function (err) { return renderFormErrorWithIcon(err); });
28351
- }
28352
- return renderFormErrorWithIcon(error);
26657
+ if (typeof error === 'object') {
26658
+ return handleError(error).map(function (err) { return renderFormErrorWithIcon(err); });
28353
26659
  }
26660
+ return renderFormErrorWithIcon(error);
28354
26661
  };
28355
26662
  var renderInputLabelConditionally = function () {
28356
26663
  if (typeof label === 'string') {
28357
26664
  return jsxRuntime.jsx("span", __assign({ className: "".concat(isRequiredField ? 'dc__required-field' : '') }, { children: label }));
28358
26665
  }
28359
- else {
28360
- return label;
28361
- }
26666
+ return label;
28362
26667
  };
28363
26668
  var renderInputLabel = function () {
28364
26669
  if (!label) {
28365
26670
  return null;
28366
26671
  }
28367
- else {
28368
- return (jsxRuntime.jsx("label", __assign({ className: "form__label ".concat(labelClassName), "data-testid": "label-".concat(dataTestid) }, { children: renderInputLabelConditionally() })));
28369
- }
26672
+ return (jsxRuntime.jsx("label", __assign({ className: "form__label ".concat(labelClassName), "data-testid": "label-".concat(dataTestid) }, { children: renderInputLabelConditionally() })));
28370
26673
  };
28371
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) {
28372
26675
  e.persist();
28373
26676
  onChange(e);
28374
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 }))] })))] })));
28375
- }
26678
+ };
28376
26679
 
28377
26680
  exports.AddCDButton = AddCDButton;
28378
26681
  exports.AppStatus = AppStatus;
@@ -28380,7 +26683,6 @@ exports.BreadCrumb = BreadCrumb;
28380
26683
  exports.BreadcrumbStore = Store;
28381
26684
  exports.BuildStageVariable = BuildStageVariable;
28382
26685
  exports.CDModalTab = CDModalTab;
28383
- exports.ChartVersionAndTypeSelector = ChartVersionAndTypeSelector;
28384
26686
  exports.Checkbox = Checkbox$1;
28385
26687
  exports.ClearIndicator = ClearIndicator;
28386
26688
  exports.ClipboardButton = ClipboardButton;
@@ -28453,22 +26755,17 @@ exports.VisibleModal2 = VisibleModal2;
28453
26755
  exports.closeOnEscKeyPressed = closeOnEscKeyPressed;
28454
26756
  exports.copyToClipboard = copyToClipboard;
28455
26757
  exports.createGitCommitUrl = createGitCommitUrl;
28456
- exports.customStyles = customStyles;
28457
26758
  exports.extractImage = extractImage;
28458
- exports.fetchChartTemplateVersions = fetchChartTemplateVersions;
28459
26759
  exports.genericCDMaterialsService = genericCDMaterialsService;
28460
26760
  exports.get = get;
28461
26761
  exports.getAlphabetIcon = getAlphabetIcon;
28462
26762
  exports.getCookie = getCookie;
28463
26763
  exports.getEmptyArrayOfLength = getEmptyArrayOfLength;
28464
- exports.getFilteredChartVersions = getFilteredChartVersions;
28465
26764
  exports.getInferredTypeFromValueType = getInferredTypeFromValueType;
28466
- exports.getLockedJSON = getLockedJSON;
28467
26765
  exports.getLoginInfo = getLoginInfo;
28468
26766
  exports.getRandomColor = getRandomColor;
28469
26767
  exports.getRedirectionProps = getRedirectionProps;
28470
26768
  exports.getTeamListMin = getTeamListMin;
28471
- exports.getUnlockedJSON = getUnlockedJSON;
28472
26769
  exports.getUrlWithSearchParams = getUrlWithSearchParams;
28473
26770
  exports.getUserRole = getUserRole;
28474
26771
  exports.handleAddCD = handleAddCD;