pixel-priya 1.1.21 → 1.1.23

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 (75) hide show
  1. package/lib/_virtual/index10.js +2 -2
  2. package/lib/_virtual/index11.js +2 -2
  3. package/lib/assets/icons/filter_active.svg.js +1 -1
  4. package/lib/assets/icons/filter_active.svg.js.map +1 -1
  5. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js +3 -3
  6. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js.map +1 -1
  7. package/lib/components/AppHeader/AppHeader.d.ts +0 -1
  8. package/lib/components/AppHeader/AppHeader.js +4 -28
  9. package/lib/components/AppHeader/AppHeader.js.map +1 -1
  10. package/lib/components/AttachmentButton/AttachmentButton.js +5 -2
  11. package/lib/components/AttachmentButton/AttachmentButton.js.map +1 -1
  12. package/lib/components/BrowserTabs/BrowserTabs.js +12 -4
  13. package/lib/components/BrowserTabs/BrowserTabs.js.map +1 -1
  14. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.js +3 -5
  15. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.js.map +1 -1
  16. package/lib/components/ContentCard/ContentCard.d.ts +1 -1
  17. package/lib/components/Drawer/Drawer.js +12 -0
  18. package/lib/components/Drawer/Drawer.js.map +1 -1
  19. package/lib/components/EditLabel/EditLabel.js +11 -2
  20. package/lib/components/EditLabel/EditLabel.js.map +1 -1
  21. package/lib/components/Editor/Editor.js +39 -24
  22. package/lib/components/Editor/Editor.js.map +1 -1
  23. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ActiveCell.js +2 -1
  24. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ActiveCell.js.map +1 -1
  25. package/lib/components/Excel/ExcelFile/ExcelFileComponents/matrix.d.ts +2 -0
  26. package/lib/components/Excel/ExcelFile/ExcelFileComponents/matrix.js +7 -8
  27. package/lib/components/Excel/ExcelFile/ExcelFileComponents/matrix.js.map +1 -1
  28. package/lib/components/Icon/iconList.js +1 -1
  29. package/lib/components/Icon/iconList.js.map +1 -1
  30. package/lib/components/MachineInputField/MachineInputField.js +4 -1
  31. package/lib/components/MachineInputField/MachineInputField.js.map +1 -1
  32. package/lib/components/MenuOption/MenuOption.js +1 -1
  33. package/lib/components/MenuOption/MenuOption.js.map +1 -1
  34. package/lib/components/MultiSelect/MultiSelect.js +2 -2
  35. package/lib/components/MultiSelect/MultiSelect.js.map +1 -1
  36. package/lib/components/OverviewModal/overviewModal.js +3 -1
  37. package/lib/components/OverviewModal/overviewModal.js.map +1 -1
  38. package/lib/components/ScriptGenerationLoader/ScriptGenerationLoader.d.ts +5 -0
  39. package/lib/components/ScriptGenerationLoader/ScriptGenerationLoader.js +11 -0
  40. package/lib/components/ScriptGenerationLoader/ScriptGenerationLoader.js.map +1 -0
  41. package/lib/components/ScriptGenerationLoader/index.d.ts +1 -0
  42. package/lib/components/ScriptGenerationLoader/index.js +2 -0
  43. package/lib/components/ScriptGenerationLoader/index.js.map +1 -0
  44. package/lib/components/ScriptGenerationLoader/types.d.ts +15 -0
  45. package/lib/components/ScriptGenerationLoader/types.js +2 -0
  46. package/lib/components/ScriptGenerationLoader/types.js.map +1 -0
  47. package/lib/components/Search/Search.js +2 -1
  48. package/lib/components/Search/Search.js.map +1 -1
  49. package/lib/components/TableTree/Components/TableHead.d.ts +1 -1
  50. package/lib/components/TableTree/Components/TableHead.js +3 -2
  51. package/lib/components/TableTree/Components/TableHead.js.map +1 -1
  52. package/lib/components/TableTree/TableTree.js +4 -2
  53. package/lib/components/TableTree/TableTree.js.map +1 -1
  54. package/lib/components/TableTree/types.d.ts +2 -0
  55. package/lib/components/Tooltip/Tooltip.js +4 -3
  56. package/lib/components/Tooltip/Tooltip.js.map +1 -1
  57. package/lib/components/Tooltip/types.d.ts +4 -0
  58. package/lib/index.cjs +119 -200
  59. package/lib/index.cjs.map +1 -1
  60. package/lib/index.d.ts +6 -1
  61. package/lib/index.js +1 -1
  62. package/lib/node_modules/js-beautify/js/src/css/beautifier.js +1 -1
  63. package/lib/node_modules/js-beautify/js/src/css/index.js +1 -1
  64. package/lib/node_modules/js-beautify/js/src/css/options.js +1 -1
  65. package/lib/node_modules/js-beautify/js/src/html/beautifier.js +1 -1
  66. package/lib/node_modules/js-beautify/js/src/html/index.js +1 -1
  67. package/lib/node_modules/js-beautify/js/src/html/options.js +1 -1
  68. package/lib/node_modules/js-beautify/js/src/html/tokenizer.js +1 -1
  69. package/lib/node_modules/js-beautify/js/src/javascript/beautifier.js +1 -1
  70. package/lib/node_modules/js-beautify/js/src/javascript/options.js +1 -1
  71. package/lib/node_modules/js-beautify/js/src/javascript/tokenizer.js +1 -1
  72. package/lib/styles.css +1 -3
  73. package/lib/styles.css.map +1 -1
  74. package/lib/tsconfig.tsbuildinfo +1 -1
  75. package/package.json +1 -2
