@devtron-labs/devtron-fe-common-lib 0.0.48-beta-5 → 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 (128) 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/Constants.d.ts +1 -1
  12. package/dist/Common/CustomInput/CustomInput.d.ts +1 -1
  13. package/dist/Common/CustomInput/Types.d.ts +2 -1
  14. package/dist/Common/CustomTagSelector/ResizableTagTextArea.d.ts +1 -1
  15. package/dist/Common/DeleteComponentModal/DeleteComponent.d.ts +1 -1
  16. package/dist/Common/DevtronProgressing/DevtronProgressing.d.ts +1 -1
  17. package/dist/Common/Dialogs/ConfirmationDialog.d.ts +6 -6
  18. package/dist/Common/Dialogs/DeleteDialog.d.ts +1 -1
  19. package/dist/Common/Dialogs/ForceDeleteDialog.d.ts +1 -1
  20. package/dist/Common/Dialogs/Types.d.ts +1 -1
  21. package/dist/Common/EmptyState/EmptyState.d.ts +20 -17
  22. package/dist/Common/EmptyState/GenericEmptyState.d.ts +1 -1
  23. package/dist/Common/Error.d.ts +2 -1
  24. package/dist/Common/ErrorScreenNotFound.d.ts +1 -1
  25. package/dist/Common/Helper.d.ts +1 -3
  26. package/dist/Common/ImageTags.d.ts +1 -1
  27. package/dist/Common/InfoColorBar/InfoColourbar.d.ts +1 -1
  28. package/dist/Common/Modals/Modal.d.ts +2 -2
  29. package/dist/Common/Modals/OpaqueModal.d.ts +3 -3
  30. package/dist/Common/Modals/VisibleModal.d.ts +3 -3
  31. package/dist/Common/Modals/VisibleModal2.d.ts +3 -3
  32. package/dist/Common/MultiSelectCustomization.d.ts +1 -1
  33. package/dist/Common/Policy.Types.d.ts +2 -2
  34. package/dist/Common/PopupMenu.d.ts +5 -5
  35. package/dist/Common/Progressing.d.ts +2 -2
  36. package/dist/Common/RadioGroup/RadioGroup.d.ts +1 -1
  37. package/dist/Common/ResizableTextarea.d.ts +1 -1
  38. package/dist/Common/TippyCustomized.d.ts +1 -1
  39. package/dist/Common/ToastBody.d.ts +5 -5
  40. package/dist/Common/Types.d.ts +0 -55
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.js +391 -2023
  43. package/package.json +19 -4
  44. package/src/Common/AddCDButton/AddCDButton.tsx +1 -2
  45. package/src/Common/Api.ts +21 -26
  46. package/src/Common/AppStatus/AppStatus.tsx +12 -12
  47. package/src/Common/AppStatus/utils.ts +6 -5
  48. package/src/Common/BreadCrumb/BreadCrumb.tsx +32 -28
  49. package/src/Common/BreadCrumb/BreadcrumbStore.tsx +2 -2
  50. package/src/Common/BreadCrumb/Types.ts +11 -12
  51. package/src/Common/Checkbox.tsx +17 -19
  52. package/src/Common/ClipboardButton/ClipboardButton.tsx +1 -1
  53. package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +0 -1
  54. package/src/Common/Common.service.ts +59 -64
  55. package/src/Common/Constants.ts +10 -10
  56. package/src/Common/CustomInput/CustomInput.tsx +22 -28
  57. package/src/Common/CustomInput/Types.ts +4 -3
  58. package/src/Common/CustomInput/index.ts +1 -1
  59. package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +15 -18
  60. package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +9 -9
  61. package/src/Common/CustomTagSelector/TagDetails.tsx +9 -3
  62. package/src/Common/CustomTagSelector/TagLabelSelect.tsx +7 -9
  63. package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +31 -35
  64. package/src/Common/CustomTagSelector/TagSelector.utils.ts +2 -3
  65. package/src/Common/CustomTagSelector/Types.ts +1 -1
  66. package/src/Common/CustomTagSelector/ValidationRules.ts +18 -22
  67. package/src/Common/CustomTagSelector/index.ts +2 -2
  68. package/src/Common/DebouncedSearch/DebouncedSearch.tsx +2 -1
  69. package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +0 -1
  70. package/src/Common/DeleteComponentModal/DeleteComponent.tsx +27 -32
  71. package/src/Common/DeleteComponentModal/types.ts +1 -1
  72. package/src/Common/DevtronProgressing/DevtronProgressing.tsx +5 -8
  73. package/src/Common/Dialogs/ConfirmationDialog.tsx +24 -24
  74. package/src/Common/Dialogs/DeleteDialog.tsx +3 -5
  75. package/src/Common/Dialogs/DialogForm.tsx +31 -35
  76. package/src/Common/Dialogs/ForceDeleteDialog.tsx +13 -7
  77. package/src/Common/Dialogs/Types.ts +12 -12
  78. package/src/Common/Dialogs/index.ts +1 -1
  79. package/src/Common/Drawer/Drawer.tsx +1 -1
  80. package/src/Common/EmptyState/EmptyState.tsx +13 -17
  81. package/src/Common/EmptyState/GenericEmptyState.tsx +25 -15
  82. package/src/Common/Error.tsx +5 -5
  83. package/src/Common/ErrorScreenNotFound.tsx +9 -12
  84. package/src/Common/Grid/Grid.tsx +1 -2
  85. package/src/Common/Helper.tsx +23 -87
  86. package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +1 -1
  87. package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +1 -1
  88. package/src/Common/ImageTags.Types.ts +2 -3
  89. package/src/Common/ImageTags.tsx +61 -66
  90. package/src/Common/InfoColorBar/InfoColourbar.tsx +10 -5
  91. package/src/Common/Modals/Modal.tsx +3 -3
  92. package/src/Common/Modals/OpaqueModal.tsx +25 -18
  93. package/src/Common/Modals/VisibleModal.tsx +7 -3
  94. package/src/Common/Modals/VisibleModal2.tsx +20 -15
  95. package/src/Common/MultiSelectCustomization.tsx +9 -13
  96. package/src/Common/Policy.Types.ts +38 -38
  97. package/src/Common/PopupMenu.tsx +10 -9
  98. package/src/Common/Progressing.tsx +15 -18
  99. package/src/Common/RJSF/Form.tsx +0 -1
  100. package/src/Common/RJSF/common/FieldRow.tsx +0 -1
  101. package/src/Common/RJSF/config.ts +0 -1
  102. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +1 -1
  103. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +0 -1
  104. package/src/Common/RJSF/templates/BaseInput.tsx +0 -1
  105. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +0 -1
  106. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +0 -1
  107. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +1 -6
  108. package/src/Common/RJSF/templates/Description.tsx +0 -1
  109. package/src/Common/RJSF/templates/Field.tsx +14 -3
  110. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +6 -9
  111. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +5 -7
  112. package/src/Common/RJSF/templates/TitleField.tsx +0 -1
  113. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +0 -1
  114. package/src/Common/RJSF/utils.ts +53 -57
  115. package/src/Common/RJSF/widgets/Checkbox.tsx +2 -2
  116. package/src/Common/RJSF/widgets/Select.tsx +0 -1
  117. package/src/Common/RadioGroup/RadioGroup.tsx +18 -23
  118. package/src/Common/RadioGroup.tsx +24 -23
  119. package/src/Common/Reload.tsx +0 -1
  120. package/src/Common/ResizableTextarea.tsx +18 -17
  121. package/src/Common/Security/ScanVulnerabilitiesTable.tsx +29 -34
  122. package/src/Common/ServerError.ts +5 -1
  123. package/src/Common/TippyCustomized.tsx +41 -38
  124. package/src/Common/ToastBody.tsx +6 -7
  125. package/src/Common/Toggle/Toggle.tsx +3 -3
  126. package/src/Common/Types.ts +12 -70
  127. package/src/custom.d.ts +7 -7
  128. package/src/index.ts +1 -1
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);
@@ -48,7 +47,7 @@ var ROUTES = {
48
47
  PROJECT_LIST_MIN: 'team/autocomplete',
49
48
  USER_CHECK_ROLE: 'user/check/roles',
50
49
  IMAGE_TAGGING: 'app/image-tagging',
51
- CD_MATERIAL_GET: 'app/cd-pipeline'
50
+ CD_MATERIAL_GET: 'app/cd-pipeline',
52
51
  };
53
52
  exports.KEY_VALUE = void 0;
54
53
  (function (KEY_VALUE) {
@@ -252,9 +251,9 @@ var REGISTRY_TYPE_MAP = {
252
251
  },
253
252
  };
254
253
  var RepositoryAction = {
255
- CONTAINER: "CONTAINER",
256
- CHART_PULL: "CHART_PULL",
257
- CHART_PUSH: "CHART_PUSH"
254
+ CONTAINER: 'CONTAINER',
255
+ CHART_PULL: 'CHART_PULL',
256
+ CHART_PUSH: 'CHART_PUSH',
258
257
  };
259
258
 
260
259
  /******************************************************************************
@@ -271,7 +270,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
271
270
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
272
271
  PERFORMANCE OF THIS SOFTWARE.
273
272
  ***************************************************************************** */
274
- /* global Reflect, Promise */
273
+ /* global Reflect, Promise, SuppressedError, Symbol */
275
274
 
276
275
  var extendStatics = function(d, b) {
277
276
  extendStatics = Object.setPrototypeOf ||
@@ -280,7 +279,7 @@ var extendStatics = function(d, b) {
280
279
  return extendStatics(d, b);
281
280
  };
282
281
 
283
- function __extends$1(d, b) {
282
+ function __extends(d, b) {
284
283
  if (typeof b !== "function" && b !== null)
285
284
  throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
286
285
  extendStatics(d, b);
@@ -374,7 +373,12 @@ function __spreadArray(to, from, pack) {
374
373
  }
375
374
  }
376
375
  return to.concat(ar || Array.prototype.slice.call(from));
377
- }
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
+ };
378
382
 
379
383
  var ServerError = /** @class */ (function () {
380
384
  function ServerError(error) {
@@ -386,7 +390,7 @@ var ServerError = /** @class */ (function () {
386
390
  return ServerError;
387
391
  }());
388
392
  var ServerErrors = /** @class */ (function (_super) {
389
- __extends$1(ServerErrors, _super);
393
+ __extends(ServerErrors, _super);
390
394
  function ServerErrors(obj) {
391
395
  var _this = _super.call(this) || this;
392
396
  _this.code = obj.code;
@@ -576,7 +580,7 @@ function handleServerError(contentType, response) {
576
580
  status = response.statusText || responseMessages[code];
577
581
  serverError = new ServerErrors({ code: code, errors: [] });
578
582
  if (!(contentType !== 'application/json')) return [3 /*break*/, 1];
579
- //used for better debugging,
583
+ // used for better debugging,
580
584
  status = "".concat(responseMessages[code], ". Please try again.");
581
585
  return [3 /*break*/, 3];
582
586
  case 1: return [4 /*yield*/, response.json()];
@@ -604,8 +608,8 @@ function fetchAPI(url, type, data, signal, preventAutoLogout, isMultipartRequest
604
608
  method: type,
605
609
  signal: signal,
606
610
  body: data ? JSON.stringify(data) : undefined,
611
+ credentials: 'include',
607
612
  };
608
- options['credentials'] = 'include';
609
613
  return [2 /*return*/, fetch("".concat(Host, "/").concat(url), !isMultipartRequest
610
614
  ? options
611
615
  : {
@@ -638,17 +642,17 @@ function fetchAPI(url, type, data, signal, preventAutoLogout, isMultipartRequest
638
642
  if (contentType === 'application/json') {
639
643
  return [2 /*return*/, response.json().then(function (responseBody) {
640
644
  if (responseBody.code >= 300 && responseBody.code <= 599) {
641
- //Test Code in Response Body, despite successful HTTP Response Code
645
+ // Test Code in Response Body, despite successful HTTP Response Code
642
646
  throw new ServerErrors({ code: responseBody.code, errors: responseBody.errors });
643
647
  }
644
648
  else {
645
- //Successfull Response. Expected Response Type {code, result, status}
649
+ // Successfull Response. Expected Response Type {code, result, status}
646
650
  return responseBody;
647
651
  }
648
652
  })];
649
653
  }
650
- else if (contentType === 'octet-stream' || contentType === 'application/octet-stream') {
651
- //used in getArtifact() API only
654
+ if (contentType === 'octet-stream' || contentType === 'application/octet-stream') {
655
+ // used in getArtifact() API only
652
656
  return [2 /*return*/, response];
653
657
  }
654
658
  _a.label = 4;
@@ -656,7 +660,7 @@ function fetchAPI(url, type, data, signal, preventAutoLogout, isMultipartRequest
656
660
  }
657
661
  });
658
662
  }); }, function (error) {
659
- //Network call fails. Handle Failed to Fetch
663
+ // Network call fails. Handle Failed to Fetch
660
664
  var err = {
661
665
  code: 0,
662
666
  userMessage: error.message,
@@ -702,15 +706,11 @@ function fetchInTime(url, type, data, options, isMultipartRequest) {
702
706
  }
703
707
  });
704
708
  }
705
- var post = function (url, data, options, isMultipartRequest) {
706
- return fetchInTime(url, 'POST', data, options, isMultipartRequest);
707
- };
709
+ var post = function (url, data, options, isMultipartRequest) { return fetchInTime(url, 'POST', data, options, isMultipartRequest); };
708
710
  var put = function (url, data, options) {
709
711
  return fetchInTime(url, 'PUT', data, options);
710
712
  };
711
- var get = function (url, options) {
712
- return fetchInTime(url, 'GET', null, options);
713
- };
713
+ var get = function (url, options) { return fetchInTime(url, 'GET', null, options); };
714
714
  var trash = function (url, data, options) {
715
715
  return fetchInTime(url, 'DELETE', data, options);
716
716
  };
@@ -769,10 +769,10 @@ var SvgIcProgressing = function SvgIcProgressing(props) {
769
769
  }))));
770
770
  };
771
771
 
772
- function EmptyState(_a) {
772
+ var EmptyState = function (_a) {
773
773
  var children = _a.children, _b = _a.className, className = _b === void 0 ? '' : _b;
774
774
  return (jsxRuntime.jsx("div", __assign({ className: "flex column empty-state w-100 h-100 ".concat(className) }, { children: children })));
775
- }
775
+ };
776
776
  function Image(_a) {
777
777
  var children = _a.children;
778
778
  return children;
@@ -781,17 +781,15 @@ function Title(_a) {
781
781
  var children = _a.children;
782
782
  return children;
783
783
  }
784
- function Subtitle(_a) {
784
+ var Subtitle = function (_a) {
785
785
  var children = _a.children, className = _a.className;
786
- return jsxRuntime.jsx("p", __assign({ className: "subtitle ".concat(className || '') }, { children: children }));
787
- }
786
+ return (jsxRuntime.jsx("p", __assign({ className: "subtitle ".concat(className || '') }, { children: children })));
787
+ };
788
788
  function Button$1(_a) {
789
789
  var children = _a.children;
790
790
  return children;
791
791
  }
792
- var Loading = function (props) {
793
- 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 }))] });
794
- };
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 }))] })); };
795
793
  EmptyState.Image = Image;
796
794
  EmptyState.Title = Title;
797
795
  EmptyState.Subtitle = Subtitle;
@@ -2174,7 +2172,7 @@ eventManager.on(2
2174
2172
  });
2175
2173
 
2176
2174
  var ToastBody = /** @class */ (function (_super) {
2177
- __extends$1(ToastBody, _super);
2175
+ __extends(ToastBody, _super);
2178
2176
  function ToastBody() {
2179
2177
  return _super !== null && _super.apply(this, arguments) || this;
2180
2178
  }
@@ -2184,7 +2182,7 @@ var ToastBody = /** @class */ (function (_super) {
2184
2182
  return ToastBody;
2185
2183
  }(React.Component));
2186
2184
  var ToastBody3 = /** @class */ (function (_super) {
2187
- __extends$1(ToastBody3, _super);
2185
+ __extends(ToastBody3, _super);
2188
2186
  function ToastBody3() {
2189
2187
  return _super !== null && _super.apply(this, arguments) || this;
2190
2188
  }
@@ -2194,7 +2192,7 @@ var ToastBody3 = /** @class */ (function (_super) {
2194
2192
  return ToastBody3;
2195
2193
  }(React.Component));
2196
2194
  var ToastBodyWithButton = /** @class */ (function (_super) {
2197
- __extends$1(ToastBodyWithButton, _super);
2195
+ __extends(ToastBodyWithButton, _super);
2198
2196
  function ToastBodyWithButton() {
2199
2197
  return _super !== null && _super.apply(this, arguments) || this;
2200
2198
  }
@@ -2225,25 +2223,23 @@ var notFound = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAFACAYAAACSgS
2225
2223
 
2226
2224
  var AppNotDeployed = "data:image/png;base64,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";
2227
2225
 
2228
- function GenericEmptyState(_a) {
2226
+ var GenericEmptyState = function (_a) {
2229
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;
2230
2228
  var isRowLayout = layout === 'row';
2231
- 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] }))] })));
2232
- }
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
+ };
2233
2231
 
2234
- function ErrorScreenNotFound() {
2232
+ var ErrorScreenNotFound = function () {
2235
2233
  var push = reactRouterDom.useHistory().push;
2236
2234
  var redirectToHome = function () {
2237
2235
  push('/app/list');
2238
2236
  };
2239
- var renderGenerateButton = function () {
2240
- 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 })));
2241
- };
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 }))); };
2242
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 }));
2243
- }
2239
+ };
2244
2240
 
