@devtron-labs/devtron-fe-common-lib 0.0.40 → 0.0.41-beta-1

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.
@@ -12,4 +12,4 @@ import { DebouncedSearchProps } from './Types';
12
12
  * @param clearSearch - (Optional) To clear the search text
13
13
  * @param showClearIcon - (Optional) To show the clear icon default value is true
14
14
  */
15
- export default function DebouncedSearch({ onSearch, Icon, children, placeholder, containerClass, iconClass, inputClass, debounceTimeout, clearSearch, showClearIcon, }: DebouncedSearchProps): JSX.Element;
15
+ export default function DebouncedSearch({ onSearch, Icon, children, placeholder, containerClass, iconClass, inputClass, debounceTimeout, clearSearch, showClearIcon, autoFocus, }: DebouncedSearchProps): JSX.Element;
@@ -10,4 +10,5 @@ export interface DebouncedSearchProps {
10
10
  debounceTimeout?: number;
11
11
  clearSearch?: boolean;
12
12
  showClearIcon?: boolean;
13
+ autoFocus?: boolean;
13
14
  }
@@ -9,6 +9,7 @@ export interface DeleteDialogProps {
9
9
  apiCallInProgress?: boolean;
10
10
  dataTestId?: string;
11
11
  buttonPrimaryText?: string;
12
+ shouldStopPropagation?: boolean;
12
13
  }
13
14
  export interface ForceDeleteDialogType {
14
15
  onClickDelete: () => void;
@@ -231,6 +231,9 @@ export interface CDMaterialType {
231
231
  imageReleaseTags?: ReleaseTag[];
232
232
  artifactStatus?: string;
233
233
  filterState: FilterStates;
234
+ registryType?: string;
235
+ imagePath?: string;
236
+ registryName?: string;
234
237
  scanToolId?: number;
235
238
  appliedFiltersTimestamp?: string;
236
239
  appliedFilters?: FilterConditionsListType[];
@@ -281,6 +284,7 @@ export interface CommonNodeAttr {
281
284
  colorCode?: string;
282
285
  isExternalCI?: boolean;
283
286
  isLinkedCI?: boolean;
287
+ isLinkedCD?: boolean;
284
288
  isJobCI?: boolean;
285
289
  environmentName?: string;
286
290
  environmentId?: number;
package/dist/index.js CHANGED
@@ -15098,7 +15098,19 @@ ConfirmationDialog.ButtonGroup = ButtonGroup;
15098
15098
  var warn = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2248%22%20height%3D%2248%22%20viewBox%3D%220%200%2048%2048%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%200h48v48H0z%22%2F%3E%20%20%20%20%20%20%20%20%3Cg%20fill%3D%22%23FFEBEB%22%20stroke%3D%22%23F33E3E%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M7%2024h24v17a4%204%200%200%201-4%204H11a4%204%200%200%201-4-4V24z%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20stroke-linecap%3D%22round%22%20d%3D%22M19%2029.5v10M24%2029.5v10M14%2029.5v10%22%2F%3E%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%3Cpath%20stroke%3D%22%23F33E3E%22%20stroke-dasharray%3D%2217%2C3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M42%2010a3%203%200%200%201%200%206H31M38%2023a3%203%200%200%200-3-3h-8%22%2F%3E%20%20%20%20%20%20%20%20%3Cg%20stroke%3D%22%23F33E3E%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20transform%3D%22rotate%28-10%2036.29%20-8.86%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Crect%20width%3D%2230%22%20height%3D%225%22%20y%3D%226%22%20fill%3D%22%23FFEBEB%22%20rx%3D%221%22%2F%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M11%200h8a2%202%200%200%201%202%202v4H9V2a2%202%200%200%201%202-2z%22%2F%3E%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fg%3E%3C%2Fsvg%3E";
15099
15099
 
15100
15100
  var DeleteDialog = function (props) {
15101
- 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: props.closeDelete, 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: function () { return props.delete(); }, disabled: props.apiCallInProgress, "data-testid": "dialog-delete" }, { children: props.apiCallInProgress ? (jsxRuntime.jsx(Progressing, {})) : ("".concat(props.deletePrefix || '').concat(props.buttonPrimaryText ? props.buttonPrimaryText : 'Delete').concat(props.deletePostfix || '')) }))] })) })] })));
15101
+ var handleDelete = function (e) {
15102
+ if (props.shouldStopPropagation) {
15103
+ e.stopPropagation();
15104
+ }
15105
+ props.delete();
15106
+ };
15107
+ var handleModalClose = function (e) {
15108
+ if (props.shouldStopPropagation) {
15109
+ e.stopPropagation();
15110
+ }
15111
+ props.closeDelete();
15112
+ };
15113
+ 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, "data-testid": "dialog-delete" }, { children: props.apiCallInProgress ? (jsxRuntime.jsx(Progressing, {})) : ("".concat(props.deletePrefix || '').concat(props.buttonPrimaryText ? props.buttonPrimaryText : 'Delete').concat(props.deletePostfix || '')) }))] })) })] })));
15102
15114
  };
