pixel-react 1.10.8 → 1.10.10-0

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 (49) hide show
  1. package/lib/components/AddResourceButton/AddResourceButton.d.ts +1 -1
  2. package/lib/components/AddResourceButton/ArrowsButton/ArrowsButton.d.ts +1 -1
  3. package/lib/components/AddResourceButton/type.d.ts +9 -0
  4. package/lib/components/Excel/ExcelFile/ExcelFile.d.ts +62 -5
  5. package/lib/components/InputWithDropdown/types.d.ts +2 -0
  6. package/lib/components/variableSuggestionInputDropDown/OptionsDropdown.d.ts +5 -0
  7. package/lib/components/variableSuggestionInputDropDown/VariableSuggestionInputDropDown.d.ts +4 -0
  8. package/lib/components/variableSuggestionInputDropDown/index.d.ts +1 -0
  9. package/lib/components/variableSuggestionInputDropDown/types.d.ts +150 -0
  10. package/lib/index.d.ts +204 -13
  11. package/lib/index.esm.js +146 -114
  12. package/lib/index.esm.js.map +1 -1
  13. package/lib/index.js +146 -114
  14. package/lib/index.js.map +1 -1
  15. package/lib/tsconfig.tsbuildinfo +1 -1
  16. package/package.json +1 -1
  17. package/src/assets/icons/module_icon.svg +3 -0
  18. package/src/components/AddResourceButton/AddResourceButton.stories.tsx +32 -16
  19. package/src/components/AddResourceButton/AddResourceButton.tsx +2 -0
  20. package/src/components/AddResourceButton/ArrowsButton/ArrowsButton.tsx +2 -2
  21. package/src/components/AddResourceButton/type.ts +9 -0
  22. package/src/components/AllProjectsDropdown/AllProjectsDropdown.scss +1 -1
  23. package/src/components/AllProjectsDropdown/AllProjectsDropdown.tsx +1 -1
  24. package/src/components/AppHeader/AppHeader.scss +1 -1
  25. package/src/components/Editor/VariableDropdown.scss +0 -1
  26. package/src/components/Editor/VariableDropdown.tsx +9 -2
  27. package/src/components/Excel/ExcelFile/ExcelFile.tsx +122 -54
  28. package/src/components/Excel/ExcelFile/ExcelFileComponents/reducerFunctions.ts +0 -1
  29. package/src/components/Excel/ExcelFile.stories.tsx +1 -0
  30. package/src/components/FileDropzone/Dropzone.tsx +2 -1
  31. package/src/components/FileDropzone/FileDropzone.tsx +3 -5
  32. package/src/components/Icon/iconList.ts +6 -4
  33. package/src/components/InputWithDropdown/InputWithDropdown.tsx +6 -2
  34. package/src/components/InputWithDropdown/types.ts +2 -0
  35. package/src/components/MenuOption/MenuOption.tsx +1 -1
  36. package/src/components/Select/components/Dropdown.scss +1 -0
  37. package/src/components/Table/Table.tsx +3 -1
  38. package/src/components/TableTree/TableTree.scss +15 -14
  39. package/src/components/TableTree/TableTree.stories.tsx +26 -12
  40. package/src/components/TableTree/TableTree.tsx +47 -23
  41. package/src/components/TableTree/data.ts +1 -1
  42. package/src/components/variableSuggestionInputDropDown/OptionsDropdown.tsx +51 -0
  43. package/src/components/variableSuggestionInputDropDown/VariableSuggestionInputDropDown.scss +18 -0
  44. package/src/components/variableSuggestionInputDropDown/VariableSuggestionInputDropDown.stories.tsx +155 -0
  45. package/src/components/variableSuggestionInputDropDown/VariableSuggestionInputDropDown.tsx +244 -0
  46. package/src/components/variableSuggestionInputDropDown/index.ts +1 -0
  47. package/src/components/variableSuggestionInputDropDown/types.ts +166 -0
  48. package/src/index.ts +2 -0
  49. package/src/utils/TableCell/TableCell.ts +3 -0
package/lib/index.js CHANGED
@@ -713,6 +713,8 @@ const SvgPrimaryCalendarIcon = (props) => /* @__PURE__ */ React__namespace.creat
713
713
 
714
714
  const SvgSauseLabIcon = (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: "M1.95052 10.3182C1.66316 9.57636 1.51722 8.78726 1.52023 7.9917C1.52436 7.13661 1.69693 6.29071 2.02808 5.50233C2.35922 4.71395 2.84245 3.99854 3.45016 3.39697C4.05787 2.7954 4.77816 2.31945 5.56986 1.99633C6.36156 1.67321 7.20917 1.50924 8.06426 1.51379C8.37072 1.51497 8.67678 1.5363 8.98044 1.57766L8.24709 2.31927H8.04798C6.26244 2.31827 4.58035 3.15531 3.50337 4.57993C2.4264 6.00455 2.07976 7.85144 2.56665 9.5691H7.55457L5.43517 13.4653L10.4549 8.38192H3.60231L11.3227 0.717079C10.2852 0.242691 9.15731 -0.001912 8.01642 1.1254e-05C6.26845 0.00182586 4.56887 0.574325 3.17606 1.63048C1.78324 2.68663 0.773361 4.16868 0.299937 5.85131C-0.173487 7.53395 -0.0845626 9.32515 0.553193 10.9526C1.19095 12.5801 2.34265 13.9548 3.83323 14.8678L6.22362 10.35L1.95052 10.3182ZM12.1994 1.14712L9.80921 5.66542H14.0878C14.4651 6.64903 14.5975 7.70966 14.4735 8.75583C14.3495 9.802 13.9729 10.8023 13.3761 11.6705C12.7793 12.5386 11.9803 13.2485 11.0479 13.739C10.1156 14.2295 9.07793 14.4858 8.02443 14.4859C7.70732 14.4847 7.3906 14.4634 7.07619 14.422L7.80127 13.6889H8.02669C9.53771 13.6889 10.9866 13.0888 12.0551 12.0204C13.1236 10.9519 13.7237 9.50323 13.7237 7.99195C13.7169 7.46969 13.6446 6.95035 13.5085 6.44611H8.51834L10.5979 2.51789L5.48276 7.60899H12.3511L4.71811 15.3056C6.57721 16.1338 8.68151 16.2246 10.605 15.5597C12.5286 14.8948 14.1276 13.5239 15.0785 11.7244C16.0293 9.925 16.2609 7.83151 15.7264 5.86775C15.1919 3.90399 13.9313 2.21667 12.1996 1.14737L12.1994 1.14712Z", fill: "#E1251B" }));
715
715
 
