pixel-react-excel-sheet 1.1.22 → 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 (130) hide show
  1. package/lib/_virtual/index10.js +2 -2
  2. package/lib/_virtual/index11.js +2 -2
  3. package/lib/_virtual/index9.js +2 -2
  4. package/lib/assets/icons/ai_approved.svg.js +6 -0
  5. package/lib/assets/icons/ai_approved.svg.js.map +1 -0
  6. package/lib/components/AppHeader/AppHeader.js +2 -4
  7. package/lib/components/AppHeader/AppHeader.js.map +1 -1
  8. package/lib/components/Charts/BarChart/BarChart.js +1 -1
  9. package/lib/components/Charts/BarChart/BarChart.js.map +1 -1
  10. package/lib/components/Charts/DonutChart/DonutChart.js +1 -1
  11. package/lib/components/Charts/DonutChart/DonutChart.js.map +1 -1
  12. package/lib/components/Charts/IconRadialChart/IconRadialChart.js +13 -7
  13. package/lib/components/Charts/IconRadialChart/IconRadialChart.js.map +1 -1
  14. package/lib/components/Charts/MultiRadialChart/MultiRadialChart.js +73 -36
  15. package/lib/components/Charts/MultiRadialChart/MultiRadialChart.js.map +1 -1
  16. package/lib/components/Charts/MultiRadialChart/types.d.ts +1 -1
  17. package/lib/components/Checkbox/types.d.ts +2 -1
  18. package/lib/components/Chip/Chip.js +2 -2
  19. package/lib/components/Chip/Chip.js.map +1 -1
  20. package/lib/components/Comments/Comments.d.ts +1 -1
  21. package/lib/components/Comments/Comments.js +3 -2
  22. package/lib/components/Comments/Comments.js.map +1 -1
  23. package/lib/components/Comments/childComment/ChildComment.js +4 -1
  24. package/lib/components/Comments/childComment/ChildComment.js.map +1 -1
  25. package/lib/components/Comments/type.d.ts +1 -0
  26. package/lib/components/ConditionalDropdown/ConditionalDropdown.js +4 -2
  27. package/lib/components/ConditionalDropdown/ConditionalDropdown.js.map +1 -1
  28. package/lib/components/ConnectingBranch/BranchComponents/MachineInstances.js +3 -4
  29. package/lib/components/ConnectingBranch/BranchComponents/MachineInstances.js.map +1 -1
  30. package/lib/components/ConnectingBranch/ConnectingBranch.js +2 -3
  31. package/lib/components/ConnectingBranch/ConnectingBranch.js.map +1 -1
  32. package/lib/components/CreateVariable/CreateVariableSlider.js +18 -2
  33. package/lib/components/CreateVariable/CreateVariableSlider.js.map +1 -1
  34. package/lib/components/EditLabel/EditLabel.js +29 -1
  35. package/lib/components/EditLabel/EditLabel.js.map +1 -1
  36. package/lib/components/Excel/ExcelFile/ExcelFile.d.ts +1 -0
  37. package/lib/components/Excel/ExcelFile/ExcelFile.js +5 -2
  38. package/lib/components/Excel/ExcelFile/ExcelFile.js.map +1 -1
  39. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ActiveCell.js +1 -1
  40. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ActiveCell.js.map +1 -1
  41. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ColumnIndicator.js +6 -4
  42. package/lib/components/Excel/ExcelFile/ExcelFileComponents/ColumnIndicator.js.map +1 -1
  43. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducer.js +4 -6
  44. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducer.js.map +1 -1
  45. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducerFunctions.js +7 -4
  46. package/lib/components/Excel/ExcelFile/ExcelFileComponents/reducerFunctions.js.map +1 -1
  47. package/lib/components/Excel/ExcelFile/ExcelFileComponents/util.d.ts +1 -1
  48. package/lib/components/Excel/ExcelFile/ExcelFileComponents/util.js +4 -3
  49. package/lib/components/Excel/ExcelFile/ExcelFileComponents/util.js.map +1 -1
  50. package/lib/components/FileDropzone/FilePreview.js +32 -2
  51. package/lib/components/FileDropzone/FilePreview.js.map +1 -1
  52. package/lib/components/FileDropzone/types.d.ts +1 -0
  53. package/lib/components/Icon/iconList.js +2 -0
  54. package/lib/components/Icon/iconList.js.map +1 -1
  55. package/lib/components/Input/Input.js +1 -1
  56. package/lib/components/Input/Input.js.map +1 -1
  57. package/lib/components/MachineInputField/MachineInputField.js +2 -2
  58. package/lib/components/MachineInputField/MachineInputField.js.map +1 -1
  59. package/lib/components/MediaPreview/MediaPreview.js +43 -12
  60. package/lib/components/MediaPreview/MediaPreview.js.map +1 -1
  61. package/lib/components/MultiSelect/MultiSelect.js +3 -0
  62. package/lib/components/MultiSelect/MultiSelect.js.map +1 -1
  63. package/lib/components/NLPInput/NlpInput.js +1 -2
  64. package/lib/components/NLPInput/NlpInput.js.map +1 -1
  65. package/lib/components/NLPInput/components/NlpDropDown/NlpDropdown.js +6 -0
  66. package/lib/components/NLPInput/components/NlpDropDown/NlpDropdown.js.map +1 -1
  67. package/lib/components/PhoneInput/PhoneInput.js +21 -6
  68. package/lib/components/PhoneInput/PhoneInput.js.map +1 -1
  69. package/lib/components/PhoneInput/types.d.ts +6 -0
  70. package/lib/components/ProgressBar/ProgressBar.js +6 -1
  71. package/lib/components/ProgressBar/ProgressBar.js.map +1 -1
  72. package/lib/components/ProgressBar/types.d.ts +1 -0
  73. package/lib/components/PromptContainer/PromptContainer.js +4 -3
  74. package/lib/components/PromptContainer/PromptContainer.js.map +1 -1
  75. package/lib/components/PromptContainer/types.d.ts +1 -0
  76. package/lib/components/Search/Search.js +2 -2
  77. package/lib/components/Search/Search.js.map +1 -1
  78. package/lib/components/Select/Select.js +6 -6
  79. package/lib/components/Select/Select.js.map +1 -1
  80. package/lib/components/SequentialConnectingBranch/components/Branches/Branches.js +10 -2
  81. package/lib/components/SequentialConnectingBranch/components/Branches/Branches.js.map +1 -1
  82. package/lib/components/SequentialConnectingBranch/types.d.ts +1 -1
  83. package/lib/components/StepsLandingTable/Components/StepGroupAccordions.js +4 -1
  84. package/lib/components/StepsLandingTable/Components/StepGroupAccordions.js.map +1 -1
  85. package/lib/components/StepsLandingTable/Components/handleStepCheckBox.d.ts +1 -1
  86. package/lib/components/StepsLandingTable/Components/handleStepCheckBox.js +8 -6
  87. package/lib/components/StepsLandingTable/Components/handleStepCheckBox.js.map +1 -1
  88. package/lib/components/StepsLandingTable/constant.js +3 -3
  89. package/lib/components/StepsLandingTable/constant.js.map +1 -1
  90. package/lib/components/StepsLandingTable/types.d.ts +1 -1
  91. package/lib/components/Table/Table.d.ts +1 -1
  92. package/lib/components/Table/Table.js +5 -1
  93. package/lib/components/Table/Table.js.map +1 -1
  94. package/lib/components/Table/Types.d.ts +4 -0
  95. package/lib/components/TableTree/Components/TableHead.js +1 -1
  96. package/lib/components/TableTree/Components/TableHead.js.map +1 -1
  97. package/lib/components/TableTree/TableTree.js +6 -1
  98. package/lib/components/TableTree/TableTree.js.map +1 -1
  99. package/lib/components/TextEditor/TextEditor.js +2 -1
  100. package/lib/components/TextEditor/TextEditor.js.map +1 -1
  101. package/lib/components/variableSuggestionInputDropDown/VariableSuggestionInputDropDown.js +28 -21
  102. package/lib/components/variableSuggestionInputDropDown/VariableSuggestionInputDropDown.js.map +1 -1
  103. package/lib/components/variableSuggestionInputDropDown/types.d.ts +4 -0
  104. package/lib/hooks/useTriggerControl.d.ts +7 -0
  105. package/lib/hooks/useTriggerControl.js +20 -0
  106. package/lib/hooks/useTriggerControl.js.map +1 -0
  107. package/lib/index.cjs +505 -150
  108. package/lib/index.cjs.map +1 -1
  109. package/lib/index.d.ts +34 -7
  110. package/lib/index.js +3 -1
  111. package/lib/index.js.map +1 -1
  112. package/lib/node_modules/js-beautify/js/src/css/index.js +1 -1
  113. package/lib/node_modules/js-beautify/js/src/css/options.js +1 -1
  114. package/lib/node_modules/js-beautify/js/src/html/index.js +1 -1
  115. package/lib/node_modules/js-beautify/js/src/html/options.js +1 -1
  116. package/lib/node_modules/js-beautify/js/src/javascript/index.js +1 -1
  117. package/lib/node_modules/js-beautify/js/src/javascript/options.js +1 -1
  118. package/lib/styles.css +1 -1
  119. package/lib/styles.css.map +1 -1
  120. package/lib/tsconfig.tsbuildinfo +1 -1
  121. package/lib/utils/TreeNavigateUtils/getNavigateToKey.d.ts +4 -0
  122. package/lib/utils/TreeNavigateUtils/getNavigateToKey.js +111 -0
  123. package/lib/utils/TreeNavigateUtils/getNavigateToKey.js.map +1 -0
  124. package/lib/utils/TreeNavigateUtils/types.d.ts +9 -0
  125. package/lib/utils/TreeNavigateUtils/types.js +2 -0
  126. package/lib/utils/TreeNavigateUtils/types.js.map +1 -0
  127. package/lib/validations/regex.d.ts +3 -1
  128. package/lib/validations/regex.js +7 -2
  129. package/lib/validations/regex.js.map +1 -1
  130. package/package.json +4 -7
package/lib/index.cjs CHANGED
@@ -1030,6 +1030,8 @@ const SvgVideoRecordIcon = (props) => /* @__PURE__ */ React__namespace.createEle
1030
1030
 