15103
15115
  function DeleteDialogDescription(props) {
15104
15116
  return jsxRuntime.jsx(jsxRuntime.Fragment, { children: props.children });
@@ -22740,7 +22752,7 @@ var cdMaterialListModal = function (artifacts, offset, artifactId, artifactStatu
22740
22752
  var startIndex = offset;
22741
22753
  var isImageMarked = false;
22742
22754
  var materials = artifacts.map(function (material, index) {
22743
- var _a, _b, _c, _d, _e, _f;
22755
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
22744
22756
  var artifactStatusValue = '';
22745
22757
  var filterState = (_a = material.filterState) !== null && _a !== void 0 ? _a : exports.FilterStates.ALLOWED;
22746
22758
  if (artifactId && artifactStatus && material.id === artifactId) {
@@ -22806,6 +22818,9 @@ var cdMaterialListModal = function (artifacts, offset, artifactId, artifactStatu
22806
22818
  appliedFiltersState: (_d = material.appliedFiltersState) !== null && _d !== void 0 ? _d : exports.FilterStates.ALLOWED,
22807
22819
  createdTime: (_e = material.createdTime) !== null && _e !== void 0 ? _e : '',
22808
22820
  dataSource: (_f = material.data_source) !== null && _f !== void 0 ? _f : '',
22821
+ registryType: (_g = material.registryType) !== null && _g !== void 0 ? _g : '',
22822
+ imagePath: (_h = material.image) !== null && _h !== void 0 ? _h : '',
22823
+ registryName: (_j = material.registryName) !== null && _j !== void 0 ? _j : '',
22809
22824
  };
22810
22825
  });
22811
22826
  return materials;
@@ -23635,8 +23650,8 @@ var SvgIcErrorCross = function SvgIcErrorCross(props) {
23635
23650
  * @param showClearIcon - (Optional) To show the clear icon default value is true
23636
23651
  */
23637
23652
  function DebouncedSearch(_a) {
23638
- var onSearch = _a.onSearch, Icon = _a.Icon, children = _a.children, placeholder = _a.placeholder, _b = _a.containerClass, containerClass = _b === void 0 ? '' : _b, _c = _a.iconClass, iconClass = _c === void 0 ? '' : _c, _d = _a.inputClass, inputClass = _d === void 0 ? '' : _d, _e = _a.debounceTimeout, debounceTimeout = _e === void 0 ? 500 : _e, clearSearch = _a.clearSearch, _f = _a.showClearIcon, showClearIcon = _f === void 0 ? true : _f;
23639
- var _g = __read(React.useState(''), 2), searchText = _g[0], setSearchText = _g[1];
23653
+ var onSearch = _a.onSearch, Icon = _a.Icon, children = _a.children, placeholder = _a.placeholder, _b = _a.containerClass, containerClass = _b === void 0 ? '' : _b, _c = _a.iconClass, iconClass = _c === void 0 ? '' : _c, _d = _a.inputClass, inputClass = _d === void 0 ? '' : _d, _e = _a.debounceTimeout, debounceTimeout = _e === void 0 ? 500 : _e, clearSearch = _a.clearSearch, _f = _a.showClearIcon, showClearIcon = _f === void 0 ? true : _f, _g = _a.autoFocus, autoFocus = _g === void 0 ? true : _g;
23654
+ var _h = __read(React.useState(''), 2), searchText = _h[0], setSearchText = _h[1];
23640
23655
  React.useEffect(function () {
23641
23656
  setSearchText('');
23642
23657
  }, [clearSearch]);
@@ -23646,8 +23661,8 @@ function DebouncedSearch(_a) {
23646
23661
  var handleClearSearch = function () {
23647
23662
  setSearchText('');
23648
23663
  };
23649
- useDebouncedEffect(function () { return onSearch(searchText); }, debounceTimeout, [searchText, onSearch]);
23650
- return (jsxRuntime.jsxs("div", __assign({ className: containerClass }, { children: [Icon && jsxRuntime.jsx(Icon, { className: iconClass }), jsxRuntime.jsx("input", { type: "text", className: inputClass, placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : 'Search', value: searchText, onChange: handleSearchTextChange, autoFocus: true, "data-testid": "debounced-search" }), showClearIcon && !!searchText && (jsxRuntime.jsx("button", __assign({ type: "button", className: "dc__outline-none-imp dc__no-border p-0 bc-n50 flex", onClick: handleClearSearch, "data-testid": "clear-search" }, { children: jsxRuntime.jsx(SvgIcErrorCross, { className: "icon-dim-20 icon-n6" }) }))), children] })));
23664
+ useDebouncedEffect(function () { return onSearch(searchText); }, debounceTimeout, [searchText]);
23665
+ return (jsxRuntime.jsxs("div", __assign({ className: containerClass }, { children: [Icon && jsxRuntime.jsx(Icon, { className: iconClass }), jsxRuntime.jsx("input", { type: "text", className: inputClass, placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : 'Search', value: searchText, onChange: handleSearchTextChange, autoFocus: autoFocus, "data-testid": "debounced-search" }), showClearIcon && !!searchText && (jsxRuntime.jsx("button", __assign({ type: "button", className: "dc__outline-none-imp dc__no-border p-0 bc-n50 flex", onClick: handleClearSearch, "data-testid": "clear-search" }, { children: jsxRuntime.jsx(SvgIcErrorCross, { className: "icon-dim-20 icon-n6" }) }))), children] })));
23651
23666
  }
23652
23667
 
23653
23668
  // 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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devtron-labs/devtron-fe-common-lib",
3
- "version": "0.0.40",
3
+ "version": "0.0.41-beta-1",
4
4
  "description": "Supporting common component library",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -162,6 +162,9 @@ const cdMaterialListModal = (artifacts: any[], offset: number, artifactId?: numb
162
162
  appliedFiltersState: material.appliedFiltersState ?? FilterStates.ALLOWED,
163
163
  createdTime: material.createdTime ?? '',
164
164
  dataSource: material.data_source ?? '',
165
+ registryType: material.registryType ?? '',
166
+ imagePath: material.image ?? '',
167
+ registryName: material.registryName ?? '',
165
168
  }
166
169
  })
167
170
  return materials
@@ -26,6 +26,7 @@ export default function DebouncedSearch({
26
26
  debounceTimeout = 500,
27
27
  clearSearch,
28
28
  showClearIcon = true,
29
+ autoFocus = true,
29
30
  }: DebouncedSearchProps) {
30
31
  const [searchText, setSearchText] = useState<string>('')
31
32
 
@@ -41,7 +42,7 @@ export default function DebouncedSearch({
41
42
  setSearchText('')
42
43
  }
43
44
 
44
- useDebouncedEffect(() => onSearch(searchText), debounceTimeout, [searchText, onSearch])
45
+ useDebouncedEffect(() => onSearch(searchText), debounceTimeout, [searchText])
45
46
 
46
47
  return (
47
48
  <div className={containerClass}>
@@ -53,7 +54,7 @@ export default function DebouncedSearch({
53
54
  placeholder={placeholder ?? 'Search'}
54
55
  value={searchText}
55
56
  onChange={handleSearchTextChange}
56
- autoFocus
57
+ autoFocus={autoFocus}
57
58
  data-testid="debounced-search"
58
59
  />
59
60
 
@@ -9,4 +9,5 @@ export interface DebouncedSearchProps {
9
9
  debounceTimeout?: number
10
10
  clearSearch?: boolean
11
11
  showClearIcon?: boolean
12
+ autoFocus?: boolean
12
13
  }
@@ -5,6 +5,22 @@ import ConfirmationDialog from './ConfirmationDialog'
5
5
  import { DeleteDialogProps } from './Types'
6
6
 
7
7
  export const DeleteDialog: React.FC<DeleteDialogProps> & { Description?: React.FC<any> } = function (props) {
8
+ const handleDelete = (e: React.MouseEvent) => {
9
+ if (props.shouldStopPropagation) {
10
+ e.stopPropagation()
11
+ }
12
+
13
+ props.delete()
14
+ }
15
+
16
+ const handleModalClose = (e: React.MouseEvent) => {
17
+ if (props.shouldStopPropagation) {
18
+ e.stopPropagation()
19
+ }
20
+
21
+ props.closeDelete()
22
+ }
23
+
8
24
  return (
9
25
  <ConfirmationDialog className="confirmation-dialog__body--w-400">
10
26
  <ConfirmationDialog.Icon src={warn} />
@@ -19,7 +35,7 @@ export const DeleteDialog: React.FC<DeleteDialogProps> & { Description?: React.F
19
35
  <button
20
36
  type="button"
21
37
  className="cta cancel cta-cd-delete-modal ml-16"
22
- onClick={props.closeDelete}
38
+ onClick={handleModalClose}
23
39
  disabled={props.apiCallInProgress}
24
40
  data-testid="dialog-cancel"
25
41
  >
@@ -28,7 +44,7 @@ export const DeleteDialog: React.FC<DeleteDialogProps> & { Description?: React.F
28
44
  <button
29
45
  type="button"
30
46
  className="cta delete cta-cd-delete-modal ml-16"
31
- onClick={() => props.delete()}
47
+ onClick={handleDelete}
32
48
  disabled={props.apiCallInProgress}
33
49
  data-testid="dialog-delete"
34
50
  >
@@ -10,6 +10,7 @@ export interface DeleteDialogProps {
10
10
  apiCallInProgress?: boolean
11
11
  dataTestId?: string
12
12
  buttonPrimaryText?: string
13
+ shouldStopPropagation?: boolean
13
14
  }
14
15
 
15
16
  export interface ForceDeleteDialogType {
@@ -256,6 +256,9 @@ export interface CDMaterialType {
256
256
  imageReleaseTags?: ReleaseTag[]
257
257
  artifactStatus?: string
258
258
  filterState: FilterStates
259
+ registryType?: string;
260
+ imagePath?: string
261
+ registryName?: string
259
262
  // Not even coming from API but required in CDMaterials for Security which makes its own api call but stores data in CDMaterials
260
263
  scanToolId?: number
261
264
  appliedFiltersTimestamp?: string
@@ -312,6 +315,7 @@ export interface CommonNodeAttr {
312
315
  colorCode?: string
313
316
  isExternalCI?: boolean
314
317
  isLinkedCI?: boolean
318
+ isLinkedCD?: boolean
315
319
  isJobCI?: boolean // used for Job type CI in Devtron Apps
316
320
  environmentName?: string //used for CDs
317
321
  environmentId?: number