716
+ const SvgModuleIcon = (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: "M15.5312 11.3125H14.125V8.625C14.125 8.36613 13.9151 8.15625 13.6562 8.15625H8.46875V5.9375H10.5C10.7589 5.9375 10.9688 5.72762 10.9688 5.46875V0.46875C10.9688 0.209875 10.7589 0 10.5 0H5.5C5.24113 0 5.03125 0.209875 5.03125 0.46875V5.46875C5.03125 5.72762 5.24113 5.9375 5.5 5.9375H7.53125V8.15625H2.34375C2.08488 8.15625 1.875 8.36613 1.875 8.625V11.3125H0.46875C0.209875 11.3125 0 11.5224 0 11.7812V15.5312C0 15.7901 0.209875 16 0.46875 16H4.21875C4.47762 16 4.6875 15.7901 4.6875 15.5312V11.7812C4.6875 11.5224 4.47762 11.3125 4.21875 11.3125H2.8125V9.09375H7.53125V11.3125H6.125C5.86613 11.3125 5.65625 11.5224 5.65625 11.7812V15.5312C5.65625 15.7901 5.86613 16 6.125 16H9.875C10.1339 16 10.3438 15.7901 10.3438 15.5312V11.7812C10.3438 11.5224 10.1339 11.3125 9.875 11.3125H8.46875V9.09375H13.1875V11.3125H11.7812C11.5224 11.3125 11.3125 11.5224 11.3125 11.7812V15.5312C11.3125 15.7901 11.5224 16 11.7812 16H15.5312C15.7901 16 16 15.7901 16 15.5312V11.7812C16 11.5224 15.7901 11.3125 15.5312 11.3125ZM5.96875 0.9375H10.0312V5H5.96875V0.9375ZM3.75 15.0625H0.9375V12.25H3.75V15.0625ZM9.40625 15.0625H6.59375V12.25H9.40625V15.0625ZM15.0625 15.0625H12.25V12.25H15.0625V15.0625Z", fill: "currentColor" }));
717
+
716
718
  const SvgTotalDefectsStatusIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("g", { clipPath: "url(#clip0_1919_99688)" }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M16.6256 16.6281C20.2862 12.9675 20.2862 7.03249 16.6256 3.37187C12.965 -0.288739 7.02995 -0.288739 3.36934 3.37187C-0.291277 7.03249 -0.291277 12.9675 3.36934 16.6281C7.02995 20.2887 12.965 20.2887 16.6256 16.6281Z", fill: "#C459D5" }), /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M19.2394 11.5903C18.5723 15.4934 15.4928 18.5728 11.5898 19.2399L6.54285 14.193C5.33516 13.1963 4.56543 11.688 4.56543 9.99986C4.56543 6.99873 6.99824 4.56592 9.99938 4.56592C11.6875 4.56592 13.1958 5.33568 14.1925 6.54334L19.2394 11.5903Z", fill: "#71347B" }), /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.0004 4.56592C6.99876 4.56592 4.56543 6.99925 4.56543 10.0009C4.56543 13.0026 6.99876 15.4359 10.0004 15.4359C13.0021 15.4359 15.4354 13.0026 15.4354 10.0009C15.4354 6.99925 13.0021 4.56592 10.0004 4.56592ZM7.11706 12.0256L8.26556 10.8774C8.35265 10.7904 8.43875 10.723 8.54478 10.659L8.97598 10.3992C8.74138 10.0444 8.61535 9.62877 8.61535 9.19368C8.61535 8.60807 8.84346 8.05746 9.25763 7.64329C9.67165 7.22909 10.2222 7.00098 10.8079 7.00098C11.3936 7.00098 11.9442 7.22909 12.3582 7.64329C12.7724 8.05746 13.0005 8.60811 13.0005 9.19368C13.0005 9.77925 12.7724 10.3298 12.3582 10.7438C11.9442 11.158 11.3936 11.3861 10.8079 11.3861C10.3728 11.3861 9.95706 11.2601 9.6023 11.0255L9.34247 11.457C9.2788 11.5627 9.21144 11.6489 9.12403 11.7363L7.97587 12.8844C7.90068 12.9596 7.80045 13.001 7.69362 13.001C7.58679 13.001 7.48656 12.9596 7.41136 12.8844L7.11707 12.5901C6.96165 12.4347 6.9616 12.1815 7.11707 12.0256L7.11706 12.0256ZM12.2185 10.6041C12.5954 10.2274 12.803 9.72651 12.803 9.19367C12.803 8.66083 12.5954 8.15981 12.2185 7.78293C11.8418 7.40605 11.3409 7.1985 10.8079 7.1985C10.275 7.1985 9.77406 7.40605 9.39734 7.78293C9.02047 8.15981 8.8129 8.66081 8.8129 9.19367C8.8129 9.72652 9.02045 10.2274 9.39736 10.6041C9.77406 10.981 10.275 11.1886 10.8079 11.1886C11.3409 11.1886 11.8418 10.981 12.2185 10.6041ZM9.44204 10.9087C9.37805 10.8575 9.31644 10.8026 9.25766 10.7438C9.19886 10.685 9.14395 10.6234 9.09277 10.5594L8.6577 10.8216L8.65772 10.8216L9.09262 10.5596C9.14381 10.6236 9.19872 10.6852 9.25751 10.744H9.25752C9.31629 10.8027 9.37791 10.8577 9.44189 10.9088L9.17995 11.3438L9.18 11.3439L9.44205 10.9087H9.44204ZM7.25673 12.4504L7.55101 12.7447C7.58889 12.7826 7.63953 12.8035 7.69361 12.8035C7.74768 12.8035 7.7983 12.7826 7.83617 12.7448L8.98434 11.5966C9.01391 11.567 9.04044 11.5381 9.06513 11.5084L8.49325 10.9365C8.46357 10.9612 8.43468 10.9877 8.40523 11.0171L7.25683 12.1652C7.17827 12.244 7.17822 12.3719 7.25673 12.4504ZM9.56602 9.22099C9.5817 9.16874 9.63672 9.13909 9.689 9.15474L9.81521 9.19258L9.99721 9.05622C10.0143 9.04342 10.0351 9.03649 10.0564 9.03649H10.2016V8.98067H10.1464C10.0918 8.98067 10.0476 8.93644 10.0476 8.8819V8.65395L9.93062 8.56773C9.88671 8.53536 9.87736 8.47353 9.90973 8.42961C9.94209 8.38571 10.0039 8.37635 10.0478 8.40873L10.205 8.52455C10.2302 8.54317 10.2451 8.57268 10.2451 8.60405V8.78313H10.4238C10.4204 8.76244 10.4185 8.74144 10.4185 8.72023C10.4185 8.60785 10.4664 8.5065 10.5428 8.43533C10.4464 8.29297 10.329 8.18129 10.1857 8.09569C10.1388 8.06772 10.1235 8.00708 10.1515 7.96025C10.1795 7.91343 10.2401 7.89814 10.2869 7.92609C10.4588 8.02876 10.6034 8.16827 10.7175 8.3414C10.7466 8.33445 10.7769 8.33066 10.8081 8.33066C10.8393 8.33066 10.8694 8.33443 10.8984 8.34135C11.0126 8.16825 11.1571 8.02876 11.3289 7.92611C11.3758 7.89815 11.4364 7.91344 11.4644 7.96027C11.4923 8.00709 11.477 8.06774 11.4302 8.0957C11.2869 8.18129 11.1695 8.29296 11.0731 8.43528C11.1495 8.50645 11.1973 8.60784 11.1973 8.72025C11.1973 8.7415 11.1955 8.76251 11.1922 8.78315H11.3708V8.60406C11.3708 8.57269 11.3857 8.54318 11.4109 8.52457L11.568 8.40874C11.6119 8.37637 11.6738 8.38573 11.7061 8.42963C11.7385 8.47353 11.7292 8.53536 11.6853 8.56774L11.5683 8.65396V8.88193C11.5683 8.93647 11.5241 8.98069 11.4695 8.98069H11.4143V9.03652H11.5595C11.5808 9.03652 11.6016 9.04344 11.6187 9.05625L11.8007 9.19261L11.9269 9.15477C11.9791 9.13911 12.0342 9.16877 12.0499 9.22101C12.0655 9.27326 12.0359 9.32831 11.9836 9.34398L11.8097 9.39613C11.8004 9.39892 11.7908 9.40029 11.7813 9.40029C11.7602 9.40029 11.7394 9.39352 11.7221 9.38056L11.5266 9.23405H11.4143V9.31108L11.6142 9.41725C11.6464 9.43439 11.6666 9.46793 11.6666 9.50447V9.84172L11.8246 9.98807C11.8647 10.0251 11.8671 10.0876 11.83 10.1276C11.8105 10.1486 11.784 10.1593 11.7575 10.1593C11.7335 10.1593 11.7094 10.1506 11.6904 10.133L11.5008 9.95731C11.4806 9.93862 11.4691 9.91236 11.4691 9.88486V9.56384L11.4143 9.53474V9.6343C11.4143 9.96875 11.1424 10.2408 10.8081 10.2408C10.4739 10.2408 10.2016 9.96875 10.2016 9.6343V9.53474L10.1468 9.56384V9.88486C10.1468 9.91236 10.1353 9.93862 10.1152 9.95731L9.9255 10.133C9.90648 10.1506 9.88242 10.1593 9.8584 10.1593C9.83185 10.1593 9.80537 10.1486 9.78591 10.1276C9.74884 10.0876 9.75124 10.0251 9.79127 9.98807L9.94929 9.84172V9.50447C9.94929 9.46794 9.96946 9.43439 10.0017 9.41725L10.2016 9.31108V9.23404H10.0893L9.89379 9.38055C9.8765 9.39351 9.85567 9.40027 9.83456 9.40027C9.82506 9.40027 9.81552 9.3989 9.8062 9.39611L9.63227 9.34397C9.58004 9.3283 9.55037 9.27324 9.56604 9.221L9.56602 9.22099ZM10.9998 8.72023C10.9998 8.61434 10.9138 8.52819 10.8081 8.52819C10.7024 8.52819 10.6161 8.61434 10.6161 8.72023C10.6161 8.74184 10.6198 8.76301 10.6268 8.78313H10.9892C10.9961 8.76316 10.9998 8.74199 10.9998 8.72023ZM10.7093 10.0312V9.36098C10.7093 9.30643 10.7536 9.26221 10.8081 9.26221C10.8626 9.26221 10.9069 9.30643 10.9069 9.36098V10.0311C11.0846 9.98681 11.2168 9.82573 11.2168 9.63429V8.98068H10.3991V9.63429C10.3991 9.82576 10.5314 9.98686 10.7093 10.0312ZM9.5376 7.92323C9.87682 7.58383 10.328 7.39693 10.808 7.39693C11.288 7.39693 11.7392 7.58383 12.0786 7.92322C12.7788 8.62378 12.7788 9.76363 12.0786 10.4642C11.7392 10.8036 11.288 10.9905 10.808 10.9905C10.328 10.9905 9.8768 10.8036 9.53762 10.4642C9.19824 10.1248 9.01133 9.67361 9.01133 9.19371C9.01133 8.7138 9.19824 8.26259 9.5376 7.92323ZM9.67731 10.3245C9.97921 10.6266 10.3808 10.7929 10.808 10.7929C11.2352 10.7929 11.6369 10.6266 11.9389 10.3245C12.5621 9.70099 12.5621 8.68641 11.9389 8.06287C11.6368 7.76085 11.2352 7.59446 10.808 7.59446C10.3808 7.59446 9.97921 7.76081 9.6773 8.06288C9.37521 8.36496 9.20886 8.76655 9.20886 9.19371C9.20886 9.62086 9.37522 10.0225 9.67731 10.3245Z", fill: "white" })), /* @__PURE__ */ React__namespace.createElement("defs", null, /* @__PURE__ */ React__namespace.createElement("clipPath", { id: "clip0_1919_99688" }, /* @__PURE__ */ React__namespace.createElement("rect", { width: 20, height: 20, fill: "white", transform: "translate(-0.000488281)" }))));
717
719
 
718
720
  const SvgOpenDefectsIcon = (props) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "1em", height: "1em", viewBox: "0 0 21 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, /* @__PURE__ */ React__namespace.createElement("g", { clipPath: "url(#clip0_2699_12939)" }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M16.8937 16.6281C20.4813 12.9675 20.4813 7.03249 16.8937 3.37187C13.3062 -0.28874 7.48963 -0.28874 3.90208 3.37187C0.314532 7.03249 0.314532 12.9675 3.90208 16.6281C7.48963 20.2887 13.3062 20.2887 16.8937 16.6281Z", fill: "#F64C6E" }), /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M19.4558 11.5903C18.802 15.4934 15.7839 18.5728 11.9588 19.2399L7.01266 14.193C5.82907 13.1963 5.07471 11.688 5.07471 9.99986C5.07471 6.99873 7.45896 4.56592 10.4002 4.56592C12.0546 4.56592 13.5328 5.33568 14.5096 6.54334L19.4558 11.5903Z", fill: "#9C1732" }), /* @__PURE__ */ React__namespace.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M15.7257 9.99986C15.7257 6.99873 13.3414 4.56592 10.4002 4.56592C7.45896 4.56592 5.07471 6.99873 5.07471 9.99986C5.07471 13.001 7.45896 15.4338 10.4002 15.4338C13.3414 15.4338 15.7257 13.001 15.7257 9.99986ZM12.9249 9.64978C12.9249 9.55787 12.9648 9.46879 13.0318 9.41147L13.4001 9.09613L13.3734 8.9905C13.3412 8.86285 13.2994 8.73668 13.2493 8.61531C13.199 8.49419 13.1393 8.37544 13.0718 8.26239L13.016 8.16883L12.534 8.20618C12.446 8.21298 12.3546 8.17811 12.2893 8.11256C12.2243 8.04761 12.1896 7.95637 12.1964 7.8685L12.2338 7.38509L12.1403 7.32926C12.0272 7.2618 11.9085 7.20211 11.7872 7.15177C11.666 7.10163 11.5398 7.05987 11.4121 7.02765L11.3065 7.00098L10.9921 7.36816C10.9348 7.4351 10.8452 7.47502 10.7524 7.47502L10.5758 7.47471V9.23258H10.7515C10.9808 9.23258 11.1674 9.41912 11.1674 9.64842C11.1674 9.87772 10.9808 10.0643 10.7515 10.0643H10.576L10.5742 11.8219L10.7502 11.8218C10.8422 11.8218 10.9312 11.8618 10.9885 11.9287L11.3038 12.297L11.4095 12.2703C11.5371 12.2381 11.6632 12.1963 11.7846 12.1461C11.9058 12.0959 12.0245 12.0362 12.1376 11.9687L12.2311 11.9129L12.1938 11.4309C12.187 11.3429 12.2219 11.2515 12.2874 11.1862C12.3524 11.1212 12.4435 11.0864 12.5315 11.0932L13.0149 11.1307L13.0707 11.0371C13.1382 10.9241 13.1979 10.8054 13.2482 10.684C13.2983 10.5628 13.3401 10.4367 13.3723 10.309L13.399 10.2034L13.0318 9.889C12.9647 9.83159 12.9248 9.74231 12.9249 9.64978ZM11.5188 9.64842C11.5188 9.28581 11.2659 8.98113 10.9272 8.90146V8.54357C11.4609 8.62813 11.8702 9.09135 11.8702 9.64842C11.8702 10.2057 11.4606 10.669 10.9267 10.7534L10.9271 10.3954C11.2658 10.3158 11.5188 10.0111 11.5188 9.64842ZM12.9235 10.5496C12.8934 10.6221 12.8594 10.6937 12.822 10.7633L12.5586 10.7429C12.3668 10.728 12.1774 10.7991 12.0391 10.9376C11.8998 11.0763 11.8285 11.266 11.8434 11.4581L11.8637 11.7201C11.7941 11.7575 11.7225 11.7914 11.6501 11.8215C11.5776 11.8515 11.5029 11.8781 11.4273 11.9008L11.2554 11.7001C11.1687 11.5989 11.0537 11.5276 10.9259 11.4934L10.9263 11.1081C11.6548 11.0214 12.2216 10.3999 12.2216 9.64842C12.2216 8.89727 11.6553 8.27598 10.9272 8.18886V7.80386C11.0561 7.76983 11.172 7.69838 11.2591 7.59671L11.4299 7.39711C11.5056 7.4199 11.5802 7.44645 11.6527 7.47641C11.7252 7.5065 11.7967 7.54049 11.8664 7.57789L11.846 7.84134C11.8311 8.03306 11.9022 8.22252 12.0406 8.36087C12.1794 8.50012 12.3691 8.57147 12.5612 8.55654L12.8232 8.53624C12.8606 8.60589 12.8945 8.67741 12.9246 8.7498C12.9546 8.82235 12.9811 8.89698 13.0039 8.97269L12.8032 9.14454C12.6571 9.26959 12.5734 9.45381 12.5735 9.64955C12.5731 9.8461 12.6569 10.0307 12.8032 10.156L13.0028 10.3269C12.98 10.4025 12.9535 10.4771 12.9235 10.5496ZM9.63312 10.351C9.63312 10.1217 9.81966 9.93512 10.049 9.93512H10.2247V8.1775L10.0489 8.17756C9.95646 8.17756 9.87016 8.13861 9.81201 8.0707L9.49667 7.70239L9.39104 7.72907C9.26342 7.76128 9.13725 7.80304 9.01585 7.85324C8.8947 7.90351 8.77596 7.9632 8.66292 8.03066L8.56936 8.0865L8.6067 8.56846C8.61352 8.65649 8.57864 8.74787 8.51309 8.81318C8.44813 8.87819 8.35696 8.91292 8.26901 8.90614L7.7856 8.86868L7.72976 8.96224C7.6623 9.07528 7.60262 9.19402 7.55229 9.31536C7.50216 9.43655 7.46041 9.56272 7.42818 9.69035L7.4015 9.79599L7.76871 10.1104C7.83577 10.1678 7.87572 10.2571 7.87556 10.3496C7.87559 10.4415 7.83565 10.5306 7.7687 10.5879L7.40039 10.9033L7.42706 11.0089C7.4593 11.1365 7.50106 11.2627 7.55125 11.3841C7.60151 11.5052 7.66119 11.6239 7.72866 11.737L7.78449 11.8306L8.26646 11.7932C8.35447 11.7864 8.44587 11.8213 8.51118 11.8868C8.57619 11.9518 8.61094 12.043 8.60413 12.1309L8.56667 12.6143L8.66023 12.6701C8.77326 12.7376 8.89201 12.7973 9.01334 12.8476C9.13455 12.8977 9.26072 12.9395 9.38835 12.9717L9.49399 12.9984L9.80837 12.6312C9.86568 12.5643 9.95473 12.5244 10.0467 12.5244L10.2231 12.5247L10.2249 10.7668H10.049C9.81967 10.7668 9.63312 10.5803 9.63312 10.351ZM9.2817 10.351C9.2817 10.7135 9.53451 11.0182 9.87309 11.0979L9.87272 11.4557C9.33932 11.3709 8.93028 10.9078 8.93028 10.351C8.93028 9.79389 9.33959 9.33068 9.87325 9.24611V9.604C9.5346 9.68365 9.2817 9.98833 9.2817 10.351ZM9.54142 12.4027L9.37052 12.6023C9.29484 12.5795 9.22026 12.5529 9.14782 12.523C9.07529 12.4929 9.00373 12.4589 8.93407 12.4215L8.95449 12.158C8.96936 11.9663 8.89831 11.7769 8.75984 11.6385C8.62111 11.4993 8.43138 11.428 8.23931 11.4428L7.97731 11.4631C7.93991 11.3935 7.90595 11.322 7.87592 11.2496C7.84591 11.177 7.81934 11.1024 7.79653 11.0267L7.99725 10.8548C8.14332 10.7298 8.22706 10.5456 8.22697 10.3498C8.22732 10.1533 8.14359 9.9687 7.99726 9.84342L7.79766 9.67251C7.82045 9.59684 7.84701 9.52225 7.87697 9.44981C7.90707 9.37728 7.94105 9.30572 7.97845 9.23606L8.2419 9.25648C8.43362 9.27135 8.62308 9.20028 8.76143 9.06182C8.90067 8.92309 8.97198 8.73336 8.9571 8.54129L8.9368 8.27929C9.00643 8.2419 9.07796 8.20793 9.15035 8.1779C9.22293 8.14789 9.29756 8.12132 9.37324 8.09852L9.5451 8.29924C9.63163 8.40031 9.7462 8.47153 9.87327 8.50579V8.89138C9.14519 8.9785 8.57888 9.59978 8.57888 10.3509C8.57888 11.1018 9.14474 11.7229 9.87238 11.8104L9.872 12.1957C9.7438 12.2298 9.62835 12.3011 9.54142 12.4027ZM10.225 7.29932H9.87354V7.65073H10.225V7.29932ZM9.17041 7.00098H9.52183V7.3524H9.17041V7.00098ZM10.9276 12.3489H10.5762V12.7003H10.9276V12.3489ZM11.2788 12.647H11.6302V12.9984H11.2788V12.647Z", fill: "white" })), /* @__PURE__ */ React__namespace.createElement("defs", null, /* @__PURE__ */ React__namespace.createElement("clipPath", { id: "clip0_2699_12939" }, /* @__PURE__ */ React__namespace.createElement("rect", { width: 19.6008, height: 20, fill: "white", transform: "translate(0.599609)" }))));
@@ -1010,6 +1012,7 @@ Components['open_defects_status_icon'] = SvgOpenDefectsIcon;
1010
1012
  Components['closed_defects_status_icon'] = SvgCloseDefectsIcon;
1011
1013
  Components['quality_score_status_icon'] = SvgQualityScoreIcon;
1012
1014
  Components['defect_density_status_icon'] = SvgDefectDensityIcon;
1015
+ Components['module_icon'] = SvgModuleIcon;
1013
1016
 
1014
1017
  var css_248z$1k = ".ff-icon-container {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 4px;\n box-sizing: content-box;\n}\n.ff-icon-container.ff-icon-danger:hover {\n background-color: var(--ff-icon-color-danger-variant);\n}\n.ff-icon-container.ff-icon-dark {\n background-color: var(--brand-color);\n border-radius: 4px;\n}\n.ff-icon-container.ff-icon-dark.ff-icon-click:hover {\n background-color: white;\n}\n.ff-icon-container.ff-icon-dark.ff-icon-click:hover svg path {\n fill: var(--brand-color);\n}\n\n.ff-icon-click {\n cursor: pointer;\n box-sizing: content-box;\n}\n.ff-icon-click:hover {\n border-radius: 4px;\n background-color: var(--ff-icon-hover-fill-color);\n}\n.ff-icon-click:hover > svg {\n color: var(--brand-color);\n}\n\n.ff-icon-disabled {\n cursor: no-drop;\n}\n.ff-icon-disabled > svg {\n color: var(--toggle-strip-color);\n}\n.ff-icon-disabled:hover {\n box-shadow: none;\n}\n.ff-icon-disabled:hover > svg {\n color: var(--toggle-strip-color);\n}";
1015
1018
  styleInject(css_248z$1k);
@@ -2829,7 +2832,7 @@ const dropdownDefaultCSSData = {
2829
2832
  dropDownWrapperPadding: 0
2830
2833
  };
2831
2834
 
2832
- var css_248z$12 = ".ff-select-dropdown-wrapper,\n.ff-select-dropdown-mini-modal-wrapper {\n max-height: 160px;\n z-index: 999999;\n position: absolute;\n min-width: 50px;\n border-radius: 4px;\n border: 1px solid var(--ff-select-option-border-color);\n margin-top: 4px;\n box-shadow: 0px 1px 4px 0px var(--ff-select-option-wrapper-box-shadow);\n background-color: var(--ff-select-background-color);\n overflow: hidden auto;\n}\n.ff-select-dropdown-wrapper::-webkit-scrollbar,\n.ff-select-dropdown-mini-modal-wrapper::-webkit-scrollbar {\n width: 4px;\n height: 12px;\n}\n.ff-select-dropdown-wrapper::-webkit-scrollbar-thumb,\n.ff-select-dropdown-mini-modal-wrapper::-webkit-scrollbar-thumb {\n background-color: var(--ff-select-scroll-thumb-color);\n border-radius: 4px;\n}\n.ff-select-dropdown-wrapper::-webkit-scrollbar-track,\n.ff-select-dropdown-mini-modal-wrapper::-webkit-scrollbar-track {\n background: var(--ff-select-scroll-track-bg);\n border-radius: 4px;\n}\n.ff-select-dropdown-wrapper .ff-select-dropdown-option,\n.ff-select-dropdown-mini-modal-wrapper .ff-select-dropdown-option {\n box-sizing: border-box;\n cursor: pointer;\n padding: 0px 8px;\n border-radius: 4px;\n min-height: 32px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.ff-select-dropdown-wrapper .ff-select-dropdown-option .ff-select-dropdown-icon-container,\n.ff-select-dropdown-mini-modal-wrapper .ff-select-dropdown-option .ff-select-dropdown-icon-container {\n display: flex;\n align-items: center;\n}\n.ff-select-dropdown-wrapper .ff-select-dropdown-option .ff-select-dropdown-icon-container__icon,\n.ff-select-dropdown-mini-modal-wrapper .ff-select-dropdown-option .ff-select-dropdown-icon-container__icon {\n margin-right: 4px;\n}\n.ff-select-dropdown-wrapper .ff-select-dropdown-option__selected, .ff-select-dropdown-wrapper .ff-select-dropdown-option:hover,\n.ff-select-dropdown-mini-modal-wrapper .ff-select-dropdown-option__selected,\n.ff-select-dropdown-mini-modal-wrapper .ff-select-dropdown-option:hover {\n background-color: var(--ff-select-option-hover-color);\n}\n.ff-select-dropdown-wrapper .ff-select-no-option,\n.ff-select-dropdown-mini-modal-wrapper .ff-select-no-option {\n box-sizing: border-box;\n padding: 0px 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: not-allowed;\n}\n\n.ff-select-dropdown-modal-wrapper {\n max-height: 256px;\n}\n\n.ff-select-dropdown-mini-modal-wrapper {\n display: flex;\n justify-content: space-between;\n}\n.ff-select-dropdown-mini-modal-wrapper .ff-select-label-minimodal-wrapper {\n width: calc(50% - 4px);\n}\n.ff-select-dropdown-mini-modal-wrapper .ff-select-mini-modal-wrapper {\n width: 50%;\n padding: 8px 2px 0px 4px;\n display: flex;\n align-items: flex-end;\n margin-left: 4px;\n border-left: 1px dashed var(--border-color);\n}\n.ff-select-dropdown-mini-modal-wrapper .ff-select-mini-modal-wrapper .ff-select-modal-wrapper {\n height: fit-content;\n width: calc(100% - 4px);\n border-radius: 8px;\n border: 1px solid var(--ff-select-background-color);\n box-shadow: 0px 1px 8px 0px var(--ff-select-option-wrapper-box-shadow);\n border: 1px solid var(--border-color);\n}\n.ff-select-dropdown-mini-modal-wrapper .ff-select-mini-modal-wrapper .ff-select-modal-wrapper .ff-select-mini-modal-footer {\n min-height: 32px;\n border-top: 1px solid var(--border-color);\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n}";
2835
+ var css_248z$12 = ".ff-select-dropdown-wrapper,\n.ff-select-dropdown-mini-modal-wrapper {\n max-height: 160px;\n z-index: 999999;\n position: absolute;\n min-width: 50px;\n border-radius: 4px;\n border: 1px solid var(--ff-select-option-border-color);\n margin-top: 4px;\n box-shadow: 0px 1px 4px 0px var(--ff-select-option-wrapper-box-shadow);\n background-color: var(--ff-select-background-color);\n overflow: hidden auto;\n}\n.ff-select-dropdown-wrapper::-webkit-scrollbar,\n.ff-select-dropdown-mini-modal-wrapper::-webkit-scrollbar {\n width: 4px;\n height: 12px;\n}\n.ff-select-dropdown-wrapper::-webkit-scrollbar-thumb,\n.ff-select-dropdown-mini-modal-wrapper::-webkit-scrollbar-thumb {\n background-color: var(--ff-select-scroll-thumb-color);\n border-radius: 4px;\n}\n.ff-select-dropdown-wrapper::-webkit-scrollbar-track,\n.ff-select-dropdown-mini-modal-wrapper::-webkit-scrollbar-track {\n background: var(--ff-select-scroll-track-bg);\n border-radius: 4px;\n}\n.ff-select-dropdown-wrapper .ff-select-dropdown-option,\n.ff-select-dropdown-mini-modal-wrapper .ff-select-dropdown-option {\n box-sizing: border-box;\n cursor: pointer;\n padding: 0px 8px;\n border-radius: 4px;\n min-height: 32px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.ff-select-dropdown-wrapper .ff-select-dropdown-option .ff-select-dropdown-icon-container,\n.ff-select-dropdown-mini-modal-wrapper .ff-select-dropdown-option .ff-select-dropdown-icon-container {\n display: flex;\n align-items: center;\n}\n.ff-select-dropdown-wrapper .ff-select-dropdown-option .ff-select-dropdown-icon-container__icon,\n.ff-select-dropdown-mini-modal-wrapper .ff-select-dropdown-option .ff-select-dropdown-icon-container__icon {\n margin-right: 4px;\n}\n.ff-select-dropdown-wrapper .ff-select-dropdown-option__selected, .ff-select-dropdown-wrapper .ff-select-dropdown-option:hover,\n.ff-select-dropdown-mini-modal-wrapper .ff-select-dropdown-option__selected,\n.ff-select-dropdown-mini-modal-wrapper .ff-select-dropdown-option:hover {\n background-color: var(--ff-select-option-hover-color);\n}\n.ff-select-dropdown-wrapper .ff-select-no-option,\n.ff-select-dropdown-mini-modal-wrapper .ff-select-no-option {\n box-sizing: border-box;\n padding: 0px 8px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: not-allowed;\n}\n\n.ff-select-dropdown-modal-wrapper {\n max-height: 256px;\n}\n\n.ff-select-dropdown-mini-modal-wrapper {\n display: flex;\n justify-content: space-between;\n}\n.ff-select-dropdown-mini-modal-wrapper .ff-select-label-minimodal-wrapper {\n width: calc(50% - 4px);\n}\n.ff-select-dropdown-mini-modal-wrapper .ff-select-mini-modal-wrapper {\n width: 50%;\n padding: 8px 2px 0px 4px;\n display: flex;\n align-items: flex-end;\n margin-left: 4px;\n border-left: 1px dashed var(--border-color);\n}\n.ff-select-dropdown-mini-modal-wrapper .ff-select-mini-modal-wrapper .ff-select-modal-wrapper {\n height: fit-content;\n width: calc(100% - 4px);\n border-radius: 8px;\n border: 1px solid var(--ff-select-background-color);\n box-shadow: 0px 1px 8px 0px var(--ff-select-option-wrapper-box-shadow);\n border: 1px solid var(--border-color);\n}\n.ff-select-dropdown-mini-modal-wrapper .ff-select-mini-modal-wrapper .ff-select-modal-wrapper .ff-select-mini-modal-footer {\n min-height: 32px;\n border-top: 1px solid var(--border-color);\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding-right: 4px;\n}";
2833
2836
  styleInject(css_248z$12);
2834
2837
 
2835
2838
  const ffid = () => 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, char => ((char === 'x' ? Math.random() * 16 : Math.random() * 16 & 0x3 | 0x8) | 0).toString(16));
@@ -3439,7 +3442,7 @@ const calculatePosition = (menuPosition, dropdownPlacement, optionCardHeight) =>
3439
3442
  left,
3440
3443
  right: window.innerWidth - (left + width)
3441
3444
  };
