pixel-react-excel-sheet 1.0.23 → 1.0.24

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 (62) hide show
  1. package/lib/components/Charts/LineChart/types.d.ts +1 -0
  2. package/lib/components/DownloadClient/type.d.ts +19 -27
  3. package/lib/components/MultiSelect/MultiSelect.d.ts +1 -1
  4. package/lib/components/MultiSelect/MultiSelectTypes.d.ts +1 -0
  5. package/lib/components/MultiSelect/dropdownTypes.d.ts +1 -0
  6. package/lib/components/PhoneInput/PhoneInput.d.ts +0 -1
  7. package/lib/components/PhoneInput/types.d.ts +6 -0
  8. package/lib/components/SequentialConnectingBranch/components/Branches/Branches.d.ts +1 -1
  9. package/lib/components/SequentialConnectingBranch/components/Branches/types.d.ts +4 -1
  10. package/lib/components/SequentialConnectingBranch/components/ConnectingBranches/ConnectingBranches.d.ts +1 -1
  11. package/lib/components/SequentialConnectingBranch/components/ConnectingBranches/types.d.ts +4 -1
  12. package/lib/components/SequentialConnectingBranch/types.d.ts +7 -1
  13. package/lib/index.d.ts +36 -29
  14. package/lib/index.esm.js +293 -188
  15. package/lib/index.esm.js.map +1 -1
  16. package/lib/index.js +293 -188
  17. package/lib/index.js.map +1 -1
  18. package/lib/utils/getSequentialPayload/types.d.ts +1 -0
  19. package/package.json +1 -1
  20. package/src/assets/Themes/BaseTheme.scss +1 -1
  21. package/src/assets/Themes/DarkTheme.scss +2 -0
  22. package/src/assets/icons/auto_save_icon.svg +4 -0
  23. package/src/components/Charts/LineChart/LineChart.stories.tsx +7 -3
  24. package/src/components/Charts/LineChart/LineChart.tsx +10 -1
  25. package/src/components/Charts/LineChart/types.ts +1 -0
  26. package/src/components/ConditionalDropdown/ConditionalDropdown.tsx +1 -1
  27. package/src/components/DownloadClient/DownloadClient.scss +51 -64
  28. package/src/components/DownloadClient/DownloadClient.stories.tsx +6 -6
  29. package/src/components/DownloadClient/DownloadClient.tsx +60 -51
  30. package/src/components/DownloadClient/type.ts +32 -40
  31. package/src/components/Excel/ExcelFile/ExcelFile.scss +46 -53
  32. package/src/components/Excel/ExcelFile/ExcelFile.tsx +7 -7
  33. package/src/components/Excel/ExcelFile/ExcelFileComponents/ColumnIndicator.tsx +4 -1
  34. package/src/components/Excel/ExcelFile/ExcelFileComponents/CornerIndicator.tsx +8 -7
  35. package/src/components/Excel/ExcelFile/ExcelFileComponents/RowIndicator.tsx +4 -1
  36. package/src/components/Excel/ExcelFile/ExcelFileComponents/Spreadsheet.scss +117 -106
  37. package/src/components/Excel/ExcelToolBar/ExcelToolBar.tsx +1 -2
  38. package/src/components/FileDropzone/FileDropzone.stories.tsx +5 -19
  39. package/src/components/FileDropzone/FileDropzone.tsx +24 -4
  40. package/src/components/Icon/iconList.ts +2 -0
  41. package/src/components/MachineInputField/MachineInputField.stories.tsx +5 -4
  42. package/src/components/MachineInputField/MachineInputField.tsx +12 -15
  43. package/src/components/MachineInputField/types.ts +1 -0
  44. package/src/components/MultiSelect/Dropdown.tsx +30 -4
  45. package/src/components/MultiSelect/MultiSelect.tsx +2 -0
  46. package/src/components/MultiSelect/MultiSelectTypes.ts +3 -1
  47. package/src/components/MultiSelect/dropdownTypes.ts +2 -0
  48. package/src/components/PhoneInput/PhoneInput.stories.tsx +16 -41
  49. package/src/components/PhoneInput/PhoneInput.tsx +10 -2
  50. package/src/components/PhoneInput/phoneInput.scss +898 -0
  51. package/src/components/PhoneInput/types.ts +6 -0
  52. package/src/components/SequentialConnectingBranch/SequentialConnectingBranch.stories.tsx +13 -2
  53. package/src/components/SequentialConnectingBranch/SequentialConnectingBranch.tsx +34 -19
  54. package/src/components/SequentialConnectingBranch/components/Branches/Branches.tsx +113 -33
  55. package/src/components/SequentialConnectingBranch/components/Branches/types.ts +7 -1
  56. package/src/components/SequentialConnectingBranch/components/ConnectingBranches/ConnectingBranches.tsx +6 -0
  57. package/src/components/SequentialConnectingBranch/components/ConnectingBranches/types.ts +7 -1
  58. package/src/components/SequentialConnectingBranch/types.ts +7 -5
  59. package/src/components/TableTree/TableTree.tsx +1 -3
  60. package/src/components/TableTree/data.ts +0 -45
  61. package/src/components/TableTree/types.ts +3 -3
  62. package/src/utils/getSequentialPayload/types.ts +1 -0