1031
1031
  const SvgDeleteIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("g", { clipPath: "url(#clip0_264_41275)" }, /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.4889 5.70971C10.461 5.80125 10.4406 5.91361 10.4093 6.09629L10.3364 6.52397C10.6418 6.51771 10.9471 6.51458 11.2525 6.51458C12.0578 6.51458 12.8638 6.52769 13.6697 6.55365L13.5917 6.0997C13.5626 5.92423 13.5429 5.81412 13.5156 5.72387C13.5032 5.68311 13.4922 5.65716 13.484 5.64112C13.4801 5.63336 13.477 5.62836 13.475 5.62546C13.4738 5.6236 13.4725 5.6219 13.4725 5.6219L13.4708 5.6208C13.4673 5.61857 13.4531 5.61003 13.4209 5.59939C13.352 5.5766 13.2136 5.54839 12.962 5.54839H11.0397C10.6886 5.54839 10.5604 5.59822 10.5262 5.61748C10.5205 5.62644 10.5064 5.65232 10.4889 5.70971ZM10.5158 5.62494C10.5158 5.62494 10.5178 5.62238 10.5241 5.61867C10.5193 5.62332 10.5158 5.62494 10.5158 5.62494ZM15.3543 6.62657C16.4678 6.68706 17.5802 6.77177 18.6894 6.88003C19.1428 6.92428 19.4721 7.30491 19.4249 7.73019C19.3777 8.15547 18.9719 8.46435 18.5185 8.4201C16.103 8.18434 13.6736 8.06296 11.2525 8.06296C9.82904 8.06296 8.40541 8.13377 6.98148 8.27542L6.97895 8.27567L5.48224 8.42019C5.02879 8.46397 4.62335 8.15467 4.57667 7.72934C4.52999 7.30401 4.85975 6.92372 5.3132 6.87994L6.80737 6.73567L6.80861 6.73555C7.42348 6.6744 8.0384 6.62593 8.65336 6.59016L8.77934 5.85141C8.78245 5.83322 8.7857 5.81359 8.78907 5.79332C8.83757 5.5009 8.92023 5.00259 9.26405 4.61861C9.68718 4.14605 10.3225 4 11.0397 4H12.962C13.6921 4 14.3254 4.15931 14.7446 4.63506C15.0877 5.02449 15.1681 5.52276 15.2146 5.81076C15.2173 5.8279 15.22 5.8443 15.2226 5.85988L15.2229 5.86211L15.3543 6.62657ZM6.92449 9.16068C7.37948 9.13445 7.77099 9.45915 7.79897 9.88592L8.27558 17.1583L8.27572 17.1603C8.29662 17.454 8.31352 17.6714 8.35159 17.8576C8.38841 18.0376 8.43507 18.1315 8.4777 18.1861C8.52675 18.249 8.71729 18.4516 9.64572 18.4516H14.3559C15.2844 18.4516 15.4749 18.249 15.524 18.1861C15.5666 18.1315 15.6133 18.0376 15.6501 17.8576C15.6882 17.6713 15.7051 17.4539 15.726 17.1602L15.7261 17.1583L16.2027 9.88592C16.2307 9.45915 16.6222 9.13445 17.0772 9.16068C17.5322 9.18692 17.8783 9.55415 17.8504 9.98092L17.3732 17.2614L17.3719 17.2803C17.3528 17.5485 17.3308 17.8584 17.2713 18.1492C17.2091 18.4536 17.0962 18.7928 16.8563 19.1003C16.3404 19.7618 15.4745 20 14.3559 20H9.64572C8.5272 20 7.66123 19.7618 7.14535 19.1003C6.90551 18.7928 6.7926 18.4536 6.73037 18.1492C6.67089 17.8584 6.64887 17.5485 6.62981 17.2803L6.62846 17.2614L6.62819 17.2573L6.1513 9.98092C6.12333 9.55415 6.46949 9.18692 6.92449 9.16068ZM9.34125 12.3613C9.34125 11.9337 9.71079 11.5871 10.1666 11.5871H13.835C14.2909 11.5871 14.6604 11.9337 14.6604 12.3613C14.6604 12.7889 14.2909 13.1355 13.835 13.1355H10.1666C9.71079 13.1355 9.34125 12.7889 9.34125 12.3613ZM9.9502 15.2516C9.9502 14.824 10.3197 14.4774 10.7756 14.4774H13.2187C13.6746 14.4774 14.0441 14.824 14.0441 15.2516C14.0441 15.6792 13.6746 16.0258 13.2187 16.0258H10.7756C10.3197 16.0258 9.9502 15.6792 9.9502 15.2516Z", fill: "#A91224" })), /* @__PURE__ */ React__namespace.createElement("defs", null, /* @__PURE__ */ React__namespace.createElement("clipPath", { id: "clip0_264_41275" }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M0 4C0 1.79086 1.79086 0 4 0H20C22.2091 0 24 1.79086 24 4V20C24 22.2091 22.2091 24 20 24H4C1.79086 24 0 22.2091 0 20V4Z", fill: "white" }))));
1032
1032
 
1033
+ const SvgAiApproved = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M6.91407 0.00195312C7.44004 0.0019749 7.95329 0.216769 8.32227 0.59375L15.4395 7.86133C16.191 8.62936 16.1847 9.87295 15.4248 10.6328L10.6328 15.4248C9.87181 16.1838 8.62835 16.1895 7.86035 15.4375L0.592776 8.32129C0.215831 7.95234 4.19307e-05 7.4371 0.000979606 6.90918L0.0146515 1.33105C0.0176515 0.607055 0.607081 0.017625 1.33008 0.015625L6.90821 0.00195312H6.91407ZM10.6631 7.82812C10.4682 7.63321 10.1511 7.63337 9.95606 7.82812L7.83496 9.94922C7.6402 10.1442 7.64005 10.4613 7.83496 10.6562C8.02991 10.8519 8.34606 10.8519 8.542 10.6562L10.6631 8.53516C10.8578 8.34022 10.8578 8.02306 10.6631 7.82812ZM8.42481 5.58789C7.90589 5.06797 7.05909 5.06813 6.53907 5.58789L5.00782 7.12012C4.81282 7.31512 4.81282 7.63215 5.00782 7.82715C5.20276 8.02149 5.51903 8.02165 5.71387 7.82715L6.06641 7.47363L6.53809 7.94531L6.18555 8.29883C5.99055 8.49383 5.99055 8.81086 6.18555 9.00586C6.38057 9.20158 6.69767 9.20177 6.89258 9.00586L7.59375 8.30371C7.59537 8.30233 7.59812 8.30128 7.59961 8.2998C7.60109 8.29817 7.60199 8.29552 7.60352 8.29395L8.42481 7.47363C8.94401 6.95372 8.94416 6.10771 8.42481 5.58789ZM7.2461 6.29492C7.37612 6.16516 7.58786 6.165 7.71778 6.29492C7.84714 6.42573 7.84698 6.63669 7.71778 6.7666L7.24512 7.23828L6.77344 6.7666L7.2461 6.29492ZM3.35254 2.00098C2.61754 2.00098 2.01953 2.59898 2.01953 3.33398C2.01954 4.06898 2.61754 4.66699 3.35254 4.66699C4.08731 4.66673 4.68555 4.06882 4.68555 3.33398C4.68555 2.59915 4.08732 2.00124 3.35254 2.00098Z", fill: "#71347B" }));
1034
+
1033
1035
  let Components = {};
1034
1036
  Components['success'] = SvgSuccess;
1035
1037
  Components['setting_icon'] = SvgSettingIcon;
@@ -1466,6 +1468,7 @@ Components['video_record_icon'] = SvgVideoRecordIcon;
1466
1468
  Components['delete_icon'] = SvgDeleteIcon;
1467
1469
  Components['enable_filled'] = SvgEnableIconFilled;
1468
1470
  Components['disable_filled'] = SvgDisableIconFilled;
1471
+ Components['ai_approved'] = SvgAiApproved;
1469
1472
 
1470
1473
  const Icon = /*#__PURE__*/React.forwardRef(({
1471
1474
  name,
@@ -2441,9 +2444,11 @@ const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-
2441
2444
  // HTML Tags Validation
2442
2445
  const HTML_TAG_REGEX = /<\/?[\w\s=\"'\/\.:;#-]*>/g;
2443
2446
  // Whitespace Validation (Leading or Trailing)
2444
- const WHITESPACE_REGEX = /^\s+|\s+$/g;
2447
+ const WHITESPACE_REGEX = /^\s|\s$/;
2445
2448
  // US ZIP Code Validation (5 or 9 digits)
2446
2449
  const US_ZIP_CODE_REGEX = /^\d{5}(-\d{4})?$/;
2450
+ // start and end whitespace is valid one.
2451
+ const BIG_END_WHITESPACE = /^\s|\s$/;
2447
2452
  // Username Validation (Alphanumeric, underscores, 3-16 characters)
2448
2453
  const USERNAME_REGEX = /^[a-zA-Z0-9_]{3,16}$/;
2449
2454
  // Indian Specific Validations
@@ -2506,6 +2511,7 @@ const FILE_NAME_REGEX = /\.([^.@]+)$/;
2506
2511
  const ELEMENTS_TRAILING_SPACE_REGEX = /^\S.*\S$/;
2507
2512
  const ELEMENTS_WHITE_SPACE_REGEX = /.*\S.*/;
2508
2513
  const PARAMETER_ALPHANUMERIC_REGEX = /^[-_A-Za-z0-9 ]*$|^[-_A-Za-z0-9 ][A-Za-z0-9 ]*[-_A-Za-z-_]$/;
2514
+ const ALPHANUMERIC_PARENTHESIS_REGEX = /^[-_A-Za-z0-9 ()]*$|^[-_A-Za-z0-9 ()][A-Za-z0-9 ()]*[-_A-Za-z-()]$/;
2509
2515
  const STRIP_NEW_LINES_REGEX = /\n/g;
2510
2516
  //Regular expression to convert lower camel case by excluding spaces
2511
2517
  const CAMEL_CASE_REGEX = /(?:^\w|[A-Z]|\b\w|\s+)/g;
@@ -2552,6 +2558,8 @@ const LINK_VALIDATION_REGEX = /^(https?:\/\/)?((?!.*\.\.)[\da-z.-]+)\.([\da-z.-]
2552
2558
  // Alphanumeric Validation with specific Order including special characters (- , _ , ( , ) )
2553
2559
  const ALPHA_NUM_EXTENDED_REGEX = /^[a-zA-Z0-9 _\-()]+$/;
2554
2560
  // Alphanumeric string allowing only dot(.) as special character
2561
+ const ALPHANUMERIC_WITH_DOT_REGEX = /^[A-Za-z0-9.]+$/;
2562
+ // Alphanumeric string allowing only dot(.) as special character
2555
2563
  const EXCEL_SPACING_REGEX = /[\n\t"]/;
2556
2564
 
2557
2565
  const Dropdown$2 = /*#__PURE__*/React.forwardRef(({
@@ -2989,6 +2997,9 @@ const MultiSelect = ({
2989
2997
  }
2990
2998
  return document.documentElement;
2991
2999
  };
3000
+ React.useEffect(() => {
3001
+ calculatePosition();
3002
+ }, [searchedKeyword]);
2992
3003
  React.useEffect(() => {
2993
3004
  if (!selectWrapper.current) return;
2994
3005
  const scrollableParent = getScrollableParent(selectWrapper.current);
@@ -3473,7 +3484,7 @@ const Chip = ({
3473
3484
  fullText = '',
3474
3485
  variant = 'primary',
3475
3486
  labelWidth = 36,
3476
- fullTextWidth = 86,
3487
+ fullTextWidth = 800,
3477
3488
  onClick = () => {}
3478
3489
  }) => {
3479
3490
  const [isHovered, setIsHovered] = React.useState(false);
@@ -3482,7 +3493,7 @@ const Chip = ({
3482
3493
  const handleOnMouseLeave = () => setIsHovered(false);
3483
3494
  const dynamicStyle = isHovered ? {
3484
3495
  maxWidth: `${fullTextWidth}px`,
3485
- transition: 'transform 0.3s ease-in-out,max-width 0.5s ease-in-out',
3496
+ transition: 'transform 0.3s ease-in-out,max-width 1.5s ease-in-out',
3486
3497
  overflow: 'hidden'
3487
3498
  } : {
3488
3499
  maxWidth: `${labelWidth}px`,
@@ -3586,7 +3597,7 @@ const Input$1 = /*#__PURE__*/React.forwardRef(({
3586
3597
  };
3587
3598
  const handleKeyDown = e => {
3588
3599
  if (type === 'number') {
3589
- const invalidKeys = ['e', 'E', '+'];
3600
+ const invalidKeys = ['e', 'E', '+', '-'];
3590
3601
  if (invalidKeys.includes(e.key)) {
3591
3602
  e.preventDefault();
3592
3603
  }
@@ -4314,13 +4325,13 @@ const Select$1 = ({
4314
4325
  fromBottom: 0,
4315
4326
  width: 0
4316
4327
  });
4317
- setSearchedOption({
4318
- searchedText: getValue$1(selectedOption, valueAccessor) || '',
4319
- searchedIcon: selectedOption.iconName || ''
4320
- });
4328
+ setSelectOptionList(optionsList);
4321
4329
  if (inputRef?.current === document.activeElement) {
4322
4330
  inputRef?.current?.blur();
4323
- setSelectOptionList(optionsList);
4331
+ setSearchedOption({
4332
+ searchedText: getValue$1(selectedOption, valueAccessor) || '',
4333
+ searchedIcon: selectedOption.iconName || ''
4334
+ });
4324
4335
  setCustomRecurrence(false);
4325
4336
  onBlur();
4326
4337
  }
@@ -4457,7 +4468,7 @@ const Select$1 = ({
4457
4468
  'ff-select-labels__active': searchedText
4458
4469
  }),
4459
4470
  fontSize: searchedText || showDropdownOptions ? 10 : 12,
4460
- lineHeight: searchedText || showDropdownOptions ? '10px' : '12px',
4471
+ lineHeight: searchedText || showDropdownOptions && '12px',
4461
4472
  required: required,
4462
4473
  style: {
4463
4474
  maxWidth: `calc(${selectWidth} - 40px)`
@@ -9858,7 +9869,8 @@ const Table$1 = ({
9858
9869
  columnSticky = false,
9859
9870
  tableRef = null,
9860
9871
  isRowCheckBoxDisable,
9861
- isRowDisabled = true
9872
+ isRowDisabled = true,
9873
+ tableHeaderZindex = 99
9862
9874
  }) => {
9863
9875
  const observerRef = React.useRef(null);
9864
9876
  React.useEffect(() => {
@@ -9941,6 +9953,9 @@ const Table$1 = ({
9941
9953
  className: classNames({
9942
9954
  'ff-fixed-header': withFixedHeader
9943
9955
  }, tableHeadClass),
9956
+ style: {
9957
+ zIndex: tableHeaderZindex
9958
+ },
9944
9959
  children: jsxRuntime.jsx("tr", {
9945
9960
  children: columns.map((column, index) => jsxRuntime.jsxs("th", {
9946
9961
  className: classNames(`${headerType !== 'default' ? `${headerType}-bg` : ''}`, `${headerTextColor && `${headerTextColor}-color`}`, {
@@ -10345,7 +10360,7 @@ const DonutChart = ({
10345
10360
  y: "5",
10346
10361
  textAnchor: "middle",
10347
10362
  fill: colorMapping.skipped,
10348
- children: hoveredStatus ? `${resultStats?.find(statusValue => statusValue?.status?.toLowerCase() === hoveredStatus)?.count} ${legendDetailsType}` : `${totalCount} ${legendDetailsType}`
10363
+ children: hoveredStatus ? `${resultStats?.find(statusValue => statusValue?.status?.toLowerCase() === hoveredStatus)?.count ?? 0} ${legendDetailsType}` : `${totalCount} ${legendDetailsType}`
10349
10364
  }), jsxRuntime.jsx("rect", {
10350
10365
  x: -17,
10351
10366
  y: 14,
@@ -10833,8 +10848,22 @@ const FilePreview = ({
10833
10848
  onUploadFile,
10834
10849
  isUploadIcon,
10835
10850
  isRemoveDisabled = false,
10836
- isError = false
10851
+ isError = false,
10852
+ isIndependentPreview = false
10837
10853
  }) => {
10854
+ const fileInputRef = React.useRef(null);
10855
+ const handleReplaceClick = () => {
10856
+ if (fileInputRef.current) {
10857
+ fileInputRef.current.click();
10858
+ }
10859
+ };
10860
+ const handleFileChange = event => {
10861
+ const selectedFile = event.target.files?.[0];
10862
+ if (selectedFile) {
10863
+ onReplaceClick(selectedFile);
10864
+ }
10865
+ event.target.value = '';
10866
+ };
10838
10867
  return jsxRuntime.jsxs("div", {
10839
10868
  className: "ff-file-details__item",
10840
10869
  children: [jsxRuntime.jsxs("div", {
@@ -10878,7 +10907,13 @@ const FilePreview = ({
10878
10907
  height: 16,
10879
10908
  width: 16,
10880
10909
  hoverEffect: true,
10881
- onClick: () => onReplaceClick(file)
10910
+ onClick: () => {
10911
+ if (isIndependentPreview) {
10912
+ handleReplaceClick();
10913
+ } else {
10914
+ onReplaceClick(file);
10915
+ }
10916
+ }
10882
10917
  })
10883
10918
  })
10884
10919
  }), jsxRuntime.jsx("div", {
@@ -10911,6 +10946,15 @@ const FilePreview = ({
10911
10946
  })
10912
10947
  })
10913
10948
  })]
10949
+ }), isIndependentPreview && jsxRuntime.jsx("input", {
10950
+ type: "file",
10951
+ ref: fileInputRef,
10952
+ className: "ff-input-ref",
10953
+ onChange: handleFileChange,
10954
+ accept: file.type,
10955
+ style: {
10956
+ display: 'none'
10957
+ }
10914
10958
  })]
10915
10959
  }, file.name);
10916
10960
  };
@@ -16325,7 +16369,7 @@ const TableHead = /*#__PURE__*/React.memo(({
16325
16369
  return jsxRuntime.jsxs("thead", {
16326
16370
  className: "ff-table-tree-head",
16327
16371
  children: [jsxRuntime.jsx("tr", {
16328
- className: "ff-table-tree-row",
16372
+ className: "ff-table-tree-row no-hover",
16329
16373
  children: columnsData.map(({
16330
16374
  name,
16331
16375
  width
@@ -16522,6 +16566,7 @@ const EditLabel = ({
16522
16566
  error: false
16523
16567
  });
16524
16568
  const [currentSelectedOption, setCurrentSelectedOption] = React.useState(selectedOption);
16569
+ const [shouldShowToast, setShouldShowToast] = React.useState(false);
16525
16570
  const containerRef = React.useRef(null);
16526
16571
  const cancelRef = React.useRef(null);
16527
16572
  const confirmRef = React.useRef(null);
@@ -16578,6 +16623,7 @@ const EditLabel = ({
16578
16623
  if (isDisable.confirm) return;
16579
16624
  const errorMessage = handleCustomError ? handleCustomError(text) : '';
16580
16625
  if (errorMessage) {
16626
+ setShouldShowToast(true);
16581
16627
  handleToastToggle('error');
16582
16628
  setShowError(errorMessage);
16583
16629
  } else {
@@ -16604,6 +16650,7 @@ const EditLabel = ({
16604
16650
  useClickOutside(containerRef, handleOutsideClick, [confirmRef, cancelRef, dropdownRef]);
16605
16651
  const handleCancel = () => {
16606
16652
  if (isDisable.cancel) return;
16653
+ setShouldShowToast(false);
16607
16654
  if (required && !value) {
16608
16655
  handleToastToggle('error');
16609
16656
  setShowError('Text is required.');
@@ -16640,6 +16687,31 @@ const EditLabel = ({
16640
16687
  return '';
16641
16688
  }
16642
16689
  };
16690
+ const getScrollableParent = element => {
16691
+ if (!element) return window;
16692
+ let parent = element.parentElement;
16693
+ while (parent) {
16694
+ const overflowY = window.getComputedStyle(parent).overflowY;
16695
+ if (overflowY === 'auto' || overflowY === 'scroll') {
16696
+ return parent;
16697
+ }
16698
+ parent = parent.parentElement;
16699
+ }
16700
+ return window;
16701
+ };
16702
+ React.useEffect(() => {
16703
+ if (!containerRef.current) return;
16704
+ const scrollableParent = getScrollableParent(containerRef.current);
16705
+ const handleScroll = () => {
16706
+ handleCancel();
16707
+ };
16708
+ scrollableParent.addEventListener('scroll', handleScroll, {
16709
+ passive: true
16710
+ });
16711
+ return () => {
16712
+ scrollableParent.removeEventListener('scroll', handleScroll);
16713
+ };
16714
+ }, []);
16643
16715
  React.useEffect(() => {
16644
16716
  if (value) {
16645
16717
  setText(value);
@@ -16772,7 +16844,7 @@ const EditLabel = ({
16772
16844
  fontSize: 8,
16773
16845
  className: "error-text",
16774
16846
  children: showError
16775
- }), !inlineValidationError && jsxRuntime.jsx(Toaster, {
16847
+ }), !inlineValidationError && shouldShowToast && jsxRuntime.jsx(Toaster, {
16776
16848
  isOpen: toasts.error,
16777
16849
  variant: "info",
16778
16850
  toastTitle: "Info!",
@@ -17090,9 +17162,14 @@ const TreeTable = /*#__PURE__*/React.forwardRef(({
17090
17162
  const containerRef = React.useRef(null); // Reference for scroll container
17091
17163
  const [prevScrollTop, setPrevScrollTop] = React.useState(null);
17092
17164
  const previousTreeDataRef = React.useRef([]);
17165
+ const loadMoreAboveRef = React.useRef(false);
17093
17166
  // Handle load more data for pagination
17094
17167
  const loadMoreAbove = () => {
17095
17168
  if (loading || isLoading === 'above') return;
17169
+ if (!loadMoreAboveRef.current) {
17170
+ loadMoreAboveRef.current = true;
17171
+ return;
17172
+ }
17096
17173
  setIsLoading('above');
17097
17174
  setPrevScrollTop(containerRef.current?.scrollTop ?? null);
17098
17175
  // Trigger the loadMore callback for data loading from above
@@ -17121,7 +17198,7 @@ const TreeTable = /*#__PURE__*/React.forwardRef(({
17121
17198
  }
17122
17199
  }
17123
17200
  // Calculate the total height of the newly added rows
17124
- const totalAddedHeight = treeData.slice(0, addedRowsCount - (currentScrollTop > 5 ? 0 : 2)).reduce((heightSum, _, index) => {
17201
+ const totalAddedHeight = treeData.slice(0, addedRowsCount - (currentScrollTop > 5 ? 2 : 0)).reduce((heightSum, _, index) => {
17125
17202
  const rowHeight = allRows[index]?.getBoundingClientRect().height || 0;
17126
17203
  return heightSum + rowHeight;
17127
17204
  }, 0);
@@ -17553,7 +17630,7 @@ const Search = ({
17553
17630
  onClose,
17554
17631
  onExpand,
17555
17632
  showClose = true,
17556
- helperText = 'Minimum 3 characters are required',
17633
+ helperText = 'Minimum 3 characters required',
17557
17634
  showToaster = true,
17558
17635
  minLength = 3,
17559
17636
  isAISearch = false,
@@ -17676,7 +17753,7 @@ const Search = ({
17676
17753
  }),
17677
17754
  name: "input",
17678
17755
  style: {
17679
- width: isExpand ? `${width}px` : '0px'
17756
+ width: isExpand ? width <= 135 ? `${width - 8}px` : `${width}px` : '0px'
17680
17757
  },
17681
17758
  placeholder: placeholder,
17682
17759
  type: "text",
@@ -30880,9 +30957,7 @@ const AppHeader = ({
30880
30957
  }
30881
30958
  };
30882
30959
  return jsxRuntime.jsx("div", {
30883
- className: classNames('ff-app-header-main', {
30884
- 'ff-app-header-disabled': disabled
30885
- }),
30960
+ className: classNames('ff-app-header-main'),
30886
30961
  children: jsxRuntime.jsxs("div", {
30887
30962
  className: "ff-app-header",
30888
30963
  style: {
@@ -30929,7 +31004,7 @@ const AppHeader = ({
30929
31004
  ref: element => menuItemsRef.current[index] = element,
30930
31005
  className: classNames('ff-app-header-nav-bar-item', {
30931
31006
  ['ff-app-header-nav-bar-item--selected']: menuItem.label === selectedMenuItem,
30932
- 'ff-app-header-nav-bar-item--disabled': disabled
31007
+ 'ff-app-header-nav-bar-item--disabled': disabled && menuItem.label !== selectedMenuItem
30933
31008
  }),
30934
31009
  children: [jsxRuntime.jsx(Typography, {
30935
31010
  as: "div",
@@ -34049,6 +34124,12 @@ const NlpDropdown = ({
34049
34124
  height: 10,
34050
34125
  width: 10
34051
34126
  });
34127
+ } else if (platform === 'Webservice') {
34128
+ return jsxRuntime.jsx(Icon, {
34129
+ name: "web_service_icon",
34130
+ height: 10,
34131
+ width: 10
34132
+ });
34052
34133
  } else {
34053
34134
  return jsxRuntime.jsx(Icon, {
34054
34135
  name: "common_nlp",
@@ -34619,7 +34700,7 @@ const NlpInput = ({
34619
34700
  },
34620
34701
  onFocus: () => handleSelectAction('FOCUS_INPUT'),
34621
34702
  onChange: onSelectInputChange,
34622
- value: truncateText(value, 70),
34703
+ value: value,
34623
34704
  disabled: disabled,
34624
34705
  autoComplete: "off",
34625
34706
  spellCheck: "false",
@@ -34787,8 +34868,8 @@ const MachineInputField = ({
34787
34868
  const getIcon = {
34788
34869
  local: 'local',
34789
34870
  browserstack: 'browserstack_icon',
34790
- sauceLabs: 'sause_lab',
34791
- lambdaTest: 'lambda_icon',
34871
+ saucelabs: 'sause_lab',
34872
+ lambdatest: 'lambda_icon',
34792
34873
  mac: 'mac_icon',
34793
34874
  mac_icon: 'mac_icon',
34794
34875
  android: 'android_icon',
@@ -34943,7 +35024,9 @@ const Branches = ({
34943
35024
  browserVersion,
34944
35025
  machineInfo: {
34945
35026
  osVersion,
34946
- iconName
35027
+ iconName,
35028
+ osName,
35029
+ hostName
34947
35030
  },
34948
35031
  deviceInfo
34949
35032
  } = machineInstance;
@@ -34958,10 +35041,16 @@ const Branches = ({
34958
35041
  label: executionEnv,
34959
35042
  type: getEnvironment(executionEnv)
34960
35043
  }];
35044
+ if (scriptType.toLowerCase() === 'manual') {
35045
+ baseOptions.push({
35046
+ label: hostName || '',
35047
+ type: 'local'
35048
+ });
35049
+ }
34961
35050
  // Web-specific options
34962
35051
  const webOptions = [{
34963
35052
  label: osVersion,
34964
- type: iconName
35053
+ type: iconName || osName
34965
35054
  }, {
34966
35055
  label: browserVersion,
34967
35056
  type: browserName
@@ -37161,8 +37250,9 @@ const fontFamilyList = [{
37161
37250
  value: 'monospace'
37162
37251
  }];
37163
37252
  const fontSizeList = [5, 6, 8, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 32, 36, 40, 48, 56, 72];
37164
- const allowTextType = inputType => {
37165
- return inputType !== 'dropDown' && inputType !== 'file';
37253
+ const isPasteAllowed = currentCell => {
37254
+ const inputType = currentCell?.inputType?.type ?? 'text';
37255
+ return !['dropDown', 'file'].includes(inputType) && !currentCell?.readOnly;
37166
37256
  };
37167
37257
 
37168
37258
  const FORMULA_VALUE_PREFIX = '=';
@@ -37979,8 +38069,9 @@ function dragEndAutoFill(currentData, selectedRange, cellValue, activeCell) {
37979
38069
  row,
37980
38070
  column: col
37981
38071
  }, updatedData);
37982
- if (!currentCell) continue;
37983
- if (currentCell.readOnly) continue;
38072
+ if (!currentCell || currentCell.readOnly || ['file', 'dropDown'].includes(currentCell?.inputType?.type || '')) {
38073
+ continue;
38074
+ }
37984
38075
  const updatedCell = {
37985
38076
  ...currentCell,
37986
38077
  style: cellValue.style,
@@ -38006,7 +38097,7 @@ function edit$1(state) {
38006
38097
  }
38007
38098
  const canClearCell = cell => cell && !cell.readOnly;
38008
38099
  const clearCell = cell => {
38009
- if (!canClearCell(cell)) {
38100
+ if (!canClearCell(cell) || cell?.inputType?.type === 'file') {
38010
38101
  return cell;
38011
38102
  }
38012
38103
  return {
@@ -38152,7 +38243,9 @@ const keyDownHandlers = {
38152
38243
  const editKeyDownHandlers = {
38153
38244
  Escape: view,
38154
38245
  Tab: keyDownHandlers.Tab,
38155
- Enter: keyDownHandlers.ArrowDown
38246
+ Enter: keyDownHandlers.ArrowDown,
38247
+ Backspace: clearEditMode,
38248
+ Delete: clear
38156
38249
  };
38157
38250
  const editShiftKeyDownHandlers = {
38158
38251
  Tab: go(0, -1)
@@ -38815,7 +38908,7 @@ function reducer(state, action) {
38815
38908
  let newData = state.cut && state.copied ? unset(state.copied.start, state.model.data) : state.model.data;
38816
38909
  const commit = [];
38817
38910
  for (const point of selectedRange || []) {
38818
- const currentCell = get$1(point, state.model.data);
38911
+ const currentCell = get$1(point, state.model.data) || null;
38819
38912
  const updateWithStyle = {
38820
38913
  ...currentCell,
38821
38914
  value: cell?.value
@@ -38824,8 +38917,7 @@ function reducer(state, action) {
38824
38917
  prevCell: currentCell || EmptyCell,
38825
38918
  nextCell: EmptyCell
38826
38919
  });
38827
- const inputType = currentCell?.inputType?.type ?? 'text';
38828
- if (allowTextType(inputType)) {
38920
+ if (isPasteAllowed(currentCell)) {
38829
38921
  newData = set$1(point, updateWithStyle, newData);
38830
38922
  }
38831
38923
  }
@@ -38879,8 +38971,7 @@ function reducer(state, action) {
38879
38971
  prevCell: currentCell,
38880
38972
  nextCell: cell || null
38881
38973
  }];
38882
- const inputType = currentCell?.inputType?.type ?? 'text';
38883
- if (allowTextType(inputType)) {
38974
+ if (isPasteAllowed(currentCell)) {
38884
38975
  acc.data = set$1(nextPoint, {
38885
38976
  ...currentCell,
38886
38977
  value: cell?.value ?? ''
@@ -40497,6 +40588,7 @@ const ColumnIndicator = ({
40497
40588
  const activate$1 = React__namespace.useCallback(point => dispatch(activate(point)), [dispatch]);
40498
40589
  const handleClick = React__namespace.useCallback(event => {
40499
40590
  onSelect(column, event.shiftKey);
40591
+ console.log("Outer Div");
40500
40592
  }, [onSelect, column]);
40501
40593
  const contextClick = React__namespace.useCallback(event => {
40502
40594
  event.preventDefault();
@@ -40523,6 +40615,7 @@ const ColumnIndicator = ({
40523
40615
  },
40524
40616
  onClick: handleClick,
40525
40617
  onContextMenu: contextClick,
40618
+ onMouseDown: e => onMouseDrag(e, false),
40526
40619
  tabIndex: 0,
40527
40620
  children: [jsxRuntime.jsx(Typography, {
40528
40621
  fontWeight: "medium",
@@ -40531,10 +40624,10 @@ const ColumnIndicator = ({
40531
40624
  className: "drag-column-selector drag-column-left",
40532
40625
  onMouseDown: e => onMouseDrag(e, false),
40533
40626
  onDoubleClick: () => dispatch(setColumnPosition(column, minColumnWidth)),
40534
- onClick: () => activate$1({
40535
- row: -1,
40536
- column
40537
- })
40627
+ onClick: () => {
40628
+ // console.log("Inner Div")
40629
+ // activate({ row: -1, column })
40630
+ }
40538
40631
  }), jsxRuntime.jsx("div", {
40539
40632
  className: "drag-column-selector drag-column-right",
40540
40633
  onMouseDown: e => onMouseDrag(e, true),
@@ -41137,7 +41230,7 @@ const ActiveCell = props => {
41137
41230
  },
41138
41231
  value: cell?.value,
41139
41232
  disabled: false
41140
- }), jsxRuntime.jsx("div", {
41233
+ }), !['file', 'dropDown'].includes(cell?.inputType?.type ?? '') && jsxRuntime.jsx("div", {
41141
41234
  onMouseDown: handleMouseDown,
41142
41235
  className: "select_dot"
41143
41236
  })]
@@ -42212,6 +42305,7 @@ const ExcelFile = ({
42212
42305
  scroller = false,
42213
42306
  columnContextEnable = true,
42214
42307
  rowContextEnable = true,
42308
+ sheetBarContextEnable = true,
42215
42309
  minimumColumnWidth = 100,
42216
42310
  disableDeleteOption = false
42217
42311
  }) => {
@@ -42644,7 +42738,7 @@ const ExcelFile = ({
42644
42738
  })
42645
42739
  }), sheetBar === 'show' && jsxRuntime.jsxs("div", {
42646
42740
  className: "ff-excel-sheet-bar",
42647
- children: [jsxRuntime.jsx("div", {
42741
+ children: [sheetBarContextEnable && jsxRuntime.jsx("div", {
42648
42742
  className: "ff-excel-add-sheet-set",
42649
42743
  children: jsxRuntime.jsx(Tooltip, {
42650
42744
  title: "Add Sheet",
@@ -42666,7 +42760,9 @@ const ExcelFile = ({
42666
42760
  children: jsxRuntime.jsx("div", {
42667
42761
  onContextMenu: event => {
42668
42762
  handleSheetChange(name, index);
42669
- contextClick(event, name, index);
42763
+ if (sheetBarContextEnable) {
42764
+ contextClick(event, name, index);
42765
+ }
42670
42766
  },
42671
42767
  className: classNames('ff-excel-tab-list', {
42672
42768
  active: name === selectedSheet.name
@@ -42796,6 +42892,7 @@ const IconRadialChart = ({
42796
42892
  y: 0
42797
42893
  });
42798
42894
  const [showTooltip, setShowTooltip] = React.useState(false);
42895
+ const containerRef = React.useRef(null);
42799
42896
  let currentAngle = -Math.PI / 2;
42800
42897
  const svgSize = 2 * (radius + lineWidth);
42801
42898
  const {
@@ -42813,17 +42910,21 @@ const IconRadialChart = ({
42813
42910
  setShowTooltip(false);
42814
42911
  };
42815
42912
  const handleMouseMove = event => {
42816
- setTooltipPosition({
42817
- x: event.clientX + 10,
42818
- y: event.clientY + 10
42819
- });
42913
+ if (containerRef.current) {
42914
+ const rect = containerRef.current.getBoundingClientRect();
42915
+ setTooltipPosition({
42916
+ x: event.clientX - rect.left,
42917
+ y: event.clientY - rect.top
42918
+ });
42919
+ }
42820
42920
  };
42821
42921
  const renderTooltip = () => {
42822
42922
  return jsxRuntime.jsxs("div", {
42823
42923
  className: "ff-icon-radial-chart-tooltip",
42824
42924
  style: {
42825
- left: tooltipPosition.x,
42826
- top: tooltipPosition.y
42925
+ position: 'absolute',
42926
+ left: `${tooltipPosition.x + 15}px`,
42927
+ top: `${tooltipPosition.y - 5}px`
42827
42928
  },
42828
42929
  children: [jsxRuntime.jsx(Typography, {
42829
42930
  children: `${label} : `
@@ -42833,6 +42934,7 @@ const IconRadialChart = ({
42833
42934
  });
42834
42935
  };
42835
42936
  return jsxRuntime.jsxs("div", {
42937
+ ref: containerRef,
42836
42938
  className: "ff-icon-radial-chart-container",
42837
42939
  style: {
42838
42940
  '--fontSize': `${fontSize}px`
@@ -43782,6 +43884,7 @@ const VariableSuggestionInputDropDown = /*#__PURE__*/React.forwardRef(({
43782
43884
  symbol = '$',
43783
43885
  type = 'text',
43784
43886
  clearIcon = true,
43887
+ inputTitle = '',
43785
43888
  ...props
43786
43889
  }, ref) => {
43787
43890
  const [showDropdown, setShowDropdown] = React.useState(false);
@@ -43938,28 +44041,34 @@ const VariableSuggestionInputDropDown = /*#__PURE__*/React.forwardRef(({
43938
44041
  children: [jsxRuntime.jsxs("div", {
43939
44042
  className: "ff-add-variable-input",
43940
44043
  ref: containerRef,
43941
- children: [jsxRuntime.jsx(Input$1, {
43942
- ...props,
43943
- name: "add_variable",
43944
- ref: inputRef,
43945
- type: type,
43946
- value: value,
43947
- onChange: onChange,
43948
- onPaste: () => {
43949
- setShowCreateVariableIcon(true);
44044
+ children: [jsxRuntime.jsx(Tooltip, {
44045
+ title: inputTitle,
44046
+ style: {
44047
+ width: '100%'
43950
44048
  },
43951
- variant: "primary",
43952
- label: label,
43953
- placeholder: placeholder,
43954
- onClick: handleClick,
43955
- onKeyUp: handleKeyUp,
43956
- onFocus: () => setIsFocused(true),
43957
- onBlur: e => handleBlur(e),
43958
- autoComplete: autoComplete,
43959
- helperText: helperText,
43960
- error: error,
43961
- required: required,
43962
- ...formProps
44049
+ children: jsxRuntime.jsx(Input$1, {
44050
+ ...props,
44051
+ name: "add_variable",
44052
+ ref: inputRef,
44053
+ type: type,
44054
+ value: value,
44055
+ onChange: onChange,
44056
+ onPaste: () => {
44057
+ setShowCreateVariableIcon(true);
44058
+ },
44059
+ variant: "primary",
44060
+ label: label,
44061
+ placeholder: placeholder,
44062
+ onClick: handleClick,
44063
+ onKeyUp: handleKeyUp,
44064
+ onFocus: () => setIsFocused(true),
44065
+ onBlur: e => handleBlur(e),
44066
+ autoComplete: autoComplete,
44067
+ helperText: helperText,
44068
+ error: error,
44069
+ required: required,
44070
+ ...formProps
44071
+ })
43963
44072
  }), !checkEmpty(value) && !isOnlyHash && jsxRuntime.jsxs("div", {
43964
44073
  className: "ff-variable-icon-container",
43965
44074
  children: [clearIcon && jsxRuntime.jsx(Tooltip, {
@@ -44028,6 +44137,18 @@ const CreateVariableSlider = ({
44028
44137
  const [helperText, setHelperText] = React.useState('');
44029
44138
  const [hashInputValue, setHashInputValue] = React.useState();
44030
44139
  const [isSubmitting, setIsSubmitting] = React.useState(false);
44140
+ const [initialValues, setInitialValues] = React.useState({
44141
+ name: '',
44142
+ value: ''
44143
+ });
44144
+ React.useEffect(() => {
44145
+ if (isOpen && mode === 'edit') {
44146
+ setInitialValues({
44147
+ name: variableName,
44148
+ value: variableValue
44149
+ });
44150
+ }
44151
+ }, []);
44031
44152
  const getVariableNameError = value => {
44032
44153
  if (!value || value.length === 0) {
44033
44154
  return 'Variable Name is required';
@@ -44065,6 +44186,10 @@ const CreateVariableSlider = ({
44065
44186
  const isValid = isNonEmpty && matchesPattern && noWhitespaceEdges && lengthValid;
44066
44187
  return isValid;
44067
44188
  }
44189
+ const hasChanges = React.useMemo(() => {
44190
+ if (mode !== 'edit') return true;
44191
+ return variableName !== initialValues.name || variableValue !== initialValues.value;
44192
+ }, [mode, variableName, variableValue, initialValues]);
44068
44193
  const FooterContent = () => {
44069
44194
  return jsxRuntime.jsxs("div", {
44070
44195
  className: "ff-create-slider-footer",
@@ -44082,7 +44207,7 @@ const CreateVariableSlider = ({
44082
44207
  handleSubmit();
44083
44208
  }
44084
44209
  },
44085
- disabled: !isVariableNameValid(variableName) || isSubmitting
44210
+ disabled: !isVariableNameValid(variableName) || isSubmitting || mode === 'edit' && !hasChanges
44086
44211
  })]
44087
44212
  });
44088
44213
  };
@@ -44323,7 +44448,8 @@ const ProgressBar = ({
44323
44448
  labelTextColor = 'var(--ff-card-status-text-color)',
44324
44449
  showPercentage = false,
44325
44450
  percentageFontSize = 10,
44326
- percentageTextColor = 'var(--tooltip-text-color)'
44451
+ percentageTextColor = 'var(--tooltip-text-color)',
44452
+ progressBarWidth = '200px'
44327
44453
  }) => {
44328
44454
  const convertMemoryToMB = memory => {
44329
44455
  const trimmed = memory.trim().toLowerCase();
@@ -44368,8 +44494,12 @@ const ProgressBar = ({
44368
44494
  backgroundColor: trackColor,
44369
44495
  height: `${height}px`
44370
44496
  };
44497
+ const containerStyle = {
44498
+ width: progressBarWidth
44499
+ };
44371
44500
  return jsxRuntime.jsxs("div", {
44372
44501
  className: `ff-progress-bar-container ${computedLabel ? 'ff-has-label' : ''}`,
44502
+ style: containerStyle,
44373
44503
  children: [jsxRuntime.jsx("div", {
44374
44504
  className: "ff-progress-bar-track",
44375
44505
  style: trackStyle,
@@ -44504,6 +44634,7 @@ const MediaPreview = ({
44504
44634
  isDisabled = false
44505
44635
  }) => {
44506
44636
  const [isModalOpen, setIsModalOpen] = React.useState(false);
44637
+ const videoRef = React.useRef(null);
44507
44638
  const handleExpand = () => {
44508
44639
  setIsModalOpen(true);
44509
44640
  onExpandClick && onExpandClick(fileId);
@@ -44520,6 +44651,20 @@ const MediaPreview = ({
44520
44651
  setIsModalOpen(true);
44521
44652
  }
44522
44653
  }, [previewOnly]);
44654
+ React.useEffect(() => {
44655
+ if (isModalOpen) {
44656
+ setTimeout(() => {
44657
+ if (videoRef.current) {
44658
+ const playPromise = videoRef.current.play();
44659
+ if (playPromise !== undefined) {
44660
+ playPromise.catch(error => {
44661
+ console.error('Autoplay failed:', error);
44662
+ });
44663
+ }
44664
+ }
44665
+ }, 300);
44666
+ }
44667
+ }, [isModalOpen]);
44523
44668
  return jsxRuntime.jsxs("div", {
44524
44669
  children: [!previewOnly && (isMediaIcon ? jsxRuntime.jsx(Icon, {
44525
44670
  name: iconName,
@@ -44548,16 +44693,30 @@ const MediaPreview = ({
44548
44693
  className: "media-wrapper",
44549
44694
  children: [jsxRuntime.jsxs("div", {
44550
44695
  className: "ff-expand-icons",
44551
- children: [jsxRuntime.jsx(Icon, {
44552
- name: "download_file_icon",
44553
- onClick: handleDownload,
44554
- color: "var(--icons-default-color)",
44555
- className: "header-icons"
44556
- }), jsxRuntime.jsx(Icon, {
44557
- name: "close",
44558
- onClick: handleClose,
44559
- color: "var(--icons-default-color)",
44560
- className: "header-icons"
44696
+ children: [jsxRuntime.jsx(Tooltip, {
44697
+ title: "Download File",
44698
+ children: jsxRuntime.jsx(Icon, {
44699
+ name: "download_file_icon",
44700
+ onClick: handleDownload,
44701
+ color: "var(--icons-default-color)",
44702
+ className: "header-icons"
44703
+ })
44704
+ }), jsxRuntime.jsx(Tooltip, {
44705
+ title: "Expand",
44706
+ children: jsxRuntime.jsx(Icon, {
44707
+ name: "expand",
44708
+ onClick: handleExpand,
44709
+ color: "var(--icons-default-color)",
44710
+ className: "header-icons"
44711
+ })
44712
+ }), jsxRuntime.jsx(Tooltip, {
44713
+ title: "close",
44714
+ children: jsxRuntime.jsx(Icon, {
44715
+ name: "close",
44716
+ onClick: handleClose,
44717
+ color: "var(--icons-default-color)",
44718
+ className: "header-icons"
44719
+ })
44561
44720
  })]
44562
44721
  }), mediaType === 'image' && jsxRuntime.jsx("img", {
44563
44722
  src: MediaSrc,
@@ -44568,7 +44727,8 @@ const MediaPreview = ({
44568
44727
  src: MediaSrc,
44569
44728
  controls: true,
44570
44729
  controlsList: "nodownload",
44571
- className: "ff-video-preview"
44730
+ className: "ff-video-preview",
44731
+ ref: videoRef
44572
44732
  })]
44573
44733
  })
44574
44734
  })]
@@ -45056,7 +45216,8 @@ const PromptContainer = ({
45056
45216
  onPreviousClick,
45057
45217
  disabled,
45058
45218
  isEditAccess,
45059
- versionsLength
45219
+ versionsLength,
45220
+ count
45060
45221
  }) => {
45061
45222
  const [isExpanded, setIsExpanded] = React.useState(false);
45062
45223
  const [showReadMore, setShowReadMore] = React.useState(false);
@@ -45166,7 +45327,7 @@ const PromptContainer = ({
45166
45327
  }), jsxRuntime.jsxs("div", {
45167
45328
  className: "ff-prompt-icons-rightside",
45168
45329
  children: [jsxRuntime.jsx(Icon, {
45169
- disabled: disabled,
45330
+ disabled: count === 1,
45170
45331
  className: "ff-prompt-icons-style",
45171
45332
  name: "arrow_left_accordian",
45172
45333
  color: "var(--table-column-text-color)",
@@ -45174,7 +45335,7 @@ const PromptContainer = ({
45174
45335
  height: 18,
45175
45336
  onClick: e => handleNavigationClick(e, onPreviousClick)
45176
45337
  }), numberChildren, jsxRuntime.jsx(Icon, {
45177
- disabled: disabled,
45338
+ disabled: count === versionsLength,
45178
45339
  className: "ff-prompt-icons-style",
45179
45340
  name: "arrow_right_icon",
45180
45341
  color: "var(--table-column-text-color)",
@@ -51657,7 +51818,7 @@ const BarChart = ({
51657
51818
  }), normalizedData.map((item, index) => {
51658
51819
  const computedBarHeight = item.normalizedValue / maxValue * height;
51659
51820
  const minBarHeight = 2;
51660
- const barHeight = item.normalizedValue === 0 ? minBarHeight : computedBarHeight;
51821
+ const barHeight = item.normalizedValue < 1 ? minBarHeight : computedBarHeight;
51661
51822
  const barX = index * (barWidth + barGap) + leftPadding + padding;
51662
51823
  const barY = height - barHeight + topPadding;
51663
51824
  const iconWidth = iconSize || 20;
@@ -51808,9 +51969,26 @@ const MultiRadialChart = ({
51808
51969
  visible: false,
51809
51970
  x: 0,
51810
51971
  y: 0,
51811
- content: ''
51972
+ content: '',
51973
+ isArc: false
51812
51974
  });
51813
51975
  const [hoveredLegend, setHoveredLegend] = React.useState(null);
51976
+ const renderGradients = () => jsxRuntime.jsx("defs", {
51977
+ children: barValues.map((bar, i) => Array.isArray(bar.arcColor) ? jsxRuntime.jsx("linearGradient", {
51978
+ id: `gradient-${i}`,
51979
+ x1: "0%",
51980
+ y1: "0%",
51981
+ x2: "100%",
51982
+ y2: "0%",
51983
+ gradientTransform: "rotate(90)",
51984
+ children: bar.arcColor.map((color, idx) => jsxRuntime.jsx("stop", {
51985
+ offset: `${idx / (bar.arcColor.length - 1) * 100}%`,
51986
+ stopColor: color
51987
+ }, idx))
51988
+ }, `gradient-${i}`) : null)
51989
+ });
51990
+ const getArcColor = (bar, index) => Array.isArray(bar.arcColor) ? `url(#gradient-${index})` : bar.arcColor;
51991
+ const getLegendColor = bar => Array.isArray(bar.arcColor) ? bar.arcColor[0] : bar.arcColor;
51814
51992
  const parseValueToMB = value => {
51815
51993
  if (typeof value === 'string') {
51816
51994
  const match = value.trim().match(/^([\d.]+)\s*([a-zA-Z%]*)$/);
@@ -51869,17 +52047,18 @@ const MultiRadialChart = ({
51869
52047
  className: "ff-legend-item",
51870
52048
  onMouseEnter: e => {
51871
52049
  setHoveredLegend(item.barLabel || item.label);
51872
- handleMouseEnter(e, `${item.barLabel || 'Data'}: ${item.value}`);
52050
+ handleMouseEnter(e, `${item.barLabel || 'Data'}: ${item.value}`, false);
51873
52051
  },
52052
+ onMouseMove: handleMouseMove,
51874
52053
  onMouseLeave: () => {
51875
52054
  setHoveredLegend(null);
51876
- handleMouseLeave?.();
52055
+ handleMouseLeave();
51877
52056
  },
51878
52057
  children: [jsxRuntime.jsx(Typography, {
51879
52058
  fontSize: 20,
51880
52059
  fontWeight: "semi-bold",
51881
52060
  className: "ff-legend-value",
51882
- color: item.arcColor,
52061
+ color: getLegendColor(item),
51883
52062
  children: item.key.padStart(2, '0')
51884
52063
  }), jsxRuntime.jsx(Typography, {
51885
52064
  fontSize: 10,
@@ -51899,16 +52078,17 @@ const MultiRadialChart = ({
51899
52078
  className: "ff-legend-item",
51900
52079
  onMouseEnter: e => {
51901
52080
  setHoveredLegend(item.barLabel || item.label);
51902
- handleMouseEnter(e, `${item.barLabel || 'Data'}: ${item.value}`);
52081
+ handleMouseEnter(e, `${item.barLabel || 'Data'}: ${item.value}`, false);
51903
52082
  },
52083
+ onMouseMove: handleMouseMove,
51904
52084
  onMouseLeave: () => {
51905
52085
  setHoveredLegend(null);
51906
- handleMouseLeave?.();
52086
+ handleMouseLeave();
51907
52087
  },
51908
52088
  children: [jsxRuntime.jsx("span", {
51909
52089
  className: "ff-legend-capsule",
51910
52090
  style: {
51911
- backgroundColor: item.arcColor
52091
+ backgroundColor: getLegendColor(item)
51912
52092
  },
51913
52093
  children: jsxRuntime.jsx(Typography, {
51914
52094
  fontSize: 10,
@@ -51926,17 +52106,17 @@ const MultiRadialChart = ({
51926
52106
  return null;
51927
52107
  }
51928
52108
  };
51929
- const handleMouseEnter = (e, content) => {
52109
+ const handleMouseEnter = (e, content, isArc) => {
51930
52110
  const {
51931
52111
  clientX,
51932
52112
  clientY
51933
52113
  } = e;
51934
- const container = e.currentTarget.getBoundingClientRect();
51935
52114
  setTooltip({
51936
52115
  visible: true,
51937
- x: clientX - container.left,
51938
- y: clientY - container.top,
51939
- content: content
52116
+ x: clientX,
52117
+ y: clientY,
52118
+ content: content,
52119
+ isArc
51940
52120
  });
51941
52121
  };
51942
52122
  const handleMouseMove = e => {
@@ -51944,11 +52124,10 @@ const MultiRadialChart = ({
51944
52124
  clientX,
51945
52125
  clientY
51946
52126
  } = e;
51947
- const container = e.currentTarget.getBoundingClientRect();
51948
52127
  setTooltip(prev => ({
51949
52128
  ...prev,
51950
- x: clientX - container.left,
51951
- y: clientY - container.top
52129
+ x: clientX,
52130
+ y: clientY
51952
52131
  }));
51953
52132
  };
51954
52133
  const handleMouseLeave = () => {
@@ -51956,7 +52135,8 @@ const MultiRadialChart = ({
51956
52135
  visible: false,
51957
52136
  x: 0,
51958
52137
  y: 0,
51959
- content: ''
52138
+ content: '',
52139
+ isArc: false
51960
52140
  });
51961
52141
  };
51962
52142
  const textData = (text, maxLength) => {
@@ -51967,25 +52147,32 @@ const MultiRadialChart = ({
51967
52147
  const valueString = tooltip.content.split(':')[0]?.trim();
51968
52148
  if (valueString === undefined) return '';
51969
52149
  const matchingBar = normalizedBarValues.find(val => val.barLabel === valueString);
51970
- return matchingBar?.arcColor || '';
52150
+ if (!matchingBar) return '';
52151
+ const chartItem = {
52152
+ ...matchingBar,
52153
+ label: matchingBar.barLabel,
52154
+ key: matchingBar.labelValue?.toString() ?? ''
52155
+ };
52156
+ return getLegendColor(chartItem);
51971
52157
  };
52158
+ const DEFAULT_LINE_HEIGHT = 18;
51972
52159
  return jsxRuntime.jsxs("div", {
51973
52160
  className: `ff-multi-radial-chart-container ${legendType === 'numberLegend' ? 'ff-multi-radial-chart-number' : 'ff-multi-radial-chart-pill'}`,
51974
52161
  style: {
51975
52162
  gap: chartToLegendGap
51976
52163
  },
51977
- children: [jsxRuntime.jsxs("div", {
52164
+ children: [jsxRuntime.jsx("div", {
51978
52165
  className: "relative",
51979
52166
  style: {
51980
52167
  width: svgSize,
51981
52168
  height: svgSize
51982
52169
  },
51983
- children: [jsxRuntime.jsx("svg", {
52170
+ children: jsxRuntime.jsxs("svg", {
51984
52171
  width: svgSize,
51985
52172
  height: svgSize,
51986
52173
  viewBox: `0 0 ${svgSize} ${svgSize}`,
51987
52174
  className: "absolute top-0 left-0",
51988
- children: jsxRuntime.jsxs("g", {
52175
+ children: [renderGradients(), jsxRuntime.jsxs("g", {
51989
52176
  transform: `translate(${svgSize / 2 + 1}, ${svgSize / 2 + 1})`,
51990
52177
  children: [reversedBarValues.map((values, i) => {
51991
52178
  const originalIndex = normalizedBarValues.length - 1 - i;
@@ -52019,8 +52206,12 @@ const MultiRadialChart = ({
52019
52206
  cx: dotX,
52020
52207
  cy: dotY,
52021
52208
  r: lineWidth + 1,
52022
- fill: values.arcColor,
52023
- onMouseEnter: e => handleMouseEnter(e, `${values.barLabel || 'Data'}: ${values.value}`),
52209
+ fill: getArcColor({
52210
+ ...values,
52211
+ label: values.barLabel || '',
52212
+ key: values.labelValue?.toString() || ''
52213
+ }, originalIndex),
52214
+ onMouseEnter: e => handleMouseEnter(e, `${values.barLabel || 'Data'}: ${values.value}`, true),
52024
52215
  onMouseMove: handleMouseMove,
52025
52216
  onMouseLeave: handleMouseLeave,
52026
52217
  style: arcStyle
@@ -52039,10 +52230,14 @@ const MultiRadialChart = ({
52039
52230
  }), jsxRuntime.jsx("path", {
52040
52231
  d: foregroundArcPath,
52041
52232
  fill: "none",
52042
- stroke: values.arcColor,
52233
+ stroke: getArcColor({
52234
+ ...values,
52235
+ label: values.barLabel || '',
52236
+ key: values.labelValue?.toString() || ''
52237
+ }, originalIndex),
52043
52238
  strokeWidth: lineWidth,
52044
52239
  strokeLinecap: lineCap === 'square' ? 'butt' : 'round',
52045
- onMouseEnter: e => handleMouseEnter(e, `${values.barLabel || 'Data'}: ${values.value}`),
52240
+ onMouseEnter: e => handleMouseEnter(e, `${values.barLabel || 'Data'}: ${values.value}`, true),
52046
52241
  onMouseMove: handleMouseMove,
52047
52242
  onMouseLeave: handleMouseLeave,
52048
52243
  style: {
@@ -52084,7 +52279,7 @@ const MultiRadialChart = ({
52084
52279
  children: firstWord
52085
52280
  }), jsxRuntime.jsx("tspan", {
52086
52281
  x: "0",
52087
- dy: 18,
52282
+ dy: DEFAULT_LINE_HEIGHT,
52088
52283
  style: {
52089
52284
  fontSize: `${subLabelFontSize}px`
52090
52285
  },
@@ -52095,7 +52290,7 @@ const MultiRadialChart = ({
52095
52290
  }
52096
52291
  return jsxRuntime.jsx("tspan", {
52097
52292
  x: "0",
52098
- dy: index === 0 ? 0 : 18,
52293
+ dy: index === 0 ? 0 : DEFAULT_LINE_HEIGHT,
52099
52294
  className: "ff-center-text",
52100
52295
  style: {
52101
52296
  fontSize: `${subLabelFontSize}px`
@@ -52105,16 +52300,19 @@ const MultiRadialChart = ({
52105
52300
  })
52106
52301
  })
52107
52302
  })]
52108
- })
52109
- }), tooltip.visible && jsxRuntime.jsx("div", {
52110
- className: "ff-multi-radial-tooltip",
52111
- style: {
52112
- top: tooltip.y + 10,
52113
- left: tooltip.x + 100,
52114
- zIndex: 1000
52115
- },
52116
- children: tooltip.content
52117
- })]
52303
+ })]
52304
+ })
52305
+ }), tooltip.visible && jsxRuntime.jsx("div", {
52306
+ className: "ff-multi-radial-tooltip",
52307
+ style: {
52308
+ position: 'fixed',
52309
+ top: `${tooltip.y - (tooltip.isArc ? 5 : -10)}px`,
52310
+ left: `${tooltip.x + (tooltip.isArc ? 60 : 15)}px`,
52311
+ zIndex: 1000,
52312
+ transform: tooltip.isArc ? 'translateX(-50%)' : 'none',
52313
+ pointerEvents: 'none'
52314
+ },
52315
+ children: tooltip.content
52118
52316
  }), isLegendDetails && renderLegend(normalizedBarValues.map(value => ({
52119
52317
  ...value,
52120
52318
  label: value?.barLabel,
@@ -59241,8 +59439,8 @@ const MachineInstances = ({
59241
59439
  parentNodeIndex
59242
59440
  })
59243
59441
  })]
59244
- }, ffid())
59245
- }, runLevelExecutionDataSet?.runLevelExecutionDataSetId + ffid()))
59442
+ })
59443
+ }, runLevelExecutionDataSet?.runLevelExecutionDataSetId))
59246
59444
  }), childNodeIndex === parentNodeData.machineInstances.length - 1 && jsxRuntime.jsx(jsxRuntime.Fragment, {
59247
59445
  children: !isReadOnlyMode && jsxRuntime.jsxs(jsxRuntime.Fragment, {
59248
59446
  children: [jsxRuntime.jsx("div", {
@@ -59266,7 +59464,7 @@ const MachineInstances = ({
59266
59464
  })]
59267
59465
  })
59268
59466
  })]
59269
- }, ffid());
59467
+ });
59270
59468
  })
59271
59469
  });
59272
59470
  };
@@ -59385,7 +59583,7 @@ const ConnectingBranch = ({
59385
59583
  parentNodeData,
59386
59584
  parentNodeIndex
59387
59585
  })
59388
- }, ffid()), getParentNodeComponentActionItems({
59586
+ }), getParentNodeComponentActionItems({
59389
59587
  parentNodeData,
59390
59588
  parentNodeIndex
59391
59589
  })]
@@ -59402,7 +59600,7 @@ const ConnectingBranch = ({
59402
59600
  isReadOnlyMode: isReadOnlyMode
59403
59601
  })]
59404
59602
  })
59405
- }, ffid());
59603
+ });
59406
59604
  }), !isReadOnlyMode && jsxRuntime.jsx("div", {
59407
59605
  className: "ff-select-machine-input",
59408
59606
  style: {
@@ -59891,12 +60089,15 @@ const ChildComment = ({
59891
60089
  })
59892
60090
  }), isEditDeleteActionAllowed && deleteEnable && jsxRuntime.jsx("div", {
59893
60091
  className: "action-icon",
59894
- onClick: () => handleDeleteNode(comment.id),
59895
60092
  children: jsxRuntime.jsx(Tooltip, {
59896
60093
  title: "Delete",
59897
60094
  children: jsxRuntime.jsx(Icon, {
59898
60095
  name: "delete",
59899
60096
  color: "var(--ff-delete-button-attachment)",
60097
+ onClick: () => {
60098
+ if (showInput) return;
60099
+ handleDeleteNode(comment.id);
60100
+ },
59900
60101
  disabled: editMode || showInput || isDisable,
59901
60102
  hoverEffect: true
59902
60103
  })
@@ -60044,7 +60245,8 @@ const Comments = ({
60044
60245
  rowBreakCharCount = 83,
60045
60246
  isVewMode = false,
60046
60247
  deleteEnable = true,
60047
- showTextarea = false
60248
+ showTextarea = false,
60249
+ autoFocus = false
60048
60250
  }) => {
60049
60251
  const [input, setInput] = React.useState('');
60050
60252
  const [commentData, setCommentsData] = React.useState([]);
@@ -60288,7 +60490,7 @@ const Comments = ({
60288
60490
  children: [jsxRuntime.jsx("textarea", {
60289
60491
  className: "inputContainer_input first_input",
60290
60492
  rows: input.length < rowBreakCharCount ? 1 : 3,
60291
- autoFocus: true,
60493
+ autoFocus: autoFocus,
60292
60494
  value: input,
60293
60495
  onChange: e => textAreaInputChange(e),
60294
60496
  placeholder: "Add a comment",
@@ -60335,6 +60537,22 @@ const Comments = ({
60335
60537
  });
60336
60538
  };
60337
60539
 
60540
+ const useTriggerControl = () => {
60541
+ const canTriggerRef = React.useRef(true);
60542
+ const canTrigger = () => canTriggerRef.current;
60543
+ const setTriggered = () => {
60544
+ canTriggerRef.current = false;
60545
+ };
60546
+ const resetTrigger = () => {
60547
+ canTriggerRef.current = true;
60548
+ };
60549
+ return {
60550
+ canTrigger,
60551
+ setTriggered,
60552
+ resetTrigger
60553
+ };
60554
+ };
60555
+
60338
60556
  const PopUpModal = ({
60339
60557
  isOpen,
60340
60558
  onClose,
@@ -60684,8 +60902,10 @@ const ConditionalDropdown = /*#__PURE__*/React.forwardRef(({
60684
60902
  onClick: handleClick,
60685
60903
  onKeyUp: handleKeyUp,
60686
60904
  onFocus: e => {
60687
- setIsFocused(true);
60688
- onFocus?.(e);
60905
+ setTimeout(() => {
60906
+ setIsFocused(true);
60907
+ onFocus?.(e);
60908
+ }, 500);
60689
60909
  },
60690
60910
  onBlur: e => {
60691
60911
  handleBlur(e);
@@ -73369,6 +73589,7 @@ const PhoneInputField = ({
73369
73589
  const [phone, setPhone] = React.useState(initialValue);
73370
73590
  const [isFocused, setIsFocused] = React.useState(false);
73371
73591
  const [isValid, setIsValid] = React.useState(initialIsValid);
73592
+ const [selectedCountry, setSelectedCountry] = React.useState(country);
73372
73593
  React.useEffect(() => {
73373
73594
  if (initialValue) {
73374
73595
  let formattedPhone = initialValue;
@@ -73378,12 +73599,25 @@ const PhoneInputField = ({
73378
73599
  setPhone(formattedPhone);
73379
73600
  }
73380
73601
  }, [initialValue]);
73381
- const handlePhoneChange = phone => {
73602
+ const handlePhoneChange = (phone, countryData) => {
73603
+ const newCountryCode = countryData?.countryCode?.toLowerCase();
73382
73604
  const cleanedPhone = phone.replace(/[^0-9+]/g, '');
73383
- setPhone(cleanedPhone);
73384
- onChange(cleanedPhone);
73385
- const isPhoneValid = isValidPhoneNumber(cleanedPhone);
73386
- setIsValid(isPhoneValid);
73605
+ if (selectedCountry?.toLowerCase() !== newCountryCode) {
73606
+ setPhone(countryData?.dialCode);
73607
+ onChange(countryData?.dialCode);
73608
+ setSelectedCountry(newCountryCode);
73609
+ setIsValid(true);
73610
+ return;
73611
+ }
73612
+ let formattedPhone = cleanedPhone;
73613
+ if (!formattedPhone.startsWith('+')) {
73614
+ formattedPhone = `+${formattedPhone}`;
73615
+ }
73616
+ setPhone(formattedPhone);
73617
+ onChange(formattedPhone);
73618
+ const isPhoneValid = isValidPhoneNumber(formattedPhone);
73619
+ const isOnlyCountryCode = phone && phone.replace(/[^\d]/g, '').length <= 3;
73620
+ setIsValid(isPhoneValid || isOnlyCountryCode);
73387
73621
  };
73388
73622
  const handleFocus = event => {
73389
73623
  setIsFocused(true);
@@ -73392,8 +73626,9 @@ const PhoneInputField = ({
73392
73626
  const handleBlur = event => {
73393
73627
  setIsFocused(false);
73394
73628
  if (onBlur) onBlur(event);
73629
+ const isOnlyCountryCode = phone && phone.replace(/[^\d]/g, '').length <= 3;
73395
73630
  const isPhoneValid = isValidPhoneNumber(phone);
73396
- setIsValid(isPhoneValid);
73631
+ setIsValid(isPhoneValid || isOnlyCountryCode);
73397
73632
  };
73398
73633
  return jsxRuntime.jsxs("div", {
73399
73634
  id: id,
@@ -74393,7 +74628,10 @@ const StepGroupAccordions = /*#__PURE__*/React.memo(({
74393
74628
  style: {
74394
74629
  padding: '4px 18px'
74395
74630
  }
74396
- }), prepareData(item, col)]
74631
+ }), prepareData({
74632
+ ...item,
74633
+ marginLeft: indent
74634
+ }, col)]
74397
74635
  }), idx === 0 && ['Group', 'PRE', 'POST', 'Script'].includes(item.type) && jsxRuntime.jsx("div", {
74398
74636
  className: `ff-accordion-arrow ${isStepGroupExpanded?.(item.stepId) ? 'expanded' : ''}`,
74399
74637
  children: jsxRuntime.jsx(Icon, {
@@ -74972,19 +75210,21 @@ function getUpdatedPartialSelect(tableData, prevPartialSelect) {
74972
75210
  return new Set([...prevPartialSelect].filter(id => allCurrentIds.has(id)));
74973
75211
  }
74974
75212
  function getUpdatedExpandedRows(tableData, prevExpandedRows, defaultExpanded) {
74975
- const needToExpand = {
75213
+ const sectionTitlesToExpand = {
74976
75214
  Steps: 'Steps',
74977
- Depends: 'Depends on Script',
74978
- PRE: "Pre conditions",
74979
- POST: "Post conditions"
75215
+ Depends: 'Depends on Scripts',
75216
+ PRE: 'Pre Conditions',
75217
+ POST: 'Post Conditions'
74980
75218
  };
74981
75219
  const newExpandedRows = {};
74982
75220
  tableData.forEach(section => {
74983
- newExpandedRows[section.title] = section.title in prevExpandedRows ? prevExpandedRows[section.title] ?? false : section.title === needToExpand[defaultExpanded];
75221
+ const title = section.title;
75222
+ const wasPreviouslyExpanded = title in prevExpandedRows;
75223
+ const shouldExpandByDefault = defaultExpanded === 'All' ? Object.values(sectionTitlesToExpand).includes(title) : title === sectionTitlesToExpand[defaultExpanded];
75224
+ newExpandedRows[title] = wasPreviouslyExpanded ? prevExpandedRows[title] ?? false : shouldExpandByDefault;
74984
75225
  });
74985
75226
  return newExpandedRows;
74986
75227
  }
74987
- //?
74988
75228
  const gettingBlockMap = (tableData, selectedRows, stepPartialSelect) => {
74989
75229
  let dynamicUpdate = getBlockMap(tableData);
74990
75230
  const updatedSelectedRows = new Set(selectedRows.Steps);
@@ -109147,8 +109387,9 @@ const TextEditor = ({
109147
109387
  };
109148
109388
  const EditorComponent = reactDraftWysiwygExports.Editor;
109149
109389
  return jsxRuntime.jsxs("div", {
109390
+ className: "ff-textEditor-container",
109150
109391
  children: [jsxRuntime.jsxs("div", {
109151
- className: "ff-texteditor-label-asterisk-container",
109392
+ className: "ff-textEditor-label-asterisk-container",
109152
109393
  children: [required && jsxRuntime.jsx(Typography, {
109153
109394
  className: "required-asterisk",
109154
109395
  children: "* "
@@ -109419,6 +109660,115 @@ function getTopVisibleNodeKey(scrollContainerWrapper, treeData) {
109419
109660
 
109420
109661
  const nlpInputDelay = ms => new Promise(resolve => setTimeout(resolve, ms));
109421
109662
 
109663
+ const getNavigateToKey = (currentNode, treeData, action) => {
109664
+ // this function will find all the children nodes of the current node
109665
+ const getAllChildrenNodesUsingSearchKey = (treeData, searchKey) => {
109666
+ return treeData.filter(node => node.searchKey && node.searchKey.startsWith(searchKey + '/'));
109667
+ };
109668
+ // this function will find the last child of the current node
109669
+ const findLastChild = (treeData, currentNode) => {
109670
+ // Get all children of the current node using searchKey
109671
+ const children = treeData.filter(node => node.searchKey && node.searchKey.startsWith(currentNode.searchKey + '/'));
109672
+ if (children.length === 0) {
109673
+ // If no children will return the current node's key
109674
+ return currentNode.key;
109675
+ }
109676
+ // it will Find the last child
109677
+ const lastChild = children[children.length - 1];
109678
+ // If the last child is a container (nested), recursively find the last child
109679
+ if (lastChild?.container) {
109680
+ return findLastChild(treeData, lastChild);
109681
+ } else {
109682
+ // If the last child is not a container, return its key
109683
+ return lastChild?.key;
109684
+ }
109685
+ };
109686
+ // this function will analyze the hierarchy of the treeData based on the searchKey it hel to find the pre and post node in the parent node
109687
+ const analyzeHierarchy = (treeData, searchKey) => {
109688
+ // Split the searchKey into its hierarchy parts
109689
+ const hierarchyParts = searchKey.split('/').filter(part => part !== '');
109690
+ const hierarchyMap = {};
109691
+ // Find each level in the treeData
109692
+ hierarchyParts.forEach((_, index) => {
109693
+ const currentPath = '/' + hierarchyParts.slice(0, index + 1).join('/');
109694
+ // Find the node that matches this exact searchKey path
109695
+ const node = treeData.find(n => n.searchKey === currentPath);
109696
+ if (node) {
109697
+ hierarchyMap[index] = {
109698
+ key: node.key,
109699
+ name: node.name ?? '',
109700
+ type: node.entityType ?? '',
109701
+ searchKey: node.searchKey ?? '',
109702
+ hierarchy: node.hierarchy,
109703
+ isContainer: node.container ?? false,
109704
+ hasPrePost: false
109705
+ };
109706
+ // Check if this node has PRE/POST children
109707
+ const children = treeData.filter(n => n?.searchKey?.startsWith(currentPath + '/') && n?.searchKey?.split('/').length === currentPath?.split('/').length + 1);
109708
+ hierarchyMap[index].hasPrePost = children.some(child => child.entityType === 'PRE' || child.entityType === 'POST');
109709
+ }
109710
+ });
109711
+ return hierarchyMap;
109712
+ };
109713
+ const getRootChildren = (treeData, rootNode) => {
109714
+ return treeData.filter(node => node.parentId === rootNode.key && node.entityType !== 'POST' && node.entityType !== 'PRE');
109715
+ };
109716
+ if (action === 'inside') {
109717
+ // Handle root node case
109718
+ if (currentNode.path === '/Root') {
109719
+ const childrenOfRoot = getRootChildren(treeData, currentNode);
109720
+ if (childrenOfRoot.length > 0) {
109721
+ const lastChildOfRoot = childrenOfRoot[childrenOfRoot.length - 1];
109722
+ if (lastChildOfRoot?.expanded === false) {
109723
+ return {
109724
+ navigateTo: lastChildOfRoot?.key
109725
+ };
109726
+ }
109727
+ if (lastChildOfRoot?.expanded === true) {
109728
+ const lastChildExpand = getAllChildrenNodesUsingSearchKey(treeData, lastChildOfRoot?.searchKey);
109729
+ return {
109730
+ navigateTo: lastChildExpand[lastChildExpand.length - 1]?.key
109731
+ };
109732
+ }
109733
+ }
109734
+ } else {
109735
+ // Handle non-root node case
109736
+ const lastChild = findLastChild(treeData, currentNode);
109737
+ const currentNodeAllChildren = getAllChildrenNodesUsingSearchKey(treeData, currentNode?.searchKey);
109738
+ const hierarchyInfo = analyzeHierarchy(treeData, currentNode?.searchKey);
109739
+ const currentNodeHierarchyInfo = Object.values(hierarchyInfo).find(obj => obj.key === currentNode.key);
109740
+ if (currentNodeAllChildren.length > 0) {
109741
+ const nonPostPreChildren = currentNodeAllChildren.filter(node => node.entityType !== 'POST' && node.entityType !== 'PRE');
109742
+ if (nonPostPreChildren.length > 0) {
109743
+ return {
109744
+ navigateTo: currentNodeHierarchyInfo?.hasPrePost ? nonPostPreChildren[nonPostPreChildren.length - 1]?.key : lastChild
109745
+ };
109746
+ } else {
109747
+ return {
109748
+ navigateTo: currentNodeAllChildren[currentNodeAllChildren.length - 1]?.key
109749
+ };
109750
+ }
109751
+ } else {
109752
+ return {
109753
+ navigateTo: currentNode?.key
109754
+ };
109755
+ }
109756
+ }
109757
+ } else if (action === 'below') {
109758
+ const lastChild = findLastChild(treeData, currentNode);
109759
+ return {
109760
+ navigateTo: lastChild
109761
+ };
109762
+ } else if (action === 'above') {
109763
+ return {
109764
+ navigateTo: currentNode?.key
109765
+ };
109766
+ }
109767
+ return {
109768
+ navigateTo: currentNode?.key
109769
+ };
109770
+ };
109771
+
109422
109772
  /*
109423
109773
  The MIT License (MIT)
109424
109774
 
@@ -115726,7 +116076,9 @@ const ScriptGenerationLoader = ({
115726
116076
 
115727
116077
  exports.AADHAAR_REGEX = AADHAAR_REGEX;
115728
116078
  exports.ALPHABET_ONLY_REGEX = ALPHABET_ONLY_REGEX;
116079
+ exports.ALPHANUMERIC_PARENTHESIS_REGEX = ALPHANUMERIC_PARENTHESIS_REGEX;
115729
116080
  exports.ALPHANUMERIC_REGEX = ALPHANUMERIC_REGEX;
116081
+ exports.ALPHANUMERIC_WITH_DOT_REGEX = ALPHANUMERIC_WITH_DOT_REGEX;
115730
116082
  exports.ALPHANUMERIC_WITH_ROUND_BRACES_REGEX = ALPHANUMERIC_WITH_ROUND_BRACES_REGEX;
115731
116083
  exports.ALPHA_NUM_EXTENDED_REGEX = ALPHA_NUM_EXTENDED_REGEX;
115732
116084
  exports.ALPHA_NUM_REGEX = ALPHA_NUM_REGEX;
@@ -115741,6 +116093,7 @@ exports.AttachMedia = AttachMedia;
115741
116093
  exports.AttachmentButton = AttachmentButton;
115742
116094
  exports.Avatar = Avatar;
115743
116095
  exports.BASE64_REGEX = BASE64_REGEX;
116096
+ exports.BIG_END_WHITESPACE = BIG_END_WHITESPACE;
115744
116097
  exports.BINARY_NUMBER_REGEX = BINARY_NUMBER_REGEX;
115745
116098
  exports.BODY_TAG_TYPE_VALIDATION = BODY_TAG_TYPE_VALIDATION;
115746
116099
  exports.BarChart = BarChart;
@@ -115937,6 +116290,7 @@ exports.formatResponseDate = formatResponseDate;
115937
116290
  exports.getEncryptedData = getEncryptedData;
115938
116291
  exports.getExtension = getExtension;
115939
116292
  exports.getExtensionWithPeriod = getExtensionWithPeriod;
116293
+ exports.getNavigateToKey = getNavigateToKey;
115940
116294
  exports.getSequentialPayload = getSequentialPayload;
115941
116295
  exports.getStoreValue = getStoreValue;
115942
116296
  exports.getTopVisibleNodeKey = getTopVisibleNodeKey;
@@ -115965,4 +116319,5 @@ exports.useClickOutside = useClickOutside;
115965
116319
  exports.useFileDropzone = useFileDropzone;
115966
116320
  exports.useKeyboardActions = useKeyboardActions;
115967
116321
  exports.useTheme = useTheme;
116322
+ exports.useTriggerControl = useTriggerControl;
115968
116323
  //# sourceMappingURL=index.cjs.map