2245
2241
  var ErrorScreenManager = /** @class */ (function (_super) {
2246
- __extends$1(ErrorScreenManager, _super);
2242
+ __extends(ErrorScreenManager, _super);
2247
2243
  function ErrorScreenManager() {
2248
2244
  return _super !== null && _super.apply(this, arguments) || this;
2249
2245
  }
@@ -2254,7 +2250,7 @@ var ErrorScreenManager = /** @class */ (function (_super) {
2254
2250
  case 401:
2255
2251
  return 'Unauthorized';
2256
2252
  case 403:
2257
- return (jsxRuntime.jsx(ErrorScreenNotAuthorized, { subtitle: this.props.subtitle }));
2253
+ return jsxRuntime.jsx(ErrorScreenNotAuthorized, { subtitle: this.props.subtitle });
2258
2254
  case 404:
2259
2255
  return jsxRuntime.jsx(ErrorScreenNotFound, {});
2260
2256
  case 500:
@@ -2274,7 +2270,7 @@ var ErrorScreenManager = /** @class */ (function (_super) {
2274
2270
  return ErrorScreenManager;
2275
2271
  }(React.Component));
2276
2272
  var ErrorScreenNotAuthorized = /** @class */ (function (_super) {
2277
- __extends$1(ErrorScreenNotAuthorized, _super);
2273
+ __extends(ErrorScreenNotAuthorized, _super);
2278
2274
  function ErrorScreenNotAuthorized() {
2279
2275
  return _super !== null && _super.apply(this, arguments) || this;
2280
2276
  }
@@ -9747,1621 +9743,121 @@ var moment$1 = {
9747
9743
  (days ? daysSign + days + 'D' : '') +
9748
9744
  (hours || minutes || seconds ? 'T' : '') +
9749
9745
  (hours ? hmsSign + hours + 'H' : '') +
9750
- (minutes ? hmsSign + minutes + 'M' : '') +
9751
- (seconds ? hmsSign + s + 'S' : '')
9752
- );
9753
- }
9754
-
9755
- var proto$2 = Duration.prototype;
9756
-
9757
- proto$2.isValid = isValid$1;
9758
- proto$2.abs = abs;
9759
- proto$2.add = add$1;
9760
- proto$2.subtract = subtract$1;
9761
- proto$2.as = as;
9762
- proto$2.asMilliseconds = asMilliseconds;
9763
- proto$2.asSeconds = asSeconds;
9764
- proto$2.asMinutes = asMinutes;
9765
- proto$2.asHours = asHours;
9766
- proto$2.asDays = asDays;
9767
- proto$2.asWeeks = asWeeks;
9768
- proto$2.asMonths = asMonths;
9769
- proto$2.asQuarters = asQuarters;
9770
- proto$2.asYears = asYears;
9771
- proto$2.valueOf = valueOf$1;
9772
- proto$2._bubble = bubble;
9773
- proto$2.clone = clone$1;
9774
- proto$2.get = get$2;
9775
- proto$2.milliseconds = milliseconds;
9776
- proto$2.seconds = seconds;
9777
- proto$2.minutes = minutes;
9778
- proto$2.hours = hours;
9779
- proto$2.days = days;
9780
- proto$2.weeks = weeks;
9781
- proto$2.months = months;
9782
- proto$2.years = years;
9783
- proto$2.humanize = humanize;
9784
- proto$2.toISOString = toISOString$1;
9785
- proto$2.toString = toISOString$1;
9786
- proto$2.toJSON = toISOString$1;
9787
- proto$2.locale = locale;
9788
- proto$2.localeData = localeData;
9789
-
9790
- proto$2.toIsoString = deprecate(
9791
- 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
9792
- toISOString$1
9793
- );
9794
- proto$2.lang = lang;
9795
-
9796
- // FORMATTING
9797
-
9798
- addFormatToken('X', 0, 0, 'unix');
9799
- addFormatToken('x', 0, 0, 'valueOf');
9800
-
9801
- // PARSING
9802
-
9803
- addRegexToken('x', matchSigned);
9804
- addRegexToken('X', matchTimestamp);
9805
- addParseToken('X', function (input, array, config) {
9806
- config._d = new Date(parseFloat(input) * 1000);
9807
- });
9808
- addParseToken('x', function (input, array, config) {
9809
- config._d = new Date(toInt(input));
9810
- });
9811
-
9812
- //! moment.js
9813
-
9814
- hooks.version = '2.29.4';
9815
-
9816
- setHookCallback(createLocal);
9817
-
9818
- hooks.fn = proto;
9819
- hooks.min = min;
9820
- hooks.max = max;
9821
- hooks.now = now;
9822
- hooks.utc = createUTC;
9823
- hooks.unix = createUnix;
9824
- hooks.months = listMonths;
9825
- hooks.isDate = isDate;
9826
- hooks.locale = getSetGlobalLocale;
9827
- hooks.invalid = createInvalid;
9828
- hooks.duration = createDuration;
9829
- hooks.isMoment = isMoment;
9830
- hooks.weekdays = listWeekdays;
9831
- hooks.parseZone = createInZone;
9832
- hooks.localeData = getLocale;
9833
- hooks.isDuration = isDuration;
9834
- hooks.monthsShort = listMonthsShort;
9835
- hooks.weekdaysMin = listWeekdaysMin;
9836
- hooks.defineLocale = defineLocale;
9837
- hooks.updateLocale = updateLocale;
9838
- hooks.locales = listLocales;
9839
- hooks.weekdaysShort = listWeekdaysShort;
9840
- hooks.normalizeUnits = normalizeUnits;
9841
- hooks.relativeTimeRounding = getSetRelativeTimeRounding;
9842
- hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
9843
- hooks.calendarFormat = getCalendarFormat;
9844
- hooks.prototype = proto;
9845
-
9846
- // currently HTML5 input type only supports 24-hour formats
9847
- hooks.HTML5_FMT = {
9848
- DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
9849
- DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
9850
- DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
9851
- DATE: 'YYYY-MM-DD', // <input type="date" />
9852
- TIME: 'HH:mm', // <input type="time" />
9853
- TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
9854
- TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
9855
- WEEK: 'GGGG-[W]WW', // <input type="week" />
9856
- MONTH: 'YYYY-MM', // <input type="month" />
9857
- };
9858
-
9859
- return hooks;
9860
-
9861
- })));
9862
- } (moment$1));
9863
-
9864
- var moment = momentExports;
9865
-
9866
- const {
9867
- hasOwnProperty: hasOwnProp
9868
- } = Object.prototype;
9869
- /**
9870
- * @typedef {null|boolean|number|string|PlainObject|GenericArray} JSONObject
9871
- */
9872
-
9873
- /**
9874
- * @typedef {any} AnyItem
9875
- */
9876
-
9877
- /**
9878
- * @typedef {any} AnyResult
9879
- */
9880
-
9881
- /**
9882
- * Copies array and then pushes item into it.
9883
- * @param {GenericArray} arr Array to copy and into which to push
9884
- * @param {AnyItem} item Array item to add (to end)
9885
- * @returns {GenericArray} Copy of the original array
9886
- */
9887
-
9888
- function push(arr, item) {
9889
- arr = arr.slice();
9890
- arr.push(item);
9891
- return arr;
9892
- }
9893
- /**
9894
- * Copies array and then unshifts item into it.
9895
- * @param {AnyItem} item Array item to add (to beginning)
9896
- * @param {GenericArray} arr Array to copy and into which to unshift
9897
- * @returns {GenericArray} Copy of the original array
9898
- */
9899
-
9900
-
9901
- function unshift(item, arr) {
9902
- arr = arr.slice();
9903
- arr.unshift(item);
9904
- return arr;
9905
- }
9906
- /**
9907
- * Caught when JSONPath is used without `new` but rethrown if with `new`
9908
- * @extends Error
9909
- */
9910
-
9911
-
9912
- class NewError extends Error {
9913
- /**
9914
- * @param {AnyResult} value The evaluated scalar value
9915
- */
9916
- constructor(value) {
9917
- super('JSONPath should not be called with "new" (it prevents return ' + 'of (unwrapped) scalar values)');
9918
- this.avoidNew = true;
9919
- this.value = value;
9920
- this.name = 'NewError';
9921
- }
9922
-
9923
- }
9924
- /**
9925
- * @typedef {PlainObject} ReturnObject
9926
- * @property {string} path
9927
- * @property {JSONObject} value
9928
- * @property {PlainObject|GenericArray} parent
9929
- * @property {string} parentProperty
9930
- */
9931
-
9932
- /**
9933
- * @callback JSONPathCallback
9934
- * @param {string|PlainObject} preferredOutput
9935
- * @param {"value"|"property"} type
9936
- * @param {ReturnObject} fullRetObj
9937
- * @returns {void}
9938
- */
9939
-
9940
- /**
9941
- * @callback OtherTypeCallback
9942
- * @param {JSONObject} val
9943
- * @param {string} path
9944
- * @param {PlainObject|GenericArray} parent
9945
- * @param {string} parentPropName
9946
- * @returns {boolean}
9947
- */
9948
-
9949
- /* eslint-disable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */
9950
-
9951
- /**
9952
- * @typedef {PlainObject} JSONPathOptions
9953
- * @property {JSON} json
9954
- * @property {string|string[]} path
9955
- * @property {"value"|"path"|"pointer"|"parent"|"parentProperty"|"all"} [resultType="value"]
9956
- * @property {boolean} [flatten=false]
9957
- * @property {boolean} [wrap=true]
9958
- * @property {PlainObject} [sandbox={}]
9959
- * @property {boolean} [preventEval=false]
9960
- * @property {PlainObject|GenericArray|null} [parent=null]
9961
- * @property {string|null} [parentProperty=null]
9962
- * @property {JSONPathCallback} [callback]
9963
- * @property {OtherTypeCallback} [otherTypeCallback] Defaults to
9964
- * function which throws on encountering `@other`
9965
- * @property {boolean} [autostart=true]
9966
- */
9967
-
9968
- /* eslint-enable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */
9969
-
9970
- /**
9971
- * @param {string|JSONPathOptions} opts If a string, will be treated as `expr`
9972
- * @param {string} [expr] JSON path to evaluate
9973
- * @param {JSON} [obj] JSON object to evaluate against
9974
- * @param {JSONPathCallback} [callback] Passed 3 arguments: 1) desired payload
9975
- * per `resultType`, 2) `"value"|"property"`, 3) Full returned object with
9976
- * all payloads
9977
- * @param {OtherTypeCallback} [otherTypeCallback] If `@other()` is at the end
9978
- * of one's query, this will be invoked with the value of the item, its
9979
- * path, its parent, and its parent's property name, and it should return
9980
- * a boolean indicating whether the supplied value belongs to the "other"
9981
- * type or not (or it may handle transformations and return `false`).
9982
- * @returns {JSONPath}
9983
- * @class
9984
- */
9985
-
9986
-
9987
- function JSONPath(opts, expr, obj, callback, otherTypeCallback) {
9988
- // eslint-disable-next-line no-restricted-syntax
9989
- if (!(this instanceof JSONPath)) {
9990
- try {
9991
- return new JSONPath(opts, expr, obj, callback, otherTypeCallback);
9992
- } catch (e) {
9993
- if (!e.avoidNew) {
9994
- throw e;
9995
- }
9996
-
9997
- return e.value;
9998
- }
9999
- }
10000
-
10001
- if (typeof opts === 'string') {
10002
- otherTypeCallback = callback;
10003
- callback = obj;
10004
- obj = expr;
10005
- expr = opts;
10006
- opts = null;
10007
- }
10008
-
10009
- const optObj = opts && typeof opts === 'object';
10010
- opts = opts || {};
10011
- this.json = opts.json || obj;
10012
- this.path = opts.path || expr;
10013
- this.resultType = opts.resultType || 'value';
10014
- this.flatten = opts.flatten || false;
10015
- this.wrap = hasOwnProp.call(opts, 'wrap') ? opts.wrap : true;
10016
- this.sandbox = opts.sandbox || {};
10017
- this.preventEval = opts.preventEval || false;
10018
- this.parent = opts.parent || null;
10019
- this.parentProperty = opts.parentProperty || null;
10020
- this.callback = opts.callback || callback || null;
10021
-
10022
- this.otherTypeCallback = opts.otherTypeCallback || otherTypeCallback || function () {
10023
- throw new TypeError('You must supply an otherTypeCallback callback option ' + 'with the @other() operator.');
10024
- };
10025
-
10026
- if (opts.autostart !== false) {
10027
- const args = {
10028
- path: optObj ? opts.path : expr
10029
- };
10030
-
10031
- if (!optObj) {
10032
- args.json = obj;
10033
- } else if ('json' in opts) {
10034
- args.json = opts.json;
10035
- }
10036
-
10037
- const ret = this.evaluate(args);
10038
-
10039
- if (!ret || typeof ret !== 'object') {
10040
- throw new NewError(ret);
10041
- }
10042
-
10043
- return ret;
10044
- }
10045
- } // PUBLIC METHODS
10046
-
10047
-
10048
- JSONPath.prototype.evaluate = function (expr, json, callback, otherTypeCallback) {
10049
- let currParent = this.parent,
10050
- currParentProperty = this.parentProperty;
10051
- let {
10052
- flatten,
10053
- wrap
10054
- } = this;
10055
- this.currResultType = this.resultType;
10056
- this.currPreventEval = this.preventEval;
10057
- this.currSandbox = this.sandbox;
10058
- callback = callback || this.callback;
10059
- this.currOtherTypeCallback = otherTypeCallback || this.otherTypeCallback;
10060
- json = json || this.json;
10061
- expr = expr || this.path;
10062
-
10063
- if (expr && typeof expr === 'object' && !Array.isArray(expr)) {
10064
- if (!expr.path && expr.path !== '') {
10065
- throw new TypeError('You must supply a "path" property when providing an object ' + 'argument to JSONPath.evaluate().');
10066
- }
10067
-
10068
- if (!hasOwnProp.call(expr, 'json')) {
10069
- throw new TypeError('You must supply a "json" property when providing an object ' + 'argument to JSONPath.evaluate().');
10070
- }
10071
-
10072
- ({
10073
- json
10074
- } = expr);
10075
- flatten = hasOwnProp.call(expr, 'flatten') ? expr.flatten : flatten;
10076
- this.currResultType = hasOwnProp.call(expr, 'resultType') ? expr.resultType : this.currResultType;
10077
- this.currSandbox = hasOwnProp.call(expr, 'sandbox') ? expr.sandbox : this.currSandbox;
10078
- wrap = hasOwnProp.call(expr, 'wrap') ? expr.wrap : wrap;
10079
- this.currPreventEval = hasOwnProp.call(expr, 'preventEval') ? expr.preventEval : this.currPreventEval;
10080
- callback = hasOwnProp.call(expr, 'callback') ? expr.callback : callback;
10081
- this.currOtherTypeCallback = hasOwnProp.call(expr, 'otherTypeCallback') ? expr.otherTypeCallback : this.currOtherTypeCallback;
10082
- currParent = hasOwnProp.call(expr, 'parent') ? expr.parent : currParent;
10083
- currParentProperty = hasOwnProp.call(expr, 'parentProperty') ? expr.parentProperty : currParentProperty;
10084
- expr = expr.path;
10085
- }
10086
-
10087
- currParent = currParent || null;
10088
- currParentProperty = currParentProperty || null;
10089
-
10090
- if (Array.isArray(expr)) {
10091
- expr = JSONPath.toPathString(expr);
10092
- }
10093
-
10094
- if (!expr && expr !== '' || !json) {
10095
- return undefined;
10096
- }
10097
-
10098
- const exprList = JSONPath.toPathArray(expr);
10099
-
10100
- if (exprList[0] === '$' && exprList.length > 1) {
10101
- exprList.shift();
10102
- }
10103
-
10104
- this._hasParentSelector = null;
10105
-
10106
- const result = this._trace(exprList, json, ['$'], currParent, currParentProperty, callback).filter(function (ea) {
10107
- return ea && !ea.isParentSelector;
10108
- });
10109
-
10110
- if (!result.length) {
10111
- return wrap ? [] : undefined;
10112
- }
10113
-
10114
- if (!wrap && result.length === 1 && !result[0].hasArrExpr) {
10115
- return this._getPreferredOutput(result[0]);
10116
- }
10117
-
10118
- return result.reduce((rslt, ea) => {
10119
- const valOrPath = this._getPreferredOutput(ea);
10120
-
10121
- if (flatten && Array.isArray(valOrPath)) {
10122
- rslt = rslt.concat(valOrPath);
10123
- } else {
10124
- rslt.push(valOrPath);
10125
- }
10126
-
10127
- return rslt;
10128
- }, []);
10129
- }; // PRIVATE METHODS
10130
-
10131
-
10132
- JSONPath.prototype._getPreferredOutput = function (ea) {
10133
- const resultType = this.currResultType;
10134
-
10135
- switch (resultType) {
10136
- case 'all':
10137
- {
10138
- const path = Array.isArray(ea.path) ? ea.path : JSONPath.toPathArray(ea.path);
10139
- ea.pointer = JSONPath.toPointer(path);
10140
- ea.path = typeof ea.path === 'string' ? ea.path : JSONPath.toPathString(ea.path);
10141
- return ea;
10142
- }
10143
-
10144
- case 'value':
10145
- case 'parent':
10146
- case 'parentProperty':
10147
- return ea[resultType];
10148
-
10149
- case 'path':
10150
- return JSONPath.toPathString(ea[resultType]);
10151
-
10152
- case 'pointer':
10153
- return JSONPath.toPointer(ea.path);
10154
-
10155
- default:
10156
- throw new TypeError('Unknown result type');
10157
- }
10158
- };
10159
-
10160
- JSONPath.prototype._handleCallback = function (fullRetObj, callback, type) {
10161
- if (callback) {
10162
- const preferredOutput = this._getPreferredOutput(fullRetObj);
10163
-
10164
- fullRetObj.path = typeof fullRetObj.path === 'string' ? fullRetObj.path : JSONPath.toPathString(fullRetObj.path); // eslint-disable-next-line n/callback-return
10165
-
10166
- callback(preferredOutput, type, fullRetObj);
10167
- }
10168
- };
10169
- /**
10170
- *
10171
- * @param {string} expr
10172
- * @param {JSONObject} val
10173
- * @param {string} path
10174
- * @param {PlainObject|GenericArray} parent
10175
- * @param {string} parentPropName
10176
- * @param {JSONPathCallback} callback
10177
- * @param {boolean} hasArrExpr
10178
- * @param {boolean} literalPriority
10179
- * @returns {ReturnObject|ReturnObject[]}
10180
- */
10181
-
10182
-
10183
- JSONPath.prototype._trace = function (expr, val, path, parent, parentPropName, callback, hasArrExpr, literalPriority) {
10184
- // No expr to follow? return path and value as the result of
10185
- // this trace branch
10186
- let retObj;
10187
-
10188
- if (!expr.length) {
10189
- retObj = {
10190
- path,
10191
- value: val,
10192
- parent,
10193
- parentProperty: parentPropName,
10194
- hasArrExpr
10195
- };
10196
-
10197
- this._handleCallback(retObj, callback, 'value');
10198
-
10199
- return retObj;
10200
- }
10201
-
10202
- const loc = expr[0],
10203
- x = expr.slice(1); // We need to gather the return value of recursive trace calls in order to
10204
- // do the parent sel computation.
10205
-
10206
- const ret = [];
10207
- /**
10208
- *
10209
- * @param {ReturnObject|ReturnObject[]} elems
10210
- * @returns {void}
10211
- */
10212
-
10213
- function addRet(elems) {
10214
- if (Array.isArray(elems)) {
10215
- // This was causing excessive stack size in Node (with or
10216
- // without Babel) against our performance test:
10217
- // `ret.push(...elems);`
10218
- elems.forEach(t => {
10219
- ret.push(t);
10220
- });
10221
- } else {
10222
- ret.push(elems);
10223
- }
10224
- }
10225
-
10226
- if ((typeof loc !== 'string' || literalPriority) && val && hasOwnProp.call(val, loc)) {
10227
- // simple case--directly follow property
10228
- addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr)); // eslint-disable-next-line unicorn/prefer-switch -- Part of larger `if`
10229
- } else if (loc === '*') {
10230
- // all child properties
10231
- this._walk(val, m => {
10232
- addRet(this._trace(x, val[m], push(path, m), val, m, callback, true, true));
10233
- });
10234
- } else if (loc === '..') {
10235
- // all descendent parent properties
10236
- // Check remaining expression with val's immediate children
10237
- addRet(this._trace(x, val, path, parent, parentPropName, callback, hasArrExpr));
10238
-
10239
- this._walk(val, m => {
10240
- // We don't join m and x here because we only want parents,
10241
- // not scalar values
10242
- if (typeof val[m] === 'object') {
10243
- // Keep going with recursive descent on val's
10244
- // object children
10245
- addRet(this._trace(expr.slice(), val[m], push(path, m), val, m, callback, true));
10246
- }
10247
- }); // The parent sel computation is handled in the frame above using the
10248
- // ancestor object of val
10249
-
10250
- } else if (loc === '^') {
10251
- // This is not a final endpoint, so we do not invoke the callback here
10252
- this._hasParentSelector = true;
10253
- return {
10254
- path: path.slice(0, -1),
10255
- expr: x,
10256
- isParentSelector: true
10257
- };
10258
- } else if (loc === '~') {
10259
- // property name
10260
- retObj = {
10261
- path: push(path, loc),
10262
- value: parentPropName,
10263
- parent,
10264
- parentProperty: null
10265
- };
10266
-
10267
- this._handleCallback(retObj, callback, 'property');
10268
-
10269
- return retObj;
10270
- } else if (loc === '$') {
10271
- // root only
10272
- addRet(this._trace(x, val, path, null, null, callback, hasArrExpr));
10273
- } else if (/^(-?\d*):(-?\d*):?(\d*)$/u.test(loc)) {
10274
- // [start:end:step] Python slice syntax
10275
- addRet(this._slice(loc, x, val, path, parent, parentPropName, callback));
10276
- } else if (loc.indexOf('?(') === 0) {
10277
- // [?(expr)] (filtering)
10278
- if (this.currPreventEval) {
10279
- throw new Error('Eval [?(expr)] prevented in JSONPath expression.');
10280
- }
10281
-
10282
- const safeLoc = loc.replace(/^\?\((.*?)\)$/u, '$1');
10283
-
10284
- this._walk(val, m => {
10285
- if (this._eval(safeLoc, val[m], m, path, parent, parentPropName)) {
10286
- addRet(this._trace(x, val[m], push(path, m), val, m, callback, true));
10287
- }
10288
- });
10289
- } else if (loc[0] === '(') {
10290
- // [(expr)] (dynamic property/index)
10291
- if (this.currPreventEval) {
10292
- throw new Error('Eval [(expr)] prevented in JSONPath expression.');
10293
- } // As this will resolve to a property name (but we don't know it
10294
- // yet), property and parent information is relative to the
10295
- // parent of the property to which this expression will resolve
10296
-
10297
-
10298
- 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));
10299
- } else if (loc[0] === '@') {
10300
- // value type: @boolean(), etc.
10301
- let addType = false;
10302
- const valueType = loc.slice(1, -2);
10303
-
10304
- switch (valueType) {
10305
- case 'scalar':
10306
- if (!val || !['object', 'function'].includes(typeof val)) {
10307
- addType = true;
10308
- }
10309
-
10310
- break;
10311
-
10312
- case 'boolean':
10313
- case 'string':
10314
- case 'undefined':
10315
- case 'function':
10316
- // eslint-disable-next-line valid-typeof
10317
- if (typeof val === valueType) {
10318
- addType = true;
10319
- }
10320
-
10321
- break;
10322
-
10323
- case 'integer':
10324
- if (Number.isFinite(val) && !(val % 1)) {
10325
- addType = true;
10326
- }
10327
-
10328
- break;
10329
-
10330
- case 'number':
10331
- if (Number.isFinite(val)) {
10332
- addType = true;
10333
- }
10334
-
10335
- break;
10336
-
10337
- case 'nonFinite':
10338
- if (typeof val === 'number' && !Number.isFinite(val)) {
10339
- addType = true;
10340
- }
10341
-
10342
- break;
10343
-
10344
- case 'object':
10345
- // eslint-disable-next-line valid-typeof
10346
- if (val && typeof val === valueType) {
10347
- addType = true;
10348
- }
10349
-
10350
- break;
10351
-
10352
- case 'array':
10353
- if (Array.isArray(val)) {
10354
- addType = true;
10355
- }
10356
-
10357
- break;
10358
-
10359
- case 'other':
10360
- addType = this.currOtherTypeCallback(val, path, parent, parentPropName);
10361
- break;
10362
-
10363
- case 'null':
10364
- if (val === null) {
10365
- addType = true;
10366
- }
10367
-
10368
- break;
10369
-
10370
- /* c8 ignore next 2 */
10371
-
10372
- default:
10373
- throw new TypeError('Unknown value type ' + valueType);
10374
- }
10375
-
10376
- if (addType) {
10377
- retObj = {
10378
- path,
10379
- value: val,
10380
- parent,
10381
- parentProperty: parentPropName
10382
- };
10383
-
10384
- this._handleCallback(retObj, callback, 'value');
10385
-
10386
- return retObj;
10387
- } // `-escaped property
10388
-
10389
- } else if (loc[0] === '`' && val && hasOwnProp.call(val, loc.slice(1))) {
10390
- const locProp = loc.slice(1);
10391
- addRet(this._trace(x, val[locProp], push(path, locProp), val, locProp, callback, hasArrExpr, true));
10392
- } else if (loc.includes(',')) {
10393
- // [name1,name2,...]
10394
- const parts = loc.split(',');
10395
-
10396
- for (const part of parts) {
10397
- addRet(this._trace(unshift(part, x), val, path, parent, parentPropName, callback, true));
10398
- } // simple case--directly follow property
10399
-
10400
- } else if (!literalPriority && val && hasOwnProp.call(val, loc)) {
10401
- addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr, true));
10402
- } // We check the resulting values for parent selections. For parent
10403
- // selections we discard the value object and continue the trace with the
10404
- // current val object
10405
-
10406
-
10407
- if (this._hasParentSelector) {
10408
- for (let t = 0; t < ret.length; t++) {
10409
- const rett = ret[t];
10410
-
10411
- if (rett && rett.isParentSelector) {
10412
- const tmp = this._trace(rett.expr, val, rett.path, parent, parentPropName, callback, hasArrExpr);
10413
-
10414
- if (Array.isArray(tmp)) {
10415
- ret[t] = tmp[0];
10416
- const tl = tmp.length;
10417
-
10418
- for (let tt = 1; tt < tl; tt++) {
10419
- t++;
10420
- ret.splice(t, 0, tmp[tt]);
10421
- }
10422
- } else {
10423
- ret[t] = tmp;
10424
- }
10425
- }
10426
- }
10427
- }
10428
-
10429
- return ret;
10430
- };
10431
-
10432
- JSONPath.prototype._walk = function (val, f) {
10433
- if (Array.isArray(val)) {
10434
- const n = val.length;
10435
-
10436
- for (let i = 0; i < n; i++) {
10437
- f(i);
10438
- }
10439
- } else if (val && typeof val === 'object') {
10440
- Object.keys(val).forEach(m => {
10441
- f(m);
10442
- });
10443
- }
10444
- };
10445
-
10446
- JSONPath.prototype._slice = function (loc, expr, val, path, parent, parentPropName, callback) {
10447
- if (!Array.isArray(val)) {
10448
- return undefined;
10449
- }
10450
-
10451
- const len = val.length,
10452
- parts = loc.split(':'),
10453
- step = parts[2] && Number.parseInt(parts[2]) || 1;
10454
- let start = parts[0] && Number.parseInt(parts[0]) || 0,
10455
- end = parts[1] && Number.parseInt(parts[1]) || len;
10456
- start = start < 0 ? Math.max(0, start + len) : Math.min(len, start);
10457
- end = end < 0 ? Math.max(0, end + len) : Math.min(len, end);
10458
- const ret = [];
10459
-
10460
- for (let i = start; i < end; i += step) {
10461
- 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
10462
- // ``unshift(i, expr)` passed in above would not be empty, nor `~`,
10463
- // nor begin with `@` (as could return objects)
10464
- // This was causing excessive stack size in Node (with or
10465
- // without Babel) against our performance test: `ret.push(...tmp);`
10466
-
10467
-
10468
- tmp.forEach(t => {
10469
- ret.push(t);
10470
- });
10471
- }
10472
-
10473
- return ret;
10474
- };
10475
-
10476
- JSONPath.prototype._eval = function (code, _v, _vname, path, parent, parentPropName) {
10477
- this.currSandbox._$_parentProperty = parentPropName;
10478
- this.currSandbox._$_parent = parent;
10479
- this.currSandbox._$_property = _vname;
10480
- this.currSandbox._$_root = this.json;
10481
- this.currSandbox._$_v = _v;
10482
- const containsPath = code.includes('@path');
10483
-
10484
- if (containsPath) {
10485
- this.currSandbox._$_path = JSONPath.toPathString(path.concat([_vname]));
10486
- }
10487
-
10488
- const scriptCacheKey = 'script:' + code;
10489
-
10490
- if (!JSONPath.cache[scriptCacheKey]) {
10491
- let script = code.replace(/@parentProperty/gu, '_$_parentProperty').replace(/@parent/gu, '_$_parent').replace(/@property/gu, '_$_property').replace(/@root/gu, '_$_root').replace(/@([.\s)[])/gu, '_$_v$1');
10492
-
10493
- if (containsPath) {
10494
- script = script.replace(/@path/gu, '_$_path');
10495
- }
10496
-
10497
- JSONPath.cache[scriptCacheKey] = new this.vm.Script(script);
10498
- }
10499
-
10500
- try {
10501
- return JSONPath.cache[scriptCacheKey].runInNewContext(this.currSandbox);
10502
- } catch (e) {
10503
- throw new Error('jsonPath: ' + e.message + ': ' + code);
10504
- }
10505
- }; // PUBLIC CLASS PROPERTIES AND METHODS
10506
- // Could store the cache object itself
10507
-
10508
-
10509
- JSONPath.cache = {};
10510
- /**
10511
- * @param {string[]} pathArr Array to convert
10512
- * @returns {string} The path string
10513
- */
10514
-
10515
- JSONPath.toPathString = function (pathArr) {
10516
- const x = pathArr,
10517
- n = x.length;
10518
- let p = '$';
10519
-
10520
- for (let i = 1; i < n; i++) {
10521
- if (!/^(~|\^|@.*?\(\))$/u.test(x[i])) {
10522
- p += /^[0-9*]+$/u.test(x[i]) ? '[' + x[i] + ']' : "['" + x[i] + "']";
10523
- }
10524
- }
10525
-
10526
- return p;
10527
- };
10528
- /**
10529
- * @param {string} pointer JSON Path
10530
- * @returns {string} JSON Pointer
10531
- */
10532
-
10533
-
10534
- JSONPath.toPointer = function (pointer) {
10535
- const x = pointer,
10536
- n = x.length;
10537
- let p = '';
10538
-
10539
- for (let i = 1; i < n; i++) {
10540
- if (!/^(~|\^|@.*?\(\))$/u.test(x[i])) {
10541
- p += '/' + x[i].toString().replace(/~/gu, '~0').replace(/\//gu, '~1');
10542
- }
10543
- }
10544
-
10545
- return p;
10546
- };
10547
- /**
10548
- * @param {string} expr Expression to convert
10549
- * @returns {string[]}
10550
- */
10551
-
10552
-
10553
- JSONPath.toPathArray = function (expr) {
10554
- const {
10555
- cache
10556
- } = JSONPath;
10557
-
10558
- if (cache[expr]) {
10559
- return cache[expr].concat();
10560
- }
10561
-
10562
- const subx = [];
10563
- const normalized = expr // Properties
10564
- .replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\(\)/gu, ';$&;') // Parenthetical evaluations (filtering and otherwise), directly
10565
- // within brackets or single quotes
10566
- .replace(/[['](\??\(.*?\))[\]']/gu, function ($0, $1) {
10567
- return '[#' + (subx.push($1) - 1) + ']';
10568
- }) // Escape periods and tildes within properties
10569
- .replace(/\[['"]([^'\]]*)['"]\]/gu, function ($0, prop) {
10570
- return "['" + prop.replace(/\./gu, '%@%').replace(/~/gu, '%%@@%%') + "']";
10571
- }) // Properties operator
10572
- .replace(/~/gu, ';~;') // Split by property boundaries
10573
- .replace(/['"]?\.['"]?(?![^[]*\])|\[['"]?/gu, ';') // Reinsert periods within properties
10574
- .replace(/%@%/gu, '.') // Reinsert tildes within properties
10575
- .replace(/%%@@%%/gu, '~') // Parent
10576
- .replace(/(?:;)?(\^+)(?:;)?/gu, function ($0, ups) {
10577
- return ';' + ups.split('').join(';') + ';';
10578
- }) // Descendents
10579
- .replace(/;;;|;;/gu, ';..;') // Remove trailing
10580
- .replace(/;$|'?\]|'$/gu, '');
10581
- const exprList = normalized.split(';').map(function (exp) {
10582
- const match = exp.match(/#(\d+)/u);
10583
- return !match || !match[1] ? exp : subx[match[1]];
10584
- });
10585
- cache[expr] = exprList;
10586
- return cache[expr].concat();
10587
- };
10588
-
10589
- JSONPath.prototype.vm = vm;
10590
-
10591
- /*!
10592
- * https://github.com/Starcounter-Jack/JSON-Patch
10593
- * (c) 2017-2022 Joachim Wester
10594
- * MIT licensed
10595
- */
10596
- var __extends = (undefined && undefined.__extends) || (function () {
10597
- var extendStatics = function (d, b) {
10598
- extendStatics = Object.setPrototypeOf ||
10599
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
10600
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
10601
- return extendStatics(d, b);
10602
- };
10603
- return function (d, b) {
10604
- extendStatics(d, b);
10605
- function __() { this.constructor = d; }
10606
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
10607
- };
10608
- })();
10609
- var _hasOwnProperty = Object.prototype.hasOwnProperty;
10610
- function hasOwnProperty$b(obj, key) {
10611
- return _hasOwnProperty.call(obj, key);
10612
- }
10613
- function _objectKeys(obj) {
10614
- if (Array.isArray(obj)) {
10615
- var keys_1 = new Array(obj.length);
10616
- for (var k = 0; k < keys_1.length; k++) {
10617
- keys_1[k] = "" + k;
10618
- }
10619
- return keys_1;
10620
- }
10621
- if (Object.keys) {
10622
- return Object.keys(obj);
10623
- }
10624
- var keys = [];
10625
- for (var i in obj) {
10626
- if (hasOwnProperty$b(obj, i)) {
10627
- keys.push(i);
10628
- }
10629
- }
10630
- return keys;
10631
- }
10632
- /**
10633
- * Deeply clone the object.
10634
- * https://jsperf.com/deep-copy-vs-json-stringify-json-parse/25 (recursiveDeepCopy)
10635
- * @param {any} obj value to clone
10636
- * @return {any} cloned obj
10637
- */
10638
- function _deepClone(obj) {
10639
- switch (typeof obj) {
10640
- case "object":
10641
- return JSON.parse(JSON.stringify(obj)); //Faster than ES5 clone - http://jsperf.com/deep-cloning-of-objects/5
10642
- case "undefined":
10643
- return null; //this is how JSON.stringify behaves for array items
10644
- default:
10645
- return obj; //no need to clone primitives
10646
- }
10647
- }
10648
- //3x faster than cached /^\d+$/.test(str)
10649
- function isInteger(str) {
10650
- var i = 0;
10651
- var len = str.length;
10652
- var charCode;
10653
- while (i < len) {
10654
- charCode = str.charCodeAt(i);
10655
- if (charCode >= 48 && charCode <= 57) {
10656
- i++;
10657
- continue;
10658
- }
10659
- return false;
10660
- }
10661
- return true;
10662
- }
10663
- /**
10664
- * Escapes a json pointer path
10665
- * @param path The raw pointer
10666
- * @return the Escaped path
10667
- */
10668
- function escapePathComponent(path) {
10669
- if (path.indexOf('/') === -1 && path.indexOf('~') === -1)
10670
- return path;
10671
- return path.replace(/~/g, '~0').replace(/\//g, '~1');
10672
- }
10673
- /**
10674
- * Unescapes a json pointer path
10675
- * @param path The escaped pointer
10676
- * @return The unescaped path
10677
- */
10678
- function unescapePathComponent(path) {
10679
- return path.replace(/~1/g, '/').replace(/~0/g, '~');
10680
- }
10681
- /**
10682
- * Recursively checks whether an object has any undefined values inside.
10683
- */
10684
- function hasUndefined(obj) {
10685
- if (obj === undefined) {
10686
- return true;
10687
- }
10688
- if (obj) {
10689
- if (Array.isArray(obj)) {
10690
- for (var i_1 = 0, len = obj.length; i_1 < len; i_1++) {
10691
- if (hasUndefined(obj[i_1])) {
10692
- return true;
10693
- }
10694
- }
10695
- }
10696
- else if (typeof obj === "object") {
10697
- var objKeys = _objectKeys(obj);
10698
- var objKeysLength = objKeys.length;
10699
- for (var i = 0; i < objKeysLength; i++) {
10700
- if (hasUndefined(obj[objKeys[i]])) {
10701
- return true;
10702
- }
10703
- }
10704
- }
10705
- }
10706
- return false;
10707
- }
10708
- function patchErrorMessageFormatter(message, args) {
10709
- var messageParts = [message];
10710
- for (var key in args) {
10711
- var value = typeof args[key] === 'object' ? JSON.stringify(args[key], null, 2) : args[key]; // pretty print
10712
- if (typeof value !== 'undefined') {
10713
- messageParts.push(key + ": " + value);
10714
- }
10715
- }
10716
- return messageParts.join('\n');
10717
- }
10718
- var PatchError = /** @class */ (function (_super) {
10719
- __extends(PatchError, _super);
10720
- function PatchError(message, name, index, operation, tree) {
10721
- var _newTarget = this.constructor;
10722
- var _this = _super.call(this, patchErrorMessageFormatter(message, { name: name, index: index, operation: operation, tree: tree })) || this;
10723
- _this.name = name;
10724
- _this.index = index;
10725
- _this.operation = operation;
10726
- _this.tree = tree;
10727
- Object.setPrototypeOf(_this, _newTarget.prototype); // restore prototype chain, see https://stackoverflow.com/a/48342359
10728
- _this.message = patchErrorMessageFormatter(message, { name: name, index: index, operation: operation, tree: tree });
10729
- return _this;
10730
- }
10731
- return PatchError;
10732
- }(Error));
10733
-
10734
- var JsonPatchError = PatchError;
10735
- var deepClone = _deepClone;
10736
- /* We use a Javascript hash to store each
10737
- function. Each hash entry (property) uses
10738
- the operation identifiers specified in rfc6902.
10739
- In this way, we can map each patch operation
10740
- to its dedicated function in efficient way.
10741
- */
10742
- /* The operations applicable to an object */
10743
- var objOps = {
10744
- add: function (obj, key, document) {
10745
- obj[key] = this.value;
10746
- return { newDocument: document };
10747
- },
10748
- remove: function (obj, key, document) {
10749
- var removed = obj[key];
10750
- delete obj[key];
10751
- return { newDocument: document, removed: removed };
10752
- },
10753
- replace: function (obj, key, document) {
10754
- var removed = obj[key];
10755
- obj[key] = this.value;
10756
- return { newDocument: document, removed: removed };
10757
- },
10758
- move: function (obj, key, document) {
10759
- /* in case move target overwrites an existing value,
10760
- return the removed value, this can be taxing performance-wise,
10761
- and is potentially unneeded */
10762
- var removed = getValueByPointer(document, this.path);
10763
- if (removed) {
10764
- removed = _deepClone(removed);
10765
- }
10766
- var originalValue = applyOperation(document, { op: "remove", path: this.from }).removed;
10767
- applyOperation(document, { op: "add", path: this.path, value: originalValue });
10768
- return { newDocument: document, removed: removed };
10769
- },
10770
- copy: function (obj, key, document) {
10771
- var valueToCopy = getValueByPointer(document, this.from);
10772
- // enforce copy by value so further operations don't affect source (see issue #177)
10773
- applyOperation(document, { op: "add", path: this.path, value: _deepClone(valueToCopy) });
10774
- return { newDocument: document };
10775
- },
10776
- test: function (obj, key, document) {
10777
- return { newDocument: document, test: _areEquals(obj[key], this.value) };
10778
- },
10779
- _get: function (obj, key, document) {
10780
- this.value = obj[key];
10781
- return { newDocument: document };
10782
- }
10783
- };
10784
- /* The operations applicable to an array. Many are the same as for the object */
10785
- var arrOps = {
10786
- add: function (arr, i, document) {
10787
- if (isInteger(i)) {
10788
- arr.splice(i, 0, this.value);
10789
- }
10790
- else { // array props
10791
- arr[i] = this.value;
10792
- }
10793
- // this may be needed when using '-' in an array
10794
- return { newDocument: document, index: i };
10795
- },
10796
- remove: function (arr, i, document) {
10797
- var removedList = arr.splice(i, 1);
10798
- return { newDocument: document, removed: removedList[0] };
10799
- },
10800
- replace: function (arr, i, document) {
10801
- var removed = arr[i];
10802
- arr[i] = this.value;
10803
- return { newDocument: document, removed: removed };
10804
- },
10805
- move: objOps.move,
10806
- copy: objOps.copy,
10807
- test: objOps.test,
10808
- _get: objOps._get
10809
- };
10810
- /**
10811
- * Retrieves a value from a JSON document by a JSON pointer.
10812
- * Returns the value.
10813
- *
10814
- * @param document The document to get the value from
10815
- * @param pointer an escaped JSON pointer
10816
- * @return The retrieved value
10817
- */
10818
- function getValueByPointer(document, pointer) {
10819
- if (pointer == '') {
10820
- return document;
10821
- }
10822
- var getOriginalDestination = { op: "_get", path: pointer };
10823
- applyOperation(document, getOriginalDestination);
10824
- return getOriginalDestination.value;
10825
- }
10826
- /**
10827
- * Apply a single JSON Patch Operation on a JSON document.
10828
- * Returns the {newDocument, result} of the operation.
10829
- * It modifies the `document` and `operation` objects - it gets the values by reference.
10830
- * If you would like to avoid touching your values, clone them:
10831
- * `jsonpatch.applyOperation(document, jsonpatch._deepClone(operation))`.
10832
- *
10833
- * @param document The document to patch
10834
- * @param operation The operation to apply
10835
- * @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.
10836
- * @param mutateDocument Whether to mutate the original document or clone it before applying
10837
- * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.
10838
- * @return `{newDocument, result}` after the operation
10839
- */
10840
- function applyOperation(document, operation, validateOperation, mutateDocument, banPrototypeModifications, index) {
10841
- if (validateOperation === void 0) { validateOperation = false; }
10842
- if (mutateDocument === void 0) { mutateDocument = true; }
10843
- if (banPrototypeModifications === void 0) { banPrototypeModifications = true; }
10844
- if (index === void 0) { index = 0; }
10845
- if (validateOperation) {
10846
- if (typeof validateOperation == 'function') {
10847
- validateOperation(operation, 0, document, operation.path);
10848
- }
10849
- else {
10850
- validator$1(operation, 0);
10851
- }
10852
- }
10853
- /* ROOT OPERATIONS */
10854
- if (operation.path === "") {
10855
- var returnValue = { newDocument: document };
10856
- if (operation.op === 'add') {
10857
- returnValue.newDocument = operation.value;
10858
- return returnValue;
10859
- }
10860
- else if (operation.op === 'replace') {
10861
- returnValue.newDocument = operation.value;
10862
- returnValue.removed = document; //document we removed
10863
- return returnValue;
10864
- }
10865
- else if (operation.op === 'move' || operation.op === 'copy') { // it's a move or copy to root
10866
- returnValue.newDocument = getValueByPointer(document, operation.from); // get the value by json-pointer in `from` field
10867
- if (operation.op === 'move') { // report removed item
10868
- returnValue.removed = document;
10869
- }
10870
- return returnValue;
10871
- }
10872
- else if (operation.op === 'test') {
10873
- returnValue.test = _areEquals(document, operation.value);
10874
- if (returnValue.test === false) {
10875
- throw new JsonPatchError("Test operation failed", 'TEST_OPERATION_FAILED', index, operation, document);
10876
- }
10877
- returnValue.newDocument = document;
10878
- return returnValue;
10879
- }
10880
- else if (operation.op === 'remove') { // a remove on root
10881
- returnValue.removed = document;
10882
- returnValue.newDocument = null;
10883
- return returnValue;
10884
- }
10885
- else if (operation.op === '_get') {
10886
- operation.value = document;
10887
- return returnValue;
10888
- }
10889
- else { /* bad operation */
10890
- if (validateOperation) {
10891
- throw new JsonPatchError('Operation `op` property is not one of operations defined in RFC-6902', 'OPERATION_OP_INVALID', index, operation, document);
10892
- }
10893
- else {
10894
- return returnValue;
10895
- }
10896
- }
10897
- } /* END ROOT OPERATIONS */
10898
- else {
10899
- if (!mutateDocument) {
10900
- document = _deepClone(document);
10901
- }
10902
- var path = operation.path || "";
10903
- var keys = path.split('/');
10904
- var obj = document;
10905
- var t = 1; //skip empty element - http://jsperf.com/to-shift-or-not-to-shift
10906
- var len = keys.length;
10907
- var existingPathFragment = undefined;
10908
- var key = void 0;
10909
- var validateFunction = void 0;
10910
- if (typeof validateOperation == 'function') {
10911
- validateFunction = validateOperation;
10912
- }
10913
- else {
10914
- validateFunction = validator$1;
10915
- }
10916
- while (true) {
10917
- key = keys[t];
10918
- if (key && key.indexOf('~') != -1) {
10919
- key = unescapePathComponent(key);
10920
- }
10921
- if (banPrototypeModifications &&
10922
- (key == '__proto__' ||
10923
- (key == 'prototype' && t > 0 && keys[t - 1] == 'constructor'))) {
10924
- 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');
10925
- }
10926
- if (validateOperation) {
10927
- if (existingPathFragment === undefined) {
10928
- if (obj[key] === undefined) {
10929
- existingPathFragment = keys.slice(0, t).join('/');
10930
- }
10931
- else if (t == len - 1) {
10932
- existingPathFragment = operation.path;
10933
- }
10934
- if (existingPathFragment !== undefined) {
10935
- validateFunction(operation, 0, document, existingPathFragment);
10936
- }
10937
- }
10938
- }
10939
- t++;
10940
- if (Array.isArray(obj)) {
10941
- if (key === '-') {
10942
- key = obj.length;
10943
- }
10944
- else {
10945
- if (validateOperation && !isInteger(key)) {
10946
- 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);
10947
- } // only parse key when it's an integer for `arr.prop` to work
10948
- else if (isInteger(key)) {
10949
- key = ~~key;
10950
- }
10951
- }
10952
- if (t >= len) {
10953
- if (validateOperation && operation.op === "add" && key > obj.length) {
10954
- 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);
10955
- }
10956
- var returnValue = arrOps[operation.op].call(operation, obj, key, document); // Apply patch
10957
- if (returnValue.test === false) {
10958
- throw new JsonPatchError("Test operation failed", 'TEST_OPERATION_FAILED', index, operation, document);
10959
- }
10960
- return returnValue;
10961
- }
10962
- }
10963
- else {
10964
- if (t >= len) {
10965
- var returnValue = objOps[operation.op].call(operation, obj, key, document); // Apply patch
10966
- if (returnValue.test === false) {
10967
- throw new JsonPatchError("Test operation failed", 'TEST_OPERATION_FAILED', index, operation, document);
10968
- }
10969
- return returnValue;
10970
- }
10971
- }
10972
- obj = obj[key];
10973
- // If we have more keys in the path, but the next value isn't a non-null object,
10974
- // throw an OPERATION_PATH_UNRESOLVABLE error instead of iterating again.
10975
- if (validateOperation && t < len && (!obj || typeof obj !== "object")) {
10976
- throw new JsonPatchError('Cannot perform operation at the desired path', 'OPERATION_PATH_UNRESOLVABLE', index, operation, document);
10977
- }
10978
- }
10979
- }
10980
- }
10981
- /**
10982
- * Apply a full JSON Patch array on a JSON document.
10983
- * Returns the {newDocument, result} of the patch.
10984
- * It modifies the `document` object and `patch` - it gets the values by reference.
10985
- * If you would like to avoid touching your values, clone them:
10986
- * `jsonpatch.applyPatch(document, jsonpatch._deepClone(patch))`.
10987
- *
10988
- * @param document The document to patch
10989
- * @param patch The patch to apply
10990
- * @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.
10991
- * @param mutateDocument Whether to mutate the original document or clone it before applying
10992
- * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.
10993
- * @return An array of `{newDocument, result}` after the patch
10994
- */
10995
- function applyPatch(document, patch, validateOperation, mutateDocument, banPrototypeModifications) {
10996
- if (mutateDocument === void 0) { mutateDocument = true; }
10997
- if (banPrototypeModifications === void 0) { banPrototypeModifications = true; }
10998
- if (validateOperation) {
10999
- if (!Array.isArray(patch)) {
11000
- throw new JsonPatchError('Patch sequence must be an array', 'SEQUENCE_NOT_AN_ARRAY');
11001
- }
11002
- }
11003
- if (!mutateDocument) {
11004
- document = _deepClone(document);
11005
- }
11006
- var results = new Array(patch.length);
11007
- for (var i = 0, length_1 = patch.length; i < length_1; i++) {
11008
- // we don't need to pass mutateDocument argument because if it was true, we already deep cloned the object, we'll just pass `true`
11009
- results[i] = applyOperation(document, patch[i], validateOperation, true, banPrototypeModifications, i);
11010
- document = results[i].newDocument; // in case root was replaced
11011
- }
11012
- results.newDocument = document;
11013
- return results;
11014
- }
11015
- /**
11016
- * Apply a single JSON Patch Operation on a JSON document.
11017
- * Returns the updated document.
11018
- * Suitable as a reducer.
11019
- *
11020
- * @param document The document to patch
11021
- * @param operation The operation to apply
11022
- * @return The updated document
11023
- */
11024
- function applyReducer(document, operation, index) {
11025
- var operationResult = applyOperation(document, operation);
11026
- if (operationResult.test === false) { // failed test
11027
- throw new JsonPatchError("Test operation failed", 'TEST_OPERATION_FAILED', index, operation, document);
11028
- }
11029
- return operationResult.newDocument;
11030
- }
11031
- /**
11032
- * Validates a single operation. Called from `jsonpatch.validate`. Throws `JsonPatchError` in case of an error.
11033
- * @param {object} operation - operation object (patch)
11034
- * @param {number} index - index of operation in the sequence
11035
- * @param {object} [document] - object where the operation is supposed to be applied
11036
- * @param {string} [existingPathFragment] - comes along with `document`
11037
- */
11038
- function validator$1(operation, index, document, existingPathFragment) {
11039
- if (typeof operation !== 'object' || operation === null || Array.isArray(operation)) {
11040
- throw new JsonPatchError('Operation is not an object', 'OPERATION_NOT_AN_OBJECT', index, operation, document);
11041
- }
11042
- else if (!objOps[operation.op]) {
11043
- throw new JsonPatchError('Operation `op` property is not one of operations defined in RFC-6902', 'OPERATION_OP_INVALID', index, operation, document);
11044
- }
11045
- else if (typeof operation.path !== 'string') {
11046
- throw new JsonPatchError('Operation `path` property is not a string', 'OPERATION_PATH_INVALID', index, operation, document);
11047
- }
11048
- else if (operation.path.indexOf('/') !== 0 && operation.path.length > 0) {
11049
- // paths that aren't empty string should start with "/"
11050
- throw new JsonPatchError('Operation `path` property must start with "/"', 'OPERATION_PATH_INVALID', index, operation, document);
11051
- }
11052
- else if ((operation.op === 'move' || operation.op === 'copy') && typeof operation.from !== 'string') {
11053
- throw new JsonPatchError('Operation `from` property is not present (applicable in `move` and `copy` operations)', 'OPERATION_FROM_REQUIRED', index, operation, document);
11054
- }
11055
- else if ((operation.op === 'add' || operation.op === 'replace' || operation.op === 'test') && operation.value === undefined) {
11056
- throw new JsonPatchError('Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)', 'OPERATION_VALUE_REQUIRED', index, operation, document);
11057
- }
11058
- else if ((operation.op === 'add' || operation.op === 'replace' || operation.op === 'test') && hasUndefined(operation.value)) {
11059
- throw new JsonPatchError('Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)', 'OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED', index, operation, document);
11060
- }
11061
- else if (document) {
11062
- if (operation.op == "add") {
11063
- var pathLen = operation.path.split("/").length;
11064
- var existingPathLen = existingPathFragment.split("/").length;
11065
- if (pathLen !== existingPathLen + 1 && pathLen !== existingPathLen) {
11066
- throw new JsonPatchError('Cannot perform an `add` operation at the desired path', 'OPERATION_PATH_CANNOT_ADD', index, operation, document);
11067
- }
11068
- }
11069
- else if (operation.op === 'replace' || operation.op === 'remove' || operation.op === '_get') {
11070
- if (operation.path !== existingPathFragment) {
11071
- throw new JsonPatchError('Cannot perform the operation at a path that does not exist', 'OPERATION_PATH_UNRESOLVABLE', index, operation, document);
11072
- }
11073
- }
11074
- else if (operation.op === 'move' || operation.op === 'copy') {
11075
- var existingValue = { op: "_get", path: operation.from, value: undefined };
11076
- var error = validate([existingValue], document);
11077
- if (error && error.name === 'OPERATION_PATH_UNRESOLVABLE') {
11078
- throw new JsonPatchError('Cannot perform the operation from a path that does not exist', 'OPERATION_FROM_UNRESOLVABLE', index, operation, document);
11079
- }
11080
- }
11081
- }
11082
- }
11083
- /**
11084
- * Validates a sequence of operations. If `document` parameter is provided, the sequence is additionally validated against the object document.
11085
- * If error is encountered, returns a JsonPatchError object
11086
- * @param sequence
11087
- * @param document
11088
- * @returns {JsonPatchError|undefined}
11089
- */
11090
- function validate(sequence, document, externalValidator) {
11091
- try {
11092
- if (!Array.isArray(sequence)) {
11093
- throw new JsonPatchError('Patch sequence must be an array', 'SEQUENCE_NOT_AN_ARRAY');
11094
- }
11095
- if (document) {
11096
- //clone document and sequence so that we can safely try applying operations
11097
- applyPatch(_deepClone(document), _deepClone(sequence), externalValidator || true);
11098
- }
11099
- else {
11100
- externalValidator = externalValidator || validator$1;
11101
- for (var i = 0; i < sequence.length; i++) {
11102
- externalValidator(sequence[i], i, document, undefined);
11103
- }
11104
- }
11105
- }
11106
- catch (e) {
11107
- if (e instanceof JsonPatchError) {
11108
- return e;
11109
- }
11110
- else {
11111
- throw e;
11112
- }
11113
- }
11114
- }
11115
- // based on https://github.com/epoberezkin/fast-deep-equal
11116
- // MIT License
11117
- // Copyright (c) 2017 Evgeny Poberezkin
11118
- // Permission is hereby granted, free of charge, to any person obtaining a copy
11119
- // of this software and associated documentation files (the "Software"), to deal
11120
- // in the Software without restriction, including without limitation the rights
11121
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11122
- // copies of the Software, and to permit persons to whom the Software is
11123
- // furnished to do so, subject to the following conditions:
11124
- // The above copyright notice and this permission notice shall be included in all
11125
- // copies or substantial portions of the Software.
11126
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
11127
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
11128
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
11129
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
11130
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
11131
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
11132
- // SOFTWARE.
11133
- function _areEquals(a, b) {
11134
- if (a === b)
11135
- return true;
11136
- if (a && b && typeof a == 'object' && typeof b == 'object') {
11137
- var arrA = Array.isArray(a), arrB = Array.isArray(b), i, length, key;
11138
- if (arrA && arrB) {
11139
- length = a.length;
11140
- if (length != b.length)
11141
- return false;
11142
- for (i = length; i-- !== 0;)
11143
- if (!_areEquals(a[i], b[i]))
11144
- return false;
11145
- return true;
11146
- }
11147
- if (arrA != arrB)
11148
- return false;
11149
- var keys = Object.keys(a);
11150
- length = keys.length;
11151
- if (length !== Object.keys(b).length)
11152
- return false;
11153
- for (i = length; i-- !== 0;)
11154
- if (!b.hasOwnProperty(keys[i]))
11155
- return false;
11156
- for (i = length; i-- !== 0;) {
11157
- key = keys[i];
11158
- if (!_areEquals(a[key], b[key]))
11159
- return false;
11160
- }
11161
- return true;
11162
- }
11163
- return a !== a && b !== b;
11164
- }
9746
+ (minutes ? hmsSign + minutes + 'M' : '') +
9747
+ (seconds ? hmsSign + s + 'S' : '')
9748
+ );
9749
+ }
11165
9750
 