3442
- const gap = 8; // Required gap
3445
+ const gap = 0;
3443
3446
  switch (dropdownPlacement) {
3444
3447
  case 'top':
3445
3448
  return availableSpace.top > optionCardHeight + gap ? {
@@ -3694,10 +3697,14 @@ function formatMemoryValue(valueInBytes) {
3694
3697
  const prepareData = (dataObj, columnObj) => {
3695
3698
  let cellData = dataObj[columnObj.accessor];
3696
3699
  if (columnObj.cell) {
3700
+ const refId = dataObj._id || dataObj.id;
3697
3701
  return columnObj.cell({
3698
3702
  value: cellData,
3699
3703
  row: dataObj,
3700
- column: columnObj.accessor
3704
+ column: columnObj.accessor,
3705
+ ...(refId && {
3706
+ refId
3707
+ })
3701
3708
  });
3702
3709
  } else if (columnObj.accessor) {
3703
3710
  return cellData;
@@ -8405,12 +8412,14 @@ const SortableRow = ({
8405
8412
  transform: CSS.Transform.toString(transform),
8406
8413
  transition
8407
8414
  };
8415
+ const key = row._id || row.id;
8408
8416
  return jsxRuntime.jsx("tr", {
8409
8417
  ref: setNodeRef,
8410
8418
  style: style,
8411
8419
  className: classNames(tableBodyRowClass, {
8412
8420
  'disabled-row': row.disabled
8413
8421
  }),
8422
+ id: key,
8414
8423
  children: columns.map((column, index) => {
8415
8424
  return jsxRuntime.jsx("td", {
8416
8425
  onClick: () => handleOnclick(column, row),
@@ -8441,7 +8450,7 @@ const SortableRow = ({
8441
8450
  })
8442
8451
  }, column.accessor + index);
8443
8452
  })
8444
- }, row._id || row.id);
8453
+ }, key);
8445
8454
  };
8446
8455
  const Table$1 = ({
8447
8456
  data = [],
@@ -8617,7 +8626,8 @@ const ArrowsButton = ({
8617
8626
  direction,
8618
8627
  menuOptions,
8619
8628
  onArrowClick,
8620
- treeRowRef
8629
+ treeRowRef,
8630
+ onMenuOptionClick
8621
8631
  }) => {
8622
8632
  const getIconName = () => {
8623
8633
  return `arrows_${direction}_icon`;
@@ -8636,8 +8646,7 @@ const ArrowsButton = ({
8636
8646
  iconSize: 12,
8637
8647
  iconButtonSize: 24,
8638
8648
  iconButtonBorderRadius: 3,
8639
- onOptionClick: () => {},
8640
- targetRef: menuOptionRef,
8649
+ onOptionClick: onMenuOptionClick,
8641
8650
  treeRowRef: treeRowRef
8642
8651
  })
8643
8652
  })
@@ -8678,7 +8687,8 @@ const AddResourceButton = ({
8678
8687
  }]
8679
8688
  }],
8680
8689
  zIndex = 99,
8681
- treeRowRef
8690
+ treeRowRef,
8691
+ onMenuOptionClick
8682
8692
  }) => {
8683
8693
  const [isHovered, setIsHovered] = React.useState(false);
8684
8694
  const [positionArrowContainer, setPositionArrowContainer] = React.useState({
@@ -8762,7 +8772,8 @@ const AddResourceButton = ({
8762
8772
  menuOptions: menuOptions,
8763
8773
  isActive: activeArrow === direction,
8764
8774
  variant: variant,
8765
- treeRowRef: treeRowRef
8775
+ treeRowRef: treeRowRef,
8776
+ onMenuOptionClick: onMenuOptionClick
8766
8777
  }, index))
8767
8778
  }), document.body)]