package/lib/index.cjs CHANGED
@@ -1723,7 +1723,8 @@ const Tooltip = ({
1723
1723
  children,
1724
1724
  placement = 'bottom',
1725
1725
  disabled = false,
1726
- style = {}
1726
+ style = {},
1727
+ as: Element = 'div'
1727
1728
  }) => {
1728
1729
  const [isVisible, setIsVisible] = React.useState(false);
1729
1730
  const titleRef = React.useRef(null);
@@ -1848,13 +1849,13 @@ const Tooltip = ({
1848
1849
  calculateDim();
1849
1850
  }
1850
1851
  }, [isVisible]);
1851
- return jsxRuntime.jsxs("div", {
1852
+ return jsxRuntime.jsxs(Element, {
1852
1853
  ref: tooltipContainerRef,
1853
1854
  className: classNames('ff-tooltip-container', currentTheme),
1854
1855
  onMouseEnter: () => setIsVisible(true),
1855
1856
  onMouseLeave: () => setIsVisible(false),
1856
1857
  style: style,
1857
- children: [children, isVisible && !disabled && !isTitleEmpty(title) && /*#__PURE__*/ReactDOM.createPortal(jsxRuntime.jsx("div", {
1858
+ children: [children, isVisible && !disabled && !isTitleEmpty(title) && /*#__PURE__*/ReactDOM.createPortal(jsxRuntime.jsx(Element, {
1858
1859
  ref: titleRef,
1859
1860
  style: {
1860
1861
  ...styles[finalPlacement]
@@ -1962,6 +1963,18 @@ const Drawer = ({
1962
1963
  setDelayedOpen(false);
1963
1964
  }
1964
1965
  }, [isOpen]);
1966
+ React.useEffect(() => {
1967
+ const handleKeyDown = e => {
1968
+ if (e.key === 'Enter' && isOpen && primaryButtonProps?.onClick) {
1969
+ console.log('Enter key pressed — triggering primary button action');
1970
+ primaryButtonProps.onClick();
1971
+ }
1972
+ };
1973
+ document.addEventListener('keydown', handleKeyDown);
1974
+ return () => {
1975
+ document.removeEventListener('keydown', handleKeyDown);
1976
+ };
1977
+ }, [isOpen, primaryButtonProps]);
1965
1978
  const drawerSize = isExpanded ? 'x-large' : size;
1966
1979
  const themeContext = React.useContext(ThemeContext);
1967
1980
  const currentTheme = themeContext?.currentTheme;
@@ -2963,7 +2976,7 @@ const MultiSelect = ({
2963
2976
  overflowY,
2964
2977
  overflowX
2965
2978
  } = window.getComputedStyle(parent);
2966
- if (/(auto|scroll|overlay)/.test(overflowY) && parent.scrollHeight > parent.clientHeight || /(auto|scroll|overlay)/.test(overflowX) && parent.scrollWidth > parent.clientWidth) {
2979
+ if (/(auto|scroll|overlay)/.test(overflowY) || /(auto|scroll|overlay)/.test(overflowX) && parent.scrollWidth > parent.clientWidth) {
2967
2980
  return parent;
2968
2981
  }
2969
2982
  parent = parent.parentElement;
@@ -3124,7 +3137,7 @@ const MultiSelect = ({
3124
3137
  children: label
3125
3138
  }), jsxRuntime.jsxs("div", {
3126
3139
  className: "ff-multiselect-chip-container",
3127
- children: [!withSelectButton && (displayAllSelectedAsText && selectedOptions.length === allOptions.length && labelAccessor !== 'name' ? jsxRuntime.jsx(ChipElement, {
3140
+ children: [!withSelectButton && (displayAllSelectedAsText && selectedOptions.length === allOptions.length && !checkEmpty(allOptions) && labelAccessor !== 'name' ? jsxRuntime.jsx(ChipElement, {
3128
3141
  zIndex: zIndex,
3129
3142
  label: "All",
3130
3143
  onChipCloseClick: handleChipCloseAll,
@@ -4770,7 +4783,7 @@ const OptionCard = ({
4770
4783
  },
4771
4784
  ref: optionCardRef,
4772
4785
  children: options.map(opt => !opt.hide && jsxRuntime.jsx(Tooltip, {
4773
- title: opt?.tooltipForOption ? opt?.tooltipForOption : opt?.label,
4786
+ title: opt?.tooltipForOption ? opt?.tooltipForOption : '',
4774
4787
  placement: opt?.tooltipPlacementForOption,
4775
4788
  children: jsxRuntime.jsx(Option$1, {
4776
4789
  option: opt,
@@ -16104,7 +16117,9 @@ const OverviewModal = ({
16104
16117
  }) => {
16105
16118
  const [videos, setVideos] = React.useState(multiData);
16106
16119
  React.useEffect(() => {
16107
- setVideos(multiData);
16120
+ if (!checkEmpty(multiData)) {
16121
+ setVideos(multiData);
16122
+ }
16108
16123
  }, [multiData]);
16109
16124
  React.useEffect(() => {
16110
16125
  const handleKeyDown = event => {
@@ -16217,7 +16232,8 @@ const TableHead = /*#__PURE__*/React.memo(({
16217
16232
  onCheckBoxChange,
16218
16233
  selectedNode,
16219
16234
  tableHeaderBgColor,
16220
- hideOnDisable
16235
+ hideOnDisable,
16236
+ transparentHeader
16221
16237
  }) => {
16222
16238
  // const hasDefaultValues = useMemo(
16223
16239
  // () => columnsData.some(({ defaultValue }) => !!defaultValue),
@@ -16239,7 +16255,7 @@ const TableHead = /*#__PURE__*/React.memo(({
16239
16255
  className: "ff-table-tree-th",
16240
16256
  style: {
16241
16257
  width: width,
16242
- backgroundColor: tableHeaderBgColor
16258
+ backgroundColor: transparentHeader ? 'transparent' : tableHeaderBgColor
16243
16259
  },
16244
16260
  children: name
16245
16261
  }, name))
@@ -16433,6 +16449,7 @@ const EditLabel = ({
16433
16449
  const confirmRef = React.useRef(null);
16434
16450
  const isThrowingError = showError && isEditing ? true : false;
16435
16451
  const inputRef = React.useRef(null);
16452
+ const dropdownRef = React.useRef(null);
16436
16453
  const isValueFilled = !checkEmpty(text);
16437
16454
  const handleTextFieldChange = e => {
16438
16455
  const newValue = e.target.value;
@@ -16502,6 +16519,11 @@ const EditLabel = ({
16502
16519
  if (onCancel) onCancel();
16503
16520
  setIsEditable && setIsEditable(null);
16504
16521
  };
16522
+ const handleOutsideClick = () => {
16523
+ if (!isEditing || !containerRef.current) return;
16524
+ handleCancel();
16525
+ };
16526
+ useClickOutside(containerRef, handleOutsideClick, [confirmRef, cancelRef, dropdownRef]);
16505
16527
  const handleCancel = () => {
16506
16528
  if (isDisable.cancel) return;
16507
16529
  if (required && !value) {
@@ -16588,6 +16610,8 @@ const EditLabel = ({
16588
16610
  children: label
16589
16611
  })]
16590
16612
  }), jsxRuntime.jsx("input", {
16613
+ ref: inputRef,
16614
+ id: "add-module-input",
16591
16615
  name: "add-module-input",
16592
16616
  type: "text",
16593
16617
  className: classNames('ff-add-module-input', {
@@ -16600,10 +16624,10 @@ const EditLabel = ({
16600
16624
  disabled: isDisable.textField,
16601
16625
  onKeyDown: handleKeyDown,
16602
16626
  autoFocus: true,
16603
- autoComplete: "off",
16604
- ref: inputRef
16627
+ autoComplete: "off"
16605
16628
  })]
16606
16629
  }), withDropdown && jsxRuntime.jsx(Select$1, {
16630
+ dropDownRef: dropdownRef,
16607
16631
  optionsList: optionsList,
16608
16632
  selectedOption: currentSelectedOption,
16609
16633
  showLabel: false,
@@ -16979,7 +17003,8 @@ const TreeTable = /*#__PURE__*/React.forwardRef(({
16979
17003
  addModuleInputWidth = 150,
16980
17004
  addModuleSelectWidth,
16981
17005
  onScroll,
16982
- disableEditLabelConfirmIcon = false
17006
+ disableEditLabelConfirmIcon = false,
17007
+ transparentHeader = false
16983
17008
  }, ref) => {
16984
17009
  const [expanding, setExpanding] = React.useState(null);
16985
17010
  const [isLoading, setIsLoading] = React.useState(null);
@@ -17135,7 +17160,8 @@ const TreeTable = /*#__PURE__*/React.forwardRef(({
17135
17160
  selected: selected,
17136
17161
  selectedNode: selectedNode,
17137
17162
  tableHeaderBgColor: tableHeaderBgColor,
17138
- hideOnDisable: hideOnDisable
17163
+ hideOnDisable: hideOnDisable,
17164
+ transparentHeader: transparentHeader
17139
17165
  }), jsxRuntime.jsx(TableBody, {
17140
17166
  flattenedTreeData: addLastChild(treeData),
17141
17167
  rootNode: rootNode?.node,
@@ -17228,6 +17254,7 @@ const BrowserTabs = ({
17228
17254
  }) => {
17229
17255
  const containerRef = React.useRef(null);
17230
17256
  const [tabWidth, setTabWidth] = React.useState();
17257
+ const [failedIcons, setFailedIcons] = React.useState({});
17231
17258
  React.useEffect(() => {
17232
17259
  const updateTabWidth = () => {
17233
17260
  if (containerRef.current) {
@@ -17240,6 +17267,12 @@ const BrowserTabs = ({
17240
17267
  window.addEventListener('resize', updateTabWidth);
17241
17268
  return () => window.removeEventListener('resize', updateTabWidth);
17242
17269
  }, [tabsData.length, maxTabWidth]);
17270
+ const handleIconError = tabId => {
17271
+ setFailedIcons(prev => ({
17272
+ ...prev,
17273
+ [tabId]: true
17274
+ }));
17275
+ };
17243
17276
  return jsxRuntime.jsxs("div", {
17244
17277
  className: "ff-browser-tabs-container",
17245
17278
  ref: containerRef,
@@ -17268,12 +17301,13 @@ const BrowserTabs = ({
17268
17301
  children: jsxRuntime.jsxs("div", {
17269
17302
  className: "ff-tab-content",
17270
17303
  children: [tabWidth && tabWidth >= 20 && (!isActive || tabWidth >= 80) && jsxRuntime.jsx(jsxRuntime.Fragment, {
17271
- children: tab.tabIconSrc ? jsxRuntime.jsx("img", {
17304
+ children: tab.tabIconSrc && !failedIcons[tab.id] ? jsxRuntime.jsx("img", {
17272
17305
  src: tab.tabIconSrc,
17273
17306
  alt: tab.label,
17274
- className: "ff-tab-icon"
17275
- }) : tab.tabIcon && jsxRuntime.jsx(Icon, {
17276
- name: tab.tabIcon,
17307
+ className: "ff-tab-icon",
17308
+ onError: () => handleIconError(tab.id)
17309
+ }) : jsxRuntime.jsx(Icon, {
17310
+ name: tab.tabIcon || "web_icon",
17277
17311
  hoverEffect: false,
17278
17312
  color: "inherit"
17279
17313
  })
@@ -17540,7 +17574,8 @@ const Search = ({
17540
17574
  children: jsxRuntime.jsx(Icon, {
17541
17575
  name: "search",
17542
17576
  height: isExpand ? 14 : 16,
17543
- width: isExpand ? 14 : 16
17577
+ width: isExpand ? 14 : 16,
17578
+ disabled: disabled
17544
17579
  })
17545
17580
  })
17546
17581
  }), jsxRuntime.jsx("div", {
@@ -29613,8 +29648,8 @@ const AllProjectsDropdown = ({
29613
29648
  lineHeight: '30px',
29614
29649
  className: "ff-projects-label",
29615
29650
  children: jsxRuntime.jsx(Tooltip, {
29616
- title: option.label.length > 25 ? option.label : '',
29617
- children: option.label.length < 25 ? option.label : truncateText(option.label, 25)
29651
+ title: isTextTruncated(option.label, 165, 'pixel') ? option.label : '',
29652
+ children: truncateText(option.label, 165, 'pixel')
29618
29653
  })
29619
29654
  }, index)]
29620
29655
  }, index))
@@ -29950,119 +29985,6 @@ const clearStore = () => {
29950
29985
  }
29951
29986
  };
29952
29987
 
29953
- /**
29954
- * @internal
29955
- */
29956
- const SkeletonThemeContext = /*#__PURE__*/React.createContext({});
29957
-
29958
- /* eslint-disable react/no-array-index-key */
29959
- const defaultEnableAnimation = true;
29960
- // For performance & cleanliness, don't add any inline styles unless we have to
29961
- function styleOptionsToCssProperties({
29962
- baseColor,
29963
- highlightColor,
29964
- width,
29965
- height,
29966
- borderRadius,
29967
- circle,
29968
- direction,
29969
- duration,
29970
- enableAnimation = defaultEnableAnimation,
29971
- customHighlightBackground
29972
- }) {
29973
- const style = {};
29974
- if (direction === 'rtl') style['--animation-direction'] = 'reverse';
29975
- if (typeof duration === 'number') style['--animation-duration'] = `${duration}s`;
29976
- if (!enableAnimation) style['--pseudo-element-display'] = 'none';
29977
- if (typeof width === 'string' || typeof width === 'number') style.width = width;
29978
- if (typeof height === 'string' || typeof height === 'number') style.height = height;
29979
- if (typeof borderRadius === 'string' || typeof borderRadius === 'number') style.borderRadius = borderRadius;
29980
- if (circle) style.borderRadius = '50%';
29981
- if (typeof baseColor !== 'undefined') style['--base-color'] = baseColor;
29982
- if (typeof highlightColor !== 'undefined') style['--highlight-color'] = highlightColor;
29983
- if (typeof customHighlightBackground === 'string') style['--custom-highlight-background'] = customHighlightBackground;
29984
- return style;
29985
- }
29986
- function Skeleton({
29987
- count = 1,
29988
- wrapper: Wrapper,
29989
- className: customClassName,
29990
- containerClassName,
29991
- containerTestId,
29992
- circle = false,
29993
- style: styleProp,
29994
- ...originalPropsStyleOptions
29995
- }) {
29996
- var _a, _b, _c;
29997
- const contextStyleOptions = React.useContext(SkeletonThemeContext);
29998
- const propsStyleOptions = {
29999
- ...originalPropsStyleOptions
30000
- };
30001
- // DO NOT overwrite style options from the context if `propsStyleOptions`
30002
- // has properties explicity set to undefined
30003
- for (const [key, value] of Object.entries(originalPropsStyleOptions)) {
30004
- if (typeof value === 'undefined') {
30005
- delete propsStyleOptions[key];
30006
- }
30007
- }
30008
- // Props take priority over context
30009
- const styleOptions = {
30010
- ...contextStyleOptions,
30011
- ...propsStyleOptions,
30012
- circle
30013
- };
30014
- // `styleProp` has the least priority out of everything
30015
- const style = {
30016
- ...styleProp,
30017
- ...styleOptionsToCssProperties(styleOptions)
30018
- };
30019
- let className = 'react-loading-skeleton';
30020
- if (customClassName) className += ` ${customClassName}`;
30021
- const inline = (_a = styleOptions.inline) !== null && _a !== void 0 ? _a : false;
30022
- const elements = [];
30023
- const countCeil = Math.ceil(count);
30024
- for (let i = 0; i < countCeil; i++) {
30025
- let thisStyle = style;
30026
- if (countCeil > count && i === countCeil - 1) {
30027
- // count is not an integer and we've reached the last iteration of
30028
- // the loop, so add a "fractional" skeleton.
30029
- //
30030
- // For example, if count is 3.5, we've already added 3 full
30031
- // skeletons, so now we add one more skeleton that is 0.5 times the
30032
- // original width.
30033
- const width = (_b = thisStyle.width) !== null && _b !== void 0 ? _b : '100%'; // 100% is the default since that's what's in the CSS
30034
- const fractionalPart = count % 1;
30035
- const fractionalWidth = typeof width === 'number' ? width * fractionalPart : `calc(${width} * ${fractionalPart})`;
30036
- thisStyle = {
30037
- ...thisStyle,
30038
- width: fractionalWidth
30039
- };
30040
- }
30041
- const skeletonSpan = /*#__PURE__*/React.createElement("span", {
30042
- className: className,
30043
- style: thisStyle,
30044
- key: i
30045
- }, "\u200C");
30046
- if (inline) {
30047
- elements.push(skeletonSpan);
30048
- } else {
30049
- // Without the <br />, the skeleton lines will all run together if
30050
- // `width` is specified
30051
- elements.push(/*#__PURE__*/React.createElement(React.Fragment, {
30052
- key: i
30053
- }, skeletonSpan, /*#__PURE__*/React.createElement("br", null)));
30054
- }
30055
- }
30056
- return /*#__PURE__*/React.createElement("span", {
30057
- className: containerClassName,
30058
- "data-testid": containerTestId,
30059
- "aria-live": "polite",
30060
- "aria-busy": (_c = styleOptions.enableAnimation) !== null && _c !== void 0 ? _c : defaultEnableAnimation
30061
- }, Wrapper ? elements.map((el, i) => /*#__PURE__*/React.createElement(Wrapper, {
30062
- key: i
30063
- }, el)) : elements);
30064
- }
30065
-
30066
29988
  const AppHeader = ({
30067
29989
  logoIconName = 'fireflink_icon',
30068
29990
  width,
@@ -30092,7 +30014,6 @@ const AppHeader = ({
30092
30014
  }) => {
30093
30015
  const hiddenMenuRef = React.useRef(null);
30094
30016
  const hiddenQuickMenuRef = React.useRef(null);
30095
- const [isHidden, setIsHidden] = React.useState(true);
30096
30017
  const [projectArrayList, setProjectArrayList] = React.useState(projectsList);
30097
30018
  const [quickMenuItems, setQuickMenuItems] = React.useState([]);
30098
30019
  const [appHeaderHiddenMenuItems, setAppHeaderHiddenMenuItems] = React.useState([]);
@@ -30111,14 +30032,12 @@ const AppHeader = ({
30111
30032
  }
30112
30033
  }, [selectedMenu, selectedMenuItem]);
30113
30034
  const handleMenuClick = menuItem => {
30114
- setIsHidden(true);
30115
30035
  if (!disabled) {
30116
30036
  onMenuClick(menuItem);
30117
30037
  calculateVisibleItems();
30118
30038
  }
30119
30039
  };
30120
30040
  const handleSubMenuClick = subMenuItem => {
30121
- setIsHidden(true);
30122
30041
  if (!disabled) {
30123
30042
  onSubMenuClick(subMenuItem);
30124
30043
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
@@ -30136,21 +30055,18 @@ const AppHeader = ({
30136
30055
  if (projectItem?.value === projectDetails?.id && projectItem?.value !== 'All Projects') {
30137
30056
  return;
30138
30057
  }
30139
- setIsHidden(true);
30140
30058
  if (!disabled) {
30141
30059
  onProjectMenuClick(projectItem);
30142
30060
  calculateVisibleItems();
30143
30061
  }
30144
30062
  };
30145
30063
  const handleProjectDropdownLabelClick = () => {
30146
- setIsHidden(true);
30147
30064
  if (!disabled) {
30148
30065
  onProjectDropdownLabelClick();
30149
30066
  calculateVisibleItems();
30150
30067
  }
30151
30068
  };
30152
30069
  const handleMoreMenuOptionClick = option => {
30153
- setIsHidden(true);
30154
30070
  if (!disabled) {
30155
30071
  onMoreMenuOptionClick(option, calculateVisibleItems);
30156
30072
  }
@@ -30163,10 +30079,9 @@ const AppHeader = ({
30163
30079
  const calculateVisibleItems = React.useCallback(() => {
30164
30080
  if (!isClient && projectDetails?.id === 'All Projects' || !menuContainerRef.current) {
30165
30081
  setAppHeaderHiddenMenuItems([]);
30166
- if (isHidden) setIsHidden(false);
30167
30082
  return;
30168
30083
  }
30169
- const containerWidth = isClient ? 700 : 900;
30084
+ const containerWidth = isClient ? 700 : 950;
30170
30085
  let totalWidth = 0;
30171
30086
  const hiddenItems = [];
30172
30087
  const sortedMenuItems = [...appHeaderMenuItems];
@@ -30194,14 +30109,13 @@ const AppHeader = ({
30194
30109
  value: item.path,
30195
30110
  icon: item?.iconName
30196
30111
  })));
30197
- if (isHidden) setIsHidden(false);
30198
- }, [appHeaderMenuItems, selectedMenuItem, selectedMenu, selectedSubMenu, selectedQuickMenu, isHidden]);
30112
+ }, [appHeaderMenuItems, selectedMenuItem, selectedMenu, selectedSubMenu, selectedQuickMenu]);
30199
30113
  React.useEffect(() => {
30200
30114
  const timer = setTimeout(() => {
30201
30115
  calculateVisibleItems();
30202
30116
  }, 800);
30203
30117
  return () => clearTimeout(timer);
30204
- }, [projectDetails?.id, selectedMenuItem, scriptId, quickMenuItems, isHidden]);
30118
+ }, [projectDetails?.id, selectedMenuItem, scriptId, quickMenuItems]);
30205
30119
  const checkIsHavingEntityPendingCounts = data => {
30206
30120
  if (data.label === 'Approval Request' && data.entityPendingCounts) {
30207
30121
  return Object.values(data.entityPendingCounts).some(count => count > 0);
@@ -30255,26 +30169,11 @@ const AppHeader = ({
30255
30169
  className: "ff-app-header-left-content",
30256
30170
  children: leftContent
30257
30171
  })]
30258
- }), isHidden && jsxRuntime.jsx("div", {
30259
- className: "ff-app-header-nav-bar-skeleton",
30260
- style: {
30261
- width: width,
30262
- display: isHidden ? 'flex' : 'none'
30263
- },
30264
- children: [...Array(projectDetails?.id === 'All Projects' ? 5 : 8)].map((_, idx) => jsxRuntime.jsx(Skeleton, {
30265
- width: 80,
30266
- height: 22,
30267
- style: {
30268
- marginRight: 16,
30269
- borderRadius: 20,
30270
- opacity: 0.5
30271
- }
30272
- }, idx))
30273
30172
  }), jsxRuntime.jsxs("div", {
30274
30173
  className: "ff-app-header-nav-bar",
30275
30174
  style: {
30276
30175
  width: width,
30277
- visibility: checkEmpty(appHeaderMenuItems) && projectDetails?.id === 'All Projects' || isHidden || hideNavbar ? 'hidden' : 'visible',
30176
+ visibility: checkEmpty(appHeaderMenuItems) && projectDetails?.id === 'All Projects' || hideNavbar ? 'hidden' : 'visible',
30278
30177
  position: 'relative',
30279
30178
  zIndex: 1
30280
30179
  },
@@ -31081,9 +30980,7 @@ const DashboardDonutChart = ({
31081
30980
  children: legendData?.map(item => jsxRuntime.jsxs("tr", {
31082
30981
  className: "ff-legend-item",
31083
30982
  onMouseEnter: () => {
31084
- if (toNumber(item.value) > 0) {
31085
- setHoveredItemIndex(item.originalIndex);
31086
- }
30983
+ setHoveredItemIndex(item.originalIndex);
31087
30984
  },
31088
30985
  onMouseLeave: () => setHoveredItemIndex(null),
31089
30986
  children: [jsxRuntime.jsxs("td", {
@@ -31103,7 +31000,7 @@ const DashboardDonutChart = ({
31103
31000
  })]
31104
31001
  }), jsxRuntime.jsx("td", {
31105
31002
  className: "ff-legend-percentage",
31106
- children: item.percentage ? item.percentage : typeof item.value === 'string' ? (parseFloat(item.value) / total * 100).toFixed(1) : total === 0 ? 0 : (item.value / total * 100).toFixed(1)
31003
+ children: item.percentage ? item.percentage : typeof item.value === 'string' ? Math.round(parseFloat(item.value) / total * 100) : total === 0 ? 0 : Math.round(item.value / total * 100)
31107
31004
  }), jsxRuntime.jsx("td", {
31108
31005
  className: "ff-legend-count",
31109
31006
  children: item.value
@@ -31214,7 +31111,7 @@ const DashboardDonutChart = ({
31214
31111
  style: {
31215
31112
  fontSize: `${labelFontSize}px`
31216
31113
  },
31217
- children: wrapText(legendType === 'tableLegend' && hoveredItemIndex !== null && chartValues.find(item => item.originalIndex === hoveredItemIndex) ? `${((chartValues.find(item => item.originalIndex === hoveredItemIndex)?.value || 0) / total * 100).toFixed(1)}%` : legendType === 'memoryLegend' ? `${totalMemory}` : isOnClick && hoveredItemIndex !== null && chartValues.find(item => item.originalIndex === hoveredItemIndex)?.value ? `${chartValues.find(item => item.originalIndex === hoveredItemIndex)?.value}` : `${Number.isInteger(total) ? total : total?.toFixed(2)} ${showUnit && unit ? unit.toUpperCase() : ''}`, LABEL_MAX_WIDTH, labelFontSize).map((line, index) => jsxRuntime.jsx("tspan", {
31114
+ children: wrapText(legendType === 'tableLegend' && hoveredItemIndex !== null && chartValues.find(item => item.originalIndex === hoveredItemIndex) ? `${Math.round((chartValues.find(item => item.originalIndex === hoveredItemIndex)?.value || 0) / total * 100)}%` : legendType === 'memoryLegend' ? `${totalMemory}` : isOnClick && hoveredItemIndex !== null && chartValues.find(item => item.originalIndex === hoveredItemIndex)?.value ? `${chartValues.find(item => item.originalIndex === hoveredItemIndex)?.value}` : `${Number.isInteger(total) ? total : total?.toFixed(2)} ${showUnit && unit ? unit.toUpperCase() : ''}`, LABEL_MAX_WIDTH, labelFontSize).map((line, index) => jsxRuntime.jsx("tspan", {
31218
31115
  x: "0",
31219
31116
  dy: index === 0 ? 0 : labelFontSize,
31220
31117
  children: selectedItemIndex !== null && chartValues.find(item => item.originalIndex === selectedItemIndex) ? index === 0 ? chartValues.find(item => item.originalIndex === selectedItemIndex)?.value : null : apiDataLabel ? apiDataLabel : line
@@ -34169,7 +34066,10 @@ const MachineInputField = ({
34169
34066
  safari: 'safari_icon',
34170
34067
  opera: 'opera',
34171
34068
  windows: 'windows',
34172
- edge: 'edge'
34069
+ edge: 'edge',
34070
+ firefox: 'fire_fox',
34071
+ chrome: 'chrome_icon',
34072
+ explorer: 'internet_explorer'
34173
34073
  };
34174
34074
  const isManualScript = scriptType.toLowerCase() === 'manual';
34175
34075
  return jsxRuntime.jsxs("div", {
@@ -34903,7 +34803,10 @@ const AttachmentButton = ({
34903
34803
  onClick: onFileListClick,
34904
34804
  children: [jsxRuntime.jsx(Typography, {
34905
34805
  color: "var(--brand-color)",
34906
- children: truncateText(file.name, truncateMaxLimit, 'pixel')
34806
+ children: jsxRuntime.jsx(TruncatedTooltip, {
34807
+ title: file.name,
34808
+ width: truncateMaxLimit
34809
+ })
34907
34810
  }), deleteButton && jsxRuntime.jsx(Tooltip, {
34908
34811
  title: "Delete",
34909
34812
  children: jsxRuntime.jsx(Icon, {
@@ -35887,10 +35790,9 @@ function mutableSet(point, value, matrix) {
35887
35790
  // nextMatrix[point.row] = nextRow;
35888
35791
  // return nextMatrix;
35889
35792
  // }
35890
- const convertPxToPt$1 = px => {
35891
- const numericPx = parseFloat(px.replace('px', ''));
35892
- const pt = numericPx / 1.33;
35893
- return pt;
35793
+ const convertPtToPx$1 = pt => {
35794
+ const px = pt * 1.33;
35795
+ return `${px}px`;
35894
35796
  };
35895
35797
  const EmptyCell$1 = {
35896
35798
  value: '',
@@ -35910,7 +35812,7 @@ const EmptyCell$1 = {
35910
35812
  borderLeft: `1px solid var(--excel-header-border)`,
35911
35813
  borderTop: `1px solid var(--excel-header-border)`,
35912
35814
  borderBottom: `1px solid var(--excel-header-border)`,
35913
- fontSize: `${convertPxToPt$1('9')}`,
35815
+ fontSize: `${convertPtToPx$1(9)}`,
35914
35816
  fontWeight: 'normal',
35915
35817
  fontStyle: 'normal',
35916
35818
  fontFamily: 'Poppins',
@@ -36043,11 +35945,11 @@ function pad(matrix, size) {
36043
35945
  let padded = [...matrix];
36044
35946
  if (resultSize.columns > columns) {
36045
35947
  const padColumns = resultSize.columns - columns;
36046
- padded = padded.map(row => [...row, ...Array(padColumns).fill(undefined)]);
35948
+ padded = padded.map(row => [...row, ...Array(padColumns).fill(EmptyCell$1)]);
36047
35949
  }
36048
35950
  if (resultSize.rows > rows) {
36049
35951
  const padRows = resultSize.rows - rows;
36050
- const emptyRow = Array(resultSize.columns).fill(undefined);
35952
+ const emptyRow = Array(resultSize.columns).fill(EmptyCell$1);
36051
35953
  padded = [...padded, ...Array(padRows).fill(emptyRow)];
36052
35954
  }
36053
35955
  return padded;
@@ -40501,7 +40403,8 @@ const ActiveCell = props => {
40501
40403
  buttonVariant: "tertiary",
40502
40404
  deleteButton: true,
40503
40405
  addAttachmentButton: true,
40504
- isInfoIconRequired: false
40406
+ isInfoIconRequired: false,
40407
+ truncateMaxLimit: dimensions.width - 60
40505
40408
  }) : mode === 'edit' && active ? jsxRuntime.jsx(DataEditor, {
40506
40409
  row: active.row,
40507
40410
  column: active.column,
@@ -56837,6 +56740,8 @@ const Editor = /*#__PURE__*/React.forwardRef(({
56837
56740
  }, ref) => {
56838
56741
  const editorRef = React.useRef(null);
56839
56742
  const decorationsRef = React.useRef([]);
56743
+ const varRef = React.useRef(null);
56744
+ const filterVarRef = React.useRef(null);
56840
56745
  const [currentLine, setCurrentLine] = React.useState(0);
56841
56746
  const [showDropdown, setShowDropdown] = React.useState(false);
56842
56747
  const [dropdownPosition, setDropdownPosition] = React.useState({
@@ -56857,19 +56762,21 @@ const Editor = /*#__PURE__*/React.forwardRef(({
56857
56762
  if (!position || !model) return;
56858
56763
  const currentLineContent = model.getLineContent(position.lineNumber);
56859
56764
  const columnIndex = position.column - 2;
56860
- if (currentLineContent[columnIndex] === '$') {
56861
- const match = currentLineContent.match(/ff\.(GLOBAL|PROJECT_ENVIRONMENT)\.(get|set)\(\$/);
56862
- if (isRequisiteType) {
56863
- editor.executeEdits('', [{
56864
- range: new monaco.Range(position.lineNumber, position.column - 1, position.lineNumber, position.column),
56865
- text: ''
56866
- }]);
56867
- }
56868
- if (match) {
56869
- const variableScope = match[1];
56870
- setFilteredVariableOptions(variableOptionsList.filter(v => v.type === variableScope));
56765
+ if (currentLineContent[varRef.current ?? columnIndex] === '$') {
56766
+ if (varRef.current === null) {
56767
+ varRef.current = columnIndex;
56768
+ }
56769
+ filterVarRef.current = currentLineContent.slice(varRef.current + 1, columnIndex);
56770
+ const filteredVariable = variableOptionsList.filter(e => e?.name.toLowerCase().includes(filterVarRef.current?.toLowerCase()));
56771
+ if (filteredVariable.length) {
56772
+ setFilteredVariableOptions(filteredVariable);
56871
56773
  } else {
56872
- setFilteredVariableOptions(variableOptionsList);
56774
+ setFilteredVariableOptions([]);
56775
+ if (varRef?.current !== columnIndex && currentLineContent[columnIndex] === ' ') {
56776
+ varRef.current = null;
56777
+ filterVarRef.current = null;
56778
+ setShowDropdown(false);
56779
+ }
56873
56780
  }
56874
56781
  const visiblePosition = editor.getScrolledVisiblePosition(position);
56875
56782
  const editorDomNode = editor.getDomNode();
@@ -56883,15 +56790,15 @@ const Editor = /*#__PURE__*/React.forwardRef(({
56883
56790
  const dropdownHeight = 150;
56884
56791
  let dropdownTop = top;
56885
56792
  let dropdownLeft = left;
56886
- if (dropdownTop + dropdownHeight > editorHeight) {
56887
- dropdownTop -= dropdownHeight;
56793
+ if (dropdownTop + dropdownHeight > editorHeight - dropdownHeight + 100) {
56794
+ dropdownTop -= Math.floor(dropdownHeight / 2) + dropdownHeight + 25;
56888
56795
  } else {
56889
- dropdownTop += 20;
56796
+ dropdownTop -= 5;
56890
56797
  }
56891
56798
  if (left > editorRect.width * 0.75) {
56892
- dropdownLeft -= 150;
56893
- } else if (left < editorRect.width * 0.25) {
56894
- dropdownLeft += 20;
56799
+ dropdownLeft -= dropdownHeight;
56800
+ } else if (left < editorRect.width * 0.5 + dropdownHeight) {
56801
+ dropdownLeft = dropdownLeft + 35;
56895
56802
  }
56896
56803
  setDropdownPosition({
56897
56804
  top: dropdownTop,
@@ -56900,6 +56807,8 @@ const Editor = /*#__PURE__*/React.forwardRef(({
56900
56807
  setShowDropdown(true);
56901
56808
  } else {
56902
56809
  setShowDropdown(false);
56810
+ varRef.current = null;
56811
+ filterVarRef.current = null;
56903
56812
  }
56904
56813
  });
56905
56814
  // Detect paste events
@@ -56991,15 +56900,20 @@ const Editor = /*#__PURE__*/React.forwardRef(({
56991
56900
  const editor = editorRef.current;
56992
56901
  const position = editor.getPosition();
56993
56902
  if (position) {
56903
+ const val = `{${type}${type === 'FLV_for:' ? '' : '_'}${suggestion}}`;
56904
+ const currentPostion = varRef?.current ?? 0;
56994
56905
  editor.executeEdits('', [{
56995
56906
  range: {
56996
56907
  startLineNumber: position.lineNumber,
56997
- startColumn: position.column,
56908
+ startColumn: currentPostion + 2,
56998
56909
  endLineNumber: position.lineNumber,
56999
- endColumn: position.column
56910
+ endColumn: currentPostion + (position.column - currentPostion)
57000
56911
  },
57001
- text: `{${type}${type === 'FLV_for:' ? '' : '_'}${suggestion}}`
56912
+ text: val,
56913
+ forceMoveMarkers: true
57002
56914
  }]);
56915
+ filterVarRef.current = null;
56916
+ varRef.current = null;
57003
56917
  setShowDropdown(false);
57004
56918
  }
57005
56919
  }
@@ -57010,15 +56924,19 @@ const Editor = /*#__PURE__*/React.forwardRef(({
57010
56924
  const position = editor.getPosition();
57011
56925
  if (position) {
57012
56926
  const textToInsert = `'${option.name}'`;
56927
+ const currentPostion = varRef?.current ?? 0;
57013
56928
  editor.executeEdits('', [{
57014
56929
  range: {
57015
56930
  startLineNumber: position.lineNumber,
57016
- startColumn: position.column,
56931
+ startColumn: currentPostion + 1,
57017
56932
  endLineNumber: position.lineNumber,
57018
- endColumn: position.column
56933
+ endColumn: currentPostion + (position.column - currentPostion)
57019
56934
  },
57020
- text: textToInsert
56935
+ text: textToInsert,
56936
+ forceMoveMarkers: true
57021
56937
  }]);
56938
+ filterVarRef.current = null;
56939
+ varRef.current = null;
57022
56940
  setShowDropdown(false);
57023
56941
  }
57024
56942
  } else {
@@ -57127,7 +57045,7 @@ const Editor = /*#__PURE__*/React.forwardRef(({
57127
57045
  }), showDropdown && dropdownPosition && showVariableDropdown && jsxRuntime.jsx(VariableDropdown, {
57128
57046
  position: "absolute",
57129
57047
  width: "300px",
57130
- height: "300px",
57048
+ height: "210px",
57131
57049
  optionsList: filteredVariableOptions,
57132
57050
  onSelectVariable: handleSelectVariable,
57133
57051
  dropdownPosition: dropdownPosition
@@ -115172,6 +115090,7 @@ exports.SCRIPT_REGEX = SCRIPT_REGEX;
115172
115090
  exports.SSN_REGEX = SSN_REGEX;
115173
115091
  exports.START_END_WHITESPACE_REGEX = START_END_WHITESPACE_REGEX;
115174
115092
  exports.STEP_GROUP_NAME_REGEX = STEP_GROUP_NAME_REGEX;
115093
+ exports.ScriptGenerationLoader = StepResultStats;
115175
115094
  exports.ScriptSwitchButton = ScriptSwitchButton;
115176
115095
  exports.Search = Search;
115177
115096
  exports.Select = Select$1;