11166
- var core = /*#__PURE__*/Object.freeze({
11167
- __proto__: null,
11168
- JsonPatchError: JsonPatchError,
11169
- _areEquals: _areEquals,
11170
- applyOperation: applyOperation,
11171
- applyPatch: applyPatch,
11172
- applyReducer: applyReducer,
11173
- deepClone: deepClone,
11174
- getValueByPointer: getValueByPointer,
11175
- validate: validate,
11176
- validator: validator$1
11177
- });
9751
+ var proto$2 = Duration.prototype;
11178
9752
 
11179
- /*!
11180
- * https://github.com/Starcounter-Jack/JSON-Patch
11181
- * (c) 2017-2021 Joachim Wester
11182
- * MIT license
11183
- */
11184
- var beforeDict = new WeakMap();
11185
- var Mirror = /** @class */ (function () {
11186
- function Mirror(obj) {
11187
- this.observers = new Map();
11188
- this.obj = obj;
11189
- }
11190
- return Mirror;
11191
- }());
11192
- var ObserverInfo = /** @class */ (function () {
11193
- function ObserverInfo(callback, observer) {
11194
- this.callback = callback;
11195
- this.observer = observer;
11196
- }
11197
- return ObserverInfo;
11198
- }());
11199
- function getMirror(obj) {
11200
- return beforeDict.get(obj);
11201
- }
11202
- function getObserverFromMirror(mirror, callback) {
11203
- return mirror.observers.get(callback);
11204
- }
11205
- function removeObserverFromMirror(mirror, observer) {
11206
- mirror.observers.delete(observer.callback);
11207
- }
11208
- /**
11209
- * Detach an observer from an object
11210
- */
11211
- function unobserve(root, observer) {
11212
- observer.unobserve();
11213
- }
11214
- /**
11215
- * Observes changes made to an object, which can then be retrieved using generate
11216
- */
11217
- function observe(obj, callback) {
11218
- var patches = [];
11219
- var observer;
11220
- var mirror = getMirror(obj);
11221
- if (!mirror) {
11222
- mirror = new Mirror(obj);
11223
- beforeDict.set(obj, mirror);
11224
- }
11225
- else {
11226
- var observerInfo = getObserverFromMirror(mirror, callback);
11227
- observer = observerInfo && observerInfo.observer;
11228
- }
11229
- if (observer) {
11230
- return observer;
11231
- }
11232
- observer = {};
11233
- mirror.value = _deepClone(obj);
11234
- if (callback) {
11235
- observer.callback = callback;
11236
- observer.next = null;
11237
- var dirtyCheck = function () {
11238
- generate(observer);
11239
- };
11240
- var fastCheck = function () {
11241
- clearTimeout(observer.next);
11242
- observer.next = setTimeout(dirtyCheck);
11243
- };
11244
- if (typeof window !== 'undefined') { //not Node
11245
- window.addEventListener('mouseup', fastCheck);
11246
- window.addEventListener('keyup', fastCheck);
11247
- window.addEventListener('mousedown', fastCheck);
11248
- window.addEventListener('keydown', fastCheck);
11249
- window.addEventListener('change', fastCheck);
11250
- }
11251
- }
11252
- observer.patches = patches;
11253
- observer.object = obj;
11254
- observer.unobserve = function () {
11255
- generate(observer);
11256
- clearTimeout(observer.next);
11257
- removeObserverFromMirror(mirror, observer);
11258
- if (typeof window !== 'undefined') {
11259
- window.removeEventListener('mouseup', fastCheck);
11260
- window.removeEventListener('keyup', fastCheck);
11261
- window.removeEventListener('mousedown', fastCheck);
11262
- window.removeEventListener('keydown', fastCheck);
11263
- window.removeEventListener('change', fastCheck);
11264
- }
11265
- };
11266
- mirror.observers.set(callback, new ObserverInfo(callback, observer));
11267
- return observer;
11268
- }
11269
- /**
11270
- * Generate an array of patches from an observer
11271
- */
11272
- function generate(observer, invertible) {
11273
- if (invertible === void 0) { invertible = false; }
11274
- var mirror = beforeDict.get(observer.object);
11275
- _generate(mirror.value, observer.object, observer.patches, "", invertible);
11276
- if (observer.patches.length) {
11277
- applyPatch(mirror.value, observer.patches);
11278
- }
11279
- var temp = observer.patches;
11280
- if (temp.length > 0) {
11281
- observer.patches = [];
11282
- if (observer.callback) {
11283
- observer.callback(temp);
11284
- }
11285
- }
11286
- return temp;
11287
- }
11288
- // Dirty check if obj is different from mirror, generate patches and update mirror
11289
- function _generate(mirror, obj, patches, path, invertible) {
11290
- if (obj === mirror) {
11291
- return;
11292
- }
11293
- if (typeof obj.toJSON === "function") {
11294
- obj = obj.toJSON();
11295
- }
11296
- var newKeys = _objectKeys(obj);
11297
- var oldKeys = _objectKeys(mirror);
11298
- var deleted = false;
11299
- //if ever "move" operation is implemented here, make sure this test runs OK: "should not generate the same patch twice (move)"
11300
- for (var t = oldKeys.length - 1; t >= 0; t--) {
11301
- var key = oldKeys[t];
11302
- var oldVal = mirror[key];
11303
- if (hasOwnProperty$b(obj, key) && !(obj[key] === undefined && oldVal !== undefined && Array.isArray(obj) === false)) {
11304
- var newVal = obj[key];
11305
- if (typeof oldVal == "object" && oldVal != null && typeof newVal == "object" && newVal != null && Array.isArray(oldVal) === Array.isArray(newVal)) {
11306
- _generate(oldVal, newVal, patches, path + "/" + escapePathComponent(key), invertible);
11307
- }
11308
- else {
11309
- if (oldVal !== newVal) {
11310
- if (invertible) {
11311
- patches.push({ op: "test", path: path + "/" + escapePathComponent(key), value: _deepClone(oldVal) });
11312
- }
11313
- patches.push({ op: "replace", path: path + "/" + escapePathComponent(key), value: _deepClone(newVal) });
11314
- }
11315
- }
11316
- }
11317
- else if (Array.isArray(mirror) === Array.isArray(obj)) {
11318
- if (invertible) {
11319
- patches.push({ op: "test", path: path + "/" + escapePathComponent(key), value: _deepClone(oldVal) });
11320
- }
11321
- patches.push({ op: "remove", path: path + "/" + escapePathComponent(key) });
11322
- deleted = true; // property has been deleted
11323
- }
11324
- else {
11325
- if (invertible) {
11326
- patches.push({ op: "test", path: path, value: mirror });
11327
- }
11328
- patches.push({ op: "replace", path: path, value: obj });
11329
- }
11330
- }
11331
- if (!deleted && newKeys.length == oldKeys.length) {
11332
- return;
11333
- }
11334
- for (var t = 0; t < newKeys.length; t++) {
11335
- var key = newKeys[t];
11336
- if (!hasOwnProperty$b(mirror, key) && obj[key] !== undefined) {
11337
- patches.push({ op: "add", path: path + "/" + escapePathComponent(key), value: _deepClone(obj[key]) });
11338
- }
11339
- }
11340
- }
11341
- /**
11342
- * Create an array of patches from the differences in two objects
11343
- */
11344
- function compare(tree1, tree2, invertible) {
11345
- if (invertible === void 0) { invertible = false; }
11346
- var patches = [];
11347
- _generate(tree1, tree2, patches, '', invertible);
11348
- return patches;
11349
- }
11350
-
11351
- var duplex = /*#__PURE__*/Object.freeze({
11352
- __proto__: null,
11353
- compare: compare,
11354
- generate: generate,
11355
- observe: observe,
11356
- unobserve: unobserve
11357
- });
9753
+ proto$2.isValid = isValid$1;
9754
+ proto$2.abs = abs;
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;
11358
9785
 