@@ -7,4 +7,10 @@ export interface PhoneInputProps {
7
7
  width?: string;
8
8
  placeholder?: string;
9
9
  isValid: any;
10
+ id: string;
11
+ international?: boolean;
12
+ dropdownStyle?: React.CSSProperties;
13
+ enableAreaCodeStretch?: boolean;
14
+ defaultCountry?: string;
15
+ disabled?: boolean;
10
16
  }
@@ -1,6 +1,7 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import SequentialConnectingBranch from './SequentialConnectingBranch';
3
3
  import { useState } from 'react';
4
+ import React from 'react';
4
5
 
5
6
  const meta: Meta<typeof SequentialConnectingBranch> = {
6
7
  title: 'Components/SequentialConnectingBranch',
@@ -44,9 +45,19 @@ export const Primary: Story = {
44
45
  onHandleSelect={(option) => {
45
46
  setSelectedMachine(option);
46
47
  }}
47
- onAddBrowserInstance={() => {
48
- setMachineInstances([...machineInstances, {}]);
48
+ onAddBrowserInstance={() => {}}
49
+ onUpdateAddBrowserInstance={() => {}}
50
+ onAddRunBrowserInstance={() => {}}
51
+ onDeleteMachineInstance={() => {}}
52
+ onDeleteBrowserInstance={() => {}}
53
+ dataSetValues={{
54
+ peVariableSetId: 'Test dev',
55
+ globalVariableSetId: 'Test dev',
56
+ testDataSetId: 'Test dev',
49
57
  }}
58
+ onUpdateDataSetList={() => {}}
59
+ machineColumnWidth={500}
60
+ machineColumnCount={3}
50
61
  />
51
62
  </>
52
63
  );
@@ -27,6 +27,9 @@ const SequentialConnectingBranch: FC<SequentialConnectingBranchProps> = ({
27
27
  peVariableSetId: '',
28
28
  },
29
29
  onUpdateAddBrowserInstance = () => {},
30
+ addInstanceLabel = 'Add Environment',
31
+ scriptType = 'Automation',
32
+ projectType = 'Web',
30
33
  }) => {
31
34
  const [selectedMachineInstance, setSelectedMachineInstance] = useState({});
32
35
  const selectButtonRef = useRef<HTMLButtonElement>(null);
@@ -38,7 +41,11 @@ const SequentialConnectingBranch: FC<SequentialConnectingBranchProps> = ({
38
41
  >([]);
39
42
 
40
43
  const isMachineInstances = checkEmpty(machineInstances);
41
- const isMachineSelected = checkEmpty(selectedMachine.value?.clientId);
44
+ let isMachineSelected = checkEmpty(selectedMachine.value?.clientId);
45
+
46
+ if (scriptType === 'Manual') {
47
+ isMachineSelected = checkEmpty(selectedMachine.value);
48
+ }
42
49
 
43
50
  const getMachineStatusColor = (machineStatus: string = '') => {
44
51
  if (machineStatus.toLowerCase().includes('inactive'))
@@ -57,6 +64,9 @@ const SequentialConnectingBranch: FC<SequentialConnectingBranchProps> = ({
57
64
  useEffect(() => {
58
65
  setMachineBranchInstances([...machineInstances, {}]);
59
66
  }, [machineInstances]);
67
+
68
+ const hideDataSet = scriptType.toLowerCase() !== 'manual';
69
+
60
70
  return (
61
71
  <div className="ff-sequential-connecting-branch-wrapper">
62
72
  <div className="ff-connecting-select-branch-wrapper">
@@ -119,25 +129,27 @@ const SequentialConnectingBranch: FC<SequentialConnectingBranchProps> = ({
119
129
  </div>
120
130
 
121
131
  <div className="ff-datalist-wrapper">
122
- <div
123
- id="ff-sequential-machine-datalist"
124
- onClick={() =>
125
- onUpdateDataSetList(
126
- 'ff-sequential-machine-datalist',
127
- dataSetValues
128
- )
129
- }
130
- >
131
- <Icon name="datalist_icon" className="ff-dataset-icon" />
132
- <Typography
133
- as="span"
134
- fontSize={12}
135
- color="var(--ff-connecting-branch-color)"
136
- className="ff-datalist-text"
132
+ {hideDataSet && (
133
+ <div
134
+ id="ff-sequential-machine-datalist"
135
+ onClick={() =>
136
+ onUpdateDataSetList(
137
+ 'ff-sequential-machine-datalist',
138
+ dataSetValues
139
+ )
140
+ }
137
141
  >
138
- Dataset List
139
- </Typography>
140
- </div>
142
+ <Icon name="datalist_icon" className="ff-dataset-icon" />
143
+ <Typography
144
+ as="span"
145
+ fontSize={12}
146
+ color="var(--ff-connecting-branch-color)"
147
+ className="ff-datalist-text"
148
+ >
149
+ Dataset List
150
+ </Typography>
151
+ </div>
152
+ )}
141
153
  <Icon
142
154
  name="delete"
143
155
  className="ff-run-delete-icon"
@@ -159,6 +171,9 @@ const SequentialConnectingBranch: FC<SequentialConnectingBranchProps> = ({
159
171
  onAddRunBrowser={onAddRunBrowserInstance}
160
172
  onUpdateDataSetList={onUpdateDataSetList}
161
173
  onUpdateAddBrowserInstance={onUpdateAddBrowserInstance}
174
+ addInstanceLabel={addInstanceLabel}
175
+ scriptType={scriptType}
176
+ projectType={projectType}
162
177
  />
163
178
  )}
164
179
  </div>
@@ -9,6 +9,7 @@ import Icon from '../../../Icon';
9
9
  import Typography from '../../../Typography';
10
10
  import Button from '../../../Button';
11
11
  import './Branches.scss';
12
+ import { MachineType } from '../../../MachineInputField/types';
12
13
 
13
14
  const Branches = ({
14
15
  machineInstances,
@@ -22,6 +23,9 @@ const Branches = ({
22
23
  onAddRunBrowser,
23
24
  onUpdateDataSetList,
24
25
  onUpdateAddBrowserInstance,
26
+ addInstanceLabel = '',
27
+ scriptType = '',
28
+ projectType = '',
25
29
  }: BranchesProps) => {
26
30
  const evenRow = rowIndex % 2 === 0;
27
31
  const lastMachineInstance = checkEmpty(
@@ -57,6 +61,78 @@ const Branches = ({
57
61
  }, 40px ${machineColumnWidth}px) 24px`;
58
62
  };
59
63
 
64
+ const getMachineLabelOptionList = (
65
+ type: string = '',
66
+ machineInstance: ExecutionContext | {}
67
+ ) => {
68
+ const {
69
+ executionEnv,
70
+ browserName,
71
+ browserVersion,
72
+ machineInfo: { osVersion, iconName },
73
+ deviceInfo,
74
+ } = machineInstance as ExecutionContext;
75
+ // Helper to handle device info safely
76
+ const getDeviceOption = (platform: string, defaultType: string = '', index = 0) =>
77
+ deviceInfo?.[index]?.platform?.toLowerCase().includes(platform ?? '')
78
+ ? defaultType
79
+ : undefined;
80
+
81
+ const getEnvironment = (environment: string = '') => {
82
+ if (environment.toLowerCase().includes('browserstack'))
83
+ return 'Browserstack';
84
+ if (environment.toLowerCase().includes('lambdatest')) return 'LambdaTest';
85
+ if (environment.toLowerCase().includes('saucelabs')) return 'SauceLabs';
86
+ return '';
87
+ };
88
+
89
+ // Base options
90
+ const baseOptions = [
91
+ {
92
+ label: executionEnv,
93
+ type: getEnvironment(executionEnv),
94
+ },
95
+ ];
96
+
97
+ // Web-specific options
98
+ const webOptions = [
99
+ {
100
+ label: osVersion,
101
+ type: iconName,
102
+ },
103
+ {
104
+ label: browserVersion,
105
+ type: browserName,
106
+ },
107
+ ];
108
+
109
+ // Mobile-specific options
110
+ const mobileOptions = [
111
+ {
112
+ label: deviceInfo?.[0]?.name,
113
+ type: getDeviceOption('android', 'android_icon', 0),
114
+ },
115
+ {
116
+ label: deviceInfo?.[1]?.name,
117
+ type: getDeviceOption('ios', 'mac_icon', 1),
118
+ },
119
+ ];
120
+
121
+ // Determine options based on the type
122
+ switch (type.toLowerCase()) {
123
+ case 'web':
124
+ return [...baseOptions, ...webOptions];
125
+ case 'web & mobile':
126
+ return [...baseOptions, ...webOptions, ...mobileOptions];
127
+ case 'mobile':
128
+ return [...baseOptions, ...mobileOptions];
129
+ default:
130
+ return [];
131
+ }
132
+ };
133
+
134
+ const hideDataSet = scriptType.toLowerCase() !== 'manual';
135
+
60
136
  return (
61
137
  <div
62
138
  className={classNames({
@@ -92,9 +168,6 @@ const Branches = ({
92
168
  </div>
93
169
  {machineInstances?.map((machineInstance, index) => {
94
170
  const {
95
- executionEnv = 'Local',
96
- browserName = 'Local',
97
- browserVersion = '1',
98
171
  numberOfRuns = 'numberOfRuns' in machineInstance
99
172
  ? machineInstance.numberOfRuns
100
173
  : 0,
@@ -118,16 +191,18 @@ const Branches = ({
118
191
  width={`${machineColumnWidth}px`}
119
192
  runCount={numberOfRuns}
120
193
  key={ffid()}
121
- options={[
122
- { label: executionEnv, type: executionEnv },
123
- { label: browserVersion, type: browserName },
124
- ]}
194
+ options={
195
+ getMachineLabelOptionList(
196
+ projectType,
197
+ machineInstance
198
+ ) as MachineType[]
199
+ }
125
200
  contentReverse={!evenRow}
126
201
  modalId={`${machineInstanceId}-runCount-${numberOfRuns}`}
127
202
  onClick={() =>
128
203
  onUpdateAddBrowserInstance(
129
204
  `${machineInstanceId}-runCount-0`,
130
- machineInstanceId
205
+ machineInstance as ExecutionContext
131
206
  )
132
207
  }
133
208
  />
@@ -138,31 +213,36 @@ const Branches = ({
138
213
  'ff-connecting-branch-datalist-reverse': !evenRow,
139
214
  })}
140
215
  >
141
- <div
142
- id={`ff-sequential-branch-dataset-${machineInstanceId}-${numberOfRuns}`}
143
- className="ff-dataset-list-branch"
144
- onClick={() =>
145
- onUpdateDataSetList(
146
- `ff-sequential-branch-dataset-${machineInstanceId}-${numberOfRuns}`,
147
- {
148
- peVariableSetId: peVariableSetId,
149
- globalVariableSetId: globalVariableSetId,
150
- testDataSetId: testDataSetId,
151
- },
152
- true,
153
- numberOfRuns,
154
- machineInstanceId
155
- )
156
- }
157
- >
158
- <Icon name="datalist_icon" className="ff-connecting-icon" />
159
- <Typography
160
- className="ff-connecting-text"
161
- color="var(--ff-connecting-branch-color)"
216
+ {hideDataSet && (
217
+ <div
218
+ id={`ff-sequential-branch-dataset-${machineInstanceId}-${numberOfRuns}`}
219
+ className="ff-dataset-list-branch"
220
+ onClick={() =>
221
+ onUpdateDataSetList(
222
+ `ff-sequential-branch-dataset-${machineInstanceId}-${numberOfRuns}`,
223
+ {
224
+ peVariableSetId: peVariableSetId,
225
+ globalVariableSetId: globalVariableSetId,
226
+ testDataSetId: testDataSetId,
227
+ },
228
+ true,
229
+ numberOfRuns,
230
+ machineInstanceId
231
+ )
232
+ }
162
233
  >
163
- Dataset List
164
- </Typography>
165
- </div>
234
+ <Icon
235
+ name="datalist_icon"
236
+ className="ff-connecting-icon"
237
+ />
238
+ <Typography
239
+ className="ff-connecting-text"
240
+ color="var(--ff-connecting-branch-color)"
241
+ >
242
+ Dataset List
243
+ </Typography>
244
+ </div>
245
+ )}
166
246
  <Icon
167
247
  name="plus_icon"
168
248
  className="ff-connecting-icon"
@@ -190,7 +270,7 @@ const Branches = ({
190
270
  <Button
191
271
  id={`ff-sequential-branch-add-${machineInstanceId}`}
192
272
  variant="tertiary"
193
- label="Add Environrment"
273
+ label={addInstanceLabel}
194
274
  onClick={() =>
195
275
  onAddBrowser(
196
276
  `ff-sequential-branch-add-${machineInstanceId}`
@@ -10,7 +10,6 @@ export interface BranchesProps {
10
10
  onAddBrowser: (modalId: string) => void;
11
11
  onDeleteBrowser: (id: string, runCount: number) => void;
12
12
  onAddRunBrowser: (id: string) => void;
13
- onUpdateAddBrowserInstance: (id: string, machineInstanceId: string) => void;
14
13
  onUpdateDataSetList: (
15
14
  id: string,
16
15
  dataSetObject: dataSetValues,
@@ -18,6 +17,13 @@ export interface BranchesProps {
18
17
  noOfRuns?: number,
19
18
  machineInstanceId?: string
20
19
  ) => void;
20
+ addInstanceLabel?: string;
21
+ scriptType?: string;
22
+ onUpdateAddBrowserInstance: (
23
+ modalId: string,
24
+ machineInstance: ExecutionContext
25
+ ) => void;
26
+ projectType?: string;
21
27
  }
22
28
 
23
29
  export interface branchTypeProps {
@@ -15,6 +15,9 @@ const ConnectingBranches = ({
15
15
  onAddRunBrowser,
16
16
  onUpdateDataSetList,
17
17
  onUpdateAddBrowserInstance,
18
+ addInstanceLabel = '',
19
+ scriptType = '',
20
+ projectType = 'Web',
18
21
  }: ConnectingBranchesProps) => {
19
22
  const [machineInstance, setMachineInstance] = useState<
20
23
  ExecutionContext[] | {}[]
@@ -60,6 +63,9 @@ const ConnectingBranches = ({
60
63
  }
61
64
  onUpdateDataSetList={onUpdateDataSetList}
62
65
  onUpdateAddBrowserInstance={onUpdateAddBrowserInstance}
66
+ addInstanceLabel={addInstanceLabel}
67
+ scriptType={scriptType}
68
+ projectType={projectType}
63
69
  />
64
70
  </Fragment>
65
71
  ))}
@@ -7,7 +7,6 @@ export interface ConnectingBranchesProps {
7
7
  onAddBrowser: (modalId: string) => void;
8
8
  onDeleteBrowser: (id: string, runCount: number) => void;
9
9
  onAddRunBrowser: (id: string) => void;
10
- onUpdateAddBrowserInstance: (id: string, machineInstanceId: string) => void;
11
10
  onUpdateDataSetList: (
12
11
  id: string,
13
12
  dataSetObject: dataSetValues,
@@ -15,4 +14,11 @@ export interface ConnectingBranchesProps {
15
14
  noOfRuns?: number,
16
15
  machineInstanceId?: string
17
16
  ) => void;
17
+ addInstanceLabel?: string;
18
+ scriptType?: string;
19
+ projectType?: string;
20
+ onUpdateAddBrowserInstance: (
21
+ modalId: string,
22
+ machineInstance: ExecutionContext
23
+ ) => void;
18
24
  }
@@ -8,7 +8,7 @@ export interface SequentialConnectingBranchProps {
8
8
  machineOptionsList?: Option[];
9
9
  onHandleSelect?: (option: Option) => void;
10
10
  onAddBrowserInstance?: (modalId: string) => void;
11
- onUpdateAddBrowserInstance: (id: string, machineInstanceId: string) => void;
11
+ onUpdateAddBrowserInstance: (modalId: string, machineInstance: ExecutionContext) => void;
12
12
  onDeleteBrowserInstance?: (id: string, runCount: number) => void;
13
13
  onAddRunBrowserInstance?: (machineInstanceId: string) => void;
14
14
  onDeleteMachineInstance?: () => void;
@@ -20,6 +20,9 @@ export interface SequentialConnectingBranchProps {
20
20
  machineInstanceId?: string
21
21
  ) => void;
22
22
  dataSetValues: dataSetValues;
23
+ addInstanceLabel?: string;
24
+ scriptType?: string;
25
+ projectType?: string;
23
26
  }
24
27
 
25
28
  // Type for machine information
@@ -27,14 +30,13 @@ export interface MachineInfo {
27
30
  osName: string;
28
31
  osVersion: string;
29
32
  hostName: string;
33
+ iconName: string;
30
34
  }
31
35
 
32
36
  // Type for device information
33
37
  export interface DeviceInfo {
34
- // Define properties as needed; assuming it can have various structures.
35
- // For example:
36
- // deviceName: string;
37
- // deviceType: string;
38
+ name: string;
39
+ platform: string;
38
40
  }
39
41
 
40
42
  export interface ExecutionContext {
@@ -28,9 +28,7 @@ const TreeTable: React.FC<TreeTableProps> = ({
28
28
  if (entry.target.id === 'ff-table-tree-last-node') {
29
29
  direction = 'down';
30
30
  }
31
- loadMore();
32
- console.log(direction);
33
-
31
+ loadMore(direction);
34
32
  }
35
33
  console.log('Element in view:', entry.target.id);
36
34
  }
@@ -74,51 +74,6 @@ const data = [
74
74
  },
75
75
  level: 1,
76
76
  },
77
- {
78
- node: {
79
- subModuleCount: 10,
80
- title: 'Home',
81
- scriptCount: 0,
82
- path: '/Root/Home',
83
- expanded: true,
84
- modifiedOn: '19-12-2023 15:43',
85
- folder: true,
86
- children: false,
87
- parentId: 'MOD100', // Parent is '/Root'
88
- id: 'MOD10030', // Unique ID
89
- },
90
- level: 1,
91
- },
92
- {
93
- node: {
94
- subModuleCount: 10,
95
- title: 'Home',
96
- scriptCount: 0,
97
- path: '/Root/Home',
98
- expanded: true,
99
- modifiedOn: '19-12-2023 15:43',
100
- folder: true,
101
- children: false,
102
- parentId: 'MOD1001', // Parent is '/Root'
103
- id: 'MOD100301', // Unique ID
104
- },
105
- level: 1,
106
- },
107
- {
108
- node: {
109
- subModuleCount: 10,
110
- title: 'Home',
111
- scriptCount: 0,
112
- path: '/Root/Home',
113
- expanded: true,
114
- modifiedOn: '19-12-2023 15:43',
115
- folder: true,
116
- children: false,
117
- parentId: 'MOD1001', // Parent is '/Root'
118
- id: 'MOD100302', // Unique ID
119
- },
120
- level: 1,
121
- },
122
77
  {
123
78
  node: {
124
79
  ver: 1,
@@ -49,11 +49,11 @@ export interface Column {
49
49
  accessor: string;
50
50
  width: string;
51
51
  isClickable?: boolean;
52
- cell?: (row: any) => JSX
53
- actions?: (row: any) => JSX
52
+ cell?: (row: any) => JSX;
53
+ actions?: (row: any) => JSX;
54
54
  isTree?: boolean;
55
55
  defaultValue?: string;
56
- defaultActions?: () => JSX
56
+ defaultActions?: () => JSX;
57
57
  }
58
58
 
59
59
  export interface TreeTableProps {
@@ -2,6 +2,7 @@ export interface OperatingSystemInfo {
2
2
  osName: string;
3
3
  osVersion: string;
4
4
  hostName: string;
5
+ iconName: string;
5
6
  }
6
7
 
7
8
  export interface RunLevelExecutionDataSet {