8768
8779
  });
@@ -9301,7 +9312,8 @@ const Dropzone = ({
9301
9312
  className: classNames('ff-file-dropzone', {
9302
9313
  'ff-file-dropzone--active': isDragActive,
9303
9314
  'ff-file-dropzone--webservice-file': isWebServiceFile,
9304
- 'ff-file-dropzone--webservice-container': isWebServiceFileDropZone
9315
+ 'ff-file-dropzone--webservice-container': isWebServiceFileDropZone,
9316
+ 'ff-disable-file-dropzone-wrapper': isDisable
9305
9317
  }),
9306
9318
  style: {
9307
9319
  height: height
@@ -9349,7 +9361,7 @@ const Dropzone = ({
9349
9361
  }) : jsxRuntime.jsx(Button$1, {
9350
9362
  variant: "primary",
9351
9363
  label: buttonLabel,
9352
- className: 'choose-file-btn',
9364
+ className: "choose-file-btn",
9353
9365
  disabled: isDisable,
9354
9366
  children: jsxRuntime.jsx("input", {
9355
9367
  ...(isDisable ? {
@@ -9516,9 +9528,7 @@ const FileDropzone = ({
9516
9528
  onReplaceClick: handleReplaceClick
9517
9529
  }, rejectedFile.file.name)), [rejectedFiles, handleRemoveClick, handleReplaceClick]);
9518
9530
  return jsxRuntime.jsxs("div", {
9519
- className: classNames('ff-file-dropzone-wrapper', {
9520
- 'ff-disable-file-dropzone-wrapper': isDisable
9521
- }),
9531
+ className: classNames('ff-file-dropzone-wrapper'),
9522
9532
  style: {
9523
9533
  width: `${width}px`
9524
9534
  },
@@ -14207,7 +14217,9 @@ const InputWithDropdown = /*#__PURE__*/React.forwardRef(({
14207
14217
  onFocus,
14208
14218
  optionsRequired = true,
14209
14219
  dropdownPosition = 'right',
14210
- type = 'text'
14220
+ type = 'text',
14221
+ leftDropDownPositionZindex,
14222
+ rightDropDownPositionZindex
14211
14223
  }, ref) => {
14212
14224
  const isValueFilled = !checkEmpty(value) || dropdownPosition === 'left';
14213
14225
  return jsxRuntime.jsxs("div", {
@@ -14230,7 +14242,7 @@ const InputWithDropdown = /*#__PURE__*/React.forwardRef(({
14230
14242
  showBorder: false,
14231
14243
  onChange: onDropdownChangeHandler,
14232
14244
  disabled: disabled || !optionsRequired,
14233
- optionZIndex: 999999,
14245
+ optionZIndex: leftDropDownPositionZindex,
14234
14246
  optionsRequired: optionsRequired,
14235
14247
  className: classNames('ff-floating-dropdown', {
14236
14248
  'ff-floating-dropdown--disabled': !!disabled,
@@ -14281,6 +14293,7 @@ const InputWithDropdown = /*#__PURE__*/React.forwardRef(({
14281
14293
  selectedOption: selectedOption,
14282
14294
  showLabel: false,
14283
14295
  showBorder: false,
14296
+ optionZIndex: rightDropDownPositionZindex,
14284
14297
  onChange: onDropdownChangeHandler,
14285
14298
  disabled: disabled || !optionsRequired,
14286
14299
  optionsRequired: optionsRequired,
@@ -14573,7 +14586,7 @@ const MiniModal = /*#__PURE__*/React.forwardRef(({
14573
14586
  }), document.body);
14574
14587
  });
14575
14588
 
14576
- var css_248z$R = ":root {\n --table-height: auto;\n}\n\n.tree-table-space-block {\n display: inline-block;\n width: 20px;\n height: 16px;\n text-align: center;\n line-height: 16px;\n vertical-align: top;\n font-size: 19px;\n position: relative;\n box-sizing: border-box;\n border-radius: 50%;\n}\n.tree-table-space-block.btn-toggle {\n position: relative;\n cursor: pointer;\n width: 22px;\n height: 18px;\n z-index: 12;\n}\n.tree-table-space-block.btn-toggle::before {\n display: none;\n}\n.tree-table-space-block.last-block::after, .tree-table-space-block.no-folder::after {\n position: absolute;\n content: \"\";\n height: 1px;\n background: var(--tree-connecting-lines-color);\n top: 50%;\n margin-top: -1px;\n}\n.tree-table-space-block.last-block::after {\n width: 12px;\n left: -10px;\n}\n.tree-table-space-block.no-folder {\n width: 8px;\n}\n.tree-table-space-block.no-folder::after {\n width: 22px;\n left: -10px;\n}\n.tree-table-space-block:not(.last-block, .no-lines, .last-node)::before {\n position: absolute;\n content: \"\";\n width: 1px;\n height: 40px;\n background: var(--tree-connecting-lines-color);\n left: 50%;\n top: -4px;\n z-index: 99;\n}\n.tree-table-space-block.last-node::before {\n position: absolute;\n content: \"\";\n width: 1px;\n height: 12px;\n background: var(--tree-connecting-lines-color);\n left: 50%;\n top: -4px;\n z-index: -1;\n}\n.tree-table-space-block.folder.last-node::before {\n height: 13px;\n}\n\n.tree-title-container .tree-table-space-block {\n width: 16px;\n}\n\n.hidden {\n display: none;\n}\n\n.show {\n display: table-row;\n visibility: visible;\n}\n\n.btn-toggle {\n cursor: pointer;\n}\n.btn-toggle.is-close {\n background: #f1f1f1;\n border: 1px solid transparent;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\n}\n.btn-toggle::before, .btn-toggle::after {\n display: none;\n}\n\n.tree-table-wrap {\n width: 100%;\n padding-left: 4px;\n overflow: hidden;\n overflow-x: auto;\n}\n\n.table-scrollable {\n height: var(--table-height);\n /* Adjust height as needed */\n overflow-y: auto;\n position: relative;\n}\n\n.ff-table-tree-body {\n overflow: scroll;\n}\n\n.tree-table {\n table-layout: fixed;\n width: 100%;\n border-collapse: collapse;\n overflow: scroll;\n}\n.tree-table .ff-table-tree-head {\n position: sticky;\n top: 0;\n z-index: 2;\n}\n.tree-table .ff-table-tree-row {\n background-color: var(--base-bg-color);\n}\n.tree-table .ff-table-tree-row .table-tree-row-action {\n display: none;\n}\n.tree-table .ff-table-tree-row .table-row-add-button {\n display: inline-flex;\n z-index: 9999;\n align-items: center;\n}\n.tree-table .ff-table-tree-row:hover {\n background-color: var(--hover-color);\n}\n.tree-table .ff-table-tree-row:hover .ff-table-tree-td:first-child {\n background-color: var(--hover-color);\n}\n.tree-table .ff-table-tree-row:hover .table-tree-row-action {\n display: inline-flex;\n align-items: center;\n}\n.tree-table .ff-table-tree-row::after {\n content: \"\";\n display: block;\n visibility: hidden;\n clear: both;\n}\n.tree-table .ff-table-tree-th,\n.tree-table .ff-table-tree-td {\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.tree-table .ff-table-tree-th {\n color: var(--table-header-text-color);\n background: var(--border-color);\n font-size: 12px;\n font-weight: 600;\n width: 400px;\n height: 32px;\n box-sizing: border-box;\n}\n.tree-table .ff-table-tree-th:first-child {\n width: 400px !important;\n position: sticky;\n left: 0;\n padding-left: 8px;\n}\n.tree-table .ff-table-tree-td {\n font-size: 12px;\n color: var(--nlp-color);\n height: 18px;\n}\n.tree-table .ff-table-tree-td:first-child {\n overflow: initial;\n position: sticky;\n left: 0;\n background-color: white;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-default-content {\n margin-left: 8px;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-td-content {\n padding-left: 4px;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-td-content .tree-table-td-content-text {\n margin-left: 4px;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-default-content {\n font-weight: 700;\n}\n.tree-table .ff-table-tree-td.folder {\n height: 28px;\n}\n\n.tree-table-td-content {\n display: inline-flex;\n align-items: center;\n font-size: 12px;\n font-family: \"Poppins\", sans-serif;\n}\n.tree-table-td-content.folder {\n font-weight: 600;\n}\n\n.tree-row-expanded span svg,\n.tree-row-collapsed span svg {\n height: 12px;\n width: 12px;\n}\n.tree-row-expanded span svg path,\n.tree-row-collapsed span svg path {\n fill: var(--brand-color);\n}\n\n.tree-row-collapsed svg {\n transform: rotate(-90deg);\n transition: transform 0.3s ease;\n}\n\n.tree-table-space-container {\n display: inline-flex;\n}\n\n.tree-title-container {\n display: inline-flex;\n align-items: center;\n}";
14589
+ var css_248z$R = ":root {\n --table-height: auto;\n}\n\n.tree-table-space-block {\n display: inline-block;\n width: 20px;\n height: 16px;\n text-align: center;\n line-height: 16px;\n vertical-align: top;\n font-size: 19px;\n position: relative;\n box-sizing: border-box;\n border-radius: 50%;\n}\n.tree-table-space-block.btn-toggle {\n position: relative;\n cursor: pointer;\n width: 22px;\n height: 18px;\n z-index: 12;\n}\n.tree-table-space-block.btn-toggle::before {\n display: none;\n}\n.tree-table-space-block.last-block::after, .tree-table-space-block.no-folder::after {\n position: absolute;\n content: \"\";\n height: 1px;\n background: var(--tree-connecting-lines-color);\n top: 50%;\n margin-top: -1px;\n}\n.tree-table-space-block.last-block::after {\n width: 12px;\n left: -10px;\n}\n.tree-table-space-block.no-folder {\n width: 8px;\n}\n.tree-table-space-block.no-folder::after {\n width: 22px;\n left: -10px;\n}\n.tree-table-space-block:not(.last-block, .no-lines, .last-node)::before {\n position: absolute;\n content: \"\";\n width: 1px;\n height: 40px;\n background: var(--tree-connecting-lines-color);\n left: 50%;\n top: -4px;\n z-index: 99;\n}\n.tree-table-space-block.last-node::before {\n position: absolute;\n content: \"\";\n width: 1px;\n height: 12px;\n background: var(--tree-connecting-lines-color);\n left: 50%;\n top: -4px;\n z-index: -1;\n}\n.tree-table-space-block.folder.last-node::before {\n height: 13px;\n}\n\n.tree-title-container .tree-table-space-block {\n width: 16px;\n}\n\n.hidden {\n display: none;\n}\n\n.show {\n display: table-row;\n visibility: visible;\n}\n\n.btn-toggle {\n cursor: pointer;\n}\n.btn-toggle.is-close {\n background: #f1f1f1;\n border: 1px solid transparent;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);\n}\n.btn-toggle::before, .btn-toggle::after {\n display: none;\n}\n\n.tree-table-wrap {\n width: 100%;\n padding-left: 4px;\n overflow: hidden;\n overflow-x: auto;\n}\n\n.table-scrollable {\n height: var(--table-height);\n /* Adjust height as needed */\n overflow-y: auto;\n position: relative;\n}\n\n.ff-table-tree-body {\n overflow: scroll;\n}\n\n.tree-table {\n table-layout: fixed;\n width: 100%;\n border-collapse: collapse;\n overflow: scroll;\n}\n.tree-table .ff-table-tree-head {\n position: sticky;\n top: 0;\n z-index: 2;\n}\n.tree-table .ff-table-tree-row:hover,\n.tree-table .ff-table-tree-row.hover {\n background-color: var(--hover-color);\n}\n.tree-table .ff-table-tree-row:hover .ff-table-tree-td:first-child,\n.tree-table .ff-table-tree-row.hover .ff-table-tree-td:first-child {\n background-color: var(--hover-color);\n}\n.tree-table .ff-table-tree-row:hover .table-tree-row-action,\n.tree-table .ff-table-tree-row.hover .table-tree-row-action {\n display: inline-flex;\n align-items: center;\n}\n.tree-table .ff-table-tree-row {\n background-color: var(--base-bg-color);\n}\n.tree-table .ff-table-tree-row .table-tree-row-action {\n display: none;\n}\n.tree-table .ff-table-tree-row .table-row-add-button {\n display: inline-flex;\n z-index: 9999;\n align-items: center;\n}\n.tree-table .ff-table-tree-row::after {\n content: \"\";\n display: block;\n visibility: hidden;\n clear: both;\n}\n.tree-table .ff-table-tree-th,\n.tree-table .ff-table-tree-td {\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.tree-table .ff-table-tree-th {\n color: var(--table-header-text-color);\n background: var(--border-color);\n font-size: 12px;\n font-weight: 600;\n width: 400px;\n height: 32px;\n box-sizing: border-box;\n}\n.tree-table .ff-table-tree-th:first-child {\n width: 400px !important;\n position: sticky;\n left: 0;\n padding-left: 8px;\n}\n.tree-table .ff-table-tree-td {\n font-size: 12px;\n color: var(--nlp-color);\n height: 18px;\n}\n.tree-table .ff-table-tree-td:first-child {\n overflow: initial;\n position: sticky;\n left: 0;\n background-color: white;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-default-content {\n margin-left: 8px;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-td-content {\n padding-left: 4px;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-td-content .tree-table-td-content-text {\n margin-left: 4px;\n}\n.tree-table .ff-table-tree-td:first-child .tree-table-default-content {\n font-weight: 700;\n}\n.tree-table .ff-table-tree-td.folder {\n height: 28px;\n}\n\n.tree-table-td-content {\n display: inline-flex;\n align-items: center;\n font-size: 12px;\n font-family: \"Poppins\", sans-serif;\n}\n.tree-table-td-content.folder {\n font-weight: 600;\n}\n\n.tree-row-expanded span svg,\n.tree-row-collapsed span svg {\n height: 12px;\n width: 12px;\n}\n.tree-row-expanded span svg path,\n.tree-row-collapsed span svg path {\n fill: var(--brand-color);\n}\n\n.tree-row-collapsed svg {\n transform: rotate(-90deg);\n transition: transform 0.3s ease;\n}\n\n.tree-table-space-container {\n display: inline-flex;\n}\n\n.tree-title-container {\n display: inline-flex;\n align-items: center;\n}";
14577
14590
  styleInject(css_248z$R);
14578
14591
 
14579
14592
  const TableHead = /*#__PURE__*/React.memo(({
@@ -14821,6 +14834,31 @@ const TableBody = ({
14821
14834
  });
14822
14835
  };
14823
14836
 
14837
+ const throttle = (func, limit) => {
14838
+ let lastFunc;
14839
+ let lastRan = null;
14840
+ const throttled = function (...args) {
14841
+ const context = this;
14842
+ if (lastRan === null || Date.now() - lastRan >= limit) {
14843
+ func.apply(context, args);
14844
+ lastRan = Date.now();
14845
+ } else {
14846
+ if (lastFunc) clearTimeout(lastFunc);
14847
+ lastFunc = setTimeout(() => {
14848
+ func.apply(context, args);
14849
+ lastRan = Date.now();
14850
+ }, limit - (Date.now() - lastRan));
14851
+ }
14852
+ };
14853
+ // Method to cancel the throttled function
14854
+ throttled.cancel = () => {
14855
+ if (lastFunc) clearTimeout(lastFunc);
14856
+ lastFunc = null;
14857
+ lastRan = null;
14858
+ };
14859
+ return throttled;
14860
+ };
14861
+
14824
14862
  const TreeTable = ({
14825
14863
  treeData,
14826
14864
  columnsData,
@@ -14841,33 +14879,47 @@ const TreeTable = ({
14841
14879
  onAddCancel = () => {}
14842
14880
  }) => {
14843
14881
  const observerRef = React.useRef(null);
14882
+ const triggeredNodesRef = React.useRef(new Set()); // Track already triggered nodes
14883
+ // Throttled version of loadMore
14884
+ const throttledLoadMore = React.useRef(throttle(direction => {
14885
+ loadMore(direction);
14886
+ }, 300)).current;
14844
14887
  React.useEffect(() => {
14845
14888
  const scrollContainer = document.getElementById('ff-table-tree-scroll-container');
14846
14889
  const firstNode = document.getElementById('ff-table-tree-first-node');
14847
14890
  const lastNode = document.getElementById('ff-table-tree-last-node');
14848
- // Exit early if treeData is empty or elements are missing
14849
- if (!scrollContainer || !firstNode || !lastNode || !treeData?.length) {
14850
- return;
14851
- }
14852
- observerRef.current = new IntersectionObserver(entries => {
14891
+ // Exit early if essential elements or data are missing
14892
+ if (!scrollContainer || !firstNode || !lastNode || !treeData?.length) return;
14893
+ const isLastResourceAbove = treeData[0]?.lastResource;
14894
+ const isLastResourceBelow = treeData[treeData.length - 1]?.lastResource;
14895
+ if (isLastResourceAbove && isLastResourceBelow) return;
14896
+ const observerCallback = entries => {
14853
14897
  entries.forEach(entry => {
14898
+ const nodeId = entry.target.id;
14899
+ const direction = nodeId === 'ff-table-tree-last-node' ? 'below' : 'above';
14854
14900
  if (entry.isIntersecting) {
14855
- const direction = entry.target.id === 'ff-table-tree-last-node' ? 'below' : 'above';
14856
- loadMore(direction);
14901
+ if (!triggeredNodesRef.current.has(nodeId) && (direction === 'above' && !isLastResourceAbove || direction === 'below' && !isLastResourceBelow)) {
14902
+ triggeredNodesRef.current.add(nodeId);
14903
+ throttledLoadMore(direction);
14904
+ }
14905
+ } else {
14906
+ // Remove node from triggered set when it goes out of view
14907
+ triggeredNodesRef.current.delete(nodeId);
14857
14908
  }
14858
14909
  });
14859
- }, {
14910
+ };
14911
+ observerRef.current = new IntersectionObserver(observerCallback, {
14860
14912
  root: scrollContainer,
14861
14913
  rootMargin: '8px',
14862
14914
  threshold: 0.1
14863
14915
  });
14864
- observerRef.current.observe(firstNode);
14865
- observerRef.current.observe(lastNode);
14916
+ if (!isLastResourceAbove) observerRef.current.observe(firstNode);
14917
+ if (!isLastResourceBelow) observerRef.current.observe(lastNode);
14866
14918
  return () => {
14867
- // Cleanup observer
14868
14919
  observerRef.current?.disconnect();
14920
+ throttledLoadMore.cancel();
14869
14921
  };
14870
- }, [treeData, loadMore]);
14922
+ }, [treeData, throttledLoadMore]);
14871
14923
  const handleToggleExpand = React.useCallback((node, index) => onExpand?.(node, index), [onExpand]);
14872
14924
  const handleCheckBoxChange = React.useCallback((e, node) => {
14873
14925
  onChange?.(e, node);
@@ -26928,7 +26980,7 @@ const VariableInput = ({
26928
26980
  });
26929
26981
  };
26930
26982
 
26931
- var css_248z$H = ".ff-all-project {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n}\n.ff-all-project .ff-all-project-dropdown {\n width: fit-content;\n border-radius: 16px;\n color: var(--expandable-menu-default-bg);\n line-height: 18px;\n display: flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n padding: 3px;\n cursor: pointer;\n}\n.ff-all-project .ff-all-project-dropdown--selected {\n background-color: var(--primary-icon-color);\n border-radius: 20px;\n}\n.ff-all-project .ff-all-project-dropdown--selected .ff-all-project-container {\n border-radius: 20px;\n box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.2509803922) inset;\n background: linear-gradient(90deg, var(--brand-color) 0%, var(--button-background-gradient-color) 100%);\n text-wrap-mode: nowrap;\n}\n.ff-all-project .ff-all-project-dropdown:not(.ff-all-project-dropdown--selected):hover .projects-label {\n position: relative;\n white-space: nowrap;\n}\n.ff-all-project .ff-all-project-dropdown:not(.ff-all-project-dropdown--selected):hover .projects-label:hover::after {\n animation: oscillate-border-width 0.5s ease-in-out forwards;\n}\n.ff-all-project .ff-all-project-dropdown:not(.ff-all-project-dropdown--selected):hover .projects-label::after {\n content: \"\";\n position: absolute;\n top: 20px;\n left: 0%;\n width: 0%;\n height: 2px;\n background-color: var(--ff-app-header-menu-border-bottom-color);\n border-radius: 4px;\n transition: width 0.15s ease-in-out;\n}\n.ff-all-project .ff-all-project-dropdown .ff-all-project-container {\n display: flex;\n padding: 4px;\n gap: 4px;\n justify-content: center;\n text-wrap-mode: nowrap;\n}\n.ff-all-project .ff-all-project-dropdown .ff-all-project-container .label-icon {\n height: 16px;\n width: 16px;\n display: flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n}\n.ff-all-project .ff-projects-dropdown {\n width: 202px;\n position: absolute;\n top: 50px;\n padding: 1px;\n border: 0.5px solid var(--expandable-menu-default-bg);\n border-radius: 4px;\n background-color: var(--secondary-icon-color);\n color: var(--primary-icon-color);\n}\n.ff-all-project .ff-projects-dropdown .scroll {\n max-height: 150px;\n overflow-x: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ff-all-project .ff-projects-dropdown .scroll::-webkit-scrollbar {\n width: 2px;\n}\n.ff-all-project .ff-projects-dropdown .scroll::-webkit-scrollbar-thumb {\n background: var(--primary-icon-color);\n border-radius: 2px;\n}\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options {\n display: flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n justify-content: flex-start;\n gap: 4px;\n white-space: nowrap;\n}\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options .ff-projects-icons {\n display: flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n height: 24px;\n width: 24px;\n}\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options .ff-projects-icons svg path {\n fill: var(--primary-icon-color);\n}\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options.ff-selected-option,\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options:hover {\n background-color: var(--primary-icon-color);\n color: var(--secondary-icon-color);\n border-radius: 4px;\n margin: 1px;\n}\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options.ff-selected-option svg path,\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options:hover svg path {\n fill: var(--secondary-icon-color);\n}\n.ff-all-project .ff-projects-dropdown .ff-all-projects-option {\n margin-top: 1px;\n}\n.ff-all-project .ff-projects-dropdown .ff-all-projects-option,\n.ff-all-project .ff-projects-dropdown .ff-selected-option {\n display: flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n justify-content: flex-start;\n gap: 4px;\n background-color: var(--primary-icon-color);\n color: var(--secondary-icon-color);\n border-radius: 4px;\n}\n.ff-all-project .ff-projects-dropdown .ff-all-projects-option .ff-projects-icons svg path,\n.ff-all-project .ff-projects-dropdown .ff-selected-option .ff-projects-icons svg path {\n fill: var(--secondary-icon-color);\n}\n\n@keyframes oscillate-border-width {\n 0% {\n width: 50%;\n left: 25%;\n }\n 50% {\n width: 70%;\n left: 15%;\n }\n 100% {\n width: 50%;\n left: 25%;\n }\n}";
26983
+ var css_248z$H = ".ff-all-project {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n}\n.ff-all-project .ff-all-project-dropdown {\n width: fit-content;\n border-radius: 16px;\n color: var(--expandable-menu-default-bg);\n line-height: 18px;\n display: flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n padding: 3px;\n cursor: pointer;\n}\n.ff-all-project .ff-all-project-dropdown--selected {\n background-color: var(--primary-icon-color);\n border-radius: 20px;\n}\n.ff-all-project .ff-all-project-dropdown--selected .ff-all-project-container {\n border-radius: 20px;\n box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.2509803922) inset;\n background: linear-gradient(90deg, var(--brand-color) 0%, var(--button-background-gradient-color) 100%);\n text-wrap-mode: nowrap;\n}\n.ff-all-project .ff-all-project-dropdown:not(.ff-all-project-dropdown--selected):hover .projects-label {\n position: relative;\n white-space: nowrap;\n}\n.ff-all-project .ff-all-project-dropdown:not(.ff-all-project-dropdown--selected):hover .projects-label:hover::after {\n animation: oscillate-border-width 0.5s ease-in-out forwards;\n}\n.ff-all-project .ff-all-project-dropdown:not(.ff-all-project-dropdown--selected):hover .projects-label::after {\n content: \"\";\n position: absolute;\n top: 20px;\n left: 0%;\n width: 0%;\n height: 2px;\n background-color: var(--ff-app-header-menu-border-bottom-color);\n border-radius: 4px;\n transition: width 0.15s ease-in-out;\n}\n.ff-all-project .ff-all-project-dropdown .ff-all-project-container {\n display: flex;\n padding: 4px 8px;\n gap: 4px;\n justify-content: center;\n text-wrap-mode: nowrap;\n}\n.ff-all-project .ff-all-project-dropdown .ff-all-project-container .label-icon {\n height: 16px;\n width: 16px;\n display: flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n}\n.ff-all-project .ff-projects-dropdown {\n width: 202px;\n position: absolute;\n top: 50px;\n padding: 1px;\n border: 0.5px solid var(--expandable-menu-default-bg);\n border-radius: 4px;\n background-color: var(--secondary-icon-color);\n color: var(--primary-icon-color);\n}\n.ff-all-project .ff-projects-dropdown .scroll {\n max-height: 150px;\n overflow-x: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ff-all-project .ff-projects-dropdown .scroll::-webkit-scrollbar {\n width: 2px;\n}\n.ff-all-project .ff-projects-dropdown .scroll::-webkit-scrollbar-thumb {\n background: var(--primary-icon-color);\n border-radius: 2px;\n}\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options {\n display: flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n justify-content: flex-start;\n gap: 4px;\n white-space: nowrap;\n}\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options .ff-projects-icons {\n display: flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n height: 24px;\n width: 24px;\n}\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options .ff-projects-icons svg path {\n fill: var(--primary-icon-color);\n}\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options.ff-selected-option,\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options:hover {\n background-color: var(--primary-icon-color);\n color: var(--secondary-icon-color);\n border-radius: 4px;\n margin: 1px;\n}\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options.ff-selected-option svg path,\n.ff-all-project .ff-projects-dropdown .option-card .ff-projects-options:hover svg path {\n fill: var(--secondary-icon-color);\n}\n.ff-all-project .ff-projects-dropdown .ff-all-projects-option {\n margin-top: 1px;\n}\n.ff-all-project .ff-projects-dropdown .ff-all-projects-option,\n.ff-all-project .ff-projects-dropdown .ff-selected-option {\n display: flex;\n justify-content: center;\n align-items: center;\n align-content: center;\n justify-content: flex-start;\n gap: 4px;\n background-color: var(--primary-icon-color);\n color: var(--secondary-icon-color);\n border-radius: 4px;\n}\n.ff-all-project .ff-projects-dropdown .ff-all-projects-option .ff-projects-icons svg path,\n.ff-all-project .ff-projects-dropdown .ff-selected-option .ff-projects-icons svg path {\n fill: var(--secondary-icon-color);\n}\n\n@keyframes oscillate-border-width {\n 0% {\n width: 50%;\n left: 25%;\n }\n 50% {\n width: 70%;\n left: 15%;\n }\n 100% {\n width: 50%;\n left: 25%;\n }\n}";
26932
26984
  styleInject(css_248z$H);
26933
26985
 
26934
26986
  const AllProjectsDropdown = ({
@@ -26983,7 +27035,7 @@ const AllProjectsDropdown = ({
26983
27035
  as: 'div',
26984
27036
  lineHeight: '18px',
26985
27037
  fontSize: 12,
26986
- fontWeight: 'regular',
27038
+ fontWeight: selected ? 'semi-bold' : 'regular',
26987
27039
  className: classNames('projects-label'),
26988
27040
  onClick: onMenuClick,
26989
27041
  children: jsxRuntime.jsx(Tooltip, {
@@ -27220,7 +27272,7 @@ const PieChart = ({
27220
27272
  });
27221
27273
  };
27222
27274
 
27223
- var css_248z$F = ".ff-app-header-main {\n display: flex;\n}\n.ff-app-header-main .ff-app-header {\n display: flex;\n flex-basis: 100%;\n justify-content: space-between;\n background-color: var(--brand-color);\n padding-left: 8px;\n height: 40px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-left-container {\n display: flex;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-left-container .ff-app-header-logo-icon {\n padding: 4px;\n height: 24px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar {\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--brand-color);\n transform: translateY(12px);\n border-radius: 20px;\n padding: 4px;\n padding-bottom: 16px;\n z-index: 1000;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items {\n display: flex;\n align-items: center;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item {\n margin-left: 8px;\n padding: 7px;\n color: var(--ff-header-text-color);\n cursor: pointer;\n display: flex;\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n transition: flex-grow 1s ease, opacity 1s ease, max-width 1s ease;\n max-width: 150px; /* Initial max-width */\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item:not(.ff-app-header-nav-bar-item--selected):hover::after {\n animation: oscillate-border-width 0.5s ease-in-out forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 25%;\n width: 0%;\n height: 2px;\n background: var(--ff-app-header-menu-border-bottom-color);\n border-radius: 4px;\n transition: width 0.15s ease-in-out;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-nav-bar-item-label {\n white-space: nowrap;\n align-content: center;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected {\n padding: 3px;\n background-color: var(--primary-icon-color);\n border-radius: 20px;\n flex-grow: 12; /* Increase size on hover */\n max-width: 700px;\n opacity: 1;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected .ff-app-header-nav-bar-item-label {\n box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.2509803922) inset;\n background: linear-gradient(90deg, var(--brand-color) 0%, var(--button-background-gradient-color) 100%);\n border-radius: 20px;\n padding: 4px 8px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected :last-child {\n margin-right: 3px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected :first-child {\n margin: 0;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container {\n display: flex;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item {\n color: var(--ff-header-submenu-text-color);\n align-content: center;\n position: relative;\n white-space: nowrap;\n padding-left: 8px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item:not(.ff-app-header-nav-bar-submenu-item--selected):hover::after {\n animation: oscillate-border-width 0.5s ease-in-out forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 25%;\n width: 0%;\n height: 2px;\n border-radius: 4px;\n transition: width 0.15s ease-in-out;\n background: var(--ff-app-header-submenu-border-bottom-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item--selected {\n color: var(--ff-header-submenu-highlight-text-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item--selected::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 20%;\n width: 70%;\n height: 2px;\n border-radius: 4px;\n box-shadow: 0px 1px 0.2px 0px rgba(0, 0, 0, 0.1607843137);\n background: var(--ff-app-header-submenu-border-bottom-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container {\n display: flex;\n align-items: center;\n overflow: hidden;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item {\n margin-right: 8px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item:last-child {\n margin: 0px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item .ff-tooltip-container {\n display: inline;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item .ff-tooltip-container .ff-icon-container {\n padding: 2px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item--selected {\n background: var(--brand-color);\n border-radius: 5px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item--selected :hover {\n background: transparent;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item--selected svg path {\n fill: var(--primary-button-text-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected .ff-app-header-quickmenu-container {\n animation: quickmenu-expand 1s ease forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item:not(.ff-app-header-nav-bar-item--selected) .ff-app-header-quickmenu-container {\n animation: quickmenu-collapse 1s ease forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu {\n width: 40px;\n display: flex;\n justify-content: center;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu .ff-app-header-more-icon svg {\n cursor: pointer;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu .ff-app-header-more-icon svg path {\n fill: var(--primary-icon-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-left-content,\n.ff-app-header-main .ff-app-header .ff-app-header-right-content {\n height: 24px;\n padding: 8px;\n align-content: center;\n}\n\n@keyframes oscillate-border-width {\n 0% {\n width: 50%;\n left: 25%;\n }\n 50% {\n width: 70%;\n left: 15%;\n }\n 100% {\n width: 50%;\n left: 25%;\n }\n}\n@keyframes quickmenu-expand {\n from {\n max-height: 0;\n opacity: 0;\n }\n to {\n max-height: 500px; /* Ensure this value covers the full height of your quick menu */\n opacity: 1;\n }\n}\n@keyframes quickmenu-collapse {\n from {\n max-height: 500px;\n opacity: 1;\n }\n to {\n max-height: 0;\n opacity: 0;\n }\n}";
27275
+ var css_248z$F = ".ff-app-header-main {\n display: flex;\n}\n.ff-app-header-main .ff-app-header {\n display: flex;\n z-index: 1000;\n flex-basis: 100%;\n justify-content: space-between;\n background-color: var(--brand-color);\n padding-left: 8px;\n height: 40px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-left-container {\n display: flex;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-left-container .ff-app-header-logo-icon {\n padding: 4px;\n height: 24px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar {\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--brand-color);\n transform: translateY(12px);\n border-radius: 20px;\n padding: 4px;\n padding-bottom: 16px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items {\n display: flex;\n align-items: center;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item {\n margin-left: 8px;\n padding: 7px;\n color: var(--ff-header-text-color);\n cursor: pointer;\n display: flex;\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n transition: flex-grow 1s ease, opacity 1s ease, max-width 1s ease;\n max-width: 150px; /* Initial max-width */\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item:not(.ff-app-header-nav-bar-item--selected):hover::after {\n animation: oscillate-border-width 0.5s ease-in-out forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 25%;\n width: 0%;\n height: 2px;\n background: var(--ff-app-header-menu-border-bottom-color);\n border-radius: 4px;\n transition: width 0.15s ease-in-out;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-nav-bar-item-label {\n white-space: nowrap;\n align-content: center;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected {\n padding: 3px;\n background-color: var(--primary-icon-color);\n border-radius: 20px;\n flex-grow: 12; /* Increase size on hover */\n max-width: 700px;\n opacity: 1;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected .ff-app-header-nav-bar-item-label {\n box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.2509803922) inset;\n background: linear-gradient(90deg, var(--brand-color) 0%, var(--button-background-gradient-color) 100%);\n border-radius: 20px;\n padding: 4px 8px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected :last-child {\n margin-right: 3px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected :first-child {\n margin: 0;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container {\n display: flex;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item {\n color: var(--ff-header-submenu-text-color);\n align-content: center;\n position: relative;\n white-space: nowrap;\n padding-left: 8px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item:not(.ff-app-header-nav-bar-submenu-item--selected):hover::after {\n animation: oscillate-border-width 0.5s ease-in-out forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 25%;\n width: 0%;\n height: 2px;\n border-radius: 4px;\n transition: width 0.15s ease-in-out;\n background: var(--ff-app-header-submenu-border-bottom-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item--selected {\n color: var(--ff-header-submenu-highlight-text-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-nav-bar-submenu-item--selected::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 20%;\n width: 70%;\n height: 2px;\n border-radius: 4px;\n box-shadow: 0px 1px 0.2px 0px rgba(0, 0, 0, 0.1607843137);\n background: var(--ff-app-header-submenu-border-bottom-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container {\n display: flex;\n align-items: center;\n overflow: hidden;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item {\n margin-right: 8px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item:last-child {\n margin: 0px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item .ff-tooltip-container {\n display: inline;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item .ff-tooltip-container .ff-icon-container {\n padding: 2px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item--selected {\n background: var(--brand-color);\n border-radius: 5px;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item--selected :hover {\n background: transparent;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item .ff-app-header-submenu-container .ff-app-header-quickmenu-container .ff-app-header-nav-bar-quickmenu-item--selected svg path {\n fill: var(--primary-button-text-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item--selected .ff-app-header-quickmenu-container {\n animation: quickmenu-expand 1s ease forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .ff-app-header-nav-bar-items .ff-app-header-nav-bar-item:not(.ff-app-header-nav-bar-item--selected) .ff-app-header-quickmenu-container {\n animation: quickmenu-collapse 1s ease forwards;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu {\n width: 40px;\n display: flex;\n justify-content: center;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu .ff-app-header-more-icon svg {\n cursor: pointer;\n}\n.ff-app-header-main .ff-app-header .ff-app-header-nav-bar .more-menu .ff-app-header-more-icon svg path {\n fill: var(--primary-icon-color);\n}\n.ff-app-header-main .ff-app-header .ff-app-header-left-content,\n.ff-app-header-main .ff-app-header .ff-app-header-right-content {\n height: 24px;\n padding: 8px;\n align-content: center;\n}\n\n@keyframes oscillate-border-width {\n 0% {\n width: 50%;\n left: 25%;\n }\n 50% {\n width: 70%;\n left: 15%;\n }\n 100% {\n width: 50%;\n left: 25%;\n }\n}\n@keyframes quickmenu-expand {\n from {\n max-height: 0;\n opacity: 0;\n }\n to {\n max-height: 500px; /* Ensure this value covers the full height of your quick menu */\n opacity: 1;\n }\n}\n@keyframes quickmenu-collapse {\n from {\n max-height: 500px;\n opacity: 1;\n }\n to {\n max-height: 0;\n opacity: 0;\n }\n}";
27224
27276
  styleInject(css_248z$F);
27225
27277
 
27226
27278
  const AppHeader = ({
@@ -37006,6 +37058,24 @@ const ExcelContextMenu = ({
37006
37058
  });
37007
37059
  };
37008
37060
 
37061
+ const debounce = (func, delay) => {
37062
+ let timeoutId = null;
37063
+ const debounced = function (...args) {
37064
+ // Clear the previous timeout if it exists
37065
+ if (timeoutId) clearTimeout(timeoutId);
37066
+ // Set a new timeout
37067
+ timeoutId = setTimeout(() => {
37068
+ func.apply(this, args);
37069
+ }, delay);
37070
+ };
37071
+ // Method to cancel the debounced function
37072
+ debounced.cancel = () => {
37073
+ if (timeoutId) clearTimeout(timeoutId);
37074
+ timeoutId = null;
37075
+ };
37076
+ return debounced;
37077
+ };
37078
+
37009
37079
  const ExcelFile = ({
37010
37080
  excelData,
37011
37081
  contextOption,
@@ -37019,6 +37089,7 @@ const ExcelFile = ({
37019
37089
  onSave = saveData => {
37020
37090
  saveData();
37021
37091
  },
37092
+ onSaveDelay = 0,
37022
37093
  columnContextEnable = false,
37023
37094
  rowContextEnable = false
37024
37095
  }) => {
@@ -37143,11 +37214,17 @@ const ExcelFile = ({
37143
37214
  }
37144
37215
  }
37145
37216
  }, [excelData]);
37217
+ React.useEffect(() => {
37218
+ debounceDispatch(handleSaveData());
37219
+ }, [worksheetsData]);
37220
+ const debounceDispatch = React.useCallback(debounce(val => {
37221
+ onSave(val);
37222
+ }, onSaveDelay), [onSave]);
37146
37223
  const handleSave = React.useCallback(event => {
37147
37224
  if (event.ctrlKey && event.key === 's') {
37148
37225
  event.preventDefault();
37149
37226
  event.stopPropagation();
37150
- onSaveWorksheetData();
37227
+ debounceDispatch(handleSaveData());
37151
37228
  }
37152
37229
  }, [onSave]);
37153
37230
  React.useEffect(() => {
@@ -37156,48 +37233,39 @@ const ExcelFile = ({
37156
37233
  document.removeEventListener('keydown', handleSave);
37157
37234
  };
37158
37235
  }, [handleSave]);
37159
- const onSaveWorksheetData = () => {
37160
- const savedData = {
37161
- sheets: sheetNames.map(sheetName => {
37162
- const sheetData = worksheetsData[sheetName]?.map(row => {
37163
- const lastIndex = row.reduce((lastIdx, cell, i) => {
37164
- const hasValueOrTypeTrue = cell && cell.value !== null && !checkEmpty(cell && cell.value) || cell && cell.type === true;
37165
- return hasValueOrTypeTrue ? i : lastIdx;
37166
- }, -1);
37167
- const filteredRow = row.map((cell, index) => {
37168
- if (cell && cell.value !== null) {
37169
- return {
37170
- value: cell.value,
37171
- styles: convertStyleToBackend(cell.style ?? {})
37172
- };
37173
- } else if (cell && cell.type || index <= lastIndex) {
37174
- return {
37175
- value: '',
37176
- styles: convertStyleToBackend(cell?.style ?? {})
37177
- };
37178
- }
37179
- return null;
37180
- }).filter(cell => cell !== null);
37181
- return filteredRow.length > 0 ? filteredRow : [];
37182
- }) || [];
37183
- const finalData = sheetData.filter((row, index) => {
37184
- const isNextRowNotEmpty = sheetData.slice(index + 1).some(nextRow => nextRow.length > 0);
37185
- return row.length > 0 || isNextRowNotEmpty;
37186
- });
37187
- return {
37188
- sheetName: sheetName,
37189
- data: checkEmpty(finalData.length) ? [[]] : finalData
37190
- };
37191
- })
37192
- };
37193
- onSave(savedData);
37236
+ const handleSaveData = () => {
37237
+ return sheetNames.map(sheetName => {
37238
+ const sheetData = worksheetsData[sheetName]?.map(row => {
37239
+ const lastIndex = row.reduce((lastIdx, cell, i) => {
37240
+ const hasValue = cell?.value.trim() !== '';
37241
+ return hasValue ? i : lastIdx;
37242
+ }, -1);
37243
+ const filteredRow = row.map((cell, index) => {
37244
+ if (cell && cell.style && index <= lastIndex) {
37245
+ return {
37246
+ value: cell.value,
37247
+ styles: convertStyleToBackend(cell.style)
37248
+ };
37249
+ }
37250
+ return null;
37251
+ }).filter(cell => cell !== null);
37252
+ return filteredRow.length > 0 ? filteredRow : [];
37253
+ }) || [];
37254
+ const finalData = sheetData.filter((row, index) => {
37255
+ const isNextRowNotEmpty = sheetData.slice(index + 1).some(nextRow => nextRow.length > 0);
37256
+ return row.length > 0 || isNextRowNotEmpty;
37257
+ });
37258
+ return {
37259
+ sheetName: sheetName,
37260
+ data: checkEmpty(finalData.length) ? [[]] : finalData
37261
+ };
37262
+ });
37194
37263
  };
37195
37264
  const onEvaluateChange = data => {
37196
37265
  setWorksheetsData(prev => ({
37197
37266
  ...prev,
37198
37267
  [pageRef.current]: data
37199
37268
  }));
37200
- onSaveWorksheetData();
37201
37269
  };
37202
37270
  const [editingSheet, setEditingSheet] = React.useState(null);
37203
37271
  const handleAddSheet = () => {
@@ -37808,7 +37876,7 @@ const StatusCard = ({
37808
37876
  });
37809
37877
  };
37810
37878
 
37811
- var css_248z$g = ".ff-variable-dropdown {\n height: 300px;\n display: flex;\n flex-direction: column;\n background-color: var(--variable-dropdown-bg);\n border: 1px solid var(--border-color);\n border-radius: 3px;\n z-index: 9999;\n overflow: hidden;\n overflow-y: auto;\n}\n.ff-variable-dropdown.absolute {\n position: absolute;\n top: 34px;\n}\n.ff-variable-dropdown.relative {\n position: relative;\n}\n\n.ff-variable-option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px;\n cursor: pointer;\n}\n.ff-variable-option:hover {\n background-color: var(--hover-color);\n}";
37879
+ var css_248z$g = ".ff-variable-dropdown {\n display: flex;\n flex-direction: column;\n background-color: var(--variable-dropdown-bg);\n border: 1px solid var(--border-color);\n border-radius: 3px;\n z-index: 9999;\n overflow: hidden;\n overflow-y: auto;\n}\n.ff-variable-dropdown.absolute {\n position: absolute;\n top: 34px;\n}\n.ff-variable-dropdown.relative {\n position: relative;\n}\n\n.ff-variable-option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px;\n cursor: pointer;\n}\n.ff-variable-option:hover {\n background-color: var(--hover-color);\n}";
37812
37880
  styleInject(css_248z$g);
37813
37881
 
37814
37882
  const VariableDropdown = ({
@@ -37827,7 +37895,7 @@ const VariableDropdown = ({
37827
37895
  } : {
37828
37896
  width
37829
37897
  },
37830
- children: optionsList?.map(option => {
37898
+ children: !checkEmpty(optionsList) ? optionsList?.map(option => {
37831
37899
  return jsxRuntime.jsxs("div", {
37832
37900
  className: "ff-variable-option",
37833
37901
  onMouseDown: () => onSelectVariable(option),
@@ -37842,6 +37910,13 @@ const VariableDropdown = ({
37842
37910
  hoverEffect: true
37843
37911
  })]
37844
37912
  }, option?.id);
37913
+ }) : jsxRuntime.jsx("div", {
37914
+ className: "ff-variable-option",
37915
+ children: jsxRuntime.jsx(Typography, {
37916
+ as: "span",
37917
+ fontSize: 14,
37918
+ children: "No Option"
37919
+ })
37845
37920
  })
37846
37921
  });
37847
37922
  };
@@ -38837,24 +38912,6 @@ function findAndInsert(data, key, targetId, newEntry, insertPosition, childrenKe
38837
38912
  return recursiveSearch(data);
38838
38913
  }
38839
38914
 
38840
- const debounce = (func, delay) => {
38841
- let timeoutId = null;
38842
- const debounced = function (...args) {
38843
- // Clear the previous timeout if it exists
38844
- if (timeoutId) clearTimeout(timeoutId);
38845
- // Set a new timeout
38846
- timeoutId = setTimeout(() => {
38847
- func.apply(this, args);
38848
- }, delay);
38849
- };
38850
- // Method to cancel the debounced function
38851
- debounced.cancel = () => {
38852
- if (timeoutId) clearTimeout(timeoutId);
38853
- timeoutId = null;
38854
- };
38855
- return debounced;
38856
- };
38857
-
38858
38915
  const compareObjects = (obj1, obj2) => {
38859
38916
  // Check if both are strictly equal (handles primitive types and same reference)
38860
38917
  if (obj1 === obj2) return true;
@@ -44123,31 +44180,6 @@ const getEncryptedData = (data, publicKey) => {
44123
44180
  return enData;
44124
44181
  };
44125
44182
 
44126
- const throttle = (func, limit) => {
44127
- let lastFunc;
44128
- let lastRan = null;
44129
- const throttled = function (...args) {
44130
- const context = this;
44131
- if (lastRan === null || Date.now() - lastRan >= limit) {
44132
- func.apply(context, args);
44133
- lastRan = Date.now();
44134
- } else {
44135
- if (lastFunc) clearTimeout(lastFunc);
44136
- lastFunc = setTimeout(() => {
44137
- func.apply(context, args);
44138
- lastRan = Date.now();
44139
- }, limit - (Date.now() - lastRan));
44140
- }
44141
- };
44142
- // Method to cancel the throttled function
44143
- throttled.cancel = () => {
44144
- if (lastFunc) clearTimeout(lastFunc);
44145
- lastFunc = null;
44146
- lastRan = null;
44147
- };
44148
- return throttled;
44149
- };
44150
-
44151
44183
  var css_248z$7 = ".fontXs {\n font-family: \"Poppins\";\n font-size: 10px;\n}\n\n.fontSm, .ff-bar-chart-container .ff-bar-chart-labels, .ff-bar-chart-container .ff-bar-chart-tooltip {\n font-family: \"Poppins\";\n font-size: 12px;\n}\n\n.fontMd {\n font-family: \"Poppins\";\n font-size: 14px;\n}\n\n.fontLg {\n font-family: \"Poppins\";\n font-size: 16px;\n}\n\n.fontXL {\n font-family: \"Poppins\";\n font-size: 18px;\n}\n\n.font2Xl {\n font-family: \"Poppins\";\n font-size: 24px;\n}\n\n.font-size-8 {\n font-family: \"Poppins\";\n font-size: 8px;\n}\n\n.font-size-20 {\n font-family: \"Poppins\";\n font-size: 20px;\n}\n\n.font-size-32 {\n font-family: \"Poppins\";\n font-size: 32px;\n}\n\n.font-size-80 {\n font-family: \"Poppins\";\n font-size: 80px;\n}\n\n.ff-bar-chart-container {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.ff-bar-chart-container svg {\n display: block;\n}\n.ff-bar-chart-container .ff-legend-container {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n padding-right: 10px;\n}\n.ff-bar-chart-container .ff-legend-container .ff-bar-chart-legend {\n width: 290px;\n margin-top: 10px;\n display: flex;\n justify-content: flex-end;\n}\n.ff-bar-chart-container .ff-legend-container .ff-bar-chart-legend .ff-bar-chart-legend-item {\n display: flex;\n align-items: center;\n}\n.ff-bar-chart-container .ff-legend-container .ff-bar-chart-legend .ff-bar-chart-legend-item .ff-bar-chart-legend-item-circle {\n display: inline-block;\n width: 12px;\n height: 12px;\n margin-right: 5px;\n border-radius: 50%;\n}\n.ff-bar-chart-container .ff-legend-container .ff-bar-chart-legend .ff-legend-label {\n margin-left: 5px;\n}\n.ff-bar-chart-container .ff-bar-chart-icon {\n position: absolute;\n pointer-events: none;\n width: 24px;\n height: 24px;\n}\n.ff-bar-chart-container .ff-bar-chart-icon-wrapper {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.ff-bar-chart-container .ff-bar-chart-labels {\n font-weight: 400;\n color: var(--text-color);\n}\n.ff-bar-chart-container .ff-bar-chart-tooltip {\n display: none;\n position: absolute;\n padding: 5px 10px;\n background-color: var(--tooltip-bg-color);\n color: var(--primary-icon-color);\n border-radius: 4px;\n pointer-events: none;\n font-weight: 600;\n}";
44152
44184
  styleInject(css_248z$7);
44153
44185