11359
- Object.assign({}, core, duplex, {
11360
- JsonPatchError: PatchError,
11361
- deepClone: _deepClone,
11362
- escapePathComponent,
11363
- unescapePathComponent
11364
- });
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;
9791
+
9792
+ // FORMATTING
9793
+
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;
11365
9861
 
11366
9862
  toast.configure({
11367
9863
  autoClose: 3000,
@@ -11428,7 +9924,7 @@ var stopPropagation = function (event) {
11428
9924
  };
11429
9925
  function useThrottledEffect(callback, delay, deps) {
11430
9926
  if (deps === void 0) { deps = []; }
11431
- //function will be executed only once in a given time interval.
9927
+ // function will be executed only once in a given time interval.
11432
9928
  var lastRan = React.useRef(Date.now());
11433
9929
  React.useEffect(function () {
11434
9930
  var handler = setTimeout(function () {
@@ -11462,22 +9958,20 @@ function getRandomColor(email) {
11462
9958
  return colors$1[sum % colors$1.length];
11463
9959
  }
11464
9960
  var getAlphabetIcon = function (str, rootClassName) {
11465
- if (rootClassName === void 0) { rootClassName = ""; }
9961
+ if (rootClassName === void 0) { rootClassName = ''; }
11466
9962
  if (!str)
11467
9963
  return null;
11468
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] })));
11469
9965
  };
11470
- var getEmptyArrayOfLength = function (length) {
11471
- return Array.from({ length: length });
11472
- };
9966
+ var getEmptyArrayOfLength = function (length) { return Array.from({ length: length }); };
11473
9967
  function noop$1() {
11474
9968
  }
11475
9969
  function not(e) {
11476
9970
  return !e;
11477
9971
  }
11478
9972
  function useEffectAfterMount(cb, dependencies) {
11479
- var justMounted = React.useRef(true);
11480
- React.useEffect(function () {
9973
+ var justMounted = React__namespace.useRef(true);
9974
+ React__namespace.useEffect(function () {
11481
9975
  if (!justMounted.current) {
11482
9976
  return cb();
11483
9977
  }
@@ -11488,7 +9982,7 @@ function getCookie(sKey) {
11488
9982
  if (!sKey) {
11489
9983
  return null;
11490
9984
  }
11491
- 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);
11492
9986
  }
11493
9987
  function getLoginInfo() {
11494
9988
  var argocdToken = getCookie(TOKEN_COOKIE_NAME);
@@ -11524,7 +10018,7 @@ function useForm(stateSchema, validationSchema, callback) {
11524
10018
  // Wrapped in useCallback to cached the function to avoid intensive memory leaked
11525
10019
  // in every re-render in component
11526
10020
  var validateState = React.useCallback(function (state) {
11527
- //check errors in all fields
10021
+ // check errors in all fields
11528
10022
  var hasErrorInState = Object.keys(validationSchema).some(function (key) {
11529
10023
  var isInputFieldRequired = validationSchema[key].required;
11530
10024
  var stateValue = state[key].value; // state value
@@ -11676,9 +10170,7 @@ function useAsync(func, dependencyArray, shouldRun, options) {
11676
10170
  dependencies: dependencyArray,
11677
10171
  }), 2), state = _a[0], setState = _a[1];
11678
10172
  var mounted = React.useRef(true);
11679
- var dependencies = React.useMemo(function () {
11680
- return __spreadArray(__spreadArray([], __read(dependencyArray), false), [shouldRun], false);
11681
- }, __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));
11682
10174
  var reload = function () {
11683
10175
  function call() {
11684
10176
  return __awaiter(this, void 0, void 0, function () {
@@ -11737,9 +10229,7 @@ var processDeployedTime = function (lastDeployed, isArgoInstalled) {
11737
10229
  if (lastDeployed) {
11738
10230
  return handleUTCTime(lastDeployed, true);
11739
10231
  }
11740
- else {
11741
- return isArgoInstalled ? '' : 'Not deployed';
11742
- }
10232
+ return isArgoInstalled ? '' : 'Not deployed';
11743
10233
  };
11744
10234
  /**
11745
10235
  * Appends search parameters to the url as a query string
@@ -11760,79 +10250,20 @@ var getUrlWithSearchParams = function (url, params) {
11760
10250
  /**
11761
10251
  * Custom exception logger function for logging errors to sentry
11762
10252
  */
11763
- var logExceptionToSentry = captureException.bind(window);
11764
- function removeEmptyObjectKeysAndNullValues(obj) {
11765
- // It recursively removes empty object keys and array values that are null
11766
- for (var key in obj) {
11767
- if (Array.isArray(obj[key])) {
11768
- if (obj[key].length === 0)
11769
- continue;
11770
- obj[key] = obj[key].filter(function (item) { return item !== null; });
11771
- // Check if the array is empty
11772
- if (obj[key].length === 0) {
11773
- delete obj[key]; // Delete the key if the array is empty
11774
- }
11775
- }
11776
- else if (obj[key] && typeof obj[key] === 'object') {
11777
- if (removeEmptyObjectKeysAndNullValues(obj[key])) {
11778
- delete obj[key];
11779
- }
11780
- }
11781
- else if (obj[key] === undefined) {
11782
- delete obj[key];
11783
- }
11784
- }
11785
- return Object.keys(obj).length === 0;
11786
- }
11787
- function getUnlockedJSON(json, jsonPathArray) {
11788
- var jsonCopy = JSON.parse(JSON.stringify(json));
11789
- var patches = jsonPathArray.flatMap(function (jsonPath) {
11790
- var pathsToRemove = JSONPath({ path: jsonPath, json: jsonCopy, resultType: 'all' });
11791
- return pathsToRemove.map(function (result) {
11792
- return Array.isArray(result.parent)
11793
- ? { op: 'replace', path: result.pointer, value: null }
11794
- : { op: 'remove', path: result.pointer };
11795
- });
11796
- });
11797
- var newDocument = applyPatch(jsonCopy, patches).newDocument;
11798
- removeEmptyObjectKeysAndNullValues(newDocument);
11799
- return newDocument;
11800
- }
11801
- function getLockedJSON(json, jsonPathArray) {
11802
- var jsonCopy = JSON.parse(JSON.stringify(json));
11803
- var resultJson = {};
11804
- jsonPathArray.forEach(function (jsonPath) {
11805
- var elements = JSONPath({ path: jsonPath, json: jsonCopy, resultType: 'all' });
11806
- elements.forEach(function (element) {
11807
- var pathArray = JSONPath.toPathArray(element.path);
11808
- var lastPath = pathArray.pop();
11809
- var current = resultJson;
11810
- for (var i = 0; i < pathArray.length; i++) {
11811
- var key_1 = isNaN(Number(pathArray[i])) ? pathArray[i] : parseInt(pathArray[i]);
11812
- if (!current[key_1]) {
11813
- current[key_1] = isNaN(Number(pathArray[i + 1])) ? {} : [];
11814
- }
11815
- current = current[key_1];
11816
- }
11817
- var key = isNaN(Number(lastPath)) ? lastPath : parseInt(lastPath);
11818
- current[key] = element.value;
11819
- });
11820
- });
11821
- return resultJson['$'];
11822
- }
10253
+ var logExceptionToSentry = captureException.bind(window);
11823
10254
 
11824
- function Progressing(_a) {
10255
+ var Progressing = function (_a) {
11825
10256
  var pageLoader = _a.pageLoader, size = _a.size, theme = _a.theme, styles = _a.styles, fillColor = _a.fillColor;
11826
10257
  var loaderSize = size ? "".concat(size, "px") : pageLoader ? '48px' : '20px';
11827
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" })] })) })) })) })));
11828
- }
11829
- function DetailsProgressing(_a) {
10259
+ };
10260
+ var DetailsProgressing = function (_a) {
11830
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;
11831
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] })));
11832
- }
10263
+ };
11833
10264
 
11834
10265
  var VisibleModal = /** @class */ (function (_super) {
11835
- __extends$1(VisibleModal, _super);
10266
+ __extends(VisibleModal, _super);
11836
10267
  function VisibleModal(props) {
11837
10268
  var _this = _super.call(this, props) || this;
11838
10269
  _this.modalRef = document.getElementById('visible-modal');
@@ -11963,7 +10394,7 @@ var SvgIcCross = function SvgIcCross(props) {
11963
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";
11964
10395
 
11965
10396
  var OpaqueModal = /** @class */ (function (_super) {
11966
- __extends$1(OpaqueModal, _super);
10397
+ __extends(OpaqueModal, _super);
11967
10398
  function OpaqueModal() {
11968
10399
  var _this = _super !== null && _super.apply(this, arguments) || this;
11969
10400
  _this.modalRef = document.getElementById('full-screen-modal');
@@ -11971,23 +10402,23 @@ var OpaqueModal = /** @class */ (function (_super) {
11971
10402
  }
11972
10403
  OpaqueModal.prototype.componentDidMount = function () {
11973
10404
  if (this.props.noBackground)
11974
- this.modalRef.classList.add("show");
10405
+ this.modalRef.classList.add('show');
11975
10406
  else
11976
- this.modalRef.classList.add("show-with-bg");
10407
+ this.modalRef.classList.add('show-with-bg');
11977
10408
  };
11978
10409
  OpaqueModal.prototype.componentWillUnmount = function () {
11979
- this.modalRef.classList.remove("show");
11980
- this.modalRef.classList.remove("show-with-bg");
10410
+ this.modalRef.classList.remove('show');
10411
+ this.modalRef.classList.remove('show-with-bg');
11981
10412
  };
11982
10413
  OpaqueModal.prototype.render = function () {
11983
- var _a = __assign({}, this.props), _b = _a.className, className = _b === void 0 ? "" : _b, _c = _a.onHide, onHide = _c === void 0 ? null : _c;
11984
- 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'));
11985
10416
  };
11986
10417
  return OpaqueModal;
11987
10418
  }(React.Component));
11988
10419
 
11989
10420
  var VisibleModal2 = /** @class */ (function (_super) {
11990
- __extends$1(VisibleModal2, _super);
10421
+ __extends(VisibleModal2, _super);
11991
10422
  function VisibleModal2(props) {
11992
10423
  var _this = _super.call(this, props) || this;
11993
10424
  _this.modalRef = document.getElementById('visible-modal-2');
@@ -12000,12 +10431,12 @@ var VisibleModal2 = /** @class */ (function (_super) {
12000
10431
  }
12001
10432
  };
12002
10433
  VisibleModal2.prototype.componentDidMount = function () {
12003
- document.addEventListener("keydown", this.escFunction);
12004
- this.modalRef.classList.add("show-with-bg");
10434
+ document.addEventListener('keydown', this.escFunction);
10435
+ this.modalRef.classList.add('show-with-bg');
12005
10436
  };
12006
10437
  VisibleModal2.prototype.componentWillUnmount = function () {
12007
- document.removeEventListener("keydown", this.escFunction);
12008
- this.modalRef.classList.remove("show-with-bg");
10438
+ document.removeEventListener('keydown', this.escFunction);
10439
+ this.modalRef.classList.remove('show-with-bg');
12009
10440
  };
12010
10441
  VisibleModal2.prototype.render = function () {
12011
10442
  var _a;
@@ -12034,7 +10465,7 @@ function useBreadcrumbContext() {
12034
10465
  return context;
12035
10466
  }
12036
10467
 
12037
- React.createContext(null);
10468
+ React__namespace.createContext(null);
12038
10469
  function useBreadcrumb(props, deps) {
12039
10470
  var sep = (props === null || props === void 0 ? void 0 : props.sep) || '/';
12040
10471
  deps = deps || [];
@@ -12078,7 +10509,7 @@ function useBreadcrumb(props, deps) {
12078
10509
  ? "".concat(prefix).concat(to)
12079
10510
  : null,
12080
10511
  name: typeof state.alias[name] === 'object'
12081
- ? !!((_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)
12082
10513
  ? state.alias[name].component
12083
10514
  : null
12084
10515
  : state.alias[name] || name,
@@ -12093,25 +10524,23 @@ var BreadCrumb = function (_a) {
12093
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;
12094
10525
  var url = reactRouterDom.useRouteMatch().url;
12095
10526
  var filteredCrumbs = breadcrumbs.filter(function (crumb) { return !!crumb.name; });
12096
- 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)); }) }));
12097
10528
  };
12098
10529
 
12099
10530
  var RadioGroupContext = React.createContext({ name: '', value: '', disabled: false, onChange: function (event) { } });
12100
10531
  var RadioGroupItem = /** @class */ (function (_super) {
12101
- __extends$1(RadioGroupItem, _super);
10532
+ __extends(RadioGroupItem, _super);
12102
10533
  function RadioGroupItem() {
12103
10534
  return _super !== null && _super.apply(this, arguments) || this;
12104
10535
  }
12105
10536
  RadioGroupItem.prototype.render = function () {
12106
10537
  var _this = this;
12107
- return (jsxRuntime.jsx(RadioGroupContext.Consumer, { children: function (context) {
12108
- 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 }))] }))] })) }));
12109
- } }));
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 }))] }))] }))); } }));
12110
10539
  };
12111
10540
  return RadioGroupItem;
12112
10541
  }(React.Component));
12113
10542
  var RadioGroup$1 = /** @class */ (function (_super) {
12114
- __extends$1(RadioGroup, _super);
10543
+ __extends(RadioGroup, _super);
12115
10544
  function RadioGroup() {
12116
10545
  return _super !== null && _super.apply(this, arguments) || this;
12117
10546
  }
@@ -12126,23 +10555,23 @@ var RadioGroup$1 = /** @class */ (function (_super) {
12126
10555
  return RadioGroup;
12127
10556
  }(React.Component));
12128
10557
 
12129
- var PopupContext = React.createContext(null);
10558
+ var PopupContext = React__namespace.createContext(null);
12130
10559
  function usePopupContext() {
12131
- var context = React.useContext(PopupContext);
10560
+ var context = React__namespace.useContext(PopupContext);
12132
10561
  if (!context) {
12133
10562
  throw new Error("Select compound components cannot be rendered outside popupmenup");
12134
10563
  }
12135
10564
  return context;
12136
10565
  }
12137
- function PopupMenu(_a) {
10566
+ var PopupMenu = function (_a) {
12138
10567
  var _b;
12139
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;
12140
- var _g = __read(React.useState(null), 2), popupPosition = _g[0], setPopupPosition = _g[1];
12141
- var _h = __read(React.useState(0), 2), opacity = _h[0], setOpacity = _h[1];
12142
- var observer = React.useRef(null);
12143
- var buttonRef = React.useRef(null);
12144
- var buttonWidth = React.useRef(null);
12145
- 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 () {
12146
10575
  observer.current = window.IntersectionObserver ? new IntersectionObserver(intersectionCallback, options) : null;
12147
10576
  return function () {
12148
10577
  if (observer && observer.current && observer.current.disconnect)
@@ -12236,17 +10665,17 @@ function PopupMenu(_a) {
12236
10665
  initialiseButtonWidth: initialiseButtonWidth,
12237
10666
  buttonWidth: buttonWidth,
12238
10667
  } }, { children: children })));
12239
- }
12240
- function Button(_a) {
12241
- 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;
12242
10671
  var _j = usePopupContext(), handleOpen = _j.handleOpen, popupPosition = _j.popupPosition; _j.buttonRef; var initialiseButtonWidth = _j.initialiseButtonWidth;
12243
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 })));
12244
- }
12245
- function Body$1(_a) {
10673
+ };
10674
+ var Body$1 = function (_a) {
12246
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;
12247
10676
  var _g = usePopupContext(), handleClose = _g.handleClose, popupPosition = _g.popupPosition, opacity = _g.opacity, callbackRef = _g.callbackRef, buttonWidth = _g.buttonWidth;
12248
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;
12249
- }
10678
+ };
12250
10679
  PopupMenu.Button = Button;
12251
10680
  PopupMenu.Body = Body$1;
12252
10681
 
@@ -16289,7 +14718,7 @@ styleInject(css_248z$5);
16289
14718
 
16290
14719
  // This component will handle some of the new tippy designs and interactions
16291
14720
  // So this can be updated to support further for new features or interactions
16292
- function TippyCustomized(props) {
14721
+ var TippyCustomized = function (props) {
16293
14722
  var tippyRef = React.useRef(null);
16294
14723
  var _a = __read(React.useState(false), 2), showHeadingInfo = _a[0], setShowHeadingInfo = _a[1];
16295
14724
  var isWhiteTheme = props.theme === exports.TippyTheme.white;
@@ -16318,16 +14747,15 @@ function TippyCustomized(props) {
16318
14747
  };
16319
14748
  var getTippyContent = function () {
16320
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;
16321
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [!hideHeading &&
16322
- jsxRuntime.jsxs("div", __assign({ className: "dc__word-break dc__hyphens-auto flex left ".concat(isWhiteTheme
16323
- ? "p-12 cn-9 ".concat(props.noHeadingBorder ? '' : 'dc__border-bottom-n1')
16324
- : '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
16325
14753
  ? 'p-12'
16326
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' })) })))] }));
16327
14755
  };
16328
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;
16329
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 })));
16330
- }
14758
+ };
16331
14759
 
16332
14760
  var _path$9, _circle, _path2$1;
16333
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); }
@@ -16360,10 +14788,8 @@ var SvgInjectTag = function SvgInjectTag(props) {
16360
14788
 
16361
14789
  function PropagateTagInfo(_a) {
16362
14790
  var isCreateApp = _a.isCreateApp;
16363
- var additionalInfo = function () {
16364
- 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." })] })));
16365
- };
16366
- 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" })] })) })));
16367
14793
  }
16368
14794
 
16369
14795
  var _path$8;
@@ -16381,7 +14807,7 @@ var SvgIcInfoOutlined = function SvgIcInfoOutlined(props) {
16381
14807
  })));
16382
14808
  };
16383
14809
 
16384
- function ResizableTagTextArea(_a) {
14810
+ var ResizableTagTextArea = function (_a) {
16385
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;
16386
14812
  var _b = __read(React.useState(''), 2), text = _b[0], setText = _b[1];
16387
14813
  React.useEffect(function () {
@@ -16394,9 +14820,9 @@ function ResizableTagTextArea(_a) {
16394
14820
  var reInitHeight = function () {
16395
14821
  if (document.activeElement !== refVar.current)
16396
14822
  return;
16397
- refVar.current.style.height = minHeight + 'px';
14823
+ refVar.current.style.height = "".concat(minHeight, "px");
16398
14824
  if (dependentRef) {
16399
- dependentRef.current.style.height = minHeight + 'px';
14825
+ dependentRef.current.style.height = "".concat(minHeight, "px");
16400
14826
  }
16401
14827
  var nextHeight = refVar.current.scrollHeight;
16402
14828
  if (dependentRef && nextHeight < dependentRef.current.scrollHeight) {
@@ -16408,16 +14834,16 @@ function ResizableTagTextArea(_a) {
16408
14834
  if (maxHeight && nextHeight > maxHeight) {
16409
14835
  nextHeight = maxHeight;
16410
14836
  }
16411
- refVar.current.style.height = nextHeight + 'px';
14837
+ refVar.current.style.height = "".concat(nextHeight, "px");
16412
14838
  if (dependentRef) {
16413
- dependentRef.current.style.height = nextHeight + 'px';
14839
+ dependentRef.current.style.height = "".concat(nextHeight, "px");
16414
14840
  }
16415
14841
  };
16416
14842
  useThrottledEffect(reInitHeight, 500, [text]);
16417
14843
  var handleOnBlur = function (event) {
16418
- refVar.current.style.height = minHeight + 'px';
14844
+ refVar.current.style.height = "".concat(minHeight, "px");
16419
14845
  if (dependentRef) {
16420
- dependentRef.current.style.height = minHeight + 'px';
14846
+ dependentRef.current.style.height = "".concat(minHeight, "px");
16421
14847
  }
16422
14848
  onBlur && onBlur(event);
16423
14849
  };
@@ -16426,7 +14852,7 @@ function ResizableTagTextArea(_a) {
16426
14852
  onFocus && onFocus(event);
16427
14853
  };
16428
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 }));
16429
- }
14855
+ };
16430
14856
 
16431
14857
  var validateTagValue = function (value) {
16432
14858
  var errorList = [];
@@ -16451,28 +14877,26 @@ var ValidationRules = /** @class */ (function () {
16451
14877
  if (!key) {
16452
14878
  errorList.push('Key is required');
16453
14879
  }
16454
- else {
16455
- if (!key.startsWith("devtron.ai/")) {
16456
- var re = new RegExp('/', 'g');
16457
- var noOfSlashInKey = (_a = key.match(re)) === null || _a === void 0 ? void 0 : _a.length;
16458
- if (noOfSlashInKey > 1) {
16459
- errorList.push('Key: Max 1 ( / ) allowed');
16460
- }
16461
- else if (noOfSlashInKey === 1) {
16462
- var _b = __read(key.split('/'), 2), prefix = _b[0], name_1 = _b[1];
16463
- errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(name_1).map(function (error) { return "Name: ".concat(error); })), false));
16464
- if (prefix.length > 253) {
16465
- errorList.push('Prefix: Can be max 253 characters');
16466
- }
16467
- var validPrefix = PATTERNS.KUBERNETES_KEY_PREFIX.test(prefix);
16468
- if (!validPrefix) {
16469
- errorList.push('Prefix: Must be a DNS subdomain (a series of DNS labels separated by dots (.)');
16470
- }
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');
16471
14891
  }
16472
- else {
16473
- 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 (.)');
16474
14895
  }
16475
14896
  }
14897
+ else {
14898
+ errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(key).map(function (error) { return "Name: ".concat(error); })), false));
14899
+ }
16476
14900
  }
16477
14901
  return { isValid: errorList.length === 0, messages: errorList };
16478
14902
  };
@@ -16481,10 +14905,8 @@ var ValidationRules = /** @class */ (function () {
16481
14905
  if (!value) {
16482
14906
  errorList.push('Value is required');
16483
14907
  }
16484
- else {
16485
- if (!key.startsWith("devtron.ai/")) {
16486
- errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(value)), false));
16487
- }
14908
+ else if (!key.startsWith('devtron.ai/')) {
14909
+ errorList.push.apply(errorList, __spreadArray([], __read(validateTagValue(value)), false));
16488
14910
  }
16489
14911
  return { isValid: errorList.length === 0, messages: errorList };
16490
14912
  };
@@ -16555,12 +14977,8 @@ var TagLabelValueSelector = function (_a) {
16555
14977
  }
16556
14978
  return null;
16557
14979
  };
16558
- var option = function (tag, index) {
16559
- 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)));
16560
- };
16561
- var optionWithTippy = function (tag, index) {
16562
- 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) })));
16563
- };
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) }))); };
16564
14982
  var renderSuggestions = function () {
16565
14983
  if (tagOptions === null || tagOptions === void 0 ? void 0 : tagOptions.length) {
16566
14984
  var filteredTags = tagOptions.filter(function (tag) { return tag.label.indexOf(selectedValue) >= 0; });
@@ -16605,7 +15023,7 @@ var TagDetails = function (_a) {
16605
15023
  }
16606
15024
  setTagData(index, _tagData);
16607
15025
  };
16608
- 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" }) }))] })));
16609
15027
  };
16610
15028
 
16611
15029
  var _path$7;
@@ -16628,7 +15046,7 @@ var TagLabelSelect = function (_a) {
16628
15046
  var setTagData = function (index, tagValue) {
16629
15047
  var _tags = __spreadArray([], __read(labelTags), false);
16630
15048
  var _tagValue = tagValue;
16631
- if (_tagValue.key.startsWith("devtron.ai/")) {
15049
+ if (_tagValue.key.startsWith('devtron.ai/')) {
16632
15050
  _tagValue.propagate = false;
16633
15051
  }
16634
15052
  _tags[index] = _tagValue;
@@ -16647,22 +15065,22 @@ var TagLabelSelect = function (_a) {
16647
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))); }) }))] })] }));
16648
15066
  };
16649
15067
 
16650
- function ConfirmationDialog(_a) {
15068
+ var ConfirmationDialog = function (_a) {
16651
15069
  var _b = _a.className, className = _b === void 0 ? '' : _b, children = _a.children;
16652
15070
  return (jsxRuntime.jsx(VisibleModal2, __assign({ className: "confirmation-dialog" }, { children: jsxRuntime.jsx("div", __assign({ className: "confirmation-dialog__body ".concat(className) }, { children: children })) })));
16653
- }
16654
- function Icon(_a) {
15071
+ };
15072
+ var Icon = function (_a) {
16655
15073
  var src = _a.src, _b = _a.className, className = _b === void 0 ? '' : _b;
16656
- return jsxRuntime.jsx("img", { src: src, className: "confirmation-dialog__icon ".concat(className), alt: "" });
16657
- }
16658
- function Body(_a) {
15074
+ return (jsxRuntime.jsx("img", { src: src, className: "confirmation-dialog__icon ".concat(className), alt: "" }));
15075
+ };
15076
+ var Body = function (_a) {
16659
15077
  var title = _a.title, _b = _a.subtitle, subtitle = _b === void 0 ? null : _b, _c = _a.children, children = _c === void 0 ? null : _c;
16660
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] })));
16661
- }
16662
- function ButtonGroup(_a) {
15079
+ };
15080
+ var ButtonGroup = function (_a) {
16663
15081
  var children = _a.children;
16664
- return jsxRuntime.jsx("div", __assign({ className: "flex right confirmation-dialog__button-group" }, { children: children }));
16665
- }
15082
+ return (jsxRuntime.jsx("div", __assign({ className: "flex right confirmation-dialog__button-group" }, { children: children })));
15083
+ };
16666
15084
  ConfirmationDialog.Icon = Icon;
16667
15085
  ConfirmationDialog.Body = Body;
16668
15086
  ConfirmationDialog.ButtonGroup = ButtonGroup;
@@ -16684,15 +15102,13 @@ var DeleteDialog = function (props) {
16684
15102
  };
16685
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 || '')) }))] })) })] })));
16686
15104
  };
16687
- function DeleteDialogDescription(props) {
16688
- return jsxRuntime.jsx(jsxRuntime.Fragment, { children: props.children });
16689
- }
15105
+ var DeleteDialogDescription = function (props) { return jsxRuntime.jsx(jsxRuntime.Fragment, { children: props.children }); };
16690
15106
  DeleteDialog.Description = DeleteDialogDescription;
16691
15107
 
16692
- //TODO: may not need context
15108
+ // TODO: may not need context
16693
15109
  var DialogFormContext = React.createContext({ title: '', isLoading: false, close: function (event) { }, onSave: function (event) { } });
16694
15110
  var DialogForm = /** @class */ (function (_super) {
16695
- __extends$1(DialogForm, _super);
15111
+ __extends(DialogForm, _super);
16696
15112
  function DialogForm(props) {
16697
15113
  var _this = _super.call(this, props) || this;
16698
15114
  _this.escFunction = _this.escFunction.bind(_this);
@@ -16716,27 +15132,23 @@ var DialogForm = /** @class */ (function (_super) {
16716
15132
  isLoading: this.props.isLoading,
16717
15133
  close: this.props.close,
16718
15134
  onSave: this.props.onSave,
16719
- } }, { 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) {
16720
- return (jsxRuntime.jsx("form", __assign({ noValidate: true, onSubmit: function (e) {
16721
- e.preventDefault();
16722
- if (!context.isLoading) {
16723
- context.onSave(e);
16724
- }
16725
- } }, { children: _this.props.children })));
16726
- } })] })) })) })));
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 }))); } })] })) })) })));
16727
15141
  };
16728
15142
  return DialogForm;
16729
15143
  }(React.Component));
16730
15144
  var DialogFormSubmit = /** @class */ (function (_super) {
16731
- __extends$1(DialogFormSubmit, _super);
15145
+ __extends(DialogFormSubmit, _super);
16732
15146
  function DialogFormSubmit() {
16733
15147
  return _super !== null && _super.apply(this, arguments) || this;
16734
15148
  }
16735
15149
  DialogFormSubmit.prototype.render = function () {
16736
15150
  var _this = this;
16737
- return (jsxRuntime.jsx(DialogFormContext.Consumer, { children: function (context) {
16738
- 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 })));
16739
- } }));
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 }))); } }));
16740
15152
  };
16741
15153
  return DialogFormSubmit;
16742
15154
  }(React.Component));
@@ -19586,14 +17998,14 @@ function _objectWithoutProperties(source, excluded) {
19586
17998
  return target;
19587
17999
  }
19588
18000
 
19589
- function _typeof(obj) {
18001
+ function _typeof(o) {
19590
18002
  "@babel/helpers - typeof";
19591
18003
 
19592
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
19593
- return typeof obj;
19594
- } : function (obj) {
19595
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
19596
- }, _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);
19597
18009
  }
19598
18010
 
19599
18011
  function _classCallCheck(instance, Constructor) {
@@ -19602,20 +18014,20 @@ function _classCallCheck(instance, Constructor) {
19602
18014
  }
19603
18015
  }
19604
18016
 
19605
- function _toPrimitive(input, hint) {
19606
- if (_typeof(input) !== "object" || input === null) return input;
19607
- var prim = input[Symbol.toPrimitive];
19608
- if (prim !== undefined) {
19609
- var res = prim.call(input, hint || "default");
19610
- 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;
19611
18023
  throw new TypeError("@@toPrimitive must return a primitive value.");
19612
18024
  }
19613
- return (hint === "string" ? String : Number)(input);
18025
+ return ("string" === r ? String : Number)(t);
19614
18026
  }
19615
18027
 
19616
- function _toPropertyKey(arg) {
19617
- var key = _toPrimitive(arg, "string");
19618
- 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);
19619
18031
  }
19620
18032
 
19621
18033
  function _defineProperties(target, props) {
@@ -19624,7 +18036,7 @@ function _defineProperties(target, props) {
19624
18036
  descriptor.enumerable = descriptor.enumerable || false;
19625
18037
  descriptor.configurable = true;
19626
18038
  if ("value" in descriptor) descriptor.writable = true;
19627
- Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
18039
+ Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
19628
18040
  }
19629
18041
  }
19630
18042
  function _createClass(Constructor, protoProps, staticProps) {
@@ -19662,7 +18074,7 @@ function _inherits(subClass, superClass) {
19662
18074
  }
19663
18075
 
19664
18076
  function _defineProperty$1(obj, key, value) {
19665
- key = _toPropertyKey(key);
18077
+ key = toPropertyKey(key);
19666
18078
  if (key in obj) {
19667
18079
  Object.defineProperty(obj, key, {
19668
18080
  value: value,
@@ -21220,31 +19632,31 @@ function _arrayWithHoles(arr) {
21220
19632
  if (Array.isArray(arr)) return arr;
21221
19633
  }
21222
19634
 
21223
- function _iterableToArrayLimit(arr, i) {
21224
- var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
21225
- if (null != _i) {
21226
- var _s,
21227
- _e,
21228
- _x,
21229
- _r,
21230
- _arr = [],
21231
- _n = !0,
21232
- _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;
21233
19645
  try {
21234
- if (_x = (_i = _i.call(arr)).next, 0 === i) {
21235
- if (Object(_i) !== _i) return;
21236
- _n = !1;
21237
- } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
21238
- } catch (err) {
21239
- _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;
21240
19652
  } finally {
21241
19653
  try {
21242
- 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;
21243
19655
  } finally {
21244
- if (_d) throw _e;
19656
+ if (o) throw n;
21245
19657
  }
21246
19658
  }
21247
- return _arr;
19659
+ return a;
21248
19660
  }
21249
19661
  }
21250
19662
 
@@ -24235,35 +22647,31 @@ var MultiValueChipContainer = function (_a) {
24235
22647
  var multiSelectStyles = {
24236
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' })); },
24237
22649
  menu: function (base, state) { return (__assign({}, base)); },
24238
- option: function (base, state) {
24239
- return __assign(__assign({}, base), { backgroundColor: state.isFocused ? 'var(--N100)' : 'white', color: 'var(--N900)', padding: '8px 12px' });
24240
- },
22650
+ option: function (base, state) { return (__assign(__assign({}, base), { backgroundColor: state.isFocused ? 'var(--N100)' : 'white', color: 'var(--N900)', padding: '8px 12px' })); },
24241
22651
  container: function (base, state) { return (__assign(__assign({}, base), { cursor: state.isDisabled ? 'not-allowed' : 'pointer' })); },
24242
22652
  valueContainer: function (base, state) { return (__assign(__assign({}, base), { color: state.selectProps.menuIsOpen ? 'var(--N500)' : base.color })); },
24243
22653
  };
24244
- var CustomSelect = function (props) {
24245
- return jsxRuntime.jsx(ReactSelect, __assign({}, props));
24246
- };
22654
+ var CustomSelect = function (props) { return jsxRuntime.jsx(ReactSelect, __assign({}, props)); };
24247
22655
 
24248
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}";
24249
22657
  styleInject(css_248z$4);
24250
22658
 
24251
- function InfoColourBar(_a) {
22659
+ var InfoColourBar = function (_a) {
24252
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;
24253
22661
  var renderLink = function () {
24254
22662
  if (!linkText) {
24255
22663
  return null;
24256
22664
  }
24257
- else if (redirectLink) {
22665
+ if (redirectLink) {
24258
22666
  if (internalLink) {
24259
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 })));
24260
22668
  }
24261
- 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 })));
24262
22670
  }
24263
22671
  return (linkOnClick && (jsxRuntime.jsx("div", __assign({ onClick: linkOnClick, className: "cursor dc__link dc__underline-onhover", "data-testid": "info-bar-linkText" }, { children: linkText }))));
24264
22672
  };
24265
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()] })) })));
24266
- }
22674
+ };
24267
22675
 
24268
22676
  var getTeamListMin = function () {
24269
22677
  // ignore active field
@@ -24273,9 +22681,7 @@ var getTeamListMin = function () {
24273
22681
  if (response && response.result && Array.isArray(response.result)) {
24274
22682
  list = response.result;
24275
22683
  }
24276
- list = list.sort(function (a, b) {
24277
- return sortCallback('name', a, b);
24278
- });
22684
+ list = list.sort(function (a, b) { return sortCallback('name', a, b); });
24279
22685
  return {
24280
22686
  code: response.code,
24281
22687
  status: response.status,
@@ -24301,9 +22707,7 @@ function setImageTags(request, pipelineId, artifactId) {
24301
22707
  return post("".concat(ROUTES.IMAGE_TAGGING, "/").concat(pipelineId, "/").concat(artifactId), request);
24302
22708
  }
24303
22709
  var processURL = function (url, params) {
24304
- var validParams = Object.keys(params).filter(function (key) {
24305
- return params[key] != null;
24306
- });
22710
+ var validParams = Object.keys(params).filter(function (key) { return params[key] != null; });
24307
22711
  if (!validParams.length) {
24308
22712
  return url;
24309
22713
  }
@@ -24365,24 +22769,22 @@ var cdMaterialListModal = function (artifacts, offset, artifactId, artifactStatu
24365
22769
  // It is going to be null but required in type so can't remove
24366
22770
  lastExecution: material.lastExecution,
24367
22771
  materialInfo: material.material_info
24368
- ? material.material_info.map(function (mat) {
24369
- return {
24370
- modifiedTime: mat.modifiedTime
24371
- ? moment(mat.modifiedTime).format('ddd, DD MMM YYYY, hh:mm A')
24372
- : '',
24373
- commitLink: createGitCommitUrl(mat.url, mat.revision),
24374
- author: mat.author || '',
24375
- message: mat.message || '',
24376
- revision: mat.revision || '',
24377
- tag: mat.tag || '',
24378
- webhookData: mat.webhookData || '',
24379
- url: mat.url || '',
24380
- branch: (material.ciConfigureSourceType === SourceTypeMap.WEBHOOK
24381
- ? material.ciConfigureSourceValue
24382
- : mat.branch) || '',
24383
- type: material.ciConfigureSourceType || '',
24384
- };
24385
- })
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
+ }); })
24386
22788
  : [],
24387
22789
  filterState: filterState,
24388
22790
  appliedFiltersTimestamp: (_b = material.appliedFiltersTimestamp) !== null && _b !== void 0 ? _b : '',
@@ -24441,9 +22843,7 @@ var processCDMaterialServiceResponse = function (cdMaterialsResult, stage, offse
24441
22843
  var metaInfo = processCDMaterialsMetaInfo(cdMaterialsResult);
24442
22844
  // TODO: On update of service would remove from here
24443
22845
  var filteredMaterials = filter && filter === exports.CDMaterialFilterQuery.RESOURCE
24444
- ? materials.filter(function (material) {
24445
- return material.filterState === exports.FilterStates.ALLOWED;
24446
- })
22846
+ ? materials.filter(function (material) { return material.filterState === exports.FilterStates.ALLOWED; })
24447
22847
  : materials;
24448
22848
  return __assign(__assign({ materials: filteredMaterials }, approvalInfo), metaInfo);
24449
22849
  };
@@ -24474,27 +22874,27 @@ function extractImage(image) {
24474
22874
  }
24475
22875
  function createGitCommitUrl(url, revision) {
24476
22876
  if (!url || !revision) {
24477
- return "NA";
22877
+ return 'NA';
24478
22878
  }
24479
- if (url.indexOf("gitlab") > 0 || url.indexOf("github") > 0 || url.indexOf("azure") > 0) {
24480
- var urlpart = url.split("@");
22879
+ if (url.indexOf('gitlab') > 0 || url.indexOf('github') > 0 || url.indexOf('azure') > 0) {
22880
+ var urlpart = url.split('@');
24481
22881
  if (urlpart.length > 1) {
24482
- return "https://" + urlpart[1].split(".git")[0] + "/commit/" + revision;
22882
+ return "https://".concat(urlpart[1].split('.git')[0], "/commit/").concat(revision);
24483
22883
  }
24484
22884
  if (urlpart.length == 1) {
24485
- return urlpart[0].split(".git")[0] + "/commit/" + revision;
22885
+ return "".concat(urlpart[0].split('.git')[0], "/commit/").concat(revision);
24486
22886
  }
24487
22887
  }
24488
- if (url.indexOf("bitbucket") > 0) {
24489
- var urlpart = url.split("@");
22888
+ if (url.indexOf('bitbucket') > 0) {
22889
+ var urlpart = url.split('@');
24490
22890
  if (urlpart.length > 1) {
24491
- return "https://" + urlpart[1].split(".git")[0] + "/commits/" + revision;
22891
+ return "https://".concat(urlpart[1].split('.git')[0], "/commits/").concat(revision);
24492
22892
  }
24493
22893
  if (urlpart.length == 1) {
24494
- return urlpart[0].split(".git")[0] + "/commits/" + revision;
22894
+ return "".concat(urlpart[0].split('.git')[0], "/commits/").concat(revision);
24495
22895
  }
24496
22896
  }
24497
- return "NA";
22897
+ return 'NA';
24498
22898
  }
24499
22899
 
24500
22900
  /*
@@ -24507,14 +22907,14 @@ Valid States of Checkbox:
24507
22907
  6. disabled: false, checked: true, value: CHECKED
24508
22908
  */
24509
22909
  var Checkbox$1 = /** @class */ (function (_super) {
24510
- __extends$1(Checkbox, _super);
22910
+ __extends(Checkbox, _super);
24511
22911
  function Checkbox() {
24512
22912
  return _super !== null && _super.apply(this, arguments) || this;
24513
22913
  }
24514
22914
  Checkbox.prototype.render = function () {
24515
22915
  var _a;
24516
22916
  var rootClassName = "".concat(this.props.rootClassName ? this.props.rootClassName : '');
24517
- 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 }))] })));
24518
22918
  };
24519
22919
  return Checkbox;
24520
22920
  }(React.Component));
@@ -24555,23 +22955,21 @@ function ScanVulnerabilitiesTable(_a) {
24555
22955
  window.open("https://cve.mitre.org/cgi-bin/cvename.cgi?name=".concat(vulnerability.name), '_blank');
24556
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() }))] })));
24557
22957
  };
24558
- 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) {
24559
- return renderRow(vulnerability);
24560
- })] }) })));
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); })] }) })));
24561
22959
  }
24562
22960
 
24563
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}";
24564
22962
  styleInject(css_248z$1);
24565
22963
 
24566
- var RadioContext = React.createContext(null);
22964
+ var RadioContext = React__namespace.createContext(null);
24567
22965
  function useRadioContext() {
24568
- var context = React.useContext(RadioContext);
22966
+ var context = React__namespace.useContext(RadioContext);
24569
22967
  if (!context) {
24570
22968
  throw new Error("Radio compound components cannot be rendered outside the Toggle component");
24571
22969
  }
24572
22970
  return context;
24573
22971
  }
24574
- var RadioGroup = React.memo(function RadioGroup(_a) {
22972
+ var RadioGroup = React__namespace.memo(function (_a) {
24575
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;
24576
22974
  var _d = __read(React.useState(null), 2), selected = _d[0], select = _d[1];
24577
22975
  React.useEffect(function () {
@@ -24581,7 +22979,7 @@ var RadioGroup = React.memo(function RadioGroup(_a) {
24581
22979
  }, [initialTab]);
24582
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 })) })));
24583
22981
  });
24584
- function Radio(_a) {
22982
+ var Radio = function (_a) {
24585
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;
24586
22984
  var _j = useRadioContext(), name = _j.name, selected = _j.selected, select = _j.select, disabled = _j.disabled, onChange = _j.onChange;
24587
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) {
@@ -24591,7 +22989,7 @@ function Radio(_a) {
24591
22989
  }
24592
22990
  onChange(e);
24593
22991
  }, disabled: isDisabled || disabled }), jsxRuntime.jsx("span", __assign({ className: "radio__item-label", "data-testid": dataTestId }, { children: children }))] })) })));
24594
- }
22992
+ };
24595
22993
  RadioGroup.Radio = Radio;
24596
22994
 
24597
22995
  exports.RefVariableType = void 0;
@@ -24677,7 +23075,7 @@ var SvgIcInfoFilled = function SvgIcInfoFilled(props) {
24677
23075
  };
24678
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";
24679
23077
 
24680
- function DeleteComponent(_a) {
23078
+ var DeleteComponent = function (_a) {
24681
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;
24682
23080
  var _f = __read(React.useState(false), 2), showCannotDeleteDialogModal = _f[0], setCannotDeleteDialogModal = _f[1];
24683
23081
  var push = reactRouterDom.useHistory().push;
@@ -24727,14 +23125,10 @@ function DeleteComponent(_a) {
24727
23125
  closeCustomComponent();
24728
23126
  }
24729
23127
  };
24730
- var renderCannotDeleteDialogModal = function () {
24731
- 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" })) })] })));
24732
- };
24733
- var renderDeleteDialog = function () {
24734
- 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, "? "] }) }) })));
24735
- };
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, "? "] }) }) }))); };
24736
23130
  return (jsxRuntime.jsxs("div", { children: [!showCannotDeleteDialogModal && renderDeleteDialog(), showCannotDeleteDialogModal && renderCannotDeleteDialogModal()] }));
24737
- }
23131
+ };
24738
23132
 
24739
23133
  var _path$5;
24740
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); }
@@ -24858,13 +23252,13 @@ var ImageTagsContainer = function (_a) {
24858
23252
  var
24859
23253
  // Setting it to zero in case of external pipeline
24860
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;
24861
- 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];
24862
23256
  var _c = __read(React.useState(imageComment ? imageComment.comment : ''), 2), initialDescription = _c[0], setInitialDescription = _c[1];
24863
- 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];
24864
23258
  var _e = __read(React.useState(imageComment ? imageComment.comment : ''), 2), newDescription = _e[0], setNewDescription = _e[1];
24865
23259
  var _f = __read(React.useState(false), 2), isEditing = _f[0], setIsEditing = _f[1];
24866
23260
  var _g = __read(React.useState(false), 2), showTagsWarning = _g[0], setShowTagsWarning = _g[1];
24867
- 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];
24868
23262
  var _j = __read(React.useState(''), 2), tagErrorMessage = _j[0], setTagErrorMessage = _j[1];
24869
23263
  var _k = __read(React.useState([]), 2), createTags = _k[0], setCreateTags = _k[1];
24870
23264
  var _l = __read(React.useState([]), 2), softDeleteTags = _l[0], setSoftDeleteTags = _l[1];
@@ -24876,14 +23270,14 @@ var ImageTagsContainer = function (_a) {
24876
23270
  reInitState();
24877
23271
  }, [imageReleaseTags, imageComment, tagsEditable]);
24878
23272
  React.useEffect(function () {
24879
- setExistingTags(appReleaseTagNames ? appReleaseTagNames : []);
23273
+ setExistingTags(appReleaseTagNames || []);
24880
23274
  }, [appReleaseTagNames]);
24881
23275
  var reInitState = function () {
24882
23276
  if (forceReInit || !isEditing) {
24883
- setInitialTags(imageReleaseTags ? imageReleaseTags : []);
23277
+ setInitialTags(imageReleaseTags || []);
24884
23278
  setInitialDescription(imageComment ? imageComment.comment : '');
24885
23279
  setNewDescription(imageComment ? imageComment.comment : '');
24886
- setDisplayedTags(imageReleaseTags ? imageReleaseTags : []);
23280
+ setDisplayedTags(imageReleaseTags || []);
24887
23281
  setIsEditing(false);
24888
23282
  }
24889
23283
  };
@@ -25066,12 +23460,8 @@ var ImageTagsContainer = function (_a) {
25066
23460
  return [2 /*return*/];
25067
23461
  });
25068
23462
  }); };
25069
- var renderInfoCard = function () {
25070
- 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" }) })) })));
25071
- };
25072
- var getBuildContextAdditionalContent = function () {
25073
- 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." })] }))] })));
25074
- };
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." })] }))] }))); };
25075
23465
  var creatableRef = React.useRef(null);
25076
23466
  if (newDescription === '' && displayedTags.length === 0 && !isEditing) {
25077
23467
  return tagsEditable ? (jsxRuntime.jsx("div", __assign({ className: "bcn-0 mt-8 add-image-button" }, { children: jsxRuntime.jsx(AddImageButton, { handleEditClick: handleEditClick }) }))) : (jsxRuntime.jsx("div", {}));
@@ -25115,7 +23505,7 @@ var ImageTagsContainer = function (_a) {
25115
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) {
25116
23506
  stopPropagation(e);
25117
23507
  onClickSave();
25118
- }, 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) {
25119
23509
  stopPropagation(e);
25120
23510
  handleTagSoftDelete(index);
25121
23511
  }, onHardDeleteClick: function (e) {
@@ -25135,12 +23525,10 @@ var ImageTagButton = function (_a) {
25135
23525
  if (duplicateTag) {
25136
23526
  return 'cr-5 bcr-1 er-2';
25137
23527
  }
25138
- else if (isSoftDeleted) {
23528
+ if (isSoftDeleted) {
25139
23529
  return 'cy-7 bcy-1 dc__strike-through ey-2';
25140
23530
  }
25141
- else {
25142
- return 'cn-9';
25143
- }
23531
+ return 'cn-9';
25144
23532
  };
25145
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 }) })) }))] })));
25146
23534
  };
@@ -25183,7 +23571,7 @@ var ResizableTextarea = function (_a) {
25183
23571
  if (maxHeight && nextHeight > maxHeight) {
25184
23572
  nextHeight = maxHeight;
25185
23573
  }
25186
- _textRef.current.style.height = nextHeight + 2 + 'px';
23574
+ _textRef.current.style.height = "".concat(nextHeight + 2, "px");
25187
23575
  }, 500, [text]);
25188
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)));
25189
23577
  };
@@ -25262,7 +23650,7 @@ function DebouncedSearch(_a) {
25262
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
25263
23651
  function Grid(_a) {
25264
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;
25265
- var containerStyles = container ? { gap: spacing + 'px' } : {};
23653
+ var containerStyles = container ? { gap: "".concat(spacing, "px") } : {};
25266
23654
  if (item) {
25267
23655
  var getColumnWidth = function () {
25268
23656
  var percentageWidth = (xs / 12) * 100;
@@ -25416,15 +23804,13 @@ var triggerStatus = function (triggerDetailStatus) {
25416
23804
  if (triggerStatus === TIMELINE_STATUS.ABORTED || triggerStatus === TIMELINE_STATUS.DEGRADED) {
25417
23805
  return 'Failed';
25418
23806
  }
25419
- else if (triggerStatus === TIMELINE_STATUS.HEALTHY) {
23807
+ if (triggerStatus === TIMELINE_STATUS.HEALTHY) {
25420
23808
  return 'Succeeded';
25421
23809
  }
25422
- else if (triggerStatus === TIMELINE_STATUS.INPROGRESS) {
23810
+ if (triggerStatus === TIMELINE_STATUS.INPROGRESS) {
25423
23811
  return 'Inprogress';
25424
23812
  }
25425
- else {
25426
- return triggerDetailStatus;
25427
- }
23813
+ return triggerDetailStatus;
25428
23814
  };
25429
23815
 
25430
23816
  function AppStatus(_a) {
@@ -25443,12 +23829,10 @@ function AppStatus(_a) {
25443
23829
  if (iconClass) {
25444
23830
  return jsxRuntime.jsx("span", { className: "dc__app-summary__icon icon-dim-16 ".concat(iconClass, " ").concat(iconClass, "--node") });
25445
23831
  }
25446
- else if (isVirtualEnv) {
23832
+ if (isVirtualEnv) {
25447
23833
  return (jsxRuntime.jsx("span", { className: "dc__app-summary__icon icon-dim-16 ".concat(StatusConstants.NOT_DEPLOYED.lowerCase, " ").concat(StatusConstants.NOT_DEPLOYED.lowerCase, "--node") }));
25448
23834
  }
25449
- else {
25450
- 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" }) })));
25451
- }
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" }) })));
25452
23836
  };
25453
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 }))] })));
25454
23838
  }
@@ -25536,9 +23920,7 @@ var FieldErrorTemplate = function (_a) {
25536
23920
  var id = utils.errorId(idSchema);
25537
23921
  return (errors.length > 0 && (jsxRuntime.jsx("span", __assign({ id: id }, { children: errors
25538
23922
  .filter(function (elem) { return !!elem; })
25539
- .map(function (error, index) {
25540
- return (jsxRuntime.jsxs("span", __assign({ className: "form__error" }, { children: [jsxRuntime.jsx(SvgIcWarning, { className: "form__icon form__icon--error" }), error] }), index));
25541
- }) }))));
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)); }) }))));
25542
23924
  };
25543
23925
 
25544
23926
  var Field = function (_a) {
@@ -25551,9 +23933,7 @@ var Field = function (_a) {
25551
23933
  if (properties.length) {
25552
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] }));
25553
23935
  }
25554
- else {
25555
- return (jsxRuntime.jsx(FieldRowWithLabel, __assign({ label: title, required: required, showLabel: true, id: idSchema.$id }, { children: ActionButton })));
25556
- }
23936
+ return (jsxRuntime.jsx(FieldRowWithLabel, __assign({ label: title, required: required, showLabel: true, id: idSchema.$id }, { children: ActionButton })));
25557
23937
  }
25558
23938
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [Properties, ActionButton] }));
25559
23939
  };
@@ -28043,9 +26423,7 @@ var translateString = function (stringToTranslate, params) {
28043
26423
  };
28044
26424
  var getCommonSelectStyle = function (styleOverrides) {
28045
26425
  if (styleOverrides === void 0) { styleOverrides = {}; }
28046
- 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) {
28047
- return __assign(__assign({}, base), { border: "1px solid var(--N200)", borderRadius: "4px", background: 'white', height: '28px', marginRight: '8px', padding: '2px', fontSize: '12px' });
28048
- } }, 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));
28049
26427
  };
28050
26428
  /**
28051
26429
  * Returns the redirection props for a url
@@ -28204,18 +26582,18 @@ var SvgIcRotateDevtron = function SvgIcRotateDevtron(props) {
28204
26582
  }))));
28205
26583
  };
28206
26584
 
28207
- function DevtronProgressing(_a) {
26585
+ var DevtronProgressing = function (_a) {
28208
26586
  var classes = _a.classes, parentClasses = _a.parentClasses;
28209
- return (jsxRuntime.jsx("div", __assign({ className: parentClasses ? parentClasses : '' }, { children: jsxRuntime.jsx(SvgIcRotateDevtron, { className: classes ? classes : '' }) })));
28210
- }
26587
+ return (jsxRuntime.jsx("div", __assign({ className: parentClasses || '' }, { children: jsxRuntime.jsx(SvgIcRotateDevtron, { className: classes || '' }) })));
26588
+ };
28211
26589
 
28212
- function TooltipContent(_a) {
26590
+ var TooltipContent = function (_a) {
28213
26591
  var tooltipContent = _a.tooltipContent;
28214
26592
  if (tooltipContent) {
28215
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] })));
28216
26594
  }
28217
26595
  return jsxRuntime.jsx("div", __assign({ className: "dc__white-space-pre-wrap" }, { children: "Click to add here" }));
28218
- }
26596
+ };
28219
26597
  function AddCDButton(_a) {
28220
26598
  var position = _a.position, addCDButtons = _a.addCDButtons, endNode = _a.endNode, startNode = _a.startNode, handleAddCD = _a.handleAddCD, tooltipContent = _a.tooltipContent;
28221
26599
  var referenceNode = position === exports.AddCDPositions.RIGHT ? endNode : startNode;
@@ -28251,7 +26629,7 @@ var handleAddCD = function (_a) {
28251
26629
  handleCDSelect(workflowId, ciPipelineId, pipelineType, startNode.id, isWebhookCD, endNodeId, addPipelineType);
28252
26630
  };
28253
26631
 
28254
- function CustomInput(_a) {
26632
+ var CustomInput = function (_a) {
28255
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;
28256
26634
  function handleError(error) {
28257
26635
  if (!Array.isArray(error)) {
@@ -28261,7 +26639,7 @@ function CustomInput(_a) {
28261
26639
  }
28262
26640
  var onBlur = function (event) {
28263
26641
  var _a;
28264
- //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
28265
26643
  if (!noTrim) {
28266
26644
  event.stopPropagation();
28267
26645
  event.target.value = (_a = event.target.value) === null || _a === void 0 ? void 0 : _a.trim();
@@ -28271,41 +26649,33 @@ function CustomInput(_a) {
28271
26649
  handleOnBlur(event);
28272
26650
  }
28273
26651
  };
28274
- var renderFormErrorWithIcon = function (error) {
28275
- return (jsxRuntime.jsxs("div", __assign({ className: "form__error" }, { children: [jsxRuntime.jsx(SvgIcWarning, { className: "form__icon form__icon--error" }), error, typeof additionalErrorInfo === 'function' && additionalErrorInfo()] }), error));
28276
- };
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)); };
28277
26653
  var getInputError = function () {
28278
26654
  if (!(error === null || error === void 0 ? void 0 : error.length)) {
28279
26655
  return null;
28280
26656
  }
28281
- else {
28282
- if (typeof error === 'object') {
28283
- return handleError(error).map(function (err) { return renderFormErrorWithIcon(err); });
28284
- }
28285
- return renderFormErrorWithIcon(error);
26657
+ if (typeof error === 'object') {
26658
+ return handleError(error).map(function (err) { return renderFormErrorWithIcon(err); });
28286
26659
  }
26660
+ return renderFormErrorWithIcon(error);
28287
26661
  };
28288
26662
  var renderInputLabelConditionally = function () {
28289
26663
  if (typeof label === 'string') {
28290
26664
  return jsxRuntime.jsx("span", __assign({ className: "".concat(isRequiredField ? 'dc__required-field' : '') }, { children: label }));
28291
26665
  }
28292
- else {
28293
- return label;
28294
- }
26666
+ return label;
28295
26667
  };
28296
26668
  var renderInputLabel = function () {
28297
26669
  if (!label) {
28298
26670
  return null;
28299
26671
  }
28300
- else {
28301
- return (jsxRuntime.jsx("label", __assign({ className: "form__label ".concat(labelClassName), "data-testid": "label-".concat(dataTestid) }, { children: renderInputLabelConditionally() })));
28302
- }
26672
+ return (jsxRuntime.jsx("label", __assign({ className: "form__label ".concat(labelClassName), "data-testid": "label-".concat(dataTestid) }, { children: renderInputLabelConditionally() })));
28303
26673
  };
28304
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) {
28305
26675
  e.persist();
28306
26676
  onChange(e);
28307
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 }))] })))] })));
28308
- }
26678
+ };
28309
26679
 
28310
26680
  exports.AddCDButton = AddCDButton;
28311
26681
  exports.AppStatus = AppStatus;
@@ -28392,12 +26762,10 @@ exports.getAlphabetIcon = getAlphabetIcon;
28392
26762
  exports.getCookie = getCookie;
28393
26763
  exports.getEmptyArrayOfLength = getEmptyArrayOfLength;
28394
26764
  exports.getInferredTypeFromValueType = getInferredTypeFromValueType;
28395
- exports.getLockedJSON = getLockedJSON;
28396
26765
  exports.getLoginInfo = getLoginInfo;
28397
26766
  exports.getRandomColor = getRandomColor;
28398
26767
  exports.getRedirectionProps = getRedirectionProps;
28399
26768
  exports.getTeamListMin = getTeamListMin;
28400
- exports.getUnlockedJSON = getUnlockedJSON;
28401
26769
  exports.getUrlWithSearchParams = getUrlWithSearchParams;
28402
26770
  exports.getUserRole = getUserRole;
28403
26771
  exports.handleAddCD = handleAddCD;